Software, these days, are so much like the people who build them – disparate, hard to change, easy to break, and an inexplicable dire need to interact with one another. No man is an island, and so are software systems.
In the present day service oriented world, the most vital aspect of effective software systems is the way it solves business problems by a smart integration of business and the technology components comprising the problem. A seamless interaction between business processes and technology, thereby bridging the gap between fast changing businesses and the upcoming technologies becomes the key driving force for getting the best out of your IT investments.
Meta-Models can have two possible classifications. One driven by Business Semantics and the other based on Behavior. This idea just discussed becomes the fundamental for segregating Meta-Models based on Business Semantics as below.
1. Business Oriented Meta-Model
2. Technology Oriented Meta-Model
3. Collaborative Meta-Model
A Business Oriented Meta-Model primarily concerns itself with representation of business activities, processes, workflows and business rules. Like the Restaurant model example in the previous posts a Business Oriented Meta Model will have concepts such as Menu, Recipe, Caterer, Buffet and Happy Hours.
A Technology Oriented Meta-Model concerns itself with the representation of technology components that would be used to realize the business model (created using Business Oriented Meta-Models). For example, a Technology Oriented Meta-Model for a WCF based implementation will have concepts such as Service Interface, Service Proxy, Data Contract, Business Contract, Entity Translator, etc.
The Collaborative Meta-Model maps the business models and the technology models with a comprehensive representation that defines the complete schema of the Software Factory representation of the system being developed. For example, to combine the Restaurant Business Model with the WCF Technology Model, the Collaborative Meta-Model could be a software architecture model with concepts such as a UILink that connects Menu with Service Proxy and Data Contract to represent a scenario where a “Web Page shows the Menu items and interacts with the Service Proxy by passing values using the Data Contract”. This connection in turn generates source code and artifacts by creating an aspx page, with code for connecting UI to the Service Proxy via the Data Contract.
Thus we see that the Collaborative Meta-Model plays the key role of being the mediator controlling the interaction of Business and Technology models to represent the Business Semantics and realize the goal of the software system.
In the next post I’ll discuss the classification of Meta-Model based on Behavior.