Professional Documents
Culture Documents
et Cartographie
Mineure SOA
Idir AIT SADOUNE
idir.aitsadoune@supelec.fr
Programme
7 nov.
14 nov.
21 nov.
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
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
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
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
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
Cloud
Et pourquoi ne
pas louer ?
14 Novembre 2014
Plan
Applications d'entreprise
Typologie des applications
Cartographie applicative
Flux
Typologie
Qualification des flux
Architectures d'change
Typologie des architectures
Solutions logicielles
10
14 Novembre 2014
Traitement
Ressources
11
14 Novembre 2014
12
Visualisation
VP
Logique de prsentation
LP
Logique applicative
LT
Traitements mtier
TT
AR
SR
14 Novembre 2014
Serveur
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
Terminal
LP T R
VP
Terminal
Mainframe
Terminal
15
14 Novembre 2014
Poste de travail
SR
T AR
Poste de travail
Serveur
de fichiers
Poste de travail
16
14 Novembre 2014
Poste de travail
P
Poste de travail
Serveur
dapplications ou
de donnes
Poste de travail
17
14 Novembre 2014
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
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
21
23 novembre 2012
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
origine:Point
x=0.0
y=0.0
23
origine
14 Novembre 2014
public Catalog () {
public Product(String n, Double p) {
this.products = new
this.name = n;
ArrayList<Product>();
this.price = p;
}
}
}
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
25
14 Novembre 2014
Conventions respecter
Srialisation
Constructeur par dfaut
Proprits prives avec accesseurs
(encapsulation et introspection)
public <returntype> getPropertyname()
public void setPropertyname(parameter)
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
ProductBean
Serializable
- 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
30
Stub
Nommage
Registre RMI
drivs du
composant
14 Novembre 2014
Skeleton
Client
RMI
Socket
Socket
ServerSideComponent.java
Comp.
Serveur
Nommage
Stub
Nommage
Registre RMI
rmiregistry
31
14 Novembre 2014
Comp.
objetX
Comp.
objetY
32
14 Novembre 2014
Serveur
registry.rebind("Component", stub);
33
Client
14 Novembre 2014
Solution CORBA
ORB
Nommage
Skeleton
Client
RPC
ORB
Stub
Comp.
Serveur
Nommage
drivs du
composant
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
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
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
Conteneurs
Client lger
Serveur dapplications Java EE
Conteneur web
Donnes
Conteneur EJB
EJB
EJB
EJB
Session Entity Message
Servlet JSF/JSP
Client lourd
Persistance
JPA
Transactions
JTA
Autres services :
Web Services, administration, com. asynchrone, connecteurs
Services
37
Scurit
JAAS, JCE
Infrastructures de communication
14 Novembre 2014
38
14 Novembre 2014
Rappel de l'exemple :
Gestion de catalogue 3/4-tiers
Client lger
Serveur de bases
de donnes
Conteneur EJB
EJB
EJB
EJB
Session Entity Message
Persistance
JPA
Scurit
JAAS, JCE
Transactions
JTA
Autres services :
Web Services, administration, com. asynchrone, connecteurs
39
14 Novembre 2014
Gestion de catalogue,
une autre architecture possible
Client lger
Serveur de bases
de donnes
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
14 Novembre 2014
Primtre
des infrastructures logicielles
Infrastructure logicielle = logiciel rendant des services aux applications
Exemples de services : communication, administration, excution, scurit
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
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)
44
14 Novembre 2014
Granularit / Frquence
Evnementiels
Batch
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
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
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
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
Postes de travail
Application
de messagerie
Annuaire
Terminaux terrain
Applications
X
Donnes
X
Front-end
SI partenaire
Internautes
49
14 Novembre 2014
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
Application 1
52
Transport
Connecteur
Administration
Connecteur
Application 2
14 Novembre 2014
Source : Solucom
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
14 Novembre 2014
Source : Les Entreprise JavaBeans 3.0 (EJB 3.0) , Jean-Marc Farinone, CNAM Paris
Meilleure volutivit
Intgration dune nouvelle
application = un seul connecteur
54
14 Novembre 2014
Source : Solucom
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
Service
Transformation et routage
Connecteur
Application 1
56
Transport
Connecteur
Administration
Processus
Application 2
14 Novembre 2014
Source : Solucom
Urbanisation fonctionnelle
+ Urbanisation technique
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
58
14 Novembre 2014
Source : Solucom
59
14 Novembre 2014
Plan
Applications d'entreprise
Typologie des applications
Cartographie applicative
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
Prsentation
Traitement
Ressources
14 Novembre 2014
Synthse (suite)
Comment les informations sont-elles changes au sein du SI ?
Diffrents types de flux, caractristiques :
Primtre
Granularit
Frquence
Modalit
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)
63
14 Novembre 2014
Migration
14 Novembre 2014
Exercice cours 2
http://idir.aitsadoune.free.fr/index.php/activites-denseignement/
65
14 Novembre 2014