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.