La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Architecture technique

Présentations similaires


Présentation au sujet: "Architecture technique"— Transcription de la présentation:

1 Architecture technique
Carine Souveyet (5 jours)

2 Architecture Logicielle
Définition : « Un programme ou un système logiciel est composé de composants logiciels. L’architecture de ce programme ou d’un système est une ou plusieurs structures décrites par les propriétés externes et visibles des composants logiciels et les liens entre ces composants. »

3 Architecture Logicielle
Description de l’architecture : « architecture logicielle est décrite de manière informelle par un diagramme avec des boites et des liens accompagné par un texte en langage naturel » => pas de modèle de description. Par contre les modèles architecturaux permettent de clarifier la différence sémantique des composants et des interactions.

4 Caractéristiques d’une architecture logicielle
Une architecture logicielle est définie pour satisfaire un objectif. Une architecture logicielle peut être évaluée par rapport aux critères suivants : « extension fonctionnelle » « adaptation contextuelle » « réutilisabilité des composants logiciels »

5 Architecture d’un SI Plusieurs niveaux d’abstraction :
Architecture Métier (fonctionnelle) Architecture Technique

6 Architecture Métier d’un SI
L’objectif de l’Architecture Métier : Est de décrire : la distribution des processus métier pris en charge par le SI sur des composants logiciels, leurs interactions. L’urbanisme des SI se focalise sur l’architecture métier

7 Architecture Métier d’un SI
L’architecte Métier (ou Urbaniste) : doit Connaître l’entreprise au sens large (processus métier de l’entreprise, aspects organisationnels et stratégiques de l’entreprise) Connaître les besoins fonctionnels et non fonctionnels des acteurs de l’entreprise vis à vis du SI Maîtriser les règles d’urbanisme des SI

8 Architecture Métier d’un SI
Connaissances Métiers de l’entreprise et besoins non fonctionnels Techniques et règles d’urbanisation Cartographie Architecture Métier Architecte Métier (Urbaniste)

9 Architecture Technique d’un SI
L’objectif de l’Architecture Technique : Est de décrire : L’ensemble des types d’application nécessaire pour la mise en œuvre de l’architecture métier et les communications à envisager entre ces types d’application

10 Architecture Technique d’un SI
L’architecte technique : doit Connaître l’architecture Métier Connaître les besoins non fonctionnels du SI Maîtriser les techniques de développement Maîtriser les techniques d’intégration d’application

11 Architecture Technique d’un SI
Architecture Métier et besoins non fonctionnels Techniques de développement et Techniques d’intégration d’applications Architecture Technique Architecte Technique

12 Architecture Technique
En résumé Entrée Acteurs Compétences Architecture Métier Entreprise Modelling, NFR Architecte Urbaniste Règles d’urbanisation Architecture Technique Architecture Métier, NFR Architecte technique EAI et techniques de développement

13 Compétences techniques
Styles architecturaux Style en couches Patterns architecturaux Pattern “Model-View-Controller” Stratégies d’intégration d’applications (EAI) Bus logiciel, serveur d’application, BPM, portail Techniques de développement par composants EJB, portlet, composant CORBA, tâches ... Techniques de développement à base de services WSDL, connecteur JCA, SOAP, MOM, UDDI, XSLT, XML

14 STYLE ARCHITECTURAL(1)
Architecture « en couches » (Layered) Les types d’application de l’ architecture technique sont répartis en couche Un rôle est associé à chaque couche. Les types d’application d’une couche Exemples : architecture 1tier, 2tier, 3tier, Ntier

15 STYLE ARCHITECTURAL(2)
Architecture « 1tier» Application standalone Architecture « 2tier» Application client/serveur Application web client serveur Couche 1 Couche 2

16 STYLE ARCHITECTURAL(3)
Architecture « 3tier» client serveur serveur Couche 1 Couche 2 Couche 3 Serveur de présentation Client universel données

17 Architecture « N-tier »
... BDD LDAP ERP Service externe SGBDR Mainframe Progiciel Service de sécurité Browser Pages HTML SERVEUR D ’APPLICATION d’ admin. Enterprise Application Integration Services Invariants $$ DIFFUSION

18 Patterns architecturaux
- 2 couches « Interface/Application » - « Model-View-Controller » (MVC) - 3 couches : « MVC » + Source de données - Presentation-Abstraction-Control « PAC »

19 « Architecture/Application »
Modèle « Interface/Application » : objectif : séparer la gestion de l’interface utilisateur de la gestion de l’application pour pouvoir changer l’interface. limites : la partie « interface » doit connaître la partie « applicative » et vice-versa => réutilisation quasi-impossible.

20 « Interface/application »
Le développement de l ’application en « couches » Option de Menu « Enregistrer » Bouton Image « Enregistrer Combinaison de touches « Ctrl s » Objets graphiques réactifs composant l ’interface graphique Couche Interface Couche Applicative Objets ou procédures réalisant les fonctions de l’application indépendamment du moyen utilisé pour l’invoquer Procédure Enregistrer

21 « Interface/application »
Le développement de l ’application en « couches » Option de Menu « Enregistrer » Bouton Image « Enregistrer Combinaison de touches « Ctrl s » Objets graphiques réactifs composant l ’interface graphique Couche Interface Couche Applicative Objets ou procédures réalisant les fonctions de l’application indépendamment du moyen utilisé pour l’invoquer Procédure Enregistrer Ce style est valable pour les boites à outils intégrant le traitement d’un Événement dans l’objet graphique.

22 -Exemple : schéma dynamique
PILE c1 : la pile n’est pas vide empiler(i) dépiler() Afficher() vide?() 1 Afficher sélectionnée  c1:1 c1:1 c1:1 AfficherPile(int[]) MessagePileVide MessageempilerOk Resultatdépiler(int) c1:1 1 1 c1:2 2 acteur Empiler sélectionnée Dépiler sélectionnée

23 Exemple : Schéma de classes
Application Pile getModel() View getView() Application() Pile empiler(int) int dépiler () boolean vide?() int[] afficher() View View() abonnerEmpiler(ActionListener) abonnerDepiler(ActionListener) abonnerAfficher(ActionListener) String lireValeur() afficherMessage (String) resultatDépiler(int)

24 « Model/View/controller »
Amélioration du style « Interface/application » Boite à outils offrant deux types d’objets les objets graphiques (déclenchant l’événement) et les objets dynamiques (traitant l’événement graphique) Possibilité de réutiliser les composants de la couche « view » et les composants de la couche « model ».

25 « MVC » Modèle « MVC » objectif : séparer la gestion de l’interface utilisateur de la gestion de l’application pour pouvoir changer l’interface. Augmenter la réutilisation en faisant en sorte que la partie « model » ne connaît pas la partie « view » et vice versa. Seule la partie « controller » fait le pont entre les deux parties. Conséquences : réutilisation possible de composants de la couche « model » ou de la couche « view » et par contre la couche « controller » n’est pas considérée comme réutilisable ».

26 -Exemple : schéma dynamique
PILE c1 : la pile n’est pas vide empiler(i) dépiler() Afficher() vide?() 1 Afficher sélectionnée  c1:1 c1:1 c1:1 AfficherPile(int[]) MessagePileVide MessageempilerOk Resultatdépiler(int) c1:1 1 1 c1:2 2 acteur Empiler sélectionnée Dépiler sélectionnée

27 Exemple : Schéma de classes
Application Pile getModel() View getView() Application() Pile empiler(int) int dépiler () boolean vide?() int[] afficher() View ContEmpiler View() abonnerEmpiler(ActionListener) abonnerDepiler(ActionListener) abonnerAfficher(ActionListener) String lireValeur() afficherMessage (String) resultatDépiler(int) ContEmpiler(Application) actionPerformed(ActionEvent) ContDepiler implements ContEmpiler(Application) actionPerformed(ActionEvent) Classes réutilisées ContAfficher App ContEmpiler(Application) actionPerformed(ActionEvent) <<ActionListener>>

28 Exemple : Schéma de classes
Couche View Application Pile getModel() View getView() Application() Pile empiler(int) int dépiler () boolean vide?() int[] afficher() View ContEmpiler View() abonnerEmpiler(ActionListener) abonnerDepiler(ActionListener) abonnerAfficher(ActionListener) String lireValeur() afficherMessage (String) resultatDépiler(int) ContEmpiler(Application) actionPerformed(ActionEvent) ContDepiler implements ContEmpiler(Application) actionPerformed(ActionEvent) ContAfficher App ContEmpiler(Application) actionPerformed(ActionEvent) <<ActionListener>>

29 Exemple : Schéma de classes
Application Couche Model Pile getModel() View getView() Application() Pile empiler(int) int dépiler () boolean vide?() int[] afficher() View ContEmpiler View() abonnerEmpiler(ActionListener) abonnerDepiler(ActionListener) abonnerAfficher(ActionListener) String lireValeur() afficherMessage (String) resultatDépiler(int) ContEmpiler(Application) actionPerformed(ActionEvent) ContDepiler implements ContEmpiler(Application) actionPerformed(ActionEvent) ContAfficher App ContEmpiler(Application) actionPerformed(ActionEvent) <<ActionListener>>

30 Exemple : Schéma de classes
Application Couche Controller Pile getModel() View getView() Application() Pile empiler(int) int dépiler () boolean vide?() int[] afficher() View ContEmpiler View() abonnerEmpiler(ActionListener) abonnerDepiler(ActionListener) abonnerAfficher(ActionListener) String lireValeur() afficherMessage (String) resultatDépiler(int) ContEmpiler(Application) actionPerformed(ActionEvent) ContDepiler implements ContEmpiler(Application) actionPerformed(ActionEvent) ContAfficher App ContEmpiler(Application) actionPerformed(ActionEvent) <<ActionListener>>

31 « MVC+source de données »
Au niveau d’une application => Développement en 3 couches (MVC + Source de données) Objectif : Évolution possible de la source de données sans toucher à la logique de l’application. Changer la source de données : Changer la structure des tables, changer de SGBD, changer de protocole, répartir les données sur plusieurs bases…

32 « MVC+source de données »
3 Couches : View : couche gérant l’aspect visualisation Controller : partie permettant de synchroniser la couche view et la couche model Model : couche représentant la logique de l’application Source de données : couche gérant les différentes sources de données nécessaires à l’application (aussi bien en lecture qu’en écriture)

33 Architecture 3 tier niveau logique
Application getModel() getView() View <<SourceDonnées>> Controller délègue Controller Model getApplication()

34 « MVC+source de données »
Source de données : couche gérant les différentes sources de données nécessaires à l’application (aussi bien en lecture qu’en écriture). Cette couche contient les appels au pilote qui code et décode les trames envoyées au serveur. Application du pattern de Factory et Interface pour rendre la couche model indépendante de l’accès au serveur.

35 Pattern « PAC » « PAC » : « Presentation-Abstraction-Control »
objectif : l’application est décomposée en plusieurs composants construits en suivant le style « MVC ». Les composants sont appelés des « PAC » agents avantages : réutilisation possibles de composants construits sur plusieurs couches.

36 Pattern « PAC » Approche par composant plus macroscopique
Exemple : L’écritoire Composants PAC : Règles R1, A1, C1, C2…

37 Stratégies d’EAI Intégration d’application d’entreprises
Objectif : faire coopérer toutes les applications de l’entreprise Technique permettant de manipuler le SI comme si il était réalisé par une seule application Faire évoluer le SI en intégrant de nouvelles applications coopérant avec les anciennes

38 Classification des techniques d’EAI
Niveau d’intégration Techniques Espace de travail numérique Portail Processus Business Process Management (BPM) Transactions Serveur d’applications Données Bus logiciel

39 Classification des techniques d’EAI
Niveau d’intégration Techniques outils Espace de travail numérique Portail Jetspeed Processus Business Process Management (BPM) Moteur de Workflow connecté à un bus logiciel Transactions Serveur d’applications WebSphere, WebLogic .. Données Bus logiciel Corba, RMI, DCOM, MQSeries …

40 Utilisation des techniques d’EAI
Bus logiciel (Middleware) : plateforme de base permettant d’intégrer des applications hétérogènes. Serveur d’application : outil permettant de diffuser sur un serveur toutes les transactions métiers impactant les applications “back-office”. Ces transactions sont utilisées par les applications “front-office”. (Façade Métier)

41 Utilisation des techniques d’EAI
Portail : outil permettant de gérer et de personnaliser les espaces de travail des utilisateurs. (Moteur de portail : couche haute du serveur web).

42 Utilisation des techniques d’EAI
BPM : outil permettant de gérer les processus métier au niveau technique afin d’automatiser la communication entre les applications et/ou entre les acteurs. Cette technique permet d’automatiser les communications entre les applications bureautiques et les applications “back-office”.

43 Utilisation des techniques EAI
... BDD LDAP ERP Service externe SGBDR Mainframe Progiciel Service de sécurité Browser Pages HTML SERVEUR D ’APPLICATION d’ admin. Enterprise Application Integration Services Invariants $$ DIFFUSION

44 Architecture N-tier Concepts : Serveur d’application :
Serveur permettant à des applications distantes sur un réseau local d’accéder aux services offerts par des objets métiers. Bus logiciel (Middleware) : plateforme d’intégration d’applications pour faire cohabiter et coopérer les nouvelles applications avec les anciennes applications. (3 types de coopération : Message, RPC, objet).

45 Architecture N-tier En termes de développement :
Applications « Front-end » Développement indépendants des applications « Back-end » Serveur d’application (couche métier) : Façade « métier », Services métiers encapsulés dans des objets métiers, Services métiers offerts aux applications « Front-end » à partir d’un bus logiciel Services métiers invoquant les services offerts par les applications « Back-end » fédérées sur un bus logiciel Applications « Back-end »

46 Bus logiciel (MiddleWare)
Faire cohabiter et coopérer les nouvelles applications avec les anciennes applications.

47 Intégration d’applications
Appli a Appli b Appli c Machine B Appli A Appli B Appli C Machine A Appli 1 Appli 2 Appli 3 Machine C

48 Intégration d ’applications
L’ajout d’une application à un environnement ayant n applications peut amener à construire : n liens de communication et 2*n interfaces d’applications

49 Bus unique de communication : Middleware
Application 1 Application 2 Application 3 Application 4 Application 5 Application 6

50 Middleware Bus logiciel ou Plate-forme répartie Application
La plate-forme d ’intégration fournit aux applications des interfaces standardisées masquant les spécificités du système (indépendance entre les applications et le système & portabilité des sources des applications) Application Chaque système d ’exploitation offre des interfaces de programmation spécifiques pour contrôler les couches de communication réseau et les périphériques matériels Une plate-forme répartie permet d ’interconnecter et de faire communiquer des applications et des services distribués et hétérogènes Interfaces standardisées Plate-forme d’intégration Interfaces spécifiques aux systèmes OS, réseau matériel

51 Panorama des types de middlewares
Dans le panorama des bus logiciels, on distingue trois catégories : Le middleware par échange de messages (MOM) Le middleware par appel de procédure éloignée (RPC) Le middleware orientée objet (Corba – RMI- DCOM)

52 Principe par messages Application A Application B Début programme
Attacher_files Déposer_message Lire_message File de sortie File d ’entrée Middleware par file d’attente Application A Application B

53 Principe RPC Unité de distribution est une fonction ou une procédure (temps de traitement >au temps de transmission). Programme principal Procédure A Procédure B Stub client Middleware RPC Stub serveur Procédure A Procédure B Interface écrite en IDL Client Serveur

54 Comparatif Le middleware par échange de messages (MQSeries)
Le middleware fait le facteur sans interpréter le message qui est échangé Les applications émetteur et récepteur doivent avoir un pilote spécifique pour coder et décoder le message Peu évolutif, transport uniquement sans gestion de protocole Possibilités de faire : asynchrome, synchrone et du broadcast Le middleware par appel de procédure éloignée (RPC) Le message échangé est structuré comme un appel de procédure Le middleware code et décode le message => pas de développement spécifique sur les applications Possibilités uniquement synchrone Unicité des noms de procédure pour une même application Les paramètres d’entrée et de sortie des procédures ne peuvent être que des types simples (pas de types structurés)

55 Comparatif Le middleware orientée objet (Corba – RMI- DCOM)
Même chose que ceux de type RPC Encapsulation objet des procédures Objets distribués (on accède à une référence d’objet et on invoque une méthode sur cette référence). DCOM & RMI permettent de passer en paramètre d’entrée ou paramètre de sortie un objet (objet de type serialisable)

56 Limites des Middlewares
Les middlewares sont des techniques d’EAI de base très coûteuses et propriét aires Les types de connecteurs proposés pour intégrer une application sur le bus sont propriétaires => alternative (middleware orienté XML, connecteur JCA)

57 Serveurs d’application
Objectif des EJBs déclaré par Sun « The Entreprise JavaBeans architecture is a component architecture for the development and deployment of object-oriented distributed entreprise level applications. Applications written using the entreprise JavaBean architecture are scalable, transactional and multi-user secure.

58 Vue générale du framework
Objets métiers servlet Container EJB Container Databases & Backend Systems Logique applicative relative au Web (framework struts) client HTTP server EJB Server Communication via le protocole HTTP Objets distribués : technique de « bus logiciel » (RMI, Corba…) Objets distribués ou accès bases de données : technique « bus logiciel » ou JDBC

59 Serveur d’application
Application de l’architecture « N-tier » La logique applicative est mise sur un serveur dédié à cela (serveur d’application) Utilisation combinée des techniques de « Multithreading » et « Multiprocessing » Factorisation et partage des ressources métiers entre plusieurs applications « FrontEnd ». Possibilité d’avoir des canaux d’accès différents à une même application (Web, Teléphone portable, palm …)

60 Serveur d’application
Application de l’architecture « N-tier » L’approche « N-tier » est une architecture qui peut s’avérer plus facile à faire évoluer techniquement (répliquer les serveurs …) Le serveur d’application est une « façade » métier à toutes les applications BackEnd de l’entreprise (EAI). Cette application est utilisée par toutes les applications FrontEnd => offre une indépendance entre les deux types d’applications FrontEnd et BackEnd. Ce principe permet de mettre en place de nouveaux services métiers au niveau du serveur d’application sans avoir à casser les applications BackEnd existantes (ajouter une nouvelle application BackEnd sur le bus logiciel).

61 Serveur d’application
Application de l’architecture EJB L’approche par composants EJB offrent au niveau serveur la portabilité et la réutilisation dans le développement des objets métiers.

62 BPM Moteur de Workflow intégré à un bus logiciel pour faire communiquer plusieurs applications « back-end » et outils type bureautique (agenda, mail, chat …).

63 BPM Modélisation des processus techniques sous forme de Workflow (Taches, Connecteurs). Les tâches peuvent être des tâches systèmes ou utilisateurs. Le moteur de workflow contrôle l’exécution du processus en déterminant à la fin de l’exécution d’une tâche, les tâches suivantes à exécuter et lance leurs exécutions. Bénéfice de ce type d’outil : opérationnalise les Model-driven architectures Technique se plaçant entre les serveurs de présentation et les serveurs d’application

64 Portail Moteur de Portail permet de définir des pages Web selon des profils utilisateurs ou utilisateurs. Les composants intégrés dans les pages ou templates de page sont des « Portlets ». Simuler à travers les techniques Web les fonctionnalités de personnalisation du « bureau ». Personnalisation du contenu et du style.

65 Portail Portail : couche logicielle s’ajoutant au dessus d’un serveur Web Outils d’administration comme une base de données pour la connexion des utilisateurs et la configuration de chaque espace personnalisé. Souvent utilisé pour normaliser les espaces de travail des différents employés d’une entreprise selon leur rôle. De plus en plus utilisé comme technique permettant d’améliorer la relation avec le client.

66 Techniques de développement par composants
Niveau d’intégration Techniques Composants Espace de travail numérique Portail Portlets Processus Business Process Management (BPM) tasks Transactions Serveur d’applications EJB, Active X Données Bus logiciel Composants Corba Applications

67 Techniques à base de service
Web services SOAP WSDL UDDI Middleware orienté XML (JAXM, JAXRPC) Connecteur JCA

68 Techniques à base de service
Web services : composants métiers distribués sur le Web (services back-office) WSDL : descripteur normalisé définissant les procédures fournis par un service SOAP : Simple Object Access Protocol Sur-couche sur le protocole HTTP protocole utilisé pour l’invocation d’un service trame codée en XML

69 Techniques à base de service
UDDI : Uniform Discovery Directory Interface Interface standardisée pour rechercher un service Web et obtenir en résultat le descripteur WSDL du service en question. Pour publier un service Middleware Orienté XML supportant le protocole SOAP pour faire communiquer l’application demandant un service avec l’application fournissant le service. Le style ‘RPC’ est utilisé lorsque la communication est synchrone (request-reply) Le style ‘Message’ est utilisé lorsque la communication est asynchrone (one-way, sollicitation).

70 Techniques à base de service
Connecteur JCA (Java Connector Application) : Les connecteurs JCA sont utilisés comme technique d’emballage pour accéder aux services fournis par une application (technique d’emballage normalisée)

71 Plan Développement Web Développement de Composants Métier
« Vers un développement par composants » Développement de Composants Métier


Télécharger ppt "Architecture technique"

Présentations similaires


Annonces Google