logo inria

News
INRIA
Scientific Research
Valorization and Transfer
Publications and Documentation
Working and Training at INRIA

 directory site map
 advanced search and help

Information de meme niveau :

Protocols | Security and mobility | Satellites links | Sending data massively | Wireless networks | Web | Natural languages | Software ergonomics | New usages | Scientific calculation | Algorithms | Smart cards |

-----------------------
Software gets adapted to the complexity of new usages
-----------------------

Presentation -   Distributed applications -  Approche MDA -  Domaines applicatifs -  Carroll

In the last ten years, free (de facto standards) or standardized software technology has changed significantly. Such approaches as component models and model engineering now are the core of much research, especially at INRIA.

Software design and everything that goes with it (development tools, assembly, tests, deployment, execution, administration, and so on), which is globally referred to as software engineering, is changing following the increasing complexity of developed systems. Such systems are more and more often embedded, distributed over several machines and work in real time. It is now commonplace for a company to develop software with several million lines of code. On the other hand, productivity, quality and flexibility demands have continuously risen. All these changes entail a definite need for automation.

The main current developments in software engineering partly stem from the deployment of object technologies, which are now widespread in computer system analysis, design and implementation. In 1991, the OMG (Object Management Group), the standardization organization dedicated to such technology, defined a reference software architecture for distributed applications—several components that cooperate over several sites—using object technology. This architecture called Corba makes it possible for applications developed in different languages to communicate with each other, even if they are not on the same computer. Corba is a kind of middleware, a class of software that takes charge of intermediate functions between data transport and the applications, such as communication, task allocation functions and such properties as security. This standard is widely used in industry, especially for corporate server information systems and in command and control military applications, as well as for certain applications in industry and telecommunications.

Automatically deploying software for distributed applications

Being interested in the design of complex distributed applications with specific constraints, research scientists of project JACQUARD rapidly took an interest in Corba. In order to solve certain problems in the use of the software, they developed a scripting language for Corba (a programming language with specific properties) in the context of Philippe Merle's doctoral thesis. Thus, in 1997 when the OMG issued a call for proposals on the topic, the team proposed its solution called Corba Scripting Language, which was accepted in 2000. Researchers got familiar with the functioning of the OMG on this occasion and followed the work carried out in the other work groups, concerning in particular models based on software components, an approach initiated by the OMG in 1997 that is especially adapted to distributed applications. As a matter of fact, object models make it possible to build software but cannot for example automatically deploy software over a set of machines, as is necessary in distributed applications. Component based models transparently support this functionality. JACQUARD researchers soon joined the dedicated work group and finally took the helm thereof in 2000. The Corba standard integrating the component model was issued in 2003.

Up to 2002 they were simultaneously experimenting on component models in their own prototype software, a platform called OpenCCM developed in the framework of the ObjectWeb consortium —a consortium created by INRIA, France Telecom and Bull to develop freely available, quality middleware. Research and development was then continued in the framework of national (RNTL IMPACT, RNRT COMPiTV, ACI GRID RMI) and European projects (IST COACH, ITEA OSMOSE), especially with Thales and a Greek company called Intracom. OpenCCM has been freely available over the Internet since 2003. It was downloaded more than 2,500 times and is one of the two OMG reference platforms to implement the OMG component model standard.

At the beginning of the 1990s, no less than about fifty object modeling methods had been developed. At the end of 1997, in order to maintain a certain uniformity, the OMG standardized the first unified object modeling formalism, UML (Unified Modeling Language). Industry rapidly adopted this code generation technique from models, an approach based on graphical representations. Each company developed its UML variant, dedicated to its applications. These are called dedicated languages and UML has become one dedicated language among others. Currently, the two main players in the field are IBM and Microsoft. Both have developed their own implementation platform and associated tools: Eclipse for IBM and Visual Studio for Microsoft.

The MDA approach

One of the solutions that could make it possible to harmonize such slightly anarchic developments and ensure the compatibility and interoperability of these dedicated languages is model engineering. This software design methodology is the object of much research throughout the world. It was accepted by the OMG in November 2000 as a major approach called MDA™ (Model Driven Architecture). The objectives are multiple and ambitious: to automatically generate code, to easily and automatically pass from one model to another, from an abstraction level to another, or from a given application to another in order to automatically generate software component tests, for example. The approach is based on several already established technical standards: such languages as UML, modeling languages such as MOF (Meta Object Facility) and above all model transformation languages such as QVT (Query View Transformation), which is in the process of being standardized. QVT is a model transformation language specification that makes it possible to adapt a model to new constraints, and to transform any dedicated language into another. This language lies at the heart of the success of the MDA approach. The OMG is planning to standardize QVT in december 2005.

Two INRIA teams, TRISKELL in Rennes and ATLAS in Nantes, are carrying out research in model engineering. They explored two different and complementary directions concerning model transformation to adapt it to the users, and developed two model transformation languages, which are in a way QVT implementations: ATL (ATLAS Transformation Language) by ATLAS and MTL (Model Transformation Language) by TRISKELL.

ATL is a model transformation language intended for data engineering, in other words for information systems and database management systems. In effect, the size of such systems keeps growing, the data they contain is increasingly heterogeneous and complex, and the applications making use of them more and more varied. ATL stems from research carried out in collaboration by INRIA, the University of Nantes and company located in Brest, TNI-Software. ATL and its programming environment on IBM's Eclipse platform have been officially available as free software since October 2004, on the Generative Model Transformer site. ATL was awarded the IBM Eclipse Innovation Prize that same year. Simultaneously, the team is implementing the same principles following Microsoft's approach, in the framework of a research agreement, and is extending the functionalities of the operators beyond transformation by taking into account model weaving for example. This work is mainly done in industrial collaboration projects, such as the ModelWare European project steered by Thales. Close partnerships with other French companies, such as the Sodifrance group, made it possible to develop other tools that complement ATL in the framework of a research platform in model engineering (AMMA).

MTL is a generic object language, a basic building block for developing frameworks (a kind of application sketch) of model transformation. TRISKELL is interested in frameworks allowing for powerful semantic operations based on algebraic operators. MTL is for example especially well adapted to the control of software components, with the goal of ensuring the reliability of their assembly in the context of distributed applications. The language makes it possible to automatically generate software component tests. It is another way of taking advantage of model engineering, by changing representation mode. As a matter of fact, testing software components and verifying their reliability before assembly has become a sensitive and often very costly step before the deployment of an application. TRISKELL researchers had already worked on the topic in the framework of a national project with France Telecom, Gemplus and Softeam to define test techniques in UML. MTL is available online as free software (modelware.inria.fr).

Proposing solutions for different application areas

In addition, distributed applications are more and more embedded and in real time as in cell phones or car and aircraft systems. To model such complex embedded systems, AOSTE researchers (Sophia Antipolis) have been developing for twenty years so-called reactive synchronous formalisms, called RTE-ML (Real Time Embedded-Meta Language) such as Esterel and the SyncCharts. In the final analysis, such languages are rather close to UML state and activity behavioral diagrams that are indispensable in the context of distributed applications. The approach was of immediate interest to the companies that were developing UML for embedded systems, led by Thales. In 2001, AOSTE researchers designed an UML-compatible RTE-ML profile in the framework of a European project with Thales, Esterel Technologies (an INRIA startup), Nokia and Finnish universities.

ATLAS researchers are also interested in a particular application of model engineering: finding generic solutions to automatically renew the old computer systems programmed several dozens of years ago (for example in Cobol, PL/1 or Ada) in order to adapt them to modern technological environments. The OMG launched an initiative of the subject in 2003 to solve this large scale industrial problem, the importance of which was already highlighted on the occasion of the year 2000 and that of switching to the euro. The AMMA model engineering experimental platform with its various components (transformation, weaving, projection, global management of models) is the basis of such reverse-engineering for information systems which often entails hard data engineering problems. Certain tools developed by ATLAS should be directly applicable to this especially important industrial problem.Carroll: INRIA, a partner that cannot be ignored in software engineering

In March 2003, in the framework of the development of their electronic defense systems (sea, land and air), Thales initiated a three year partnership called Carroll with the CEA and INRIA in the fields of model software engineering and middleware technology. INRIA naturally contributes to this partnership due to its recognized competence in the fields of embedded, real time computing, distributed applications and middleware. INRIA projects ATLAS, TRISKELL and AOSTE initiated three of the four Carroll projects. In particular, ATLAS and TRISKELL are contributing to the development of a programming language compatible with QVT. In addition, TRISKELL develops software component test automatic generation methods, and AOSTE researchers aim at standardizing a solution stemming from their RTE-ML profile at the OMG, that is adapted to embedded, real time systems. They proposed a Request for Proposals (RFP) on the needs in the field voted on in January 2005. They should be in a favorable position to answer this RFP based on their previous work.

Carroll: INRIA, a partner that cannot be ignored in software engineering

In March 2003, in the framework of the development of their electronic defense systems (sea, land and air), Thales initiated a three year partnership called Carroll with the CEA and INRIA in the fields of model software engineering and middleware technology. INRIA naturally contributes to this partnership due to its recognized competence in the fields of embedded, real time computing, distributed applications and middleware. INRIA projects ATLAS, TRISKELL and AOSTE initiated three of the four Carroll projects. In particular, ATLAS and TRISKELL are contributing to the development of a programming language compatible with QVT. In addition, TRISKELL develops software component test automatic generation methods, and AOSTE researchers aim at standardizing a solution stemming from their RTE-ML profile at the OMG, that is adapted to embedded, real time systems. They proposed a Request for Proposals (RFP) on the needs in the field voted on in January 2005. They should be in a favorable position to answer this RFP based on their previous work.

--------------------------------
back to top    |next A standard for computation consumers    | home page Valorization
© INRIA - updated 08/29/2006 - dri-webmaster@inria.fr