In this paper, we survey the models and approaches applied to the middleware services of pervasive computing environments. Architectural styles and patterns introduced in the domain of mobile and wireless computing are also appropriate in pervasive computing. However, the development of pervasive middleware requires more emphasis on interoperability, adaptability and scalability of software services and components. To this aim, we introduce interoperability layers, separation of concerns and ontology-orientation as key enabling technologies to design and maintain agile middleware of pervasive computing environments.