Model Driven Architecture

Download Report

Transcript Model Driven Architecture

OMG’s Model Driven
Architecture
Davide Buscaldi
D.I.S.I.
Summary





1.
2.
3.
4.
5.
Introduction
MDA Overview
Developing in MDA
MDA in the Practice
References
1. Introduction
A heterogeneous world…
 Programming languages: (see also: the DoD survey)



~3 million COBOL Programmers
~1.6 million VB Programmers
~1.1 million C/C++ Programmers
 Operating systems:


Unix, MacOS, Windows(3.1->XP),PalmOS
Embedded devices
 Networks:


Ethernet, IP, USB, FireWire
Bluetooth, 802.11b, HomeRF
Where can we agree?
 Hetereogenity hinders the development
of enterprise distributed systems
 There will not be consensus on
 Hardware
 Operating systems
 Network protocols
 Programming languages
 We can agree at an higher level
 Middleware
Middleware
 A software layer that masks
hetereogeneity
 Placed between operating systems and
application components
Middleware proliferation
 Middleware itself has proliferated:
 CORBA
 COM / DCOM / MTS
 Java / EJB
 XML / SOAP
 C# / .NET
 None of them prevails over the others
 The problem remains
The Object Management
Group (OMG)
 An open membership and no-profit
consortium
 Produces and mantains computer
industry specifications for interoperable
enterprise applications
Who are OMG?
OMG’s Milestones
OMG is
founded
1989
CORBA
2.0
1991
CORBA
1.0, IDL
1996
MDA
1997
UML, MOF,
XMI, CWM
2001
2. MDA Overview
What is the MDA?
 An approach to IT system specification
that separates the specification of
system functionality from the
specification of the implementation of
that functionality on a particular
technology platform
 “Design once, build it on any platform”
Basic concepts of MDA
 A model is a formal specification of the
function, structure and/or behaviour of a
system

Examples:
 Source code is a model
 An UML-based specification is a model
 Models of different systems are structured
explicitly into:
 Platform Independent Models (PIM)
 Platform Specific Models (PSM)
Platform Independent Model
(PIM)
 A “formal” specification of the structure
and function of a system that abstracts
away technical detail
 Expressed using UML
PIM: an example
Platform Specific Model (PSM)
 Specifies how the functionality specified
in a PIM is realized on a particular
platform
 Expressed using UML extended with
platform specific UML profiles
PSM: an example
MDA metamodel
Infrastructure
PIM Mapping
techniques
<<based on>>
Mapping from
PIM to PIM
UML
1..n
<<expressed with>>
MOF
1..n
<<described with>>
Metamodel
<<expressed with>>
1..n
<<independant of>>
1..n
1..n
Mapping from
PIM to PSM
<<expressed with>>
Other
languages
PIM
Refactoring from
PSM to PIM
<<based on>>
<<described with>>
1..n
PSM
PSM Mapping
techniques
<<depends on>>
1..n
Mapping from
PSM to PSM
MDA in a Snapshot
Vertical
Domains
Core
Technologies
Core Target
Platforms
Pervasive
Services
3. Developing in MDA
System Development Lifecycle
and the MDA approach
PIM to PIM
mappings
PSM to
PSM
mappings
UML MOF CWM
Time
PIM to PSM
mappings
(projection on a
specific platform)
Developing in MDA – Step 1:
the PIM (1/2)
 All MDA development projects start with the
creation of a PIM
 PIM at this level represents business
functionality and behaviour, undistorted by
technology details
 MDA application-modeling tools contain
representations of Pervasive Services and
Domain Facilities allowing them to be used
and/or incorporated in the application via a
menu selection
Developing in MDA – Step 1:
the PIM (2/2)
PIM
Calls
Calls
Pervasive
Services
Model
Domain
Facilities
Model
Developing in MDA – Step 2:
the PSM (1/2)
 Once the first iteration is complete, the
PIM is input to the mapping step which
will produce a PSM
 Code is partially automatic and partially
hand-written
 PIM can be mapped either to a single
platform or to multiple platforms
Developing in MDA – Step 2:
the PSM (2/2)
PIM
Maps to
CORBA
Model
Maps to
Java/EJB
Model
Maps to
…
Other
Model
Developing in MDA – Step 3:
Generating Application (1/2)
 An MDA tool generates all or most of
the implementation code for the
deployment technology selected by the
developer
 Re-integration on new platforms can be
done by reverse engineering the
existing application into a model and
redeploy
Developing in MDA – Step 3:
Generating Application (2/2)
PIM
Maps to
CORBA
Model
Maps to
CORBA
Maps to
Maps to
Java/EJB
Model
…
Maps to
Java/EJB
Other
Model
Maps to
…
Other
4. MDA in the Practice
MDA Adoption Status
 Adoption of MDA is at an early stage
 UML profiles underway:




CORBA (adopted)
EJB (adopted)
SOAP/XML (in process)
.NET (to be started)
 UML 2.0 in process
Future Trends
 “A market for MDA will be created as OO
modeling and development tool vendors
incorporate MDA into their offerings”
 “It will be two or three years before mature
MDA tools emerge”
 “This is the most exciting enterprise software
initiative I’ve seen since UML”
(Paul Harmon, Senior consultant and Market Analyst,
CUTTER consortium, 2001)
Early Adopters
 Interactive Objects Software GmbH

ArcStyler
 Kennedy Carter

iUML, iCCG
 Kabira

Adaptive Realtime Infrastructure
 Secant technologies

Model-Driven Infrastructure
Sun’s NetBeans was added to this list on
May 7th 2002
…stay tuned!
Conclusions (1/2)
 Abstracting out the structure and
behaviour of a system in the PIM makes
easier:



To validate the correctness of the model
To produce implementations on different
platforms
The application of tool supported solutions
Conclusions (2/2)
 The major drawback is that MDA does
not provide a standard for the
specification of mappings


Different implementation of mappings can
generate very different code or models
This can create dependencies between the
software and the mapping solution used
5. References
Bibliography (1/3)
 MDA Specification:

Model Driven Architecture specification, OMG
Architecture board, July 2001
 Introduction and overview of MDA:


Model Driven Architecture: An introduction, R.M.
Soley
Model Driven Architecture, Richard M.Soley (OMG
CEO), November 2000
 CWM and MOF definitions:

Model-Driven Architecture: Vision, Standards and
Emerging Technologies, John D.Poole, ECOOP
April 2001
Bibliography (2/3)
 CWM examples:

Enterprise CORBA 2001 – CWM, Pete Rivett
 System Development Lifecycle in MDA:

Developing in OMG’s Model-Driven architecture,
Jon Siegel, November 2001
 Middleware definition:

Software Engineering and Middleware: A
Roadmap, W.Emmerich
 The DoD survey on PLs:

A survey of Computer Programming Languages
Currently used in the DoD, A.Hook et al., 1995
Bibliography (3/3)
 Conclusions and future trends:


Pratical experiences in the application of
MDA, M. de Miguel et al.
MDA: An Idea whose time has come, Paul
Harmon
 Kennedy Carter’s xMDA:

F-16 Modular Mission Computer Application
Software, Lauren E.Clark et al.
Webliography
 MDA documentation:

http://www.omg.org/mda
 ArcStyler:

http://www.io-software.com/as
 Kennedy Carter’s iUML and iCCG:

http://www.kc.com
 NetBeans:

http://www.netbeans.org
The End
Platform
 Technological and engineering details
that are irrelevant to the fundamental
functionality of a software component
UML Profile
 A standardized set of extensions
(stereotypes and tagged values)
 Defines an UML environment tailored to
a particular use, such as modeling for a
specific platform

UML profile for CORBA was standardized in
2000
Common Warehouse
Metamodel (1/2)
 OMG’s data warehouse standard
 Enable easy interchange of
 warehouse and business intelligence metadata
between
 warehouse tools
 warehouse platforms and
 metadata repositories
 in distributed heterogenous environments.
 Defined using MOF
Common Warehouse
Metamodel (2/2)
 Comprised of a number of constituent
metamodels representing:




Data resources
Analysis
Warehouse management
Foundational components
of a typical data warehousing/business
intelligence environment
 Drawn using UML profile for MOF
More on CWM…
Example: the Relational
Metamodel
/constraint
/constrainedEl ement
CheckConstraint
*
deferrabi lity : DeferrabilityType
{ordered}
*
Column
*
/constrant
ColumnSet
precision : Integer
scale : Integer
/feature isNullable : NullableType
0..1
length : Integer
/owner
* col lationName : String
{ordered} characterSetName : String
/ optionScopeColumnSet : NamedColumnSet
/ referencedTableType : SQLStructuredType
*
/structuralFeature
/type
1
SQLDataType
typeNumber : Integer
NamedColumnSet
/ optionScopeColumn : Column
/ type : SQLStructuredType
/ usingTrigger : Trigger
SQLDistinctType
/constrainedEl ement
QueryColumnSet
query : QueryExpression
length : Integer
precision : Integer
scale : Integer
/ sqlSimpleType : SQLSimpleType
sqlDistinctType
*
*
SQLSimpleType
{ordered}
Table
isTemporary : Boolean
temporaryScope : String
/ trigger : Trigger
isSystem : Boolean
View
isReadOnly : Boolean
checkOption : Boolean
queryExpression : QueryExpression
characterMaximumLength : Integer
characterOctetLength : Integer
1
numericPrecision : Integer
sqlSimpleType numericPrecisionRadix : Integer
numericScale : Integer
dateTimePrecision : Integer
CWM: correspondances
between models
Area
Metadata
Data
Object
Oriented
Package
Class
Attribute
Extent
Object
Data
Value
Relational
Catalog/
Schema
Table
Column
RowSet
Row
Column
Value
RecordFile
RecordDef
Field
RecordSet
Record
Field
Value
ElementType
Attribute
Document
Element
Data
Value
Record
XML
Schema
MOF (Meta Object Facility)
 OMG’s standard for defining metamodels
 Provides standard modeling and interchange
constructs used in MDA
 UML and CWM are defined in terms of MOF
constructs
 The three main metadata modeling
constructs provided by the MOF are:
 Class
 Association
 Package
Mappings
 Mapping is defined as a set of rules and
techniques used to modify one model in
order to get another model
 Mappings are described using UML
Refining
 Makes a model less abstract
 Permits “zooming” in (and out of) a
model:
PIM to PIM mapping
 Used when models are enhanced,
refined or filtered during the
development lifecycle without needing
any platform dependant information

Example: analysis to design models
transformation
PIM to PSM mapping (1/3)
 This transformation is used when the PIM is
projected to the execution infrastructure
 Projection is based on platform characteristics
 These characteristics should be described
using a UML description (and eventually a
profile for describing common platform
concepts)
 There are multiple ways to transform a PIM
into a corresponding PSM
More on mapping
PIM to PSM mapping:
techniques (2/3)
 A human could study the PIM and:


Manually construct a platform-specific
model
Utilize models of known refinement
patterns to reduce the burden in
constructing the PSM
PIM to PSM mapping:
techniques (3/3)
 An algorithm could:


Be applied to the PIM and create a
skeleton of the PSM to be manually
enhanced by hand
Create a complete platform specific model
from a complete platform independent
model, explicitly or implicitly recording the
relation for use by other automated tools
PSM to PSM mapping
 This transformation is needed for
component realization and deployment
 Generally related to platform dependent
model refinement
PSM to PIM refactoring
 This transformation is required for abstracting
models of existing implementations in a
particular technology into a platform
independent model
 Represents a “mining” process hard to be
fully automated
 Result of this transformation will match the
corresponding PIM to PSM mapping
Infrastructure
 A set of software or hardware pieces
assumed to be already present by some
stakeholders when he/she develops a
software artifact
Core models
 The core target platforms of the MDA:
 CORBA
 Java/EJB
 C#/.NET
 XML/SOAP
 MDA provides UML profiles for these
target platforms
Pervasive Services
 Essential services for many applications
 transactions
 directory services
 security
 persistance
 others…
 OMG will define them at PIM level
OMG Domain Models
 Standardization of services in specific vertical
markets
 They will be in the form of normative PIMs
expressed using UML, augmented by
normative PSMs for at least one platform
 They are being developed by OMG’s DTFs
(Domain Task Forces)
The DoD survey of
programming languages
 Report on programming languages used in
the DoD (1995)
 In 1995 there were more than 2500 PLs
worldwide
Total SLOC by
gp third
generation
languages:
Ada 83
C 89
Fortran
CMS-2 Y
Jovial
C++
CMS-2 M
Pascal
PL/I
Basic
LISP
Cobol
Others
Some of the OMG members:










AT&T
BEA
Borland
Boeing
CA
Citigroup
Compaq
Ericsson
Ford
Fujitsu










Glaxo
HP
Hitachi
Hyperion
IBM
IONA
io Software
Kabira
KC
John Deere










Microsoft
MITRE
MSC Soft
NASA
NEC
NetGenics
NTT
OASIS
Oracle
Pfizer










Rational
SAGA
SAP
SAS
Secant
Siemens
Sprint
Sun
Unisys
Vertel
IoSoftware’s ArcStyler
ArcStyler Success Story
 Deutsche Bank Bauspar AG used
ArcStyler to embed existing COBOL
mainframe application into modern
web-based system
 A customized Cartridge was created
The KC’s xMDA approach
xMDA: eXecutable UML + MDA
xMDA Success story
 Lockheed Martin used MDA to develop
the F-16 Modular Mission Computing
software
 They used the KC’s iUML tool and more
recently iCCG (intelligent Configurable
Code Generator) to specify an Ada code
generator which can automatically
generate 100% of the implementation