The Communication VirtualMachine (CVM) provides a runtime environment that supports the modelingand realization of user-centric communication services specified in CML. The layered architecture of CVM is shown below. The CVM platform is divided intofour major levels of abstraction, each layer playing a role in realizing communication services. The layers of CVMare: (1) User Communication Interface (UCI) - provides a language environmentfor users to specify their communication requirements using CML or WF-CML; (2) Synthesis Engine (SE) - synthesizes CML models i.e., generates an executable script(communication control script) from a CML model and negotiates the modelwith other participants in the communication; (3) User-centric CommunicationMiddleware (UCM) - executes the communication control script to manage andcoordinate the delivery of communication services to users; (4) Network Communication Broker (NCB) - provides a network-independent API to UCM andworks with the underlying network protocols or communication frameworks (e.g., Skype) todeliver the communication services.