Post on 08-Jan-2016
description
11
Cours 1 :
Architecture Web Architecture Web IntroductionIntroduction
TuanLoc NguyenTuanLoc Nguyen
22
Objectif du coursObjectif du cours
Objectif :Objectif : Architecture, évolution du WebArchitecture, évolution du Web Tendances du WebTendances du Web
Pre-requisPre-requis HTML /HTTPHTML /HTTP MySQL/Php/ApacheMySQL/Php/Apache SQL Server/ASP/IISSQL Server/ASP/IIS
33
ContenuContenu
1.1. Architecture WebArchitecture Web
2.2. Web et BDWeb et BD
3.3. Architectures intelligentes & Script Architectures intelligentes & Script
4.4. Web dans l’entrepriseWeb dans l’entreprise
44
1. Le World Wide Web1. Le World Wide Web
Système hypermédia distribué fonctionne sur Système hypermédia distribué fonctionne sur TCP/IPTCP/IP Simple à utiliser : I.E, Netscape, MozillaSimple à utiliser : I.E, Netscape, Mozilla PortablePortable Faible coûtFaible coût Mobilité Mobilité
• Sans frontièreSans frontière StandardStandard
• HTTP, URL, HTML, XMLHTTP, URL, HTML, XML Distribué : ActiveX,COM,CORBA,EJB,WebServicesDistribué : ActiveX,COM,CORBA,EJB,WebServices
55
Modèle du WebModèle du Web
(Cours 2)
66
Impact du WebImpact du Web
Client/serveur universel Client/serveur universel Un seul outil pour la communication intra- et Un seul outil pour la communication intra- et
interentreprise interentreprise • Intranet, extranet (les partenaires), internet (tous) Intranet, extranet (les partenaires), internet (tous) • Accès aux bases de données Accès aux bases de données
Adopté par toute l’industrie du logiciel Adopté par toute l’industrie du logiciel Nombreux produits, nombreux fournisseurs Nombreux produits, nombreux fournisseurs
De nombreux serveurs Web De nombreux serveurs Web Information et services Information et services
Le fondement de la société de l’information Le fondement de la société de l’information
77
Applications e-business Applications e-business E-business = utilisation professionnelle du Web E-business = utilisation professionnelle du Web
– – Au sein de l’entreprise : B2E Au sein de l’entreprise : B2E – – Avec les clients : B2C Avec les clients : B2C – – Avec les partenaires : B2B Avec les partenaires : B2B
Applications majeures Applications majeures – – Intranets Intranets – – Portails d’information d’entreprise Portails d’information d’entreprise – – Commerce électronique Commerce électronique – – Publication en lignePublication en ligne
88
IntranetIntranet
Serveur Web pour les besoins internes de l’entreprise Serveur Web pour les besoins internes de l’entreprise – – Réseau privé avec accès sécurisé à Internet Réseau privé avec accès sécurisé à Internet • • firewalls firewalls – – Utilisateurs connus Utilisateurs connus
Services avancés : visio-conférence Services avancés : visio-conférence
– – Services internes Services internes Publication d’information et workflow Publication d’information et workflow Forum de discussion, email et groupware Forum de discussion, email et groupware Réduit les coûts de communication et améliore l’efficacité Réduit les coûts de communication et améliore l’efficacité Problème : Problème :
– – Intégration avec les sources de données de l’entreprise Intégration avec les sources de données de l’entreprise
99
Portail d’information d’entreprise Portail d’information d’entreprise
Porte d’accès à l’information de l’entreprise Porte d’accès à l’information de l’entreprise – – Vue uniforme d’information agrégée à partir de Vue uniforme d’information agrégée à partir de sources de données hétérogènes sources de données hétérogènes
Applications existantes Applications existantes Bases de données Bases de données Systèmes documentaires Systèmes documentaires
– – Pour des utilisateurs spécifiques Pour des utilisateurs spécifiques Décideurs, employés, clients, fournisseurs Décideurs, employés, clients, fournisseurs
Problème : Problème : – – Difficile d’accéder à toute l’information de Difficile d’accéder à toute l’information de l’entreprise l’entreprise – – ConfianceConfiance
1010
E-commerceE-commerce Elimination des procédures manuelles (papier) entre les Elimination des procédures manuelles (papier) entre les
partenaires d’un commercepartenaires d’un commerce
Au minimum : B2C Au minimum : B2C – – Sites très connus, (Amazon.com, Dell Computers, etc.) Sites très connus, (Amazon.com, Dell Computers, etc.) – – Gestion de la relation client Gestion de la relation client – – Intégration avec les bases de données Intégration avec les bases de données – – Transactions électroniques sécurisées pour commander Transactions électroniques sécurisées pour commander • • Cartes de crédit, monnaie électronique, E-check Cartes de crédit, monnaie électronique, E-check
– – Pas d’automatisation du côté client Pas d’automatisation du côté client
Pleine puissance : B2B Pleine puissance : B2B – – Intégration de la chaîne de distribution avec d’autres Intégration de la chaîne de distribution avec d’autres fournisseursfournisseurs
1111
Gestion d’information Gestion d’information Gestion de l’information Gestion de l’information
indépendamment de tout indépendamment de tout programme, y compris celui qui programme, y compris celui qui l’a créé. l’a créé.
Principe = indépendance des Principe = indépendance des données données – – du stockage du stockage – – de la présentationde la présentation Présentation Présentation
Vue logique
stockage stockage
1212
Fonctionnement du Web Fonctionnement du Web
Pour consulter un document (ex: http://serveur/page.html) Pour consulter un document (ex: http://serveur/page.html) 1. Le navigateur demande à son DNS (Domain Name Server) de lui 1. Le navigateur demande à son DNS (Domain Name Server) de lui renvoyer l’adresse IP du serveur demandé dans l’URL (Uniform renvoyer l’adresse IP du serveur demandé dans l’URL (Uniform Ressource Locator) Ressource Locator)
2. Le navigateur envoie une requête à l’adresse IP pour demander 2. Le navigateur envoie une requête à l’adresse IP pour demander la page.html précisée dans l’URL. la page.html précisée dans l’URL.
3. le serveur envoie la page au client. 3. le serveur envoie la page au client.
4. le navigateur interprète la page et l’affiche. 4. le navigateur interprète la page et l’affiche.
HTTP : protocole de transfert permettant de demander un fichier au HTTP : protocole de transfert permettant de demander un fichier au serveur ainsi qu’une description de types des données associées. serveur ainsi qu’une description de types des données associées.
IP : Internet ProtocolIP : Internet Protocol
1313
2. Couplage BD et Web2. Couplage BD et Web
Pourquoi coupler ? Pourquoi coupler ?
Deux domaines qui se sont développés Deux domaines qui se sont développés indépendamment mais qui ont de nombreux indépendamment mais qui ont de nombreux points communs : points communs : - Ensemble important de données (modélisation, - Ensemble important de données (modélisation, stockage, indexation) stockage, indexation) - Interrogation (langage déclaratif) - Interrogation (langage déclaratif) - Multi-utilisateurs - Multi-utilisateurs - Performances - Performances - Fiabilité - Fiabilité
1414
Données du Web Données du Web
Données hétérogènes, fortement corrélées, Données hétérogènes, fortement corrélées, évoluant souvent évoluant souvent
La gestion de ces données avec un SGF et La gestion de ces données avec un SGF et un système d’exploitation pose des un système d’exploitation pose des problèmes : problèmes : gestion des liens difficile gestion des liens difficile gestion de l’évolution (pas d’indépendance gestion de l’évolution (pas d’indépendance
logique-physique) logique-physique) performances moyennes (pas ou peu d’index) performances moyennes (pas ou peu d’index)
1515
Apports des SGBD Apports des SGBD
Gestion de gros volumes d’information Gestion de gros volumes d’information Bonnes performances d’accès (index, stockage, Bonnes performances d’accès (index, stockage,
gestion du disque) gestion du disque) Fiabilité des données (cohérence, sûreté de Fiabilité des données (cohérence, sûreté de
fonctionnement, sûreté d’accès) fonctionnement, sûreté d’accès) Partage et accès concurrents (transactions) Partage et accès concurrents (transactions) Productivité (indépendance physique-logique, Productivité (indépendance physique-logique,
réutilisation, outils) réutilisation, outils) Evolutivité (évolution du schéma) Evolutivité (évolution du schéma) Langage de requêtes et optimisationLangage de requêtes et optimisation
1616
Accès base de données Accès base de données 1. Le client http lance une demande de page Web (URL statique ou dynamique) 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 + 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. 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 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 : lance le programme applicatif avec les paramètres, en suivant un protocole :
• • CGI : Common Gateway Interface CGI : Common Gateway Interface • • ASP, ASPx, PHP, JSPASP, ASPx, PHP, JSP
3. Le programme applicatif : 3. Le programme applicatif : a. extrait les données nécessaires du SGBD a. extrait les données nécessaires du SGBD b. produit la page HTML incluant ces données 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 4. Le SGBD … fait son travail de SGBD (reçoit des requêtes et renvoie les résultats) résultats)
Solutions du marché : Solutions du marché : • • solutions SGBD +/- intégrées (+ : Oracle, Informix, - : Sybase, DB2) solutions SGBD +/- intégrées (+ : Oracle, Informix, - : Sybase, DB2) • • solutions + générales : ASP (MS-Windows), JSP (JAVA), …solutions + générales : ASP (MS-Windows), JSP (JAVA), …
1717
Limitations du couplage HTML-BD Limitations du couplage HTML-BD
Solutions propriétaires Solutions propriétaires Pas de protocole pour publier les données Pas de protocole pour publier les données
– – SQL n’est pas conçu pour le Web SQL n’est pas conçu pour le Web Pas de format d’échange de données standard : Pas de format d’échange de données standard : HTML est un format de présentation :HTML est un format de présentation :
– – Mélange présentation et contenu Mélange présentation et contenu – – Pas de structure, pas de sémantique, pas de Pas de structure, pas de sémantique, pas de contrainte d’intégrité contrainte d’intégrité – – Perd la structure (schéma) provenant de la BD Perd la structure (schéma) provenant de la BD
1818
AméliorationAmélioration
La règle d’or : le contenu doit être abstrait et La règle d’or : le contenu doit être abstrait et indépendant du stockage et de la présentation indépendant du stockage et de la présentation
– – Permet l’intégration uniforme de données Permet l’intégration uniforme de données
hétérogènes hétérogènes
– – Permet des applications dynamiques Permet des applications dynamiques La présentation peut être différente selon le médium, La présentation peut être différente selon le médium, le temps, la requête ou le profil de l’utilisateur le temps, la requête ou le profil de l’utilisateur
1919
Primary programming technology
Low-level programming ( machine code, Assembler )
1950
High-level programming ( Fortran, Cobol, Basic, …)
1960 1970 1980 1990 2000 2010
Structured programming ( Pascal, C, C++, …)
Object-Oriented Programming ( C++, Java, Delphi ...)
Component Oriented Programming
( COM, JavaBeans, …)
Component Oriented Web Programming
( C#, Forte Java, …)
2020 2030 2040 2050 2060
Service-Assemblage/Creation Programming
( Web Services…)
2020
Primary programming - OS models
Low-level programming ( IBM Mainframe OS )
1950
High-level programming ( IBM Mainframe OS… )
1960 1970 1980 1990 2000 2010
Structured programming ( Unix … )
Object-Oriented Programming ( Unix, MS DOS, ... )
Component Oriented Programming
( Windows, Unix, Linux, …)
Component Oriented Web Programming
( DotNET, JEEE, …)
2020 2030 2040 2050 2060
Service-Assemblage/Creation Programming
(…)
2121
Intelligence dans l’architecture x-tiersIntelligence dans l’architecture x-tiers
Application to application(B2B/ B2C)
Web services
Web services
XML/SOAP
Architecture “n-tiers”
Evolution de l’architecture
Person to person(C2C)
Data echange
PC
PC
Architecture 1-tier
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
2222
XML pour l’échange XML pour l’échange de données universel de données universel
Le langage XML (Extensible Markup Language)Le langage XML (Extensible Markup Language)– – Standard du W3C Standard du W3C – – Décrit le contenu, pas la présentation Décrit le contenu, pas la présentation
• • Structure, type, schéma, requêtes, etc. Structure, type, schéma, requêtes, etc. – – Une base forte : XML est un sous-ensemble Une base forte : XML est un sous-ensemble de SGML de SGML – – Fournit l’indépendance des données au Fournit l’indépendance des données au stockage et à la présentation : supporte la règle stockage et à la présentation : supporte la règle d’or d’or
Facilite l’échange de données entre applicationsFacilite l’échange de données entre applications
2323
Web ServicesWeb Services
UDDI(seek Web Services-
Xlink/XPath)
SOAP(how to call
via XML)
WSDL(call syntactic &semantic –XML Schema)
Call semantic(message passing-RPC)
SOAP message(HTTP/XML)
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é.
Web Services
Web Services
2424
Page serveur dynamiquePage serveur dynamique
ScriptScript ASPASP PHPPHP JSPJSP AspxAspx
2525
Couplage HTML-bases de Couplage HTML-bases de donnéesdonnées
Serveur HTTP dynamique Serveur HTTP dynamique – – Basé sur CGI Basé sur CGI – – Serveur Web dédié aux BD Serveur Web dédié aux BD
Oracle WebDB, VersantWeb, etc. Oracle WebDB, VersantWeb, etc. Pages serveurs dynamiques Pages serveurs dynamiques
– – MS Active Server Page (ASP) MS Active Server Page (ASP) – – Java Server Page (JSP) Java Server Page (JSP) – – PHP, ASPx,PHP, ASPx,
2626
Accès Base de donéesAccès Base de donées
ScriptScript Problème :Problème :
Passer à l’échellePasser à l’échelle Solutions propriétairesSolutions propriétaires
2727
IIS
Composants ADO
Base de données
<% %>
Browser HTML
Serveur WebWindows (NT,Y2K)
Moteur de script (VB Script)
ASP (Active Server Page)ASP (Active Server Page)
AccessSQL Server
…
HTTPCOM
Presentation Business logic logic Data Data services
HTTP
HTML
ASP
2828
HTML authorHTML author
Content, layout, Content, layout, designdesign <HTML><HTML>
<H1>Today's trade summary for: </H1> <H1>Today's trade summary for: </H1> <TABLE><TABLE><TR><TD>Open</TD><TD>Close</TD><TD>Volume</TD></TR><TR><TD>Open</TD><TD>Close</TD><TD>Volume</TD></TR><TR><TD> </TD><TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR><TD> </TD></TR></TABLE></TABLE><H2>Time of report: </H2><H2>Time of report: </H2></HTML></HTML>
NASDAQNASDAQ
Systems developerSystems developer
Component andComponent anddatabase developmentdatabase development
VB Script VB Script ExpressionsExpressions
Script writerScript writer
<% <% TSym=Request.QueryString("TickerSymbol")TSym=Request.QueryString("TickerSymbol") SetNObj=Server.CreateObject("NASDAQ.TickerObj") SetNObj=Server.CreateObject("NASDAQ.TickerObj") if NObj.GetCompany(TSym)=False thenif NObj.GetCompany(TSym)=False then Server.Redirect("ticker/entryform.htm")Server.Redirect("ticker/entryform.htm")%>%> <%=NObj.CompanyName%><%=NObj.CompanyName%>
<%=NObj.Open%> <%=NObj.Open%> <%=NObj.Close%><%=NObj.Close%> <%=NObj.Volume%><%=NObj.Volume%>
<%=time()%> <%=date()%><%=time()%> <%=date()%></HTML></HTML>
Component Component invocationinvocation
Active Server PagesDevelopment flow
2929
Fonctions MySQL
Base de données
<?php ?>
Browser HTML
Serveur WebWindows (NT,Y2K,Linux)
Moteur de script (PHP Script)
PHP Hypertext PreprocessorPHP Hypertext Preprocessor
MySQLAccess
…A
pache
Presentation Business logicBusiness logic Data Data services
(IIS)
HTTP
HTTP
HTML
PHP
3030
ASP versus JSP ASP versus JSP ASPASP
– – combinent HTML, VB Scripts et ActiveX combinent HTML, VB Scripts et ActiveX – – efficace avec les ActiveX Data Objects (ADO) efficace avec les ActiveX Data Objects (ADO) • • Interface DCOM pour l’accès BD via ODBC ou OLE-DB Interface DCOM pour l’accès BD via ODBC ou OLE-DB
– – Outils de développement intégrés JSPOutils de développement intégrés JSP
JSPJSP– – Combinent HTML, Java et Java Beans Combinent HTML, Java et Java Beans – – Accès aux composants EJB (serveurs) Accès aux composants EJB (serveurs)
• • Interface JDBC Interface JDBC – – Standard, proposé par tous les serveurs d’applications Standard, proposé par tous les serveurs d’applications J2EE J2EE
3131
Servlet - JSP Java Server PageJava 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
3232
ASPx : une approche composantASPx : une approche composant
ASP.NET ASP.NET est basé sur un modèle composant coté serveurest basé sur un modèle composant coté serveur repose sur le Framework .NET (coté serveur)repose sur le Framework .NET (coté serveur) prend en compte les différentes capacités des navigateurs prend en compte les différentes capacités des navigateurs
(support JavaScript, DHTML, …)(support JavaScript, DHTML, …) Ne nécessite rien de particulier sur le clientNe nécessite rien de particulier sur le client
ComposantsComposants
ASPXASPX .NET.NET
HtmlHtmlIEIE
HtmlHtmlOpéraOpéra
ServeurServeur ClientClient
3333
Les pages ASP.NET sont compiléesLes pages ASP.NET sont compilées Le contenu et le traitement sont séparésLe contenu et le traitement sont séparés Les développeurs et les graphistes peuvent, en Les développeurs et les graphistes peuvent, en
standard, travailler indépendammentstandard, travailler indépendamment
Form1.aspForm1.asp Form1.aspxForm1.aspx Form1.aspx.vbForm1.aspx.vb
<balises><balises> codecode
codecode
Fichiers distincts / séparation logiqueUn seul fichier
ASP / PHPASP / PHP ASP.NETASP.NET
<balises>codecode
codecode
<balises>
Form1.aspxForm1.aspx
ASPx vs ASP/PHP classiqueASPx vs ASP/PHP classique
3434
4. Web dans l’entreprise4. Web dans l’entreprise
Serveur applicatif dans l’entreprise Serveur applicatif dans l’entreprise Simple = serveur Web Simple = serveur Web
– – Petites applications, pas de transactions Petites applications, pas de transactions Serveur d’entreprise = serveur Web + Serveur d’entreprise = serveur Web +
– – Support des grandes applications, distribuées Support des grandes applications, distribuées standardstandard
– – Support des transactions Support des transactions – – Support des composants Support des composants – – Support de XML Support de XML – – Outils de développementOutils de développement
-> Création de services à valeur ajoutée-> Création de services à valeur ajoutée
3535
Serveur applicatif
Call manager
SGBD
RéseauTCP/IP
Environnement de Création de Services
ToIP
24/32
Exemple : Web dans l’entreprise
IP
IP
3636
Serveur applicatifServeu Web (HTTP)
3. Dial “351-8567”
Appel à partir du Web
Call manager
1.
Browser HTML
SGBD
2’.
2’.
2.
Make Call
3737
Accès aux données Accès aux données à distance via Web à distance via Web
Serveur applicatif
SGBD
RéseauTCP/IP
TPS SGBDPC
lire
donnéesdonnées
mettre à jourmettre à jour
lire
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
3838
Appel Sortant / Appel EntrantAppel Sortant / Appel Entrant
Serveur applicatif
Call manager
RéseauTCP/IP
Réseautéléphonique