Aplicando enfoque MDE a aplicaciones WEB-SOA María Consuelo Franky lfranky@javeriana.edu.co Dpto. Ingeniería de Sistemas Universidad Javeriana Bogotá - 2010 http://sophia.javeriana.edu.co/~lfranky/ 1
Temario MDE (Model Driven Engineering) Domain Specific Languages (DSL) BPMN in the MDD (Model Driven Development) Process Web-SOA application modeling with WebML WebRatio: approach to a Model Driven software factory Referencia: tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications, Piero Fraternali, Matteo Silva y Marco Brambilla del Politecnico di Milano, II Simposio de Construcción de Software, Pontificia Universidad Javeriana, Agosto 2010 2
MDE (Model Driven Engineering) 3
Software Engineering Models Model Driven Engineering: ingeniería dirigida por modelos Software Engineering has a long tradition on the use of abstraction and sw models software models are An abstract representation of a system, independent of technology A tool for expressing and verifying requirements A starting point for automatically generating the code tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 4
MDA: The Modern Age of MDE Object Management Group (OMG) unified several modeling languages into a coherent proposal (MDA= Model Driven Architecture) setting the stage for a convergence of architecture, languages, notations, and tools UML is the most popular ingredient of MDA but not the only one tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 5
MDA core concepts Architecture = conjunct of concepts, standards and processes for developing software systems Problem space (Domain): the context where the system operates Solution Space: the spectrum of possible solutions that satisfy the system requirements Model: a (partial or total, abstract or concrete) representation of the problem or solution space Transformation: the conversion of a model into another model tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 6
Development In MDA developmentis a chain of transformations from model to model, until enough concreteness is incorporated to make the model executable tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 7
How are models specified M0: a concrete system, your application M1: the model of your system M2: the concepts used to represent your models (e.g., UML or BPMN metamodels) M3: formalism that dictates the rules for defining modeling languages (e.g., UML metamodel expressed in Meta Objet Format-MOF) tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 8
Why meta-models Allow a syntactically precise definition of modeling languages Can be read by tools, enable portability, model parsing (syntactic) checking Like grammars for textual languages and ontologies for semantic languages tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 9
Classes of models Computation Independent Models: represent the business model of the system Platform Independent Models: represents the system abstracting from technology For web systems: Business process Modeling Notation (BPMN 2.0) Web Modeling Language (WebML) Platform Specific Models: represents the system considering technology for example: Java enterprise Edition JEE) tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 10
Domain Specific Languages (DSL) 11
Concept of Domain Specific Languages (DSL) DSL: a language for describing systems in a specific domain (Web apps, embedded systems, etc) GPL: General Purpose Language: a language for describing systems in multiple domains (e.g., UML) tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 12
MDA and DSL MDA offers two standard ways to define DSLs Stereotyping: UML: 2.0 elements are overloaded with domain specific meaning Metamodelling: new language constructs are defined tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 13
GPL vs DSL GPL (Often) Standard Portable across tools DSL Easier to learn for domain expert - More precise semantics, better checking More amenable to optimized code generation More complex Less intuitive to learn Lack of precise semantics Harder to use for code generation Narrower scope Non standard Less portable across tools tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 14
MDA and Tools tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 15
BPMN in the MDD Process 16
MDD (Model-Driven Development) Process Enfoque del grupo Politécnico de Milán Manual specification of (extended) BPMN process model Automatic transformation of BPMN to WebML Possible manual refinement of WebML models Automatic running code generation on J2EE platform tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 17
What is BPM (Business Process Modeling)? Business Process Modeling aims at defining enterprise businesses in a (semi)formal way BPMN (Business Process Model and Notation) is flow-chart based notation for defining Business Processes The current version is 1.2, with a major revision process for 2.0 in progress Covers three different levels of process modeling: Process Maps : simple flow charts of the activities Process Descriptions: flow charts extended with additional information, but not enough to fully define actual performance Process Models : flow charts extended with enough information so that the process can be analyzed, simulated, and/or executed tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 18
Basic concepts Small set of graphical elements to make it easy for business users & developers to understand the workflow Business process diagram (BPD) made of: Flow Objects: Events, Activities, Gateways Connecting Objects: Sequence Flow, Message Flow, Association Swimlanes: Pool, (participant in the process), Lane (subpartition of Pool) Artifacts (Artefacts): Data Object, Group, Annotation tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 19
How to read diagrams A useful concept that helps the action of reading of a diagram is the Token The start of a process generates a Token that must eventually be consumed at the conclusion of the process A Token will traverse the Sequence Flow and pass through the Flow Objects in the Process The behavior of the Process can be described by tracking the path(s) of the Token through the Process Multiple Tokens may exist because of concurrent Process instances or the dividing of the Token for parallel processing within a single Process instance tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 20
Web-SOA application modeling with WebML (estándar propuesto por el grupo del Politécnico de Milán) 21
Requirements for Web application modeling tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 22
Domain of WebML tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 23
The WebML perspectives tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 24
Preview of WebML concepts tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 25
Content Model tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 26
Hypertext Model MODEL questions: Q1: what is the experience of the site that the user can achieve?: siteviews Q2: how is the hypertext divided into pages served to users? pages Q3: what information is published in the hypertext nodes? content units Q4: how are the hypertext nodes connected? links tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 27
Site MODEL Views tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 28
example of site views tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 29
Pages non contextual link tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 30
Hypertext design in the small tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 31
Content Units tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 32
Unit MODEL input and output tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 33
Basic Content Units tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 34
Meaning MODEL of Content Units tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 35
Links tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 36
Examples of links tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 37
Integrating hypertexts MODEL and backend business logic tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 38
Operation Unit tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 39
Built-in Operations tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 40
example: In/out flow for create operation tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 41
WebML support for SOA tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 42
example: Application Scenario tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 43
SOA operations tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 44
example of SOA operations tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 45
Hypertext +SOA tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 46
WebRatio: approach to a Model Driven software factory (WebRatio: herramienta comercial del grupo del Politécnico de Milán) 47
Qué es WebRatio BPM tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 48
Ideas claves y líneas guía tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 49
Model-Driven Development tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 50
Niveles de uso tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 51
Ciclo de desarrollo tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 52
Definición del modelo de proceso tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 53
Definición del modelo aplicativo tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 54
Definición de los templates de layout tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 55
Definición de los componentes custom tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 56
Características del código generado tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 57
Ventajas respeto a BPMS tradicionales tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 58
Beneficios para todos los roles TCO: Total cost of ownership TTM: trailing twelve months tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 59
References WebML Building data-intensive Web applications. Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, Morgan-Kaufmann, December 2002 S. Ceri, P. Fraternali, A. Bongio: Web Modeling Language (WebML): a modeling language for designing Web sites. WWW9/Computer Networks 33(1-6): 137-157 (2000) S. Ceri, P. Fraternali, S. Paraboschi: Data-Driven, One-To-One Web Site Generation for Data-Intensive Applications. VLDB 1999: 615-626 www.webml.org WebML resources (papers, manuals, ) Web modeling compendium & bibliography www.webratio.com Tool can be freely downloaded for academic use tomado del tutorial: Applying BPM and Model Driven Engineering to WEB and SOA Applications 60