When a client requests application-related metadata at run-time, the application is asked for its data model via the Data Model Service, while the Metadata Service is asked to provide the application metadata. These are then packaged together as the metamodel and delivered to the client. At design time, a developer would use the Platform Developer Toolkit to link the application metamodel and data models. One of the ways these resources are linked together is by the developer using the UX designer when the user interface of an application is defined.
An important benefit of the ComUnity Metamodel driven architecture is that UX changes can be done in real-time via updating the underlying metadata and/or data model. Such changes will simply require that the native application automatically refresh the metamodel in order to implement changes, and will not require an application package file update from the various App Stores (e.g. .apk for Android and .ipa for Apple. This capability dramatically accelerates deployment of application changes.
Metadata refers to assertions made about information. In the ComUnity Platform metadata is used in the models that describe the information which applications care about, and the user interfaces used to interact with that information. The Metadata Service hosts the metadata that enables client applications to weave the data model into user experiences. This metadata is created at design time by a developer using the Platform Developer Toolkit. Client applications automatically check for new metadata when they come to the foreground.
Data Model Service
The Data Model Service helps to manage and describe the data model including the entities, properties, associations and the navigation between the entities.