architecture web. accès aux données développement spécifique conserver l'architecture...
TRANSCRIPT
![Page 1: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/1.jpg)
Architecture Web
Logiciel
passerelle
Client
Connexion
spécifique
Serveur
WebCGI
HTTP/html
Connexion
virtuelle
1er tronçon
2nd tronçon
Processus d’utilisation
![Page 2: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/2.jpg)
Accès aux données
•Développement spécifique
•Conserver l'architecture classique en y insérant un système propriétaire
•SapphireWeb, ColdFusion, WebObjects
•Adapter le serveur HTTP
•ISAPI(ASP), NSAPI (LiceWire), Modules Apache
•Adapter le serveur de données
•Oracle Web Server
![Page 3: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/3.jpg)
Approche Simple : CGI
Poste client Client Web
Serveur Web
.cgi
![Page 4: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/4.jpg)
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_SID=INSA
echo "<PRE>"
/oracle/bin/sqlplus -s bcb/bcb @/home/demo/bidon.sql
echo "</PRE>"
![Page 5: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/5.jpg)
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
![Page 6: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/6.jpg)
Exemple Simple PERL
#!/usr/local/bin/perl # ****************** Accès à la Baseuse DBI;$stat_size_indice = 7;$longueur_nom_medicament = 9;$MaxRecherche=20;my($drh) = DBI->install_driver('Oracle') || die "Can't install driver\n";$dbh = $drh->connect('INSA', 'wwwapp', 'alix0') || die "Can't connect\n";my $cursor = $dbh->prepare(<<"REQUETE" select tmed_cip, tmed_libelle, tgal_pluriel from t_medicament, t_forme_galenique where (rownum <= $MaxRecherche and t_medicament.tgal_id=t_forme_galenique.tgal_id)
order by tmed_libelleREQUETE ) || die "Can't prepare\n";$cursor->execute() || die "Can't execute\n";
![Page 7: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/7.jpg)
Exemple suite#Formatage de la réponse
print "Content-type: text/html\n\n" ;
print "<HTML><BODY><TABLE BORDER=1 CELLSPACING=1 CELLPADDING=0><TR>";
$nb_medicaments_dans_ligne = 0;
while ( ($cip_medicament, $nom_medicament, $forme_galenique) = $cursor->fetchrow()) {
$nom_medicament = substr( $nom_medicament, 0, $longueur_nom_medicament);
if (($nb_medicaments_dans_ligne)++ == 5) {
print "</TR><TR>";
$nb_medicaments_dans_ligne = 1;
}
print "<TD>";
chop ($forme_galenique);
$nom_medicament_avec_plus = $nom_medicament;
$nom_medicament_avec_plus =~ s/ /\+/g;
print "<A HREF=\"descmedic.cgi?$nom_medicament_avec_plus=$cip_medicament\"</A>";
print "$nom_medicament\n";
print "</TD>"; }
print "</TR></TABLE></HTML>";
![Page 8: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/8.jpg)
Approche Oracle
• Oracle Web Server (=>OWApplicationS 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
![Page 9: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/9.jpg)
Architecture OWS
Poste client Client Web
Web Listenerweb
Dispatcher
Procéduresstockées
WRB API
cartouchePL/SQL
cartoucheJava
WRBX WRBX WRBX
![Page 10: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/10.jpg)
OWS Exemple 1
create or replace
procedure afftab(nom_table in varchar2)
is
x boolean;
begin
x:=owa_util.tableprint(nom_table, 'BORDER');
end;
/
<html><body>
<form METHOD="POST" ACTION="http://lisiaix0/owa/afftab>
Nom de la table
<INPUT NAME="nom_table"
TYPE="TEXT" VALUE="">
<INPUT TYPE="SUBMIT"
VALUE="Afficher">
</form></body></html>
![Page 11: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/11.jpg)
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;
htp.bodyclose;
for enreg in c_tables loop
htp.print (enreg.table_name);
htp.br;
end loop
htp.bodyclose;
htp.htmlclose;
end;
/
![Page 12: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/12.jpg)
Approche Microsoft
Apps CGIFiltres, etc...
Poste client Client Web IISISAPI
Procéduresstockées
Internet DataBaseConnector (IDC) Microsoft dbWeb
Pilote ODBC
DLL OLEISAPI
Scripts ServeurActiveX
Microsoft IndexServer
Autresfonctions
"Interface entre Web et bases de données sous Windows NT" A.Homer, Darren Gill, S.JakabEyrolles 1998
![Page 13: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/13.jpg)
Approche IDC
Requête
ODBC
Serveur
IDCSQL
ModèleHTX
URL du modèleet varaibles
Réponse
HTML
Résultats
![Page 14: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/14.jpg)
Exemple
demo.idc
DataSource: INSA
UserName : wwwapp
Passwor d : ?????
Template : listeLabo.htx
SQLStatement :
+SELECT * from laboratoires
listLabo.htx
<html><body>
<%BeginDetail%>
Le nom du labo est: <%NOM_DU_LABORATOIRE%><BR>
<%EndDetail%>
</body>
![Page 15: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/15.jpg)
OLEISAPI
Requête
ODBC
Serveur
OLEISAPI.dll
Réponse
HTML
Résultats
DLL ServeurOLE
SQL
Autresfonctions
![Page 16: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/16.jpg)
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.ReturnBonjour
![Page 17: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/17.jpg)
Netscape LiveWire
RequêteODBC
Nescape Enterprise Serveur
HTML, HTTP
Résultats
LiveWireManager
SQL
HTML,JavaScript
<HTLM><BODY><SERVER>
if (database.connected()) {
database.beginTransaction();
qs="SELECT NOM_LABORATOIRE from laboratoires";
results=database.cursor(qs);
while(result.next())
{
write("<LI>results.NOM_LABORATOIRE")>
}
results.close();
database.commitTransaction();
}</SERVER></HTML>
![Page 18: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/18.jpg)
Cold Fusion
Requête
ODBCServer WebHTML, HTTP
Résultats
ServerApplicatif Cold
Fusion
SQL
HTML, CFML
HTML,ISAPI,NSAPI,
CGI
<HTML>
<CFQUERY NAME="Resultats" DATASOURCE="INSA">
SELECT NOM_LABORATOIRE from laboratoires
</CFQUERY>
<CFTABLE QUERY="Resultats">
<CFCOLS WIDTH="30" TEXT="<LI> #NOM_LABORATOIRE">
</CFTABLE>
![Page 19: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/19.jpg)
Sapphire Web
Requête
Server WebHTMLHTTP Extension
Serveur Web
TemplateHTML
ISAPI,NSAPI
Executables
Gestionnairede serverapplicatif
Sapphire/WebCGIs
![Page 20: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/20.jpg)
Web Objects (Next)
Requête
Server WebHTMLHTTP Web Object
Adapteur
TemplateHTML
ISAPI,NSAPI
WebObjectsApplication
Executables
Fichiers dedéclaration
WebScript File
![Page 21: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/21.jpg)
Quelle approche choisir ?
Maintenabilité
Coût
Efficacité
Simplicité Modularité Portabilité ExtensibilitéHaute
Performance
![Page 22: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/22.jpg)
Architectures Web
• Web de consultation– Documentation– Piloté par l’utilisateur– Internet
• Web Applicatif– Applications– Piloté par l’application serveur– Intranet
![Page 23: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/23.jpg)
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
![Page 24: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/24.jpg)
Execution de code
• Serveur
– CGI
– shtml
– Serveur API
– Servlets
• Clients
– Plug-ins
– Scripts Documentaires
– Applets
![Page 25: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/25.jpg)
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
• ==> Compatibilité/Portage – Write Once, Run Everywhere
![Page 26: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/26.jpg)
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
![Page 27: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/27.jpg)
Données
Application
Moniteur transactionel SGBD
Processus d'interaction
utilisateur
Processus d'utilisation
Processus de traitement Processus de Données
Serveur d'affichage
Client d'affichage
Client de traitement
Serveur de traitement
Serveur de données
Client de données
1er Tier 2nd Tier 3ème Tier
Poste client
GUI
Architectures 3 tiers
![Page 28: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/28.jpg)
Serveur Transactionnel
![Page 29: Architecture Web. Accès aux données Développement spécifique Conserver l'architecture classique en y insérant un système propriétaire SapphireWeb, ColdFusion,](https://reader034.vdocuments.net/reader034/viewer/2022051515/551d9d8d497959293b8c2f26/html5/thumbnails/29.jpg)
Transactions sur le Web