Context Modeling and Ontology based Middleware for Context-awareness Systems