OpenVMS Technical Update Days : Le serveur HTTPd WASD

Slides:



Advertisements
Présentations similaires
Active Directory Windows 2003 Server
Advertisements

Module 5 : Implémentation de l'impression
Exposé de système présenté le 2 décembre 2004, Par Rémy Lataix
GESTION D’IMPRISSION SOUS WINDOWS & LINUX
ASP.NET 2.0 et la sécurité Nicolas CLERC
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Université Nancy 2 - CRI Propositions de mécanisme de SSO dans un environnement d’applications web.
Une solution personnalisable et extensible
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
DUDIN Aymeric MARINO Andrès
Exposé de Système - Informatique et Réseau
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
HTML Les types de balises
Le mécanisme de Single Sign-On CAS (Central Authentication Service)
Plan de formation Chapitre 1 : Présentation de SAP
Plan de formation Chapitre 1 : Présentation de SAP
TP 3-4 BD21.
FLSI602 Génie Informatique et Réseaux
La configuration Apache 2.2 Lhébergement virtuel.
Sécurité Informatique
Common Gateway Interface
Active Directory Windows 2003 Server
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Présente.
SECURITE DU SYSTEME D’INFORMATION (SSI)
XML-Family Web Services Description Language W.S.D.L.
Le langage ASP Les variables d'environnement HTTP avec Request.
1 Sécurité Informatique : Proxy Présenter par : Mounir GRARI.
Le serveur HTTPd WASD Jean-François Piéronne. Sommaire l Caractéristiques l Architecture générale l Performances l Intégration dans OpenVMS.
Serveurs Partagés Oracle
Analyse des protocoles de la couche application
Applications Chapitre B17 et C18
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Introduction RADIUS (Remote Authentication Dial-In User Service)
Module 3 : Création d'un domaine Windows 2000
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Projet de Master première année 2007 / 2008
Ipchains TP 1 TP 2 TP 3 Installer un serveur web sur votre poste,
La Programmation CGI Principe Général Traitement des informations
Travail de diplôme José Garrido Professeur : Philippe Freddi Explorer Internet en toute sécurité Surf Safe SPY INTERNET.
PHP 5° PARTIE : LES COOKIES
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Cours de programmation web
Gestion à distance Netsh et rcmd.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Back Orifice Scénario en 3 étapes - Préparation & envoi - Infection & Installation - Prise de contrôle - Détections Possibles - Net-Based - Host-Based.
Auvray Vincent Blanchy François Bonmariage Nicolas Mélon Laurent
Installation et Configuration Internet Information Server (IIS 6)
http 1.1.  connexion persistante Browser Mozilla Firefox Adresse ip.
Développement d’application Web.  Internet  WWW  Client/Serveur  HTTP.
P2pWeb Une boite à outils pour construire un réseau coopératif d’hébergement de site Web –Réseau coopératif réseau physique de nœuds sur l ’Internet réseau.
Serveur HTTP. Responsable : Yohan VALETTE Objectifs : Créer un intranet sécurisé pour nos utilisateurs (pour la mise en commun de connaissances, par exemple).
FTP : File Transfer Protocol (protocole de transfert de fichier ) est un protocole de communication destiné à l'échange informatique de fichiers sur.
Module 3 : Création d'un domaine Windows 2000
 Formulaires HTML : traiter les entrées utilisateur
LE PARE-FEU AMON. MAI 2002.
Mission 2 : Mission 2 : Répartition de charges (Serveur Web) BTS SIO2Camboulas Damien Riviere Mathieu Calas Guilhem Sirvin Alexis.
Initiation au JavaScript
Présentation ESTRABOX
3.3 Communication et réseaux informatiques
Initiation à Oracle Server
Fonctionnalité et protocole des couches applicatives
Architecture Client/Serveur
Module 2 : Planification de l'installation de SQL Server
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
AFNOG POP3 et IMAP avec Dovecot
TWP Toolkit Formation 21/10/2009.
Retour d'expérience de l'utilisation du cloud comme infrastructure de service Guillaume PHILIPPON.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

OpenVMS Technical Update Days : Le serveur HTTPd WASD Jean-François Piéronne SysGroup Remerciement à: Mark Daniel et Jean-Pierre Petit

Sommaire WASD versus CSWS (Apache) Caractéristiques Architecture générale Performances Intégration dans OpenVMS

WASD/CSWS : Macro Comparaison HTTP/1.1 Yes Alpha/Itanium Secure Sockets IPv4 & IPv6 Persistent Scripting Access Control Request ‘Rewrite’ Proxy Logging Perl, PHP, Python, etc. License GPL Apache and WASD both offer all the features expected in a modern Web package. Of course the implementation and detail may differ but each is highly competitive in offering a ‘full solution’. Request ‘rewrite’, an Apache description for being able to modify request handling and characteristics during processing, is paralleled in WASD’s conditional mapping and internal redirection facilities. WASD offers full proxy serving (HTTP, SSL, CONNECT), with on-disk caching, protocol tunneling and protocol gatewaying. Both WASD and Apache are available for free download and available for use under the GNU General Public License (GPL) http://www.gnu.org/licenses/gpl.txt

WASD/CSWS : Plateformes Apache WASD Alpha Yes Itanium VAX No V6.0 V6.1 V6.2 V7.1 V7.2 V1.3 V7.3 V2.1 V8.2 V8.3 Install ODS-2 Install ODS-5 Mandatory V2.1 All of WASD features and facilities are available on all OpenVMS platforms for all OpenVMS versions from V6.0 onwards. The latest release of Apache tends to rely on recent tweaks and accommodations to underlying run-time libraries, TCP/IP packages and even (so I’m led to believe) kernel tweaks. This obviously lends some weight to WASD’s selection where sites cannot or will not update hardware or O/S versions for whatever reasons.

WASD/CSWS : Accès concurrents Apache WASD Server Child Processes Single Process Concurrency Per-Process* VMS AST Multi-CPU Per-Process Multiple Instances** Scripting Per-Process or Subprocess Detached Process Apache, at least most of the current deployments, and certainly the OpenVMS release, uses a request-per-process model. A supervisory process creates child processes that are then managed through idle and request processing queues. Each child process handles a single request. Multiple child processes are used for request serving concurrency. This model is sometimes referred to as heavyweight-threading. Experimentation by the author has demonstrated something like a 10-15% overhead in OpenVMS Apache process requirements under load. This presumably is managing a process into and out-of the idle and processing queues, and associated overheads, within Apache. Hence to support 100 concurrent requests Apache would require something like 115 instantiated processes (even to serve static pages). WASD uses a single process and ASTs to enable an event-driven (mainly I/O but with some timer queue) multiple request concurrency. This model could be referred to as lightweight-threading. These are very lightweight in the sense they are VMS’ native threading model, almost negligible servicing cost and certainly containing none of the thread-management overhead of something like POSIX Threads or a process context. The WASD conservative approach to resource consumption in this respect is often a significant factor in preference over other approaches. * Pour supporter 100 requêtes concurrentes Apache nécessite un minimum ode101 processes. ** Multiple, per-CPU processes, synchronisation via mutex et DLM.

WASD/CSWS : Authentification Apache WASD Package* Yes SYSUAF Module PKI** Custom*** WASD natively supports credentials from a significant number of sources: the SYSUAF with or without VMS rights identifier possession the ACME services plain-text lists WASD-specific binary authentication databases X.509 client certificate RFC1413 (Identification Protocol) authorization agent (user-written CGIplus-based authenticator) * package-specific username/password ** Public Key Infrastructure (X.509, etc.) *** User-written authentication support

WASD/CSWS : Scripting Apache WASD CGI Perl PHP Python Tomcat Just* Yes Perl Module RTE** PHP RTE Python Tomcat Reverse Proxy Persistence WASD supports all the major dynamic content environments available to OpenVMS Apache. CGI performance under OpenVMS Apache is abysmal. There may be good reasons for this but a glance at the CGI performance data in later slides lends itself to ‘abysmal’ not being too wild a description. Both support ‘persistence’. This is a scripting characteristic rather than environment that lends itself to great efficiencies. See the following slides for more detail. * Implied criticism of OpenVMS Apache performance ** RTE is a persistent Run-Time Environment

Caractéristiques Implémentation complète HTTP/1.1 Support de services virtuels et de services multi-ports Messages paramétrables Support multi-langues Méthodes "GET", "HEAD", "POST“ et "PUT" Protection des transferts via la technologie “Secure Sockets Layer” (SSL) Support des cookies

Caractéristiques Service proxy, avec cache local, pour toutes les méthodes HTTP/1.0, plus la méthode CONNECT (permettant le “SSL tunnelling”) Reverse proxy HTTP, HTTPS Fonctionnalité "if-Modified-Since:" / "304 not Modified" (envoi du document seulement s’il a été modifié depuis une date spécifiée par le client) Support de la compression GZIP des requêtes et des réponses.

Caractéristiques Http/1.1 connexions persistantes (i.E. "Keep- Alive:“) Navigation dans les répertoires (générique et VMS- style) CGI scripting par sous-process ou par process détaché (configurable, automatique, choix du contenu MIME) Choix du compte exécutant le script dans le cas d’un process détaché (OpenVMS V6.2 minimum) "Keep-Alive:", reducing the number of TCP/IP connects required) Le choix du compte peut etre statique (fixer dans les regles) ou dynamique c’est le compte de login

Caractéristiques 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 Permettra également de sécuriser les scripts inter-serveur de manière transparente Conversion de caractères via les routines VMS NCS

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

Caractéristiques CGI scripting via DECnet (avec réutilisation des connexions) Émulation OSU scripting, avec réutilisation des connexions, permettant l’utilisation de nombreux scripts OSU sans modifications Processeur de script (e.g. Perl, Python) configurable sur type du fichier (extension) Mécanisme de régulation du nombre de requêtes executées en parallèle (« throttling ») Scripts consommateurs de ressources Pics de charge réutilisation des connexions a partir de OSU 3.3a

Caractéristiques Pré-processeur HTML Inclusion conditionnelle de documents Ajout de la date Etc.… Cache configurable,invalidation basée sur le temps pouvant être forcée Support image clickable (formats NCSA et CERN) Pré-processeur relativement sophistiqué OpenVMS 7.3 avec XFC devrait donner un boost significatif a ce type d’environement

Caractéristiques Règles de “mapping” puissantes et faciles d’emploi Possibilité de règles conditionnelles Possibilité d’authentification par SYSUAF et droit d’accès d’un utilisateur par identifieur Utilisation de ACME ($ACM service) pour une intégration complète à l’authentification OpenVMS OpenVMS V7.3 minimum Alpha et Itanium uniquement "Basic" and "digest" user authentication and path/group-based authorization

Caractéristiques Configuration (méta-config) Règles conditionnelles de « mapping » pour HTTPD$AUTH if (remote-addr:131.185.250.*) <map or authorize rule> else <etc> endif

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

Caractéristiques Instances multiples Inclus les fonctionnalités pour configurer, maintenir et coordonner plusieurs serveurs tournant sur un seul système ou sur un cluster Peuvent partager sur un nœud les requêtes entrantes Mécanisme de « round-roubin »

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

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

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

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

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

Configuration, exemple

Monitoring, exemple

Monitoring, exemple

Monitoring, exemple

Monitoring WATCH, exemple

Monitoring WATCH, exemple

Pré-processeur HTML Server Side Includes (SSI) Ajout dynamique de d’informations à une page Création de page virtuelle Génération conditionnelle de page Exécution de commande DCL Exemples : <!--#exec cmd="show device/full tape1:" --> <!--#dcl show="device/full tape1:" --> <!--#dcl dir="web:[000000]“ par="/nohead/notrail" --> La directive #dcl exécute une commande DCL et incorpore le résultat dans le document. C’est une extension du serveur HTTPd WASD à la commande exec qui est également fourni. La directive #exec est uniquement pour les documents privilégiés, c’est-à-dire ceux appartenant au comte SYSTEM account, et non world-writeable.

Pré-processeur HTML <TITLE>Hello <!--#echo value="{REMOTE_HOST}!" --></TITLE> <H1>Simple SSI Demonstration</H1> 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> <H1>Simple SSI Demonstration</H1> 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>

(wrapper* & persistent) Oui (wrapper* & persistent) Scripting CGI Perl PHP Tomcat Python Persistence CSWS Oui (wrapper*) Module (persistent) OSU (wrapper* & persistent) Oui (wrapper* & persistent) Non WASD (native) * Un wrapper est une procédure DCL fournissant le support nécessaire.

Mécanisme de scripting Trois types de process Sous-process Process detaché Peut ne pas appartenir au serveur Utilisation de $PERSONA (OpenVMS 6.2 minimum) Restriction des comptes autorisés par un identifier Decnet Réutilisation d’un process Peut être désactivé Performances…

Mécanisme de scripting Environnements d’exécution Compte du serveur Mode par défaut 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 Environnements d’exécution Compte utilisateur d’authentification (connexion) Exemple : SET /cgi-bin/cgi_process script=as=$ Environnement utilisateur de connexion SET /~*/www/cgi-bin/* script=as=~ UXEC /~*/cgi-bin/* /*/www/cgi-bin/* UXEC+ /~*/cgiplus-bin/* /*/www/cgi-bin/* USER /~*/* /*/www/* REDIRECT /~* /~*/ PASS /~*/* /dka0/users/*/* UXEC+ autorise les CGIPlus Le caractere ~ est substitue par le compte de login Essentials of setting up a user environment where access to a subdirectory in the user's home directory, [.WWW] with script's located in a subdirectory of that, [.WWW.CGI-BIN].

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

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

Mécanisme de scripting 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 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 "<H1>''f$cvtime()'</H1>" $ say "</HTML>"

Performances comparatives Extrait de la documentation WASD AlphaServer 4100 4/400 bi-processeur, VMS v7.3-2 et DEC TCP/IP 5.4. Keep-Alive désactivé: chaque requête nécessite une connexion/déconnexion TCP/IP complète. DNS et trace d’accès (logging) désactivés Le serveur et la machine tournant le test sont reliés par un réseau 100 Mbps FDDI WASD V9.0, CSWS V1.3 (Apache 1.3.26) Configuration de base sans tuning particulier

Performance – 1 concurrent Static 0kB: File comprising zero bytes of content. Included to measure the throughput of the entire network connection establishment, request acceptance, resources access, response delivery, connection dissolution – without the overhead of actually delivering any resource content. Static 64kB: File containing sixty-five kilobytes of content. Same measurement as above with the addition of multiple PDUs to the client. CGI: An executable that generates a CGI response header and variable quantities of response content (according to activation parameters). CGIplus: Same executable as CGI but persists between usages removing activation latencies. Included here for comparison with WASD CGI performance and shows approximately ten times greater throughput! Perl: Persistent interpreter under both platforms running the following script print "Content-Type: text/html\n\n <B>Hello!</B>"; PHP: Persistent interpreter under both platforms running the following script <? php echo "<B>Hello!</B>“ ?> More information: http://wasd.vsm.com.au/ht_root/doc/htd/htd_2100.html source: http://wasd.vsm.com.au/ht_root/doc/htd_2100.html

Performance – 10 concurrent The same performance results as described in the previous slide but this time with results from ten concurrent requests added for comparison. Obviously what works well under light load might behave differently and a heavier one. source: http://wasd.vsm.com.au/ht_root/doc/htd_2100.html

Prochaines évolutions Scripts « Inter-Serveur » 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 Cache VLM Partagé entre les différentes instances du serveur Sélection automatique du document en fonction de la langue configurée dans le navigateur client Document générique EXAMPLE.HTML Français EXAMPLE_FR.HTML Allemand EXAMPLE_DE.HTML

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

Questions ?