Component%20Based%20Engineering%20in%20MDA%20MDA%20and%20CCM - PowerPoint PPT Presentation

About This Presentation
Title:

Component%20Based%20Engineering%20in%20MDA%20MDA%20and%20CCM

Description:

Models are centric! Target middleware is not important! ... Auto Color Red /Color Door 4 /Door Engine 2 /Engine /Auto XMI Document (PSM) ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 65
Provided by: philipp97
Category:

less

Transcript and Presenter's Notes

Title: Component%20Based%20Engineering%20in%20MDA%20MDA%20and%20CCM


1
Component Based Engineering in MDAMDA and CCM
  • Dr. Philippe Merle
  • CR1 INRIA Futurs Lille / LIFL USTL
  • President of the ObjectWeb College of Architects
  • Chair of the OMG Components 1.1 RTF
  • Leader of the OpenCCM project
  • Summer school MDA for Embedded System
    Development,
  • Brest, Brittany in France, September 17th, 2002

2
Contents
  • From Software Components to MDA
  • Components, component models, distributed object
    and component middleware to MDA
  • The CORBA Component Model (CCM)
  • A quick guided tour
  • New Component Models with MDA and CCM
  • New PIM and transformation to CCM
  • How building MDA to CCM transformation platforms
    with OpenCCM
  • Conclusion
  • MDA and CCM at OMG (current RFP and proposals)

3
From Software Componentsto MDA
4
Why Software Components?
  • Time to market
  • Improved application productivity
  • Reduced complexity
  • Reuse of existing code
  • Programming by assembly (manufacturing) rather
    than development (engineering)
  • Reduced skills requirements
  • Focus expertise on domain problems
  • Improving software quality
  • Key benefit with client-side server-side
    development

5
Why Software Component Models?
  • Deal with recurrent technical requirements
  • e.g. CORBA communication between distributed
    objects
  • Provide means to abstract technical requirements
  • e.g. OMG IDL interfaces and operations of
    distributed objects
  • gt Abstraction instead of technical skills
  • e.g. OMG IDL versus socket API
  • Product software components automatically
  • e.g. stubs and skeletons for CORBA communication
  • gt Improve software productivity and quality
  • gt Reduce development costs

6
Why Software Component Models?
  • Implementation neutral
  • e.g. multi transport layers TCP/IP, ATM, shared
    memory,
  • e.g. multi programming languages C, Java,
    IDLscript,
  • e.g. multi OS Windows, Unix, Cray, PDA, RTOS,
  • gt Portability and interoperability
  • Could be also efficient than ad hoc solutions!
  • e.g. Real-Time ORBs like TAO, omniORB, Orbix/E,
  • Requirements for tools and platforms in order to
    be really useable!

7
From Distributed Objects
  • Distributed Object Computing (DOC) Middleware
  • e.g. CORBA DCOM - Java RMI
  • Rationalize software processes for defining,
    developing and executing distributed applications
  • Strongly used in industrial applications
  • No architectural vision of applications
  • Object bindings are hidden in code
  • Often not declared or configurable
  • No separation between functional / non functional
    aspects
  • All application aspects are programmed
    explicitly!
  • Complexity for business domain experts
  • No packaging and deployment facilities
  • Only ad hoc solutions!

8
... To Distributed Components
  • DOC middleware evolution
  • e.g. CCM - .NET - EJB
  • Cover software processes for packaging,
    assembling and deploying distributed applications
  • Some architectural notions
  • Bindings are declared and configurable
  • e.g. JavaBeans and ports in CCM
  • Better separation of functional / non functional
    aspects
  • Components / containers
  • Described instead of programmed (e.g. XML
    descriptors)
  • Packaging for automatic deployment
  • Standard format for binary archives
  • API to control distributed deployment

9
But No Universal Component Middleware!
for MDA?
Distributed Software Components
Major Challenge!
CORBA
EJB
.NET
. . .
10
Challenges With Component Middleware
  • A lot of standard component middleware
  • SUN Java RMI, EJB, JMS, J2EE, Jini
  • Microsoft OLE -gt COM -gt DCOM -gt COM -gt .NET
  • W3C HTTP -gt XML -gt SOAP -gt Web services
  • New ones appear, e.g. CCM, .NET, Web services,
  • When old ones disappear, e.g. COM, DCE,
  • What is the best one?
  • What is the Next Best Thing?
  • How building software for the long term?
  • How moving between component middleware?
  • How preserving business application logic
    designs?
  • How addressing the recurrent gap between business
    requirements and component middleware artifacts?

11
Model Driven Architecture
  • New orientation for OMG activities
  • New step beyond the Object Management
    Architecture (OMA)
  • Models are centric!
  • Target middleware is not important!
  • Focus on Platform Independent Models (PIM)
  • Without middleware details
  • Abstract Platform Specific Models (PSM)
  • Including all middleware details
  • Define PIM to PSM transformations
  • Preserving PIM when new middleware appears!

12
Current MDA Technologies
  • Meta Object Facility (MOF)
  • Unified Modeling Language (UML)
  • XML Model Interchange (XMI)
  • Common Warehouse Meta-model (CWM)
  • Software Process Engineering Meta-model (SPEM)
  • Action Semantics Language (ASL)
  • Various UML profiles
  • . . .

13
All are (Meta-)Models in MDA
14
PIM, PSM, and Transformations in MDA
TRANSFORMATION RULES
15
PIM to PSM TransformationExamples with MOF/XMI
16
Transformation Models in MDA
UML4EJB
UML
UML.Net
UML
17
Could Transformation Models be Considered as
MDA-oriented?
TRANSFORMATION RULES
  • PIM Abstract Model for Model Transformation
  • PSM Concrete Transformation Technologies

18
Could OMG IDL be Considered asMDA-oriented?
MAPPING RULES
  • PIM Abstract Interface Definition Language
  • PSM Concrete Programming Languages

19
Could OMG IDL be Considered asMDA-oriented?
MAPPING RULES
  • PIM Abstract Interface Definition Language
  • PSM Concrete Network Transport Syntaxes

20
Could GIOP be Considered asMDA-oriented?
MAPPING RULES
  • PIM Abstract Network Transfer Syntax
  • PSM Concrete Network Transport Layers

21
MDA Applied To Component Middleware
TRANSFORMATION RULES
  • PIM Abstract Component Model for enterprise
    computing
  • PSM Concrete Standard Component Middleware

22
The CORBA Component Model (CCM)
23
TO BE COMPLETED
24
New Component Modelswith MDA and CCM
25
Why New Component Models?
  • Often application designers want to use concepts
    not present in PSM
  • e.g. CCM has no active JavaBeans properties
  • 1) Creating a new PSM but also requires to
    develop the associated middleware
  • Very expensive and time consuming!!!
  • 2) Creating a new PIM and defining PIM to PSM
    transformation rules

26
The Message Filtering Example
  • A filter has
  • 1 input for receiving messages to filter
  • Configurable filtering properties
  • 1 filtering function
  • 1 output for accepted messages
  • 1 output for rejected messages

Filter
P1 V1 P2 V2 F M.C1 P1 or M.C2 gt P2
27
Application Assembling Filters
28
The Message Filtering Example With CCM
  • eventtype Message
  • . . . Message fields . . .
  • component Filter
  • consumes Message input
  • publishes Message accepted
  • publishes Message rejected
  • . . . Configurable filtering properties . . .
  • home FilterHome manages Filter
  • factory create_filter(. . .)

29
Problems
  • All must be done manually!
  • Defining OMG IDL for message eventtypes, filter
    component and home types
  • Implementing CCM eventtypes, components and homes
  • Writing CCM XML descriptors
  • Extremely verbose, time consuming and error
    prone!!!
  • How improving productivity and quality?
  • How dealing with thousand messages and filters?
  • How dealing with other Message Oriented
    Middleware (MOM)?
  • Like EJB 2.0 message beans

30
The Message Filtering Example With MDA
  • Capturing the essence through a meta model
  • Structure of messages, i.e. message fields
  • Filtering properties and function
  • Using XMI to obtain a XML DTD or Schema
  • Syntax for serializing instances of the meta
    model
  • Providing a UML profile for end users
  • Defining transformation to MOM PSMs
  • Generating message filtering components
    automatically
  • gt Improve productivity and quality
  • gt Reduce development costs
  • gt Preserve PIM when new MOM appears

31
The Message Filtering Meta-Model
32
The Message Filtering XML DTD
  • lt!ELEM MFL (message, filter)gt
  • lt!ELEM message (field)gt
  • lt!ATTRLIST message id IDgt
  • lt!ELEM field EMPTYgt
  • lt!ATTRLIST field name CDATA type CDATAgt
  • lt!ELEM filter (property)gt
  • lt!ATTRLIST filter id ID appliedOn IDREF
    function CDATAgt
  • lt!ELEM property EMPTYgt
  • lt!ATTRLIST property name CDATA type CDATAgt
  • (The XMI generated DTD is very similar)

33
A Message Filtering XML Descriptor
  • ltMFLgt
  • ltmessage idEmailgt
  • ltfield nameto typestring\gt
  • ltfield namefrom typestring\gt
  • ltfield nametitle typestring\gt
  • ltfield namecontents typestring\gt
  • lt/messagegt
  • ltfilter idFromFilter
  • appliedOnEmail
  • functione.from fromgt
  • ltproperty namefrom typestring\gt
  • lt/filtergt
  • lt/MFLgt

34
Using the Message Filtering UML Profile
to string from string title string contents
string
message Email
from string f(e Email) boolean e.from
from
filter FromFilter
AppliedOn
  • This UML Profile reuses UML concepts to map the
    Message Filtering Meta-Model concepts when they
    are adequate and UML user-friendly

35
Message Filtering PIM to MOM PSMs Transformation
TRANSFORMATION RULES
  • PIM Abstract Message Filter Component Model
  • PSM Concrete Message Oriented Middleware

36
The Message Filtering PIM to CCM Transformation
  • eventtype Email
  • public string from, to, title
  • public sequenceltstringgt contents
  • component EmailFilterBase
  • consumes Email input
  • publishes Email accepted
  • publishes Email rejected
  • component FromFilter EmailFilterBase
  • attribute string from
  • home FromFilterHome manages FromFilter
  • factory create_filter(in string from)

37
Next Step on the Message Filtering Meta-Model
  • Only allow definition of message and filter types
  • Only generate OMG IDL types, implementations, and
    CCM XML packaging descriptors
  • Complete the meta model to describe filter
    instances and connections between them
  • Then allow generation of CCM XML assembling
    descriptors for automatic deployment

38
Drawback around MDA-oriented Tools
  • Few MOF compliant tools to experiment the
    creation of new component meta models!
  • Developing UML profiles are time and money
    consuming
  • UML Profile Builders are still expensive and
    proprietary
  • No portability of developed UML profiles between
    UML Tools!!!
  • Few formalisms to express MDA transformation
  • OMG RFP under work
  • Few PSM meta models for
  • Programming languages like Java, C,
  • Component standard middleware

39
How Building MDA to CCM Transformation
PlatformsWith OpenCCM
40
OpenCCM
  • An ObjectWeb project
  • http//www.objectweb.org/openccm
  • Open source under LGPL
  • The first available implementation of the CORBA
    Component Model
  • A flexible and open platform to design, develop,
    package, assemble, deploy and administrate CCM
    applications
  • Allow us to build MDA to CCM transformation
    platforms

41
The OpenCCM Platform
  • A compiler for OMG IDL, PSDL, and CIDL files
  • An Abstract Syntax Tree for IDL, PSDL, and CIDL
  • An Interface Repository
  • Generators to IDL, PSDL, CIDL, IDL2, CIF for Java
    files
  • A graphical user interface for CCM XML packaging
    and assembling files
  • An Abstract Tree for packaging and assembling XML
    DTDs
  • A deployment tool
  • A runtime application server
  • An administration console
  • Runs on top of Unix, Windows, Win/CE for PDA

42
The OpenCCMs Compilation Chain forIDL, PSDL,
and CIDL Files
Compiler
IDL/PSDL/CIDL
Abstract Syntax Tree for IDL/PSDL/CIDL
Interface Repository
Generators
IDL/PSDL/CIDL
CIF for Java
OMG IDL2
43
The OpenCCMs Tool Chain forXML Packaging and
Assembling Files
XML parser
CCM XML
CCM XML
Software components
CCM XML
CCM XML
Abstract Tree for CCM XML
Java Swing GUI
Application package
44
The OpenCCMs Deployment Chain
Abstract Tree for CCM XML
Deployment Tool Component distribution,
installation, instantiation, configuration and
execution
45
Generic Meta Tools for XML DTD
  • OpenCCM code for managing CCM XML DTD is
    automatically generated
  • The Abstract Tree for packaging and assembling
    XML DTDs
  • The packaging and assembling GUI
  • Using generic meta tools for XML DTD
  • The Zeus DTD2Java meta tool
  • Generator of XML to Java binders
  • i.e. Java objects representing XML elements
  • The OpenCCM DTD2GUI meta tool
  • Generator of Java Swing GUI from XML DTD

46
DTD2Java and DTD2GUI Meta Tools
XML DTD
GUI Parametrization
Zeus DTD2Java
OpenCCM DTD2GUI
Java Tree
Java Swing GUI
Observer Design Pattern
47
Zeus DTD2Java Generation Example
  • For the following XML DTD
  • lt!ELEMENT persons persongt
  • lt!ELEMENT person EMPTYgt
  • lt!ATTRLIST person name CDATAgt
  • Zeus DTD2Java generates
  • interface Persons
  • void addPerson(Person p)
  • void removePerson(Person p)
  • List getPersonList()
  • class PersonsImpl implements Persons . . .
  • interface Person
  • String getName()
  • void setName(String v)
  • class PersonImpl implements Person . . .

48
OpenCCM DTD2GUI Generation Example
49
Applying DTD2Java and DTD2GUI in MDA
  • Could be used on any XML DTD
  • Even those generated by XMI DTD
  • To parse, manipulate, and view
  • Any MOF meta model
  • Any UML model
  • Any PIM PSM model
  • Any instance of any PIM
  • Any instance of any PSM
  • Any instance of any component model

50
Building MDA to CCM Transformation Platforms With
OpenCCM
MOF2DTD
aCCM XML DTD
OpenCCM DTD2GUI
Zeus DTD2Java
51
Building MDA to CCM Transformation Platforms With
OpenCCM
Transformation Java IDLscript scripts
Transformation scripts
Transformation scripts
Transformation scripts
Transformation engine
Abstract Tree for CCM XML
Generated IDL/PSDL/CIDL
CCM XML descriptors
Generated Java Implementation
CCM XML descriptors
Generated CCM XML descriptors
52
Building MDA to CCM Transformation Platforms With
OpenCCM
aCCM XML DTD
Transformation Java IDLscript scripts
Transformation scripts
Transformation scripts
Transformation scripts
Transformation engine
OpenCCM API
Generated CCM Compliant Files
Transformation scripts
Transformation scripts
Transformation scripts
53
Transformation Script Examplefor the Message
Concept
Java4aCMM
  • eventto.declareEvent(from.getId())
  • ctx.addMapping("event_type", event)
  • ctx.visit(from.getFieldList(), event)
  • filterto.declareComponent(
  • from.getId()"FilterBase")
  • ctx.addMapping("filter_base", filter)
  • inputfilter.startConsumes("input")
  • input.setEvent(event)
  • ctx.addMapping("input", input)
  • acceptedfilter.startPublishes("accepted")
  • accepted.setEvent(event)
  • ctx.addMapping("accepted", accepted)
  • rejectedfilter.startPublishes("rejected")
  • rejected.setEvent(event)

from
Transformation engine
ctx
OpenCCM API
to
54
Transformation Script Examplefor the Field
Concept
Java4aCMM
  • memberto.startValueMember(
  • from.getName())
  • member.setPublic()
  • member.setType(ctx.findType(from.getType()))
  • ctx.addMapping("member", member)

from
Transformation engine
ctx
OpenCCM API
to
55
Transformation Script Examplefor the Filter
Concept
Java4aCMM
  • cto.declareComponent(from.getId())
  • c.setBaseComponent(
  • ctx.getMapping(from.getAppliedOn(),
  • "filter_base") )
  • ctx.addMapping("component_type", c)
  • ctx.visit(from.getPropertyList(), c)
  • hto.startHome(from.getId()"Home")
  • h.setManagedComponent(c)
  • ctx.addMapping("home_type", h)

from
Transformation engine
ctx
OpenCCM API
to
56
Transformation Script Examplefor the Property
Concept
Java4aCMM
  • ato.startAttribute(from.getName())
  • a.setReadwrite()
  • a.setType(ctx.findType(from.getType()))
  • ctx.addMapping("attribute", a)

from
Transformation engine
ctx
OpenCCM API
to
57
Benefits for Building MDA to CCM Transformation
Platforms with OpenCCM
  • UML tool neutral
  • At design time, only XMI generation required
  • At runtime, no UML tool presence
  • Allow production of Open Source MDA to CCM
    transformation platforms
  • All used tools are Open Source
  • Only require to write scripts for transformation
  • To do
  • Improve the transformation engine features
  • Simplify how transformation scripts are written
  • Express transformations in XML and generate
    scripts
  • Implement the MOF2DTD tool as a MDA transformation

58
Conclusion
59
Summary
  • Evolution from software components to MDA
  • Software component models are PSM
  • CCM should be the major PSM at OMG
  • New component models could be designed with MDA
    and mapped to CCM
  • MDA to CCM Transformation Platforms can be built
    with OpenCCM

60
CCM and MDA at OMG
  • Fraunhofer FOKUS/IK submission to MOF 2.0 IDL
    RFP
  • MOF repositories should be CORBA Components
  • RFP OMG TC Document ad/01-11-07
  • Subm. OMG TC Document ad/02-05-06
  • Deployment and Configuration RFP
  • OMG TC Doc orbos/2002-01-19
  • Components 1.1 Revision Task Force
  • Chartered at the Yokohama meeting (April 26th
    2002)
  • UML Profile for CCM RFP
  • OMG TC Doc telecom/2002-09-02
  • Revision of the UML Profile for CORBA
    forincluding IDL 3.0 extension, PSDL, and CIDL
  • Presented at the next Helsinki OMG meeting
  • EDOC to CCM Mapping should be prepared!

61
Open Source CCM Implementations
  • OpenCCM from LIFL ObjectWeb
  • Java on ORBacus 4.1 OpenORB 1.2.1 BES 5.x
  • http//www.objectweb.org/openccm/
  • MicoCCM from FPX Alcatel
  • C on MICO
  • http//www.fpx.de/MicoCCM/
  • CIF from Humboldt University
  • C on ORBacus 4.1
  • http//sourceforge.net/projects/cif

62
Other CCM Implementations
  • Qedo from Fraunhofer FOKUS
  • C on MICO ORBacus 4.1
  • http//qedo.berlios.de
  • EJCCM from CPI Inc.
  • Java on OpenORB 1.3.x
  • http//www.ejccm.org
  • K2 from ICMP
  • C on various ORBs
  • http//www.icmgworld.com

63
More Information
  • OMG MDA Web Page
  • http//www.omg.org/mda
  • CORBA Components Specification
  • OMG TC Document formal/2002-06-65
  • CORBA Component Model Tutorial
  • OMG TC Document ccm/2002-06-01
  • The CCM Page, Diego Sevilla Ruiz
  • http//www.ditec.um.es/dsevilla/ccm/
  • IST COACH Project
  • http//www.ist-coach.org
  • OpenCCM
  • http//www.objectweb.org/openccm/

64
Your Questions?
Write a Comment
User Comments (0)
About PowerShow.com