Workshop e-business ISMIN 3A P2015

Dimension: px
Commencer à balayer dès la page:

Download "Workshop e-business ISMIN 3A P2015"

Transcription

1 Workshop e-business ISMIN 3A P2015 Philippe Lalevée 1 Votre semaine Durée : 30 heures (10 x 3h) dont ~6 heures de cours Cours : rappels sur les technologies Web, XML, modèles de programmation, architectures réparties, applications d entreprise et : «Web Services» «Service Oriented Architecture» (SOA) «Cloud Computing» Projet: sujet remis lundi ou mardi après-midi Évaluation : démonstrations commentées vendredi après-midi 2 Philippe Lalevée 1

2 Organisation générale Mise en œuvre des technologies Lundi AM: Cours de présentation générale Lundi PM Mise en œuvre des «machines» Deux TP de mise en jambe : Servlet/JSP et Node.js Mise en œuvre d un ERP Mardi AM: Technologies des Web Services (REST, SOA, Cloud) Mardi PM Deux TP de consolidation : Web Services Projet du Mercredi à Vendredi AM : 30 heures de travail Démonstrations : Vendredi PM 13h15-15h30 : passage des 4 groupes 15h30-16h : évaluation de la semaine 3 Bibliographie Web Services Architectures n-tiers et déploiement d applications Web. Caromel et al, INRIA, Construire des Services Web XML avec.net. Short, Microsoft Press, Services Web avec J2EE et.net. Maesano, Bernard, Le Galles, Eyrolles, 2003 Les Web Services. Kadima et Montfort, Dunod, 2003 Web Service Contract Design and Versioning for SOA. Erl et al, Prentice Hall Developing Web Services with Apache CXF and Axis2. Tong, Tiptec RESTful Web Services Cookbook. Allamaraju, O Reilly 2010 SOA SOA: le guide de l architecte. Fournier-Morel et al, Dunod, SOA Governance. Biske, Packtpub SOA Design Patterns. Erl, Prentice Hall Implementing SOA Using JEE. Kumar et al, Addison Wesley SOA Questions. Holley et Arsanjani, Prentice Hall SOA: An Integration Blueprint. Schmutz et al, Packtpub Cloud Cloud Application Architectures. Reese, O Reilly Cloud Computing and SOA Convergence in Your Enterprise. Linthicum, Addison Wesley Implementing and Developing Cloud Computing Applications. Sarna, Auerbach Host Your Web Site in the Cloud. Barr, Sitepoint The Cloud at Your Service. Rosenberg et Mateos, Manning Developing Applications for the Cloud. Betts et al, Microsoft Press Microsoft SQL Azure: Enterprise Application Development. Krishnaswamy, Packtpub Cloud Computing: Principles and Paradigms. Buyya et al, Wiley Code in the Cloud. Chu-Carroll, Pragmatic bookshelf Philippe Lalevée 2

3 Première partie RAPPELS ET INTRODUCTION GÉNÉRALE 5 Qu est-ce que le E-Business? Source IBM 6 Philippe Lalevée 3

4 Rappels et introduction générale RÉSEAUX ET PROTOCOLES 7 Les protocoles de l Internet OSI Model Layers Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer TCP/IP Protocol Architectu re Layers Application Layer Host-to-Host Transport Layer Internet Layer Network Interface Layer Telnet FTP SMTP DNS RIP SNMP HTTP ARP Ethernet TCP Token Ring IP TCP/IP Protocol Suite Frame Relay UDP IGM P Web ICM P ATM 8 Philippe Lalevée 4

5 Internet et le World Wide Web Internet/internet, intranet/extranet Basé sur Internet (protocole HTTP/TCP) Conséquences sur les applications Ressources accessibles 24/24 Notions générales de services (clients et serveurs) Pas (ou peu) d installation «côté client» Les informations sont reliées les unes aux autres Information hypertexte de type «chaîne de caractères» Propose une façon générique d accéder et de partager de l information hétérogène Contenus variés : médias (articles techniques, blogs, musique), achats, données brutes applicatives, etc. Accès variés : synchrone/asynchrone, fiable/non fiable, qualité de service/bande passante Est devenu une plate-forme de développement Applications accessibles depuis n importe où Vision fournisseur : applications pour les clients décentralisés Vision client : bibliothèque virtuelle de composants 9 Principes de conception Interopérabilité : les langages et protocoles du Web sont compatibles entre eux et indépendants des matériels et des logiciels Évolutivité : le Web est du coup capable de s adapter à de nouvelles technologies (interfaces simples) Modularité des ressources et des usages Extensibilité pour s adapter à la demande Décentralisation : facilite l extensibilité et la robustesse Pas de «centre» global (pas de contrôle de flux) Tout nœud diffuse et reçoit (symétrie) (conséquence: révolution «technico-sociale») Repose sur une architecture client/serveur 10 Philippe Lalevée 5

6 Les standards du Web Internet Engineering Task Force (IETF) Fondé en 1986 Standards basés sur des RFC (Request For Comments) disponibles sur Par exemple, HTTP : RFC2616 World Wide Web Consortium (W3C) Fondé en 1994 par Tim Berners-Lee Publie des rapports techniques et des recommandations OASIS Standards e-business (ebxml, OpenDoc, UDDI ) 11 Architecture du Web Clients Navigateur (Firefox/IE) Requête : HTTP request Réseau Internet (TCP/IP) Serveur Réponse : HTTP Response <html> </html> Serveur Web (Apache/IIS) 12 Philippe Lalevée 6

7 URI, URL et URN Uniform Resource Identifier (URI = URL ou URN) Est une courte chaîne de caractères identifiant une ressource Web physique ou abstraite, et dont la syntaxe respecte une norme d'internet mise en place pour le «World Wide Web» (voir RFC 3986) Uniform Resource Locator (URL) Est un URI qui fournit les moyens d'agir sur une ressource ou d'obtenir une représentation de la ressource en décrivant son mode d'accès primaire ou "emplacement" réseau (instructions explicites pour désigner la méthode d accès à la ressource sur Internet) Ex : ftp://ftp.lip6.fr/public, Uniform Resource Name (URN) Est un URI qui identifie une ressource par son nom dans un espace de noms Exemple : urn:isbn: est un URI qui, avec un ISBN (International Standard Book Number) autorise quelqu'un à faire référence à un livre, mais ne suggère où et comment en obtenir une copie réelle 13 Accès aux ressources Les ressources sont repérées par des URL (Uniform Resource Locator) Exemple Syntaxe Protocole: http Identification pour accéder à la ressource : toto:passwd Nom du serveur : Numéro du port (application) : 80 Web page: req (index.html souvent par défaut) Paramètres avec la méthode GET : p=m2 14 Philippe Lalevée 7

8 HTTP Request : GET Méthode Ressource Version HTTP Lignes d entête GET /req?prenom=philippe&nom=lalevee HTTP/1.1 Host: Connection: close User-Agent: Web-sniffer/ (+http://web-sniffer.net/) Accept-Charset: ISO ,UTF-8;q=0.7,*;q=0.7 Cache-Control: no-cache Accept-Language: de,en;q=0.7,en-us;q=0.3 Referer: Données associées à la ressource pour GET Ligne blanche (2 LF successifs) 15 HTTP Request : POST Méthode Ressource Version HTTP Lignes d entête POST /req HTTP/1.0 Host: Connection: close Referer: Content-type: application/x-www-form-urlencoded Content-length: 0 Connection: Keep-Alive If-Modified-Since: Sunday, 17-Apr-96 04:32:58 GMT prenom=philippe&nom=lalevee... Données POST Ligne blanche de séparation 16 Philippe Lalevée 8

9 Les méthodes HTTP GET Saisie URL ou clic Paramètres placés dans l URL (max ~240 octets) POST Formulaires ou fichiers Paramètres placés après l entête (taille non limitée par le protocole) Autres HEAD : obtention de l entête seule PUT : dépôt d une ressource DELETE : suppression d une ressource OPTIONS : interrogation du serveur TRACE : pour le débogage 17 HTTP Response Version HTTP Status code Raison Lignes d entête HTTP/ OK Date: Mon, 17 Feb :30:00 GMT Server: Apache/ (Red Hat) X-Powered-By: PHP/4.3.9 Content-Length: 1599 Connection: close Content-Type: text/html Données <!DOCTYPE html PUBLIC "-//W3C " "http://www..."> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>site Web de l EMSE</title> </head> Philippe Lalevée 9

10 Le protocole HTTP HTTP est un protocole «sans état» Exemples de la vie courante? Idempotence Le fait d être «sans état» a de grandes conséquences sur la conception des applications et leur extensibilité Connaissez-vous les propriétés ACID? Maintien de la connexion (keep-alive) pour plus d efficacité En HTTP 1.1, mode par défaut (Connection: close pour enlever) 19 Rappels et introduction générale ARCHITECTURES TECHNIQUES 20 Philippe Lalevée 10

11 Terminaux Architecture centralisée Applications monolithiques ENTREPRISE Service Ordinateur Réseau Service Concentrateurs BD BD BD Ordinateurs centraux 21 Programmation «mainframe» Architecture centralisée Ordinateur central (IBM 3090) Bases de données centrales Réseaux de terminaux clients Méthodes «systémiques» Séparation traitement/données : MERISE Langages impératifs : ex. Cobol Systèmes propriétaires Avantages / inconvénients? 22 Philippe Lalevée 11

12 Architecture client/serveur Partage des données Service ENTREPRISE Pare-feu Appli BD Stations de travail Service Internet Serveur Appli Appli Intranet Service BD Stations de travail Stations de travail 23 Programmation «répartie» Architecture décentralisée Chaque nœud est un ordinateur indépendant Bases de données accessibles à tout nœud Réseau local (LAN) ou distant (WAN) d interconnexion Algorithmique répartie (distribuée) Les applications sont multi-machines Les modules applicatifs de chaque machine coopèrent par échange de messages Nouvelles problématiques sécuritaires et transactionnelles Premiers systèmes libres (Unix) RPC, RMI, CORBA, DCOM SQL, HTTP Java EE,.NET Avantages / inconvénients? 24 Philippe Lalevée 12

13 RPC : Remote Procedure Call Mécanisme dissymétrique Le client émet une requête avec un message Le serveur lit et exécute la requête Le client obtient la réponse par un message 25 Appel de procédure appelant appelant Transmission des paramètres fonction Encapsulation des paramètres SEND Récupération des paramètres Appel local Communication synchrone Mode bloquant Contrôle des erreurs Récupération des résultats Client RECV fonction Encapsulation des résultats Serveur 26 Philippe Lalevée 13

14 Java EE RMI Application 1 Application 2 Enterprise Java Bean Enterprise Java Bean Stub (talon) Java RMI Middleware Réseau 27 OMG CORBA Client Serveur Proxy (souche) Serviteur (squelette) ORB ORB POA ORB core (Object Request Broker) BUS MIDDLEWARE 28 Philippe Lalevée 14

15 Architecture des applications Modèle MVC MVC : Model-View-Controller Étudié en 1979 par Xerox (pour smalltalk) Utilisé dans les applications GUI (AWT, Swing) Event-driven Programming Model réalise effectivement les traitements applicatifs sur les données ( Business Process) View obtient les données du «modèle» et les «présente» à l utilisateur ( Human-Machine I{nteraction nterface}) Controller reçoit et traduit les entrées en requêtes vers le «modèle» ou la «vue» ( Business Logic) 29 Architecture MVC Séparation des flux par des interfaces Affichage Vitrine View Arrièreboutique Model Controller Orienteur Côté Application 30 Philippe Lalevée 15

16 Architecture n-tier Découpage des applications en «étages» (tier) tier client tier du milieu (Middleware) tier ressource (S.I.) Côté serveur 31 Rôle du tier client Ici le client peut être de «toute» nature Utilisateur final humain Autres applications Systèmes de stockage IHM : interface graphique (GUI) ou console (CLI) Partie vue du modèle MVC Présentation des données Adaptation au «terminal» Transformations «à la volée» Prise en compte des caractéristiques de sortie (reporting) 32 Philippe Lalevée 16

17 Rôle du middle-tier (middleware) Gestion des composants fournit tous les services et outils pour gérer les composants du système et l implémentation de la «logique métier (business)» Transaction Management Une transaction comprend plusieurs opérations, dont toutes ou aucune doivent être effectuées pour protéger l intégrité des données Assure les propriétés ACID des transactions (atomicité, consistance, isolation et durabilité) Passage à l'échelle (scaling) Capacité du système d'accroître ses ressources matérielles pour supporter un nombre accru de requêtes utilisateur avec un temps de réponse constant 33 Rôle du middle-tier (middleware) Répartition de charge Capacité d envoyer une requête a différents serveurs en fonction de leur disponibilité Gestion aux différents étages, à partir du réseau Tolérance aux fautes, haute disponibilité Règle des 9 : 3 8h45 et 5 5 mn Redondance aux différents étages Sécurité Identification, authentification, autorisation Console de management Gestion centrale de tout le système 34 Philippe Lalevée 17

18 Le tier ressource (S.I.) Système de Gestion de Base de Données (database) JDO, SQL/J, JDBC, ADO.NET Systèmes existants (legacy systems) ERP (Enterprise Resource Planning) EAI (Enterprise Application Integration) Intégration avec : Connecteurs (JCA) : développement Protocoles propriétaires : dépendances 35 Serveur d applications Environnement complet de développement, de test et d exécution coté serveur Il comprend toujours un serveur de composants Serveur avec états Supporte la «logique métier» (Business Logic) décrite à l aide d objets, de règles et de composants Exemples Microsoft Server 2012 Visual Studio Serveurs Java EE : IBM WebSphere, Redhat JBoss, ObjectWeb JONAS, Oracle WebLogic / Glassfish Serveurs CORBA : Micro Focus VisiBroker / ORBacus 36 Philippe Lalevée 18

19 Intégration S.I. aux applications Web Service ENTREPRISE Stations de travail Internet Pare-feu Serveur Web HTML Appli Web Appli Web Appli Web? BD BD Service Stations de travail Ordinateurs centraux 37 Conséquences de l utilisation d Internet sur le S.I. Passage d un réseau propriétaire à un réseau public Nécessité de bâtir des Intranet d entreprise Politique de sécurité interne et non déléguée Prise en compte de cette sécurité dans les applications Sécurité Filtrage réseau : limites Cryptage : partage de clés (PKI) Culture d entreprise : services supports Plate-forme de développement Basée sur des standards et non des technologies Indépendante du type d application Prépondérance des interfaces Accessibilité étendue : progrès? 38 Philippe Lalevée 19

20 Architecture client/serveur Exécution de code en architecture client/serveur Client léger (navigateur) Applications Client lourd Applet ORB Serveur Serveur WEB Côté client Côté serveur 39 Programmation Web côté client Qu est-ce que du code «côté client»? Du logiciel qui est téléchargé d un serveur Web vers un navigateur et qui s exécute sur la machine du «client» Pourquoi du code «côté client»? Meilleure extensibilité : moins de travail pour le serveur Meilleure performance pour gérer l interface Créer des interfaces utilisateur non basées sur HTML (animations, validation des informations) Technologies DHTML, Javascript Composants 40 Philippe Lalevée 20

21 DHTML et JavaScript Encapsuler un script dans une page HTML Généralement écrit en JavaScript (ECMAScript, JScript) pour des raisons de portabilité Internet Explorer supporte aussi VBScript et d autres langages de script Mozilla est extensible par plug-in Chaque élément HTML devient un objet qui peut être associé à des événements (i.e. onclick) Les scripts fournissent du code qui sont exécutés lors de la production d événements de la part du navigateur 41 Les applets Basées sur du bytecode Java Portabilité garantie par les JVM : «Write once, run anywhere» Sûr : le code s exécute dans un «bac à sable» (sandbox) dont les accès sont contrôlés Compatibilité et performance permettent un usage intensif et une large diffusion À noter : le succès de Java est plutôt venu des applications côté serveur 42 Philippe Lalevée 21

22 Programmation Web côté serveur (1) Qu est-ce que du code «côté serveur»? Du logiciel qui s exécute sur le serveur Web et non sur la machine du client Il reçoit ses données en entrée à partir de : Les paramètres des URL Les données des formulaires HTML Les entêtes HTTP, y compris les cookies Il peut accéder à des bases de données côté serveur, des serveurs de mail, des machines de gestion, etc. Il construit dynamiquement une réponse adaptée à chaque requête client 43 Programmation Web côté serveur (2) Accessibilité Tout client peut atteindre Internet de n importe quel navigateur, n importe quelle machine, n importe quand, n importe où Gestion Ne nécessite pas la distribution du code des applications Facilité de changer le code Sécurité Le code source n est pas accessible Une fois le client authentifié, ses actions peuvent être autorisées ou interdites Extensibilité Extension facile avec l architecture «3-tier» 44 Philippe Lalevée 22

23 Browser Web Technologies côté serveur Codes Common Gateway Interface (CGI en C) Internet Server API (ISAPI) Netscape Server API (NSAPI) Scripts (PERL, RUBY, PYTHON ) Active Server Pages (ASP) Personal Home Page (PHP) Coldfusion de Macromedia (CFM) Codes et scripts mêlés Java Server Pages (JSP) ASP.NET 45 Compilation à la volée : JEE Analyse moteur JAVAC Génère Composants 1 ère Requête 2 ème Requête Fichier JSP Tomcat Instancie Classe générée Réponse Réponse Classe de la page Instanciation, traitement, affichage 46 Philippe Lalevée 23

24 Browser Web Compilation à la volée :.NET Analyse moteur ASPX Génère Classe Code Behind 1 ère Requête 2 ème Requête Fichier ASPX IIS Instancie Classe générée Réponse Réponse Classe de la page Instanciation, traitement, affichage 47 Web et MVC Traitement de la présentation (View) sur le client et le serveur (étage «front office») et du contrôle de processus (Controller) et de la partie métier (Model) sur le serveur (étage «back office») Adaptation de la présentation au «client» Données : HTML, WML, XML, PDF Terminal : PC, Tablette, PDA, SP, GSM Réseau Gestion «passive» ou «active» des changements d état Passive : «Adapter pattern» (interruption ou callback) Active : «Observer pattern» (scrutation) 48 Philippe Lalevée 24

25 Architecture n-tier : application au Web Le côté serveur Clients web Web services HTML, XML / HTTP, HTTPS SOAP / HTTPS Web Serveur Web Container Scripts (Fast CGI) Autres extensions SQL, propriétaire XML, RMI / HTTP, IIOP, JRMP, JMS Le tier ressource (EIS) Le tier du milieu Le tier client Contenu statique CGI scripts Le tier web SOAP / HTTPS Web Services Front Office Back Office 49 Enchaînements n-tier Le tier client Client Web SOAP / HTTPS tier web SOAP / HTTPS Web Services SOAP / HTTPS tier web SOAP / HTTPS tier web SOAP / HTTPS Web Services SOAP / HTTPS tier web 50 Philippe Lalevée 25

26 Bilan des architectures La solution doit intégrer les architectures existantes Mainframe : institutions Réseaux locaux d applications Client-serveur WEB Nouvelles solutions Réseaux de serveurs applicatifs (enchainements n-tier) Architectures orientées composants Politiques d intégration et de sécurité Évolutions EAI, SOA et Cloud computing 51 Bilan des technologies HTML (ou XHTML) : langage à balises hypertexte CSS (Cascading Style Sheet) : présentation des documents Javascript : code côté client XML (extended Markup Language) : description des données RSS (ou ATOM) : syndication des flux HTTP : protocole de transport des messages URI : identifiants universels XML-RPC (Remote Procedure Call) : invocation synchrone REST (Representational State Transfer) : accès aux ressources WS-* (Web Services) : invocation de services AJAX (Asynchronous Javascript and XML) : requêtes JSON sur HTTP en mode asynchrone en Javascript Technologies Applicatives Web 52 Philippe Lalevée 26

27 Rappels et introduction générale PUB! 53 Pub! Architecture.NET.NET est une stratégie de produits Microsoft Remplacement de Microsoft DNA 54 Philippe Lalevée 27

28 Pub! Architecture JEE JEE est un standard industriel contrairement à.net c est une spécification Actuellement, version 1.4 Une application JEE assemble des composants Web : servlets et JSP business : EJB écrits en Java, compilés en bytecode applications clientes, applets assemblés dans l application déployés dans un serveur Le serveur JEE fournit des conteneurs qui permettent de simplifier les composants et d offrir tous les services nécessaires 55 Pub! Modèles de développement Un langage Plusieurs plate-formes Plusieurs langages Une plate-forme Source : 56 Philippe Lalevée 28

29 Tableau comparatif JEE/.NET Langage Services Microsoft. NET C#, Multi- Langage BCL Présentation ASP.NET J2EE Java Java core API Servlet JSP Interprète CLR JVM GUI composants Win Forms Web Forms Swing différences essentielles C# a certains des JavaBeans et ajoute les metadata tags. L'intégration dans la syntaxe est différente. J2EE est plate-forme indépendant mais langage spécifique,.net est langage indépendant mais plate-forme spécifique. Similaire services ASP.NET utilise tout les langages supportes dans.net et est compile en code natif par le CLR. JSPs utilisent Java code (snippets, ou JavaBean références), compile en bytecodes. CLR permet a du code de plusieurs langages d'utiliser un ensemble de composants partages. Composants Web similaire ne sont pas disponible en Java. WinForms et WebForms sont complètement intègre a VisualStudio.net DB accès ADO.NET JDBC, JDO, ADO.NET est construit a partir d'une architecture XML SQL/J WebServices oui oui.net web services supposent un model de message base sur SOAP tandis que J2EE laisse le choix au developpeur. Implicit middleware oui oui Technologie Produit Standard J2EE est une specification,.net est une strategie de produits 57 Rappels et introduction générale XML 58 Philippe Lalevée 29

30 Représentation des données Brute («raw») Flux d octets (bits) Efficace mais sensible à son usage Textuelle Adoption d un jeu de caractères Conversions implicites (endianness, formats) Relationnelle Inspirée des MLD (Merise) Utilisation dans les bases de données relationnelles Arborescente Inspirée des «enregistrements» COBOL Représentation unique (non ambigüe) 59 Présentation rapide de XML Sous-ensemble de SGML Alors que HTML est une implémentation de SGML Métalangage avec balises (Markup) Fichier texte Conçu pour une représentation structurée de l information Sous forme hiérarchique (arborescente) Fournit un «contexte» aux données (signifiantes) Informations auto-descriptives Séparation de la présentation (HTML) des données (XML) Pas de sémantique associée Standard ouvert du W3C 60 Philippe Lalevée 30

31 Utilisation de XML Spécification de données «utilisable partout» Application A Application B XML Application C BD XML Intérêt applicatif : Validation XML et Définition Respect de la grammaire XML Respect de la définition de la structure 61 Description DTD : Document Type Definition Définition simple (et rapide) Obsolète aujourd hui Schéma Définition XML de la structure Typage fort des données Réutilisation possible 62 Philippe Lalevée 31

32 Manipulation Traitement séquentiel et événementiel De type «SaX» Les éléments sont lus «ligne à ligne» Chaque ligne déclenche un événement activable Traitement de l arbre De type «DOM» Le fichier (instance) est lu complètement en mémoire sous la forme d un arbre Cet arbre est vu comme une arborescence objet 63 Transformations Traitement de sortie Application de feuilles de styles : XSLT Sérialisation des données XSL : extensible Stylesheet Language XSL Transformations : XML Langage XSL-FO (formatting objects) mise en page Transformations PS, PDF, HTML, WML, ASCII et XML 64 Philippe Lalevée 32

33 XML et RPC/RMI RPC/RMI dans lequel : Le protocole de communication est HTTP L encodage des données est XML SOAP (Simple Object Access Protocol) Version proposée par Microsoft Reprise par les éditeurs de logiciels 65 Rappels et introduction générale URBANISATION ET INTÉGRATION 66 Philippe Lalevée 33

34 Scénarios n-tier L architecture n-tier permet plusieurs modèles d exécution des applications Applications Web (classiques) Applications B2C Applications Intranet Applications B2B Applications multi-tier Inspirés de Java EE, mais valables aussi en.net 67 Applications Web Requêtes HTTP par des URL Servlet : descripteur de déploiement JSP : extension du fichier 68 Philippe Lalevée 34

35 Applications B2C Le conteneur Web interagit avec le S.I. de l entreprise par des API ad hoc JavaMail, JDBC, JMS, JXTA 69 Applications intranet Le client accède directement aux ressources applicatives de l entreprise Intérêts : client «riche», sécurité simplifiée 70 Philippe Lalevée 35

36 Applications B2B Les conteneurs accèdent à leurs homologues Protocoles standards : CORBA, RMI, DCOM Technologies Web Services (architecture SOA) 71 Applications multi-tier Applications complètement intégrées Multiplateformes, multi-machines (cluster) Indépendance des parties (tier) 72 Philippe Lalevée 36

37 Urbanisation Construction «historique» 73 Conséquences sur le S.I. Gestion des données : ruptures Applications : mises à jour non répercutées Identifiants : plusieurs accès à une même information Chaîne informatique : échanges de données non «industrialisés» (sensibilité variable) Temporelle : délais de mise à jour longs Géographique : les données sont situées en des endroits différents Constats Duplication, saisies multiples Incohérences et erreurs 74 Philippe Lalevée 37

38 Urbanisation Urbaniser, c'est diriger la transformation continue du système d information pour le simplifier durablement Démarche d urbanisation Cartographie des systèmes existants Détermination des systèmes cibles 75 Principe d urbanisation n 1 Modularité et encapsulation Partitionnement du S.I. en sous-ensembles fortement cohérents Données et traitements conceptuellement proches et faiblement couplés Évolution de l un n a pas d impact sur les autres Services Fonctionnels Référentiels de données, accessibles par des interfaces publiques Traitements sous le contrôle de «pilotes» 76 Philippe Lalevée 38

39 Principe d urbanisation n 2 Sécurité du S.I. Infrastructure de confiance Authentification réciproque des acteurs Autorisation des échanges Les flux de contrôle sont toujours à l initiative du destinataire Mode Pull Chaque Service Fonctionnel garde le contrôle de ses données Fonctionnement autonome des Services Fonctionnels 77 Principe d urbanisation n 3 Localisation unique des informations Gestion en un point unique du S.I. Localisation unique et uniforme (URI) Distinction information/donnée Copie(s) possible(s) Archivage Gestion des délais (mémoire «cache») Redondance, clustering Non accessible aux traitements «métier» Intégrité des informations Propriétés ACID Modèle de données disjoints 78 Philippe Lalevée 39

40 Principe d urbanisation n 4 Localisation unique du pilotage Pilotage des activités du S.I. Modélisation sous forme d activités «métier» Toute activité métier est pilotée de bout en bout sans délégation par un unique Service Fonctionnel pilote Ce pilote enchaine les demandes de services aux référentiels Localisation unique et uniforme (URI) Modèle homogène Ressource : information ou traitement 79 Principe d urbanisation n 5 Urbanisation des échanges Architecture de communication point à point Chaque application métier «connaît» ses destinataires Elle assure le contrôle, la transformation, le suivi, la gestion des erreurs dépendances inter-application Découpage applicatif «urbain» Définition des zones (quartier/îlots/blocs) Définition des échanges entre zones Dictionnaire de données métier 80 Philippe Lalevée 40

41 Principe d urbanisation n 6 Sémantique des Protocoles Asynchronisme des pilotes Pas de contrainte point à point de synchronisation Modélisation doit permettre l activation simultanée «conversationnel/non conversationnel» Pas de connaissance «a priori» Gestion par messages Journalisation / invalidation des informations Services «sans état» État des référentiels toujours cohérents Facilite la gestion des transactions (à deux phases) 81 Intégration des Applications d Entreprise Intégration niveau de l Entreprise 82 Philippe Lalevée 41

42 Intégration des Applications d Entreprise Intégration Entreprise A2A : Application-to-Application Intégration des applications et des systèmes B2B : Business-to-Business Intégration des processus et des applications des partenaires/clients/fournisseurs B2C : Business-to-Consumer Intégration directe des clients finaux en processus «corporate» B2E : Business-to-Employee Intégration des fonctions de management de l organisation de l entreprise (RH, KM) 83 Intégration des Applications d Entreprise Types d intégration Portails Intégration d applications (portlets) au niveau utilisateur Données partagées Architecture d intégration au niveau de l accès aux données Fonctions partagées Architecture d intégration au niveau des fonctions ou méthodes Enterprise Application Integration o Partage de données et de processus métiers entre des applications connectées Service Oriented Architecture o Partage / échanges de services fonctionnels faiblement couplés 84 Philippe Lalevée 42

43 Intégration des Applications d Entreprise Principes EAI Partage des informations et des traitements entre «applications» Échanges d informations métier Enchaînement des processus métier Optimisation du S.I. Maintenance / erreurs et fautes Évolutivité des solutions technologiques La décentralisation (départementalisation) a entrainé Développement sur systèmes hétéroclites SGDB hétérogènes Réseaux non interopérables 85 Solutions actuelles Middleware Définition d interfaces applicatives Bus logiciel S.I. centré sur un ERP Intégration «propriétaire» Ces ERP sont des «silos» Applications WEB Développement «en dehors» du S.I. Notions intranet et Extranet Infrastructure «Orientée Message» Désynchroniser les traitements Adaptation des données Orchestration des processus BPM et Workflow Gestion des événements / séquences d action 86 Philippe Lalevée 43

44 Communications entre applications ERP ERP CRM SCM CRM SCM EAI Cli/Srv DataWH Cli/Srv DataWH Legacy Legacy 87 Intégration et XML Choix de XML Universalité de la solution Flexibilité des technologies Niveau des données Définition de formats de documents Validation des messages Transformations de format Niveau architecture technique Découplage des communications Applications hétérogènes 88 Philippe Lalevée 44

45 Middleware XML et les S.I. Applications métiers Annuaire ERP X M L X M L BUS XML X M L X M L X M L Bases de Données Services Distribués 89 Niveaux d intégration Plate-forme Connectivité matérielle, système et logicielle Données Passerelles bases de données et outils d extraction (datawarehouse) Composants Serveurs d applications, passerelles ERP, Tier du milieu Applications Adaptateurs dédiés ou Hub & Spoke Processus BPM (Business Process Management) : moteur de workflow, modélisation processus métiers 90 Philippe Lalevée 45

46 EAI : niveau application Intégration au niveau système mais aussi «sémantique» Différents aspects Nature des échanges : les messages sont des éléments du business (bon de commande ) Traitements particuliers liés aux échanges : «suivi», «stockage», «datawarehouse» Modèles de données mécanismes de conversion Intégration analyse business, sous forme d enchaînement de tâches enchaînement de programmes Architectures classique : point à point et pipeline Proposition d architecture centralisée : le «hub and spoke» 91 Architecture «hub and spoke» Le Hub Gestion centralisée des files d attente Communications 1/1 (question/réponse) ou 1/n (publier/souscrire) Le workflow Destination en fonction de l entête des messages Des valeurs contenues dans le message Séquences de traitement e-business (liste des étapes) Traitement des données Conversion métier Différent du codage Le Spoke Partie protocole réseau Adaptateur (JCA) Les messages (JMS, MSMQ) En XML Entête d identification Propriétés Application A Adaptateur Spoke File WorkFlow Hub File LDAP Application B Adaptateur File Traitement de données Spoke 92 Philippe Lalevée 46

47 EAI : niveau processus Métier Application 1 Workflow Backoffice Autres Systèmes Application 2 Services Application 3 Annuaire Services Bases Données 93 Deuxième partie WEB SERVICES TECHNOLOGIES ET ARCHITECTURES 94 Philippe Lalevée 47

48 Web Services: Technologies et Architecture PRINCIPES 95 Exemple type Agence de voyage Un produit «voyage» est la combinaison de plusieurs produits Billets de transport Chambres d hôtel Voitures de location Son élaboration est le résultat de services et d informations obtenus auprès de plusieurs fournisseurs Compagnies aériennes Chaînes hôtelières Loueurs de véhicules Quelles sont les solutions? 96 Philippe Lalevée 48

49 Les besoins des entreprises Les compagnies, les fournisseurs, les partenaires et les clients doivent être capables de travailler ensemble Plus vite que jamais auparavant À travers Internet Ou risquer la «mort par isolement» leurs systèmes d information se recouvrent Certains de leurs processus métier sont donc communs Assurer l interopérabilité? Évolutivité? Transparence? Sécurité? Loueurs de véhicules Compagnies aériennes Agence de voyage 97 Serveurs d applications Architecture 3-tier des applications Moyen puissant pour construire des applications Web extensibles et adaptables Mais de telles applications sont des silos L intégration est une conséquence «après coup» Elles peuvent être intégrées derrière le pare-feu de l entreprise (firewall) Même cela peut être un problème Elles ne fournissent pas de moyen pour s intégrer à travers les pare-feux (i.e. à travers Internet) 98 Philippe Lalevée 49

50 Les Web Services! Un Web Service expose ses fonctionnalités au client Par une description (contrat) XML Automatisation des processus métiers Basé sur des standards Web TCP/IP, HTTP, XML, SOAP, WSDL, UDDI, WS-* (d autres à venir) Par une URL programmable à travers Internet ou l intranet (REST ) Par des fonctions appelables sur Internet Implémentés dans n importe quel langage sur n importe quelle plate-forme Ils agissent comme des «boîtes noires» Garantie d interopérabilité «Composants logiciels réutilisables» Les Web Services reprennent les avantages du calcul réparti et des portails et n en possèdent pas les inconvénients En fournissant un mécanisme pour invoquer des «méthodes» à distance En utilisant des standards du Web (comme HTTP, SMTP, XML ) En proposant un «bus XML» garant de l interopérabilité En intégrant les applicatifs sans les remettre en cause 99 Web Services: Technologies et Architecture SCHÉMAS XML 100 Philippe Lalevée 50

51 Les acteurs Le client Celui qui utilise, invoque le Web Service Le fournisseur (prestataire) Serveur d application (par exemple, J2EE) Les services sont des composants (par exemple, des servlet/ejb) enveloppés dans une couche service L annuaire Publication du service dans un dépôt (registre) 101 Tâches associées Interroger un annuaire Pour connaître la nature, le rôle et le contenu des services Négocier avec les fournisseurs Nature exacte du service fourni Qualité, coût Interagir avec le service Modalités d interaction Introduire le service dans la chaîne de traitement Composer des services Publier des services 102 Philippe Lalevée 51

52 Relations entre les acteurs Demandeur de Services Web Client API SOAP 4. Invoque le service Fournisseur de Services Web Impl Publi Document WSDL 3. Recherche le WSDL 2. Recherche le service Annuaire UDDI 1. Publie le service Tous les messages sont des requêtes SOAP 103 Scénario complet Étape 1. Définition et description du service Contrat de service en WSDL Étape 2. Publication du service Annuaire UDDI Étape 3. Recherche du service Interrogation d un annuaire UDDI Étape 4. Enregistrement du service Contact avec le fournisseur et respect du contrat Étape 5. Mise en œuvre du service Invocation selon le contrat Étape 6. Composition Applications orientées service 104 Philippe Lalevée 52

53 Les protocoles et schémas Internet (le Web) HTTP, XML et DNS SOAP (Simple Object Access Protocol) IIOP pour CORBA RMI pour les EJB WSDL (Web Service Description Language) IDL pour CORBA Interfaces Java pour les EJB UDDI (Universal Description, Discovery and Integration) et DISCO CosNaming pour CORBA JNDI pour les EJB 105 Un exemple Source : 106 Philippe Lalevée 53

54 Web Services: Technologies et Architecture CONCEPTION 107 Conception d un Web Service Un composant logiciel fabrique la concaténation à partir de deux chaines de caractères Les clients peuvent utiliser différents langages sur différentes plateformes Les échanges se font par Internet, en traversant des firewalls Principe : fournir un Web Service (SimpleService) à partir d un serveur (www.emse.fr) L URL est appelée Web Service Endpoint Pour l instant, une seule opération concat est proposée 108 Philippe Lalevée 54

55 Structure du Web Service (1) Serveur Web : Web Service : /SimpleService Opération : Nom : concat Namespace : Opération : Nom : Ils constituent ensemble le EndPoint du Web Service Comment garantir que concat soit globalement unique? Utiliser un namespace! concat est un «local name» Le nom complet est appelé un QName (Qualified Name) Internet 109 Style RPC du Web Service Style RPC (Remote Procedure Call) Forme : Type Opération (Type par1, Type par2 ) Les paramètres sont transmis «un par un» Opération : Local Name : concat Namespace : Paramètres : s1 : string (w3.org/xmlschema) s2 : string Retour : string (w3.org/xmlschema) (w3.org/xmlschema) Que signifie string? Ce ne peut pas être un type d un langage, donc utiliser un schéma XML! 110 Philippe Lalevée 55

56 Organisation des messages Les RPC peuvent être proposés, sous forme de messages L appel est appelé «input message» La valeur de retour est appelée «output message» Les paramètres sont appelées «parts» Local Name: concat Namespace: Input Message: Part 1: Name: s1 Type : string (w3.org/xmlschema) Part 2: Name: s2 Type : string (w3.org/xmlschema) Output Message: Part 1: Name: retour Type : string (w3.org/xmlschema) 111 Appel du Web Service Local Name: concat Namespace: Input Message: Part 1: Name: s1 Type : string (w3.org/xmlschema) Part 2: Name: s2 Type : string (w3.org/xmlschema) Output Message: Part 1: Name: retour Type : string (w3.org/xmlschema) <miage:concat xmlns:miage="http://www.emse.fr/ns" xmlns:xsd="... XMLSchema"...> <s1 xsi:type="xsd:string">bonne</s1> <s2 xsi:type="xsd:string">journée</s2> </miage:concat> 112 Philippe Lalevée 56

57 Retour du Web Service Local Name: concat Namespace: Input Message: Part 1: Name: s1 Type : string (w3.org/xmlschema) Part 2: Name: s2 Type : string (w3.org/xmlschema) Output Message: Part 1: Name: retour Type : string (w3.org/xmlschema) <miage:concat xmlns:miage="http://www.miage.org/ns" xmlns:xsd="... XMLSchema"...> <retour xsi:type="xsd:string">bonne journée</retour> </miage:concat> 113 Style DOCUMENT du Web Service Les données envoyées et reçues peuvent être validées Forme : Document Opération (Document) Les schémas des documents doivent être fournis dans l interface du WS Local Name: concat Namespace: Input Message: Part 1: Name: concatrequest Element: concatrequest Output Message: <xsd:schema targetnamespace="http://www.emse.fr/ns"..."> <xsd:element name="concatrequest"> <xsd:complextype> <xsd:sequence> <xsd:element name="s1" type="xsd:string"/> <xsd:element name="s2" type="xsd:string"/> </...> </xsd:schema> 114 Philippe Lalevée 57

58 Port Type: quelles opérations? <miage:concatrequest xmlns:miage="http://www.emse.fr/ns"> <s1>bonne</s1> <s2>journée</s2> </miage:concatrequest> Seul le document est envoyé dans la requête : comment transmettre l opération? Les Web Services ne contiennent pas la liste des opérations Les opérations sont groupées dans des «Port Type» Un Port Type peut être vu comme une classe Java et les opérations qu il contient comme des méthodes statiques Plusieurs Port Type peuvent être associés à un Web Service 115 Les WS avec des Port Type Serveur Web : Web Service : /SimpleService Schéma: Port Type: Name: stringutil NS: Opération : Nom : concat NS: Port Type: Name: dateutil NS: Opération : Nom : concat NS: Internet 116 Philippe Lalevée 58

59 binding : comment préciser le format? Le format des messages spécifie comment ils sont échangés : Texte (chaîne de caractères) éventuellement MIME XML : XML-RPC ou SOAP Le format textuel ne permet pas la validation Le standard W3C SOAP fournit une interface HTTP/XML robuste Support étendu des types de données Mais complexité de mise en œuvre (et efficacité?) Et aussi comment ils sont transportés GET ou POST SMTP GET et POST utilisent le protocole HTTP pour invoquer les Web Services en mode synchrone SMTP utilise le mail en mode asynchrone Les combinaisons sont appelées des «binding» 117 Les WS avec des Binding Web Service : /SimpleService Schéma: Port Type: Name: stringutil NS: Binding: Nom : Liaison1 Port Type: stringutil Format: SOAP Transport: HTTP Binding: Nom : Liaison2 Port Type: stringutil Format: TEXT Transport: SMTP POST /M2/TP2/WS.do HTTP/1.1 User-Agent: Mozilla/ <miage:concatrequest...> <s1>bonne</s1> <s2>journée</s2> </miage:concatrequest> FROM: TO: concat(s1="bonne",s2="journée") 118 Philippe Lalevée 59

60 Port: sur plusieurs machines Un même Web Service peut être proposé sur plusieurs machines «Port» C est un «Binding» que l on place sur un «Port» Par exemple, dans l exemple précédent, on peut placer Liaison1sur les machines miage1, miage2 et miage3, et Liaison2 sur la machine miage3 Il y a dans ce cas QUATRE «Port» Un composant logiciel devra être présent pour mettre en œuvre le «Port Type» Les ports peuvent être de langage différent Sur une même machine (par exemple miage3), plusieurs formats et transports peuvent cohabiter 119 Retour sur les URI, URN et URL Les Web Services doivent définir un espace de nommage unique (en général, il est commun) en utilisant une URI, «Uniform Resource Identifier» Soit une URL, «Uniform Resource Locator» Soit un URN, «Uniform Resource Name» Choix d une URL Le domaine est géré par vous Cohérence possible avec l accès Mais risque de confusion Choix d un URN Indépendance avec l accès et la localisation Syntaxe : urn:name_identifier:name_specific Désignation standardisée par le IANA, mais utilisation possible du nom de domaine comme name_identifier Par exemple, pour notre Web Service : urn:miage.org:ns 120 Philippe Lalevée 60

61 Web Services: Technologies et Architecture WSDL 121 WSDL : présentation Les concepts que nous venons de voir constituent les éléments de schéma WSDL Un fichier WSDL regroupe les informations nécessaires pour interagir avec le Web Service Les types (schéma), types de port (classes), opérations (méthodes) Les parties (paramètres), liaisons (protocole de transport) et ports (localisation du service) La publication et la recherche de services au sein de l annuaire UDDI se font avec WSDL Le fichier retourné est celui contenant l implémentation du service Le fichier contenant l interface de mise en œuvre est fourni par le premier Schéma XML : deux fichiers distincts Définitions des interfaces des services Sémantique abstraite pour les Web Services Définitions de l implémentation du service Nom concret du nœud et adresse réseau où le Web Service peut être invoqué Délimitation claire entre les messages abstraits et concrets 122 Philippe Lalevée 61

62 Exemple : gestion de compte Pour illustrer les différentes parties, voici une interface Java pour une gestion de compte Le passage de Java vers WSDL se fait en général avec des outils fournis (wsdl2java) ou bien intégrés au serveur d application import java.util.*; public interface CompteInterface { public void depotde (int montant); public boolean retraitde (int montant); public int valeursolde (); public Vector listemouvements(); } 123 Partie 1. Les types La methode listemouvements retourne un Vector description de ce type <wsdl:types> <schema targetnamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/xmlschema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <complextype name="vector"> <sequence> <element maxoccurs="unbounded" minoccurs="0" name="item" type="xsd:anytype" /> </sequence> </complextype> </schema> </wsdl:types> Pour cet exemple, les autres types sont prédéfinis 124 Philippe Lalevée 62

63 Partie 2. Les messages Les méthodes disposeront de deux messages : un pour l appel, un pour la réponse <wsdl:message name="listemouvementsrequest" /> <wsdl:message name="listemouvementsresponse"> <wsdl:part name="listemouvementsreturn" type="apachesoap:vector" /> </wsdl:message> <wsdl:message name="depotderequest"> <wsdl:part name="in0" type="xsd:int" /> </wsdl:message> <wsdl:message name="depotderesponse"> <wsdl:part name="depotdereturn" type="xsd:boolean" /> </wsdl:message> Partie 3. Les types de port Un type de port est composé des opérations abstraites applicables au service, ie les signatures de méthodes Java (dans l interface) Les opérations sont composées d une séquence de messages (un pour l appel, un pour le retour) à un mode d invocation particulier du service <wsdl:operation name="listemouvements"> <wsdl:input message="impl:listemouvementsrequest" name="listemouvementsrequest" /> <wsdl:output message="impl:listemouvementsresponse" name="listemouvementsresponse" /> </wsdl:operation> 126 Philippe Lalevée 63

64 Partie 3. Les types de port Dans l exemple, il y aura un seul type de port, composé des 4 opérations <wsdl:porttype name="compte"> <wsdl:operation name="listemouvements"> <wsdl:input message="impl:listemouvementsrequest" name="listemouvementsrequest" /> <wsdl:output message="impl:listemouvementsresponse" name="listemouvementsresponse" /> </wsdl:operation> <wsdl:operation name="depotde" parameterorder="in0"> <wsdl:input message="impl:depotderequest" name="depotderequest" /> <wsdl:output message="impl:depotderesponse" name="depotderesponse" /> </wsdl:operation>... </wsdl:porttype> 127 Partie 4. Les liaisons Les liaisons décrivent la façon dont un type de port (l abstraction du service) est mis en œuvre pour un protocole particulier (HTTP par exemple) Pour un mode d invocation particulier (RPC par exemple) Cette description est faite pour un ensemble d opérations abstraites Pour un type de port, on peut avoir plusieurs liaisons Différenciation des modes d invocation ou de transport des différentes opérations 128 Philippe Lalevée 64

65 Partie 4. Les liaisons <wsdl:binding name="comptesvcbinding" type="impl:compte"> <wsdlsoap:binding style="soap" transport="http://schemas.xmlsoap.org/soap/http/" /> <wsdl:operation name="depotde"> <wsdlsoap:operation soapaction="" /> <wsdl:input name="depotderequest"> <wsdlsoap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/comptesvc" use="encoded" /> </wsdl:input> <wsdl:output name="depotderesponse"> <wsdlsoap:body encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/comptesvc" use="encoded" /> </wsdl:output> </wsdl:operation>... </wsdl:binding> 129 Partie 5. Les ports Un port spécifie une adresse URL de l implémentation d un service par un fournisseur Le port est associé à une «liaison» définissant ainsi un simple point de terminaison <wsdl:port binding="impl:comptesvcbinding" name="comptesvc"> <wsdlsoap:address location="http://localhost:8080/axis/services/comptesvc" /> </wsdl:port> 130 Philippe Lalevée 65

66 Partie 6. Le service Un service est décrit comme un ensemble de points finaux du réseau : «port» <wsdl:service name="comptesvc"> <wsdl:port binding="impl:comptesvcbinding" name="comptesvc"> <wsdlsoap:address location="http://localhost:8080/axis/services/comptesvc" /> </wsdl:port> </wsdl:service> 131 Web Services: Technologies et Architecture SOAP 132 Philippe Lalevée 66

67 SOAP : les principes Principe fondateur : «ne pas inventer de nouvelles technologies» Bâti à partir de standards Internet clé SOAP HTTP + XML Soumis au W3C Les spécifications SOAP définissent : Le format des messages SOAP Comment envoyer des messages Comment recevoir des messages L encodage des données 133 Structure des messages SOAP Message Headers SOAP Envelope SOAP Header Headers Le message complet SOAP Entêtes de liaison du protocole <Envelope> contient les données <Header> contient les entêtes Entête particulière SOAP Body Message Name & Data <Body> contient le nom du message SOAP Nom et données encodées en XML du message SOAP 134 Philippe Lalevée 67

68 Exemple complet d une requête <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" xmlns:xsd="http://www.w3.org/1999/xmlschema" > <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="urn:monservicesoap"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 135 Exemple complet d une réponse <?xml version= 1.0 encoding= UTF-8?> <SOAP-ENV:Envelope xmlns:soap-env= "http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle= http: //schemas.xmlsoap.org/soap/encoding/ xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" xmlns:xsd="http://www.w3.org/1999/xmlschema" > <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m= urn:monservicesoap"> <return xsi:type= xsd:float >34.5</return> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 136 Philippe Lalevée 68

69 Exemple : réponse avec une structure de données <soap:envelope...> <soap:body> <GetStockDataResult xmlns= > <result> <Description>Plastic Novelties Ltd</Description> <Prix>129</Prix> <Action>PLAS</Action> </result> </GetStockDataRseult> </soap:body> </soap:envelope> 137 Exemple d erreur <?xml version= 1.0 encoding= UTF-8?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>soap-env:mustunderstand</faultcode> <faultstring SOAP Must Understand Error </faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 138 Philippe Lalevée 69

70 La sécurité des échanges Bâtie sur la sécurité offerte par HTTP HTTPS certificats X.509 Les développeurs choisissent quelle méthode exposer explicitement Les applications (source) ne sont pas concernées Compatible avec les pare-feux Compatible avec les types de données 139 SOAP et Tomcat : schéma simplifié Client Requête SOAP Réponse SOAP Serveur HTTP Tomcat SOAP Dispatcher Réseau Internet Implémentation Fournisseur de service 140 Philippe Lalevée 70

71 SOAP: Interopérabilité Java et Excel Tomcat Data Base Tableau Excel VB Macro SOAP Servlet SOAP DLL HTTP DLL SOAP jar JDBC jar Service Client Serveur Parser XML 141 Interactions WSDL et SOAP 142 Philippe Lalevée 71

72 Liaison entre services 143 Mécanismes mis en jeu 144 Philippe Lalevée 72

73 Insertion de services techniques 145 Web Services: Technologies et Architecture SOA AVEC REST ET WS-* 146 Philippe Lalevée 73

74 Retour sur les architectures Architecture logicielle Description de sa structure : composants logiciels, connecteurs (propriétés externes) et les relations entre eux (communication) Style Modèles de structure, vocabulaire de composants, contraintes de relation Caractérisation Trois grands styles Architectures orientées objet Architectures orientées ressources Architectures orientées services 147 Architecture orientée Objet Composant = objet Identificateur État Connecteur = interface Comportement Liste d opérations (méthodes) Relations = appel «bloquant/synchrone» RPC, RMI, DCOM Modèle client/serveur CORBA / JEE RMI /.NET 148 Philippe Lalevée 74

75 Architecture orientée Ressource Composant = URI «tout ce qui a une identité» État Connecteur = «copie» de la ressource Extraction par requête (HTTP get, SQL select) Gestion comparable à une mémoire cache Relations = WWW Standards Internet Modèle client/serveur WEB 2.0 / REST 149 Architecture REST REST = REpresentational State Transfer Inventé par Fielding en 1994 À la base du WWW : accès aux ressources Accès ressource = représentation de cette ressource par un serveur Clic sur un lien = transition d état (accès) Application Web = réseau de ressources permettant des transitions d état Exemples Standards W3C URI / URL / URN HTTP / HTTPS XHTML / XML / MIME 150 Philippe Lalevée 75

76 Les 10 principes REST 1. Identifier les ressources 2. Choisir celles dont la durée de vie est supérieure à une transaction/session 3. Les nommer avec une URI (logique) pour favoriser le couplage lâche 4. Utiliser des noms car ressource = état 5. Donner des URI stables (permanentes) 6. Nommer les ressources «métier» 7. Utilisation de GET pour la lecture (mémoire cache, sécurité) et POST pour la mise à jour 8. Services sans état (à la charge du client) 9. Services asynchrones 10. Représentation des données en XML 151 Architecture orientée Service Composant = fonction logicielle autonome Sans état Couplage faible Interopérabilité (agnostique) Connecteur = URI du prestataire Schémas XML Description par un «contrat» Relations = WWW Standards Internet Modèle consommateur/prestataire WS-* (SOAP-WSDL-UDDI) / REST 152 Philippe Lalevée 76

77 Le portail programmableweb.com Les 6 principes WS-* Message Enveloppe (entête / corps) Requester / Provider : agents Web Service Transport «abstrait» Action Exécutée par un agent (message, notification ) Service Ressource (URI) dont la description est accessible Description = interface des services Interface = messages reçus/envoyés par les actions Orchestration Enchainement des actions, sous couvert d une politique réalisation processus métier Chorégraphie Interactions de plusieurs Web Services dans leur intégration Politique de gestion Sémantique de communication Contrôle de flot (états successifs des services) Sécurité et qualité des services, «console de management» 153 Pour aller plus loin 154 Philippe Lalevée 77

78 developer.ebay.com 4,5 Mo!! 155 Architecture SOA Principe SOA (Service Oriented Architecture) toute application est un ensemble de processus coopérant en se fournissant mutuellement des services Englobe les architectures client/serveur (maître/esclave) et pair à pair (peer-to-peer) Architecture client/serveur «rendue» symétrique Architecture pair à pair applicative Application orientée services rôle de prestataire et de client dans les relations de service Les «Web Services» permettent de bâtir des applications SOA, mais ce n est pas le seul moyen 156 Philippe Lalevée 78

79 Intégration de la chaîne de valeur Source IBM 157 Évolution des technologies 158 Philippe Lalevée 79

80 Architecture technique (simple) 159 Les fonctions SOA 160 Philippe Lalevée 80

81 Architecture complète 161 Infrastructure généralisée 162 Philippe Lalevée 81

82 Enterprise Service Bus 163 ESB et SOA 164 Philippe Lalevée 82

83 SOAP/WSDL ESB! 165 Vision IBM: on demand Source IBM 166 Philippe Lalevée 83

84 Web Services: Technologies et Architecture CLOUD COMPUTING 167 Cloud computing Pourquoi «cloud computing»? 168 Philippe Lalevée 84

85 Premiers éléments 169 L architecture complète 170 Philippe Lalevée 85

86 Storage-as-a-Service Espace disque à la demande Accès à un espace de stockage distant «vu» localement Service de «base» dropbox, box.net, ubuntu one, Amazon S3 171 Database-as-a-Service SGBD distant «partagé» vu localement Différents modèles Relationnel Objet XML Document Externalisation administration Apache CouchDB, Amazon SimpleDB 172 Philippe Lalevée 86

87 Information-as-a-Service Capacité de traiter tout type de donnée, stockée à distance Définition d interfaces publiques Données métier Cours de la bourse Agences d information Service météorologique Validation d adresse Facebook, twitter, linkedin 173 Process-as-a-Service Réalisation de processus métier à partir de ressources distantes pouvant interconnecter des services et des données 174 Philippe Lalevée 87

88 Application-as-a-Service Ou Software-as-a-Service Application Web fournie à travers un navigateur Granularité variable Google Docs, Salesforce SFA, Zimbra, Yahoo, Bloomberg, Zoho 175 Platform-as-a-Service Plate-forme complète de développement d applications Basée sur un modèle «temps partagé» Conception, développement, déploiement, intégration, stockage, opérations Google app engine, Microsoft Azure, IBM Cloud, Sun Zembly 176 Philippe Lalevée 88

89 Integration-as-a-Service Fourniture de capacités d intégration aux applications : interfaces, contrôle de flux, orchestration Technologie EAI fournie sous forme de services Transformation Routage Interfaces journalisation 177 Security-as-a-Service Services de sécurité fournis à travers Internet Gestion centralisée d identification 178 Philippe Lalevée 89

90 Gouvernance-as-a-Service Gestion des services du «cloud» Topologie, utilisation des ressources, virtualisation, temps de service Définitions de politiques d accès aux données et aux services 179 Testing-as-a-Service Test de systèmes/applications utilisant des services hébergés Systèmes locaux ou distants Applications Web Systèmes d information d entreprise 180 Philippe Lalevée 90

91 Infrastructure-as-a-Service Service de type «data center» Fourniture de ressources de calcul Serveurs physiques Systèmes d exploitation Accès à l ensemble des ressources de machines Regroupe SaaS, DaaS, PaaS Amazon EC2 181 SOA et Cloud Computing Le cloud intègre les technologies Virtualisation des ressources Interfaces standards «service» 182 Philippe Lalevée 91

Architectures web pour la gestion de données

Architectures web pour la gestion de données Architectures web pour la gestion de données Dan VODISLAV Université de Cergy-Pontoise Plan Le Web Intégration de données Architectures distribuées Page 2 Le Web Internet = réseau physique d'ordinateurs

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

Web Services. SLenoir@ugap.fr 17/01/2009

Web Services. SLenoir@ugap.fr 17/01/2009 Web Services SLenoir@ugap.fr 17/01/2009 1. Pourquoi les Web Services? 1.1. Historique des SI 1.2. Exigences actuelles 1.3. SOA 1.4. Mise en place de services 17/01/2008 Web Services 2 1.1. Historique des

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Intégration d'applications à gros grain Unité d'intégration : le service (interface + contrat) Motivations Motivations Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat) Contraintes Applications conçues indépendamment, sans avoir prévu une intégration

Plus en détail

Programmation d applications distribuées

Programmation d applications distribuées Programmation d applications distribuées François Charoy Université Henri Poincaré 8 octobre 2007 Première partie I Développement d applications distribuées Objectifs du cours Comprendre ce qu est une

Plus en détail

Architectures et Web

Architectures et Web Architectures et Web Niveaux d'abstraction d'une application En règle générale, une application est découpée en 3 niveaux d'abstraction : La couche présentation ou IHM (Interface Homme/Machine) gère les

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40 Services Web WSDL Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web WSDL p.1/40 Plan du cours WSDL 1. Présentation 2. Structure générale 3. Les types 4. Les messages

Plus en détail

Présentation générale des Web Services

Présentation générale des Web Services Présentation générale des Web Services Vue Globale Type d'architecture reposant sur les standards de l'internet Alternative aux architectures classiques : Client/serveur n/tiers Orientée services permettant

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 38 NFP111 Systèmes et Applications Réparties Cours 11 - Les Enterprise Java Beans (Introduction aux Enterprise Claude Duvallet Université du Havre UFR Sciences

Plus en détail

Qu'est-ce qu'un Web Service?

Qu'est-ce qu'un Web Service? WEB SERVICES Qu'est-ce qu'un Web Service? Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plate-forme et enveloppé dans une couche de standards dérivés

Plus en détail

Applications Réparties. Département Sciences Informatiques SI 4 ème année

Applications Réparties. Département Sciences Informatiques SI 4 ème année Applications Réparties Département Sciences Informatiques SI 4 ème année 1 Applications Réparties? Ensemble de processus (objets, agents, acteurs) qui: Communiquent entre eux via un réseau Evoluent de

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

Telecommunication Services Engineering (TSE) Lab

Telecommunication Services Engineering (TSE) Lab Chapitre 3: La toile Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ Application Couche Application Transport Réseau Liaison de données Support

Plus en détail

Technologies du Multimédia et du Web

Technologies du Multimédia et du Web 3 ème Année Licence appliquée Technologies du Multimédia et du Web MoezBEN HAJ HMIDA ISSAT Sousse 2009/2010 Plan Les systèmes e-services Évolution des architectures d applications Les architectures client/serveur

Plus en détail

Créer une architecture distribuée.net

Créer une architecture distribuée.net Ingénieurs 2000 Exposé Système & Réseaux 2006/2007 Créer une architecture distribuée.net Concepts et exemples 1. Présentation du Framework.NET 2. Créer et utiliser des services Web 3. Comment créer des

Plus en détail

Urbanisme du Système d Information et EAI

Urbanisme du Système d Information et EAI Urbanisme du Système d Information et EAI 1 Sommaire Les besoins des entreprises Élément de solution : l urbanisme EAI : des outils au service de l urbanisme 2 Les besoins des entreprises 3 Le constat

Plus en détail

Langages et technologies du Web 1

Langages et technologies du Web 1 Langages et technologies du Web 1 Manuel ATENCIA manuel.atencia-arcas@upmf-grenoble.fr Objectifs Comprendre le fonctionnement du World Wide Web Produire des documents web statiques et dynamiques 1 2 vocabulaire

Plus en détail

Conception d Applications Réparties

Conception d Applications Réparties Jean-François Roos LIFL - équipe GOAL- bâtiment M3 Extension - bureau 206 -Jean-Francois.Roos@lifl.fr 1 Objectifs du Cours Appréhender la conception d applications réparties motivations et concepts architectures

Plus en détail

Les architectures N-tiers

Les architectures N-tiers Les architectures N-tiers 1 SOMMAIRE DU COURS XML ET LES ARCHITECTURES N-TIER Introduction aux architectures N-tier Serveurs d applications Déploiement d applications J2EE Tiers applicatif : servlets Tiers

Plus en détail

Architectures web/bases de données

Architectures web/bases de données Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est

Plus en détail

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26 Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

Services Web. Plan du cours

Services Web. Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

SOA Services Web Etendus SOAP : Communiquer

SOA Services Web Etendus SOAP : Communiquer SOA Services Web Etendus SOAP : Communiquer Mickaël BARON 2010 (Rév. Janvier 2011) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr Licence Creative Commons Contrat Paternité Partage des Conditions

Plus en détail

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/ Services

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Programmation Web Avancée Introduction aux services Web

Programmation Web Avancée Introduction aux services Web 1/21 Programmation Web Avancée Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

Les nouvelles architectures des SI : Etat de l Art

Les nouvelles architectures des SI : Etat de l Art Les nouvelles architectures des SI : Etat de l Art Objectif Mesurer concrètement les apports des nouvelles applications SI. Être capable d'évaluer l'accroissement de la complexité des applications. Prendre

Plus en détail

Les serveurs d applications :une introduction

Les serveurs d applications :une introduction Les serveurs d applications : une introduction Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com Octobre 2006 Plan de la présentation

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 16 NFP111 Systèmes et Applications Réparties Cours 10 - Les Enterprise Java Beans ( aux serveurs ) Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz

Dr. Djamel Benmerzoug. Email : djamel.benmerzoug@univ-constantine2.dz Master 2 SITW Les services Web Dr. Djamel Benmerzoug Email : djamel.benmerzoug@univ-constantine2.dz Maitre de Conférences A, Département TLSI Faculté des NTIC Université Constantine 2 Abdelhamid Mehri

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Introduction aux systèmes répartis

Introduction aux systèmes répartis Introduction aux systèmes répartis Grappes de stations Applications réparties à grande échelle Systèmes multicalculateurs (1) Recherche de puissance par assemblage de calculateurs standard Liaison par

Plus en détail

WWW - Intérêts du Web

WWW - Intérêts du Web WWW - Intérêts du Web client universel facilité d'emploi standards ouverts intégration des autres services Internet extensibilité du système faibles coûts logiciel et réseau utilisation au sein d'une entreprise

Plus en détail

Les Services Web. Sana Sellami. sana.sellami@univ-amu.fr

Les Services Web. Sana Sellami. sana.sellami@univ-amu.fr Les Services Web Sana Sellami sana.sellami@univ-amu.fr 2015-2016 PLAN 1. Qu est ce qu un service Web? 2. Architecture des Services Web 3. Création et déploiement des Services Web SOAP en Java 4. Services

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

Business & High Technology

Business & High Technology UNIVERSITE DE TUNIS INSTITUT SUPERIEUR DE GESTION DE TUNIS Département : Informatique Business & High Technology Chapitre 3 : Le web dans l entreprise Sommaire Introduction... 1 Intranet... 1 Extranet...

Plus en détail

Java EE. Grégory Cuellar, Julien Goullon. 1 er octobre 2007. gregory.cuellar@bull.net. julien.goullon@9business.fr

Java EE. Grégory Cuellar, Julien Goullon. 1 er octobre 2007. gregory.cuellar@bull.net. julien.goullon@9business.fr Grégory Cuellar Julien Goullon gregory.cuellar@bull.net julien.goullon@9business.fr 1 er octobre 2007 1 Généralité 2 / 54 Pourquoi? Historique Les alternatives Les composants 2 Architecture n-tiers 3 JEE

Plus en détail

NFP111 Systèmes et Applications Réparties

NFP111 Systèmes et Applications Réparties NFP111 Systèmes et Applications Réparties 1 de 46 NFP111 Systèmes et Applications Réparties Cours 2 - Les appels de procédure distants (Partie 1) Claude Duvallet Université du Havre UFR Sciences et Techniques

Plus en détail

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 ARCHITECTURE REST & WEB SERVICES Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 1 Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 2 Introduction Présentation de Rest

Plus en détail

Cours de programmation web

Cours de programmation web Cours de programmation web ENSAE 2006-2007 Cours 1 - Introduction 1. Introduction 2. Le principe d Internet 3. Les langages du web 4. Le web 2.0 Introduction : Historique 1967 : Arpanet : réseau militaire

Plus en détail

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1 Urbanisation des SI Des composants technologiques disponibles Urbanisation des Systèmes d'information Henry Boccon Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus de données, ETL et EAI

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

Urbanisation des Systèmes d'information

Urbanisation des Systèmes d'information Urbanisation des Systèmes d'information Des composants technologiques disponibles Urbanisation des Systèmes d'information - Henry Boccon-Gibod 1 Plan de l'exposé Technologies à la mode disponibles. Bus

Plus en détail

Exécution des applications réparties

Exécution des applications réparties Exécution des applications réparties Programmation des Applications Réparties Olivier Flauzac URCA Master STIC-Informatique première année Olivier Flauzac (URCA) PAR : Exécution des applications réparties

Plus en détail

de survie du chef de projet

de survie du chef de projet KIT de survie du chef de projet 01 1 2 3 4 5 6 04 03 07 07 03 03 LE SERVEUR LE CLIENT TECHNOLOGIE WEB CLIENT LE SERVEUR WEB TECHNIQUES & CADRE DE TRAVAIL APPLICATIONS 101 LE SERVEUR Un serveur informatique

Plus en détail

Les Architectures Orientées Services (SOA)

Les Architectures Orientées Services (SOA) Les Architectures Orientées Services (SOA) Ulrich Duvent Guillaume Ansel Université du Littoral Côte d Opale 50, Rue Ferdinand Buisson BP 699 62228 Calais Cedex Téléphone (33) 03.21.46.36.92 Télécopie

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui Formation PARTIE 1 : ARCHITECTURE APPLICATIVE DUREE : 5 h Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui automatisent les fonctions Définir une architecture

Plus en détail

Java pour le Web. Cours Java - F. Michel

Java pour le Web. Cours Java - F. Michel Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications

Plus en détail

UFR Mathématique et Informatique SOAP. Pierre Gançarski. http://dpt-info.u-strasbg.fr/~gancars

UFR Mathématique et Informatique SOAP. Pierre Gançarski. http://dpt-info.u-strasbg.fr/~gancars SOAP http://dpt-info.u-strasbg.fr/~gancars Pierre Gançarski Architecture 3-tiers 1. Présentation Interface Homme-Machine Conversationnel, Transactionnel, Web-based 2. Partie métier Enchaînement des traitements

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Introduction ASP.NET

Introduction ASP.NET 1 Sommaire Introduction... 1 1 Framework... 2 1.1 Général (.NET)... 2 1.2 ASP.NET... 2 2 Prérequis... 2 3 Présentation des bases d un projet ASP.NET... 3 3.1 Création d un projet... 3 3.2 Site Web : Les

Plus en détail

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures Software propose une offre d intégration unique, qui apporte l équilibre parfait entre investissements et performances pour les entreprises qui doivent sans cesse améliorer leurs processus. Des caractéristiques

Plus en détail

Service Web (SOAP) Urbanisation des SI NFE107. Fiche de lecture Y. BELAID

Service Web (SOAP) Urbanisation des SI NFE107. Fiche de lecture Y. BELAID Service Web (SOAP) Urbanisation des SI NFE107 Fiche de lecture Y. BELAID Plan Définitions Web Service Terminologie Communication avec les Web Service REST XML-RPC SOAP Qu est ce qu un Web Service Un Web

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Web Services. Introduction à l aide d un exemple. Urs Richle

Web Services. Introduction à l aide d un exemple. Urs Richle Web Services Introduction à l aide d un exemple Urs Richle 7/12/2005 Problématique Requête Windows Mac Linux HTML XHTM CSS XML SVG XTM... ASP PHP Java Applet JSP Servlet... IIS Apache Tomcat... Data Oracle

Plus en détail

Le Web. Présentation du langage HTML et du protocole HTTP

Le Web. Présentation du langage HTML et du protocole HTTP Le Web Présentation du langage HTML et du protocole HTTP Une petite histoire du web 1989 1ère note relative au web «hypertexte et le CERN» au sujet du World Wide Web. 1991 premier serveur web sur l Internet,

Plus en détail

Environnements de Développement

Environnements de Développement Institut Supérieur des Etudes Technologiques de Mahdia Unité d Enseignement: Environnements de Développement BEN ABDELJELIL HASSINE Mouna m.bnaj@yahoo.fr Développement des systèmes d Information Syllabus

Plus en détail

J2EE. A.-E. Ben Salem. 09 Octobre 2011. LRDE and LIP6 1 / 15

J2EE. A.-E. Ben Salem. 09 Octobre 2011. LRDE and LIP6 1 / 15 J2EE A.-E. Ben Salem LRDE and LIP6 09 Octobre 2011 1 / 15 Plan 1 J2EE 2 Architecture Client/Serveur HTTP 3 Différence entre Web Statique et Web Dynamique 4 Web Dynamique avec un Serveur d applications

Plus en détail

Introduction aux systèmes à objets et services répartis

Introduction aux systèmes à objets et services répartis Introduction aux systèmes à objets et services répartis Frank Singhoff Bureau C-202 Université de Brest, France Lab-STICC UMR 3192 singhoff@univ-brest.fr UE systèmes à objets et services répartis, Université

Plus en détail

par Philippe Poulard Web services 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard

par Philippe Poulard Web services 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard 0 Philippe.Poulard@sophia.inria.fr Philippe Poulard Sommaire Qu est-ce? Middleware XML Web Services in situ Couches de services Architecture des Web Services avec Java JAX-RPC JAXR JAXM Outils 1 Présentation

Plus en détail

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C#

CHAPITRE 1. Introduction aux web services. 1.1 Définition. Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# CHAPITRE 1 Introduction aux web services Contenu du chapitre : Env. De dev. Langage Visual Studio Java EE Qt Creator C# NetBeans JavaScript Eclipse Objective C Xcode PHP HTML Objectifs du chapitre : Ce

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

Programmation Web. Thierry Hamon

Programmation Web. Thierry Hamon 1/27 Programmation Web Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

Architecture des systèmes d information

Architecture des systèmes d information Architecture des systèmes d information Table des matières 1 La décennie 70 1 2 Le modèle relationnel (les années 80) 1 3 Enrichissement du relationnel (les années 80/90) 2 4 Système d informations (les

Plus en détail

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs Jean-Pierre Meinadier Professeur du CNAM, meinadier@cnam.fr Révolution CS : l utilisateur

Plus en détail

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

XML, PMML, SOAP. Rapport. EPITA SCIA Promo 2004 16 janvier 2003. Julien Lemoine Alexandre Thibault Nicolas Wiest-Million XML, PMML, SOAP Rapport EPITA SCIA Promo 2004 16 janvier 2003 Julien Lemoine Alexandre Thibault Nicolas Wiest-Million i TABLE DES MATIÈRES Table des matières 1 XML 1 1.1 Présentation de XML.................................

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

Systèmes d'informations historique et mutations

Systèmes d'informations historique et mutations Systèmes d'informations historique et mutations Christophe Turbout SAIC-CERTIC Université de Caen Basse-Normandie Systèmes d'informations : Historique et mutations - Christophe Turbout SAIC-CERTIC UCBN

Plus en détail

Bertrand DAVID : Interaction Humain-Machine

Bertrand DAVID : Interaction Humain-Machine Interaction Humain-Machine Xml La transformation avec Xslt Les parseurs les outils pour Xml Transformation de documents dans les applications multimédia 1 XML extensible Markup Langage Un langage universel

Plus en détail

*4D, quand c est la solution qui compte. 4D démocratise les services Web

*4D, quand c est la solution qui compte. 4D démocratise les services Web *4D, quand c est la solution qui compte. 4D démocratise les services Web Table des matières I. INTRODUCTION page 3 II. VERS UNE DEFINITION DES SERVICES WEB 1. Qu est ce que c est? page 3 2. A quoi ça sert?

Plus en détail

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Epreuve écrite individuelle 8 Décembre 2008, durée 45 mns Aucun document autorisé => Finalement, autorisés et semble-t-il utiles!!...

Plus en détail

Développement Web Introduction générale

Développement Web Introduction générale 1 / 58 Développement Web Introduction générale Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer Juillet 2008 2 / 58 Plan Plan 1 Introduction 2 Historique et

Plus en détail

Intégration d'applications d'entreprise (INTA)

Intégration d'applications d'entreprise (INTA) Master 2 SITW - Recherche Intégration d'applications d'entreprise (INTA) Dr. Djamel Benmerzoug Email : djamel.benmerzoug@univ-constantine2.dz Maitre de Conférences A Département TLSI Faculté des NTIC Université

Plus en détail

18 TCP Les protocoles de domaines d applications

18 TCP Les protocoles de domaines d applications 18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles

Plus en détail

1. Une approche innovante, basée sur «l objet document» 2. Le respect des chaînes éditoriales de l entreprise

1. Une approche innovante, basée sur «l objet document» 2. Le respect des chaînes éditoriales de l entreprise Lucid e-globalizer, solution globale de gestion de contenu multilingue. Ce document a pour objectif de vous présenter Lucid e-globalizer, la solution de gestion de contenu multilingue de Lucid i.t., ses

Plus en détail

Conservatoire Nationale des Arts et Métiers

Conservatoire Nationale des Arts et Métiers Conservatoire Nationale des Arts et Métiers Centre d enseignements de Grenoble Année Universitaire: 2008-2009 SERVICE WEB SOAP Cours : NFE107 Urbanisation & Architecture des Systèmes d Information Auditeurs

Plus en détail

Petite définition : Présentation :

Petite définition : Présentation : Petite définition : Le Web 2.0 est une technologie qui permet la création de réseaux sociaux, de communautés, via divers produits (des sites communautaires, des blogs, des forums, des wiki ), qui vise

Plus en détail

Programmation du Web : Présentation du Web dynamique

Programmation du Web : Présentation du Web dynamique Programmation du Web : Présentation du Web dynamique Jean-Baptiste Vioix (Jean-Baptiste.Vioix@u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-8 Présentation Nécessité du web dynamique

Plus en détail

Programmation Internet. Mikael DAUTREY Janvier 2006 mikael.dautrey@isitix.com

Programmation Internet. Mikael DAUTREY Janvier 2006 mikael.dautrey@isitix.com Programmation Internet Mikael DAUTREY Janvier 2006 mikael.dautrey@isitix.com 1 Objectifs du module Acquérir des connaissances de base en programmation Internet Technologies Syntaxe des langages Modèles

Plus en détail

Figure 1-1. Plateformes compatibles avec WCF

Figure 1-1. Plateformes compatibles avec WCF 1 Bonjour Indigo Windows Communication Foundation (WCF), auparavant connu sous le nom de code «Indigo», est une nouvelle plateforme de messages distribués. Il fait partie du Framework.NET 3.0 livré avec

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Programmation servlet

Programmation servlet Programmation servlet Olivier Aubert 1/23 Références http://developer.java.sun.com/developer/onlinetraining/servlets/fundamenta http://www.servlets.com http://java.sun.com/products/jsp/index.html http://www.servletcentral.com/

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

JOnAS 5. Serveur d application d

JOnAS 5. Serveur d application d JOnAS 5 Serveur d application d dynamique Agenda En quelques mots Caractéristiques essentielles Zoom sur le versioning 2 Bull, 2008 Serveur d application dynamique JOnAS - Serveur d application Open Source

Plus en détail

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur

Java EE Cours 1. Présentation Générale. Cours de 2 e année ingénieur Java EE Cours 1 Présentation Générale Cours de 2 e année ingénieur 1 Présentation du cours Objectifs Développement d applications Web robustes «Ne pas réinventer la roue» utilisation d un framework 1 Apprentissage

Plus en détail

BPEL Orchestration de Web Services

BPEL Orchestration de Web Services Orchestration de Web Services Grégory Le Bonniec gregory.lebonniec@zenika.com 26 novembre 2009 1 Zenika Conseil / Développement / Formation Localisation : Paris et Rennes Nos partenaires Mon expérience

Plus en détail

Chapitre I : Protocoles client serveur et architectures distribuées

Chapitre I : Protocoles client serveur et architectures distribuées Licence Pro Réseaux Télécom Systèmes Internet et Intranet pour l entreprise Chapitre I : Protocoles client serveur et architectures distribuées Département IEM / UB Eric.Leclercq@u-bourgogne.fr Bureau

Plus en détail

Les Services Web. Jean-Pierre BORG EFORT http://www.efort.com

Les Services Web. Jean-Pierre BORG EFORT http://www.efort.com Les Services Web Jean-Pierre BORG EFORT http://www.efort.com 1 Introduction Un "Service Web" est une application logicielle à laquelle on peut accéder à distance à partir de différents langages basés sur

Plus en détail

Programmeur Java/XML

Programmeur Java/XML Renaud Fleury les Cahiers du Programmeur Java/XML Avec la contribution de Caroline de Vasson, de Frédéric Baudequin et Gaël Thomas Table des matières AVANT PROPOS...VII Quel est l objectif de cet ouvrage?

Plus en détail

Langages du Web. Que savez vous???

Langages du Web. Que savez vous??? Langages du Web Que savez vous??? Le WEB World Wide Web ouwww ouweb Toile d'araignée mondiale ou la toile Le Web utilise le réseau Internet pour relier des serveurs qui, grâce aux protocoles HTTP, HTTPS,

Plus en détail