La lecture en ligne est gratuite
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
Télécharger Lire

Simplifying and unifying composition for industrial component models [Elektronische Ressource] / vorgelegt von Ursula Scheben

317 pages
INFORMATIK BERICHTE 337 - 5/2007 Simplifying and Unifying Composition for Industrial Component Models Ursula Scheben Fakultät für Mathematik und Informatik Postfach 940 D-58084 Hagen SimplifyingandUnifyingCompositionforIndustrialComponentModelsDissertationzurErlangungdesGradeseinesDoktorsderNaturwissenschaften(Dr. rer. nat.)Fakultat¨ fur¨ MathematikundInformatikderFernUniversitat¨ inHagenvorgelegtvonDipl. Inform. UrsulaSchebenHagen,Oktober2006AbstractInaworldofhighproductivitywithafocusonmaximizingprofit,itbecomesextremelyimportanttoproducenew,reliablesoftwareasquicklyandcheaplyaspossible. Compo nentbasedsoftwaredevelopment(CBD)promisedtoreachthisgoal. Byjustcomposingprefabricated,reusable,well testedcomponentstonewapplications,applicationdevel opmentshouldbecomemuchmoreproductiveandreliable. Applicationprogrammersshould beable toselect froma set ofsuitable componentspotentially producedby dif ferentvendors.Industry contributed to this goal by introducing several different component mod elsase.g.JavaBeans,EnterpriseJavaBeans(EJBs),theComponentObjectModel(COM),the Corba Component Model (CCM), and most recently .NET. Each modeldefinesitsownstandardforcomponentlookup,instantiation,accesstothefunctional ity of the component, communication, compositiontechniques available etc.
Voir plus Voir moins

INFORMATIK
BERICHTE

337 - 5/2007






Simplifying and Unifying Composition for
Industrial Component Models



Ursula Scheben













Fakultät für Mathematik und Informatik
Postfach 940
D-58084 Hagen SimplifyingandUnifyingCompositionfor
IndustrialComponentModels
Dissertation
zurErlangungdesGradeseines
DoktorsderNaturwissenschaften(Dr. rer. nat.)
Fakultat¨ fur¨ MathematikundInformatikder
FernUniversitat¨ inHagen
vorgelegtvon
Dipl. Inform. UrsulaScheben
Hagen,Oktober2006Abstract
Inaworldofhighproductivitywithafocusonmaximizingprofit,itbecomesextremely
importanttoproducenew,reliablesoftwareasquicklyandcheaplyaspossible. Compo
nentbasedsoftwaredevelopment(CBD)promisedtoreachthisgoal. Byjustcomposing
prefabricated,reusable,well testedcomponentstonewapplications,applicationdevel
opmentshouldbecomemuchmoreproductiveandreliable. Applicationprogrammers
should beable toselect froma set ofsuitable componentspotentially producedby dif
ferentvendors.
Industry contributed to this goal by introducing several different component mod
elsase.g.JavaBeans,EnterpriseJavaBeans(EJBs),theComponentObjectModel(COM),
the Corba Component Model (CCM), and most recently .NET. Each model
definesitsownstandardforcomponentlookup,instantiation,accesstothefunctional
ity of the component, communication, compositiontechniques available etc. Although
thesecomponentmodelsalreadyareabigsteptowardsthegoalsofCBD,especiallythe
composition techniques supported are still too restricted, not simple enough, and vary
frommodeltocomponentmodel.
Thus, the main goal of this thesis is to establish a basis and to develop techniques
for simplifying and unifying the composition process for components belonging to in
dustrial component models. We introduce a unifying component model comprising
the main features of current industrial component models. This model provides some
additional, useful features, as e.g. the support of bi directional connections which can
be established by a certain composition mechanism. Components of this model can be
composed to yield components of a higher level of abstraction. These composite com
ponents are described by a language which supports late binding mecha
nismsthroughstrictinterfacebasedprogramming. Ascomponentsofindustrialcompo
nentmodelscanbeintegratedintoourunifyingmodel,allitsfeaturesarealsoavailable
for existing industrial component models. Compositions can be checked for consis
tency based on a type system we define for our component model. This type system
respects amongst others conditions for bi directional connections and a certain kind of
aliascontrol. Besidesconsistencychecking,thetypesystemisusedtodecidewhethera
componentcanbereplacedbyanotheronewithoutinvalidatinganyexistingcomposite
referringtothecomponenttobereplaced. Tofurthersimplifythecompositionprocess,
we focus on tool support for visual composition. Some useful features are introduced,
as e.g. the guided establishment of needed interconnections and the colored depiction
ofconstituentsofacompositecausingincorrectcompositions.
iiiAcknowledgements
I started my work at this thesis during the EU project EASYCOMP. I thank Prof. Dr.
Poetzsch Heffterforgivingmethechancetoparticipateinthisprojectandforfirstdis
cussionsonthetopicofsimplifyingthecompositionprocess.
Prof. Dr. Steimannsupportedmeduringthelasttwoyearsinvariousways. Firstof
all,hebecamemyPh.D.supervisoralthoughIstartedmyworkwithProf. Dr. Poetzsch
Heffter. Thanks a lot for doing so. In addition to all his duties he found time for in
tensive discussions on componentware and for proof reading my thesis. He gave me
valuablehintsonhowtoimproveit. Lastbutnotleastherelievedmefrommanytasks
concerningteachings.
I am also indebted to Prof. Dr. Knoop for becoming my second referee. Because of
his numerous tasks at the Vienna University of Technology and his research activities,
his time is rare. Nevertheless he spent his free time to proof read the 300 pages of
my thesis and gave me valuable feedback. Furthermore he had always time for my
problemsandtoencourageme. Manythanks.
IthankMonikaLucke¨ forherongoingsupportduringthelastyearsandthepleasant
working atmosphere she disseminated. Thanks go to Ingolf Grebe for drawing several
ofmyfigures.
I would like to thank Prof. Dr. Jor¨ g Roth and Dr. Daniela Keller for their warm
response when I switched to the chair of programming systems and for reviewing my
thesis. EspeciallyDr. DanielaKellerencouragedmeseveraltimestofinishmyworkat
thisthesis. Althoughthisyearshegotsevereproblemswithhereyes,shecarefullyread
severaliterationsofmythesis. Inadditionsherelievedmeofsupportingseveralofour
courses.
Specialthanksgotomyhusbandandmydaughterfortheirongoingunderstanding
and encouragement. In the last months, my time for them was really rare. They for-
went joint holiday and leisure. Without the support of my husband I would not have
succeededinfinishingthisthesis.
iiiivContents
1 Introduction 1
1.1 AVisionofaBuilderTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 ContributionsmadebythisThesis . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 OrganisationoftheThesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Foundations 11
2.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 ComponentModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1 JavaBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1.1 ComponentModel . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1.2 CompositionTechniquesandConsistency . . . . . . . . . 22
2.2.1.3 TypeSystem . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1.4 TypeMetadata . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1.5 Compatibility/Substitutability . . . . . . . . . . . . . . . 29
2.2.2 ComponentObjectModel(COM) . . . . . . . . . . . . . . . . . . . 30
2.2.2.1 ComponentModel . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.2.2 CompositionTechniques . . . . . . . . . . . . . . . . . . . 37
2.2.2.3 TypeSystem . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2.2.4 TypeMetadata . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2.2.5 Consistency/CorrectnessofaComposition . . . . . . . . 48
2.2.2.6 Compatibility/Substitutability . . . . . . . . . . . . . . . 48
2.2.3 .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.3.1 .NETFramework . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.3.2 CompositionTechniques . . . . . . . . . . . . . . . . . . . 60
2.2.3.3 TypeSystem . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.3.4 TypeMetadata . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.2.3.5 Consistency/CorrectnessofaComposition . . . . . . . . 67
2.2.3.6 Compatibility/Substitutability . . . . . . . . . . . . . . . 67
3 ImprovementsoverExistingApproaches 68
3.1 ComponentModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2 CompositionTechniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.2.1 IndustrialComponentModels . . . . . . . . . . . . . . . . . . . . . 73
vvi CONTENTS
3.2.2 VisualAssembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.3 TypeSystemsforComponents . . . . . . . . . . . . . . . . . . . . . . . . . 77
4 OurApproach 82
4.1 TheUnifyingComponentModel(UCM) . . . . . . . . . . . . . . . . . . . . 85
4.1.1 Basic . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.1.1.1 GeneralBasicConcepts . . . . . . . . . . . . . . . . . . . . 85
4.1.1.2 Plug,AHigherLevelConcept . . . . . . . . . . . . . . . . 99
4.1.1.3 ConstraintsonConnections . . . . . . . . . . . . . . . . . 106
4.1.1.4 SummaryofConcepts . . . . . . . . . . . . . . . . . . . . . 109
4.1.2 ComponentInterfaceSpecifications . . . . . . . . . . . . . . . . . . 110
4.1.2.1 General . . . . . . . . . . . . . . . . . . . . . 110
4.1.2.2 AdditionalsupportingAutomaticConnec
tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.2 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.2.1 InterconnectionsbetweenComponentInstances . . . . . . . . . . . 119
4.2.1.1 Connectionsviaservices . . . . . . . . . . . . . . . . . . . 119
4.2.1.2viaplugs . . . . . . . . . . . . . . . . . . . . . 120
4.2.2 HierarchicalComposition . . . . . . . . . . . . . . . . . . . . . . . . 120
4.2.3 MoreDetailsonInterconnectionsandExports . . . . . . . . . . . . 126
4.2.3.1 DetailsonInter . . . . . . . . . . . . . . . . . . 127
4.2.3.2onExportsofPlugs . . . . . . . . . . . . . . . . . . 129
4.3 UsedTypeSystemforUCM Components . . . . . . . . . . . . . . . . . . . 132
4.3.1 TypeDefinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.3.2 Subtyping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.3.2.1 SubtypingofServices . . . . . . . . . . . . . . . . . . . . . 138
4.3.2.2ofPlugs . . . . . . . . . . . . . . . . . . . . . . 140
4.3.2.3 SubtypingofComponentInterfaces . . . . . . . . . . . . . 145
4.4 CorrectnessofaComposition . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4.4.1 InterconnectionsbetweenComponentInstances . . . . . . . . . . . 152
4.4.2 ExportofServicesandPlugs . . . . . . . . . . . . . . . . . . . . . . 157
4.5 ComponentLookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.6 InstantiationofCompositeUCM Components . . . . . . . . . . . . . . . . 163
4.7 HelperComponents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
4.8 Compatibility/Substitutability . . . . . . . . . . . . . . . . . . . . . . . . . 166
4.8.1 PolymorphicComponentInstances . . . . . . . . . . . . . . . . . . 166
4.8.2 ReplacingComponentsbecauseofUpgradesorChangeofVendors175
4.9 RealisationofCompositeUCM Components . . . . . . . . . . . . . . . . . 176
4.10 IntegrationofIndustrialComponentModels . . . . . . . . . . . . . . . . . 182
4.10.1 JavaBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
4.10.1.1 ComponentImplementationsandComponentInterfaces
Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . 184CONTENTS vii
4.10.1.2 IntegrationofexistingConceptsandSupportforServices
andPlugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
4.10.2 ComponentObjectModel(COM) . . . . . . . . . . . . . . . . . . . 190
4.10.2.1 Component Implementations and Component Interface
Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . 190
4.10.2.2 IntegrationofexistingConceptsandSupportforServices
andPlugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
4.10.3 .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
4.10.3.1 ComponentImplementationsandComponentInterfaces
Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . 201
4.10.3.2 IntegrationofexistingConceptsandSupportforServices
andPlugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
4.10.4 ComparingIntegrationfortheVariousComponentModels . . . . 211
4.11 SomeAlgorithmsSupportingVisualComposition . . . . . . . . . . . . . . 213
4.11.1 AutomaticInterconnectionsUsingPlugs . . . . . . . . . . . . . . . 213
4.11.1.1 CheckingforComplementaryPlugs . . . . . . . . . . . . 215
4.11.1.2 ServiceMapping . . . . . . . . . . . . . . . . . . . . . . . . 219
4.11.2 ComposingPlugswhenCreatingCompositeUCM Components . 221
5 Evaluation 223
5.1 TheBPCEasa“ProofofConcept” . . . . . . . . . . . . . . . . . . . . . . . 223
5.2 TheCC Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
6 RelatedWork 234
6.1 Component OrientedLanguages . . . . . . . . . . . . . . . . . . . . . . . . 234
6.1.1 ArchJava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
6.1.2 ComponentJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
6.1.3 ComponentPascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
6.1.4 Others . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
6.2 CompositionLanguages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
6.2.1 BeanMarkupLanguage . . . . . . . . . . . . . . . . . . . . . . . . . 246
6.2.2 BeanPlans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
6.2.3 Piccola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6.3 ArchitectureDescriptionLanguages . . . . . . . . . . . . . . . . . . . . . . 251
6.3.1 Darwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
6.3.2 Acme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
6.3.3 Wright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
6.4 TheUnifiedModelingLanguage2.0 . . . . . . . . . . . . . . . . . . . . . . 259
6.4.1 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
6.4.2 InternalStructureofaComponent . . . . . . . . . . . . . . . . . . . 262
6.4.3 ComparisonoftheUML andourUCM Approach . . . . . . . . . 267

Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin