model-driven development eclipse technology

61
model driven Using Model-Driven Development & Eclipse Technology to implement SOA Tas Frangoullides

Upload: others

Post on 21-Jan-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Model-Driven Development Eclipse Technology

model driven

Using Model-Driven Development

& Eclipse Technologyto implement SOA

Tas Frangoullides

Page 2: Model-Driven Development Eclipse Technology

model driven

Overview

• What is Model-Driven Development (MDD)

• Challenges of SOA

• Our Solution

• Getting There

• Summary and Tips

• Questions

Page 3: Model-Driven Development Eclipse Technology

model driven

MODEL-DRIVEN DEVELOPMENT?What is...

Page 4: Model-Driven Development Eclipse Technology

model driven

Generators

Model-Driven Development

Model

Source Code

Data Schemas

PresentationArtefacts

Page 5: Model-Driven Development Eclipse Technology

model driven

Benefits of MDD

Raises the level of abstraction

Can target multipleplatforms

Reduces development times

Page 6: Model-Driven Development Eclipse Technology

model driven

THE CHALLENGES

Implementing Service-Oriented Architecture

Page 7: Model-Driven Development Eclipse Technology

model driven

Challenges of SOA

• Promoting effective communication of details between business-IT teams

• Ensuring semantic interoperability between enterprise services

• Successful adoption of standards and best-practice• Retaining independence from platforms and vendors• Maintaining a good degree of architectural agility• Getting developers up to speed and helping them

adopt technology, best-practice and new platforms

Page 8: Model-Driven Development Eclipse Technology

model driven

OUR SOLUTION

Applying Model-Driven Development and Eclipse Technology

Page 9: Model-Driven Development Eclipse Technology

model driven

Enterprise Data

Domain Model

Services

Within an Enterprise Application Outside an Enterprise Application

DataSource

DataSource

Common Integration

Model

EWS

Enterprise Web Servicemaps between the two

worlds of data

Page 10: Model-Driven Development Eclipse Technology

model driven

Common Integration Model

• Representative of an Enterprise business domain

• Common vocabulary between systems and people

• Used to constrain the structure of data used in Enterprise Services

• Should be influenced by multiple business units

• Should not be adopted internally by systems

Common Integration

Model

EWS

Page 11: Model-Driven Development Eclipse Technology

model driven

From domain model to service

Describes business entities and the relationships between them

MessageModel

ServiceModel

Describes units of information which may be communicated between systems

Describes SOA service interfaces in a platform-independent manner

Use byreference

Constraint

DomainModel

GlobalWebsite

+XSD JavaBindings

DeployableWeb Service

Page 12: Model-Driven Development Eclipse Technology

model driven

Web Service Generation

ServiceModel

EclipseWeb Project

WSDL

XML Schemas

Java Binding for XML

Deployment Descriptor

Ivy Configuration (Dependency Management)

Ant build.xml (for Jumpstart)

Java Interface & Implementation Skeleton

Page 13: Model-Driven Development Eclipse Technology

model driven

Web Service Generation

ServiceModel

EclipseWeb Project

ServicesFrameworkConfiguration

X-FireProject

SonicESB Project

SpringConfiguration

Sonic Process

Deployment ManagerModel Files

Page 14: Model-Driven Development Eclipse Technology

model driven

Benefits

• Use of models dramatically improved communication across the enterprise

• Agile Architecture

• Platform Independence

• Conformance to standard data model

• Development times for new services significantly improved

Page 15: Model-Driven Development Eclipse Technology

model driven

EXAMPLE MODELS

Page 16: Model-Driven Development Eclipse Technology

model driven

Domain Model

Institution

Instrument

...

«Domain Model»

CDM

Page 17: Model-Driven Development Eclipse Technology

model driven

Domain Model

Institution

Instrument

...

«Domain Model»

CDM

Page 18: Model-Driven Development Eclipse Technology

model driven

Message Model

Prices

...

«Message Model»

Market Data

Page 19: Model-Driven Development Eclipse Technology

model driven

Service Model

«Service Model»

Pricing Service

1Instrument

Page 20: Model-Driven Development Eclipse Technology

model driven

THE SOA TOOLKIT

What do we do with the models?

Page 21: Model-Driven Development Eclipse Technology

model driven

The SOA ToolkitInformationArchitect

EnterpriseModellers

MessagingTeam

BusinessAnalyst

Developers

MessageModel Service

Model

DomainModel

• Analyse & Validate Model• Manage common data

types• Publish Web Site

(Continuous)

• Model Services• Generate Web Services• Apply standards and best-

practice• Abstract the platform• Develop Java Code• Deploy Services

• Create derived models• Analyse and synchronise

changes between domain and message model

• Generate XML Schemas

Page 22: Model-Driven Development Eclipse Technology

model driven

THE STORY

Getting there

Page 23: Model-Driven Development Eclipse Technology

model driven

The Story - Overview

POC: UML to XSD

Prototype: Service ProjectGenerator Release 1.0

Project goes livewith generatedWeb Service

Release 2.0

Release 2.1Sonic ESBIntroduced

Issues with Sonic ESB

Page 24: Model-Driven Development Eclipse Technology

model driven

FROM UML TO XSDThe proof-of-concept

Page 25: Model-Driven Development Eclipse Technology

model driven

POC: The Stack

UML to XSD POC

UML2

EMF

Eclipse

• Plug-in Architecture• UI Framework

Eclipse Modeling Framework• Meta-Modelling Language• Code Generation• XML Persistence• XML Schema Generation

• UML API• UML Meta-model• UML to Ecore Conversion

Page 26: Model-Driven Development Eclipse Technology

model driven

POC: UML to XML Schema

Eclipse UMLModel

EcoreModels

XMLSchemas

CustomUML2EcoreConverter

CustomEcore Schema

Builder

Page 27: Model-Driven Development Eclipse Technology

model driven

POC: UML to XML Schema

• Customise Data Mapping• Experiment with XML Choice

• Suppress Ecore annotations• Standardise Namespace• Reference XML Data Types

Page 28: Model-Driven Development Eclipse Technology

model driven

CHOOSING A UML MODELLING TOOL

Page 29: Model-Driven Development Eclipse Technology

model driven

The Contenders

MagicDraw Enterprise ArchitectRational

Software Modeler

Page 30: Model-Driven Development Eclipse Technology

model driven

Why RSM?• Eclipse Based

– Extensible• Plugin Development Environment

– Integrated• Java Development• XML Editing• Version Control

– Developer Friendly• UML API• Open-Source Foundations

– EMF– UML2– GMF– TPTP

Page 31: Model-Driven Development Eclipse Technology

model driven

WEB SERVICE GENERATION

More Eclipse Frameworks

Page 32: Model-Driven Development Eclipse Technology

model driven

Web Service Generation Stack

Eclipse

EMF

Web ToolsPlatform

UML2

Service Project Generator

• UI Framework• Resources Framework• Builders

JDT • Classpath Handling• Java Compiling

• Templates (JET)• Source Code Merging

• Web Projects & Facets• WSDL• Deployment Descriptors• ...

• UML Profiles

Page 33: Model-Driven Development Eclipse Technology

model driven

USING MDD TO DEVELOP MDD TOOLS

The Generation-Chain Model

Page 34: Model-Driven Development Eclipse Technology

model driven

The Generation Chain

Expand/Apply Patterns UML to Ecore Ecore to XSD Generate

Java BindingsGenerate Web

Project

Generate Platform Specific

Artefacts

Retrieve Dependencies

Page 35: Model-Driven Development Eclipse Technology

model driven

Generation Chain Meta-Model

Page 36: Model-Driven Development Eclipse Technology

model driven

Generating an API

GenerationChain Model

(UML)

Ecore Model& EMF GenModel

Java APIwith

XMI Persistance

UML Importer

EMFCode

Generator

Eclipse ModelEditor

Page 37: Model-Driven Development Eclipse Technology

model driven

MESSAGE MODELS

Creating and Synchronizing

Page 38: Model-Driven Development Eclipse Technology

model driven

Creating a Derived Model

• Palette is constrained by domain

• Relationships limited to those available in Domain ModelMessage

Model

DomainModel

Constraint

Page 39: Model-Driven Development Eclipse Technology

model driven

Creating a Derived Model

Eclipse

EMF

GMFUML2

Rational Software Modeler

Message Modeling

Graphical Modeling Framework• Integrated Platform for modelling

tools• Unites GEF and EMF• Notational Meta-Model• Model-View SeparationGEF

Graphical Editing Framework• Drawing Canvas• Palettes & Tools

• Message Palette• Domain Element Selection Dialog• Edit Helpers

Page 40: Model-Driven Development Eclipse Technology

model driven

Synchronisation Problem

MessageModel

DomainModel

Constraint

Page 41: Model-Driven Development Eclipse Technology

model driven

Synchronisation Problem

MessageModel

DomainModel

Constraint

• Model elements renamed

• Model elements deleted

• Types change

• Packages are restructured

• Traces break

Page 42: Model-Driven Development Eclipse Technology

model driven

Synchronising Models

Eclipse

TPTP Test & Performance Tools Platform• Static Analysis

• Reporting• Quick Fix Support

BGI Model

Analysis

Rational Software Modeler

• Detect and automatically fix broken traces

• Report items requiring human decision making

Page 43: Model-Driven Development Eclipse Technology

model driven

THE ‘IDENTIFIABLE’ PROBLEM

Keeping the models pure

Page 44: Model-Driven Development Eclipse Technology

model driven

The ‘Identifiable’ Problem

<schema xmlns= "http://www.w3.org/2001/XMLSchema" targetNamespace= "http://gxml.bglobal.com/Identifiable”>

<complexType name= "Identifier"><attribute name="type" type="string"/><attribute name="value" type="string"/>

</complexType></schema>

<Instrument>...

<Identifier type="SEDOL" value="0263494"/><Identifier type="CUSIP" value="037833100"/>

...</Instrument>

Page 45: Model-Driven Development Eclipse Technology

model driven

The ‘Identifiable’ Problem

Just model it?

Pollutes business model with technical concerns

Identifiable is not a business concept (in this case)

Page 46: Model-Driven Development Eclipse Technology

model driven

The ‘Identifiable’ Problem

«apply»

<schema xmlns= "http://www.w3.org/2001/XMLSchema" targetNamespace= "http://gxml.bglobal.com/Identifiable”>

<complexType name= "Identifier"><attribute name="type" type="string"/><attribute name="value" type="string"/>

</complexType></schema>

Does not change structure of business model

Downstream Implementation can change

Page 47: Model-Driven Development Eclipse Technology

model driven

WRAPPING UP

Summary and tips

Page 48: Model-Driven Development Eclipse Technology

model driven

Benefits of Model-Driven

• Models improve communication

• Agile Architecture

• Platform Independence

• Time-to-market

Page 49: Model-Driven Development Eclipse Technology

model driven

Benefits of Eclipse Technology

• Eclipse enables a seamlessly integrated solution

• Modeling Projects provide all the scaffolding for Model-Driven Development

• Reduces the gap between the generators and platforms

• UI, Projects, Resources – all taken care of

• Developers are comfortable with Eclipse Plugins

• Keeps getting better

Page 50: Model-Driven Development Eclipse Technology

model driven

TOP 10 TIPS

Thinking of giving this a go?

Page 51: Model-Driven Development Eclipse Technology

model driven

Tip #1

Take an iterative and incremental approach

Page 52: Model-Driven Development Eclipse Technology

model driven

Tip #2

Get buy-in from key stakeholders and groups

Page 53: Model-Driven Development Eclipse Technology

model driven

Tip #3

Use what is already out there...

...but be wary of in-the-box solutions

Page 54: Model-Driven Development Eclipse Technology

model driven

Tip #4Don’t pollute your business models

Page 55: Model-Driven Development Eclipse Technology

model driven

Tip #5Have at least one MDD veteran

Page 56: Model-Driven Development Eclipse Technology

model driven

Tip #6

Version your models along with everything else

Page 57: Model-Driven Development Eclipse Technology

model driven

Tip #7Manage your inter-model dependencies and monitor

them for leakages

Page 58: Model-Driven Development Eclipse Technology

model driven

Tip #8

Automate where possible

Page 59: Model-Driven Development Eclipse Technology

model driven

Tip #9

Work with project teams and reduce their risk...

Page 60: Model-Driven Development Eclipse Technology

model driven

Tip #10

and if there is failure..

Share It

Page 61: Model-Driven Development Eclipse Technology

model driven

Questions?

Thank [email protected]