In this chapter, the authors present MoCA, a service-oriented middleware architecture that supports the development and deployment of distributed applications for mobile devices, which are inherently context-aware and adaptive. Besides explaining its main services and APIs, they discuss in which ways the MoCA architecture supports some well-known software engineering principles that apply to the design and implementation of context- aware applications. Furthermore, the authors give an overview of its usage and present prototype applications that have been developed on the top of MoCA.