Date post: | 18-Dec-2015 |
Category: |
Documents |
View: | 220 times |
Download: | 3 times |
OMG’s Model Driven OMG’s Model Driven ArchitectureArchitecture
Davide BuscaldiDavide Buscaldi
D.I.S.I.D.I.S.I.
SummarySummary
1. Introduction1. Introduction 2. MDA Overview2. MDA Overview 3. Developing in MDA3. Developing in MDA 4. MDA in the Practice4. MDA in the Practice 5. References5. References
A heterogeneous world…A heterogeneous world…
Programming languages: Programming languages: (see also: the DoD survey) ~3 million COBOL Programmers~3 million COBOL Programmers ~1.6 million VB Programmers~1.6 million VB Programmers ~1.1 million C/C++ Programmers~1.1 million C/C++ Programmers
Operating systems:Operating systems: Unix, MacOS, Windows(3.1->XP),PalmOSUnix, MacOS, Windows(3.1->XP),PalmOS Embedded devicesEmbedded devices
Networks:Networks: Ethernet, IP, USB, FireWireEthernet, IP, USB, FireWire Bluetooth, 802.11b, HomeRFBluetooth, 802.11b, HomeRF
Where can we agree?Where can we agree?
Hetereogenity hinders the Hetereogenity hinders the development of enterprise distributed development of enterprise distributed systemssystems
There will not be consensus onThere will not be consensus on HardwareHardware Operating systemsOperating systems Network protocolsNetwork protocols Programming languagesProgramming languages
We can agree at an higher levelWe can agree at an higher level MiddlewareMiddleware
Hetereogenity hinders the Hetereogenity hinders the development of enterprise distributed development of enterprise distributed systemssystems
There will not be consensus onThere will not be consensus on HardwareHardware Operating systemsOperating systems Network protocolsNetwork protocols Programming languagesProgramming languages
We can agree at an higher levelWe can agree at an higher level MiddlewareMiddleware
MiddlewareMiddleware
A software layer that masks A software layer that masks hetereogeneityhetereogeneity
Placed between operating systems Placed between operating systems and application componentsand application components
Middleware proliferationMiddleware proliferation
Middleware itself has proliferated:Middleware itself has proliferated: CORBACORBA COM / DCOM / MTSCOM / DCOM / MTS Java / EJBJava / EJB XML / SOAPXML / SOAP C# / .NETC# / .NET
None of them prevails over the None of them prevails over the othersothers
The problem remainsThe problem remains
The Object Management The Object Management Group (OMG)Group (OMG)
An open membership and no-profit An open membership and no-profit consortiumconsortium
Produces and mantains computer Produces and mantains computer industry specifications for industry specifications for interoperable enterprise interoperable enterprise applicationsapplications
Who are OMG?Who are OMG?
OMG’s MilestonesOMG’s Milestones
1989
1991
1996
1997
2001
OMG is OMG is foundedfounded
CORBA CORBA 1.0, IDL1.0, IDL
CORBA CORBA 2.02.0
UML, MOF, UML, MOF, XMI, CWMXMI, CWM
MDAMDA
What is the MDA?What is the MDA?
An approach to IT system An approach to IT system specification that separates the specification that separates the specification of system functionality specification of system functionality from the specification of the from the specification of the implementation of implementation of thatthat functionality functionality on a particular technology on a particular technology platform
““Design once, build it on any Design once, build it on any platform”platform”
Basic concepts of MDABasic concepts of MDA
A A modelmodel is a formal specification of the is a formal specification of the function, structure and/or behaviour of a function, structure and/or behaviour of a systemsystem Examples:Examples:
Source code is a modelSource code is a model An UML-based specification is a modelAn UML-based specification is a model
Models of different systems are Models of different systems are structured explicitly into:structured explicitly into: Platform Independent Models (PIM)Platform Independent Models (PIM) Platform Specific Models (PSM)Platform Specific Models (PSM)
Platform Independent Platform Independent Model (PIM)Model (PIM)
A “formal” specification of the A “formal” specification of the structure and function of a system structure and function of a system that abstracts away technical that abstracts away technical detaildetail
Expressed using UMLExpressed using UML
Platform Specific Model Platform Specific Model (PSM)(PSM)
Specifies how the functionality Specifies how the functionality specified in a PIM is realized on a specified in a PIM is realized on a particular platformparticular platform
Expressed using UML extended Expressed using UML extended with platform specific with platform specific UML profiles
MDA metamodelMDA metamodel
MOF
Other languages
UML
Metamodel
PIM Mapping techniques
PSM Mapping techniques
PIM
PSM
Infrastructure
<<expressed <<expressed with>>with>>
<<expressed <<expressed with>>with>>
<<expressed <<expressed with>>with>>
<<based <<based on>>on>>
1..n1..n
<<based <<based on>>on>>
1..n1..n
Refactoring Refactoring from PSM to from PSM to PIMPIM
<<described <<described with>>with>>
1..n1..n
<<described <<described with>>with>>
1..n1..n
Mapping Mapping from PIM to from PIM to PIMPIM
1..n1..n
Mapping Mapping from PIM to from PIM to PSMPSM
1..n1..n
Mapping Mapping from PSM to from PSM to PSMPSM
1..n1..n
<<depends <<depends on>>on>>
<<independant <<independant of>>of>>
MDA in a SnapshotMDA in a Snapshot
Core Core TechnologieTechnologie
ss
Core Target Core Target PlatformsPlatforms
Pervasive Pervasive ServicesServices
Vertical Vertical DomainsDomains
System Development System Development Lifecycle and the MDA Lifecycle and the MDA approachapproach
UML MOF UML MOF CWMCWM
TimeTime
PIM to PIM PIM to PIM mappingsmappings
PIM to PSM PIM to PSM mappings mappings
(projection on (projection on a specific a specific platform)platform)
PSM to PSM to PSM PSM
mappingsmappings
Developing in MDA – Step Developing in MDA – Step 1:1:the PIM (1/2)the PIM (1/2)
All MDA development projects start with All MDA development projects start with the creation of a PIMthe creation of a PIM
PIM at this level represents business PIM at this level represents business functionality and behaviour, undistorted functionality and behaviour, undistorted by technology detailsby technology details
MDA application-modeling tools contain MDA application-modeling tools contain representations of Pervasive Services representations of Pervasive Services and Domain Facilities allowing them to and Domain Facilities allowing them to be used and/or incorporated in the be used and/or incorporated in the application via a menu selectionapplication via a menu selection
Developing in MDA – Step Developing in MDA – Step 1:1:the PIM (2/2)the PIM (2/2)
PIM
Pervasive Services ModelCallsCalls
Domain Facilities
Model
CallsCalls
Developing in MDA – Step Developing in MDA – Step 2:2:the PSM (1/2)the PSM (1/2)
Once the first iteration is complete, Once the first iteration is complete, the PIM is input to the mapping the PIM is input to the mapping step which will produce a PSMstep which will produce a PSM
Code is partially automatic and Code is partially automatic and partially hand-writtenpartially hand-written
PIM can be mapped either to a PIM can be mapped either to a single platform or to multiple single platform or to multiple platformsplatforms
Developing in MDA – Step Developing in MDA – Step 2:2:the PSM (2/2)the PSM (2/2)
PIM
CORBA Model
Maps toMaps to
Java/EJB Model
Maps toMaps to
Other Model……
Maps toMaps to
Developing in MDA – Step Developing in MDA – Step 3:3:Generating Application Generating Application (1/2)(1/2)
An MDA tool generates all or most An MDA tool generates all or most of the implementation code for the of the implementation code for the deployment technology selected by deployment technology selected by the developerthe developer
Re-integration on new platforms Re-integration on new platforms can be done by reverse engineering can be done by reverse engineering the existing application into a the existing application into a model and redeploymodel and redeploy
Developing in MDA – Step Developing in MDA – Step 3:3:Generating Application Generating Application (2/2)(2/2)
PIM
CORBA Model
Maps toMaps to
Java/EJB Model
Maps toMaps to
Other Model……
Maps toMaps to
CORBA Java/EJB Other……
Maps toMaps to Maps toMaps to Maps toMaps to
MDA Adoption StatusMDA Adoption Status
Adoption of MDA is at an early Adoption of MDA is at an early stagestage
UML profiles underway:UML profiles underway: CORBA (adopted)CORBA (adopted) EJB (adopted)EJB (adopted) SOAP/XML (in process)SOAP/XML (in process) .NET (to be started).NET (to be started)
UML 2.0 in processUML 2.0 in process
Future TrendsFuture Trends
““A market for MDA will be created as OO A market for MDA will be created as OO modeling and development tool vendors modeling and development tool vendors incorporate MDA into their offerings”incorporate MDA into their offerings”
““It will be two or three years before It will be two or three years before mature MDA tools emerge”mature MDA tools emerge”
““This is the most exciting enterprise This is the most exciting enterprise software initiative I’ve seen since UML” software initiative I’ve seen since UML” (Paul Harmon, Senior consultant and Market (Paul Harmon, Senior consultant and Market Analyst, CUTTER consortium, 2001)Analyst, CUTTER consortium, 2001)
Early AdoptersEarly Adopters
Interactive Objects Software GmbHInteractive Objects Software GmbH ArcStylerArcStyler
Kennedy CarterKennedy Carter iUML, iCCGiUML, iCCG
KabiraKabira Adaptive Realtime InfrastructureAdaptive Realtime Infrastructure
Secant technologiesSecant technologies Model-Driven InfrastructureModel-Driven Infrastructure
Sun’s NetBeans was added to this Sun’s NetBeans was added to this list on May 7th 2002list on May 7th 2002
……stay tuned!stay tuned!
Conclusions (1/2)Conclusions (1/2)
Abstracting out the structure and Abstracting out the structure and behaviour of a system in the PIM behaviour of a system in the PIM makes easier:makes easier: To validate the correctness of the To validate the correctness of the
modelmodel To produce implementations on To produce implementations on
different platformsdifferent platforms The application of tool supported The application of tool supported
solutionssolutions
Conclusions (2/2)Conclusions (2/2)
The major drawback is that MDA The major drawback is that MDA does not provide a standard for the does not provide a standard for the specification of mappingsspecification of mappings Different implementation of mappings Different implementation of mappings
can generate very different code or can generate very different code or modelsmodels
This can create dependencies between This can create dependencies between the software and the mapping solution the software and the mapping solution usedused
Bibliography (1/3)Bibliography (1/3) MDA Specification:MDA Specification:
Model Driven Architecture specification, OMG Model Driven Architecture specification, OMG Architecture board, July 2001Architecture board, July 2001
Introduction and overview of MDA:Introduction and overview of MDA: Model Driven Architecture: An introduction, R.M. Model Driven Architecture: An introduction, R.M.
SoleySoley Model Driven Architecture, Richard M.Soley (OMG Model Driven Architecture, Richard M.Soley (OMG
CEO), November 2000CEO), November 2000 CWM and MOF definitions:CWM and MOF definitions:
Model-Driven Architecture: Vision, Standards and Model-Driven Architecture: Vision, Standards and Emerging Technologies, John D.Poole, ECOOP Emerging Technologies, John D.Poole, ECOOP April 2001April 2001
Bibliography (2/3)Bibliography (2/3) CWM examples:CWM examples:
Enterprise CORBA 2001 – CWM, Pete RivettEnterprise CORBA 2001 – CWM, Pete Rivett System Development Lifecycle in MDA:System Development Lifecycle in MDA:
Developing in OMG’s Model-Driven architecture, Developing in OMG’s Model-Driven architecture, Jon Siegel, November 2001Jon Siegel, November 2001
Middleware definition:Middleware definition: Software Engineering and Middleware: A Software Engineering and Middleware: A
Roadmap, W.EmmerichRoadmap, W.Emmerich The DoD survey on PLs:The DoD survey on PLs:
A survey of Computer Programming Languages A survey of Computer Programming Languages Currently used in the DoD, A.Hook et al., 1995Currently used in the DoD, A.Hook et al., 1995
Bibliography (3/3)Bibliography (3/3)
Conclusions and future trends:Conclusions and future trends: Pratical experiences in the application Pratical experiences in the application
of MDA, M. de Miguel et al.of MDA, M. de Miguel et al. MDA: An Idea whose time has come, MDA: An Idea whose time has come,
Paul HarmonPaul Harmon
Kennedy Carter’s xMDA:Kennedy Carter’s xMDA: F-16 Modular Mission Computer F-16 Modular Mission Computer
Application Software, Lauren E.Clark et Application Software, Lauren E.Clark et al.al.
WebliographyWebliography
MDA documentation:MDA documentation: http://www.omg.org/mdahttp://www.omg.org/mda
ArcStyler:ArcStyler: http://www.io-software.com/ashttp://www.io-software.com/as
Kennedy Carter’s iUML and iCCG:Kennedy Carter’s iUML and iCCG: http://www.kc.comhttp://www.kc.com
NetBeans:NetBeans: http://www.netbeans.orghttp://www.netbeans.org
PlatformPlatform
Technological and engineering Technological and engineering details that are irrelevant to the details that are irrelevant to the fundamental functionality of a fundamental functionality of a software componentsoftware component
UML ProfileUML Profile A standardized set of extensions A standardized set of extensions
(stereotypes and tagged values)(stereotypes and tagged values) Defines an UML environment Defines an UML environment
tailored to a particular use, such as tailored to a particular use, such as modeling for a specific platformmodeling for a specific platform
UML profile for CORBA was UML profile for CORBA was standardized in 2000 standardized in 2000
Common Warehouse Common Warehouse Metamodel (1/2)Metamodel (1/2) OMG’s data warehouse standardOMG’s data warehouse standard Enable easy interchange of Enable easy interchange of
warehouse and business intelligence warehouse and business intelligence metadata betweenmetadata between warehouse toolswarehouse tools warehouse platforms andwarehouse platforms and metadata repositoriesmetadata repositories
in distributed heterogenous environments.in distributed heterogenous environments.
Defined using MOFDefined using MOF
Common Warehouse Common Warehouse Metamodel (2/2)Metamodel (2/2)
Comprised of a number of constituent Comprised of a number of constituent metamodels representing:metamodels representing: Data resourcesData resources AnalysisAnalysis Warehouse managementWarehouse management Foundational componentsFoundational components
of a typical data warehousing/business of a typical data warehousing/business intelligence environmentintelligence environment
Drawn using UML profile for MOFDrawn using UML profile for MOFMore on More on CWM…CWM…
CWM: correspondances CWM: correspondances between modelsbetween models
Catalog/Schema
Table ColumnRelational
RecordRecordFile FieldRecordDef
XMLSchema AttributeElementType
ClassPackageObjectOriented
Attribute
RowSet Row ColumnValue
RecordSet FieldValue
Record
Document Element
ObjectExtent DataValue
MetadataMetadata DataDataAreaArea
DataValue
MOF (Meta Object Facility)MOF (Meta Object Facility) OMG’s standard for defining metamodelsOMG’s standard for defining metamodels Provides standard modeling and Provides standard modeling and
interchange constructs used in MDAinterchange constructs used in MDA UML and CWM are defined in terms of UML and CWM are defined in terms of
MOF constructsMOF constructs The three main metadata modeling The three main metadata modeling
constructs provided by the MOF are:constructs provided by the MOF are: ClassClass AssociationAssociation PackagePackage
MappingsMappings MappingMapping is defined as a set of rules is defined as a set of rules
and techniques used to modify one and techniques used to modify one model in order to get another model in order to get another modelmodel
Mappings are described using UMLMappings are described using UML
RefiningRefining
Makes a model less abstractMakes a model less abstract Permits “zooming” in (and out of) a Permits “zooming” in (and out of) a
model:model:
PIM to PIM mappingPIM to PIM mapping Used when models are enhanced, Used when models are enhanced,
refined or filtered during the refined or filtered during the development lifecycle without development lifecycle without needing any platform dependant needing any platform dependant informationinformation
Example: analysis to design models Example: analysis to design models transformationtransformation
PIM to PSM mapping (1/3)PIM to PSM mapping (1/3) This transformation is used when the PIM This transformation is used when the PIM
is projected to the execution is projected to the execution infrastructure Projection is based on platform Projection is based on platform
characteristicscharacteristics These characteristics should be described These characteristics should be described
using a UML description (and eventually a using a UML description (and eventually a profile for describing common platform profile for describing common platform concepts)concepts)
There are multiple ways to transform a There are multiple ways to transform a PIM into a corresponding PSMPIM into a corresponding PSM
More on More on mappingmapping
PIM to PSM mapping: PIM to PSM mapping: techniques (2/3)techniques (2/3) A human could study the PIM and:A human could study the PIM and:
Manually construct a platform-specific Manually construct a platform-specific modelmodel
Utilize models of known refinement Utilize models of known refinement patterns to reduce the burden in patterns to reduce the burden in constructing the PSMconstructing the PSM
PIM to PSM mapping: PIM to PSM mapping: techniques (3/3)techniques (3/3) An algorithm could:An algorithm could:
Be applied to the PIM and create a Be applied to the PIM and create a skeleton of the PSM to be manually skeleton of the PSM to be manually enhanced by handenhanced by hand
Create a complete platform specific Create a complete platform specific model from a complete platform model from a complete platform independent model, explicitly or independent model, explicitly or implicitly recording the relation for implicitly recording the relation for use by other automated toolsuse by other automated tools
PSM to PSM mappingPSM to PSM mapping This transformation is needed for This transformation is needed for
component realization and component realization and deploymentdeployment
Generally related to platform Generally related to platform dependent model refinementdependent model refinement
PSM to PIM refactoringPSM to PIM refactoring This transformation is required for This transformation is required for
abstracting models of existing abstracting models of existing implementations in a particular implementations in a particular technology into a platform independent technology into a platform independent modelmodel
Represents a “mining” process hard to Represents a “mining” process hard to be fully automatedbe fully automated
Result of this transformation will match Result of this transformation will match the corresponding PIM to PSM mappingthe corresponding PIM to PSM mapping
InfrastructureInfrastructure
A set of software or hardware A set of software or hardware pieces assumed to be already pieces assumed to be already present by some stakeholders present by some stakeholders when he/she develops a software when he/she develops a software artifactartifact
Core modelsCore models
The core target platforms of the The core target platforms of the MDA:MDA:
CORBACORBA Java/EJBJava/EJB C#/.NETC#/.NET XML/SOAPXML/SOAP
MDA provides UML profiles for MDA provides UML profiles for these target platformsthese target platforms
Pervasive ServicesPervasive Services
Essential services for many Essential services for many applicationsapplications
transactionstransactions directory servicesdirectory services securitysecurity persistancepersistance others…others…
OMG will define them at PIM levelOMG will define them at PIM level
OMG Domain ModelsOMG Domain Models
Standardization of services in specific Standardization of services in specific vertical marketsvertical markets
They will be in the form of normative They will be in the form of normative PIMs expressed using UML, augmented PIMs expressed using UML, augmented by normative PSMs for at least one by normative PSMs for at least one platformplatform
They are being developed by OMG’s They are being developed by OMG’s DTFs (Domain Task Forces)DTFs (Domain Task Forces)
The DoD survey of The DoD survey of programming languagesprogramming languages Report on programming languages used Report on programming languages used
in the DoD (1995)in the DoD (1995) In 1995 there were more than 2500 PLs In 1995 there were more than 2500 PLs
worldwideworldwide
Total SLOC Total SLOC by gp third by gp third generation generation languages:languages:
Some of the OMG Some of the OMG members:members: AT&TAT&T BEABEA BorlandBorland BoeingBoeing CACA CitigrouCitigrou
pp CompaqCompaq EricssonEricsson FordFord FujitsuFujitsu
GlaxoGlaxo HPHP HitachiHitachi HyperionHyperion IBMIBM IONAIONA io io
SoftwareSoftware KabiraKabira KCKC John John
DeereDeere
MicrosoftMicrosoft MITREMITRE MSC SoftMSC Soft NASANASA NECNEC NetGenicNetGenic
ss NTTNTT OASISOASIS OracleOracle PfizerPfizer
RationalRational SAGASAGA SAPSAP SASSAS SecantSecant SiemensSiemens SprintSprint SunSun UnisysUnisys VertelVertel
ArcStyler Success StoryArcStyler Success Story
Deutsche Bank Bauspar AG used Deutsche Bank Bauspar AG used ArcStyler to embed existing COBOL ArcStyler to embed existing COBOL mainframe application into modern mainframe application into modern web-based systemweb-based system
A customized Cartridge was A customized Cartridge was createdcreated
xMDA Success storyxMDA Success story Lockheed Martin used MDA to develop Lockheed Martin used MDA to develop
the F-16 Modular Mission Computing the F-16 Modular Mission Computing softwaresoftware
They used the KC’s iUML tool and They used the KC’s iUML tool and more recently iCCG (intelligent more recently iCCG (intelligent Configurable Code Generator) to Configurable Code Generator) to specify an Ada code generator which specify an Ada code generator which can automatically generate 100% of can automatically generate 100% of the implementationthe implementation