Le serveur HTTPd WASD JeanFranois Pironne Sommaire Caractristiques

  • Slides: 49
Download presentation
Le serveur HTTPd WASD Jean-François Piéronne

Le serveur HTTPd WASD Jean-François Piéronne

Sommaire Caractéristiques l Architecture générale l Performances l Intégration dans Open. VMS l

Sommaire Caractéristiques l Architecture générale l Performances l Intégration dans Open. VMS l

Caractéristiques Implémentation complète HTTP/1. 0 l Méthodes "GET", "HEAD", "POST“ et "PUT" l Services

Caractéristiques Implémentation complète HTTP/1. 0 l Méthodes "GET", "HEAD", "POST“ et "PUT" l Services (serveurs) virtuels l Protection des transferts via la technologie “Secure Sockets Layer” (SSL) l Support des cookies l

Caractéristiques Service proxy, avec cache local, pour toutes les méthodes HTTP/1. 0, plus la

Caractéristiques Service proxy, avec cache local, pour toutes les méthodes HTTP/1. 0, plus la méthode CONNECT (permettant le “SSL tunnelling”) l Fonctionnalité "if-Modified-Since: " / "304 not Modified" (envoie du document seulement s’il a été modifié depuis une date spécifiée par le client) l

Caractéristiques Http/1. 0 de-facto connexions persistantes (i. E. "Keep-Alive: “) l Navigation dans les

Caractéristiques Http/1. 0 de-facto connexions persistantes (i. E. "Keep-Alive: “) l Navigation dans les répertoires (générique et VMS-style) l CGI scripting par sous-process ou par process détaché (configurable, automatique, choix du contenu MIME) l n Choix du compte exécutant le script dans le cas d’un process détaché (Open. VMS V 6. 2 minimum)

Caractéristiques l Scripts persistants n n réduction du temps de latence, augmentation du “throughput”

Caractéristiques l Scripts persistants n n réduction du temps de latence, augmentation du “throughput” et diminution de l’impact sur le système) "CGIplus" scripting èInterface Java, Python, … n Run-Time Environments (RTEs) èLe script n’est pas persistant, seulement l’environnement lui-même u. Par exemple pour Perl, … n "ISAPI" extensions/scripting

Caractéristiques CGI scripting via DECnet (avec réutilisation des connexions) l Émulation OSU scripting, avec

Caractéristiques CGI scripting via DECnet (avec réutilisation des connexions) l Émulation OSU scripting, avec réutilisation des connexions, permettant l’utilisation de nombreux scripts OSU sans modifications l Processeur de script (e. g. PERL) configurable sur type du fichier (extension) l

Caractéristiques l Pré-processeur HTML Inclusion conditionnelle de documents n Ajout de la date n

Caractéristiques l Pré-processeur HTML Inclusion conditionnelle de documents n Ajout de la date n Etc. … n Cache configurable, invalidation basée sur le temps pouvant être forcée l Support image clickable (formats NCSA et CERN) l

Caractéristiques l Règles de “mapping” puissantes et faciles d’emploi n l Possibilité de règles

Caractéristiques l Règles de “mapping” puissantes et faciles d’emploi n l Possibilité de règles conditionnelles Possibilité d’authentification par SYSUAF et droit d’accès d’un utilisateur par identifieur

Caractéristiques l Trace des accès Formats standard "common" et "combined" (ce qui permet l’analyse

Caractéristiques l Trace des accès Formats standard "common" et "combined" (ce qui permet l’analyse avec la plus part des outils d’analyse de trace) n Format de traces personnalisable n Création automatique, journalière, hebdomadaire ou mensuelle d’un nouveau fichier de traces n

Caractéristiques Support de services virtuels et de services multi-ports l Messages paramétrables l n

Caractéristiques Support de services virtuels et de services multi-ports l Messages paramétrables l n Support multi-langues

Caractéristiques l Configuration on-line Visualisation et modification de la configuration n Graphique d’activité n

Caractéristiques l Configuration on-line Visualisation et modification de la configuration n Graphique d’activité n Rapports sur les requêtes n l Puissant outils de trace d’exécution d’une requête (WATCH)

Monitoring, exemple

Monitoring, exemple

Monitoring, exemple

Monitoring, exemple

Configuration, exemple

Configuration, exemple

Configuration, exemple

Configuration, exemple

Configuration, exemple

Configuration, exemple

Monitoring WATCH, exemple

Monitoring WATCH, exemple

Monitoring WATCH, exemple

Monitoring WATCH, exemple

Architecture générale l Un seul process n Multi-threaded èPeux gérer plusieurs connexions simultanées èMécanisme

Architecture générale l Un seul process n Multi-threaded èPeux gérer plusieurs connexions simultanées èMécanisme interne de threading u. N’utilise pas Decthreads n I/O asynchrone èUtilisation intensive d’AST l Support volume ODS 5

Architecture générale Configuration et monitoring via une interface WEB l Authentification l Interne (base

Architecture générale Configuration et monitoring via une interface WEB l Authentification l Interne (base HTA) n Externe via UAF n èValidation par identifieur èUtilisation possible de compte “nil-access” n Externe via un agent èScript CGIplus

Architecture générale l Droits d’accès Méthode de connexion (SSL ou non) n Liste d’utilisateurs

Architecture générale l Droits d’accès Méthode de connexion (SSL ou non) n Liste d’utilisateurs n Identifieurs n Base HTA n

Pré-processeur HTML l Server Side Includes (SSI) Ajout dynamique de d’informations à une page

Pré-processeur HTML l Server Side Includes (SSI) Ajout dynamique de d’informations à une page n Création de page virtuelle n Génération conditionnelle de page n Exécution de commande DCL n èExemples : <!--#exec cmd="show device/full tape 1: " --> <!--#dcl show="device/full tape 1: " --> <!--#dcl dir="web: [000000]“ par="/nohead/notrail" -->

Pré-processeur HTML <TITLE>Hello <!--#echo value="{REMOTE_HOST}!" --></TITLE> <H 1>Simple SSI Demonstration</H 1> Hello <!--#echo value={REMOTE_HOST}

Pré-processeur HTML <TITLE>Hello <!--#echo value="{REMOTE_HOST}!" --></TITLE> <H 1>Simple SSI Demonstration</H 1> Hello <!--#echo value={REMOTE_HOST} -->, the time here is <!--#echo value={DATE_LOCAL, 12, 5} --> <P> <UL> <LI><A HREF="ssi. txt">The source of this document</A> </UL>

Pré-processeur HTML <TITLE>Hello 192. 168. 0. 30!</TITLE> <H 1>Simple SSI Demonstration</H 1> Hello 192.

Pré-processeur HTML <TITLE>Hello 192. 168. 0. 30!</TITLE> <H 1>Simple SSI Demonstration</H 1> Hello 192. 168. 0. 30, the time here is 22: 55 <P> <UL> <LI><A HREF="ssi. txt">The source of this document</A> </UL>

Mécanisme de scripting l Trois types de process Sous-process n Process detaché n èPeut

Mécanisme de scripting l Trois types de process Sous-process n Process detaché n èPeut ne pas appartenir au serveur u. Utilisation de $PERSONA (Open. VMS 6. 2 minimum) u. Restriction des comptes autorisés par un identifier n l Decnet Réutilisation d’un process n Peut être désactivé èPerformances…

Mécanisme de scripting l Environnement d’exécutions n Compte du serveur èMode par défaut n

Mécanisme de scripting l Environnement d’exécutions n Compte du serveur èMode par défaut n Compte prédéfini èExemple : # one script to be executed under the account SET /cgi-bin/a_big_script* script=as=BIG_ACCOUNT # all scripts in this area to be executed under this account SET /database-bin/* script=as=DBACCNT

Mécanisme de scripting l Environnement d’exécutions n Compte utilisateur d’authentification (connexion) èExemple : SET

Mécanisme de scripting l Environnement d’exécutions n Compte utilisateur d’authentification (connexion) èExemple : SET /cgi-bin/cgi_process script=as=$ n Environnement utilisateur de connexion èExemple : SET /~*/www/cgi-bin/* script=as=~ UXEC /~*/cgi-bin/* /*/www/cgi-bin/* UXEC+ /~*/cgiplus-bin/* /*/www/cgi-bin/* USER /~*/* /*/www/* REDIRECT /~*/ PASS /~*/* /dka 0/users/*/*

Mécanisme de scripting l Common Gateway Interface (CGI) Mode le plus simple n Le

Mécanisme de scripting l Common Gateway Interface (CGI) Mode le plus simple n Le script (programme) s’exécute et se termine n Compatibilité Apache, OSU, … n CGIplus, ISAPI n èLe script est rémanent èTemps de latence très court èProgrammation (conception) plus complexe l DECnet & OSU

Mécanisme de scripting l CGI Callouts n Permet d’ établir un dialogue entre le

Mécanisme de scripting l CGI Callouts n Permet d’ établir un dialogue entre le script et le serveur èExemples : u. Modification de la durée de vie du process u. Conversion URL <-> nom de fichier Run-Time Environments l Perl l Java l Raw TCP/IP Socket l

Mécanisme de scripting l Exemple 1 $ say = "write sys$output" $! the next

Mécanisme de scripting l Exemple 1 $ say = "write sys$output" $! the next two lines make it CGI-compliant $ say "Content-Type: text/plain" $ say "" $! start of plain-text body $ show system

Mécanisme de scripting l Exemple 2 $ say = "write sys$output" $! the next

Mécanisme de scripting l Exemple 2 $ say = "write sys$output" $! the next two lines make it CGI-compliant $ say "Content-Type: text/html" $ say "" $! start of HTML script output $ say "<HTML>" $ say "Hello ''WWW_REMOTE_HOST'" !(CGI variable) $ say "<P>" $ say "System time on node ''f$getsyi("nodename")' is: " $ say "<H 1>''f$cvtime()'</H 1>" $ say "</HTML>"

Performances comparatives l Extrait de la documentation WASD Alpha. Server 2100 4/275 bi-processeur, VMS

Performances comparatives l Extrait de la documentation WASD Alpha. Server 2100 4/275 bi-processeur, VMS v 7. 2 -1 et DEC TCP/IP 5. 1. n Keep-Alive désactivé: chaque requête nécessite une connexion/déconnexion TCP/IP complète. n DNS et trace d’accès (logging) désactivés n Le serveur et la machine tournant le test sont reliés par un réseau 100 Mbps FDDI n WASD V 7. 2, CSWS V 1. 1, OSU V 3. 9 a n

Performances comparatives l Cache désactivé n Requêtes/Seconde n Consommation CPU (Secondes)

Performances comparatives l Cache désactivé n Requêtes/Seconde n Consommation CPU (Secondes)

Performances comparatives l Cache activé n Requêtes/Seconde n Consommation CPU (Secondes)

Performances comparatives l Cache activé n Requêtes/Seconde n Consommation CPU (Secondes)

Performances comparatives l Taux de transfert n Moctets/Seconde

Performances comparatives l Taux de transfert n Moctets/Seconde

Performances comparatives l CGI Scripting n Requests/Second

Performances comparatives l CGI Scripting n Requests/Second

Prochaines évolutions l Configuration (méta-config) n Règles conditionnelles de « mapping » pour HTTPD$AUTH

Prochaines évolutions l Configuration (méta-config) n Règles conditionnelles de « mapping » pour HTTPD$AUTH if (remote-addr: 131. 185. 250. *) <map or authorize rule> else <etc> endif

Prochaines évolutions l Instances multiples n Inclus les fonctionnalités pour configurer, maintenir et coordonner

Prochaines évolutions l Instances multiples n Inclus les fonctionnalités pour configurer, maintenir et coordonner plusieurs serveurs tournant sur un seul système ou sur un cluster èVersions V 7. n contient déjà quelques fonctionnalités de ce type n Peuvent partager sur un nœud les requêtes entrantes èMécanisme de « round-roubin »

Prochaines évolutions l Instances multiples (suite) Le premier serveur s’exécutant créé automatiquement les autres

Prochaines évolutions l Instances multiples (suite) Le premier serveur s’exécutant créé automatiquement les autres instances n Réalisé en utilisant le lock manager VMS n Comporte des mécanismes d’équilibre de charge, de redémarrage et de « failover » automatiques n La limitation devient rapidement la stack IP utilisée… n

Prochaines évolutions l Scripts « Inter-Serveur » n Configuration et exécution de script (CGI/CGIplus)

Prochaines évolutions l Scripts « Inter-Serveur » n Configuration et exécution de script (CGI/CGIplus) à travers un autre serveur tournant dans un même cluster en utilisant les routines ICC (Intra-Cluster Communications) èExtension possible de ce mécanisme via TCP/IP à un serveur extra-cluster avec, dans ce cas, l’utilisation de SSL (par exemple au moyen d’une passerelle HTTP: /HTTPS)

Prochaines évolutions l Passerelle HTTP: /HTTPS Transforme une requête émise via standard HTTP en

Prochaines évolutions l Passerelle HTTP: /HTTPS Transforme une requête émise via standard HTTP en une requête SSL pour un service nécessitant un accès SSL n Permettra également de sécuriser les scripts inter-serveur de manière transparente n l Conversion de caractères via les routines VMS NCS

Prochaines évolutions l Cache VLM n n l Partagé entre les différentes instances du

Prochaines évolutions l Cache VLM n n l Partagé entre les différentes instances du serveur Pouvant être « mappé » sur une section globale galactique Sélection automatique du document en fonction de la langue configurée dans le navigateur client n Document générique EXAMPLE. HTML èFrançais EXAMPLE_FR. HTML èAllemand EXAMPLE_DE. HTML

Prochaines évolutions Proxy FTP l Interface TOMCAT l Support IPF (Itanium processor family) l

Prochaines évolutions Proxy FTP l Interface TOMCAT l Support IPF (Itanium processor family) l

Calendrier prévisionnel l WASD V 7. 2. 1 Novembre 2001 n Corrections de bugs

Calendrier prévisionnel l WASD V 7. 2. 1 Novembre 2001 n Corrections de bugs n l WASD V 8. 0 Beta novembre 2001 n Production début 2002 n Méta-Config n Instances multiples n

Calendrier prévisionnel l WASD 8. 1 Beta prévu second trimestre 2002 n Production troisième

Calendrier prévisionnel l WASD 8. 1 Beta prévu second trimestre 2002 n Production troisième trimestre 2002 n Exécution de script « inter-serveur » n Passerelle HTTP: /HTTPS n Autres fonctionnalités ? n èUtiliser la liste de distribution

Pour plus d’informations http: //wasd. vsm. com. au/ l http: //wasd. vsm. com. au/wasd/

Pour plus d’informations http: //wasd. vsm. com. au/ l http: //wasd. vsm. com. au/wasd/ l WASD HTTPd Open. VMS Web Server discussion list : info-wasd@vsm. com. au l Alan Winston l Open. VMS with Apache, OSU and WASD The Nonstop Webserver n

Questions ?

Questions ?

Informations Orateur jf. pieronne@laposte. net http: //www. pi-net. dyndns. org/

Informations Orateur jf. pieronne@laposte. net http: //www. pi-net. dyndns. org/