Cours 1 : Architecture Web Introduction 1,5(1,5) PARLER AVEC L’ENTHOUSIASME, MOTIVÉ, CHUYEN Y , ARTICULATION, MOTS CLÉS, Nhin puiblic, MELODIE 0.Création de Services 1.Nouvelle Architecture 2.Téléphonie sur IP 3. Phare Lip6: Paris 6 & EADS-Télécom (implémenté) Travail de thèse au sein de l’equipe Phare Lip6 de l’Université Paris 6, sous la direction de Mr Guy Pujolle et implémenté à EADS Telecom Remercie les membres du jury d’être présents ici. Je vais dire un petit mot pour me présenter. J’etais enseignant à l Ecole Polytechnique de HCMV du VN et j’ai voulu venir en France faire Une thèse s, attiré par la réputation prodigieuse de Mr Pujolle.. Je m’avais pas messuré alors qu’il falliat apprendre le français pour mener à bien catte recherche. C’est finalement que j’ai fait en réalisant ma thèse, non sans mal et sans douleurs comme bcp d’autres thésards, sans doute. Je vous donc de bien vouloir excuser mon accent. TuanLoc Nguyen
Objectif du cours Objectif : Pre-requis Architecture, évolution du Web Tendances du Web Pre-requis HTML /HTTP MySQL/Php/Apache SQL Server/ASP/IIS
Contenu Architecture Web Web et BD Architectures intelligentes & Script Web dans l’entreprise
1. Le World Wide Web Système hypermédia distribué fonctionne sur TCP/IP Simple à utiliser : I.E, Netscape, Mozilla Portable Faible coût Mobilité Sans frontière Standard HTTP, URL, HTML, XML Distribué : ActiveX,COM,CORBA,EJB,WebServices
Modèle du Web (Cours 2)
Impact du Web Client/serveur universel Un seul outil pour la communication intra- et interentreprise Intranet, extranet (les partenaires), internet (tous) Accès aux bases de données Adopté par toute l’industrie du logiciel Nombreux produits, nombreux fournisseurs De nombreux serveurs Web Information et services Le fondement de la société de l’information
Applications e-business E-business = utilisation professionnelle du Web – Au sein de l’entreprise : B2E – Avec les clients : B2C – Avec les partenaires : B2B Applications majeures – Intranets – Portails d’information d’entreprise – Commerce électronique – Publication en ligne
Intranet Serveur Web pour les besoins internes de l’entreprise – Réseau privé avec accès sécurisé à Internet • firewalls – Utilisateurs connus Services avancés : visio-conférence – Services internes Publication d’information et workflow Forum de discussion, email et groupware Réduit les coûts de communication et améliore l’efficacité Problème : – Intégration avec les sources de données de l’entreprise
Portail d’information d’entreprise Porte d’accès à l’information de l’entreprise – Vue uniforme d’information agrégée à partir de sources de données hétérogènes Applications existantes Bases de données Systèmes documentaires – Pour des utilisateurs spécifiques Décideurs, employés, clients, fournisseurs Problème : – Difficile d’accéder à toute l’information de l’entreprise – Confiance
E-commerce Elimination des procédures manuelles (papier) entre les partenaires d’un commerce Au minimum : B2C – Sites très connus, (Amazon.com, Dell Computers, etc.) – Gestion de la relation client – Intégration avec les bases de données – Transactions électroniques sécurisées pour commander • Cartes de crédit, monnaie électronique, E-check – Pas d’automatisation du côté client Pleine puissance : B2B – Intégration de la chaîne de distribution avec d’autres fournisseurs
Gestion d’information Gestion de l’information indépendamment de tout programme, y compris celui qui l’a créé. Principe = indépendance des données – du stockage – de la présentation Présentation Présentation Vue logique stockage stockage
Fonctionnement du Web Pour consulter un document (ex: http://serveur/page.html) 1. Le navigateur demande à son DNS (Domain Name Server) de lui renvoyer l’adresse IP du serveur demandé dans l’URL (Uniform Ressource Locator) 2. Le navigateur envoie une requête à l’adresse IP pour demander la page.html précisée dans l’URL. 3. le serveur envoie la page au client. 4. le navigateur interprète la page et l’affiche. HTTP : protocole de transfert permettant de demander un fichier au serveur ainsi qu’une description de types des données associées. IP : Internet Protocol
2. Couplage BD et Web Pourquoi coupler ? Deux domaines qui se sont développés indépendamment mais qui ont de nombreux points communs : - Ensemble important de données (modélisation, stockage, indexation) - Interrogation (langage déclaratif) - Multi-utilisateurs - Performances - Fiabilité
Données du Web Données hétérogènes, fortement corrélées, évoluant souvent La gestion de ces données avec un SGF et un système d’exploitation pose des problèmes : gestion des liens difficile gestion de l’évolution (pas d’indépendance logique-physique) performances moyennes (pas ou peu d’index)
Apports des SGBD Gestion de gros volumes d’information Bonnes performances d’accès (index, stockage, gestion du disque) Fiabilité des données (cohérence, sûreté de fonctionnement, sûreté d’accès) Partage et accès concurrents (transactions) Productivité (indépendance physique-logique, réutilisation, outils) Evolutivité (évolution du schéma) Langage de requêtes et optimisation
Accès base de données 1. Le client http lance une demande de page Web (URL statique ou dynamique) vers le serveur. URL dynamique : contient un appel au programme applicatif + paramètres. La connexion est fermée dès que le client obtient la réponse. 2. Le serveur http est en attente permanente. En cas de demande dynamique, il lance le programme applicatif avec les paramètres, en suivant un protocole : • CGI : Common Gateway Interface • ASP, ASPx, PHP, JSP 3. Le programme applicatif : a. extrait les données nécessaires du SGBD b. produit la page HTML incluant ces données 4. Le SGBD … fait son travail de SGBD (reçoit des requêtes et renvoie les résultats) Solutions du marché : • solutions SGBD +/- intégrées (+ : Oracle, Informix, - : Sybase, DB2) • solutions + générales : ASP (MS-Windows), JSP (JAVA), …
Limitations du couplage HTML-BD Solutions propriétaires Pas de protocole pour publier les données – SQL n’est pas conçu pour le Web Pas de format d’échange de données standard : HTML est un format de présentation : – Mélange présentation et contenu – Pas de structure, pas de sémantique, pas de contrainte d’intégrité – Perd la structure (schéma) provenant de la BD
Amélioration La règle d’or : le contenu doit être abstrait et indépendant du stockage et de la présentation – Permet l’intégration uniforme de données hétérogènes – Permet des applications dynamiques La présentation peut être différente selon le médium, le temps, la requête ou le profil de l’utilisateur
Service-Assemblage/Creation Primary programming technology Low-level programming ( machine code, Assembler ) High-level programming ( Fortran, Cobol, Basic, …) Structured programming ( Pascal, C, C++, …) Object-Oriented Programming ( C++, Java, Delphi ...) Component Oriented Programming ( COM, JavaBeans, …) Component Oriented Web Programming ( C#, Forte Java, …) Service-Assemblage/Creation Programming ( Web Services…) 1950 1960 1970 1980 1990 2000 2010 2020 2030 2040 2050 2060
Service-Assemblage/Creation Primary programming - OS models Low-level programming ( IBM Mainframe OS ) High-level programming ( IBM Mainframe OS… ) Structured programming ( Unix … ) Object-Oriented Programming ( Unix, MS DOS, ... ) Component Oriented Programming ( Windows, Unix, Linux, …) Component Oriented Web Programming ( DotNET, JEEE, …) Service-Assemblage/Creation Programming (…) 1950 1960 1970 1980 1990 2000 2010 2020 2030 2040 2050 2060
Application to application Intelligence dans l’architecture x-tiers Application to application (B2B/ B2C) Web services XML/SOAP Architecture “n-tiers” PC Application to person (B2C) Web server Web browser HTTP/HTML Architecture 2-tiers Architecture 3-tiers Web browser Application to person+ (B2C) HTTP/HTML Web server Databases Data echange PC Person to person (C2C) Architecture 1-tier Evolution de l’architecture
XML pour l’échange de données universel Le langage XML (Extensible Markup Language) – Standard du W3C – Décrit le contenu, pas la présentation • Structure, type, schéma, requêtes, etc. – Une base forte : XML est un sous-ensemble de SGML – Fournit l’indépendance des données au stockage et à la présentation : supporte la règle d’or Facilite l’échange de données entre applications
(message passing-RPC) (seek Web Services-Xlink/XPath) Un Web Services est une ‘’unité logique applicative’’ accessible en utilisant les protocoles standard d’Internet, indépendamment de plate-forme et peut être réutilisé. Call semantic (message passing-RPC) Web Services Web Services SOAP message (HTTP/XML) UDDI (seek Web Services-Xlink/XPath) SOAP (how to call via XML) WSDL (call syntactic &semantic –XML Schema)
Page serveur dynamique Script ASP PHP JSP Aspx
Couplage HTML-bases de données Serveur HTTP dynamique – Basé sur CGI – Serveur Web dédié aux BD Oracle WebDB, VersantWeb, etc. Pages serveurs dynamiques – MS Active Server Page (ASP) – Java Server Page (JSP) – PHP, ASPx,
Accès Base de donées Script Problème : Passer à l’échelle Solutions propriétaires
ASP (Active Server Page) Moteur de script (VB Script) <% %> ASP IIS HTTP COM HTML Composants ADO HTTP Serveur Web Windows (NT,Y2K) Base de données Access SQL Server … Browser HTML Presentation Business logic Data services
Active Server Pages Development flow HTML author Script writer Systems developer Content, layout, design Component invocation VB Script Expressions Component and database development <% TSym=Request.QueryString("TickerSymbol") SetNObj=Server.CreateObject("NASDAQ.TickerObj") if NObj.GetCompany(TSym)=False then Server.Redirect("ticker/entryform.htm") %> <%=NObj.CompanyName%> <%=NObj.Open%> <%=NObj.Close%> <%=NObj.Volume%> <%=time()%> <%=date()%> </HTML> <HTML> <H1>Today's trade summary for: </H1> <TABLE> <TR><TD>Open</TD><TD>Close</TD><TD>Volume</TD></TR> <TR><TD> </TD> <TD> </TD> <TD> </TD></TR> </TABLE> <H2>Time of report: </H2> </HTML> NASDAQ
PHP Hypertext Preprocessor Moteur de script (PHP Script) <?php ?> PHP HTTP Apache HTML Fonctions MySQL (IIS) HTTP Serveur Web Windows (NT,Y2K,Linux) MySQL Access … Base de données Browser HTML Presentation Business logic Data services
ASP versus JSP ASP – combinent HTML, VB Scripts et ActiveX – efficace avec les ActiveX Data Objects (ADO) • Interface DCOM pour l’accès BD via ODBC ou OLE-DB – Outils de développement intégrés JSP JSP – Combinent HTML, Java et Java Beans – Accès aux composants EJB (serveurs) • Interface JDBC – Standard, proposé par tous les serveurs d’applications J2EE
Servlet - JSP Java Server Page “Now almost everyone using servlets has heard about Java Server Pages (JSP), a Sun-invented technology built on top of servlets.” (Sun) -The programer write an out.println() call per HTML line, became a serious problem for real servlet use -Content creators had to ask developers to make all content changes
ASPx : une approche composant ASP.NET est basé sur un modèle composant coté serveur repose sur le Framework .NET (coté serveur) prend en compte les différentes capacités des navigateurs (support JavaScript, DHTML, …) Ne nécessite rien de particulier sur le client Serveur Client Html IE Composants ASPX .NET Html Opéra
ASPx vs ASP/PHP classique Les pages ASP.NET sont compilées Le contenu et le traitement sont séparés Les développeurs et les graphistes peuvent, en standard, travailler indépendamment ASP / PHP ASP.NET Un seul fichier Fichiers distincts / séparation logique code code <balises> <balises> code code <balises> <balises> Form1.asp Form1.aspx Form1.aspx Form1.aspx.vb
4. Web dans l’entreprise Serveur applicatif dans l’entreprise Simple = serveur Web – Petites applications, pas de transactions Serveur d’entreprise = serveur Web + – Support des grandes applications, distribuées standard – Support des transactions – Support des composants – Support de XML – Outils de développement -> Création de services à valeur ajoutée
Exemple : Web dans l’entreprise Environnement de Création Call manager SGBD Serveur applicatif Environnement de Création de Services IP IP Réseau TCP/IP 1’(34,5) Démo live Démo: Création de Rapide de Services dans ToIP Archises permet de créer rapidement de nouveaux services à valeur ajoutée dans la téléphonie sur IP, un des domaines importants de l’informatique du futur. Téléphonie sur IP n'est pas moins chère, ni meilleure, ni différente de la téléphonie classique. Donc l’arrivée de la téléphonie IP sur le marché est un défi difficilement surmontable. L'une des solutions pour résoudre ce problème est de combiner le service téléphonique IP avec d'autres services classiques du monde IP, tels que le Web, la messagerie électronique … Le nombre de services à valeur ajoutée dans la téléphonie sur IP résultant de cette combinaison peut croître de manière exponentielle grâce à l'application du nouveau concept de réseau intelligent d'intermédiation Archises. le temps pour créer un service est beaucoup réduit via la chaîne de création de services dans Archises. Le nombre de services à valeur ajoutée résultant de cette transformation peut croître de manière exponentielle grâce à l'application du nouveau concept d’Archises services peuvent être fournis par l'extérieur, c'est-à-dire qu'ils peuvent être développés en dehors d’Archises et accessibles de façon transparente pour le client. RSCE est implémenté implicitement dans le serveur Archises. Grâce à celui-ci, les services d’Archises peuvent être créés exponentiellement. Les services sont hébergés sur des serveurs HTTP ou de fichiers. Le serveur Archises doit pouvoir accéder à ces serveurs de pages extérieurs : l’interfaçage est assuré par le serveur Services Extérieurs. Ces services sont développés en utilisant le langage PML et peuvent être statiques ou dynamiques (pages générées par des scripts ASP, PHP, etc). ToIP 24/32
Appel à partir du Web Make Call 2. Call manager SGBD 2’. Serveu Web (HTTP) Serveur applicatif 2’. 3. Dial “351-8567” Make Call 1. Browser HTML
Accès aux données à distance via Web PC TPS SGBD SGBD lire lire données données Serveur applicatif mettre à jour mettre à jour Réseau TCP/IP Données : Répertoire personnel : lire et MAJ Profil de renvoi : lire et MAJ Configuration de touches (une par une): lire et MAJ Journal : lire
Appel Sortant / Appel Entrant Réseau téléphonique Call manager Serveur applicatif Réseau TCP/IP