Vous êtes sur la page 1sur 66

Architecture applicative

et Cartographie
Mineure SOA
Idir AIT SADOUNE
idir.aitsadoune@supelec.fr

Programme
7 nov.
14 nov.
21 nov.

Introduction. Enjeux, rle de l'architecte SI


Partie n1 du cas d'tude
Architecture et cartographie

Olivier Besnard (Solucom)


Idir Ait-Sadoune (Suplec)

Modle SOA

Modlisation de processus
28 nov. Partie n2 du cas d'tude
5 dc.

D1.13E

Deux intervenants :

Web Services
Partie n3 du cas d'tude

D1.13E
D1.13E

Cloud
12 dc. Partie n4 du cas d'tude
dc.

Excution de processus

D1.13E

Complments et ouverture. Conclusion


10 jan. Partie n5 du cas d'tude
2

26 jan.

Examen : prsentation de
vos travaux sur l'tude
de cas Chaus'Star

14 Novembre 2014

Au programme aujourd'hui
Applications d'entreprise
Typologie des applications
Cartographie applicative

Patrons d'architecture pour les applications


Architecture en couches
Modle n-tiers
Composants
Infrastructures logicielles

Flux
Typologie
Qualification des flux

Architectures d'change
Typologie des architectures
Solutions logicielles
3

14 Novembre 2014

La modlisation du SI
Le contenu de chaque vue

Focus sur

Vue mtier
Les processus mtier et leurs
activits, lorganisation

Vue fonctionnelle
Les fonctions du SI supportant les
processus mtier

Vue applicative

Vue technique
Les matriels, les logiciels, les
technologies

14 Novembre 2014

Source : Solucom

Les blocs applicatifs, les


messages, les donnes

Rle de l'architecte
Grands blocs applicatifs ?
Technologies utiliser ?
Types d'changes ?SI de mon entreprise
Infrastructures ncessaires ?

= besoin d'change
Cloud

Applications
RH

Donnes
personnel

Postes de travail
Application
de messagerie

Annuaire

Terminaux terrain
Applications
X

Donnes
X

Front-end
SI partenaire

Internautes

14 Novembre 2014

Plan
Applications d'entreprise
Typologie des applications
Cartographie applicative

Patrons d'architecture pour les applications


Architecture en couches
Modle n-tiers
Composants
Infrastructures logicielles

Flux
Typologie
Qualification des flux

Architectures d'change
Typologie des architectures
Solutions logicielles
6

14 Novembre 2014

Exemples d'applications

14 Novembre 2014

Rappel :
Organisation simplifie de lentreprise

E
n
v
i
r
o
n
n
e
m
e
n
t

Administrations
Paie
Formation / Comptences
Informations

Dclarations

Entreprise

Des applications
pour grer les
diffrentes activits
de l'entreprise
!
F

Management
Recrutement

RH

Direction

Finances

Ralisation
Stocks
Prospection
Communication
Marketing

Production

Support
Avant-Vente

Devis
Conseil

Vente

Commande
Livraison
Facture
Paiement

Achats

Fonction IT
Aprs-Vente

Prospection
Commande
Logistique
Facturation
Paiement

o
u
r
n
i
s
s
e
u
r

Support Technique
Remboursement
Echange
Fidlisation

Clients
8

14 Novembre 2014

Source : Solucom

Collaborateurs

Implmentation :
dvelopper soi-mme ou acheter ?
Dveloppements spcifiques
Sur serveur web/d'applications : Java EE, .NET, PHP
Sur serveur de bases de donnes : Oracle, Access, SQL Server
Sur client : Java, .NET, JavaScript, Applets

Progiciels et COTS (Commercial Off-The-Shelf)


CRM (Customer Relationship Management)
SCP (Supply Chain Management)
ERP (Enterprise Resource Planning)
Bureautique, messagerie
Applications de travail collaboratif
Workflows

Cloud

Et pourquoi ne
pas louer ?
14 Novembre 2014

Plan
Applications d'entreprise
Typologie des applications
Cartographie applicative

Patrons d'architecture pour les applications


Architecture en couches
Modle n-tiers
Composants
Infrastructures logicielles

Flux
Typologie
Qualification des flux

Architectures d'change
Typologie des architectures
Solutions logicielles
10

14 Novembre 2014

Couches applicatives (rappel)


3 types de responsabilits = 3 couches principales
Prsentation

Interaction avec lutilisateur

Traitement

Traitements mtiers, logique applicative

Ressources

Gestion des ressources, des donnes

Principe de conception = sparation des responsabilits


P

11

14 Novembre 2014

Couches applicatives dtaills


Vue plus fine des responsabilits

12

Visualisation

VP

Logique de prsentation

LP

Logique applicative

LT

Traitements mtier

TT

Accs aux ressources

AR

Stockage des ressources

SR

14 Novembre 2014

Modle Client-Serveur (rappel)


Modle Client-Serveur = 2 programmes +1 protocole
Programme serveur = offre un service des clients
Programme client = utilise un service fourni par un serveur
Protocole = moyen de communication
2 - Traitement
1 - Requte
3 - Rponse
Client

Serveur

Indpendant de la notion de machine


Client et serveur sur la mme machine
Client et serveur sur des machines diffrentes
13

14 Novembre 2014

Modle Client-Serveur
O placer les couches applicatives ?
Distribution des couches
Possibilits multiples = typologies multiples (Gartner)
Client

Client

Client

Client

Client

VP

LT

T
AR

LP

14

TT

SR

Serveur

Serveur

Serveur

Serveur

Serveur
14 Novembre 2014

Architecture 1-tiers (mainframe)


Lapplication est sur un serveur (ventuellement distant)
Le client est une application lgre de visualisation (client passif )
Exemple :

Terminal

LP T R

VP
Terminal
Mainframe

Terminal
15

14 Novembre 2014

Architecture 1-tiers (client autonome)


Lapplication est sur le client
Les donnes sont sur un serveur (ventuellement distant)
Exemple :

Poste de travail

SR

T AR
Poste de travail

Serveur
de fichiers

Poste de travail
16

14 Novembre 2014

Architecture 2-tiers (client lourd)


Le cur de lapplication est sur un serveur (ventuellement distant)
La couche prsentation (IHM) de lapplication est sur le client
Exemple :

Poste de travail

P
Poste de travail
Serveur
dapplications ou
de donnes
Poste de travail
17

14 Novembre 2014

Architecture 3-tiers (client lger)


Le cur de l'application est sur un serveur
Les donnes sont sur un autre serveur
Le client est une application lgre de visualisation (ex : navigateur web)
Exemple :

LP T AR

SR

Serveur
dapplications

Serveur
de donnes

Smartphone
VP
Portable

Poste de travail
18

14 Novembre 2014

Architecture n-tiers
Gnralisation des modles prcdents
(remarque : un serveur peut tre un client pour un autre serveur !)
Distribution des responsabilits en 4 ou + tiers

Architecture type :
VP

Client
lger

19

LP

T AR

SR

Serveur
de prsentation

Serveur
dapplications

Serveur
de donnes

14 Novembre 2014

Exemple avec Java EE


Application de gestion de catalogue de produits
Architecture 3 ou 4 tiers :
Client lger
Serveur de prsentation (pouvant tre fusionn avec le serveur de traitement
dans le cas de Java EE)
Serveur d'application
Serveur de donnes

VP

Navigateur
web

20

HTTP

LP

T AR

SA Java EE
Conteneur web

SA Java EE
Conteneur d'EJB

SR

Serveur
de base de donnes

14 Novembre 2014

Comment dcouper une


application en tiers ?

21

Architectures applicatives et inter-applicatives

23 novembre 2012

Gestion de catalogue avec Java EE


Application de patrons
de conception :
MVC, ECB,
Faade, DAO

VP

SR

Client
web (navigateur)

Serveur de bases
de donnes

JDBC
FacesServlet

EntityManager

<<gre>>

<<gre>>

<<view>>
product-view
<<ManagedBean>>
CatalogController

<<Stateless>>
CatalogFacade

<<view>>
product-list
<<Entity>>
Product

22

LP

AR

14 Novembre 2014

Rappel :
Programmation oriente objet
Objet = entit possdant
Des caractristiques = attributs
Des comportement = mthodes

Point
- x:double
- y:double
+ dessiner()
+ translater(l:double)

Classe / instance
Classe = modle abstrait dun objet
Hritage : permet d'tendre la dfinition
d'une classe gnrique pour crer
une classe spcifique

Figure
+ perimetre():double

Polygone

Cercle

- sommets:Point[]

- centre:Point
- rayon:double

Instance = objet conforme cette classe

origine:Point
x=0.0
y=0.0

Vue externe : bote noire


dessiner()
translater()

23

origine

14 Novembre 2014

Rappel : Classe Java


Et Plain Old Java Object (POJO)
public class Product {
public class Catalog {

private String name;


private Double price;

private ArrayList<Product> products;

public Catalog () {
public Product(String n, Double p) {
this.products = new
this.name = n;
ArrayList<Product>();
this.price = p;
}
}

public void addProduct(String name,


Double price){
Product p = new Product(name, price);
this.products.add(p);
return p;
}

public String getName() {


return this.name;
}
public void setName(String name) {
this.name = name;
}

}
Product
- name:String
- price:Double
+ getName():String
+ setName(name:String)

24

Catalog
0..*
products

+ addProduct(name:String, price:Double)

14 Novembre 2014

Composants
Composant = unit logique de traitement
Assemblage dobjets interdpendants
Rend un service (fonction)
Vue bote noire

objetX

Comp.

Proprits

Comp.
objetY

Identification : nom unique, rfrenc dans un annuaire


Indpendance : utilisable tout seul
Rutilisation : utilisable dans diffrents contextes
Intgration : combinable avec dautres composants

Technologies dimplmentation multiples

25

14 Novembre 2014

Exemple avec Java : JavaBeans


Composant implment par une classe Java
Plain Old Java Object (POJO)

Conventions respecter
Srialisation
Constructeur par dfaut
Proprits prives avec accesseurs
(encapsulation et introspection)
public <returntype> getPropertyname()
public void setPropertyname(parameter)

Mthodes dinterception dvnements


Utilisation dcouteurs et gnration dvnements
Ex : PropertyChangeListener
26

14 Novembre 2014

JavaBeans
Exemple
public class ProductBean implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private Double price;
public ProductBean() {
this.name = "";
this.price = 0.0;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return this.employed;
}
public void setPrice(Double price) {
this.price = price;
}

ProductBean
- name:String
- price:Double
+
+
+
+
+

Serializable

ProductBean()
getName():String
setName(name:String)
getPrice():Double
setPrice(price:Double)

ou
ProductBean
Serializable

}
27

14 Novembre 2014

Interfaces d'un JavaBean


public interface Product {
public String getName();
public void setName(String name);
public Double getPrice();
public void setPrice(Double price);
}

ProductBean

public class ProductBean implements Product,


Serializable {
private String name;
private Double price;
public ProductBean() {
this.name = "";
this.price = 0.0;
}

Serializable

public String getName() {


return this.name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return this.employed;
}
public void setPrice(Double price) {
this.price = price;
}

- name:String
- price:Double
+
+
+
+
+

PersonBean()
getName():String
setName(name:String)
getPrice():Double
setPrice(price:Double)

Product

ou
Serializable
ProductBean
Product

28

}
14 Novembre 2014

Composants distribus
Un Client veut utiliser un composant
qui se trouve sur un Serveur (distant)

Client

29

Comp.

Serveur

14 Novembre 2014

Stub

Client

Skeleton

RMI

Socket

Socket

Solution Java :
RMI (Remote Method Invocation)

Comp.

Serveur

Nommage

Skeleton = interface sur le serveur


qui reoit les appels du client
Stub = interface sur le client
qui envoie les appels au serveur

30

Stub

Nommage

Registre RMI

drivs du
composant
14 Novembre 2014

Exemple avec RMI

Skeleton

Client

RMI

Socket

Socket

ServerSideComponent.java

Comp.

Serveur

Nommage

Stub

Nommage

Registre RMI

rmiregistry
31

14 Novembre 2014

Exemple avec RMI


Interface du composant (vue extrieure bote noire ) :
public interface ServerSideComponent extends Remote {
public String getName() throws RemoteException;
}

Comp.

Implmentation du composant ( intrieur de la bote ) :


public class ServerSideComponentImpl implements
ServerSideComponent,Serializable {
private static final long serialVersionUID = 1L;
public ServerSideComponentImpl() {
super();
}
public String getName() throws RemoteException {
return "Robert";
}

objetX

Comp.
objetY

32

14 Novembre 2014

Exemple avec RMI


Application mettant disposition le composant :
ServerSideComponent comp = new ServerSideComponentImpl();
ServerSideComponent stub =
(ServerSideComponent) UnicastRemoteObject.exportObject(comp,0);
Registry registry = LocateRegistry.getRegistry("160.228.100.159");

Serveur

registry.rebind("Component", stub);

Application utilisant le composant :


Registry registry = LocateRegistry.getRegistry("160.228.100.159");
ServerSideComponent stub =
(ServerSideComponent) registry.lookup("Component");
System.out.println("Stub obtained from registry : "
+stub.toString());
System.out.println("Client result : "+stub.getName());

33

Client

14 Novembre 2014

Solution CORBA

ORB
Nommage

Skeleton

Client

RPC

ORB

Stub

Un Client veut utiliser un composant


qui se trouve sur un Serveur (distant)

Comp.

Serveur

Nommage

Object Request Broker (ORB) = bus logiciel qui permet au client de


rechercher le composant sur le serveur et de communiquer avec lui
Skeleton = interface sur le serveur qui reoit les appels du client
Stub = interface sur le client qui envoie les appels au serveur

drivs du
composant

Remote Procedure Call (RPC) = appel de procdure distant

34

14 Novembre 2014

Problmatiques
Applications n-tiers base de composants =
composants distribus avec responsabilits distribues
Problmatiques :
Complexit
Conception des composants et des applications
Dveloppement des composants et des applications
Gestion des aspects transverses :
scurit, disponibilit, communication, persistance, transactions

Interoprabilit des composants


Administration des composants et des applications
Scurisation de bout en bout des applications

35

14 Novembre 2014

Serveurs dapplication
& frameworks de dveloppement
Serveur dApplications (SA) =
conteneur et fournisseur de services pour des composants et des applications
Gestion du cycle de vie des applications et des composants
Administration des applications et des composants
Allocation de ressources
Processeur, mmoire, rseau, composants logiciels externes

Support pour les aspects transverses


Scurit, gestion des transaction, accs rseau

Support pour l'interoprabilit

Frameworks de dveloppement =
Cadres pour la conception et le dveloppement de composants (dploys sur SA)
et d'applications base de composants

36

14 Novembre 2014

Exemple : SA + framework Java EE


Composants

Conteneurs

Client lger
Serveur dapplications Java EE
Conteneur web

Donnes
Conteneur EJB
EJB
EJB
EJB
Session Entity Message

Servlet JSF/JSP

Communication (TCP/IP, HTTP, SSL, RMI, RMI-IIOP)


Nommage
JNDI

Client lourd

Persistance
JPA

Transactions
JTA

Autres services :
Web Services, administration, com. asynchrone, connecteurs

Services
37

Scurit
JAAS, JCE

Legacy & ERP

Infrastructures de communication
14 Novembre 2014

Un serveur d'applications Java EE :


GlassFish

38

14 Novembre 2014

Rappel de l'exemple :
Gestion de catalogue 3/4-tiers
Client lger

Serveur de bases
de donnes

Serveur dapplications Java EE


Conteneur web
Servlet JSF/JSP

Conteneur EJB
EJB
EJB
EJB
Session Entity Message

Communication (TCP/IP, HTTP, SSL, RMI, RMI-IIOP)


Nommage
JNDI

Persistance
JPA

Scurit
JAAS, JCE

Transactions
JTA

Autres services :
Web Services, administration, com. asynchrone, connecteurs

39

Legacy & ERP

14 Novembre 2014

Gestion de catalogue,
une autre architecture possible
Client lger

Serveur de bases
de donnes

Serveur dapplications Java EE


Conteneur web
Servlet JSF/JSP

Conteneur EJB
EJB
EJB
EJB
Session Entity Message

Communication
Communication (TCP/IP,
(TCP/IP, HTTP,
HTTP, SSL,
SSL, RMI,
RMI, RMI-IIOP)
RMI-IIOP)
Nommage
JNDI

Client lourd

40

Persistance
JPA

Scurit
JAAS, JCE

Transactions
JTA

Autres services :
Web Services, administration, com. asynchrone, connecteurs

Legacy & ERP

14 Novembre 2014

Primtre
des infrastructures logicielles
Infrastructure logicielle = logiciel rendant des services aux applications
Exemples de services : communication, administration, excution, scurit

Interface entre les applications et l'architecture matrielle


en dessous des applications
Exemples :
Serveur web
Serveur de bases de donnes
Annuaire
Serveur de fichiers
...

Serveur d'applications
Middleware (solution d'intgration)

Modlisation :
vue applicative
ou vue technique ?

41

14 Novembre 2014

Plan
Applications d'entreprise
Typologie des applications
Cartographie applicative

Patrons d'architecture pour les applications


Architecture en couches
Modle n-tiers
Composants
Infrastructures logicielles

Flux
Typologie
Qualification des flux

Architectures d'change
Typologie des architectures
Solutions logicielles
42

14 Novembre 2014

Echanges d'informations ?
Flux = donnes qui passent dun point A un point B
Dune application une autre,
Dun module applicatif un autre
D'un utilisateur un autre
Dune base de donnes une autre
Dune entreprise une autre

Exemples de flux
Transfert de fichier
Partage de fichier
Appel de procdure distant
Requte sur une base de donnes

43

14 Novembre 2014

Primtre
Flux priv = intra-application
(entre composants)

Flux AtoA = flux inter-applications


sur un primtre intra-entreprise

Flux public = inter-applications

Flux BtoB = flux inter-applications


sur un primtre inter-entreprises

Bonne gestion des flux publics


= flexibilit !

44

Exemple : envoi d'une commande


de pice un fournisseur

14 Novembre 2014

Granularit / Frquence
Evnementiels

Flux unitaire = donnes


transmises une une

Flux au fil de leau = donnes


transmises ds qu'elles sont
disponibles

Exemple : transmission des


commandes la plate-forme
logistique au fur et mesure de leur
validation

Batch

Flux de masse = donnes


regroupes en lots

Flux cadencs = donnes


transmises des moments
prdtermins

Exemple : transmission chaque soir des


donnes concernant l'ensemble des
ventes de la journe pour stockage
dans l'entrept de donnes
45

14 Novembre 2014

Exemples de flux
Souvent pour les flux unitaires au fil de l'eau ( vnementiels ) :
Appels distants entre composants (CORBA, RMI)
Transferts de fichiers
Partage de base de donnes
Electronic Data Interchange (EDI) = norme dfinissant
le(s) protocole(s) + le format d'change de donnes pour le B2B
Web Services

Souvent pour les flux de masse cadencs ( batch ) :


Transferts de fichiers
Partage de base de donnes
Batch = script qui ordonne et cadence un dplacement de donnes en volume
Solution historique et sans doute encore l'une des plus utilises

Extract-Transform-Load (ETL) = progiciel de batch grande chelle


permettant de connecter des entrepts de donnes

46

14 Novembre 2014

Modalit
Flux synchrone = bloquant pour
l'metteur et le rcepteur
Suppose la disponibilit de
l'metteur et du rcepteur au
mme moment
Exemple : appel de mthode RMI

Flux asynchrone = non bloquant


(mission / rception diffres)
Suppose lexistence dune zone de
stockage intermdiaire
Exemple : emails

47

Flux requte-rponse =
l'metteur et le rcepteur
se connaissent
Contact direct
Exemple : rcupration d'une donne
dans un rfrentiel

Flux publication-abonnement =
les rcepteurs s'abonnent aux flux
sans connatre les metteurs
Contact indirect
Exemple : abonnement aux mises
jour d'un rfrentiel
de donnes

14 Novembre 2014

Plan
Applications d'entreprise
Typologie des applications
Cartographie applicative

Patrons d'architecture pour les applications


Architecture en couches
Modle n-tiers
Composants
Infrastructures logicielles

Flux
Typologie
Qualification des flux

Architectures d'change
Typologie des architectures
Solutions logicielles
48

14 Novembre 2014

Architecture point--point
= flux
Cloud
SI de mon entreprise
Applications
RH

Flux reprsent par


un arc orient :
Donnessource = initiateur
personnel
du flux

Postes de travail
Application
de messagerie

Annuaire

Terminaux terrain
Applications
X

Donnes
X

Front-end
SI partenaire

Internautes

49

14 Novembre 2014

Analyse des solutions point--point


Simplicit de mise en uvre dans
le cas o le nombre d'applications
intgrer est faible
Efficacit des changes directs

Problme de passage l'chelle


Si N applications, N(N-1)/2 liens
Effet plat de spaghettis

Evolutivit trs rduite


Intgration d'une nouvelle
application = ajout de nombreux
nouveaux liens
Couplage fort entre les applications
fort impact des volutions
(notamment interfaces)

Exploitation et administration
complexes
Manque de visibilit sur
les changes

50

14 Novembre 2014

Source : Solucom

Architecture intuitive

Architecture bus
= flux

SI de mon entreprise
Applications
RH

Cloud

Postes de travail
Application
de messagerie

Donnes
personnel

Annuaire

Bus

SI partenaire
Terminaux terrain

Applications
X
Internautes

51

Donnes
X

Front-end

14 Novembre 2014

Exemple de solution de type bus :


le MOM
Middleware Orient Message (MOM) = bus logiciel de transport qui
permet des applications de recevoir des messages mis par dautres
Connectivit : supporte diffrents protocoles de communication
Transport :
Garantit l'acheminement (intgrit, gestion des erreurs)
Gre diffrentes modalits : synchrone/asynchrone, publication/abonnement
Gre les transactions

Application 1
52

Transport

Connecteur

Administration

Connecteur

Application 2
14 Novembre 2014

Source : Solucom

Existe aujourd'hui sur la plupart des serveurs d'applications

JMS (Java Message Service) = interface Java standard pour les MOM
Files dattentes (queues) pour le mode requte / rponse
Sujets (topics) pour le mode publication / abonnement

EJB Message = composant invoqu par messages


Traite les messages posts dans une file / sujet
Poste des messages rponse dans la file / sujet
@MessageDriven(mappedName="jms/Queue")
public class MyMessageBean implements MessageListener {
public void onMessage(Message inMessage) {
TextMessage msg = null;
try {
if (inMessage instanceof TextMessage) {
msg = (TextMessage) inMessage;
System.out.println("Message received: " + msg.getText());
}
} catch (JMSException e) {
}
}
}
53

14 Novembre 2014

Source : Les Entreprise JavaBeans 3.0 (EJB 3.0) , Jean-Marc Farinone, CNAM Paris

Exemple avec Java EE :


JMS et EJB Message

Analyse des solutions de type bus


Si N applications, au plus N liens
bidirectionnels

Meilleure volutivit
Intgration dune nouvelle
application = un seul connecteur

Couplage faible entre les


applications
Services de transport
Acheminement garanti des donnes
(reprise sur erreur, gestion des
doublons)
Intgrit des donnes

54

Adhrence forte entre les


applications et le bus
Couplage fort entre les formats
des donnes
fort impact des volutions
du format d'change
Plate-forme centralise
hautement critique
goulot d'tranglement

14 Novembre 2014

Source : Solucom

Passage l'chelle facilit

Architecture intgre
= flux

SI de mon entreprise
Applications
RH

Cloud

Postes de travail
Application
de messagerie

Donnes
personnel

Annuaire

Solution d'intgration

SI partenaire
Terminaux terrain

Applications
X
Internautes

55

Donnes
X

Front-end

14 Novembre 2014

Exemple de solution intgre : l'EAI


Enterprise Application Integration (EAI) = progiciel dintgration
inter-applicative

Service
Transformation et routage
Connecteur

Application 1
56

Transport

Connecteur

Administration

Processus

Application 2
14 Novembre 2014

Source : Solucom

Connectivit & Transport


Transformation : gre l'htrognit des formats et des valeurs
Routage : adresse intelligemment les donnes aux diffrents destinataires
Service : encapsule la logique d'intgration
+ Eventuellement, processus : orchestre les services d'intgration

Analyse des solutions EAI

Urbanisation fonctionnelle
+ Urbanisation technique

Services applicatifs riches


Cots dadministration
moins importants
Cots de dveloppement rduits

La quasi-totalit des projets d'EAI


se soldent par un chec
70 % des projets dintgration chouent
(2003)
57

Important travail durbanisation


et /ou de rorganisation
fonctionnelle indispensable
Sinon plat de spaghetti dans l'outil

Experts indispensables
(et malheureusement trs rares)
Projets transverses par essence
Difficult tablir les responsabilits
Problmatiques organisationnelles
(nombreux acteurs, besoin de
processus)

Technologies d'interconnexion
propritaires

14 Novembre 2014

Source : Solucom

Relations entre processus mtiers


et changes inter-applicatifs
plus lisibles

Autre solution intgre : ESB


Enterprise Service Bus (ESB) EAI bas sur les standards
Connectivit & Transport
Transformation : gre l'htrognit des formats et des valeurs
Routage : adresse intelligemment les donnes aux diffrents destinataires
Service : encapsule la logique d'intgration
Processus : orchestre les services d'intgration
Monitoring : supervise le droulement des processus

L'ESB est considr comme le socle technique de l'approche SOA

58

14 Novembre 2014

Source : Solucom

Enterprise Service Bus (ESB)

59

14 Novembre 2014

Plan
Applications d'entreprise
Typologie des applications
Cartographie applicative

Patrons d'architecture pour les applications


Architecture en couches
Modle n-tiers
Composants
Infrastructures logicielles

Flux
Typologie
Qualification des flux

Architectures d'change
Typologie des architectures
Solutions logicielles
60

14 Novembre 2014

Synthse
Quels sont les diffrents types d'applications dans le SI d'une entreprise ?
Applications classiques pour les fonctions support, sinon dpend du mtier
Diffrents choix d'implmentation :
Dveloppements spcifiques
Progiciels et COTS
Cloud

Quels sont les grands patrons d'architecture pour les applications ?


Rpartition en couches applicatives
P

Prsentation

Traitement

Ressources

Dcomposition sur le modle clients / serveurs (ventuellement distants)


Encapsulation dans des composants (= botes noires avec interfaces publiques)
Dploiement sur des infrastructures logicielles
61

14 Novembre 2014

Synthse (suite)
Comment les informations sont-elles changes au sein du SI ?
Diffrents types de flux, caractristiques :
Primtre
Granularit
Frquence
Modalit

Quels types d'architectures supportent les changes ?


Point point
Bus
Intgres, avec en particulier la solution de type ESB
+ Besoin de combiner les solutions d'change !

62

14 Novembre 2014

Contraintes de l'architecte
Un architecte est rarement amen crer des architectures from scratch
L'architecte doit tenir compte des contraintes exprimes et du contexte
Contraintes exprimes
Besoins fonctionnels des utilisateurs
Exigences extra-fonctionnelles (performance, disponibilit)
Rfrentiels d'entreprise
Stratgie conomique (budget, time to market)

Contexte = contraintes lies l'existant


Existant applicatif
Environnement technique : technologies de dveloppement, plateformes
Organisation : comptences des quipes, externalisation

Gnralement, ncessit de dfinir de plusieurs scnarios d'architecture

63

Diffrents arbitrages possibles (priorits)


Problmes de compatibilit entre contraintes, de ralisme

14 Novembre 2014

Ce qui n'a (malheureusement) pas t


abord
Quelques-uns des autres sujets incontournables lorsque l'on parle
d'architecture applicative :
Scurit
Haute-disponibilit
Exemple : un million de fichiers sauvegards toutes les 15 minutes sur Dropbox

Migration

Comment valuer si une architecture est bonne ?


Agilit / extensibilit
Evolutivit
Utilisation des standards
Scurit
Cots
64

14 Novembre 2014

Exercice cours 2
http://idir.aitsadoune.free.fr/index.php/activites-denseignement/

65

14 Novembre 2014