1 / 64

Component Based Engineering in MDA MDA and CCM

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”,

devi
Download Presentation

Component Based Engineering in MDA MDA and CCM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 MDA and CCM

  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) MDA and CCM

  3. From Software Componentsto MDA MDA and CCM

  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 MDA and CCM

  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 => 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 MDA and CCM

  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, … => 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! MDA and CCM

  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! MDA and CCM

  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 MDA and CCM

  9. But No Universal Component Middleware! for MDA? Distributed Software Components Major Challenge! CORBA EJB .NET . . . MDA and CCM

  10. 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? MDA and CCM

  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! MDA and CCM

  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 • . . . MDA and CCM

  13. UML MOF XMI XML SPEM MOF EC EAI CCM CWM EC CCM EAI CCM CWM UML Evaluating UML CIAS Life Sciences Etc. Document Management Enterprise App Integration MDC OIM UML Electronic Commerce Standards Submissions IDL UML4CORBA UML Profile for EDOC... Java EJB CWM CORBA Med All are (Meta-)Models in MDA MDA and CCM

  14. Platform Specific Model (PSM) Platform Independent Model (PIM) Platform Specific Model (PSM) PIM, PSM, and Transformations in MDA TRANSFORMATION RULES MDA and CCM

  15. UML Model (PIM) XMI Document (PSM) <Auto> <Color> Red </Color> <Door> 4 </Door> <Engine> 2 </Engine> </Auto> XMI M O F IDL, Java… (PSM) X M I XMI DTD, Schema (PSM) interface Auto { }; Class Auto {public String color; public int Door; public int Engine; } <!Element Auto (Color*, Door*, Engine*)> PIM to PSM TransformationExamples with MOF/XMI MDA and CCM

  16. PIM Software Infrastructure PSM J2EE PIM HealthCare Business Application (CIAS) PSM .Net .Net J2EE PIM to PSM Transformation Model Transformation Models in MDA UML4EJB UML UML.Net UML MDA and CCM

  17. Model for Model Transformation . . . XSLT Code for Rational Rose J code for Objecteering Could Transformation Models be Considered as MDA-oriented? TRANSFORMATION RULES • PIM = Abstract Model for Model Transformation • PSM = Concrete Transformation Technologies MDA and CCM

  18. OMG IDL C++ Java IDLscript . . . Could OMG IDL be Considered asMDA-oriented? • PIM = Abstract Interface Definition Language • PSM = Concrete Programming Languages MAPPING RULES MDA and CCM

  19. OMG IDL GIOP ESIOP SOAP Could OMG IDL be Considered asMDA-oriented? • PIM = Abstract Interface Definition Language • PSM = Concrete Network Transport Syntaxes MAPPING RULES MDA and CCM

  20. GIOP IIOP UDP Shared Memory . . . Could GIOP be Considered asMDA-oriented? • PIM = Abstract Network Transfer Syntax • PSM = Concrete Network Transport Layers MAPPING RULES MDA and CCM

  21. Entreprise DistributedObject Computing (EDOC) . . . .NET EJB CORBA MDA Applied To Component Middleware • PIM = Abstract Component Model for enterprise computing • PSM = Concrete Standard Component Middleware TRANSFORMATION RULES MDA and CCM

  22. The CORBA Component Model (CCM) MDA and CCM

  23. TO BE COMPLETED MDA and CCM

  24. New Component Modelswith MDA and CCM 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 MDA and CCM

  26. OK NO 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 MDA and CCM

  27. Application = Assembling Filters MDA and CCM

  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(. . .); }; MDA and CCM

  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 MDA and CCM

  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 => Improve productivity and quality => Reduce development costs => Preserve PIM when new MOM appears MDA and CCM

  31. The Message Filtering Meta-Model MDA and CCM

  32. The Message Filtering XML DTD <!ELEM MFL (message, filter)*> <!ELEM message (field)*> <!ATTRLIST messageid ID> <!ELEM field EMPTY> <!ATTRLIST fieldname CDATAtype CDATA> <!ELEM filter (property)*> <!ATTRLIST filterid IDappliedOn IDREFfunction CDATA> <!ELEM property EMPTY> <!ATTRLIST propertyname CDATAtype CDATA> (The XMI generated DTD is very similar) MDA and CCM

  33. A Message Filtering XML Descriptor <MFL> <message id=«Email»> <field name=«to» type=«string»\> <field name=«from» type=«string»\> <field name=«title» type=«string»\> <field name=«contents» type=«string[]»\> </message> <filter id=«FromFilter» appliedOn=«Email» function=«e.from == from»> <property name=«from» type=«string»\> </filter> </MFL> MDA and CCM

  34. This UML Profile reuses UML concepts to map the Message Filtering Meta-Model concepts when they are adequate and UML user-friendly 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 » MDA and CCM

  35. Other MOM EJB/JMS CCM . . . Message Filter Component Model Message Filtering PIM to MOM PSMs Transformation TRANSFORMATION RULES • PIM = Abstract Message Filter Component Model • PSM = Concrete Message Oriented Middleware MDA and CCM

  36. The Message Filtering PIM to CCM Transformation eventtypeEmail { public string from, to, title; public sequence<string> contents; }; componentEmailFilterBase { consumes Email input; publishes Email accepted; publishes Email rejected; }; componentFromFilter : EmailFilterBase { attribute string from; }; homeFromFilterHomemanagesFromFilter{ factorycreate_filter(in string from); }; MDA and CCM

  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 MDA and CCM

  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 MDA and CCM

  39. How Building MDA to CCM Transformation PlatformsWith OpenCCM MDA and CCM

  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 MDA and CCM

  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 MDA and CCM

  42. The OpenCCM’s Compilation Chain forIDL, PSDL, and CIDL Files Compiler IDL/PSDL/CIDL Abstract Syntax Tree for IDL/PSDL/CIDL Interface Repository Generators IDL/PSDL/CIDL OMG IDL2 CIF for Java MDA and CCM

  43. The OpenCCM’s 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 MDA and CCM

  44. Component servers Target environment The OpenCCM’s Deployment Chain Abstract Tree for CCM XML Deployment Tool Component distribution, installation, instantiation, configuration and execution MDA and CCM

  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 MDA and CCM

  46. DTD2Java and DTD2GUI Meta Tools XML DTD GUI Parametrization Zeus DTD2Java OpenCCM DTD2GUI Java Tree Java Swing GUI Observer Design Pattern MDA and CCM

  47. Zeus DTD2Java Generation Example • For the following XML DTD <!ELEMENT personsperson*> <!ELEMENT person EMPTY> <!ATTRLIST person name CDATA> • 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 { . . . }; MDA and CCM

  48. OpenCCM DTD2GUI Generation Example MDA and CCM

  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 MDA and CCM

  50. GUI4aCMM Component Model End User Component Model Designer MOF Java4aCMM aCMM Building MDA to CCM Transformation Platforms With OpenCCM MOF2DTD aCCM XML DTD OpenCCM DTD2GUI Zeus DTD2Java MDA and CCM

More Related