cours 1 : architecture web introduction

38
1 Cours 1 : Architecture Web Architecture Web Introduction Introduction TuanLoc Nguyen TuanLoc Nguyen

Upload: saad

Post on 08-Jan-2016

22 views

Category:

Documents


4 download

DESCRIPTION

Cours 1 : Architecture Web Introduction. TuanLoc Nguyen. Objectif du cours. Objectif : 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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Cours 1 : Architecture Web  Introduction

11

Cours 1 :

Architecture Web Architecture Web IntroductionIntroduction

TuanLoc NguyenTuanLoc Nguyen

Page 2: Cours 1 : Architecture Web  Introduction

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

Page 3: Cours 1 : Architecture Web  Introduction

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

Page 4: Cours 1 : Architecture Web  Introduction

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

Page 5: Cours 1 : Architecture Web  Introduction

55

Modèle du WebModèle du Web

(Cours 2)

Page 6: Cours 1 : Architecture Web  Introduction

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

Page 7: Cours 1 : Architecture Web  Introduction

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

Page 8: Cours 1 : Architecture Web  Introduction

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

Page 9: Cours 1 : Architecture Web  Introduction

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

Page 10: Cours 1 : Architecture Web  Introduction

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

Page 11: Cours 1 : Architecture Web  Introduction

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

Page 12: Cours 1 : Architecture Web  Introduction

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

Page 13: Cours 1 : Architecture Web  Introduction

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é

Page 14: Cours 1 : Architecture Web  Introduction

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)

Page 15: Cours 1 : Architecture Web  Introduction

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

Page 16: Cours 1 : Architecture Web  Introduction

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), …

Page 17: Cours 1 : Architecture Web  Introduction

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

Page 18: Cours 1 : Architecture Web  Introduction

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

Page 19: Cours 1 : Architecture Web  Introduction

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

Page 20: Cours 1 : Architecture Web  Introduction

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

(…)

Page 21: Cours 1 : Architecture Web  Introduction

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

Page 22: Cours 1 : Architecture Web  Introduction

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

Page 23: Cours 1 : Architecture Web  Introduction

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

Page 24: Cours 1 : Architecture Web  Introduction

2424

Page serveur dynamiquePage serveur dynamique

ScriptScript ASPASP PHPPHP JSPJSP AspxAspx

Page 25: Cours 1 : Architecture Web  Introduction

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,

Page 26: Cours 1 : Architecture Web  Introduction

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

Page 27: Cours 1 : Architecture Web  Introduction

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

Page 28: Cours 1 : Architecture Web  Introduction

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

Page 29: Cours 1 : Architecture Web  Introduction

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

Page 30: Cours 1 : Architecture Web  Introduction

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

Page 31: Cours 1 : Architecture Web  Introduction

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

Page 32: Cours 1 : Architecture Web  Introduction

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

Page 33: Cours 1 : Architecture Web  Introduction

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

Page 34: Cours 1 : Architecture Web  Introduction

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

Page 35: Cours 1 : Architecture Web  Introduction

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

Page 36: Cours 1 : Architecture Web  Introduction

3636

Serveur applicatifServeu Web (HTTP)

3. Dial “351-8567”

Appel à partir du Web

Call manager

1.

Browser HTML

SGBD

2’.

2’.

2.

Make Call

Page 37: Cours 1 : Architecture Web  Introduction

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

Page 38: Cours 1 : Architecture Web  Introduction

3838

Appel Sortant / Appel EntrantAppel Sortant / Appel Entrant

Serveur applicatif

Call manager

RéseauTCP/IP

Réseautéléphonique