With the explosive expansion of the Internet as the global information infrastructure, coupled with rapid advances in wireless technologies, a new vision for computing is emerging. A seamless, anywhere, anytime, untethered, pervasive computing paradigm is touted as the next major paradigm shift in the way we compute and communicate. In order to realize this vision, the complexity of this environment must be masked from its consumers (users) and producers alike (service providers). We believe that a middleware infrastructure that provides appropriate high-level abstractions for both users and service-providers is needed. Such a middleware infrastructure must allow powerful services to be easily deployed and permit users to interact with such services in a personalized, yet effortless manner. In this position paper, we introduce the notion of a “smart service” – services with which users can dynamically interact in an automated and personalized manner, and can be composed to form “smart environments.” Smart environments present an integrated view of services to the user to enable much higher-level, domain-specific interactions and to support user customization. We present a system architecture for building smart services and smart environments, and the middleware research challenges that must be addressed to realize this architecture and the core abstractions.