OPTIMALJ, CONCEPTION ET DÉVELOPPEMENT RAPIDE MDA-PATTERNS-UML EJB 2.0-STRUTS Eric Risser-Maroix.

Post on 03-Apr-2015

107 views 0 download

Transcript of OPTIMALJ, CONCEPTION ET DÉVELOPPEMENT RAPIDE MDA-PATTERNS-UML EJB 2.0-STRUTS Eric Risser-Maroix.

OPTIMALJ,

CONCEPTION ET DÉVELOPPEMENT RAPIDE

MDA-PATTERNS-UMLEJB 2.0-STRUTS

Eric Risser-Maroix

Agenda

Compuware – Qui sommes nous?– Notre offre

L’approche Compuware– Architecture J2EE– Model Driven Architecture

OptimalJ– Les concepts d’OptimalJ– Normes de Développement et de Conception

Acteur Global

COMPUWARE12 000 Employés

1,7 milliard de dollars

Présence globale

47 Pays110 bureaux

Services

9,500 personnes

Logiciels

8 gammes de produits

130 produits3 laboratoires de développement

APPLICATIONS OPERATIONS

Development& Integration

Automated Software Quality

Production Readiness Performance & Availability Management DESKTOP NETWORK SERVER

TRANSACTIONPROFILING

PERFORMANCETESTING

WANPROVISIONING

ACCELERATING DEVELOPMENT & INTEGRATION

FUNCTIONAL& REGRESSION

TESTING

DEBUGGING & TUNING

PROJECT, DATA AND WORKFLOW MANAGEMENT

Optimal QACenter

DevPartnerDevPartnerDB

Enterprise Editions

Application Expert

QACenter Predictor

VISUALIZATION& REPORTINGBASELINE DATA

END-USERMONITORING & DIAGNOSTICS

SERVER,APPLICATION& DATABASEMONITORING

PERFORMANCE TROUBLESHOOTING

NETWORKAPPLICATIONMONITORING

Application Vantage & STROBE

ClientVantage NetworkVantage ServerVantage

VantageView

Cycle de vie de l’application …

L’approche Compuware

L’approche Compuware:

L’architecture J2EE

J2EE est la plate-forme middleware technologiquement riche, mise à profit par 50% des futures applications d’entreprise java. (Gartner)

JSP

EJB J2EE

CORBA

JDBC

Servlet

Struts

UDDI

HTML

Comment Faire ?

Java

XML

CSS

XSLT

WAP

WSDL

L’architecture J2EE

L’approche Compuware:

Model Driven Architecture

Object Management Group : Support de l’industrie

OMG : 800 membres / 40 organisations

Son but:Résoudre les problèmes d’intégration de systèmes

Augmenter la productivité

Comment :Produire des spécifications, des standards.

Exemples :CORBAUMLMDA

IBM

SUN

Compuware

Borland

Together

InteractiveObjects

Codagen Technologies

La vision MDA

Finance

E-Commerce

Santé

Plus …...

Transport

Espace

Fabrication

Télécommunication

Une nouvelle manière de spécifier et de construire des systèmes

– Basée sur la modélisation UML

– Modéliser au lieu de programmer

PIM – Le Modèle Indépendant de la Plate-forme

(PIM) représente les fonctionnalité du business et sa conduite sans rentrer dans les détails techniques.

PSM– Applique une correspondance standard pour

créer ou générer un Modèle Spécifique à la Plate forme (PSM). Ceci à partir du PIM.

Code Model– Créer ou générer le code pour le PSM

PlatformIndependent

Model

CodeModel

PlatformSpecificModel

Les spécifications en MDA

Intégration

OptimalJ

OptimalJ implémente MDA

TechnologyPatternsTechnology

Patterns

Domain Model Domain PatternsDomain

Patterns

Application Models ApplicationPatternsApplication

Patterns

Code ModelCode PatternsCode

Patterns

TransformationPatterns

FunctionalPatterns

Op

timalJ

(ré)G

énéra

tion

Platform

Independent

Model

Code

Model

Platform

Specific

Model

Mo

del

Dri

ven

Arc

hit

ectu

re 2/3 ;3/3;EJB1ou 2

ImplementationPatternsImplementation

Patterns

Paramétrage d’implémentation :Local / Remote interface, CMR / BMR, State-full / State-Less, Transaction, TagLib, Struts, HTML / WML…

Développement de vos Patterns

Définition, Import

Domain Model

PlatformIndependent

Model

CodeModel

PlatformSpecificModel

MDA

Application Model

PlatformIndependent

Model

CodeModel

PlatformSpecificModel

MDA

TechnologyPatternsTechnology

Patterns

Code Model

PlatformIndependent

Model

CodeModel

PlatformSpecificModel

MDA

Genera

te

ImplementationPatternsImplementation

Patterns

Test Production

TomcatJOnASJBossSolid

IBM WebSphere, BEA WebLogic,Sun ONE, Oracle 9iAS, JBoss

JSP EJB SQL

.WAR .JAR .DAR

.EAR

DeploymentDescriptors

DeploymentDescriptors

Déploiement

1) Test2) Production

OptimalJ•Modélisation UML

•Génération d’application Java en architecture J2EE

Weblogic

Déploiement

Intégration

Modélisation

Génération (Patterns)

WebLogic

Génération d ’EJB …

Génération de JSP…

Génération de SQL…

Génération d’EAR…

En Résumé …

Optimal J : la démarche

Modélisation

(PIM)

Découpage

J2EE

(PSM)

Génération Java

(Codage)

Génération IHM

• NetBeans• Jbuilder• WSAD

•Web Services

•Java Legacy

•CICS / IMS

•CORBATest Production

TomcatJOnASJBossSolid

IBM WebSphere, BEA WebLogic,Sun ONE, Oracle 9iAS, JBoss

JSP EJB SQL

.WAR .JAR .DAR

.EAR

DeploymentDescriptors

DeploymentDescriptors

Déploiement

Comment intégrer vos Normes de Développement et de Conception ?

Génération “Pattern-driven”

Accès au référentiel “Meta Object Facility” Transformation PIM PSM

Implementation PSM Code Model

Langage de patterns– Langage simple compilé en code Java

PlatformIndependent

Model

CodeModel

PlatformSpecificModel

MDA

PATTERN IMPORT FILE TEMPLATETYPE TEMPLATE GUARD FREE IF DO LET FOR FILE JOINPOINT

Exemple de Transformation Pattern

Transformation PIM PSM

Génération “Pattern-driven”

Implementation PSM Code Model

Pattern Join Points

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

Join Point

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx

Génération du code

yyyyy

yyyyy

yyyyy

yyyyy

Les avantages d’OptimalJ

Complex business process

Complex technology platform (J2EE)

Bu

sin

ess

– IT

gap

Patterns

Réduction de la complexité technologique

Models Réduction de la complexité dubusiness

Modélisation

Développement

Test

Déploiement

Focus métier

Les Acteurs de MDA

Architecte

DesignerDeveloper

Les Rôles et Activités

Generated Application

•Modélisation du Business

•Exigence du Management

•Analyses et Design

•Définition des règles de gestion

•Génération de l’Application

•Pré test de l’application

•Recherche technologique

•Définition d’ architecture

•Définition des  ’best practices’ via les patterns

•Développer les standards & guides

•Transfert de connaissances

•Personnalisation de l’appli générée

•Intégration d’Application

•Test et debug

•Maintenance de l’application

•Déploiement

Best Practices & Standards

Best Practices & Standards

Fonctionnels

Développeurs

Architectes

OptimalJ: Le code généré

Vérification des normes de codageVérification des normes de codage

Monitoring du Garbage CollectorMonitoring du Garbage Collector

Performance Analysis CPU

Affichage Graphe d’appelAffichage Graphe d’appel

Couverture de CodeCouverture de Code

OptimalJ : le code généré !

DevPartner For JavaDevPartner For Java

Intégration dans OptimalJIntégration dans OptimalJ

Conclusion

La technologie évoluesurtout dans le monde J2EE

JDBC

2.0

EJB

1.1

Servlet

2.2

JSP

1.0

JMS

1.1

EJB

2.0

JCA

1.0

Servlet

2.3

JSP

2.0

JNDI

1.2.1

JTS

1.0

JSP

3.x

Servlet

2.4

Application

Framework

JSF

1.0

Framework ???

Application ???

JDK1.4

JDK 1.3

OptimalJ Solution complète, structurée et

industrielle pour :

• Développer rapidement• Maintenir simplement• Sans connaissance pointue de java

des applications en architecture J2EE

Portail Développeur OptimalJ http://javacentral.compuware.com

• OptimalJ Community Home– News

– White papers

– Documentation

– FAQ

– Forums

– Support Center

– Java links

• More than 1000 users

Démonstration

Démonstration

Le sujet : Créer une application web en architecture 3 tiers J2EE.Un contact d’une société de voyage propose des promotions pour des séjours dans des pays.

Relation inter package

promotion fournisseur

Les FournisseursSociete

(from fournisseur)

rss : Stringadresse : Adresseid : StringemailRacine : String

Contact(from fournisseur)

nomResponsable : StringprenomResponsable : StringemailResponsable : Stringid : String

validerMail()

1..1

0..*

1..1

0..*

On rajoutera par la suite une classe Agence liée à Société

package Fournisseur

Les Promotions

Agenda(from promotion)

id : StringdateDebut : DatedateFin : DatenbPlace : inttarif : BigDecimal

TypeSejour(from promotion)

id : StringliblTypeSejour : String

Pays(from promotion)

id : StringliblPays : String

Transport(from promotion)

id : Stringcompagnie : StringtypeTransport : CategorieTransport

Sejour(from promotion)

id : StringliblSejour : Stringcategorie : CategorieSejour

1 0..*1 0..*

0..*0..1

0..*0..1 0..1

0..*0..1

0..*

0..*0..* 0..*0..*

package Promotion

CategorieTransport(from promotion)

Avion : StringTrain : StringCarClim : StringCar : StringLocVoiture : StringPaquebot : String

<<EnumerationType>>CategorieSejour

(from promotion)

Etoile1 : String = *Etoile2 : String = **Etoile3 : String = ***Etoile4 : String = ****

<<EnumerationType>>Adresse

(from fournisseur)

rue : StringcodePostal : Stringville : String

<<ValueType>>

Les autres possibilités de modélisation

Le Modèle

People and software for business applications sm