Eric Cariou, Contribution à un Processus de Réification
d'Abstractions de Communication, PhD thesis, Université de
Rennes 1, école doctorale Matisse, June 2003
[thesis]
[slides]
[résumé]
[abstract]
[BibTeX]
Lors de la conception et du développement d'applications distribuées,
la communication et les interactions entre les composants répartis
représentent un point crucial. La spécification d'abstractions
d'interaction entre ces composants est donc un élément primordial lors
de la définition de l'architecture d'une application. Si bien souvent
des abstractions d'interaction de haut niveau sont définies au niveau
de la spécification, à celui de l'implémentation il est par contre
plus courant de ne trouver que des abstractions bien plus simples
(comme des appels de procédure à distance ou de la diffusion
d'événements). Pendant le raffinement qui mène à l'implémentation, ces
abstractions de haut niveau ont été diluées, dispersées à travers les
spécifications et implémentations des composants de
l'application.
Nous proposons un processus de réification
d'abstractions de communication ou d'interaction sous forme de
composants logiciels. Ce processus permet de conserver l'unité et la
cohérence d'une abstraction d'interaction pendant tout le cycle de
développement d'une application. Que l'on soit à un niveau de
conception abstraite, de conception d'implémentation, d'implémentation
ou de déploiement, l'abstraction réifiée et manipulée est toujours la
même. Ces composants logiciels sont aussi appelés médiums pour les
différencier des autres composants d'une application.
Le
processus est composé de plusieurs éléments. Le premier est une
méthodologie de spécification de médiums en UML. Cette spécification
est réalisée à un niveau abstrait, indépendamment de toute
implémentation. Dans la terminologie du MDA (Model-Driven
Architecture) de l'OMG, il s'agit d'une spécification de niveau PIM
(Platform Independent Model). Cette spécification est le contrat du
médium qui doit ensuite être respecté quel que soit le niveau de
manipulation considéré. Le deuxième élément est une architecture de
déploiement de médiums qui offre la flexibilité nécessaire pour
implémenter a priori n'importe quelle abstraction d'interaction.
Enfin, le troisième élément est un processus de raffinement qui permet
de transformer une spécification abstraite de médium en une ou
plusieurs spécifications d'implémentation prenant en compte
l'architecture de déploiement et différents choix de conception ou
d'implémentation. Dans la terminologie du MDA, le processus de
raffinement sert à transformer une spécification de niveau PIM en une
ou plusieurs spécifications de niveau PSM (Platform Specific Model).
During the development of distributed applications, communications and
interactions among remote components are a key-point. The
specification of interaction or communication abstractions among these
components is thus a major task during the definition of an
application architecture. If high-level abstractions are very often
defined at the specification level, yet, it is common to find only
much simpler abstractions at the implementation level (such as remote
procedure calls or event broadcasting). During the refinement process,
i.e. from specification to implementation, these high-level
interaction abstractions are lost and split among the component
specifications and implementations.
We propose a process of
reification of interaction or communication abstractions into software
components. The process allows the consistency and the unity of an
interaction abstraction to be maintained, from abstract specification
to implementation. The abstraction manipulated remains unchanged
throughout the software process, from abstract specification to
implementation and deployment through specification
implementation. These components are also called mediums in order to
differentiate them from standard software components of an
application.
The process is composed of three parts. The
first one is a medium specification methodology in UML, at an abstract
level, independently of any implementation. In the MDA (Model-Driven
Architecture, defined by the OMG) terminology, this specification is
done at PIM (Platform Independent Model) level. This specification is
the medium contract that has to be fulfilled at all the levels of the
software development process. The second part is a medium deployment
architecture that provides the necessary flexibility to implement, in
principle, any kind of communication or interaction abstraction. The
last part is a refinement process, enabling the transformation of an
abstract specification into one or several implementation
specifications, conforming to our deployment architecture and to the
design or implementation choices. In the MDA terminology, the process
enables the transformation of a PIM specification into one or several
PSM (Platform Specific Model) specifications.
@PhdThesis{phd-cariou-2003,
author = {Eric Cariou},
title = {{Contribution \`a un Processus de R\'eification d'Abstractions de Communication}},
school = {Universit\'e de Rennes 1, \'ecole doctorale Matisse},
year = {2003},
month = {June},
}
Eric Cariou, and Antoine Beugnard, The
Specification of UML Collaborations as Interactions Components,
at the Fifth International Conference on the Unified Modeling Language
(UML 2002), September 30 - October 4, 2002, Dresden, Germany, volume
2460 of Lecture Notes in Computer Science, Springer Verlag
[paper]
[slides]
[abstract]
[BibTeX]
One of the touchstones of Object-Oriented Design is that the
management of complexity is seldom located within any single
object. It should instead be an emerging property of the
collaborations within a society of objects, each one of these being as
simple as possible. These collaborations can easily be specified using
UML collaboration diagrams. We propose to reify UML collaborations as
interaction components. This allows the easy handling and reusing of
interaction abstractions among components at both specification and
implementation levels. This paper focuses on the specification of
these components. We propose criteria to define the type and the
`frontier of an interaction abstraction. We present a UML
collaboration specification methodology that deals with the
constraints of component specification.
@InProceedings{cariou-uml2002,
author = {Eric Cariou and Antoine Beugnard},
title = {{The Specification of UML Collaborations as Interaction Components}},
booktitle = {{The Fifth International Conference on the Unified Modeling Language (UML 2002)}},
pages = {352--367},
year = {2002},
volume = {2640},
series = {LNCS},
publisher = {Springer},
}
Eric Cariou, Antoine Beugnard, and Jean-Marc
Jézéquel, An Architecture and a Process for
Implementing Distributed Collaborations, at The 6th IEEE
International Enterprise Distributed Object Computing Conference
(EDOC 2002), IEEE Computer Society, September 2002
[paper]
[slides]
[abstract]
[BibTeX]
Collaborations (between objects) are increasingly being recognized as
fundamental building blocks to structure object-oriented design, and
they have made their way into UML. But very often the first class
aspect of a design level collaboration is lost during the detailed
design process, making it difficult to keep good traceability between
the design and the implementation. The problem is not simple, because
for any given collaboration abstraction, there might be several
possible design solutions depending on the many non-functional forces
impacting a given application. We propose a process and an
architecture in which the notion of collaboration is preserved from
analysis to design and implementation, while allowing the designer to
change his mind about which particular design trade-off is selected in
order to face changing non-functional requirements during
maintenance. We illustrate our approach with a case study inspired by
the real example of a large French railway company attempting to adapt
a flight reservation system to its own context.
@InProceedings{cariou-edoc2002,
author = {Eric Cariou and Antoine Beugnard and Jean-Marc J\'ez\'equel},
title = {{An Architecture and a Process for Implementing Distributed Collaborations}},
booktitle = {The 6th IEEE International Enterprise Distributed Object Computing Conference (EDOC 2002)},
year = {2002},
publisher = {IEEE Computer Society},
}