Write Once, Deploy N a Performance Oriented MDA Case Study

Size: px
Start display at page:

Download "Write Once, Deploy N a Performance Oriented MDA Case Study"

Transcription

1 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study Write Once, Deploy N a Performance Oriented MDA Case Study Pieter Van Gorp and Dirk Janssens Formal Techniques in Software Engineering Pieter.VanGorp@ua.ac.be, Dirk.Janssens@ua.ac.be Tracy Gardner (IBM) tgardner@uk.ibm.com

2 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 1/37 Presentation Roadmap 1. Research Context: Problem and proposed solution in a nutshell 2. MDA Today 3. The WODN MDA Case Study Case study: why? MDA is young, needs more (and more complex) case studies Basis for assessing quality of tools and QVT submissions 4. Conclusions & Future Work

3 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 2/37 Part I: Problem and solution in a nutshell

4 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 3/37 Problem Statement Optimizing the performance of distributed database applications is hard to combine with middleware vendor independence since cache, transaction and cluster configuration is database and application server specific. = Part of this decade s integration challenge as explained by keynote of Prof. Douglas C. Schmidt

5 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 4/37 Platform Independence? Resin Javlin NetWeaver

6 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 5/37 Component Model Essentials Distributed Server Components Memory Management, Persistence, Caching, Connection Management, Transaction Management, Object Distribution, as container services Example: Enterprise JavaBeans Java sources inherit / implement certain interfaces Remote Home Intf, Local Home Intf Remote Bean Intf, Local Bean Intf Bean Class (focus on business logic) Deployment Attributes for code generators / compilers XML Deployment Descriptors (tuning!!!) Final component accesses server specific API Callbacks to Bean Class Popular alternative: Hibernate Same principles (interfaces and descriptors)

7 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 6/37 Proposed Solution 1. Model platform independent business components PIMs 2. Generate platform specific implementations May be interactive wizard (e.g. point to database) PSMs, PSC 3. Generate platform independent wrapper code Generate PIC 4. Write applications using these components Plain Java (depends on your high-level API) or visual behavioral language (e.g., SDM) 5. Analyze access scenario of such applications Model analysis 6. Generate delegation code (component discovery) Optimizing performance = tuning code generator Requires good transformation language!

8 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 7/37 Part II: Solution Space: MDA Mainstream and next-generation tools» Standards

9 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 8/37 Existing MDA Tools Input Model for contracts package (PIM) Generated Source for ContractBean.java (PSC) /* Autogenerated by AndroMDA (EntityBean.vsl) - do not package org.andromda.samples.carrental.contracts; /** *... generate="false" local-class="org.an generate="false" local-class="org.andromd generate = "false" class = "java.lang.strin * table-name="contract */ public abstract class ContractBean extends java.lang.object implements javax.ejb.entitybean { /** * Get the driver * * name="contract->driver" * role-name="contract->driver:thecontract" * target-ejb="driver" * target-role-name="contract->driver:driver" * target-multiple="true" * * fk-column = "DRIVER" * related-pk-field = "id" */ public abstract org.andromda.samples.carrental.customers.driver getdriver(); }

10 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 9/37 How to realize research goals? Performance optimization Platform independence» Adapt the code generator!

11 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 10/37 Code Templates Access to model elements WYSIWIG Code package $packagename; import javax.ejb.entitycontext; import javax.ejb.removeexception; public abstract class ${entityname}beanimpl extends ${entityname}bean { private EntityContext context; public void setentitycontext(entitycontext ctx) { //Log.trace("${class.name}Bean.setEntityContext..."); context = ctx; } public void unsetentitycontext() { //Log.trace("${class.name}Bean.unsetEntityContext..."); context = null; } public void ejbremove() throws RemoveException { //Log.trace( // "${class.name}bean.ejbremove..."); }

12 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 11/37 Code Templates - Too Abstract Input Models => Complex scripting - code duplication - no integrated style checking #foreach ( $op in $class.operations ) #if ($transform.getstereotype($op) == "FinderMethod") signature="${transform.findfullyqualifiedname($op.gettype())} ${transform.getoperationsignature($op)}" #set($viewtype = "") #set($viewtype = $transform.findtagvalue($op.taggedvalues, "@andromda.ejb.viewtype")) #if($viewtype == "local" $viewtype == "remote" $viewtype == "both") * view-type="$viewtype" #end #set($querystring = "") #set($querystring = $transform.findtagvalue($op.taggedvalues, "@andromda.ejb.query")) #if($querystring == "") #set($querystring = "SELECT DISTINCT OBJECT(c) FROM $class.name AS c") #if($op.parameters.size() >0 ) #set($querystring = "${querystring} WHERE") #foreach($prm in $op.parameters) #set($querystring="${querystring} c.$prm.name =?$velocitycount") #if($velocitycount!= $op.parameters.size()) #set($querystring = "${querystring} AND") #end #end #end #end * query="$querystring"

13 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 12/37 Evolving today s MDA tools Problem Input Metamodel (UML) is too General Purpose Solution: ( Too abstract for code generation ) 1. Code Templates on very concrete Metamodels Refactor input metamodel to stack of metamodels 2. Solution: Stepwise refinement Refactor code templates to model transformations This requires vertical exogenous model to model transformations

14 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 13/37 MDA Standards Definition Model-Driven Engineering with UML and MOF UML: Widely known notations for diagrams (Visualize your models) MOF: Repository standard (Store your models) QVT: Model transformation standard M2T: Code template standard Goal Standard MDD Tools Education, Managing Evolution of Framework Standards Beyond J2EE Best practices as first class programming artifacts before in standard Your company standards for what IBM, BEA, SUN, should not standardize Beyond MOF (!)

15 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 14/37 Model Transformation Today Submissions to QVT RFP See T. Gardner et al. and K. Czarnecki et al. Research Languages and Tools Triskell : MTL Lina: ATL ISIS: GReAT (GME) Segravis: SDM (Fujaba) BME-MIT: VIATRA QVT: What do they have in common? How can vendors compete?

16 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 15/37 Declarative VS Imperative [ T. Gardner et al. ] Declarative No explicit execution step specification Relationships between variables Engine infers result from the relation Imperative Explicit state manipulation Hybrid Combination of declarative and imperative

17 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 16/37 Problem with QVT RFP No concrete use cases Therefore, no example of a relation between variables Unclear what declarative means why it is relevant Solution: case studies More (horizontal and vertical transformations) More realistic (e.g. performance-oriented)

18 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 17/37 Part III: The WODN MDA Case Study

19 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 18/37 Write Once, Deploy N Online Data Access Scenario s 85% Read for Display: Lazy Loading Invalidations from Writers No Transactions 10% Read-Write: Aggressive Loading Transaction Support 5% Batch Update: Lazy Loading Transaction Support

20 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 19/37 WODN as and MDA Case Study Server Component Deployment A Deploy 1 Component would need conservative deployment attributes and waste resources! A Deploy 3 Approach boosts performance. Manual Implementation is tedious Attributes vary per vendor MDE Approach: Generate the 3 deployments Hide clients from this optimization

21 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 20/37 Part III: Suggested solution to the case study

22 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 21/37 Domain Specific Metamodels Metamodel for business analysis (PIM) Metamodel for transactional caching Metamodel for object-to-relational mapping Metamodel for WL EJB (PSM1) Metamodel for JBoss EJB (PSM2)

23 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 22/37 Model Transformation Process

24 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 23/37 Metamodels for WODN (I/III) Note MM Reuse

25 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 24/37 Metamodels for WODN (II/III)

26 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 25/37 Metamodels for WODN (III/III)

27 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 26/37 An interpretation of Declarative Most declarative transformation description = the consistency constraint that it establishes!!! Transformation Data2TransactionalCaching { // models as structural features (attributes) Data d; // metamodel as static type of model TransactionalCaching tc; // model as container of model elements (8) // rules as behavioral features (operations) Rule Entity2RO_Component () { postcondition: // a specific invariant is established d.entity.allinstances->forall(e tc.component.allinstances->exists(c e.classifier = c.classifier and c.lockingstrategy = LockingStrategy::noLock and c.transactiondemarcation = tc.transactiondemarcation::optional ) ) }... } Role of the transformation language engine Framework needs to be hybrid

28 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 27/37 Transformation Language Requirement Therefore, a transformation engine should be integrated with a consistency checker Review of ArcStyler tool User experience: Developer experience: OK Problematic

29 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 28/37 What about Imperative languages? Why Imperative? For complex automatic reconciliation Less needed as engines mature What language can be used? Fujaba s SDM, GME s GReAT, ATL, Java,

30 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 29/37 A QVT Standard within months? Initially, QVT standard should NOT standardize the imperative language MDA tool vendors can compete on transformation engines that automatically satisfy complex consistency constraints! After a couple of years, OMG can standardize The most popular imperative transformation language Popular constraint predicates (like isisomorphicto )

31 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 30/37 Transformation Language Requirement Integration with code templates No separate model to text RFP! (ArcStyler review ) WODN code generator requires polymorphism (AndroMDA review ) Advantage: smooth visualization in model transformation process

32 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 31/37 Concrete integration example from WODN abstract Transformation Components2xDoclet { TransactionalCaching tc; ORDB o; Text code; Rule Generate() { postcondition: tc.component.allinstances->forall( c o.entity.allinstances->forall( e (c.classifier = e.classifier) implies ( code.file.allinstances->exists( // ignore directories in this example f f.name= (c.name + ".java") and f.content= Join2JavaFile(c, e) ) ) ) ) }... }

33 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 32/37 Polymorphism in Code Template Rules: Platform Specialization without Code Duplication abstract Transformation Components2xDoclet {... Rule Join2JavaFile (TransactionalCaching::Component c, ORDB::Entity e): Text::String { // code template fragment for Java imports // code template fragment for conventional Javadoc #call Join2ClassTags(c,e);... // code template fragment for iterating over methods... #call Join2MethodTags(c,e); } Polymorphic execution= Declarative: engine executes concrete transformation rule from dynamic type of transformation abstract Rule Join2ClassTags ( TransactionalCaching::Component c, ORDB::Entity e): Text::String { // code template for vendor independent xdoclet class // @ejb.interface, //... }... }

34 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 33/37 Concrete rule in subtype transfo abstract Transformation Components2WL inherits Components2xDoclet { // Join2JavaFile inherited, not overriden Polymorphic execution= Declarative: engine executes concrete transformation rule from dynamic type of transformation Rule Join2ClassTags ( TransactionalCaching::Component c, ORDB::Entity e): Text::String { #call super.join2classtags(c,e); // code template for WebLogic specific // xdoclet class tags }... }

35 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 34/37 Part IV: Conclusions & Future Work

36 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 35/37 WODN: Lessons learned for QVT Solution to declarative<>imperative dilemma: Most declarative description of a transformation = consistency constraint Standardize framework for automatic constraint solvers instead of one unproven language OCL for consistency constraints Proprietary languages for imperative transformation fragments JMI could already be used as a standard language! Vendors can compete on power of transformation engines Future versions of spec. can standardize most popular imperative language Integrate QVT and M2T from the beginning Today s middleware code is text! MDA emerged there! Most popular MDA tools have mature code template support

37 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 36/37 WODN: Modeling transformations Model transformation process Use activity diagrams Transformation structure and Variability of code generator Use class diagrams

38 Pieter Van Gorp, The Write Once, Deploy N MDA Case Study 37/37 Future Work Implement reference framework with maximal reuse of existing software (migration effort assessment) Approach 1: Combine OCL software with transformation software E.g. OCL Toolkit (or AndroMDA) combined with JCMTG (or VIATRA) Approach 2: Use software supporting OCL and transformations ATL or GReAT Add model transformations from EJB model elements to plain object model elements Enables low-level style checking Parser => Bidirectionality Add more platforms support to code generator lib! Investigate polymorphism of consistency rules

The Write Once, Deploy N MDA Case Study

The Write Once, Deploy N MDA Case Study Pieter Van Gorp, The Write Once, Deploy N MDA Case Study Belgisch-Nederlandse Evolution Workshop July 8-9, 2004 @ University of Antwerp The Write Once, Deploy N MDA Case Study Pieter Van Gorp, Dirk Janssens

More information

Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light

Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light Segravis School on Foundations of Visual Modelling Techniques, May 2004, Schloss Dagstuhl Generating JMI model transformation code from UML profile models for SDM Aligning Graph Rewriting with MDA-light

More information

Introduction to MDE and Model Transformation

Introduction to MDE and Model Transformation Vlad Acretoaie Department of Applied Mathematics and Computer Science Technical University of Denmark rvac@dtu.dk DTU Course 02291 System Integration Vlad Acretoaie Department of Applied Mathematics and

More information

All you need are models Anneke Kleppe, Klasse Objecten

All you need are models Anneke Kleppe, Klasse Objecten Model Driven Architecture All you need are models Anneke Kleppe, Klasse Objecten Contents Limited Vision on MDA Modeling Maturity Levels Models Model Driven Development Model Driven Architecture MDA in

More information

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations

MDD with OMG Standards MOF, OCL, QVT & Graph Transformations 1 MDD with OMG Standards MOF, OCL, QVT & Graph Transformations Andy Schürr Darmstadt University of Technology andy. schuerr@es.tu-darmstadt.de 20th Feb. 2007, Trento Outline of Presentation 2 Languages

More information

Towards 2D Traceability

Towards 2D Traceability Towards 2D Traceability in a platform for Contract Aware Visual Transformations with Tolerated Inconsistencies Pieter Van Gorp pieter.vangorp@ua.ac.be Frank Altheide frank.altheide@gmail.com Dirk Janssens

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

Leveraging UML Profiles to Generate Plugins From Visual Model Transformations

Leveraging UML Profiles to Generate Plugins From Visual Model Transformations Electronic Notes in Theoretical Computer Science 127 (2005) 5 16 www.elsevier.com/locate/entcs Leveraging UML Profiles to Generate Plugins From Visual Model Transformations Hans Schippers, Pieter Van Gorp,

More information

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

Small is Beautiful Building a flexible software factory using small DSLs and Small Models Small is Beautiful Building a flexible software factory using small DSLs and Small Models Jos Warmer Partner, Ordina jos.warmer@ordina.nl 1 Modeling Maturity Levels MML 0: No specification MML 1: Textual

More information

Model Driven Engineering (MDE)

Model Driven Engineering (MDE) Model Driven Engineering (MDE) Yngve Lamo 1 1 Faculty of Engineering, Bergen University College, Norway 26 April 2011 Ålesund Outline Background Software Engineering History, SE Model Driven Engineering

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

MDSE USE CASES. Chapter #3

MDSE USE CASES. Chapter #3 Chapter #3 MDSE USE CASES Teaching material for the book Model-Driven Software Engineering in Practice by Morgan & Claypool, USA, 2012. www.mdse-book.com MDSE GOES FAR BEYOND CODE-GENERATION www.mdse-book.com

More information

Copying Subgraphs within Model Repositories

Copying Subgraphs within Model Repositories Copying Subgraphs within Model Repositories Pieter van Gorp, Hans Schippers, Dirk Janssens April 2, 2006 1 / 37 Contents Languages 2 / 37 Outline Languages 3 / 37 : Model Driven Software Engineering Model

More information

Model Abstraction versus Model to Text Transformation

Model Abstraction versus Model to Text Transformation Model Abstraction versus Model to Text Transformation Jon Oldevik, Tor Neple, Jan Øyvind Aagedal SINTEF Information and Communication Technology, Forskningsvn 1, N-0314 Oslo, Norway {jon.oldevik tor.neple

More information

Model Transformation Techniques

Model Transformation Techniques Transformation Techniques (or: Why I'd like write programs that write programs rather than write programs) Prof. Jean-Marc Jézéquel (Univ. Rennes 1 & INRIA) Triskell Team @ IRISA Campus de Beaulieu F-35042

More information

Model Driven Architecture - The Vision

Model Driven Architecture - The Vision Model Driven Architecture - The Vision Marko Fabiunke Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik marko.fabiunke@first.fraunhofer.de The Fraunhofer FIRST Institut Your partner We support

More information

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Model-Driven Architecture

Model-Driven Architecture THE IT-ARCHITECTURE PROFESSIONALS Model-Driven Architecture Stephen J. Mellor, Kendall Scott, Axel Uhl, Dirk Weise Interactive Objects Software info@io-software.com Agenda 2 Motivation for MDA Terminology:

More information

Practical Model-Driven Development with the IBM Software Development Platform

Practical Model-Driven Development with the IBM Software Development Platform IBM Software Group Practical Model-Driven Development with the IBM Software Development Platform Osmond Ng (ong@hk1.ibm.com) Technical Consultant, IBM HK SWG 2005 IBM Corporation Overview The Challenges

More information

Model Driven Development. Building Automated Code Generation Methods with Eclipse and DSL Tools. Vicente Pelechano

Model Driven Development. Building Automated Code Generation Methods with Eclipse and DSL Tools. Vicente Pelechano Model Driven Development Building Automated Code Generation Methods with Eclipse and DSL Tools Vicente Pelechano Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia

More information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

Enterprise JavaBeans: BMP and CMP Entity Beans

Enterprise JavaBeans: BMP and CMP Entity Beans CIS 386 Course Advanced Enterprise Java Programming Enterprise JavaBeans: BMP and CMP Entity Beans René Doursat Guest Lecturer Golden Gate University, San Francisco February 2003 EJB Trail Session Beans

More information

UNIT-III EJB APPLICATIONS

UNIT-III EJB APPLICATIONS UNIT-III EJB APPLICATIONS CONTENTS EJB Session Beans EJB entity beans EJB clients EJB Deployment Building an application with EJB. EJB Types Types of Enterprise Beans Session beans: Also called business

More information

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com Department of Software Systems Engineering University of Isfahan Fall 2013 Overview Model & Modeling UML & UML Profile

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

The Model Driven (R)evolution. Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc.

The Model Driven (R)evolution. Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc. The Model Driven (R)evolution Richard Mark Soley, Ph.D. Chairman and CEO Object Management Group, Inc. Modeling Changes Everything! Throw out those pesky objects! Toss away your silly compilers! No more

More information

A Taxonomy of Model Transformation

A Taxonomy of Model Transformation Electronic Notes in Theoretical Computer Science 152 (2006) 125 142 www.elsevier.com/locate/entcs A Taxonomy of Model Transformation Tom Mens 1 Software Engineering Lab Université de Mons-Hainaut Mons,

More information

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p. Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services

More information

OCL for the Specification of Model Transformation Contracts

OCL for the Specification of Model Transformation Contracts OCL for the Specification of Model Transformation Contracts Eric Cariou, Raphaël Marvie, Lionel Seinturier, and Laurence Duchien LIFL - Université des Sciences et Technologies de Lille UMR CNRS 8022 -

More information

An Introduction to MDE

An Introduction to MDE An Introduction to MDE Alfonso Pierantonio Dipartimento di Informatica Università degli Studi dell Aquila alfonso@di.univaq.it. Outline 2 2» Introduction» What is a Model?» Model Driven Engineering Metamodeling

More information

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution

More information

Component-based Architecture Buy, don t build Fred Broks

Component-based Architecture Buy, don t build Fred Broks Component-based Architecture Buy, don t build Fred Broks 1. Why use components?... 2 2. What are software components?... 3 3. Component-based Systems: A Reality!! [SEI reference]... 4 4. Major elements

More information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject

More information

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture

Model transformations. Overview of DSLE. Model transformations. Model transformations. The 4-layer architecture Overview of DSLE Model driven software engineering g in general Grammars, signatures and meta-models DSL Design Code generation Models increase the level of abstraction used for both hardware and software

More information

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik Modellierung operationaler Aspekte von Systemarchitekturen Master Thesis presentation October 2005 March 2006 Agenda Goals Model-Driven Software Development Pro-active Infrastructure (PAI) Operational

More information

Object Security. Model Driven Security. Ulrich Lang, Rudolf Schreiner. Protection of Resources in Complex Distributed Systems

Object Security. Model Driven Security. Ulrich Lang, Rudolf Schreiner. Protection of Resources in Complex Distributed Systems Object Security TM The Security Policy Company Protection of Resources in Complex Distributed Systems Ulrich Lang, Rudolf Schreiner ObjectSecurity Ltd. University of Cambridge Agenda COACH Project Model

More information

OMG Workshop MDA. Tool Chains for MDA? Let's consider leaving our tool chains behind us.

OMG Workshop MDA. Tool Chains for MDA? Let's consider leaving our tool chains behind us. Karl Frank Principal Architect: Product Strategy and Architecture kfrank@borland.com OMG Workshop MDA Tool Chains for MDA? Let's consider leaving our tool chains behind us. Please note the existence of

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

More information

Model-Driven QoS Provisioning Techniques for CCM DRE Systems

Model-Driven QoS Provisioning Techniques for CCM DRE Systems Model-Driven QoS Provisioning Techniques for CCM DRE Systems Stoyan Paunov, Gan Deng, Douglas C. Schmidt, and Anirudha Gokhale ISIS, Vanderbilt University Motivation for QoS-enabled Middleware Trends!

More information

BLU AGE 2009 Edition Agile Model Transformation

BLU AGE 2009 Edition Agile Model Transformation BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation

More information

Science of Computer Programming. GREAT: UML transformation tool for porting middleware applications

Science of Computer Programming. GREAT: UML transformation tool for porting middleware applications Science of Computer Programming 73 (2008) 3 12 Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico GREAT: UML transformation tool for

More information

Introduction to Dependable Systems: Meta-modeling and modeldriven

Introduction to Dependable Systems: Meta-modeling and modeldriven Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software

More information

Transformational Design with

Transformational Design with Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl für Softwaretechnologie Transformational Design with Model-Driven Architecture () Prof. Dr. U. Aßmann Technische Universität

More information

DEV427 MODEL-DRIVEN DEVELOPMENT USING PowerDesigner. Xiao-Yun WANG PowerDesigner Chief Architect

DEV427 MODEL-DRIVEN DEVELOPMENT USING PowerDesigner. Xiao-Yun WANG PowerDesigner Chief Architect DEV427 MODEL-DRIVEN DEVELOPMENT USING PowerDesigner Xiao-Yun WANG PowerDesigner Chief Architect xwang@sybase.com OBJECTIVES 1. Understand what s Model-Driven Development 2. Understand why Model-Driven

More information

09. Component-Level Design

09. Component-Level Design 09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a

More information

Sequence Diagram Generation with Model Transformation Technology

Sequence Diagram Generation with Model Transformation Technology , March 12-14, 2014, Hong Kong Sequence Diagram Generation with Model Transformation Technology Photchana Sawprakhon, Yachai Limpiyakorn Abstract Creating Sequence diagrams with UML tools can be incomplete,

More information

Model Driven Architecture and Rhapsody

Model Driven Architecture and Rhapsody Model Driven Architecture and Rhapsody Dr. Bruce Powel Douglass Chief Evangelist Telelogic Model Driven Architecture and Rhapsody Abstract MDA, short for Model Driven Architecture, is a unification by

More information

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel innoq Deutschland GmbH innoq Schweiz GmbH D-40880 Ratingen CH-6330 Cham Tel +49 2102 77 1620 Tel +41 41 743 01 11 www.innoq.com Stefan Tilkov, stefan.tilkov@innoq.com 1 Goals Introduce MDE, MDA, MDD, MDSD,...

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

POJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks

POJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks POJOs to the rescue Easier and faster development with POJOs and lightweight frameworks by Chris Richardson cer@acm.org http://chris-richardson.blog-city.com 1 Who am I? Twenty years of software development

More information

QoS-aware model-driven SOA using SoaML

QoS-aware model-driven SOA using SoaML QoS-aware model-driven SOA using SoaML Niels Schot A thesis submitted for the degree of MSc Computer Science University of Twente EEMCS - TRESE: Software Engineering Group Examination committee: Luís Ferreira

More information

Building the Enterprise

Building the Enterprise Building the Enterprise The Tools of Java Enterprise Edition 2003-2007 DevelopIntelligence LLC Presentation Topics In this presentation, we will discuss: Overview of Java EE Java EE Platform Java EE Development

More information

CMP relations between Enterprise Java Beans (EJB) eclipse, xdoclet, jboss

CMP relations between Enterprise Java Beans (EJB) eclipse, xdoclet, jboss CMP relations between Enterprise Java Beans (EJB) eclipse, xdoclet, jboss A step by step example showing how to develop CMP relations between EJBs using eclipse, xdoclet and MyEclipse. We use an example

More information

Methods for the Development

Methods for the Development Methods for the Development Of Dependable and Adaptive Information Systems Carolina Gomez Hernandez Index of Contents History of Modeling Methods for the Development of DAIS: Model Driven Architecture

More information

History of Enterprise Java

History of Enterprise Java History of Enterprise Java! At first: Sun focused on the Java Development Kit (JDK) " Remember that Java is a spec, not a technology " Different vendors can implement Java " The JDK became the de-facto

More information

Lab2: CMP Entity Bean working with Session Bean

Lab2: CMP Entity Bean working with Session Bean Session Bean The session bean in the Lab1 uses JDBC connection to retrieve conference information from the backend database directly. The Lab2 extends the application in Lab1 and adds an new entity bean

More information

Raising the Level of Development: Models, Architectures, Programs

Raising the Level of Development: Models, Architectures, Programs IBM Software Group Raising the Level of Development: Models, Architectures, Programs Dr. James Rumbaugh IBM Distinguished Engineer Why Is Software Difficult? Business domain and computer have different

More information

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development

More information

Integrating Software Architecture Concepts into the MDA Platform with UML Profile

Integrating Software Architecture Concepts into the MDA Platform with UML Profile Journal of Computer Science 3 (10): 793-802, 2007 ISSN 1549-3636 2007 Science Publications Integrating Software Architecture Concepts into the MDA Platform with UML Profile 1 Adel Alti, 2 Tahar Khammaci

More information

IBM Rational Software Architect

IBM Rational Software Architect Unifying all aspects of software design and development IBM Rational Software Architect A complete design & development toolset Incorporates all the capabilities in IBM Rational Application Developer for

More information

COURSE 9 DESIGN PATTERNS

COURSE 9 DESIGN PATTERNS COURSE 9 DESIGN PATTERNS CONTENT Applications split on levels J2EE Design Patterns APPLICATION SERVERS In the 90 s, systems should be client-server Today, enterprise applications use the multi-tier model

More information

Comparative Analysis of EJB3 and Spring Framework

Comparative Analysis of EJB3 and Spring Framework Comparative Analysis of EJB3 and Spring Framework Janis Graudins, Larissa Zaitseva Abstract: The paper describes main facilities of EJB3 and Spring Framework as well as the results of their comparative

More information

Comparative analysis of MDA tools

Comparative analysis of MDA tools STUDIA INFORMATICA Nr 1-2(16) Systems and information technology 2012 Comparative analysis of MDA tools Krzysztof Pietraszek 1 1 Institute of Computer Science, University of Natural Sciences and Humanities,

More information

Enterprise JavaBeans (I) K.P. Chow University of Hong Kong

Enterprise JavaBeans (I) K.P. Chow University of Hong Kong Enterprise JavaBeans (I) K.P. Chow University of Hong Kong JavaBeans Components are self contained, reusable software units that can be visually composed into composite components using visual builder

More information

16 Evaluation Framework for Model-Driven Product Line Engineering Tools

16 Evaluation Framework for Model-Driven Product Line Engineering Tools 16 Evaluation Framework for Model-Driven Product Line Engineering Tools J. Oldevik, A. Solberg, Ø. Haugen, and B. Møller-Pedersen Abstract Both the -driven development (MDD) approach and the product line

More information

Model Driven Architecture Model Driven Development. Johann Oberleitner

Model Driven Architecture Model Driven Development. Johann Oberleitner Model Driven Architecture Model Driven Development Johann Oberleitner joe@infosys.tuwien.ac.at 23. 5. 2006 Agenda Motivation Goals of MDA Technologies/Paradigms for MDA MDA Tools MDA State of the Art Next

More information

The Details of Writing Enterprise Java Beans

The Details of Writing Enterprise Java Beans The Details of Writing Enterprise Java Beans Your Guide to the Fundamentals of Writing EJB Components P. O. Box 80049 Austin, TX 78708 Fax: +1 (801) 383-6152 information@middleware-company.com +1 (877)

More information

Services Oriented Architecture and the Enterprise Services Bus

Services Oriented Architecture and the Enterprise Services Bus IBM Software Group Services Oriented Architecture and the Enterprise Services Bus The next step to an on demand business Geoff Hambrick Distinguished Engineer, ISSW Enablement Team ghambric@us.ibm.com

More information

Implementing Model Driven Architecture

Implementing Model Driven Architecture TUTORIAL Implementing Model Driven Architecture Using Enterprise Architect MDA in Practice By Frank Truyen frank.truyen@cephas.cc All rights reserved. Page 1 Cephas Consulting Corp. Implementing Model

More information

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: Metamodels Design

More information

Impacts of changes in enterprise software construction for telecommunications

Impacts of changes in enterprise software construction for telecommunications Project Report Impacts of changes in enterprise software construction for telecommunications Model Driven Architecture Assessments of relevant technologies Editor: Olaf Kath, IKV++ Technologies AG DRAFT

More information

RECODER - The Architecture of a Refactoring System

RECODER - The Architecture of a Refactoring System RECODER - The Architecture of a Refactoring System Andreas Ludwig Prof. U. Aßmann http://recoder.sf.net Overview ➊Programming in the Large Problems, Concepts, The Approach ➋The Architecture of RECODER

More information

Model Driven Engineering

Model Driven Engineering Model Driven Engineering Stuart Kent University of Kent Royal Society Industry Fellow with IBM Model Terminology encompasses more than program code design, analysis, specification, business models Driven

More information

ECLIPSE MODELING PROJECT

ECLIPSE MODELING PROJECT ECLIPSE MODELING PROJECT A Domain-Specific Language Toolkit Richard С. Gronback AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Pans Madrid

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: The IDE: Integrated Development Environment. MVC: Model-View-Controller Architecture. BC4J: Business Components

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: WSAD. J2EE business topologies. Workbench. Project. Workbench components. Java development tools. Java projects

More information

In the most general sense, a server is a program that provides information

In the most general sense, a server is a program that provides information d524720 Ch01.qxd 5/20/03 8:37 AM Page 9 Chapter 1 Introducing Application Servers In This Chapter Understanding the role of application servers Meeting the J2EE family of technologies Outlining the major

More information

Softwaretechnik. Lecture 19: Model Driven Engineering. Peter Thiemann. University of Freiburg, Germany

Softwaretechnik. Lecture 19: Model Driven Engineering. Peter Thiemann. University of Freiburg, Germany Softwaretechnik Lecture 19: Model Driven Engineering Peter Thiemann University of Freiburg, Germany 23.07.2012 Peter Thiemann (Univ. Freiburg) Softwaretechnik 23.07.2012 1 / 50 Introduction MDA Introduction

More information

Techniques for Building J2EE Applications

Techniques for Building J2EE Applications Techniques for Building J2EE Applications Dave Landers BEA Systems, Inc. dave.landers@4dv.net dave.landers@bea.com Why are we Here? Discuss issues encountered with J2EE Application deployment Based on

More information

Overview of lectures today and Wednesday

Overview of lectures today and Wednesday Model-driven development (MDA), Software Oriented Architecture (SOA) and semantic web (exemplified by WSMO) Draft of presentation John Krogstie Professor, IDI, NTNU Senior Researcher, SINTEF ICT 1 Overview

More information

MyEclipse EJB Development Quickstart

MyEclipse EJB Development Quickstart MyEclipse EJB Development Quickstart Last Revision: Outline 1. Preface 2. Introduction 3. Requirements 4. MyEclipse EJB Project and Tools Overview 5. Creating an EJB Project 6. Creating a Session EJB -

More information

<<Interface>> EntityBean (from ejb) EJBHome. <<Interface>> CountHome. (from entity) create() findbyprimarykey() <<Interface>> EJBObject.

<<Interface>> EntityBean (from ejb) EJBHome. <<Interface>> CountHome. (from entity) create() findbyprimarykey() <<Interface>> EJBObject. Count BMP Entity EJB Count BMP Entity EJB EJBHome (from ejb) EntityBean (from ejb) CountClient main() CountHome create() findbyprimarykey() EJBObject (from ejb) Count getcurrentsum() setcurrentsum() increment()

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Design Patterns II Dr. Basem Suleiman Service Oriented Computing Group, CSE, UNSW Australia Semester 1, 2016, Week 7 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2442

More information

index_ qxd 7/18/02 11:48 AM Page 259 Index

index_ qxd 7/18/02 11:48 AM Page 259 Index index_259-265.qxd 7/18/02 11:48 AM Page 259 Index acceptance testing, 222 activity definition, 249 key concept in RUP, 40 Actor artifact analysis and iterative development, 98 described, 97 136 in the

More information

Modelling in Enterprise Architecture. MSc Business Information Systems

Modelling in Enterprise Architecture. MSc Business Information Systems Modelling in Enterprise Architecture MSc Business Information Systems Models and Modelling Modelling Describing and Representing all relevant aspects of a domain in a defined language. Result of modelling

More information

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive

More information

The Power of XDoclet CIS Database System Design

The Power of XDoclet CIS Database System Design The Power of XDoclet CIS 764 - Database System Design Darren Landoll Computing and Information Sciences Kansas State University 2/28/2005 Table of Contents 1. Introduction...3 1.1 Concepts...3 1.2 References...3

More information

J2EEML: Applying Model Driven Development to Autonomic Enterprise Java Bean Systems

J2EEML: Applying Model Driven Development to Autonomic Enterprise Java Bean Systems J2EEML: Applying Model Driven Development to Autonomic Enterprise Java Bean Systems Jules White jules@dre.vanderbilt.edu Institute for Software Integrated Systems (ISIS) Vanderbilt University Nashville,

More information

Code generation with XDoclet. It s so beautifully arranged on the plate you know someone s fingers have been all over it.

Code generation with XDoclet. It s so beautifully arranged on the plate you know someone s fingers have been all over it. Code generation with XDoclet It s so beautifully arranged on the plate you know someone s fingers have been all over it. Julia Child 33 34 CHAPTER 2 Code generation with XDoclet Developing EJBs today entails

More information

Applying MDE Tools at Runtime: Experiments upon Runtime Models

Applying MDE Tools at Runtime: Experiments upon Runtime Models Applying MDE Tools at Runtime: Experiments upon Runtime Models Hui Song, Gang Huang, Franck Chauvel, and Yanchun Sun Key Lab of High Confidence Software Technologies (Ministry of Education) School of Electronic

More information

* Corresponding Author

* Corresponding Author A Model Driven Architecture for REA based systems Signe Ellegaard Borch, Jacob Winther Jespersen, Jesper Linvald, Kasper Østerbye* IT University of Copenhagen, Denmark * Corresponding Author (kasper@it-c.dk)

More information

A Metamodel independent approach for Conflict Detection to support distributed development in MDE. Mostafa Pordel A THESIS

A Metamodel independent approach for Conflict Detection to support distributed development in MDE. Mostafa Pordel A THESIS A Metamodel independent approach for Conflict Detection to support distributed development in MDE By Mostafa Pordel mpl08001@student.mdh.se A THESIS Submitted in partial fulfillment of requirements for

More information

Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat

Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat Universita degli Studi di Bologna Facolta di Ingegneria Anno Accademico 2007-2008 Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat http://www lia.deis.unibo.it/courses/tecnologieweb0708/

More information

Ontology-based Model Transformation

Ontology-based Model Transformation Ontology-based Model Transformation Stephan Roser Advisor: Bernhard Bauer Progamming of Distributed Systems Institute of Computer Science, University of Augsburg, Germany [roser,bauer]@informatik.uni-augsburg.de

More information

Role of Executable UML in MDA. Presented by Shahid Alam

Role of Executable UML in MDA. Presented by Shahid Alam Role of Executable UML in MDA Presented by Shahid Alam salam3@connect.carleton.ca 12/2005 Outline Introduction to MDA Executable UML Does it apply to MDA Model Compilers Conclusion Model Driven Architecture

More information

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect How to Harvest Reusable Components in Existing Software Nikolai Mansurov Chief Scientist & Architect Overview Introduction Reuse, Architecture and MDA Option Analysis for Reengineering (OAR) Architecture

More information

10.1 Big Objects, Business Objects, and UML Components

10.1 Big Objects, Business Objects, and UML Components II Black-Box Composition Systems 10. Finding Business s in a -Based Development Process Literature J. Cheesman, J. Daniels. UML s. Addison-Wesley. 1. The UML component model 2. Business component model

More information

Conception of Information Systems Lecture 8: J2EE and EJBs

Conception of Information Systems Lecture 8: J2EE and EJBs Conception of Information Systems Lecture 8: J2EE and EJBs 3 May 2005 http://lsirwww.epfl.ch/courses/cis/2005ss/ 2004-2005, Karl Aberer & J.P. Martin-Flatin 1 1 Outline Components J2EE and Enterprise Java

More information