This article details a new approach to manage Message Type definitions and establishes a strong relationship with between these definitions and the Enterprise Data Model.
I argue that XML, ERD and UML have not been suited to effectively model the Enterprise Data Model or a large collection of Message Types (not individual message types).
I suggest instead creating two Domain Specific Languages (one for the EDM and one for the Message Types, referencing elements of the EDM).
The EDM DSL follows the Domain Driven Design principles and defines several new semantics:
- entities and basic entities
- a scope associated to an entity which contains basic entities
- an entity-to-entity association different from the entity-to-basic-entity association
The Message Type DSL is using the concept of a "projection" which specifies which elements of the base entity's scope should be "excluded" from the message type and which elements of the associated entities should be "included".
The Message Type DSL is implementing the Business Envelope Pattern from the Open Applications Group and supports weaving different aspects such as versioning during the XML Schema generation. The generated XML Schemas are self-contained, with no import or include elements. They are only referenced by their WSDLs. All the Message Type definitions are managed at the DSL level.
The DSLs were developed with the Eclipse EMF and OpenArchitectureWare's Xtext.