Domain Sharing Domain Sharing consists of a set of Web services, allocated to different project sites, with the purpose of exposing services and component models created to support different business domain rules. The sharing process is straightforward: the project architect creates services and component models for the project it is designing; it then stores them on a domain database and exposes them through a Web service. The Web service publishes the services artefacts (XMI files) via WSDL files, running on a Web application server [16].

For example, Project Site 1 models a set of business rules with a UML Case Tool. It then has an automated code generation process identical to every other Project Site, so it creates a set of physical software components using the MDA framework.

Project Site 2 has now similar needs and the same business rules to design; what it does is to query all known Project Sites and searches for the business domain models that are more likely to fulfil its needs. It then downloads the models and creates the same software that the first Project Site did.

Automated Code Generation

Our MDA environment consists of a set of integrated tools. The main development tool is Eclipse IDE [13]; the Eclipse project contains many other corelated projects for many purposes like testing, modelling, and metrics [11]. The development environment consists of an UML Tool called UML2Tool, available at the Eclipse plug-in home page [8] and by an MDA plug-in developed by our research team at the database laboratory [17].

In every project, artefact development is standardized, both by the way analysis and design models are conceived and the way in which the software is generated. If modelling and code generation are done in a standard way, regardless of the project site, sharing domain models from project to project becomes possible. Therefore, all that the architect needs to do is to locate if the service one needs is available at any project site and download it. After obtaining this model the MDA framework will generate the same product as the one in the original project.

For example, whenever a new service is modelled, the architect is responsible for publishing it in the projects Web service. Any other project inside the organization might execute a look up query to try to obtain that service. If the architect finds the service model, it is incorporated within the business domain and might be altered to support specific business rules; if the architect does not find any service that matches one’s needs, then a new service model is created and published in the projects Web service.