Section: Scientific Foundations
Weaving of Software Components
One of the challenges for software components is to build new models and platforms to allow large scale interoperability of components for designing complex distributed applications. Actually, some models already exist: Enterprise Java Beans by Sun Microsystems, .NET by Microsoft and the CORBA Component Model in the CORBA3 OMG standard [93] . These models and platforms are clearly not satisfactory because of the lack of functional completeness and interoperability. Moreover, these industrial propositions only deal with a lot of technical problems to capture the component software notion, but mainly forget the need to manipulate the models of components and applications independently of the technical aspects. This point has been recently tackled by OMG with its Model Driven Architecture (MDA) initiative [92] , [98] . We agree that these points (Component Models, Component oriented Platforms and Model Driven Engineering) lead to new research problems with the goal to produce a better integrated product line, from analysis to exploitation, for component-based applications.
Jacquard members have a large amount of research experience in two computer science domains related to the goal of the project: Jean-Marc Geib and Philippe Merle have some important contributions in the Distributed Object based Platforms area [70] , Laurence Duchien and Lionel Seinturier on specifications and use of separation of concerns for complex applications. For example, we can quote the contributions to the OMG standardization work with the CorbaScript language [89] (proposed to the Scripting Language for CORBA RFP, and accepted as the CORBA Scripting Language chapter of CORBA3 [83] ) and with the CCM (CORBA Component Model) chapter for which we lead the response group and the revision task force. Other examples are the JAC (Java Aspect Component) platform, one of the leading platforms for dynamic weaving of aspects [94] , [96] , [97] .
We aim to join these experiences to design and produce an ambitious new platform for component-based complex applications with new methodological and technical traits for structuring the large set of strongly related problems in supporting these applications. Models, platforms and applications have to benefit from new open middleware using separation of concerns and weaving. Our contributions want to understand how a better structure of models and platforms can result in better software for complex applications.
For the next four years, the project's goals are:
-
to produce a full platform for the CCM model. This platform, called OpenCCM, has to contribute to the OMG standardization work. Moreover it will provide new adaptable containers allowing the weaving of system aspects, dynamically following the application requirements. It will also provide an integrated environment to manipulate, deploy and exploit assemblies of components.
-
to define a complete design and technical environment for assembling of components and aspects, via a dedicated modelling tool for composition and a dynamic aspects oriented platform, which will be a next step of our JAC platform.