PageBox: servlets running in sandboxes on J2EE PageBox

for
support@pagebox.net  Home: servlets running in sandboxes on J2EE
Rationale Presentation News Faq Authors Dev site Mailing list

Présentation

 

Introduction

 

Je suis l’auteur principal du logiciel présenté, PageBox. Comme ce produit est gratuit et que le site fournit des informations que j’espère intéressantes sur l’Open Source, Internet et Java, je crois qu’il a le droit d’être présenté comme Pages personnelles.

 

Comme il est installé chez un fournisseur grand public, j’ai jugé utile de rédiger cette introduction et de présenter les termes et les technologies utilisés par le produit. Ce document est inédit. Bien évidemment vous pouvez créer un lien dessus. En revanche en cas de copie ou de reproduction vous êtes tenus de m’en avertir et de me citer comme l’auteur. Mon adresse électronique est alexis.grandemange@libertysurf.fr. 

Site en anglais

Aujourd’hui le site principal est fréquenté pour les deux tiers par des américains. Les Européens représentent un bon sixième, l’Asie (comprendre le Japon, l’Inde, la Corée, la cote chinoise et Taiwan) et l’Australie le dernier sixième.

 

Le seul point commun entre ces personnes (du moins ceux qui connaissent le sujet) est de parler anglais. Traduire une documentation demande du temps – un temps que je n’ai pas. Cela étant, le produit est Open Source et la philosophie d’Open Source étant de faire appel aux bonnes volontés, si le cœur vous en dit…

Produit Open Source

J’ai conservé le terme anglais pour éviter toute équivoque. Un logiciel Open Source n’est pas seulement un logiciel gratuit, c’est un logiciel gratuit livré avec les sources (exemple : Linux). Ce n’est pas rien pour une grosse entreprise : elle peut adapter un logiciel Open Source à de nouveaux besoins alors qu’elle dépend du bon vouloir et de la santé de l’éditeur d’un logiciel payant.

 

Il reste que pour vivre, on doit gagner de l’argent et qu’il est difficile d’en gagner en donnant même à des millions d’exemplaires ce qu’on a écrit. Même si logiciel un peu complexe réclame une formation et un support que l’auteur est le mieux placé pour fournir, je ne crois pas qu’un éditeur Open Source puisse atteindre la taille de Microsoft.

 

Cependant l’Open Source a des avantages :

 

1.      C’est un moyen bon marché d’acquérir une part de marché dans la tête des gens (mindshare). C’est vrai notamment parce que Internet a changé la donne. C’est un espace ultra compétitif (plus de 30 millions de domaines, plus de 20 millions de .com) où on doit se battre pour être connu. Quand vous mettez une page en ligne 150 millions de personnes peuvent la lire mais encore faut il qu’ils sachent qu’elle existe et qu’elle peut les intéresser. Si on laisse de coté les « trucs » qui permettent d’améliorer son placement dans les moteurs de recherche, il reste deux procédés : fournir effectivement un contenu intéressant et payer.

 

2.      C’est un procédé sûr à l’heure où la Propriété Intellectuelle évolue de manière assez déroutante. Les grandes entreprises brevettent à tout va tout et n’importe quoi. Il est devenu impossible de vérifier si une invention est valable[1]. Une invention est avant tout une arme pour les avocats. Si un concurrent crée un logiciel, il ne peut qu’enfreindre un ou plusieurs brevets que la Société détient[2]. Quand le concurrent est une grosse société, il a bien évidemment procédé de même. On procède alors à un échange de brevets. En publiant un logiciel en Open Source, vous en mettez les procédés dans le domaine public et vous invalidez ipso facto les brevets que d’autres peuvent prendre sur le même sujet[3].

 

3.      Les deux points plus hauts sont surtout valables pour des particuliers et de petites Sociétés. Pour une grande entreprise, c’est un moyen bon marché d’améliorer son image de marque et d’imposer sa technologie et en conséquence de faire monter le cours de son action. On l’a vu avec Java.

 

La principale population intéressée est celle des programmeurs.

q      Pour les étudiants et pour les personnes qui souhaitent se former à une nouvelle technologie, c’est le moyen d’apprendre par l’exemple.

q      Parce que personne ne vous paie ou ne vous note, c’est un espace où vous êtes libre d’innover et où la reconnaissance se gagne uniquement par la qualité de la contribution.

 

Il reste que l’investissement demandé est important :

q      20h minimum par semaine pour un contributeur

q      40h minimum pour un créateur plus le sacrifice de ses vacances

q      et cela pendant des mois

 

Un logiciel Open Source ne diffère pas d’un logiciel classique. Vous ne programmez pas plus de 30% du temps parce que vous ne pouvez vous dispenser :

1.      D’une analyse de marché – l’essence même du marketing – même si elle est plus empirique / fondée sur la connaissance du terrain.

2.      De documenter

3.      De tester dans des conditions réelles d’utilisation

 

Je crois dans l’Open Source. En conséquence PageBox est un logiciel Open Source.

Il existe parce que l’environnement a évolué :

q      En réseau avec Internet

q      En informatique avec différentes nouvelles technologies

Internet

Internet évolue sans aucune planification simplement parce que des intervenants choisissent d’investir dans de nouvelles liaisons, de nouveaux points d’accès et de nouvelles offres. C’est donc une juxtaposition de réseaux transnationaux, nationaux et concentrateurs interconnectés. Tous ces réseaux sont des ISP (Internet service providers).

 

Votre fournisseur d’accès Internet, par exemple http://www.libertysurf.fr est un exemple de réseau national. Si vous vous connectez à http://pagebox.net Libertysurf va transmettre votre requête à un réseau concentrateur qui va lui même passer la main à d’autres réseaux pour arriver finalement au site qui m’héberge.

 

Le moyen de savoir ce qui se passe est la commande traceroute – tracert sur Windows : 

 

tracert pagebox.net

Tracing route to pagebox.net [64.71.143.88]

over a maximum of 30 hops:

 

  1   130 ms   130 ms   130 ms  eth1-c-1.tnt01.nan.libertysurf.net [213.36.82.1]

 

  2   130 ms   130 ms   130 ms  vlan2.gw2.nan.libertysurf.net [213.36.82.65]

  3   130 ms   130 ms   130 ms  ge5-0.gw1.nan.libertysurf.net [213.36.82.110]

  4   130 ms   130 ms   130 ms  pos0-3.gw1.tlh.libertysurf.net [213.36.82.154]

  5   131 ms   130 ms   130 ms  above-liberty-fe.cdg4.above.net [208.184.231.237]

  6   130 ms   131 ms   130 ms  core1-cdg4-oc12.cdg1.above.net [208.184.210.242]

 

  7   150 ms   141 ms   150 ms  lhr1-cdg1-stm4.lhr1.above.net [208.184.231.9]

  8   220 ms   221 ms   220 ms  lga1-lhr1-stm4-3.lga1.above.net [208.185.188.98]

 

  9   240 ms   241 ms   240 ms  ord2-lga1-oc48-2.ord2.above.net [208.185.156.157

]

 10   321 ms   320 ms   321 ms  sjc2-ord2-oc48.sjc2.above.net [208.184.233.45]

 11   330 ms   320 ms   321 ms  core1-sjc2-oc12-2.sjc6.above.net [216.200.254.74

]

 12   330 ms   321 ms   320 ms  core2-core1-oc3.sjc6.above.net [209.133.31.182]

 

 13   321 ms   330 ms   321 ms  100tx-f6-1.mae-west.he.net [207.126.96.98]

 14   320 ms   331 ms   320 ms  gige-g9-0.gsr12012.sjc.he.net [216.218.130.1]

 15   330 ms   321 ms   320 ms  64.71.143.88

 

Chaque ligne correspond à un routeur différent.

Vous voyez par exemple qu’ici je quitte libertysurf par pos0-3.gw1.tlh.libertysurf.net pour rentrer sur abovenet par above-liberty-fe.cdg4.above.net.

Le nom du routeur est instructif : vous voyez que ça se passe à Roissy (Charles de Gaulle = cdg).

 

Vous pouvez aller sur le site d’Abovenet pour connaître leur réseau :  http://www.abovenet.com/network/index.html .

 

Les lignes Internet haut débit (fibre optique oc quelque chose) que ce soit sur les réseaux concentrateurs ou les réseaux transnationaux suivent toujours le même axe d’Ouest en Est Asie/Australie – Etat Unis – Europe. Ceci résulte à la fois de réalités économiques (c’est là que ce trouve l’essentiel du trafic et de contraintes géographiques (c’est le chemin le plus court). Une conséquence est que si votre contenu s’adresse au monde entier il est préférable d’héberger votre site aux Etats Unis : les Américains seront servis en 100ms et les Asiatiques et Européens en 300ms. Si vous l’hébergez en Europe, les Américains seront servis en 300ms et les Asiatiques en 500ms[4].

 

Le temps de service que j’indique n’inclut pas le temps consommé sur le site ou par le navigateur qui affiche le résultat. C’est un minimum largement dépassé en cas d’incident.

 

Les tuyaux grossissent[5] mais ce chiffre ne devrait pas baisser[6].

Les hébergeurs

Les hébergeurs – Application Service Providers (ASP) – en anglais sont perçus comme un moyen commode pour assurer la disponibilité et l’administration d’un site. Je crois pourtant que leur avantage fondamental est ailleurs :

Ils ont des liens Internet à très haut débit (typiquement plusieurs OC 3 à 155 Mbps) qui ne leur coûtent pas cher parce qu’ils s’installent à proximité, voire dans les locaux des ISPs avec lesquels ils ont une relation symbiotique.

Les caches

Un cache maintient une copie d’un contenu.

Les navigateurs maintiennent un premier niveau de cache. Quand vous accédez une page, le navigateur en conserve une copie de manière à éviter un nouveau téléchargement si vous la redemandez plus tard.

 

Dans votre entreprise, on peut vous demander de configurer votre navigateur avec un mandataire (proxy). Un proxy agit comme le cache de votre navigateur mais pour un ensemble d’utilisateurs. Si Véronique a accédé à http://pagebox.net/cocoonSupport.htm et si Marc demande cette page plus tard, il est servi par le cache et non par pagebox.net.

 

Il s’agit là de caches gérés par l’usager. Il existe une autre forme de cache mise en œuvre à l’initiative des fournisseurs. Si vous téléchargez un produit de Macromedia, vous ne le téléchargez pas du site Macromedia que vous avez contacté mais d’une machine plus proche de vous gérée par Akamai. Cette société a mis en place un réseau de 3000 serveurs sur lesquels les éditeurs peuvent répliquer leur contenu. Le bénéfice pour Macromedia est double :

q      Vous êtes servi plus vite et donc plus satisfait

q      Macromedia dépense moins en serveurs et en liens Internet

 

Le point commun de ces caches est de ne cacher qu’un contenu statique, typiquement des pages HTML.

Technologies

Trafic (protocols)

Si vous essayez la commande traceroute/tracert depuis votre lieu de travail il y a des chances qu’elle échoue. C’est parce que votre société a mis en place un firewall. Un firewall est un filtre de messages. Créés à l’origine pour éviter l’intrusion d’agresseurs, les firewalls sont utilisés également pour interdire aux employés de faire des actions qui génèrent un trafic (qui accroît l’encombrement des lignes) sans faire partie de leur fonction. Deux trafics restent supportés :

q      Le courrier électronique (POP/SMTP)

q      HTTP

Historique des logiciels

Au début, il n’y avait pas de PCs, seulement des écrans noirs avec des caractères verts. Ces écrans étaient connectés à des ordinateurs où tournaient des programmes qui effectuaient un traitement et affichaient le résultat sur l’écran. Ces programmes assuraient la mise en page et de manière générale la présentation du résultat.

 

Avec les PCs sont apparus des programmes tels que les tableurs et les traitements de texte. Ces programmes offraient une meilleure présentation que les programmes centraux mais ne permettaient pas d’interaction avec d’autres utilisateurs.

 

Ensuite est apparu le modèle client/serveur. La machine centrale offrait des services qu’appelait le client installé sur le PC. Le client offrait la même présentation que les tableurs et les traitements de texte. C’était le rêve de l’ingénieur : chaque chose tournait là où elle devait tourner.

 

Ensuite sont apparus les navigateurs et Internet. Au lieu d’accéder uniquement à des machines à l’intérieur de l’entreprise, les employés ont pu accéder aux serveurs de leurs fournisseurs, partenaires… et concurrents. Techniquement le protocole utilisé par les navigateurs, HTTP constitue un retour à l’écran noir : le serveur est à nouveau responsable de la présentation que le navigateur se contente d’afficher. Les standards et les produits Open Sources deviennent crédibles.

 

La tendance est à la dérégulation, à la multiplication des partenariats et au recentrage de l’entreprise autour de ses données – principalement de son fichier client – et non plus de ses produits[7]. De nouvelles technologies telles que les services Web accompagnent cette tendance.

 

Il est intéressant[8] de prendre en compte l’aspect sociologique :

q      A l’époque des écrans noirs (1973 – 1983), la Société est toujours très hiérarchisée. Il y a des analystes, des analystes programmeurs et des programmeurs. Il y a peu d’initiatives et les entreprises comme les vendeurs misent sur la simplicité, le découpage des tâches et une formation massive et minutieuse des employés. L’Education institutionnelle a été prise par surprise et tout le monde est autodidacte.

q      A l’époque du client/serveur (1984/1994), les générations formées à l’Informatique s’imposent sur le marché du travail. C’est l’ère de l’ingénieur et des progiciels. L’initiative est recherchée et la hiérarchie se simplifie.

q      A l’époque actuelle, tout le monde est informaticien, juriste et fait du marketing. La hiérarchie n’évolue plus mais les métiers se transforment.

Logiciels

Java

Java a été présenté comme le langage de l’Internet. Il a introduit trois concepts importants :

1.      Gratuité pour l’utilisateur comme pour le développeur

2.      Utilisation d’une machine virtuelle. Il s’agit là davantage d’une popularisation. L’idée est de distribuer non un code que la machine peut comprendre mais un code intermédiaire, ce qui a deux avantages : ce code est portable et un compilateur appelé au dernier moment a plus d’information pour optimiser efficacement le code.

3.      Code signé. Le code inclut une signature attestée par une autorité indépendante de l’éditeur et qui prouve que c’est bien l’éditeur qui a produit ce code.

 

Avec .NET, Microsoft a introduit un équivalent à Java optimisé pour ses systèmes d’exploitation.

Application servers

Un Application server est un serveur Web spécialisé dans la production de présentation dynamique (où le contenu a été obtenu en accédant à une base de donnée ou à un autre serveur).

 

Dans sa définition restreinte, un Application server est écrit en Java et appelle des composants Java particuliers, les servlets et les JavaServer Pages (JSP). Il existe un assez grand nombre d’Application servers gratuits ou bon marché. Les plus répandus sont Tomcat (Open Source) et Resin ($500 par machine de production[9] fourni avec les sources). 

XML

Un défaut des protocoles utilisés à l’époque du client/serveur était leur absence d’interopérabilité. Même quand un protocole était standardisé, des différences mineures suffisaient à empêcher deux produits différents de communiquer[10]. S’il est relativement facile de s’accommoder de ce défaut au sein d’une entreprise, cela devient un obstacle majeur à la mise en place d’échanges inter entreprises Business to Business (B2B).

 

EXtended Markup Language (XML) décrit des messages dans un format lisible par les humains comme par les machines. Il est conçu pour permettre des échanges entre des machines et des produits différents. La combinaison d’XML avec HTTP pour le trafic synchrone et avec SMTP/POP pour le trafic asynchrone permet de disposer de protocoles interopérables.

Services Web

Les services Web sont le prolongement d’XML sur HTTP ou SMTP/POP.

Les standards dans ce domaine sont SOAP, créé par Microsoft, UDDI et WSDL créés par Microsoft et IBM.

 

SOAP est une formalisation d’XML sur HTTP et SMTP/POP. Le résultat est que le programmeur n’a plus qu’à programmer des services et des appels de service.

 

UDDI décrit comment réaliser des répertoires de services. Un répertoire de services, c’est un peu les pages jaunes pour les programmes. Imaginons que vous vendez des perceuses. Vous cherchez dans les répertoires UDDI les vendeurs de perceuses, vous importez la définition des appels par exemple disponibilité, prix en format WSDL et vous générez le code SOAP pour effectuer les appels.

Cocoon

Cocoon est un produit de publication XML Open Source.

Son but est de séparer la présentation du contenu mais cette fois au niveau du serveur.

C’est une fonction souhaitable parce que :

q      la famille des navigateurs s’est agrandie (téléphones WAP, PDA)

q      le parc des navigateurs a vieilli et des navigateurs aux capacités différentes coexistent

q      de nouvelles formes de présentation sont apparues (Adobe PDF, Macromedia Flash, VRML, SVG)

PageBox

Le but de PageBox est d’offrir un moyen de déployer les présentations HTTP au plus prés de l’utilisateur de la même manière que le contenu statique est caché aujourd’hui par les serveurs d’Akamai et d’autres éditeurs.

 

Les avantages sont :

q      Un meilleur temps de réponse.

q      Une grande tolérance aux pannes. Si le serveur le plus proche a une défaillance, un serveur plus éloigné prend le relais.

q      Une plus grande capacité. Les requêtes peuvent être réparties entre plusieurs serveurs.

 

La première fonction des PageBox est de permettre un déploiement de présentation à distance qu’elles soient Java (JSP et servlets) ou XML (grâce à Cocoon). Ces présentations peuvent maintenir localement des données de référence ou accéder à des services Web centraux.

 

Ce modèle présente un intérêt concret : Imaginons qu’une société A veut offrir les services de son fournisseur, la société B sur son Intranet. Il installe une PageBox sur laquelle le fournisseur déploie sa présentation.

q      Avantage pour A : meilleur temps de réponse

q      Avantage pour B : il peut se contenter d’un plus petit serveur

q      Avantage pour A et B : ils économisent sur la bande passante (la présentation ne passe pas sur le réseau)

 

La deuxième fonction des PageBox vise à étendre son domaine d’utilisation.

Les PageBox s’abonnent à un ou plusieurs répertoires et les fournisseurs publient leurs présentations sur un ou plusieurs répertoires. Il n’y a pas de limites au nombre de répertoires et de PageBox, ce qui permet d’envisager un déploiement planétaire. Ce déploiement peut être très fin : à coté de la version pour Application server adapté à un déploiement dans les entreprises et dans des réseaux de type Akamai, il existe une version Open Service Gateway Initiative (OSGi). Cette version pourrait tourner dans des routeurs, des modems ou dans des serveurs domestiques.

 

Avec PageBox, le rôle du fournisseur change. Il ne gère pas de données puisque ses présentations accèdent aux services Web d’autres sociétés. Il ne gère pas davantage de serveurs puisqu’il utilise des PageBox quelque part sur Internet. Il peut se concentrer sur la réalisation de présentations.

 

Les clients ont un meilleur service grâce à un marché plus réactif et plus compétitif. Les sociétés se concentrent sur un métier que ce soit fournir du contenu ou fournir une présentation.

Etat d’avancement

L’ensemble des composants décrit plus haut existe et est déployé sur six machines. Ce n’est plus un prototype mais une première beta. Aujourd’hui même si je continue de compléter le produit, je donne la priorité à l’amélioration de la robustesse.

 

Des domaines restent à défricher :

q      Réalisation d’une version .NET

q      Intégration avec un cache de pages statiques, Squid qui comme vous l’aurez deviné est Open Source

q      Et plein d’autres fonctions comme la réalisation d’une bibliothèque de présentations et d’outils.

 

L’Open Source a un avantage que j’ai omis de mentionner plus haut, on vous aide : nous avons des hébergeurs gratuits, le plus important étant Sourceforge. C’est de là que sortent bon nombre de drivers Linux, des jeux comme Tux Racer… Il nous offre un référentiel cvs, un environnement de compilation et bien d’autres choses. L’URL du projet PageBox est https://sourceforge.net/projects/pagebox.

 

Si vous êtes tenté venez donc me rejoindre en m’envoyant un mail à alexis.grandemange@libertysurf.fr. Vous pouvez également nous aider, par exemple en nous laissant installer une PageBox sur un de vos serveurs Internet. Nous en manquons en Europe.

 



[1] Une invention est valable si elle n’a pas déjà été inventée.

[2] C’est le point faible de la mode actuelle. On ne peut pas breveter quelque chose qui est impliqué par le besoin. Le reste du monde suit la législation américaine qui elle même repose sur la jurisprudence. Un seul jugement dans une cour américaine peut invalider la moitié des brevets.

[3] Vous renoncez également à breveter. Ce n’est pas un gros abandon, parce qu’un brevet coûte cher, demande beaucoup de temps et surtout implique que vous identifiiez les sociétés qui l’enfreignent.

[4] Pour le reste du monde et en particulier l’Amérique latine, un hébergement aux Etats Unis est également préférable.

[5] Au prix d’investissements élevés. Si vous voulez créer un réseau fibre optique comme ça, comptez qu’il vous faut investir un milliard de dollars par an.

[6] L’eau ne coule pas plus vite dans une rivière que dans un robinet.

[7] Ca pourrait mettre à mal les cultures d’entreprise de type Empire du Milieu avec les mandarins et les inévitables diables étrangers, ce dont les actionnaires ne regretteront pas forcement.

[8] Je pense que la plupart des professions ont connu la même évolution.

[9] Plus précisément, l’éditeur de Resin, Caucho vous demande de payer à partir du moment où vous gagnez de l’argent avec son produit.

[10] Les entreprises manquaient également de confiance dans des solutions où deux vendeurs pouvaient se renvoyer la balle en cas de problème.


Rationale Presentation News Faq Dev site Mailing lists Home
Installation Versions Constellations Demo Publisher Mapper Cocoon/SOAP Configurator
J2EE version Embedded version Diskless version
Contact:support@pagebox.net

Last modified