InternetIntranet - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

InternetIntranet

Description:

Conserver l'architecture classique en y ins rant un syst me ... Langages sp cifiques : Javascript, Vbscript, DHML. Gestion des interaction avec utilisateurs ... – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 42
Provided by: LISI53
Category:

less

Transcript and Presenter's Notes

Title: InternetIntranet


1
Internet/Intranet
  • Les architectures

2
Les techniques de développement de SIW
  • Développement spécifique propriétaire
  • CGI, SSI, Cookies
  • Conserver l'architecture classique en y insérant
    un système propriétaire
  • SapphireWeb, ColdFusion, WebObjects
  • Adapter le serveur HTTP
  • ISAPI(ASP), NSAPI (LiveWire), Modules Apache,
    PSP, JSP
  • Adapter le serveur de données
  • Oracle Web Server

3
Les approches standards
  • Langages
  • CGI (Scripts indépendant exécutés par la machine
    serveur)
  • SSI (Scripts exécutés par le serveur Web)
  • JavaScripts (Scripts exécutés par le client)
  • Protocole http
  • Cookies (Identifiants échangés entre client et
    serveur)
  • Relocation (Renvoie le client sur une autre page)
  • Push
  • Pages Web à linitiatives du serveur ou
  • Demandées automatiquement par le client

4
CGI
5
Approche Simple Exemple
  • set heading off
  • select 'Liste des laboratoires' from dual
  • /
  • set heading on
  • select from laboratoires
  • /
  • exit

!/usr/bin/ksh echo Content-Type
text/html echo export ORACLE_HOME/oracle export
ORACLE_SIDINSA echo "ltPREgt" /oracle/bin/sqlplus
-s bcb/bcb _at_/home/demo/bidon.sql echo "lt/PREgt"
6
Approche Simple Langage
  • Accès aux bases de données et Interrogation
  • Analyse des résultats
  • Présentation sous une forme compatible HTML
  • Approche par les scripts / langages Compilés

7
Exemple Simple PERL
!/usr/local/bin/perl Accès
à la Base use DBI stat_size_indice
7 longueur_nom_medicament 9 MaxRecherche20
my(drh) DBI-gtinstall_driver('Oracle') die
"Can't install driver\n" dbh
drh-gtconnect('INSA', 'wwwapp', 'alix0') die
"Can't connect\n" my cursor
dbh-gtprepare(ltlt"REQUETE" select
tmed_cip, tmed_libelle, tgal_pluriel from
t_medicament, t_forme_galenique where
(rownum lt MaxRecherche and t_medicament.tgal_
idt_forme_galenique.tgal_id) order by
tmed_libelle REQUETE ) die "Can't
prepare\n" cursor-gtexecute() die "Can't
execute\n"
8
Exemple suite
  • Formatage de la réponse
  • print "Content-type text/html\n\n"
  • print "ltHTMLgtltBODYgtltTABLE BORDER1 CELLSPACING1
    CELLPADDING0gtltTRgt"
  • nb_medicaments_dans_ligne 0
  • while ( (cip_medicament, nom_medicament,
    forme_galenique) cursor-gtfetchrow())
  • nom_medicament substr(
    nom_medicament, 0, longueur_nom_medicament)
  • if ((nb_medicaments_dans_ligne) 5)
  • print "lt/TRgtltTRgt"
  • nb_medicaments_dans_ligne 1
  • print "ltTDgt"
  • chop (forme_galenique)
  • nom_medicament_avec_plus
    nom_medicament
  • nom_medicament_avec_plus s/ /\/g
  • print "ltA HREF\"descmedic.cgi?nom_medica
    ment_avec_pluscip_medicament\"lt/Agt"
  • print "nom_medicament\n"
  • print "lt/TDgt"
  • print "lt/TRgtlt/TABLEgtlt/HTMLgt"

9
Javascript
  • Interprété sur le client JavaScript (Netscape)
    / Jscript (Microsoft)
  • Langage événementiel ?
  • Arbre de composants documentaires
  • Fonction d'accès et de manipulation des
    composants de l'arbre
  • Utilisation ?
  • http//Stars.com/Authoring/JavaScript
  • http//netscape.developper.com/

10
JavaScript Exemples
lt!-- function check(p) j0 while
(jltp.length) p.elementsj.checked
true if (p.elementsj.onclick)
p.elementsj.onclick() j
function show(o) var s "" for
(i in o) si""oi" ""\n"
wwindow.open( 'aboutblank' )
w.document.open( "text/plain" )
w.document.writeln( s ) w.document.close()
--gt
ltHTMLgt ltHEADgt lt SCRIPT SRC"jsinfo.js"gtlt/SCRIPTgt
lt/HEADgt ltBODYgt ltFORM NAMEungt ltINPUT
TYPECHECKBOX NAMEchk1 onclick'alert("hello"
)'gt ltINPUT TYPECHECKBOX NAMEchk2gt ltINPUT
TYPECHECKBOX NAMEchk2gt lt/FORMgt ltA HREF
onClick'javascriptshow(un)'gtalt/Agt ltA HREF
OnClick'javascriptshow(un.elements1)'gt1lt/Agt lt
A HREF onClick'javascriptshow(un.elements0)'
gt0lt/Agt ltA HREF onClick'javascriptcheck(un)'gta
ctiverlt/Agt ltIMG NAMEMonImage BORDER0
SRC"image1.gif" onMouseOver'MonImage.src"imag
e2.gif" onMouseOut'MonImage.src"image1.gif"gt lt
/BODYgtlt/HTMLgt
11
HTTP Cookies
  • Informations définies par le serveur et stockées
    sur le client
  • Exemple
  • Set-Cookie IdSession123123 path/annuaire
  • Set-Cookie IdUsersteph path/
  • gt GET /annuaire./toutlemonde.html
  • Cookie IdSession123123 IdUsersteph
  • Utilisation ?

12
Client Pull / Serveur Push
Le serveur programme le client pour aller
chercher l'information
lthtmlgtltheadgtltmeta http-equiv"Refresh"
content"5 url"http//www.insa-
lyon.fr/"gt lttitlegtkkdssdkjskjdslt/titlegtlt/he
adgt ltbodygtCa va partir ! lt/bodygtlt/htmlgt
print ("Content-type multipart/x-mixed-replace
boundaryFICHIER_SUIVANT\n") print
("\n--FICHIER_SUIVANT\n") print ("Cha
Marche") sleep(3) print ("\n--FICHIER_SUIVANT\n"
) print ("Cha Marche")
Utilisation ?
13
HTTP location
  • En-tête http
  • location http//www.insa-lyon.fr
  • Demande au client daller rechercher la ressource
    ailleurs
  • Exemple
  • !/bin/sh
  • echo  location http//serveur2/ 
  • exec  /bin/serveur2 
  • Utilisations ?

14
Architecture globale
15
Architecture Web
16
Server Side Include Schéma
17
SSI
  • Server Side Include (.shtml)
  • Tag interprété par le serveur
  • lt!- commande paramètre(s)"argument"-gt
  • Commandes
  • lt!- echo var"SERVER_NAME" -gt
  • lt!- include file"truc.html" -gt(virtual)
  • lt!- exec cmd"/bin/ps" -gt (cgi)
  • Extensions
  • php3 http//www.php3.net
  • Microsoft ASP
  • Utilisation ?

18
Php exemple
  • ... if (userLogin) / If user has provided a
    login /
  • rowdb-gtgetAuth(userLogin, userMachine,
    userTel, userBur, userNom, userPrenom)
  • if (row)?gt
  • ltbgtltcentergtEst-ce bien votre connexion
    ?lt/bgtlt/centergtltBRgt
  • Login lt?echo row"userLogin"?gtltbrgt
  • lthrgt
  • Nom lt?echo row"userNom"?gtltbrgt
  • Prénom lt?echo row"userPrenom"?gtltbr
    gt
  • Mail lt?echo row"userAdress"?gtltbrgt
  • Téléphone lt?echo row"userTel"?gtltbr
    gt
  • Bureau lt?echo row"userBur"?gtltbrgt
  • ltFORM ACTION"access.php3"
    METHODPOSTgt
  • ltINPUT TYPEhidden nameuserLogin
    value"lt?echo row"userLogin"?gt"gt
  • ltINPUT TYPEhidden nameuserMachine
    value"lt?echo row"userMachine"?gt"gt
  • ltINPUT TYPEhidden nameuserAdress
    value"lt?echo row"userAdress"?gt"gt
  • ltINPUT TYPEhidden nameuserTel
    value"lt?echo row"userTel"?gt"gt
  • ltINPUT TYPEhidden nameuserBur
    value"lt?echo row"userBur"?gt"gt
  • ltinput typehidden nameuserNom
    value"lt?echo row"userNom"?gt"gt...

19
Approches propriétaires
  • Conserver l'architecture classique en y insérant
    un système propriétaire
  • SapphireWeb, ColdFusion, WebObjects
  • Adapter le serveur HTTP
  • ISAPI(ASP), NSAPI (LiveWire), Modules Apache
  • Adapter le serveur de données
  • Oracle Web Server, MIIS

20
Cold Fusion
ltHTMLgt ltCFQUERY NAME"Resultats"
DATASOURCE"INSA"gt SELECT
NOM_LABORATOIRE from laboratoires lt/CFQUERYgt
ltCFTABLE QUERY"Resultats"gt ltCFCOLS
WIDTH"30" TEXT"ltLIgt NOM_LABORATOIRE"gt
lt/CFTABLEgt
21
Sapphire Web
22
Web Objects (Next)
23
Netscape LiveWire
ltHTLMgtltBODYgtltSERVERgt if (database.connected())
database.beginTransaction() qs"SELECT
NOM_LABORATOIRE from laboratoires"
resultsdatabase.cursor(qs)
while(result.next())
write("ltLIgtresults.NOM_LABORATOIRE
")gt results.close()
database.commitTransaction() lt/SERVERgtlt/HTMLgt
24
Approche Oracle
  • Oracle Web Server (gtOWApplicationS V3)
  • Serveur Standard Web Listener
  • CGI 'like' Web Request Broker (WRB)
  • Toolkit Ensemble de procédures cataloguées
  • HTP HyperText Procedures
  • HTF HyperText Functions
  • htp.print(htf.italic('coucou'))
  • OWA_UTIL utilitaires
  • owa_util.tableprint
  • OWA procédures internes3

25
Architecture OWS
26
OWS Exemple 1
  • create or replace
  • procedure afftab(nom_table in varchar2)
  • is
  • x boolean
  • begin
  • xowa_util.tableprint(nom_table, 'BORDER')
  • end
  • /

lthtmlgtltbodygt ltform METHOD"POST"
ACTION"http//lisiaix0/owa/afftabgt Nom de la
table ltINPUT NAME"nom_table" TYPE"TEXT"
VALUE""gt ltINPUT TYPE"SUBMIT"
VALUE"Afficher"gt lt/formgtlt/bodygtlt/htmlgt
27
OWS Exemple 2
create or replace procedure listtables is cursor
c_tables is select table_name from
user_tables begin htp.htmlopen htp.headopen
htp.htitle('Liste des tables') htp.headclose h
tp.bodyclose for enreg in c_tables
loop htp.print (enreg.table_name) htp.br en
d loop htp.bodyclose htp.htmlclose end /
28
Approche Microsoft
"Interface entre Web et bases de données sous
Windows NT" A.Homer, Darren Gill, S.JakabEyrolles
1998
29
Approche IDC
30
Exemple
demo.idc DataSource INSA UserName
wwwapp Passwor d ????? Template
listeLabo.htx SQLStatement SELECT from
laboratoires
listLabo.htx lthtmlgtltbodygt ltBeginDetailgt Le nom
du labo est ltNOM_DU_LABORATOIREgtltBRgt ltEndD
etailgt lt/bodygt
31
OLEISAPI
32
Exemple
Serveur OLE toto.dll Public Sub ReturnBonjour
(strValuePairsIn As String, strHTMLResponse As
String) strHTMLResponse "Content-Type
text/html" vbCrLF "Bonjour" End Sub Public
Sub main() End Sub
http//serveurNT/utilisat/OLEISAPI.dll/toto.Return
Bonjour
33
Quelle approche choisir ?
34
Architectures Web
  • Web de consultation
  • Documentation
  • Piloté par lutilisateur
  • Internet
  • Web Applicatif
  • Applications
  • Piloté par lapplication serveur
  • Intranet

35
Programmation
  • Langages
  • Compilés C, C ...
  • Interprétés Javascript, Perl, TCL, Python ...
  • API et Serveurs Spécialisé
  • NS_API, MS_ API, LiveWire, HyperWave
  • Langages de balises
  • ColdFusion, WebObject
  • PHP/FI
  • Outils
  • Sapphire Web
  • LiveWire

36
Exécution de code
Serveur CGI shtml Serveur API Servlets
  • Clients
  • Plug-ins
  • Scripts Documentaires
  • Applets

37
Sur le client
  • Langages standards Java, Python, Tcl
  • Langages spécifiques Javascript, Vbscript, DHML
  • Gestion des interaction avec utilisateurs
  • Réduire les échanges sur le réseau
    (information, contrôle, cache, action sur les
    éléments du document)
  • - Code interprété / Machine Virtuelle
  • - Vitesse du client
  • gt Compatibilité/Portage
  • Write Once, Run Everywhere

38
Sur le serveur
  • Langages standards C, C, Java, Tcl, Python,
    Perl
  • Langages spécifiques LiveWire, WebObject, Cold
    Fusion
  • Gestion des interactions
  • Applications complètes
  • Traitement de chaînes
  • Accès au réseau
  • Flux de données
  • ! gestion des sessions

39
Architectures 3 tiers
40
Serveur Transactionnel
41
Transactions sur le Web
Write a Comment
User Comments (0)
About PowerShow.com