SOA & BPM. Urbanisation d un Système d information universitaire RAPPORT DE PROJET DE FIN D ETUDES

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

Download "SOA & BPM. Urbanisation d un Système d information universitaire RAPPORT DE PROJET DE FIN D ETUDES"

Transcription

1 République Tunisienne Ministère de l Enseignement Supérieur, de la Recherche Scientifique et Technologie Direction Générale des Études Technologiques Institut Supérieur des Études Technologiques de Djerba Département Technologie de l Informatique RAPPORT DE PROJET DE FIN D ETUDES Urbanisation d un Système d information universitaire SOA & BPM Elaboré par : KARRAY WALID Encadré par : NAFAA FREAA Effectué à : Encadré par : FOURAT ZOUARI AHMED MASMOUDI Année Universitaire 2009/ Semestre 1 Référence Dép. TI AN/SE 2010/S01 CODE IRP05

2 ISET Djerba TriTux PAGE 1

3 Dédicaces A toute ma famille, à mes enseignants, à mes amis, et à mes camarades je dédie ce travail. ISET Djerba TriTux PAGE 2

4 Remerciement Je tiens à remercier chaleureusement Mr. Mounir Khalifa CEO de Tritux, Mr. Fourat Zouari et Mr. Ahmed Masmoudi, chefs de projets ainsi que toute l équipe de développement à Tritux. Mes forts remerciements à mon encadreur Mr. Nafaa Freaa ainsi que mes enseignants. Je remercie encore la communauté Ubuntu GNU/Linux, Canonical Ltd., la communauté PHP et Open ESB. et un aussi grand MERCI à la communauté Open Source! Walid Karray ISET Djerba TriTux PAGE 3

5 Table des matières Dédicaces... 2 Remerciement... 3 Table des matières... 4 Liste des illustrations Chapitre 1 : Introduction Introduction générale Entreprise d accueil Contexte et objectif du projet Chapitre 2 : Etat de l art Introduction au concept SOA Les services web Introduction Les différents types de services web Résumé Orchestration de Services web Introduction Exemple Le langage BPEL Résumé Résumé sur le concept SOA Introduction Phase 1 : Conception des Services Web Introduction Urbanisation du SI de l établissement Urbanisation du SI du RNU Conclusion Phase 2 : Processus métier et orchestration de services Introduction Conception du 1 er processus métier : ProcessRUById Conception du processus : BatchProcessRU Conclusion Chapitre 4 : Réalisation Installation & Configuration Serveur FTP : ftp-etu.intranet.demo ISET Djerba TriTux PAGE 4

6 Serveur CUPS : cups.intranet.demo Serveur de BD PostgreSQL : postgres-83.intranet.demo Serveur web d inscription en ligne : inscription.edu.demo Point d accès sans fil : ap-21. intranet.demo Serveur mail : (ws.rnu.edu.demo) Modem GSM connecté au serveur Lenny : debian5-02.intranet.demo PodBridge Installation de GlassFish ESB Installation des plugins SOA & BPEL pour NetBeans Réalisation des connecteurs Exemple de réalisation d un connecteur : pbftpaccountconnector Test du service web docreateftpuseraccount par l utilitaire SoapUI Réalisation des processus métiers - phase Test de ProcessRUById (Invocation du service composite) Test de BatchProcessRU (Invocation du service composite) Développement des applications Appel web-service SOAP en PHP Exemple d appel web-service SOAP en Perl (Suppression d un compte FTP) Appel web-service SOAP en JAVA SE Swing (Invocation du service Ping (test PodBridge)) Appel web-service SOAP en Shell (Invocation du service composite BatchProcessRU) Environnement de travail Matériel utilisé Logiciels utilisés : Perspective Liste des abréviations Bibliographie ISET Djerba TriTux PAGE 5

7 Liste des illustrations Figure 1 - Diagramme hiérarchique de l entreprise Figure 2 Requête / Réponse (SOA) Figure 3 L architecture SOA Figure 4 - Le modèle en couches de l architecture SOA Figure 5 Connexion à PostgreSQL en ligne de commande Figure 6 Premier extrait du document WSDL Figure 7 Deuxième extrait du document WSDL Figure 8 Message XML SOAP Requête Figure 9 Message XML SOAP - Réponse Figure 10 Exemple d un processus faisant appel à 4 services Figure 11 Eléments de BPEL (Architecture) Figure 12 Modélisation d un connecteur PodBridge1.2 (Cas général) Figure 13 - Table «etudiant» Figure 14 - Classe BDetu (Connecteur PodBridge de l établissement) Figure 15 Modélisation de la logique métier (Connecteur BDetu) Figure 16 - Classe FTPAccount (Connecteur PodBridge de l établissement) Figure 17 - Modélisation de la logique métier (Connecteur FTPAccount) Figure 18 Classe APACLManager (Connecteur PodBridge de l établissement) Figure 19 - Modélisation de la logique métier (Connecteur APACLManager) Figure 20 Classe IPPService (Connecteur PodBridge de l établissement) Figure 21 - Modélisation de la logique métier (Connecteur IPPService) Figure 22 Classe wwwsubscr (Connecteur PodBridge de l établissement) Figure 23 - Modélisation de la logique métier (Connecteur wwwsubscr) Figure 24 Classe SMSService (Connecteur PodBridge de l établissement) Figure 25 - Modélisation de la logique métier (Connecteur SMSService) Figure 26 Classe MailAccount (Connecteur PodBridge 1.2) Figure 27 - Modélisation de la logique métier (Connecteur MailAccount) Figure 28 Connecteurs PodBridge (de l établissement) Figure 29 - Connecteur PodBridge (du RNU) Figure 30 - diagramme d'activité «ProcessRUById» Figure 31 - diagramme d'activité «BatchProcessRU» Figure 32 - Arborescence du projet PodBridge - Netbeans IDE Figure 33 1 ère phase de l urbanisation des deux réseaux (Services Web) Figure 34 Déploiement de ProcessRUById et BatchProcessRU Figure 35 - SI après urbanisation Figure 36 - Architecture de PodBridge ISET Djerba TriTux PAGE 6

8 Ce document représente le rapport de projet de fin d étude effectué par l étudiant au 5ème niveau informatique réseaux Walid Karray, de l Institut Supérieur des Etudes Technologiques de Djerba, au sein de l entreprise Tritux, pendant la période Septembre Janvier Adresse électronique: ISET Djerba TriTux PAGE 7

9 Chapitre 1 : Introduction 1. Chapitre 1 : Introduction 1.1. Introduction générale Des systèmes informatiques qui sont réunis pour exécuter une tâche, peuvent tous êtres considérés comme étant un seul système, toute cette force peut être due à un échange d une faible quantité d informations entre les différents systèmes. On peut déduire ainsi que ces systèmes sont dépendantes les unes des autres, et si à un moment donné deux systèmes parmi l ensemble n arrivent pas à s échanger d informations, ça engendrera alors le dysfonctionnement de la totalité du système. Malheureusement, à chaque fois qu on se lance à la conception d une application composite on découvre toujours des problèmes d intégration avec des systèmes qui à la base ne sont pas pensées pour fonctionner ensemble utilisant des technologies différentes et des protocoles propriétaires. Pour remédier à ce genre de problèmes on utilise souvent des logiciels intermédiaires appelées (intergiciels), le plus souvent appelé middlewares (en anglais) qui servent d intermédiaire de communication entre plusieurs applications, généralement complexes ou distribuées sur un réseau informatique Entreprise d accueil Tritux, SARL 1 est une SSII 2 Tunisienne née par le regroupement, au sein d'un réseau professionnel, des compétences provenant de divers horizons et partageant la même conviction : que les nouvelles technologies de l'information et de la communication (NTIC) basées sur les logiciels libres, constitueront le choix fondamental face aux exigences de la société future, société de l'information. Dynamique, rapide et accompagnant les changements et bouleversements induits par l'émergence de nouvelles techniques et des nouveaux besoins des usagers, Tritux a repensé 1 Société Anonyme à Responsabilité Limitée 2 Société de service et d ingénierie de l informatique ISET Djerba TriTux PAGE 8

10 Chapitre 1 : Introduction l'approche des activités liées aux NTIC par l'adaptation du choix "Open Source " garantissant la sécurité, fiabilité, flexibilité, et surtout, une évolution quotidienne vers le top de la technologie. Les domaines d activités de Tritux s étendent sur plusieurs disciplines à savoir : - Bases de données libres, - Logiciels libres, - Développement de solutions avec des outils/ressources libres, - Annuaires LDAP 3, - Messageries mail, - Messageries courtes (SMS 4 ) et Multimédia (MMS 5 ), - Systèmes GNU 6 Linux, - Supervision et monitoring, - Réseaux complexes, - Sécurité et optimisation, - Références de Tritux: - Tunisie Telecom, - Assurances BIAT, - Mobile Services, - Nouvelair, - Alva, 3 Lightweight Directory Access Protocol 4 Short Message Service 5 Multimedia Messaging Service 6 Gnu s Not Unix ISET Djerba TriTux PAGE 9

11 Chapitre 1 : Introduction - Sameteam, - PixelJ, - Attijari Bank, - Groupe Délice Tunisie, - Diagramme hiérarchique de l entreprise: Figure 1 - Diagramme hiérarchique de l entreprise CEO : Acronyme anglais pour «Chief Executive Officer», en français le chef de direction et tient le rang le plus élevé dans la hiérarchie de l entreprise son rôle est de superviser tout les projets en cours de développement et leurs état d avancement, maintenir le contact avec les clients, en contact avec les chefs de projet, le recrutement etc.. Les chefs de projets : Les chefs de projets sont chargées de guider les équipes de développements et de mener les projets et de contrôler leur bon déroulement. Secrétaire : Elle s'occupe pour les comptes, des communications téléphoniques, de la rédaction des comptes rendus de réunions, etc.. ISET Djerba TriTux PAGE 10

12 Chapitre 1 : Introduction Service Technique : Sa fonction et de bien veiller sur le bon fonctionnement du réseau local de l entreprise ainsi ses différents équipements, installer et mettre à jour les logiciels, achat de nouveau matériel et la réparation des équipements informatiques en cas de panne. Equipe de développement : Représente la force motrice de l entreprise, l équipe est constituée d une dizaine de développeurs et d ingénieurs qualifiés pour exécuter des tâches sous la responsabilité des chefs de projets. Chargé de la documentation : C est une personne chargé de la rédaction et la mise à jour des documents techniques et des manuels d utilisation pour les produits réalisés Contexte et objectif du projet Notre projet de fin d étude consiste à urbaniser un SI (Système d Information) universitaire. Il est noté que les différents systèmes informatiques visés du SI universitaire, les différentes procédures d urbanisation ainsi que les applications réalisées dans ce projet ont été virtualisés dans un environnement local. La quasi-totalité des établissements d enseignement supérieurs en Tunisie disposent de systèmes informatiques hétérogènes (matériel et applicatif) déjà performants pour répondre à des besoins très élémentaires, tel que: - L SGBD permet la gestion des informations sur chaque étudiant, - le point d accès sans fil permet l accès au réseau, - le serveur FTP 7 permet l hébergement de comptes pour les étudiants, - le serveur d impression permet d envoyer un ordre d impression à une imprimante distante partagée, - le site web d inscription en ligne permet de consulter les reçus de payements de chaque étudiant, - le serveur Mail permet d envoyer un message à un groupe d étudiants, 7 File Transfer Protocol ISET Djerba TriTux PAGE 11

13 Chapitre 1 : Introduction - et encore plus Existe-il un système informatique aussi performent qui peut répondre à plusieurs besoins à la foi? Comme par exemple, un système pouvant à partir des informations stockés sur chaque étudiant de gérer automatiquement leurs comptes FTP, leurs comptes Mail, leurs accès au réseau sans fil, les notifiés par SMS, leurs envoyer les calendriers et des documents numériques, etc... Par les moyens présents, si un établissement pense à offrir ces différents services à ses quelques milliers d étudiant, il faudra compter des semaines de travails pour arriver à un résultat presque satisfaisant! Certainement que l informatisation (automatisation) des différentes procédures cités précédemment est sans aucun doute quelque chose d indispensable ; il faudra donc un système qui à la foi capable de gérer les différentes ressources et de coordonner l échange d informations d une façon autonome entre les différents systèmes informatiques qu on dispose. Mais avant de penser à une solution on se pose ces deux questions : - Comment des systèmes de technologies et de protocoles de communications différents puissent s interagir? - Par quel moyen sera assuré l échange de flux d information entre les différents systèmes? C est pour cette raison que le concept SOA 8 et le BPM 9 sont les choix les plus appropriés pour résoudre notre problématique. Pour pouvoir répondre à cette problématique l étude conceptuelle de ce projet va être divisé sur deux phases : 1) La première phase consiste à l exposition d un protocole de communication ouvert (unifié) pour chacun des systèmes à travers un middleware. (migration aux services web) 8 Service Oriented Architecure 9 Business Process Management ISET Djerba TriTux PAGE 12

14 Chapitre 1 : Introduction 2) La deuxième phase consiste à la conception des processus métier à travers un workflow / orchestration 10 de services web 10 Processus de coordination d'un échange d'information à travers l'interaction de services web. «Source Wikipedia ISET Djerba TriTux PAGE 13

15 Chapitre 2 : Etat de l art 2. Chapitre 2 : Etat de l art 2.1. Introduction au concept SOA L architecture orientée services AOS, ou plus souvent appelé SOA acronyme anglais pour «Services Oriented Architecture» est un moyen d interaction applicatif qui met en œuvres une collection de services (des composant logiciels) qui peuvent être exécutés sur n importe quelle plateforme. Par définition un service est une tâche exécuté par un individu (un fournisseur) à l attention d un autre individu (un consommateur), le principe est le même dans le jargon informatique. Demandeur / Consommateur de service Message Demande Réponse Message Fournisseur / Prestataire de service Figure 2 Requête / Réponse (SOA) Par analogie avec le concept objet, un service ressemble beaucoup à une méthode d une classe, il permet de recevoir des données et de renvoyer le résultat. Disposant plus d avantages qu une méthode un service est distingué par le fait qu il peut être invoqué à distance et par n importe quelle plateforme. Au terme d interopérabilité, l architecture SOA repose sur des normes décrites à travers WS-I 11. Un service peut être une activité (suite d appels à d autres services), appelé autrement service de large granularité ou service composite. 11 Un consortium industriel initié pour la promotion de l interopérabilité entre plateformes par la rédaction des spécifications des Services Web WS-* ISET Djerba TriTux PAGE 14

16 Chapitre 2 : Etat de l art La figure de ci-dessous décrit l architecture SOA d une façon globale: Architecture SOA Service X Service W Demandeur 2 Service Y Demandeur 1 Service Z Service U Service composite Service V Orchestration Figure 3 L architecture SOA Un service est l unité atomique de l architecture SOA L architecture SOA est représentée par un modèle en couches, voir la figure de cidessous. ISET Djerba TriTux PAGE 15

17 Chapitre 2 : Etat de l art Présentation Consommateur Application Application Web Terminal Appareil Mobile 5 Orchestration WORKFLOW BPEL, BPM 4 Services Services Services web 3 Composants, Méthodes Méthodes de classes bibliothèques,drivers... Func () { ---- Func () { } --- } Func () { ---- Func () { } --- } 2 Systèmes & Ressources Serveurs, Bases de données.. DB DB I0II0I0I0I0 II0III00I0I I0II0I0I0I0 0I0III0I0I0 II0III00I0I I0I0I0 0I0III0I0I0 I0I0I0 1 Figure 4 - Le modèle en couches de l architecture SOA Couche 1 (Les systèmes et les ressources): Englobe des systèmes informatiques (logiciels et matériels) hétérogènes et différentes types de ressources telle que les bases de données et des fichiers. Couche 2 (Composants et méthodes) : Représente des méthodes (fonctions) qui tiennent la logique métier, ainsi que les composants d applications qui sont utilisés pour dialoguer avec différents systèmes et ressources. Couche 3 (Services) : C est à ce niveau que la logique métier est devenu caché à l utilisateur ainsi que le dialogue avec les différentes systèmes et ressources est devenu au moyen d un protocole ouvert (standard). Couche 4 (Orchestration): Vient juste au dessus de la couche services, l orchestration de services est définit par l interaction et l échange des flux d information métier entre plusieurs services d une façon autonome. Couche 5 (Présentation): Elle représente l interface par laquelle les utilisateurs finaux (consommateurs de services) peuvent consumer les différents services et interagir indirectement avec les différents systèmes existant. ISET Djerba TriTux PAGE 16

18 Chapitre 2 : Etat de l art 2.2. Les services web Introduction Les services web représentent un ensemble de fonctionnalités distribués sur intranet ou internet qui peuvent être exécutés à distance à travers les protocoles d internet tel que HTTP 12 /HTTPS 13 et SMTP Les différents types de services web Il existe différents types de services web : XML-RPC XML-RPC est un protocole RPC (Remote procedure call), une spécification simple et un ensemble de codes qui permettent à des processus s'exécutant dans des environnements différents de faire des appels de méthodes à travers un réseau. Les processus d'invocation à distance utilisent le protocole HTTP pour le transport des données et la norme XML 15 pour le codage des données. XML-RPC est conçu pour permettre à des structures de données complexes d'être transmises, exécutées et renvoyées très facilement. Voici un exemple d une requête/réponse XML-RPC : Requête XML-RPC : POST /xmlrpc HTTP 1.0 User-Agent: myxmlrpcclient/1.0 Host: Content-Type: text/xml Content-Length: 169 <?xml version="1.0"?> <methodcall> 12 HyperText Transfer Protocol 13 HTTP Secure 14 Simple Mail Transfer Protocol 15 Extensible Markup Language ISET Djerba TriTux PAGE 17

19 Chapitre 2 : Etat de l art <methodname>calculesurfacecercle</methodname> <params> <param> <value><double>2.41</double></value> </param> </params> </methodcall> Réponse XML-RPC : HTTP/ OK Date: Sat, 02 Jan :20:04 GMT Server: Apache (Unix) Connection: close Content-Type: text/xml Content-Length: 124 <?xml version="1.0"?> <methodresponse> <params> <param> <value><double> </double></value> </param> </params> </methodresponse> Réponse fault (Erreur) XML-RPC : <?xml version="1.0"?> <methodresponse> <fault> <value><string>no such method!</string></value> </fault> </methodresponse> Les services web SOAP Les services web de type SOAP 16 se basent aussi sur l échange de messages XML et se reposent sur le standard SOAP pour l échange de message et WSDL 17 pour décrire les services web. Structure d un document WSDL : 16 Simple Object Access Protocol 17 Web Services Description Language ISET Djerba TriTux PAGE 18

20 Chapitre 2 : Etat de l art Un document WSDL (basé sur XML) permet la description d un service, il décrit les paramètres d entrés du service et le format et le type des données retournées. Voici quelques éléments d un document WSDL : - porttype : définissant le service web, en particulier les opérations qu il réalise et le type de messages échangés. - message : comprend une ou plusieurs parties représentant les paramètres d entrés. - types : définissant les types de données utilisés par le service web. - binding : précisant le protocole utilisé et le format de message Un exemple de service web (type SOAP) : L exemple qui suit démontre comment il est possible de récupérer des informations depuis une base de données PostgreSQL à travers un service web SOAP via le protocole HTTP. Avant de passer au service web, la figure de ci-dessous explique les différentes procédures à effectuer au moyen d un client PostgreSQL pour récupérer les informations sur un étudiant donné par son identifiant (id). ISET Djerba TriTux PAGE 19

21 Chapitre 2 : Etat de l art Figure 5 Connexion à PostgreSQL en ligne de commande Les inconvénients : - Il faut avoir une idée sur les structures des différentes tables pour pouvoir exécuter des requêtes, - Il faut savoir utiliser les différentes fonctionnalités fournis par le client de PostgreSQL, - Cette opération ne peut être exécutée que depuis le réseau de l établissement tant que le port 5432 n est pas autorisé depuis l extérieur, - Lors de développement d une application, le langage de programmation à utiliser doit supporter une extension qui lui permet de se connecter au serveur PostgreSQL. - Le développeur de l application doit obligatoirement maitriser le langage SQL ainsi les syntaxes spécifiques pour PostgreSQL. ISET Djerba TriTux PAGE 20

22 Chapitre 2 : Etat de l art - Communiquer des informations sur l SGBD tel que son adresse IP, le port qu il utilise, nom des tables peuvent aider les pirates pour accéder illégalement aux données confidentielles. Maintenant, si on reprend le même exemple, mais cette fois en se basant sur les services web SOAP. (Après une procédure d urbanisation) On suppose que les informations suivantes sont déjà communiquées : - La clé d authentification (Key): f54b5 (Doit être passé en paramètres à chaque invocation d un service, permettant de sécurisé l accès au service ainsi d identification de son consommateur) - L emplacement/adresse (URL) du document WSDL qui sert à décrire le service getstudentbyid : / f54b5/getStudentById Les deux figures suivantes représentent des extraits du même document WSDL décrivant le service getstudentbyid : ISET Djerba TriTux PAGE 21

23 Chapitre 2 : Etat de l art Figure 6 Premier extrait du document WSDL Figure 7 Deuxième extrait du document WSDL Grâce au document WSDL on a pu : - Identifier les paramètres nécessaires ainsi que leurs types pour pouvoir générer le message XML SOAP (requête) approprié pour notre service. - Savoir d avance la structure du message de retour XML SOAP (réponse). - Identifier l emplacement (URL) du service web. ISET Djerba TriTux PAGE 22

24 Chapitre 2 : Etat de l art Invoquer un service web SOAP est le faite d envoyer à travers HTTP-POST un message au format XML (Requête) à l adresse URL (SOAP Address) indiquée dans le document WSDL. Requête (Message XML SOAP envoyé par le client): Figure 8 Message XML SOAP Requête Réponse (Message XML SOAP Renvoyé par le serveur): Figure 9 Message XML SOAP - Réponse Les avantages : - Consulter la BD sans la moindre requête SQL, ISET Djerba TriTux PAGE 23

25 Chapitre 2 : Etat de l art - la logique métier est caché à l utilisateur (procédures d authentification au SGBD, les différentes requêtes ) - aucune information n est communiquée sur le serveur de base de données (Type, IP, Port, nom des tables, utilisateur...), - l invocation du service est sécurisée par une clé (key) d authentification, - grâce au WSDL, on connait les différents paramètres, les variables, les types du service. - tout les services web peuvent êtres consumer/tester par le même client. - Le port 80 est toujours ouvert parce qu'il est employé par le protocole HTTP utilisé par les navigateurs Web, donc l invocation d un service web peut être possible de n importe quel emplacement et par n importe quel plateforme. - La quasi-totalité des langages de programmation supportent des bibliothèques ou des extensions lui permettant d invoquer les services web SOAP ou d envoyer des requêtes HTTP-Post Résumé On peut dire que les services web : - communiquent en utilisant des protocoles ouverts, - sont souvent réutilisables, - sont des composants d'application, - sont autonomes et auto-descriptif, - peuvent être utilisés par d'autres applications, - se basent sur XML. ISET Djerba TriTux PAGE 24

26 Chapitre 2 : Etat de l art 2.3. Orchestration de Services web Introduction Dans le concept SOA, l orchestration s explique par un enchainement d invocation de services web de fines granularités obéissant à un chef d orchestre : WS-BPEL 18 est un langage d orchestration de services web. Dans un service composite les services web sont reliés à travers des standards (Messages XML). Ces standards assurent le découplage, c est-à-dire la réduction des dépendances ; (Couplage faible) Exemple Dans cet exemple, on se propose de réaliser un processus pour une gamme d appareils mobile, qui renseigne son utilisateur sur les salons de thé les plus proches en les indiquant sur la carte de Google Maps. Notre process aura besoin de faire appel à 4 services partenaires (correspondent aux rectangles colorés en verts dans le diagramme qui suit). Voici une description sur le rôle de chacun de ces services : 1) Service embarqué: Un service embarqué dans l appareil mobile, à son invocation, il renvoi toutes les informations confidentielles à propos son utilisateur (profil utilisateur) tel que son nom, prénom, numéro de sa carte crédit, code. 2) Internet Banking Web Service : Service web fournit par la banque de l utilisateur de l appareil qui lui permet de consulter son solde en tout sécurité. 3) GSM Tracking Web Servie : Service web de géolocalisation fournit par l opérateur de téléphonie mobile. Il permet de renvoyer la longitude et la latitude de l emplacement de l appareil. 18 (Business Process Execution Language) ISET Djerba TriTux PAGE 25

27 Chapitre 2 : Etat de l art 4) Google maps API : Service web fournit par Google permettant de renvoyer des informations (tel que : sa nature, son nom, longitude, latitude ) sur les endroits qui entourent un point donné par sa longitude et latitude. ISET Djerba TriTux PAGE 26

28 Chapitre 2 : Etat de l art Services partenaire (Google Maps API) Service partenaire (GSM Tracking) L'appareil Mobile Service partenaire (Internet Banking Service) {Donnée: Rayon (real) min=0.1 max=10.0} Saisir le rayon (zone de recherche - Valeur en km) Entrée: (Aucun) Sortie: - SN (Subscriber number) (number) - numéro de compte (number) Entrée: - Cherche (string) = "Salon de thé" - Rayon en KM (real) - Longitude (string) - Lattitude (string) Entrée: - SN (Subscriber Number) (number) Sortie: - Logitude (string) - Lattitude (string) HTTPS (SSL) Quel est son numéro de tel et le numéro de sa carte de crédit? Saisir code confidentiel Sortie: Quel est mon solde? - Nombre (integer) - Liste des salons de thé (string XML) [Solde >= 10 Dinars] [Solde < 10 Dinars] Quelle est ma géoposition (longitude & latitude) Afficher message «Ce n est pas le moment pour aller au salon de thé!!!» Enrée: - numéro de compte (number) - code (string) Quelles sont les espaces qui m entourent? Sortie: - Solde (real) [Nombre = 0] [Nombre > 0] Afficher message «Désolé! Aucun salon de thé trouvé dans votre position.» Indiquer les salons de thé sur la carte. Figure 10 Exemple d un processus faisant appel à 4 services ISET Djerba TriTux PAGE 27

29 Chapitre 2 : Etat de l art En examinant le diagramme précédent on constate que les différents services dépendent les uns des autres. La longitude et la latitude renvoyées par le service de géolocalisation fournis par l opérateur ont étés utilisées dans les paramètres d entrées du service Google Maps Le langage BPEL BPEL est l acronyme de «Business Process Execution Language», qui est un langage de programmation destiné à l exécution des procédures d entreprises. BPEL4WS «Business Process Execution Language For Web Services», devenu WS- BPEL est un standard de l orchestration de services web. Ce langage a été défini dans sa version 2.0 par une spécification du consortium OASIS 19 en BPEL : Architecture Les trois principaux éléments de BPEL sont : - Editeur graphique BPEL (BPEL Designer) : Outil permettant la génération du code BPEL à travers une interface graphique. - Process flow template : code source (BPEL) du processus métier générer par l éditeur graphique BPEL. - Moteur BPEL (BPEL Engine) : Le moteur BPEL agissant comme une machine virtuelle, permet l exécution du code BPEL (ça inclus l invocation des servies web, le mapping de donnés, les transactions, la sécurité, et encore plus ) 19 Organization for the Advancement of Structured Information ISET Djerba TriTux PAGE 28

30 Chapitre 2 : Etat de l art Business Expert End User / Application Design Time Run Time BPEL Designer Generates Process flow template Executes BPEL Engine Figure Eléments de BPEL (Architecture) Fichier BPEL : C est un fichier dont le contenu est basé sur XML et qui porte dans la plus part des cas l extension (.bpel), qui représente le code source de l application qui va constituer le processus décrivant la logique des actions à exécuter par le moteur d orchestration. Le code BPEL (syntaxe) : BPEL est un langage d orchestration de services web basé sur langage XML, comme n importe quel langage de programmation il possède un vocabulaire propre à lui. - La balise <process> : Représente l élément racine du document BPEL, dans la quel se trouve la description du processus. Par exemple l attribut name pour donner un nom au processus. <process name="processrubyid" targetnamespace="http://enterprise.netbeans.org/bpel/processrubyid/processrubyid" [ ] xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:xsd="http://www.w3.org/2001/xmlschema" - La balise <import> : Permet d importer un fichier WSDL 20 Figure - Référence: Introduction-to-BPEL.htm ISET Djerba TriTux PAGE 29

31 Chapitre 2 : Etat de l art <import namespace="urn:tns" location="services_rnu.wsdl" importtype="http://schemas.xmlsoap.org/wsdl/"/> BPEL. - La balise <partenerlinks> : Permet de lier des actions définies dans le fichier WSDL (via partnerlinktype) au process <partnerlinks> [ ] <partnerlink name="pbserviceslocalpl" xmlns:tns="http://enterprise.netbeans.org/bpel/serviceswrapper" partnerlinktype="tns:podbridgelinktype" partnerrole="podbridgerole"/> [ ] </partnerlinks> - La balise <variables> : Permet de définir les variables utilisées par le processus. <variable name="key" type="xsd:string"/> - La balise <sequence> : Pour réunir une suite d actions à exécuter dans le processus. <sequence name="main_seq"> [Actions] </ sequence> - La balise <receive> : Permet de recevoir un signal de l extérieur d un processus, ce qui permettra d instancier le processus, ou d attendre qu un événement se termine avant de continuer le processus. <receive name="receive" createinstance="yes" partnerlink="processrubyidpl" operation="processrubyidoperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/processrubyid/processrubyid" porttype="tns:processrubyidporttype" variable="processrubyidoperationin"/> - La balise <reply> : Permet de renvoyer une réponse à un partnerlink qui en attend une. <reply name="reply" partnerlink="processrubyidpl" operation="processrubyidoperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/processrubyid/processrubyid" porttype="tns:processrubyidporttype" variable="processrubyidoperationout"/> ISET Djerba TriTux PAGE 30

32 Chapitre 2 : Etat de l art - La balise <invoke> : Permet d appeler un service web. <invoke name="create_ftp" partnerlink="pbserviceslocalpl" operation="docreateftpuseraccount" porttype="pbns:podbridgeporttype" inputvariable="docreateftpuseraccountin" outputvariable="docreateftpuseraccountout"/> - La balise <if> : Condition <if name="ifhastel"> <condition>$getstudentbyidout.body/ns1:response/ns1:tel!= ''</condition> </if> [ ] - La balise <flow> : Permet l exécution en parallèle de plusieurs actions. <flow name="flow1"> [ ] </flow> - La balise <foreach> : <foreach name="foreach1" parallel="no" countername="foreach1counter"> <startcountervalue>0</startcountervalue> <finalcountervalue>$variable</finalcountervalue> [ ] </ foreach > - La balise <while> : <while name="while1"> <condition>$variable!= true()</condition> [ ] </while> - La balise <repeatuntil> : <repeatuntil name="repeatuntil1"> [ ] <condition>$getnextidout.body/ns0:response/ns0:last = true()</condition> </repeatuntil> ISET Djerba TriTux PAGE 31

33 Chapitre 2 : Etat de l art Résumé Avantages de BPEL - Séparer le logique processus de la logique application, - Possibilité de changer le processus sans impact sur les applications, - Agilité de l entreprise ou l organisme, - Présenter le processus comme un service, - Portable : supporté par plusieurs serveurs (moteurs BPEL), - Basé sur XML, - Supporte plusieurs fonctionnalités tel que (Exécution asynchrone, fonction XSLT 21, exécution en parallèle, validation, exceptions ). 21 extensible Stylesheet Language Transformation ISET Djerba TriTux PAGE 32

34 Chapitre 2 : Etat de l art 2.4. Résumé sur le concept SOA Les avantages : - Se base sur des standards (Exemple : SOAP/WSDL pour les services web et BPEL pour orchestration) - interopérabilité : ne différencie pas les plateformes (matérielles et logicielles), - une réutilisabilité possible de services, - améliore la rapidité ainsi que la productivité des développements, - une modularité permettant de remplacer facilement un service par un autre, - de meilleures possibilités d évolution, - une plus grande tolérance aux pannes, - une maintenance facilitée. Les inconvénients : - Le temps de réponse est plus long en le comparant avec le temps de réponse du système final, cet alourdissement est à l origine du protocole utilisé et du système d intermédiation (middlewares) : analyse des messages, ordonnancement, le Framework, sécurité, logging, - Si le niveau de granularité d un service augmente, le temps de réponse lui aussi augmente. - La sécurité dépends de l infrastructure elle-même ; les logiciels d intermédiation, les équipements de routage, les protocoles utilisés (pour le cas des services web, il est conseiller d utiliser HTTPS) ISET Djerba TriTux PAGE 33

35 Introduction Maîtriser des langages de programmation orientée objet tel que PHP, C++ ou Java est aujourd hui quelque chose fondamentale pour la réalisation des applications complexes, en plus grâce à la programmation objet, on apprendra à savoir décomposés les grands problèmes en des sous-problèmes, et par suite ça permet à des équipes indépendantes de les résoudre aisément. Malgré ça une question qui se pose toujours : comment va-t-on présenter notre application à des individus ne maitrisant pas le langage par lequel a été développé? Pour cela, il nous faut : 1) un langage (pour s'exprimer clairement à l'aide des concepts objets), qui doit permettre de : - représenter des concepts abstraits (graphiquement par exemple), - limiter les ambiguïtés (parler un langage commun, au vocabulaire précis, indépendant des langages orientés objet), - faciliter l'analyse (simplifier la comparaison et l'évaluation de solutions). 2) une démarche d'analyse et de conception objet, pour : - ne pas effectuer une analyse fonctionnelle et se contenter d'une implémentation objet, mais penser objet dès le départ, - définir les vues qui permettent de décrire tous les aspects d'un système avec des concepts objets. UML est notre choix! UML est avant tout un support de communication performant, qui facilite la représentation et la compréhension de solutions objet : - Sa notation graphique permet d'exprimer visuellement une solution objet, ce qui facilite la comparaison et l'évaluation de solutions. ISET Djerba TriTux PAGE 34

36 - L'aspect formel de sa notation, limite les ambiguïtés et les incompréhensions. - Son indépendance par rapport aux langages de programmation, aux domaines d'application et aux processus, en font un langage universel. Comme UML n'impose pas de méthode de travail particulière, il peut être intégré à n'importe quel processus de développement logiciel de manière transparente. UML est une sorte de boîte à outils, qui permet d'améliorer progressivement nos méthodes de travail, tout en préservant nos modes de fonctionnement. Intégrer UML par étapes dans un processus, de manière pragmatique, est tout à fait possible. La faculté d'uml de se fondre dans le processus courant, tout en véhiculant une démarche méthodologique, facilite son intégration et limite de nombreux risques (rejet des utilisateurs, coûts...) Phase 1 : Conception des Services Web Introduction Cette première phase de l étude conceptuelle s intéresse au 3 premiers couches du Concept SOA. Dans notre étude on s intéressera à la modélisation des connecteurs PodBridge 1.2, à travers lesquels on va intégrer les différentes systèmes et protocoles présents. Ces connecteurs servent d'interface entre le middleware (PodBridge) et les différents systèmes applicatifs présents. Les connecteurs de PodBridge sont des classes qui dérivent tous de la même classe mère PodBridgeConnector et qui implémentent l interface PodBridgeConnectorInterface. ISET Djerba TriTux PAGE 35

37 «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer NOM_DU_CONNECTEUR Figure 12 Modélisation d un connecteur PodBridge1.2 (Cas général) Les différents systèmes et ressources visés par notre projet sont répartis sur deux réseaux géographiquement distants, le premier est un réseau local d un établissement d'enseignement supérieur et l autre est celui du Réseau National Universitaire (RNU). Les systèmes informatiques visés de l établissement supérieur: 1) Le serveur de base de données dans lequel sont centralisées les informations sur chaque étudiant. 2) Le serveur FTP dédié aux étudiants du département informatique. Chaque étudiant à le droit d avoir un seul compte dans le quel il peut stocker ses documents, comme il peut ainsi s en servir même de chez lui. ISET Djerba TriTux PAGE 36

38 3) Le point d accès sans fil du département informatique qui permet une connexion sans fil au réseau local de l établissement et à internet, la connexion est sécurisé grâce au filtrage MAC ainsi par une clé. 4) Une imprimante partagée sur le réseau de l établissement. 5) Un Modem GSM permettant l envoi des SMS en masse. Les systèmes informatiques visés du RNU: 1) Le serveur web d inscription universitaire «inscription.edu.demo». 2) Le serveur mail «rnu.edu.demo» pour héberger les comptes de messageries électronique des étudiants et des enseignants Urbanisation du SI de l établissement Le serveur de base de données PostgreSQL Dans ce projet, on a supposé que toutes les informations sur les étudiants sont stockées dans une seule table appelée «etudiant». Description de la table «etudiant» : etudiant id : character varying(8) <<PK>> nom : character varying(25) prenom : character varying(25) dep : character varying(5) spec : character varying(5) niveau : integer tel : character varying(8) character varying(255) loginftp : character varying(255) adrmac : character varying(17) refrecu : character varying(16) process : character varying(3) Figure 13 - Table «etudiant» ISET Djerba TriTux PAGE 37

39 Description des attributs : Champ id nom prenom dep spec niveau Tel loginftp adrmac refrecu process Identifiant de l étudiant Nom de l étudiant. Prénom de l étudiant. Code de département Code de spécialité Niveau Description Numéro de téléphone personnel (GSM). Adresse . Login du compte FTP sur le réseau de l institut. Adresse MAC de l interface réseau sans fil de l ordinateur portable de l étudiant. Référence de l accusé de payement. Code d état du process. Objectif : Avoir 3 services web qui permettent de : 1) Récupérer toutes les informations sur un étudiant, 2) Mettre à jours une ou plusieurs informations sur un étudiant, 3) Connaitre l identifiant de l étudiant suivant. Note : En cas d erreur (identifiant non existant, serveur déconnecté ) chaque service web doit le signaler en renvoyant au client la description et le code de l erreur. La figure suivante représente la modélisation de la classe BDetu : ISET Djerba TriTux PAGE 38

40 «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer BDetu -conn : ressource = null +getstudentbyid() : array +updatestudentbyid() : boolean +getnextid() : array -executesql() : array +connect() : boolean +disconnect() : boolean Figure 14 - Classe BDetu (Connecteur PodBridge de l établissement) ISET Djerba TriTux PAGE 39

41 Service Service Service Rapport PFE Description des attributs de la classe BDetu: Nom de l attribut Description Valeur initiale conn Ressource PostgreSQL Client null Description des méthodes de la classe BDetu : Nom de la méthode Description Entrée Sortie getstudientbyid updatestudentbyid getnextid executesql Renvoi les informations sur un étudiant depuis la base de données. Met à jour une ou plusieurs informations sur un étudiant tel que, son , tel, login ftp Renvoi l identifiant de l étudiant suivant. Envoi la requête SQL au SGBD et revoie le résultat. id : Identifiant. String id :Identifiant. String Tel String adrmac String ftp String refrecu String process String id : Identifiant. (Optionnel) - Si elle prend null c est pour récupérer le premier identifiant String Code état du process (Filtre) sql : Requête SQL String Informations sur l étudiant (id,nom, prénom, dep,spec,niveau,te l, ,loginftp,adr mac,refrecu,proce ss). Array Vrai si succès de la mis à jour. boolean Identifiant. String Résultat de la requête. Array Numrows : Nombre de ligne retournées integer connect Se connecter au serveur Vrai si succès de la ISET Djerba TriTux PAGE 40

42 disconnect PostgreSQL (initialise la ressource conn) Se déconnecter du serveur PostgreSQL et libère la ressource conn. connexion. boolean Vrai en cas de succès de la déconnexion. boolean Les méthodes suivantes: getstudentbyid(), updatestudentbyid() et getnextid() seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge. La figure suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final. ISET Djerba TriTux PAGE 41

43 PodBridge 1.2 SOA Middleware postgresql (5432) Frontend Monitor transactions log Setup PB1.2 PB1.2 Core Trace requests and responses PB1.2 Connector «Bdetu.connector.php» End system PostgreSQL DBMS PodBridge admin HTTP (80) Get WSDL SOAP web service API Authenticate and check privilege Call method : getstudentbyid() << Include >> SQL Execute : SELECT.. FROM.. WHERE.. << Include >> << Include >> Call method : executesql() Invoke WS : getsudentbyid << Include >> Call method : getnextid() << Include >> << Include >> SQL Execute : UPDATE.. SET.. WHERE.. DBA Service Consumer Invoke WS : updatestudentbyid Invoke WS : getnextid Handle request << Include >> if cached Call method : updatestudentbyid() Tell PostgreSQL Server to perform the operation Get response from cache Figure 15 Modélisation de la logique métier (Connecteur BDetu) ISET Djerba TriTux PAGE 42

44 Le serveur FTP dédié aux étudiants Objectif : Avoir 7 services web qui permettent de : 1) Créer un nouveau compte FTP, 2) Modifier la date d expiration d un compte FTP, 3) Modifier le message de bienvenu affiché lors de la connexion au compte FTP, 4) Désactiver le message de bienvenu affiché lors de la connexion au compte FTP, 5) Modifier le mot de passe d un compte FTP, 6) Supprimer un compte FTP, 7) Transférer des fichiers ou répertoires vers n importe quel compte FTP. Note : En cas d erreur (utilisateur déjà existant, serveur FTP déconnecté ) chaque service web doit le signaler en renvoyant au client la description et le code de l erreur. La figure suivante représente la modélisation de la classe FTPAccount : ISET Djerba TriTux PAGE 43

45 «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer FTPAccount -sshcon : ressource = null -authenticated : boolean = false -regexvalidator : array -generaterandompasswd() : string +ifuserexists() : boolean -getunixdate() : string +docreateftpuseraccount() : array +setftpuseraccountexpirydate() : boolean +setftpuserwelcomemsg() : boolean +dodisableftpuserwelcomemsg() : boolean +dochangeftpuserpassword() : boolean -docheckpassword() : boolean +dodeleteftpuseraccount() : boolean +doftpsendfile() : boolean -ssh2exec() : stream +connect() : boolean +disconnect() : boolean Figure 16 - Classe FTPAccount (Connecteur PodBridge de l établissement) ISET Djerba TriTux PAGE 44

46 SERVICE Rapport PFE Description des attributs de la classe FTPAccount : Nom de l attribut Description Valeur initiale sshcon Ressource sshclient null authenticated regexvalidator Pour identifier si la connexion au serveur SSH est établit et en cours. Renferme différentes expressions régulières. False Expression régulière d un nom d utilisateur. Description des méthodes de la classe FTPAccount : Nom de la méthode Description Entrée Sortie generaterandompasswd ifuserexists getunixdate docreateftpuseraccoun t Génère un mot de passe aléatoire. Vérifie si un utilisateur existe déjà sur le système. Converti une date au format JJ/MM/AAAA en une date au format MM/JJ/AAAA. Créer un nouveau compte d utilisateur FTP. len : Longueur du mot de passe (optionnel) 5 par défaut Integer user : Nom d utilisateur String date : Une date (JJ/MM/AAAA) String user : Nom d utilisateur String expiry_date : Date d expiration boolean use_welcome : Utiliser le message de bienvenu par défaut (Vrai par Mot de passe. String Vrai si l utilisateur est déjà existant. boolean Une date (MM/JJ/AAAA) String (login, mot de passe, nom de domaine et n port ftp) Array ISET Djerba TriTux PAGE 45

47 SERVICE SERVICE SERVICE SERVICE SERVICE Rapport PFE défaut) boolean setftpuseraccountexpir ydate Modifie la date d expiration d un compte utilisateur FTP. user : Nom d utilisateur String expiry_date : Date d expiration String Vrai si la date d expiration du compte à été modifiée avec succès. boolean setftpuserwelcomems g Modifie le fichier «welcome.msg» qui existe dans la racine du compte utilisateur FTP. user : Nom d utilisateur. String message : Message de bienvenu. String Vrai si le contenu du fichier «welcome.msg à été modifier. boolean dodisableftpuserw elcomemsg Supprime le fichier «welcome.msg» qui existe dans la racine du compte utilisateur FTP. user : Nom d utilisateur. String Vrai si le fichier «welcome.msg à été supprimer. boolean dochangeftpuserpa ssword Modifie le mot de passe d un compte utilisateur FTP. user : Nom d utilisateur. String password : Ancien mot de passe. String Vrai si le mot de passe a été changé avec succès. boolean new_password : Nouveau mot de passe. String docheckpassword Vérifie si le mot de passe passé en paramètre est correct. user : Nom d utilisateur. String password : Mot de passe String Vrai si la vérification est positive et faux dans le cas contraire. boolean dodeleteftpuseracc ount Supprime un compte utilisateur FTP du système. user : Nom d utilisateur. String Vrai si le compte d utilisateur a été supprimé avec succès. boolean ISET Djerba TriTux PAGE 46

48 SERVICE Rapport PFE doftpsendfile Fait une copie des fichiers ou dossiers d une source à un compte utilisateur FTP. file : Chemin du fichier ou du répertoire source. String Vrai si la copie de fichiers est terminée avec succès. boolean user : Nom d utilisateur. String ssh2exec Demande au serveur SSH d exécuter une commande Shell. cmd : La commande. String exception : Lever une exception dans le cas où le résultat retourné par la commande est une erreur. (Vrai par défaut) boolean Le résultat d exécution de la commande. String readresponse : si elle prend vrai, on récupère le résultat retourné par la commande (Faux par défaut) boolean connect Se connecter au serveur SSH (initialise la ressource sshcon). Vrai en cas de succès de la connexion. boolean disconnect Se déconnecter du serveur SSH et libère la ressource sshcon. Vrai en cas de succès de la déconnexion. boolean Les méthodes suivantes: docreateftpuseraccount (), setftpuseraccountexpirydate (), setftpuserwelcomemsg (), dodisableftpuserwelcomemsg (), dodisableftpuserwelcomemsg (), dodeleteftpuseraccount () et doftpsendfile () seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge. ISET Djerba TriTux PAGE 47

49 La figure de la page suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final. ISET Djerba TriTux PAGE 48

50 P o d B r id g e 1.2 S O A M id d le w a r e S S H ( 22) F T P ( 21) F r o n t e n d M o n ito r tr a n s a c tio n s lo g S e tu p P B 1. 2 PB1.2 C o r e T r a c e r e q u e s ts a n d r e s p o n s e s PB1.2 C o n n e c t o r «F T P A c c o u n t.c o n n e c t o r.php» C a ll m e th o d : d o C r e a te F T P U s e r A c c o u n t () << In c lu d e >> C a ll m e th o d : g e n e r a te R a n d o m P a s s w d () E n d s y s t e m O p e n S S H a n d p r o F T P d o n U b u n t u s e r v e r P B a d m in H T T P ( 80) G e t W S D L S O A P w e b s e r v ic e A P I A u th e n tic a te a n d c h e c k p r iv ile g e << In c lu d e >> << In c lu d e >> << In c lu d e >> C a ll m e th o d : ifu s e r E x is ts () << In c lu d e >> S h e ll e x e c u te : u s e r a d d - g F T P... S e r v ic e C o n s u m e r In v o k e W S : d o C r e a te F T P U s e r A c c o u n t In v o k e W S : s e tf T P U s e r A c c o u n te x p ir y D a te In v o k e W S : s e tf T P U s e r W e lc o m e M s g In v o k e W S : d o F T P s e n d F ile << In c lu d e >> C a ll m e th o d : s e tf T P U s e r W e lc o m e M s g () H a n d le r e q u e s t << In c lu d e >> if c a c h e d G e t r e s p o n s e fr o m c a c h e C a ll m e th o d : d o F T P s e n d F ile () C a ll m e th o d : s e tf T P U s e r A c c o u n t E x p ir y D a te () << In c lu d e >> << In c lu d e >> C a ll m e th o d : ssh2 E x e c () << In c lu d e >> << In c lu d e >> T e ll S S H S e r v e r to p e r fo r m th e o p e r a tio n << In c lu d e >> C a ll m e th o d : g e tu n ix D a te () S h e ll e x e c u te : u s e r m o d - e... S h e ll E x e c u te : c p S h e ll E x e c u te : c h o w n... F T P S e r v e r a d m in Figure 17 - Modélisation de la logique métier (Connecteur FTPAccount) ISET Djerba TriTux PAGE 49

51 Le point d accès sans fil Objectif : Avoir 3 services web qui permettent de : 1) Ajouter une adresse dans le filtre MAC du point d accès sans fil (autorisation d accès). 2) Supprimer une adresse du filtre MAC du point d accès sans fil. (interdiction d accès) 3) Récupérer des informations sur le point d accès sans fil. Note : En cas d erreur (format adresse MAC incorrecte, connexion impossible au Point d accès ) chaque service web doit le signaler en renvoyant au client la description et le code de l erreur. La figure ci-dessous représente la modélisation de la classe APACLManager : «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer APACLManager -regexvalidator : array +doforwardmacaddr() : array +doromoveforwordedmacaddr() : boolean +getaccespointinfo() : array +connect() : boolean +disconnect() : boolean Figure 18 Classe APACLManager (Connecteur PodBridge de l établissement) ISET Djerba TriTux PAGE 50

52 SERVICES Rapport PFE Description des attributs de la classe APACLManager : Nom de l attribut Description Valeur initiale regexvalidator Renferme différentes expressions régulières. Expression régulière d une adresse MAC. Description des méthodes de la classe APACLManager : Nom de la méthode Description Entrée Sortie doforwardmacaddr doromoveforwordedm ACaddr getaccespointinfo connect disconnect Ajoute une adresse MAC dans l ACL du point d accès sans fil. (Autorise l accès au réseau) Supprime une adresse MAC depuis l ACL du point d accès sans fil. (Interdit l accès au réseau) Renvoi des informations sur le point d accès (l SSID et la clé d authentification). Se connecter au serveur TELNET. Se déconnecter du serveur TELNET. macaddr : Adresse MAC. String macaddr : Adresse MAC. String Vrai si adresse à été ajoutée à la liste de contrôle du point d accès. boolean Vrai si adresse à été supprimer de la liste de contrôle du point d accès. boolean (clé d authentificatio n, SSID). Array Vrai en cas de succès de la connexion. boolean Vrai en cas de succès de la déconnexion. boolean Les méthodes suivantes: doforwardmacaddr (), doromoveforwordedmacaddr () et getaccespointinfo () seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge. ISET Djerba TriTux PAGE 51

53 La figure de la page suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final. ISET Djerba TriTux PAGE 52

54 PodBridge 1.2 SOA Middleware TELNET (23) PodBridge admin Frontend Monitor transactions log Setup PB1.2 Get WSDL PB1.2 Core Trace requests and responses PB1.2 Connector «APACLManager.connector.php» Call method : doforwardmacaddr() << Include >> End system Wireless Access Point HTTP (80) SOAP web service API Invoke WS : doforwardmacaddr Authenticate and check privilege << Include >> << Include >> << Include >> Call method : doromoveforworded MACaddr() Call method : SocketSend() << Include >> Add mac address to ACL Network admin Service Consumer Invoke WS : doromoveforworded MACaddr Handle request << Include >> Tell Telnet Server to perform the operation Remove mac address from ACL if cached Invoke WS : getaccespointinfo Get response from cache Call method : getaccespointinfo() Figure 19 - Modélisation de la logique métier (Connecteur APACLManager) ISET Djerba TriTux PAGE 53

55 Le serveur d impression CUPS Objectif : Avoir 2 services web qui permettent de : 1) Imprimer une page du web sur une imprimante partagée via CUPS, 2) Retourner une liste de noms des imprimantes partagées par le serveur CUPS. Note : En cas d erreur (page web introuvable, serveur CUPS déconnecté ) chaque service web doit le signaler en renvoyant au client la description et le code de l erreur. La figure ci-dessous représente la modélisation de la classe IPPService : «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer IPPService -ipp : CupsPrintIPP Object = null +doprintwebpage() : boolean -doprintinternaldocument() : boolean +connect() : boolean +disconnect() : boolean Figure 20 Classe IPPService (Connecteur PodBridge de l établissement) Description des attributs de la classe IPPService : Nom de l attribut Description Valeur initiale ipp Objet de la classe CupsPrintIPP. null ISET Djerba TriTux PAGE 54

56 SERVICES Rapport PFE Description des méthodes de la classe IPPService : Nom de la méthode Description Entrée Sortie doprintwebpage getprinters doprintinternaldocument connect disconnect Envoyer un ordre d impression d une page web à une imprimante partagée. Renvoie les adresses (URI) des imprimantes partagées par CUPS Envoyer un ordre d impression à une imprimante partagée d un document présent sur le serveur. Se connecter au serveur CUPS. Se déconnecter du serveur CUPS. url : URL de la page web. String jobname : Nom du job d impression (optionnel) String filepath : Chemin d accès à un document présent sur le serveur. String jobname : Nom du job d impression (optionnel) String Vrai si l ordre d impression à été envoyé. boolean Des URI délimités par des points virgules. String Vrai si l ordre d impression à été envoyé. boolean Vrai en cas de succès de la connexion. boolean Vrai en cas de succès de la déconnexion. boolean Les méthodes suivantes: doprintwebpage () et getprinters () seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge. La figure de la page suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final. ISET Djerba TriTux PAGE 55

57 PodBridge 1.2 SOA Middleware cups (631) PodBridge admin Frontend Monitor transactions log Setup PB1.2 PB1.2 Core Trace requests and responses PB1.2 Connector «IPPService.connector.php» End system CUPS Server HTTP (80) Get WSDL SOAP web service API Authenticate and check privilege Call method : doprintinternaldocument() << Include >> Scan for available printers Invoke WS : doprintwebpage << Include >> << Include >> << Include >> << Include >> Tell CUPS Server to perform the operation start print job Network admin Service Consumer Invoke WS : doprintinternaldocument Handle request << Include >> Call method : doprintwebpage() << Include >> Invoke WS : getprinters if cached Call method : getprinters() Get response from cache Figure 21 - Modélisation de la logique métier (Connecteur IPPService) ISET Djerba TriTux PAGE 56

58 Le serveur web (inscription.rnu.demo) Objectif : Avoir 1 service web qui permet de : - Renvoyer la référence et l URL de l accusé de payement d inscription universitaire d un étudiant depuis le site d inscription inscription.edu.demo. Note : En cas d erreur (identifiant incorrecte, site web indisponible ) ce service web doit le signaler en renvoyant au client la description et le code de l erreur. La figure ci-dessous représente la modélisation de la classe wwwsubscr : «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer wwwsubscr -curl_handle : ressource = null -getaccuseref() : string +getaccuse() : array +ssh2exec() : stream +connect() : boolean +disconnect() : boolean Figure 22 Classe wwwsubscr (Connecteur PodBridge de l établissement) Description des attributs de la classe wwwsubscr : Nom de l attribut Description Valeur initiale curl_handle ressource curl null Description des méthodes de la classe wwwsubscr : ISET Djerba TriTux PAGE 57

59 SERVICE Rapport PFE Nom de la méthode Description Entrée Sortie getaccuseref getaccuse connect disconnect Renvoi la référence de l accusé de paiement pour une année universitaire donnée. (si paiement effectué) Renvoi la référence et l URL de l accusé de paiement pour une année universitaire donnée. Si getaccuseref renvoie la référence de l accusé. Initialisation de la ressource Ressource libérée studentident : Identifiant de l étudiant. String au : Année universitaire (AAAA/AAAA). String studentident : Identifiant de l étudiant. String au : Année universitaire (AAAA/AAAA). String Référence de l accusé de paiement. String Référence et url de l accusé de paiement. Array Vrai si la ressource à été initialisée. boolean Vrai si la ressource à été libérée. boolean La méthode getaccuse ( ) sera choisi pour êtres exposée en tant que service web SOAP à travers PodBridge. La figure de la page suivante fournit une description étendue sur la logique métier caché derrière ce service allant du consommateur de service au système final. ISET Djerba TriTux PAGE 58

60 PodBridge 1.2 SOA Middleware HTTP (80) PodBridge admin Frontend Monitor transactions log Setup PB1.2 PB1.2 Core Trace requests and responses PB1.2 Connector «wwwsubscr.connector.php» End System HTTP Server (inscription.edu.demo ) HTTP (80) Get WSDL SOAP web service API Authenticate and check privilege Call method : getaccuse() << Include >> Get page of requested URL Invoke WS : getaccuse << Include >> << Include >> << Include >> << Include >> Tell WEB Server To perform the operation Authenticate Web user Handle request Call method : getaccuseref() Service Consumer << Include >> if cached Get response from cache Figure 23 - Modélisation de la logique métier (Connecteur wwwsubscr) ISET Djerba TriTux PAGE 59

61 Le modem SMS Objectif : Avoir 1 service web qui permet de : - Envoyer un message court (SMS) à numéro de téléphone particulier. Note : En cas d erreur (format du numéro de téléphone incorrecte, serveur déconnecté ) ce service web doit le signaler en renvoyant au client la description et le code de l erreur. La figure ci-dessous représente la modélisation de la classe SMSService : «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer SMSService -sshcon : ressource = null -authenticated : boolean = false -regexvalidator : array +dosendsms() : boolean -stripspaces() : boolean -ssh2exec() : stream +connect() : boolean +disconnect() : boolean Figure 24 Classe SMSService (Connecteur PodBridge de l établissement) Description des attributs de la classe SMSService : Nom de l attribut Description Valeur initiale sshcon Ressource client ssh null authenticated Pour identifier si la connexion au serveur SSH est établit et en cours. False ISET Djerba TriTux PAGE 60

62 SERVICE Rapport PFE regexvalidator Renferme différentes expressions régulières. Expression régulière d un numéro de téléphone de 8 chiffres. Description des méthodes de la classe SMSService : Nom de la méthode Description Entrée Sortie dosendsms stripspaces Envoyer un SMS. destinataire : numéro de téléphone du destinataire. String Supprimer des espaces qui existent dans le numéro de téléphone et valider son format. message : Message texte court à envoyer String phonenumber : Numéro de téléphone String Vrai si l SMS a été envoyé au destinataire boolean Numéro de téléphone sans espaces blanc String ssh2exec Demande au serveur SSH d exécuter une commande Shell. cmd : La commande. String exception : Lever une exception dans le cas où le résultat retourné par la commande est une erreur. (Vrai par défaut) boolean Le résultat d exécution de la commande. String readresponse : si elle prend vrai, on récupère le résultat retourné par la commande (Faux par défaut) ISET Djerba TriTux PAGE 61

63 connect disconnect Se connecter au serveur SSH (initialise la ressource sshcon). Se déconnecter du serveur SSH et libère la ressource sshcon. boolean Vrai en cas de succès de la connexion. boolean Vrai en cas de succès de la déconnexion. boolean La méthode dosendsms () sera choisi pour être exposée en tant que service web SOAP à travers PodBridge. La figure de la page suivante fournit une description étendue sur la logique métier caché derrière ce service allant du consommateur de service au système final. ISET Djerba TriTux PAGE 62

64 PodBridge 1.2 SOA Middleware ( podbridge-12.intranet.demo) PodBridge admin HTTP (80) Frontend Monitor transactions log Setup PB1.2 Get WSDL SOAP web service API PB1.2 Core Trace requests and responses Authenticate and check privilege PB1.2 Connector «SMSService.connector.php» Call method : stripspaces() SSH (22) End System Server Invoke WS : dosendsms << Include >> << Include >> << Include >> Call method : dosendsms() Send SMS command Server Admin Handle request << Include >> Service Consumer << Include >> Tell SSH Server to perform the operation if cached Get response from cache Figure 25 - Modélisation de la logique métier (Connecteur SMSService) ISET Djerba TriTux PAGE 63

65 Urbanisation du SI du RNU Serveur Mail Objectif : Avoir 7 services web qui permettent de : 1) Créer un nouveau compte mail (1 ère version - nom d utilisateur est au choix), 2) Créer un nouveau compte mail (2 ème version - le nom d utilisateur doit être autogénéré à partir du nom et le prénom de son propriétaire), 3) Changer le mot de passe d un compte mail, 4) Supprimer un compte mail, 5) Désactive un compte mail, 6) Active un compte mail, 7) Envoyer un message à n importe quelle adresse électronique. Note : En cas d erreur (compte utilisateur déjà existant, problème de connexion au serveur ) chaque service web doit le signaler en renvoyant au client la description et le code de l erreur. La figure ci-dessous représente la modélisation de la classe MailAccount : ISET Djerba TriTux PAGE 64

66 «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer MailAccount -sshcon : ressource = null -authenticated : boolean = false -regexvalidator : array -generaterandompasswd() : string -ifuserexists() : boolean -generateusername() : string -dostripatdomain() : string +docreat useraccount2() : array +docreat useraccount() : array +dochang userpassword() : boolean -docheckpassword() : boolean +dodelet useraccount() : boolean +dounlockmailuseraccount() : boolean +dolockmailuseraccount() : boolean +dosendmail() : boolean -ssh2exec() : stream +connect() : boolean +disconnect() : boolean Figure 26 Classe MailAccount (Connecteur PodBridge 1.2) Description des attributs de la classe MailAccount : Nom de l attribut Description Valeur initiale sshcon Ressource sshclient null authenticated regexvalidator Pour identifier si la connexion au serveur SSH est établit et en cours. Renferme différentes expressions régulières. False Expression régulière pour un nom d utilisateur (mail), prénom et adresse . ISET Djerba TriTux PAGE 65

67 SERVICE SERVICE Rapport PFE Description des méthodes de la classe MailAccount : Nom de la méthode Description Entrée Sortie generaterandompasswd ifuserexists generateusername dostripatdomain docreat useracco unt docreat useracco unt2 Génère un mot de passe aléatoire. Vérifie si un utilisateur existe déjà sur le système. Génère un nom d utilisateur à partir du nom et prénom passés en paramètres. Extrait le nom d utilisateur à partir d une adresse du domaine (rnu.edu.demo). Créer un nouveau compte mail (1) Créer un nouveau compte mail (2) len : Longueur du mot de passe (optionnel) Integer user : Nom d utilisateur String fstname : prénom. String lstname : nom. String addr : adresse . String user : Nom d utilisateur String genpswd: vrai pour auto générer le mot de passe. boolean password: mot de passe (si genpswd reçoit faux). String fstname : prénom. String lstname : nom. String genpswd: vrai pour auto Mot de passe. String Vrai si l utilisateur est déjà existant. boolean Nom d utilisateur. String Nom d utilisateur. String (adresse , mot de passe, port POP3, port SMTP, adresse url du webmail SquirrelMail ) Array (adresse , mot de passe, port POP3, port SMTP, adresse url du webmail SquirrelMail ) ISET Djerba TriTux PAGE 66

68 SERVICE SERVICE SERVIC E SER VICE SERVIC E Rapport PFE générer le mot de passe. boolean Array password: mot de passe (si genpswd reçoit faux). String dodelet useracco unt Supprime un compte mail. addr : adresse mail. String Vrai si le compte mail a été supprimé avec succès. boolean dounlockmailuseracco unt Active un compte mail. addr : adresse mail. String Vrai si le compte mail a été activé. boolean dolockmailuseraccoun t Désactive un compte mail. addr : adresse mail. String Vrai si le compte mail a été désactivé. boolean dochang userpass word Modifie le mot de passe d un compte mail. addr: adresse . String password : Ancien mot de passe. String Vrai si le mot de passe a été changé avec succès. boolean new_password Nouveau mot de passe. String dosendmail Permet (à un administrateur) l envoi de messages à n importe quelle adresse électronique. from: adresse de l envoyeur. String to : adresse du destinataire. String Vrai si le message à été envoyé avec succès. boolean message : Corps du message String subject : Sujet du ISET Djerba TriTux PAGE 67

69 message String docheckpassword Vérifie si le mot de passe passé en paramètre est correct. user : Nom d utilisateur. String password : Mot de passe String Vrai si la vérification est positive et faux dans le cas contraire. boolean ssh2exec Demande au serveur SSH d exécuter une commande Shell. cmd : La commande. String exception : Lever une exception dans le cas où le résultat retourné par la commande est une erreur. (Vrai par défaut) boolean Le résultat d exécution de la commande. String readresponse : si elle prend vrai, on récupère le résultat retourné par la commande (Faux par défaut) boolean connect Se connecter au serveur SSH (initialise la ressource sshcon). Vrai en cas de succès de la connexion. boolean disconnect Se déconnecter du serveur SSH et libère la ressource sshcon. Vrai en cas de succès de la déconnexion. boolean ISET Djerba TriTux PAGE 68

70 Les méthodes suivantes: docreat useraccount (), docreat useraccount2 (), dodelet useraccount (), dounlockmailuseraccount (), dolockmailuseraccount (), dochang userpassword () et dosendmail () seront choisis pour êtres exposées en tant que services web SOAP à travers PodBridge. La figure de la page suivante fournit une description étendue sur la logique métier caché derrière chaque service allant du consommateur de service au système final. ISET Djerba TriTux PAGE 69

71 PB admin HTTP (80) Service Consumer Frontend Monitor transactions log Setup PB1.2 Get WSDL SOAP web service API Invoke WS : docreat UserAccount2 Invoke WS : dochang UserPassword Invoke WS : dodelet UserAccount Invoke WS : dosendmail PodBridge 1.2 SOA Middleware PB1.2 Core Trace requests and responses Authenticate and check privilege << Include >> << Include >> Handle request << Include >> if cached Get response from cache PB1.2 Connector «MailAccount.connector.php» Call method : docreat UserAccount2() Call method : dosendmail() Call method : dodelet UserAccount() << Include >> Call method : dochang UserPassword() << Include >> << Include >> << Include >> << Include >> Call method : generate generateusername() Call method : ssh2exec() << Include >> << Include >> Tell SSH Server to perform the operation << Include >> Call method : ifuserexists() << Include >> Call method : docheckpassword() SSH (22) POP (110) SMTP (25) HTTP (80) End system OpenSSH and Postfix and Dovecot on Ubuntu server Shell execute : useradd -g mail... Shell execute : userdel -r... Shell Execute : mail -s Shell Execute : usermod -p... Mail Server admin Figure 27 - Modélisation de la logique métier (Connecteur MailAccount) ISET Djerba TriTux PAGE 70

72 Conclusion Finalement on est arrivé à la fin de cette première phase par la conception des connecteurs PodBridge 1.2. Chaque connecteur englobe une logique métier lui permettant de s adapter et dialoguer avec le système informatique dont il est conçu pour. PodBridge se chargera de la génération des services web SOAP et des WSDL. ISET Djerba TriTux PAGE 71

73 «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer BDetu -conn : ressource = null +getstudentbyid() : array +updatestudentbyid() : boolean +getnextid() : array -executesql() : array +connect() : boolean +disconnect() : boolean FTPAccount -sshcon : ressource = null -authenticated : boolean = false -regexvalidator : array -generaterandompasswd() : string +ifuserexists() : boolean -getunixdate() : string +docreateftpuseraccount() : array +setftpuseraccountexpirydate() : boolean +setftpuserwelcomemsg() : boolean +dodisableftpuserwelcomemsg() : boolean +dochangeftpuserpassword() : boolean -docheckpassword() : boolean +dodeleteftpuseraccount() : boolean +doftpsendfile() : boolean -ssh2exec() : stream +connect() : boolean +disconnect() : boolean IPPService -ipp : CupsPrintIPP Object = null +doprintwebpage() : boolean -doprintinternaldocument() : boolean +connect() : boolean +disconnect() : boolean APACLManager -regexvalidator : array +doforwardmacaddr() : array +doromoveforwordedmacaddr() : boolean +getaccespointinfo() : array +connect() : boolean +disconnect() : boolean wwwsubscr -curl_handle : ressource = null -getaccuseref() : string +getaccuse() : array +ssh2exec() : stream +connect() : boolean +disconnect() : boolean SMSService -sshcon : ressource = null -authenticated : boolean = false -regexvalidator : array +dosendsms() : boolean -stripspaces() : boolean -ssh2exec() : stream +connect() : boolean +disconnect() : boolean Figure 28 Connecteurs PodBridge (de l établissement) ISET Djerba TriTux PAGE 72

74 «interface» PodBridgeConnectorInterface +connect() : boolean +disconnect() : boolean PodBridgeConnector #params : array #error : array #sessionlog : array #sessionlogcounter : integer = 0 +getlasterrormsg() : string +setlasterror() +setparam() +getsessionlog() +setsessionlog() : array +getsessionlogcounter() : integer MailAccount -sshcon : ressource = null -authenticated : boolean = false -regexvalidator : array -generaterandompasswd() : string -ifuserexists() : boolean -generateusername() : string -dostripatdomain() : string +docreat useraccount2() : array +docreat useraccount() : array +dochang userpassword() : boolean -docheckpassword() : boolean +dodelet useraccount() : boolean +dounlockmailuseraccount() : boolean +dolockmailuseraccount() : boolean +dosendmail() : boolean -ssh2exec() : stream +connect() : boolean +disconnect() : boolean Figure 29 - Connecteur PodBridge (du RNU) ISET Djerba TriTux PAGE 73

75 3.3. Phase 2 : Processus métier et orchestration de services Introduction Finalement, on est arrivés au niveau de la couche orchestration de services. Dans cette phase 2 ème phase de l étude conceptuelle on s intéressera à la conception des processus de coordination d un échange d information à travers l interaction des services web précédemment conçus. Notre objectif est de concevoir à travers de diagrammes d activité (workflows) deux processus métiers (ProcessRUById et BatchProcessRU) Conception du 1 er processus métier : ProcessRUById Ce processus doit exécuter quelques procédures pour offrir à un étudiant donné par son identifiant les différents services que proposent les systèmes informatiques de l établissement en se référant sur ses informations stockés dans la base de données. Avant d exécuter ces différentes procédures, ce processus doit automatiquement vérifier depuis le site (inscription.edu.demo) si l étudiant a déjà payé les frais d inscription de l année en cours. Quelques remarques : Etats du processus : - EXE : Processus en cours d exécution. - PAI : Renvoyé à la fin d exécution. dans le cas où l étudiant n a pas encore effectué le paiement des frais d inscription. - OK : Renvoyé à la fin d exécution ; Succès de l exécution de toutes les procédures. Voici les différentes procédures que doit exécuter notre processus (ProcessRUById) : - Mettre à jours la valeur du champ process par EXE (dans la table etudiant) pour l identifiant passé en paramètre. - vérifier depuis le site inscription.edu.demo, si l étudiant a effectué le paiement des frais d inscription. Si les frais d inscription n ont pas été payés, un message ISET Djerba TriTux PAGE 74

76 d alerte doit lui être envoyé par mail et SMS, ensuite le processus doit finir son exécution et renvoyer le message PAI, - envoyer à une imprimante partagée un job d impression pour l accusé de paiement de l étudiant (pour le service de la scolarité de l établissement), - si l étudiant ne possède pas un compte mail, un nouveau compte mail doit donc lui être créé sur le domaine RNU, ensuite les paramètres de son nouveau compte doivent lui être envoyés par SMS. - si l étudiant est en informatique et ne possède pas déjà un compte FTP, alors un nouveau compte FTP doit lui être créé, ensuite les paramètres de son nouveau compte FTP doivent lui être envoyés sur son mail et par SMS. - dans le cas où l étudiant possède déjà un compte FTP, la date d expiration de son compte doive être étendue d une année, - envoyer sur son compte FTP son calendrier, ses cours et TP (en s appuyant sur les informations : département, spécialité et niveau). - si l étudiant a déjà fourni l adresse MAC de la carte réseau sans fil de son ordinateur portable, alors son ordinateur doit être autorisé à se connecté au réseau sans fil de l établissement à traves l interface Wifi, ainsi qu il doit être informé par SMS et mail des paramètres du réseau Sans fil tel que (SSID, Clé), - envoyer à l étudiant un message de bienvenu par mail & SMS, - mettre à jour les données de l étudiant sur la base de donnée par les nouvelles informations telles que : la référence de son accusé de paiement de l année universitaire en cours, son nouveau login FTP, sa nouvelle adresse mail et le code (process state code) renvoyé par le process à sa fin d exécution, - renvoyer le message OK (code sucés d exécution). ISET Djerba TriTux PAGE 75

77 Donner l identifiant de l'étudiant RECEIVE: ProcessRUByIdIn Mettre à jour la BD, état process EXE INVOKE: «updatestudentbyid» Récupérer les informations de l étudiant depuis la base de données INVOKE: «getstudentbyid» Récupérer la référence de l accusé de paiement et son URL depuis le site inscription.edu.demo INVOKE: «getreceipt» [Paiement effectué] [Paiement non effectué] Lancer un nouveau job d impression pour l accusé de paiement INVOKE: «doprintwebpage» Possède-il un compte ? [non] Créer un nouveau compte INVOKE: «docreat useraccount» Envoyer les paramètres du nouveau compte mail par SMS INVOKE: «dosendsms» [oui] Mettre à jour la BD, état process PAI INVOKE: «updatestudentbyid» Renvoyer PAI REPLY: ProcessRUByIdOut Son département est-il TI? [non] [oui] Possède-il un compte FTP? [non] Créer un compte FTP INVOKE: «docreateftpuseraccount» [oui] A-t-il donné son adresse MAC? [oui] Mettre à jour le filtre MAC du point d accès Sans fil (Ajout) INVOKE: «doforwardmacaddr» [non] Crée un message welcome pour ce compte FTP INVOKE: «setftpuserwelcomemsg» Envoyer les paramètres du point d accès par SMS INVOKE: «dosendsms» Envoyer les paramètres du nouveau compte FTP par SMS INVOKE: «dosendsms» Etendre le délai d expiration INVOKE: «setftpuseraccountexpirydate» Envoyer les paramètres du point d accès par mail INVOKE: «dosendmail» Envoyer les paramètres du nouveau compte FTP par mail INVOKE: «dosendmail» Envoyer le calendrier,les cours & TP INVOKE: «doftpsendfile» Est-il niveau 2 ou plus? [oui] [non] Envoyer le cour d UML2 INVOKE: «doftpsendfile» Mettre à jour la BD (login FTP, ,refrecu et état process OK ) INVOKE: «updatestudentbyid» Appel service web Envoyer un SMS de bienvenue INVOKE: «dosendsms» Envoyer un mail de bienvenue INVOKE: «dosendmail» Renvoyer OK REPLY: ProcessRUByIdOut Figure 30 - diagramme d'activité «ProcessRUById» ISET Djerba TriTux PAGE 76

78 Conception du processus : BatchProcessRU Objectif: Concevoir un processus métier permettant d exécuter les mêmes procédures du processus ProcessRUById sur un grand nombre d étudiants, et de notifier l administrateur (celui qui lance le processus) par Mail & SMS à la fin d l exécution. Paramètres d entrés : Un paramètre filtre (chaine de caractère) doit être spécifié avant l exécution du processus et doit prendre l une des valeurs suivantes : ATT 22, PAI ou * (signifie ATT et PAI). Les différents cas : - Si filtre prend ATT : le processus parcoure seulement les identifiants possédants un champ process égale à ATT. - Si filtre prend PAI : le processus parcoure seulement les identifiants possédants un champ process égale à PAI. - Si filtre prend * : le processus parcoure seulement les identifiants possédants un champ process égale à ATT ou PAI. Information renvoyées : A la fin de l exécution du processus, les informations suivantes doivent êtres renvoyés : - Message (Chaine de caractères) : Succes, fail. - Code (Entier) : 0 pour Succes, 2 pour fail. - Date et heure de lacement du processus. (DATETIME). - Date et heure de fin d exécution du process. (DATETIME). 22 Indique que dans la table étudiant l identifiant possédant le champ process égale à ATT n a été traité aucune fois par le processus ProcessRUById. (ATT est la valeur initiale du champ process à chaque nouvelle insertion dans la table etudiant). ISET Djerba TriTux PAGE 77

79 Donner le filtre (soit PAI, ATT ou * ) RECEIVE: BatchProcessRUIn renvoie le premier identifiant à la première itération Récupérer l indentifiant Suivant INVOKE: «getnextid» Invoquer le service (ProcessRUById) pour l identifiant courant INVOKE: «ProcessRUById» [non] Dernier identifiant? [oui] Notifier l administrateur par SMS INVOKE: «dosendsms» Notifier l administrateur par Mail INVOKE: «dosendmail» Renvoyer (Etat process, date de début et de fin d exécution) REPLY: BatchProcessRUOut Appel service web Figure 31 - diagramme d'activité «BatchProcessRU» Conclusion Finalement on est arrivé à la fin de la 2 ème phase par la conception de deux processus métiers ProcessRUById et BatchProcessRU permettant l orchestration des services conçus dans la première phase. ISET Djerba TriTux PAGE 78

80 Chapitre 4 : Réalisation 3.4. Installation & Configuration Serveur FTP : ftp-etu.intranet.demo - Ajout du domaine ftp-etu.intranet.demo dans /etc/hosts (Voir documentation technique - 1.1) Serveur CUPS : cups.intranet.demo - Ajout du domaine cups.intranet.demo dans /etc/hosts (Voir documentation technique - 1.1) - Installation de CUPS Serveur et Client : $ sudo apt-get cups cups-client - Démarrage du serveur CUPS : $ sudo /etc/init.d/cups start Voir l interface web de configuration de serveur CUPS dans la section (3.2) - documentation technique Serveur de BD PostgreSQL : postgres-83.intranet.demo - Ajout du domaine postgres-83.intranet.demo dans /etc/hosts (Voir documentation technique - 1.1) - Installation de PostgreSQL : $ sudo apt-get install postgresql Démarrage de PostgreSQL : $ sudo /etc/init.d/postgresql-8.3 start - Etapes de création du nouvel utilisateur (bdetuadmin) et schéma (bdetu) : ISET Djerba TriTux PAGE 79

81 $ sudo -u postgres psql h postgres-83.intranet.demo -p 5432 postgres=# create user bdetuadmin; postgres=# create database bdetu owner bdetuadmin; postgres=# \q Création de la structure de la table etudiant et insertion des données de test. Voir Documentation technique (2.1.1 pour le script de création) et (2.1.2 pour le script d insertion). -- Connexion postgres=# \i /home/walid/sql/create.sql postgres=# \i /home/walid/sql/insert.sql postgres=# \q Lister le contenu de la table après l insertion des données de test. -- Connexion postgres=# select * from etudiant; Resultat : Serveur web d inscription en ligne : inscription.edu.demo - Ajout du domaine ftp-etu.intranet.demo dans /etc/hosts (Voir documentation technique - 1.1) Création d un virtualhost (Apache) dans le fichier /etc/apache2/sitesenabled/inscription.edu.demo : <VirtualHost *:80> ServerName inscription.edu.demo DocumentRoot "/var/www/projects/unstable/inscription.edu.demo" ISET Djerba TriTux PAGE 80

82 DirectoryIndex index.php <Directory "/var/www/projects/unstable/inscription.edu.demo"> AllowOverride All Allow from All </Directory> </VirtualHost> - redémarrage du serveur HTTP: $ sudo /etc/init.d/apache2 restart Point d accès sans fil : ap-21. intranet.demo - Ajout du domaine ap-21.intranet.demo dans /etc/hosts (Voir documentation technique - 1.1) Configuration : - Fonction : Accès Point - SSID : ETUDIANTS_WIRELESS - Norme de sécurité : WPA2 - Clé de chiffrement : soaetbpm Serveur mail : (ws.rnu.edu.demo) - Ajout du domaine ws.rnu.edu.demo dans /etc/hosts (Voir documentation technique - 1.1) - Installation du serveur POP3/IMAP : $ sudo apt-get install dovecot - Démarrage du serveur POP3/IMAP : $ sudo /etc/init.d/dovecot start - Installation du serveur SMTP : $ sudo apt-get install postfix - démarrage du serveur SMTP : ISET Djerba TriTux PAGE 81

83 $ sudo /etc/init.d/postfix start - Installation du webmail: $ sudo apt-get install squirrelmail Création d un virtualhost (Apache) dans le fichier /etc/apache2/sites-enabled/ webmail.rnu.edu.demo: <VirtualHost *:80> ServerName webmail.rnu.edu.demo DocumentRoot "/usr/share/squirrelmail" DirectoryIndex index.php <Directory "/usr/share/squirrelmail"> AllowOverride All Allow from All </Directory> </VirtualHost> - redémarrage du serveur HTTP: $ sudo /etc/init.d/apache2 restart Voir capture écran de squirrelmail (écran de connexion) dans la documentation technique Modem GSM connecté au serveur Lenny : debian5-02.intranet.demo - Ajout du domaine debian5-02.intranet.demo dans /etc/hosts (Voir documentation technique - 1.1) PodBridge Ajout du domaine podbridge.intrant.demo et ws.rnu.edu.demo dans /etc/hosts (Voir documentation technique - 1.1) - Déploiement de PodBridge 1.2 : $ mkdir p /var/www/projects/unstable/podbridge && cd /var/www/projects/unstable $ svn co https://svn.tweety.tux/podbridge/trunk podbridge $./pbadmin pb-fix-perms $ sudo -u postgres psql h podbridge.intrant.demo postgres=# create user podbridge; postgres=# create database podbridge owner podbridge; postgres=# \q ISET Djerba TriTux PAGE 82

84 $./pbadmin pb-build-all-load Installation de GlassFish ESB 2.1 Voir document accompagné (Glass Fish ESB 2.1 & Netbeans BPEL Designer Installation & Sample tutorial ) Installation des plugins SOA & BPEL pour NetBeans Voir document accompagné (Glass Fish ESB 2.1 & Netbeans BPEL Designer Installation & Sample tutorial ) 3.5. Réalisation des connecteurs Exemple de réalisation d un connecteur : pbftpaccountconnector Le connecteur pbftpaccountconnector doit êtres copié sous le répertoire : Podbridge/plugins. Les fichiers sous pbftpaccountconnector/data/fixtures sont au format yml 23, destinés pour stocker la configuration (pour la génération du WSDL) ainsi que les paramètres par défaut du connecteur. pbftpaccountconnector/lib/connector contient la classe «FTPAccount.connector.php» qui implémente les différentes méthodes qui seront exposées par PodBridge en tant que services web. 23 Extension pour les fichiers basés sur Yaml (Yaml Ain t Markup Language) ISET Djerba TriTux PAGE 83

85 Figure 32 - Arborescence du projet PodBridge - Netbeans IDE Ajout du connecteur pbftpaccountconnector à PodBridge (Génération des services web, et WSDL) : ISET Djerba TriTux PAGE 84

86 Test du service web docreateftpuseraccount par l utilitaire SoapUI Invocation du service web docreateftpuseraccount XML SOAP Request Message : docreateftpuseraccount Réponse - XML SOAP Response Message: ISET Djerba TriTux PAGE 85

87 Accès au nouveau compte FTP: Re-Invocation du même service web docreateftpuseraccount utilisant les mêmes paramètres XML SOAP Request Message : Réponse (Utilisateur déjà existant / Code erreur : 804) SOAP Faut Message: Tentative d invocation du service web docreateftpuseraccount (Avec une clé erronée): ISET Djerba TriTux PAGE 86

88 Réponse (Erreur d authentification) SOAP Faut Message: L illustration de la page suivante donne une vue générale sur l intégration de chacun des systèmes visés au moyen de PodBridge1.2 ISET Djerba TriTux PAGE 87

89 Réseau local de l établissement (LAN) Réseau National Universitaire (WAN) BD étudiants PostgreSQL postgres-83.intranet.demo SSH : 22 Telnet : 23 IPP : 631 Pgsql : 5432 SSH : 22 FTPAccount FTPAccount.connector.php APACLManager APACLManager.connector.php IPPService IPPService.connector.php BDbetu BDetu.connector.php SMSService SMSService.connector.php Point d accès Sans Fil ap-21.intranet.demo HTTP : 80 SSH : 22 Admin. PodBridge wwwsubscr wwwsubscr.connector.php MailAccount MailAccount.connector.php Admin. PodBridge Administrateur Système Serveur FTP ftp-etu.intranet.demo Serveur CUPS cups.intranet.demo Modem GSM connecté à un serveur Debian Lenny debian5-02.intranet.demo Serveur Web du site d inscription universitaire inscription.edu.demo Serveur Mail SMTP & POP3 rnu.edu.demo Admin. Système PodBridge 1.2 (Middleware SOA) podbridge.intranet.demo PodBridge 1.2 ws.rnu.edu.demo WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP Consommateur de service Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Y Operation Z Consommateur de service Serveurs d application, Ressources Systèmes hétérogènes Protocoles de communication Règles de communication Connecteurs PodBridge Logique métier Middleware SOA PodBridge1.2 Intermédiation entre serveurs d application et consommateurs de services WSDL & Services Web SOAP SOAP endpoint, description, XML, XSD.. Figure 33 1 ère phase de l urbanisation des deux réseaux (Services Web) ISET Djerba TriTux PAGE 88

90 3.6. Réalisation des processus métiers - phase 2 Déploiement de ProcessRUById et BatchProcessRU : ISET Djerba TriTux PAGE 89

91 WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y invoke invoke invoke invoke Messages XML SOAP (Requête et réponse) BPEL Receive invoke invoke Reply invoke ProcessRUById GlassFish ESB 2.1 composant sun-bpel-engine bpel-engine.intranet.demo BPEL Receive Invoke Process Reply invoke BatchProcessRU WS SOAP WS SOAP ProcessRUById BatchProcessRU Figure 34 Déploiement de ProcessRUById et BatchProcessRU ISET Djerba TriTux PAGE 90

92 Test de ProcessRUById (Invocation du service composite) Requête : POST sun-bpel-engine.intranet.demo:9080/processrubyidservice HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/soap+xml;charset=utf-8 User-Agent: Jakarta Commons-HttpClient/3.1 Host: sun-bpel-engine.intranet.demo:9080 Content-Length: 281 <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:proc="processrubyidca"> <soap:header/> <soap:body> <proc:processrubyidoperation> <identifiant> </identifiant> </proc:processrubyidoperation> </soap:body> </soap:envelope> Réponse : HTTP/ OK Content-Type: application/soap+xml;charset="utf-8" Transfer-Encoding: chunked Date: Thu, 14 Jan :58:02 GMT <?xml version="1.0"?> <env:envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:body> <processrubyidoperationresponse> <statut xmlns:msgns="http://j2ee.netbeans.org/wsdl/processrubyid/processrubyid"> OK</statut> </processrubyidoperationresponse> </env:body> </env:envelope> Voici les informations de l étudiant ayant l identifiant après l exécution du processus. (Depuis BD table étudiant) ISET Djerba TriTux PAGE 91

93 Lancement d un job d impression pour l accusé de paiement : Boite de réception : Paramètres du compte FTP (reçu par mail) : ISET Djerba TriTux PAGE 92

94 Notification par SMS Message de bienvenu : Compte FTP : ISET Djerba TriTux PAGE 93

95 La connexion au réseau sans fil (ETUDIANT_WIRELESS) est autorisée : Test de BatchProcessRU (Invocation du service composite) Requête : POST HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/soap+xml;charset=utf-8 User-Agent: Jakarta Commons-HttpClient/3.1 Host: sun-bpel-engine.intranet.demo:9080 ISET Djerba TriTux PAGE 94

96 Content-Length: 382 <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bat="batchprocessruca" xmlns:bat1="http://xml.netbeans.org/schema/batchprocessrutypes.xsd"> <soap:header/> <soap:body> <bat:batchprocessruoperation> <part1> <bat1:filter>pai</bat1:filter> </part1> </bat:batchprocessruoperation> </soap:body> </soap:envelope> Réponse : HTTP/ OK Content-Type: application/soap+xml;charset="utf-8" Transfer-Encoding: chunked Date: Thu, 14 Jan :48:19 GMT <?xml version="1.0"?> <env:envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:body> <BatchProcessRUOperationResponse> <part1 xmlns:msgns="http://j2ee.netbeans.org/wsdl/batchprocessru/batchprocessru"> <ns0:message xmlns:ns0="http://xml.netbeans.org/schema/batchprocessrutypes.xsd"> success</ns0:message> <ns0:statecode xmlns:ns0="http://xml.netbeans.org/schema/batchprocessrutypes.xsd"> 0</ns0:statecode> <ns0:date xmlns:ns0="http://xml.netbeans.org/schema/batchprocessrutypes.xsd"> <ns0:start> t14:41: :00</ns0:start> <ns0:end> t14:48: :00</ns0:end> </ns0:date> </part1> </BatchProcessRUOperationResponse> </env:body> </env:envelope> ISET Djerba TriTux PAGE 95

97 3.7. Développement des applications Réseau local de l établissement (LAN) Réseau National Universitaire (WAN) Serveur FTP ftp-etu.intranet.demo Point d accès Sans Fil ap-21.intranet.demo Serveur CUPS cups.intranet.demo BD étudiants PostgreSQL postgres-83.intranet.demo Modem GSM connecté à un serveur Debian Lenny debian5-02.intranet.demo Serveur Web du site d inscription universitaire inscription.edu.demo Serveur Mail SMTP & POP3 rnu.edu.demo Serveurs d application, Ressources Systèmes hétérogènes Protocoles de communication Règles de communication SSH : 22 Telnet : 23 IPP : 631 Pgsql : 5432 SSH : 22 SSH : 80 SSH : 22 Connecteurs PodBridge Logique métier FTPAccount FTPAccount.connector.php APACLManager APACLManager.connector.php IPPService IPPService.connector.php BDbetu BDetu.connector.php SMSService SMSService.connector.php wwwsubscr wwwsubscr.connector.php MailAccount MailAccount.connector.php Middleware SOA PodBridge1.2 Intermédiation entre serveurs d application et consommateurs de services WSDL & Services Web SOAP SOAP endpoint, description, XML, XSD.. PodBridge 1.2 (Middleware SOA) podbridge.intranet.demo PodBridge 1.2 ws.rnu.edu.demo WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP WS SOAP Operation X Operation Operation Z Y Operation Operation X Operation X Operation Operation Z Operation Z Y Y Operation Operation X Operation X Operation Operation Z Operation Z Y Y Operation X Operation Operation Z Y Operation X Operation Operation Z Y invoke invoke invoke invoke BPEL Receive invoke invoke Reply invoke ProcessRUById GlassFish ESB 2.1 composant sun-bpel-engine bpel-engine.intranet.demo BPEL Receive Invoke Process Reply invoke BatchProcessRU Messages XML SOAP (Requête et réponse) WS SOAP WS SOAP ProcessRUById BatchProcessRU ping.java formulaire.php deleteftp.pl start-pru att.sh Figure 35 - SI après urbanisation ISET Djerba TriTux PAGE 96

98 Appel web-service SOAP en PHP5 Exemple : 1 <?php 2 3 //init 4 $client = new SoapClient("http://podbridge.intranet.demo/projects/unstable/podbridge/web/index.php/wsdl/a uto/ f54b5/getstudentbyid"); 5 6 try { 7 8 //Arguements (paramètres d'entrées) 9 $arguments=array( 10 'key'=>' f54b5', 11 'sync'=>'1', 12 'id'=>' ' 13 ) ; //Apel de la méthode getstudentbyid 16 $result = $client->getstudentbyid($arguments); //Affiche toute la réponse - Type: stdclass Object 19 print_r ($result); 20 //Affiche status - Type: stdclass Object 21 print_r ($result->status); //Affiche le message renvoyé par podbridge (reponse) 25 echo $result->status->message."\n"; 26 //Affiche le prénom 27 echo $result->response->prenom."\n"; 28 //Affiche l'adresse 29 echo $result->response-> ."\n"; } 32 catch (SoapFault $e) { 33 echo '['.$e->getcode().']'; 34 echo $e->getmessage(); 35 } 36 37?> Voir source et capture d écran de l application web PHP (formulaire info etudiant) dans la documentation technique. ISET Djerba TriTux PAGE 97

99 Exemple d appel web-service SOAP en Perl (Suppression d un compte FTP) #!/usr/bin/perl -w # # Ce code permet d appeler le service web (dodeleteftpuseraccount) exposé par podbridge # use SOAP::Lite; my $soap = SOAP::Lite -> uri ('urn:ftpacntns') -> proxy ('http://podbridge.intranet.demo/projects/unstable/podbridge/web/api/index.php?wsdl'); my $res = $soap ->dodeleteftpuseraccount(soap::data->name('key' => ' f54b5'),SOAP::Data->name('user' => 'etu_ ')); unless ($res->fault) { print $res->result(),"\n"; }else{ print 'FAULT CODE : ',$res->faultcode,"\n",'fault MESSAGE : ',$res->faultstring,"\n"; } Appel web-service SOAP en JAVA SE Swing (Invocation du service Ping (test PodBridge)) pbns.podbridgepingservice service = new pbns.podbridgepingservice(); QName portqname = new QName("urn:pbns", "PodBridgePingPort"); 71 String req = "<ping xmlns=\"urn:pbns\"><key> f54b5</key><sync>1</sync></ping>"; try { // Call Web Service Operation 74 Dispatch<Source> sourcedispatch = null; 75 sourcedispatch = service.createdispatch(portqname, Source.class, Service.Mode.PAYLOAD); 76 Source result = sourcedispatch.invoke(new StreamSource(new StringReader(req))); 77 String resultstring = sourcetoxmlstring(result); 78 System.out.println("Received xml: \n" + resultstring); 79 } catch (Exception ex) { 80 System.out.println("An error has occured: \n" + ex.getmessage()); ISET Djerba TriTux PAGE 98

100 81 } Appel web-service SOAP en Shell (Invocation du service composite BatchProcessRU) Fichier (soap-request.xml) : <soap:envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bat="batchprocessruca" xmlns:bat1="http://xml.netbeans.org/schema/batchprocessrutypes.xsd"> <soap:header/> <soap:body> <bat:batchprocessruoperation> <part1> <bat1:filter>att</bat1:filter> </part1> </bat:batchprocessruoperation> </soap:body> </soap:envelope> Fichier script Shell (start-pru att.sh) : #!/bin/bash curl Environnement de travail Matériel utilisé Ordinateur portable (Toshiba A210-16C) : - Microprocesseur : 2x1.8 GHz, AMD Athlon X2 - Architecture 64 bits, - Mémoire vivre : 3 Go DDR2, - Disque dur : 12O Go SATA, - Contrôleur graphique : ATI X1200 ~320 Mo, ISET Djerba TriTux PAGE 99

101 - Carte réseau : Ethernet LAN 10/100Mbps (interface RJ45). Imprimante Laser (Lexmark E120) Logiciels utilisés : SquirrelMail (Client mail sur navigateur web) : Site web officiel : SquirrelMail est un webmail écrit en PHP4. Il supporte les protocoles POP, IMAP et SMTP, et toutes les pages générées le sont en pur HTML (sans aucun JavaScript),ceci afin d'être compatible avec le maximum de navigateurs. Dovecot (Serveur POP3/IMAP) : Site web officiel : Postfix (Serveur SMTP) : Site web officiel : Apache (Serveur HTTP) : Site web officiel : licence Apache. Apache HTTP Server, est un logiciel de serveur HTTP produit par l'apache Software Foundation. C'est le serveur HTTP le plus populaire du Web. C'est un logiciel libre avec un type spécifique de licence, nommée PostgreSQL 8.3 (Serveur & Client) : Site web officiel : PostgreSQL est un système de gestion de base de données relationnelle et objet(sgbdro). C'est un outil libre disponible selon les termes d'une licence de type BSD. PostgreSQL n'est pas contrôlé par une seule entreprise, mais est fondé sur une communauté mondiale de développeurs et d'entreprises. ISET Djerba TriTux PAGE 100

102 proftpd (Serveur FTP) : Site web officiel : ProFTPd est un serveur FTP libre. Il est puissant et parfaitement sécurisé. Il est distribué selon les termes de la licence GNU GPL. Son architecture est modulaire, ce qui a permis d'écrire des extensions pour le support de la cryptographie SSL/TLS (protocole FTPS) et l'extension de l'authentification via des bases RADIUS, LDAP ou SQL. OpenSSH (Serveur SSH) : Site web officiel : OpenSSH (OpenBSD Secure Shell) est un ensemble d'outils informatiques libres permettant des communications sécurisées sur un réseau informatique en utilisant le protocole SSH. Créé comme alternative Open Source à la suite logicielle proposée par la société SSH Communications Security, OpenSSH est développé par l'équipe d'openbsd, dirigée par son fondateur. CUPS (Serveur.) : Site web officiel : CUPS est l acronyme de (Common Unix Printing System) est un système modulaire d'impression informatique pour les systèmes d'exploitation Unix et assimilés. Tout ordinateur qui utilise CUPS peut se comporter comme un serveur d'impression ; il peut accepter des documents envoyés par d'autres machines (ordinateurs clients), les traiter, et les envoyer à l'imprimante qui convient. Ubuntu 9.04 (Jaunty Jackalope) : Site web officiel : serveur. Ubuntu est une distribution Linux libre fondé sur Debian (basé sur GNU/Linux) et commandité par la société Canonical. Ubuntu Server est une version pour ISET Djerba TriTux PAGE 101

103 SoapUI : Site web officiel : SoapUI est outils de test de services web pour l architecture SOA écris en java et distribué sous licence LGPL, il offre une multitude de fonctionnalité sue les services web tel que les inspecter, les invoquer, simuler... Netbeans IDE 6.8 : Site web officiel : NetBeans est un environnement de développement intégré (IDE) pour Java, placé en open source par Sun sous licence CDDL et GPLv2. En plus de Java, NetBeans permet également de supporter différents autres langages, comme Python, C, C++, XML, Ruby, PHP et HTML. Il comprend toutes les caractéristiques d'un IDE moderne (éditeur en couleur, projets multi-langage, refactoring, éditeur graphique d'interfaces et de pages web). Conçu en Java, NetBeans est disponible sous Windows, Linux, Solaris (sur x86 et SPARC), Mac OS X et Open VMS. PHP : Site web officiel : PHP (sigle de PHP: Hypertext Preprocessor), est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage. Symfony PRE (Framework) : Site web officiel : Symfony est un Framework MVC «Modèle-Vue-Contrôleur» libre entièrement écrit en PHP 5. En tant qu un Framework, il facilite et accélère le développement des sites et d'applications Internet et Intranet. ISET Djerba TriTux PAGE 102

104 Symfony intègre Proprel qui est lui aussi un Framework de mapping objet relationnel «ORM» offrant une technique de programmation informatique qui crée l'illusion d'une base de données orientée objet à partir d'une base de données relationnelle en définissant des correspondances entre cette base de données et les objets du langage utilisé. On pourrait le désigner par «correspondance entre monde objet et monde relationnel». Les fichiers de configuration employés par Symfony sont au format YAML qui est un langage de sérialisation de données comme XML mais plus humain et facile interpréter. GlassFish ESB 2.1 : Site web officiel : PodBridge 1.2 : Site web officiel : PodBridge est un middleware qui favorise une évolutivité des systèmes, applications et données, qui permet d'étendre, d'augmenter ou de réallouer les ressources conformément aux contraintes et à la croissance du marché par plusieurs fonctions : Mettre en place un écosystème composé d'applications hétérogènes, assurant la sécurité d échange d'informations et l enregistrement complet d un suivi/traçabilité des flux de données et de gestion de processus, pour renforcer la connaissance des mouvements d'entrée/sortie. Développer des connecteurs centralisés ou distribués permettant d'interfacer des applications utilisant des protocoles de communication différents. En effet, un seul connecteur suffit pour communiquer plusieurs informations. ISET Djerba TriTux PAGE 103

105 Figure 36 - Architecture de PodBridge 1.2 ISET Djerba TriTux PAGE 104

Composition de Services Web

Composition de Services Web Composition de 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 127

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

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

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager L Orchestration de Services Web avec Orchestra Goulven Le Jeune Orchestra Project Manager D1 Bull, Architecte d un Monde Ouvert : contributeur et acteur majeur de l'open Source Applications métiers Infrastructures

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 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

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.

Plus en détail

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau.

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau. Services Web en php IUT de Fontainebleau 15 mars 2014 1 Introduction 2 3 4 1 Introduction 2 3 4 Introduction De plus en plus de sites mettent à disposition des données, et leurs gestions, des fonctionnalités

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

Le cadre des Web Services Partie 4 : Introduction à XML-RPC

Le cadre des Web Services Partie 4 : Introduction à XML-RPC Sécurité en ingénierie du Logiciel Le cadre des Web Services Partie 4 : Introduction à XML-RPC Alexandre Dulaunoy adulau@foo.be Sécurité en ingénierie du Logiciel p.1/15 Agenda Introduction Format des

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

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

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

Les Web Services. UE: Informatique Ambiante. Spécialité: Electronique et Optique Option: Vision Embarquée. Binôme: Ehouarn Perret & Thomas Angenault

Les Web Services. UE: Informatique Ambiante. Spécialité: Electronique et Optique Option: Vision Embarquée. Binôme: Ehouarn Perret & Thomas Angenault Spécialité: Electronique et Optique Option: Vision Embarquée UE: Informatique Ambiante Les Web Services Binôme: Ehouarn Perret & Thomas Angenault Enseignant: Christophe Léger mercredi 19 octobre 2011 Plan

Plus en détail

Architecture client/serveur

Architecture client/serveur Architecture client/serveur Table des matières 1. Principe du client/serveur...2 2. Communication client/serveur...3 2.1. Avantages...3 2.2. Inconvénients...3 3. HTTP (HyperText Transfer Protocol)...3

Plus en détail

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1 SysCom - CReSTIC Université de Reims 17/02/2011 1 Motivation Gestion des expérimentations Avec les workflows Simulation Simulation des Systèmes Distribués ANR USS SimGrid Campagne de Test et gestion de

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

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

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM) Ministère de l Enseignement Supérieur et de la Recherche Scientifique Ecole Supérieure Privée d Ingénierie et de Technologie BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

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

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

Business Process Execution Language

Business Process Execution Language Business Process Execution Language Rapport du projet de systèmes distribués d information Markus Lindström 6 mai 2009 Motivation personnelle Le sujet que j ai retenu et présenté dans le cadre du cours

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

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

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

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

Installation du transfert de fichier sécurisé sur le serveur orphanet

Installation du transfert de fichier sécurisé sur le serveur orphanet Installation du transfert de fichier sécurisé sur le serveur orphanet But du changement de mode de transfert Afin de sécuriser les transferts de données sur la machine orphanet (orphanet.infobiogen.fr),

Plus en détail

Messagerie asynchrone et Services Web

Messagerie asynchrone et Services Web Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS

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

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

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

Le modèle client-serveur

Le modèle client-serveur Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)

Plus en détail

Que désigne l'url donnée au navigateur?

Que désigne l'url donnée au navigateur? Que désigne l'url donnée au navigateur? http://www-poleia.lip6.fr/~jfp/istm/tp6/index.html Le protocole : pourquoi? Parce que la manière d'indiquer une adresse dépend du service postal utilisé... Le serveur

Plus en détail

IBM WebSphere MQ File Transfer Edition, Version 7.0

IBM WebSphere MQ File Transfer Edition, Version 7.0 Transfert de fichiers administré pour architecture orientée services (SOA) IBM, Version 7.0 Solution de transport polyvalente pour messages et fichiers Transfert de fichiers haute fiabilité basé sur la

Plus en détail

Marc OLORY IR3 INGENIEURS 2000 Université de Marne-la-Vallée. 12 décembre 2010

Marc OLORY IR3 INGENIEURS 2000 Université de Marne-la-Vallée. 12 décembre 2010 Marc OLORY IR3 INGENIEURS 2000 Université de Marne-la-Vallée 12 décembre 2010 Découvrir les services d annuaire Etudier les mécanismes LDAP Déployer un service LDAP Marc OLORY LDAP et les services d annuaire

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

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86 Plan du travail Chapitre 1: Internet et le Web Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015 Cours TIC - 1ère année MI

Plus en détail

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL Un bus de services Un bus de services (ESB) permet d assembler des web services existants, le résultat de cet

Plus en détail

Internet. PC / Réseau

Internet. PC / Réseau Internet PC / Réseau Objectif Cette présentation reprend les notions de base : Objectif, environnement de l Internet Connexion, fournisseurs d accès Services Web, consultation, protocoles Modèle en couches,

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

Automatisation de l administration système

Automatisation de l administration système Automatisation de l administration système Plan Problèmatique : trop de systèmes, trop de solutions Typage des solutions Puppet : gestion de configuration de systèmes Capistrano : déploiement d applications

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 7 : RMI Nom(s) : Groupe : Date : Objectifs : savoir créer des applications client-serveur mettant en jeu des machines

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

Création d un WebService. Tp WinDev Numéro 13

Création d un WebService. Tp WinDev Numéro 13 Tp WinDev Numéro 13 Objectifs : Création d un WebService Paramétrage d un serveur Web, Création du Service Web, Création du client consommateur, Approche XML, SOAP Outils : Un serveur d application Ce

Plus en détail

Mineure Architectures Orientées Services SOA Exécution de processus. Mineure SOA. Exécution de processus

Mineure Architectures Orientées Services SOA Exécution de processus. Mineure SOA. Exécution de processus Mineure SOA Exécution de processus Idir AIT SADOUNE idir.aitsadoune@supelec.fr Idir AIT SADOUNE - Plan 1 Qu'est-ce qu'exécuter un processus? 2 Moteur de workflow 3 Moteur d'orchestration,

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

GRID : Overview ANR-05-CIGC «GCPMF» 8 juin 2006 Stéphane Vialle

GRID : Overview ANR-05-CIGC «GCPMF» 8 juin 2006 Stéphane Vialle GRID : Overview ANR-05-CIGC «GCPMF» 8 juin 2006 Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Grid : Overview 1. Définition et composition 2. Exemple de Middleware 3. Interconnexion

Plus en détail

Architecture Logicielle

Architecture Logicielle Architecture Logicielle Chapitre 3: UML pour la description et la documentation d une architecture logicielle Année universitaire 2013/2014 Semestre 1 Rappel L architecture d un programme ou d un système

Plus en détail

Introduction JOOMLA. Fonctionnalités. Avantages. Hainaut P. 2013 - www.coursonline.be 1. Joomla est un système de gestion de contenu CMS open source

Introduction JOOMLA. Fonctionnalités. Avantages. Hainaut P. 2013 - www.coursonline.be 1. Joomla est un système de gestion de contenu CMS open source JOOMLA Introduction Joomla est un système de gestion de contenu CMS open source Il permet la conception rapide de sites Web avec une présentation soignée et une navigation très simple C est l outil idéal

Plus en détail

Chapitre 4 Les Servlets. 1. Qu'est-ce qu'une Servlet? 1.1 Présentation. 1.2 Requêtes HTTP

Chapitre 4 Les Servlets. 1. Qu'est-ce qu'une Servlet? 1.1 Présentation. 1.2 Requêtes HTTP 210 Les Servlets 1. Qu'est-ce qu'une Servlet? 1.1 Présentation Les Servlets sont la base de la programmation Java EE. La conception d'un site Web dynamique en Java repose sur ces éléments. Une Servlet

Plus en détail

Systèmes d Information Avancés (et répartis)

Systèmes d Information Avancés (et répartis) Systèmes d Information Avancés (et répartis) Université Lyon 1 MIAGE L. Médini, mars 2005 Plan des cours Protocole HTTP et programmation serveur Architectures réparties Objets distribués Introduction aux

Plus en détail

Référence Etnic Architecture des applications

Référence Etnic Architecture des applications Référence Etnic Architecture des applications Table des matières 1. Introduction... 2 2. Architecture... 2 2.1 Démarche générale... 2 2.2 Modèle d architecture... 3 2.3 Découpe d une architecture applicative...

Plus en détail

NFS Maestro 8.0. Nouvelles fonctionnalités

NFS Maestro 8.0. Nouvelles fonctionnalités NFS Maestro 8.0 Nouvelles fonctionnalités Copyright Hummingbird 2002 Page 1 of 10 Sommaire Sommaire... 2 Généralités... 3 Conformité à la section 508 de la Rehabilitation Act des Etats-Unis... 3 Certification

Plus en détail

Services réseau. 6.1 Clients, serveurs et leur interaction. 6.1.1 Relation client-serveur

Services réseau. 6.1 Clients, serveurs et leur interaction. 6.1.1 Relation client-serveur Page 1 sur 35 Services réseau 6.1 Clients, serveurs et leur interaction 6.1.1 Relation client-serveur Tous les jours, nous utilisons les services disponibles sur les réseaux et sur Internet pour communiquer

Plus en détail

Exécution de processus

Exécution de processus Exécution de processus Electif SOA Cécile Hardebolle cecile.hardebolle@supelec.fr Programme 21 jan. 22 jan. Introduction. Enjeux, rôle de l'architecte SI Partie n 1 du cas d'étude Architectures applicatives

Plus en détail

Exécution de processus

Exécution de processus Exécution de processus Mineure SOA Cécile Hardebolle cecile.hardebolle@supelec.fr Programme 8 nov. 15 nov. Introduction. Enjeux, rôle de l'architecte SI Partie n 1 du cas d'étude Architecture et cartographie

Plus en détail

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base SOA et Services Web 23 octobre 2011 1 SOA: Concepts de base 2 Du client serveur à la SOA N est Nest pas une démarche entièrement nouvelle: années 1990 avec les solutions C/S Besoins d ouverture et d interopérabilité

Plus en détail

Manuel de référence de HP Web Jetadmin Database Connector Plug-in

Manuel de référence de HP Web Jetadmin Database Connector Plug-in Manuel de référence de HP Web Jetadmin Database Connector Plug-in Mentions relatives aux droits d auteur 2004 Copyright Hewlett-Packard Development Company, L.P. Il est interdit de reproduire, adapter

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

TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian

TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian Objectif : faire un site pour gérer des articles par catégorie. Chaque catégorie a un nom, chaque catégorie est constitué d

Plus en détail

Positionnement de UP

Positionnement de UP UNIFIED PROCESS Positionnement de UP Unified Process Langage Méthode Outil logiciel UML UP RUP 6 BONNES PRATIQUES développement itératif gestion des exigences architecture basée sur des composants modélisation

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

Chapitre I : Protocoles client serveur et architectures distribuées

Chapitre I : Protocoles client serveur et architectures distribuées Chapitre I : Protocoles client serveur et architectures distribuées Eric Leclercq & Marinette Savonnet Département IEM / UB Eric.Leclercq@u-bourgogne.fr Bureau G212 Aile des Sciences de l Ingénieur Mise-à-jour

Plus en détail

Modèle spagetthi et solution EAI

Modèle spagetthi et solution EAI EAI Définition L'EAI est une notion ancienne mais toujours d'actualité. En effet, le besoin de faire communiquer des applications développées à des moments différents, dans des technologies différentes

Plus en détail

Sémantique formelle et synthèse de client pour services Web

Sémantique formelle et synthèse de client pour services Web Sémantique formelle et synthèse de client pour services Web Séminaire «Services Web» 24 Janvier 2006 sylvain.rampacek@univ-reims.fr CReSTIC LAMSADE Plan Introduction Services Web Description de la plate-forme

Plus en détail

Introduction aux Systèmes Distribués. Introduction générale

Introduction aux Systèmes Distribués. Introduction générale Introduction aux Systèmes Distribués Licence Informatique 3 ème année Introduction générale Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan

Plus en détail

Réalisation d un serveur CTI-CSTA sur TCP/IP

Réalisation d un serveur CTI-CSTA sur TCP/IP Alcôve http://www.alcove.fr 1/28 Réalisation d un serveur CTI-CSTA sur TCP/IP Julien Gaulmin Cette présentation est librement diffusable sous les termes de la GNU Free Documentation

Plus en détail

Etude et développement d un moteur de recherche

Etude et développement d un moteur de recherche Ministère de l Education Nationale Université de Montpellier II Projet informatique FLIN607 Etude et développement d un moteur de recherche Spécifications fonctionnelles Interface utilisateur Responsable

Plus en détail

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Expérience d un hébergeur public dans la sécurisation des sites Web, CCK Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Plan Introduction Sécurisation des sites Web hébergés a Conclusion Introduction

Plus en détail

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2).

ZABBIX est distribué sous licence GNU General Public License Version 2 (GPL v.2). Nom du projet : Zabbix Description : ZABBIX est un logiciel open source créé par Alexei Vladishev. Zabbix permet de surveiller le statut de divers services réseau, serveurs et autres matériels réseau.

Plus en détail

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0

Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Groupe Eyrolles, 2004 ISBN : 2-212-11504-0 Table des matières Avant-propos................................................ 1 Quel est l objectif de cet ouvrage?............................. 4 La structure

Plus en détail

Développer de nouvelles fonctionnalités

Développer de nouvelles fonctionnalités 19 Développer de nouvelles fonctionnalités Chaque site e-commerce est unique. Bien que Magento soit une application riche, des besoins spécifiques apparaîtront et l ajout de modules deviendra nécessaire.

Plus en détail

Business Process Modeling (BPM)

Business Process Modeling (BPM) Business Process Modeling (BPM) Mineure SOA Cécile Hardebolle cecile.hardebolle@supelec.fr Programme 8 nov. 15 nov. Introduction. Enjeux, rôle de l'architecte SI Partie n 1 du cas d'étude Architecture

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

Utiliser Améliorer Prêcher. Introduction à LDAP

Utiliser Améliorer Prêcher. Introduction à LDAP Introduction à LDAP Introduction à LDAP Sommaire 2 Sommaire Historique rapide Les concepts LDAP et la gestion d identité Démonstration Autre ressources 2 Historique Historique Historique rapide 4 Historique

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

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information. PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue

Plus en détail

Fonctionnement et protocoles des couches applicatives

Fonctionnement et protocoles des couches applicatives Chapitre 3 : Fonctionnement et protocoles des couches applicatives Introduction La plupart d entre nous utilisons Internet via le Web, les services de messagerie et les programmes de partage de fichiers.

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

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand Centrale Réseaux

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un

Plus en détail

Cible de sécurité CSPN

Cible de sécurité CSPN Cible de sécurité CSPN ClearBUS Application cliente pour la communication sécurisée Version 1.12 Le 25/11/2011 Identifiant : CBUS-CS-1.12-20111125 contact@clearbus.fr tel : +33(0)485.029.634 Version 1.12

Plus en détail

FileMaker Pro 12. Aide FileMaker Server

FileMaker Pro 12. Aide FileMaker Server FileMaker Pro 12 Aide FileMaker Server 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker est une marque de FileMaker, Inc.,

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

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

C2O, une plate-forme de gestion et d automatisation de process

C2O, une plate-forme de gestion et d automatisation de process C2O, une plate-forme de gestion et d automatisation de process AVANTAGE PRODUCTION Siège social : 15 rue ampère - 60800 Crépy en Valois Tel: + 33 (0)1 76 77 26 00 - info@avantageproduction.com SARL au

Plus en détail

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM) Mineure SOA Business Process Modeling (BPM) Idir AIT SADOUNE idir.aitsadoune@supelec.fr Idir AIT SADOUNE - Plan 1 Notion de processus? 2 Modélisation des processus? 3 Langages

Plus en détail

Cisco Certified Network Associate

Cisco Certified Network Associate Cisco Certified Network Associate Version 4 Notions de base sur les réseaux Chapitre 3 01 Quel protocole de la couche application sert couramment à prendre en charge les transferts de fichiers entre un

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

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM) LA BOITE A OUTILS DE L ACHETEUR DE BPM Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM) La boîte à outils de l acheteur de solution BPM -

Plus en détail

WebSSO, synchronisation et contrôle des accès via LDAP

WebSSO, synchronisation et contrôle des accès via LDAP 31 mars, 1er et 2 avril 2009 WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot Thomas Chemineau Sommaire général Synchronisation d'identités WebSSO et contrôle des accès Démonstration

Plus en détail

Réseaux informatiques --- Généralités sur les services réseaux

Réseaux informatiques --- Généralités sur les services réseaux Réseaux informatiques --- Généralités sur les services réseaux Auteur : Christophe VARDON Date : révision du 15/11/2004 TABLE DES MATIERES Un réseau : pour faire quoi?... Quels services sur le réseau?...

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

M3301-2: Méthodologie de la production de logiciels Modélisation et construction des logiciels (C. Attiogbé) Travaux dirigés/pratiques - 2015/2016

M3301-2: Méthodologie de la production de logiciels Modélisation et construction des logiciels (C. Attiogbé) Travaux dirigés/pratiques - 2015/2016 M3301-2: Méthodologie de la production de logiciels Modélisation et construction des logiciels (C. Attiogbé) Travaux dirigés/pratiques - 2015/2016 encadrés par Christian Attiogbé, Amine Aouadhi Cahier

Plus en détail

Transfert de fichiers EFIDEM

Transfert de fichiers EFIDEM Transfert de fichiers EFIDEM Traitement XML Format de fichier/message XML pour l envoi de SMS en mode transfert de fichiers/messages 26/10/2011 Contenu EFIDEM...2 Principe...2 Transfert de fichiers...3

Plus en détail

Protection des protocoles www.ofppt.info

Protection des protocoles www.ofppt.info ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

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

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

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

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