Download presentation
Presentation is loading. Please wait.
Published byHoratio Ray Modified over 9 years ago
1
September 17th, 2002MDA and CCM1 Component Based Engineering in MDA MDA 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
September 17th, 2002MDA and CCM2 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
September 17th, 2002MDA and CCM3 From Software Components to MDA
4
September 17th, 2002MDA and CCM4 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
September 17th, 2002MDA and CCM5 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 => Abstraction instead of technical skills e.g. OMG IDL versus socket API Product software components automatically e.g. stubs and skeletons for CORBA communication => Improve software productivity and quality => Reduce development costs
6
September 17th, 2002MDA and CCM6 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, … => 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
September 17th, 2002MDA and CCM7 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
September 17th, 2002MDA and CCM8... 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
September 17th, 2002MDA and CCM9 But No Universal Component Middleware! CORBA EJB.NET... Major Challenge! for MDA?
10
September 17th, 2002MDA and CCM10 Challenges With Component Middleware A lot of standard component middleware SUN = Java RMI, EJB, JMS, J2EE, Jini … Microsoft = OLE -> COM -> DCOM -> COM+ ->.NET W3C = HTTP -> XML -> SOAP -> 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
September 17th, 2002MDA and CCM11 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! Model Driven Architecture
12
September 17th, 2002MDA and CCM12 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
September 17th, 2002MDA and CCM13 All are (Meta-)Models in MDA UML MOF XML XMI UML CWM CCM EAI EC UML CWM CCM EAI EC MOFCWMCCM Evaluating CORBA Med UML EJB Java UML Profile for EDOC... IDL UML4CORBA Submissions Standards Life Sciences Electronic Commerce MDC OIM Enterprise App Integration Document Management Etc. SPEM CIAS
14
September 17th, 2002MDA and CCM14 PIM, PSM, and Transformations in MDA TRANSFORMATION RULES Platform Specific Model (PSM) Platform Specific Model (PSM) Platform Independent Model (PIM) Platform Independent Model (PIM) Platform Specific Model (PSM) Platform Specific Model (PSM)
15
September 17th, 2002MDA and CCM15 PIM to PSM Transformation Examples with MOF/XMI UML Model (PIM) Red 4 2 XMI Document (PSM) XMI <!Element Auto (Color*, Door*, Engine*)> XMI DTD, Schema (PSM) XMIXMI MOFMOF interface Auto { }; IDL, Java… (PSM) Class Auto {public String color; public int Door; public int Engine; }
16
September 17th, 2002MDA and CCM16 Transformation Models in MDA PIM Software Infrastructure PSM J2EE PIM HealthCare Business Application (CIAS) UML.Net PIM to PSM Transformation Model J2EE PSM.Net UML.Net UML4EJB
17
September 17th, 2002MDA and CCM17 Could Transformation Models be Considered as MDA-oriented? Model for Model Transformation Model for Model Transformation... XSLT Code for Rational Rose Code for Rational Rose J code for Objecteering J code for Objecteering PIM = Abstract Model for Model Transformation PSM = Concrete Transformation Technologies TRANSFORMATION RULES
18
September 17th, 2002MDA and CCM18 Could OMG IDL be Considered as MDA-oriented? MAPPING RULES PIM = Abstract Interface Definition Language PSM = Concrete Programming Languages OMG IDL C++ Java IDLscript...
19
September 17th, 2002MDA and CCM19 Could OMG IDL be Considered as MDA-oriented? PIM = Abstract Interface Definition Language PSM = Concrete Network Transport Syntaxes OMG IDL GIOP ESIOP SOAP MAPPING RULES
20
September 17th, 2002MDA and CCM20 Could GIOP be Considered as MDA-oriented? PIM = Abstract Network Transfer Syntax PSM = Concrete Network Transport Layers GIOP IIOP UDP Shared Memory Shared Memory... MAPPING RULES
21
September 17th, 2002MDA and CCM21 MDA Applied To Component Middleware TRANSFORMATION RULES PIM = Abstract Component Model for enterprise computing PSM = Concrete Standard Component Middleware Entreprise Distributed Object Computing (EDOC) Entreprise Distributed Object Computing (EDOC)....NET EJB CORBA
22
September 17th, 2002MDA and CCM22 The CORBA Component Model (CCM)
23
September 17th, 2002MDA and CCM23 TO BE COMPLETED
24
September 17th, 2002MDA and CCM24 New Component Models with MDA and CCM
25
September 17th, 2002MDA and CCM25 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
September 17th, 2002MDA and CCM26 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 > P2 OKNO
27
September 17th, 2002MDA and CCM27 Application = Assembling Filters
28
September 17th, 2002MDA and CCM28 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
September 17th, 2002MDA and CCM29 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
September 17th, 2002MDA and CCM30 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 => Improve productivity and quality => Reduce development costs => Preserve PIM when new MOM appears
31
September 17th, 2002MDA and CCM31 The Message Filtering Meta-Model
32
September 17th, 2002MDA and CCM32 The Message Filtering XML DTD (The XMI generated DTD is very similar)
33
September 17th, 2002MDA and CCM33 A Message Filtering XML Descriptor <filter id=«FromFilter» appliedOn=«Email» function=«e.from == from»>
34
September 17th, 2002MDA and CCM34 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
September 17th, 2002MDA and CCM35 Message Filtering PIM to MOM PSMs Transformation TRANSFORMATION RULES Other MOM EJB/JMS CCM... Message Filter Component Model Message Filter Component Model PIM = Abstract Message Filter Component Model PSM = Concrete Message Oriented Middleware
36
September 17th, 2002MDA and CCM36 The Message Filtering PIM to CCM Transformation eventtype Email { public string from, to, title; public sequence 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
September 17th, 2002MDA and CCM37 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
September 17th, 2002MDA and CCM38 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
September 17th, 2002MDA and CCM39 How Building MDA to CCM Transformation Platforms With OpenCCM
40
September 17th, 2002MDA and CCM40 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
September 17th, 2002MDA and CCM41 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
September 17th, 2002MDA and CCM42 The OpenCCM’s Compilation Chain for IDL, PSDL, and CIDL Files IDL/PSDL/CIDL Abstract Syntax Tree for IDL/PSDL/CIDL Interface Repository IDL/PSDL/CIDLCIF for JavaOMG IDL2 Generators Compiler
43
September 17th, 2002MDA and CCM43 The OpenCCM’s Tool Chain for XML Packaging and Assembling Files CCM XML Abstract Tree for CCM XML CCM XML XML parser Java Swing GUI Software components Application package
44
September 17th, 2002MDA and CCM44 The OpenCCM’s Deployment Chain Abstract Tree for CCM XML Deployment Tool Component distribution, installation, instantiation, configuration and execution
45
September 17th, 2002MDA and CCM45 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
September 17th, 2002MDA and CCM46 DTD2Java and DTD2GUI Meta Tools XML DTD Java Tree Zeus DTD2Java OpenCCM DTD2GUI Java Swing GUI GUI Parametrization Observer Design Pattern
47
September 17th, 2002MDA and CCM47 Zeus DTD2Java Generation Example For the following XML DTD 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
September 17th, 2002MDA and CCM48 OpenCCM DTD2GUI Generation Example
49
September 17th, 2002MDA and CCM49 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
September 17th, 2002MDA and CCM50 Building MDA to CCM Transformation Platforms With OpenCCM aCMM MOF aCCM XML DTD Java4aCMM MOF2DTD OpenCCM DTD2GUI Zeus DTD2Java GUI4aCMM Component Model End User Component Model Designer
51
September 17th, 2002MDA and CCM51 Transformation scripts Transformation scripts Transformation scripts Building MDA to CCM Transformation Platforms With OpenCCM Transformation engine Java4aCMM Transformation Java IDLscript scripts Abstract Tree for CCM XML Abstract Syntax Tree for IDL/PSDL/CIDL Generated IDL/PSDL/CIDL CCM XML descriptors Generated Java Implementation CCM XML descriptors Generated CCM XML descriptors
52
September 17th, 2002MDA and CCM52 Building MDA to CCM Transformation Platforms With OpenCCM aCMM MOF aCCM XML DTD Java4aCMM GUI4aCMM Component Model End User Component Model Designer Transformation scripts Transformation scripts Transformation scripts Transformation Java IDLscript scripts Transformatio n engine OpenCCM API Transformation scripts Transformation scripts Transformation scripts Generated CCM Compliant Files
53
September 17th, 2002MDA and CCM53 Transformation Script Example for the Message Concept event=to.declareEvent(from.getId()) ctx.addMapping("event_type", event) ctx.visit(from.getFieldList(), event) filter=to.declareComponent( from.getId()+"FilterBase") ctx.addMapping("filter_base", filter) input=filter.startConsumes("input") input.setEvent(event) ctx.addMapping("input", input) accepted=filter.startPublishes("accepted") accepted.setEvent(event) ctx.addMapping("accepted", accepted) rejected=filter.startPublishes("rejected") rejected.setEvent(event) ctx.addMapping("rejected", rejected) Java4aCMM OpenCCM API Transformatio n engine from to ctx
54
September 17th, 2002MDA and CCM54 Transformation Script Example for the Field Concept member=to.startValueMember( from.getName()) member.setPublic() member.setType( ctx.findType (from.getType())) ctx.addMapping("member", member) Java4aCMM OpenCCM API Transformatio n engine from to ctx
55
September 17th, 2002MDA and CCM55 Transformation Script Example for the Filter Concept c=to.declareComponent(from.getId()) c.setBaseComponent( ctx.getMapping(from.getAppliedOn(), "filter_base") ) ctx.addMapping("component_type", c) ctx.visit(from.getPropertyList(), c) h=to.startHome(from.getId()+"Home") h.setManagedComponent(c) ctx.addMapping("home_type", h) Java4aCMM OpenCCM API Transformatio n engine from to ctx
56
September 17th, 2002MDA and CCM56 Transformation Script Example for the Property Concept a=to.startAttribute(from.getName()) a.setReadwrite() a.setType( ctx.findType (from.getType())) ctx.addMapping("attribute", a) Java4aCMM OpenCCM API Transformatio n engine from to ctx
57
September 17th, 2002MDA and CCM57 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
September 17th, 2002MDA and CCM58 Conclusion
59
September 17th, 2002MDA and CCM59 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
September 17th, 2002MDA and CCM60 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 for including IDL 3.0 extension, PSDL, and CIDL Presented at the next Helsinki OMG meeting EDOC to CCM Mapping should be prepared!
61
September 17th, 2002MDA and CCM61 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
September 17th, 2002MDA and CCM62 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
September 17th, 2002MDA and CCM63 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
September 17th, 2002MDA and CCM64
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.