47
SOA & MDA with [email protected] +332 51 13 51 42 http://www.obeo.fr http://www.acceleo.org

SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

1

SOA & MDAwith

[email protected]+332 51 13 51 42

http://www.obeo.frhttp://www.acceleo.org

Page 2: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

2

OverviewOverview

● Who / Why

● MDA and Acceleo

● Modeling SOA

Page 3: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

3

What we proposeWhat we propose

● Let's switch to industrial tools and methods :– Acceleo : Industrialise software development– Agility : Retro-engineering & migration

● Obeo : software vendor and consultancy

● Our goals :– Create software factories for pragmatic solutions– Reduce the gap between theory and reality

● A real OpenSource business modelProductivity

Durability

Agility

Page 4: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

4

Some referencesSome references

Page 5: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

5

How to reduce delay of my projects ?

Where are my up-do-date specifications ?

How capitalise the knowledge of my teams ?

How to be more agile with evolutions ?

Page 6: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

6

Model Driven EngineeringModel Driven Engineering● Innovate with an MDA approach

– Design to provide a high level conception– Automatise projection model - code– Integrate inside existing process– Be simple and customized !!!!

Page 7: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

7

Improvement by delay reductionImprovement by delay reduction

Analyse Conception Développement MaintenanceAnalyse Conception Développement Maintenance Industrialisation

Page 8: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

8

Improvement by a better communicationImprovement by a better communication

Page 9: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

9

Improvement by architectural rules reuseImprovement by architectural rules reuse

● Capitalisation => Reliability + Rationalisation + Evolutivity

Projet A Projet B Projet C

Page 10: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

10

Technology jungleTechnology jungle

C++ Java

XML

OSGi

SOA

Ajax

XHTML

C#VB.Net

PythonStruts

PHP

Zope

XUL

CorbaJBI

SCA

Soap

WSDL

Ecmascript

AspectJ

Perl

WebServices

HibernateCSS

SQL

UML

OCL

MDE

DSL

Profil

Méta-modèle

méta-méta-modèle

Transformation

Rétro-ingénierie

MDD

ADM

Ontologie

PSM PIM

méga-modèle

MDAMDA

Page 11: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

11

MDA by OMGMDA by OMG

CIM

PIM

PSM

Code

PDM

Page 12: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

12

MDA by ObeoMDA by Obeo

● 1 : Pragmatic

● 2 : Traceability

● 3 : Model Industrialisation

Page 13: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

13

Create a link between specification and realisationCreate a link between specification and realisation

IDE

Frameworks ApplicationsServer

IntegrationSystemUML Modeler

Requirementsdefinition

?

Page 14: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

14

Development industrialisation : AcceleoDevelopment industrialisation : Acceleo

Acceleo advantages : OpenSource, Eclipse integration, Incremental, Standard (EMF), Efficient

Business ModelsAgility of evolutionsUrbainsation viewInteroperability (UML, XMI, ...)

Durability of best pratices« White Box »Design driven by architecture

Massive generation (~70%)Delay reduction (~30%)Better quality

Page 15: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

15

Example for StrutsExample for Struts

Class diagram

Struts module

Actions,Forms

Jsp, Navigation

Struts-config,tiles, validation...

TestsJUnit

1 UML class = 12 generated files

Page 16: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

16

Demo (without SOA)

Page 17: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

17

Acceleo Pro TraceabilityAcceleo Pro Traceability

- Consistency validation code / models

- Iterative process

- Impact analysis, round-tripping...

Be professional with Acceleo !

Acceleo Pro Traceability

Page 18: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

18

Integration for quality processIntegration for quality process

Page 19: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

19

Model TransformationModel Transformation

Page 20: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

20

MDA and SOAMDA and SOA

Page 21: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

21

Centralized ArchitectureCentralized Architecture

Page 22: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

22

Client-Server ArchitectureClient-Server Architecture

Page 23: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

23

Layers ArchitectureLayers Architecture

Page 24: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

24

Distributed ArchitectureDistributed Architecture

● But the reality is different : many kind of architecture co-exist and must work together

Page 25: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

25

SOASOA

● Why do we need SOA ?

– IS aligned to company business● But what about functional / technical urbanisation ?● But what about tools and methodology ?

– Be more evolutive● But what about IS global view ?● But where is my business knowledge ?

– Be more reliable● But what about simplicity ?● But what about agility ?

Page 26: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

26

Manage several layersManage several layers

Page 27: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

27

What we have / what we wantWhat we have / what we want

User centric modelisation Business centric modelisation

Service centric modelisation

Page 28: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

28

What is needed ? What is provided ?

Page 29: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

29

● A service is a contract

● It is described with :– A name– List of exchanged datas

● A Service can be :– Interface oriented– Message oriented

● But how describe technicals parameters ?

Page 30: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

30

CustomerComponent

AccountComponent

CRMWebSite

StatsClient Commercial

Component

Page 31: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

31

Several solutions for technical projectionSeveral solutions for technical projection

Page 32: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

32

Examples with ObjectWeb projectsExamples with ObjectWeb projects

GMF

Bonita PetalsJonas

OrchestraFractal

STPDSM

EMF

Acceleo

Spago

Joram

Page 33: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

33

MethodologyMethodology

Page 34: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

34

STEP 1 : DESIGN

“How should I use models to be efficient ?”

“How to design using MY semantics ?”

Page 35: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

35

RepositoryRepository

● Create your repository

● Be Unified : UML– Profil + Stereotypes

● Be Specific : DSM– Metamodel

● EMF bring interoperability

● Eclipse STP compatibility

Functional Service Infrastructure ServiceTechnical Service

Service

Business Process

Business Component

CompanyFlow

Page 36: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

36

Example of SOA visualisationExample of SOA visualisation

Page 37: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

37

Domain Specific Modeling with GMFDomain Specific Modeling with GMF

● Goals :– Simplify

● design● tools

– Improve● not limited to UML concepts● full model based (EMF)

– Accelerate● integration with Eclipse and Acceleo● productivity

Page 38: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

38

Architectural viewArchitectural view

CustomerComponent

AccountComponent

CRMWebSite

StatsClient

CommercialComponent

LogicalView

TechnicalView

Page 39: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

39

STEP 2 : INDUSTRIALISATION

“Where is my technical knowledge ?”

“How keep it simple ?”

Page 40: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

40

Design PatternsDesign PatternsArchivageMessageService

+sauvegarderMessage( utilisateur : String, m essage : String )

EcrireMessageTache

+ecrireMessage( texte : String, des t : String )<<use>>

ArchivageServiceImpl

+sauvegarderMessage( utilisateur : String, message : String )

IArchivageMessageServiceEcrireMessageTache

+ecrireMessage( texte : String, dest : String )

<<instantiate>> ???

<<use>>

ArchivageFabrique

-@instance : archivageFabrique{frozen}

+creerArchivageMessageService() : IArchivageMessageService+getInstance() : ArchivageFabrique

+sauvegarderMessage( utilisateur : String, message : String )

IArchivageMessageServiceEcrireMessageTache

+ecrireMessage( texte : String, dest : String )

ArchivageServiceImpl

<<instantiate>>

<<use>>

ArchivageFabrique

-@instance : archivageFabrique{frozen}

+creerArchivageMessageService() : IArchivageMessageService+getInstance() : ArchivageFabrique

+sauvegarderMessage( utilisateur : String, m essage : String )

IArchivageMessageServiceEcrireMessageTache

+ecrireMessage( texte : String, dest : String )

ArchivageServiceEJBDelegateur ArchivageServiceImpl

Home

Remote

<<instantiate>>

<<use>>

Page 41: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

41

Do you really need all this complexity ?Do you really need all this complexity ?

Page 42: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

42

ArchivageMessageService

+sauvegarderMessage( utilisateur : String, m essage : String )

EcrireMessageTache

+ecrireMessage( texte : String, des t : String )<<use>>

Stay at functionnal levelStay at functionnal level

Page 43: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

43

Way to productivityWay to productivity

Page 44: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

44

STEP 3 : GENERATION

“Is MDA miraculous ?”

Page 45: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

45

Page 46: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

46

This is the last slide !This is the last slide !

● MDA can be simple

● Functional <-> Acceleo <-> Technical

● Acceleo can be used to target Petals, Jonas, Telosys,

Spago, ... : Acceleo Community Modules

● Acceleo help urbanisation and governance

● ScorWare / Eclipse STP / Acceleo

Page 47: SOA & MDA - Eclipse€¦ · – Create software factories for pragmatic solutions – Reduce the gap between theory and reality A real OpenSource business model Productivity Durability

47

www.acceleo.orgwww.acceleo.org