Towards an MDA-Oriented UML Profile for Distribution Raul Silaghi Frédéric Fondement
Software Engineering Lab Swiss Federal Institute of Technology Lausanne 3rd Key Workshop June 7-9, 2004
Towards an MDA-Oriented UML Profile for Distribution z Presentation out of an accepted paper for the next EDOC conference Silaghi, R.; Fondement, F.; Strohmeier, A.: Towards an MDA-Oriented UML Profile for Distribution. Proceedings of the 8th IEEE International Enterprise Distributed Object Computing Conference, EDOC, Monterey, CA, USA, September 20-24, 2004. IEEE Computer Society, 2004 (to appear). Also available as Technical Report, N° IC/2004/49, Swiss Federal Institute of Technology in Lausanne, Switzerland, May 2004.
© F.Fondement & R.Silaghi
-2-
June 07-09, 2004
Contents z On MDA and Platforms z Layered Platforms z Platform Integration z Conclusion
© F.Fondement & R.Silaghi
-3-
June 07-09, 2004
MDA Overview : The Y Pattern language used
PIM
Platform Independent Metamodel source language
Tr ansfor mati on Speci fi cati on Tr ansfor mation target language language used
PSM
Platform Specific Metamodel
z Can be iterative • More than one platform • Refinement steps • CIM->PIM
z Many other possibilities
© Object Management Group, Inc.:MDA Guide, V 1.0.1. omg/03-06-01 © F.Fondement & R.Silaghi
-4-
June 07-09, 2004
Platform Platform description model (PDM): z Domain-specific metamodel z Domain-specific profile • Stereotypes, Tag Definitions and Constraints
Platform and technology z Technology-Independent PDM vs. Technology-Dependent PDM z Platforms layers Platform integration z Guiding the transformation: “Wizard” approach © F.Fondement & R.Silaghi
-5-
June 07-09, 2004
Platform: Middleware z UML as a system modelling notation z Profiles as a platform modelling notation
Distribution
Concurrency
Transactions
What is remotely available in the system, and how to communicate?
What are the behaviours that cannot execute together ?
What are atomic behaviours ?
How to reach distributed elements with CORBA ?
What are the locks to place in CORBA ?
What CORBA transactional element ?
© F.Fondement & R.Silaghi
-6-
June 07-09, 2004
Platform: Middleware z UML as a system modelling notation z Profiles as a platform modelling notation
Distribution
© F.Fondement & R.Silaghi
Concurrency
-7-
Transactions
June 07-09, 2004
An example System «Interface» BankI +createAccount(name : String, bal : Double) : AccountI +getAccount(name : String) : AccountI +transfer(ac1 : String, ac2 : String, amount : Double)
«Interface» AccountI parameter
Account
Bank
-name : String -balance : Double
+createAccount(name : String, bal : Double) : AccountI +getAccount(name : String) : AccountI +transfer(ac1 : String, ac2 : String, amount : Double) #getAccountList() : Account [*]
bank
+getBalance() : Double +withdaw(amount : Double) +deposit(amount : Double) -setBalance(amount : Double)
1
© F.Fondement & R.Silaghi
+getBalance() : Double +withdaw(amount : Double) +deposit(amount : Double)
* accounts
-8-
June 07-09, 2004
Distribution
Distribution Profile
«profile» DistributionProfile
«metaclass» InstanceSpecification
«metaclass» Interface
«stereotype» Distributed
distributed
0..*
1..*
servants
«stereotype» Servant
{inv: self.classifier->forAll(c | c.conformsTo(self.distributed))}
© F.Fondement & R.Silaghi
-9-
June 07-09, 2004
Distribution
Platform integration z “The BankI is distributed” «metamodel» UML
«conform»
«profile» Distribution «conform»
«apply» System
MTL1-D
Distributed System
«Interface» «Distributed» BankI
«Distributed» servants = Set{b} «Interface» «Distributed» AccountI
Configuration
Bank
«Distributed» servants = Set{}
Account
Class Diagram Object Diagram «Servant» b :B a n k
© F.Fondement & R.Silaghi
- 10 -
«Servant» distributed= Set{BankI}
June 07-09, 2004
Distribution
Abstract Distribution Realization «profile» DistributionProfile «merge»
«profile» AbstractDistributionRealizationProfile
«metaclass» Comment
«stereotype» Servant servant
«stereotype» PublishedServant
1
expositions
«stereotype» Exposition
«stereotype» Publisher
1
exposed
«metaclass» Interface
*
1..* exposedInterfaces
*
publisher
«stereotype» InterfaceExposition
«stereotype» ServiceRegistry
«stereotype» NamingRegistry
«stereotype» NameExposition exposedNames : String [1..*]
© F.Fondement & R.Silaghi
- 11 -
June 07-09, 2004
Distribution
CORBA Distribution Realization
«profile» DistributionProfile
«profile» CORBADistributionRealizationProfile «stereotype» NamingRegistry
«merge» «profile» AbstractDistribution RealizationProfile
«stereotype» CORBANamingService
«merge»
© F.Fondement & R.Silaghi
host : String port : String
- 12 -
«stereotype» NameExposition
«stereotype» CORBANameExposition
June 07-09, 2004
Distribution
Platform integration z “The b servant is bound to a CORBA naming service at 127.0.0.1, on port 3028, with name BCV” «metamodel» UML
«profile» Distribution
«conform»
«merge»
«apply»
«profile» CORBA Distribution «conform»
CORBADistributedSystem
Distributed System
MTL2-D
«Servant» distributed= Set{Bank} «PublishedServant» expositions= Set{BankExposition}
Configuration
«Exposition» servant= b publisher= cns «NameExposition» exposedNames= Set{'BCV'} «CORBANameExposition»
«PublishedServant» b:Bank
«CORBANameExposition» BankExposition
«Servant» distributed= Set{NamingServiceExt} «PublishedServant» expositions= Set{} «Publisher» exposed= Set{BankExposition} «NamingRegistry»
«CORBANamingService» cns:NamingServiceExt
© F.Fondement & R.Silaghi
- 13 -
«CORBANamingService» host= '127.0.0.1' port= '3028'
June 07-09, 2004
Distribution
Platform integration
«m etam odel» UML
«profile» Distribution
«conform »
«conform » «apply»
System
MTL1-D
Configuration
«profile» CORBA Distribution
«m erge»
Distributed System
«conform » «apply» CORBA MTL2-D Distributed System
Plugin for Distribution with OpenORB CORBA in Java
Parallax
Java Code using OpenORB CORBA
Configuration
© F.Fondement & R.Silaghi
- 14 -
June 07-09, 2004
Conclusion z Platform separated into Concerns z Concerns refined into Technologies z Final support: extensible code generator z “Wizard” model transformation for integrating platforms z TBD: • • • • • •
More case studies More technologies More concerns More platforms More platform modelling languages More system modelling languages
© F.Fondement & R.Silaghi
- 15 -
June 07-09, 2004