0% found this document useful (0 votes)
90 views61 pages

Model Driven

Model-driven development (MDD) uses models as primary artifacts in the development process. The document discusses using MDD and Eclipse tools to implement a service-oriented architecture (SOA) that addresses challenges such as semantic interoperability and platform independence. It presents domain, message, and service models that can be used to generate web services from a common integration model, improving communication, agility and reducing development time. Rational Software Modeler was chosen as the UML modeling tool due to its Eclipse integration and extensibility.

Uploaded by

sridhiya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
90 views61 pages

Model Driven

Model-driven development (MDD) uses models as primary artifacts in the development process. The document discusses using MDD and Eclipse tools to implement a service-oriented architecture (SOA) that addresses challenges such as semantic interoperability and platform independence. It presents domain, message, and service models that can be used to generate web services from a common integration model, improving communication, agility and reducing development time. Rational Software Modeler was chosen as the UML modeling tool due to its Eclipse integration and extensibility.

Uploaded by

sridhiya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

model driven

Using
Model-Driven Development
& Eclipse Technology
to implement SOA

Tas Frangoullides
model driven

Overview

• What is Model-Driven Development (MDD)


• Challenges of SOA
• Our Solution
• Getting There
• Summary and Tips
• Questions
model driven

What is...

MODEL-DRIVEN DEVELOPMENT?
model driven

Model-Driven Development

Source Code

Model Generators Data Schemas

Presentation
Artefacts
model driven

Benefits of MDD

Raises the level


of abstraction
Can target
multiple
platforms

Reduces
development
times
model driven

Implementing Service-Oriented Architecture

THE CHALLENGES
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
model driven

Applying Model-Driven Development and Eclipse Technology

OUR SOLUTION
model driven

Enterprise Data

Within an Enterprise Application Outside an Enterprise Application

Common
Domain Model Integration
Data Model
Source
EWS
Services
Data
Source

Enterprise Web Service


maps between the two
worlds of data
model driven

Common Integration Model


• Representative of an
Enterprise business domain
Common • Common vocabulary between
Integration
Model
systems and people
EWS • 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
model driven

From domain model to service


Describes business entities
and the relationships Domain Global
between them Model Website

Constraint

Describes units of
information which may be Message
XSD Java
+ Bindings
communicated between Model
systems

Use by
reference
Describes SOA service
interfaces in a platform- Service Deployable
independent manner Model Web Service
model driven

Web Service Generation


Eclipse
Service Web Project
Model

WSDL

XML Schemas

Java Binding for XML

Java Interface & Implementation Skeleton

Deployment Descriptor

Ivy Configuration (Dependency Management)

Ant build.xml (for Jumpstart)


model driven

Web Service Generation


Eclipse
Service Web Project
Model

X-Fire Sonic
Project ESB Project
Services
Framework Sonic Process
Configuration

Spring Deployment Manager


Configuration Model Files
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
model driven

EXAMPLE MODELS
model driven

Domain Model
«Domain Model»
CDM

Institution

Instrument

...
model driven

Domain Model
«Domain Model»
CDM

Institution

Instrument

...
model driven

Message Model
«Message Model»
Market Data

Prices

...
model driven

Service Model
«Service Model»
Pricing Service

Instrument 1
model driven

What do we do with the models?

THE SOA TOOLKIT


model driven

The SOA Toolkit


Information
Architect

Domain Enterprise
Model Modellers

• Analyse & Validate Model


• Manage common data
Messaging types
Team • Publish Web Site
Message (Continuous)
Model Service
Model

• Create derived models • Model Services


• Analyse and synchronise Business • Generate Web Services
changes between domain Analyst • Apply standards and best-
and message model practice
• Generate XML Schemas • Abstract the platform
Developers • Develop Java Code
• Deploy Services
model driven

Getting there

THE STORY
model driven

The Story - Overview


Prototype:
POC: Service Project Issues with
UML to XSD Generator Release 1.0 Release 2.0 Sonic ESB

Project goes live Release 2.1


with generated Sonic ESB
Web Service Introduced
model driven

The proof-of-concept

FROM UML TO XSD


model driven

POC: The Stack

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

UML2 Eclipse Modeling Framework


• Meta-Modelling Language
EMF • Code Generation
• XML Persistence
Eclipse • XML Schema Generation

• Plug-in Architecture
• UI Framework
model driven

POC: UML to XML Schema

Custom Custom
UML2Ecore Ecore Schema
Converter Builder

Eclipse UML Ecore XML


Model Models Schemas
model driven

POC: UML to XML Schema

• Suppress Ecore annotations


• Customise Data Mapping
• Standardise Namespace
• Experiment with XML Choice
• Reference XML Data Types
model driven

CHOOSING A UML MODELLING TOOL


model driven

The Contenders

Rational
MagicDraw Enterprise Architect
Software Modeler
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
model driven

More Eclipse Frameworks

WEB SERVICE GENERATION


model driven

Web Service Generation Stack

• Web Projects & Facets


Service Project Generator • WSDL
• Deployment Descriptors
Web Tools • ...
UML2
Platform
• Templates (JET)
EMF • Source Code Merging

JDT
• Classpath Handling
• Java Compiling
Eclipse
• UI Framework
• UML Profiles • Resources Framework
• Builders
model driven

The Generation-Chain Model

USING MDD TO DEVELOP MDD TOOLS


model driven

The Generation Chain

Generate
Expand/Apply Generate Generate Web Platform Retrieve
UML to Ecore Ecore to XSD
Patterns Java Bindings Project Specific Dependencies
Artefacts
model driven

Generation Chain Meta-Model


model driven

Generating an API

Java API
with
XMI Persistance

EMF
UML
Code
Importer
Generator
Eclipse Model
Generation Ecore Model Editor
Chain Model & EMF GenModel
(UML)
model driven

Creating and Synchronizing

MESSAGE MODELS
model driven

Creating a Derived Model

Domain • Palette is constrained by


Model
domain
Constraint • Relationships limited to
those available in Domain
Message
Model Model
model driven

Creating a Derived Model


• Message Palette
• Domain Element Selection Dialog
Message Modeling • Edit Helpers

Rational Software Modeler


Graphical Modeling Framework
• Integrated Platform for modelling
UML2 GMF tools
• Unites GEF and EMF
• Notational Meta-Model
EMF GEF • Model-View Separation

Eclipse
Graphical Editing Framework
• Drawing Canvas
• Palettes & Tools
model driven

Synchronisation Problem

Domain
Model

Constraint

Message
Model
model driven

Synchronisation Problem

Domain • Model elements renamed


Model
• Model elements deleted
Constraint • Types change
Message
• Packages are restructured
Model
• Traces break
model driven

Synchronising Models

• Detect and automatically fix


broken traces
Rational BGI • Report items requiring human
Software Model decision making
Modeler Analysis

TPTP
Test & Performance Tools Platform
• Static Analysis
Eclipse • Reporting
• Quick Fix Support
model driven

Keeping the models pure

THE ‘IDENTIFIABLE’ PROBLEM


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>
model driven

The ‘Identifiable’ Problem


Just model it?

Pollutes business model with


technical concerns
Identifiable is not a business
concept (in this case)
model driven

The ‘Identifiable’ Problem


Does not change structure of
business model
Downstream Implementation
can change

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

«apply»
model driven

Summary and tips

WRAPPING UP
model driven

Benefits of Model-Driven

• Models improve communication


• Agile Architecture
• Platform Independence
• Time-to-market
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
model driven

Thinking of giving this a go?

TOP 10 TIPS
model driven

Tip #1
Take an iterative and incremental approach
model driven

Tip #2
Get buy-in from key stakeholders and groups
model driven

Tip #3
Use what is already out there...

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


solutions
model driven

Tip #4
Don’t pollute your business models
model driven

Tip #5
Have at least one MDD veteran
model driven

Tip #6
Version your models along with everything else
model driven

Tip #7
Manage your inter-model dependencies and monitor
them for leakages
model driven

Tip #8
Automate where possible
model driven

Tip #9
Work with project teams and reduce their risk...
model driven

Tip #10
and if there is failure..

Share It
model driven

Questions?

Thank You
tas@model-driven.co.uk

You might also like