Accueil > WebObjects > Qu’est-ce que WebObjects ?

Qu’est-ce que WebObjects ?

Par Apple Computer, Inc. © 2002 (Dernière mise à jour 3 Janvier 2002),

Traduit par Thierry, 20/09/2002.

Introduction

WebObjects est un serveur d’applications dotés d’outils, de technologies et de facultés à créer des applications Internet et Intranet. WebObjects repose sur une architecture orientée objet qui facilite le développement rapide de composants réutilisables. WebObjects est extrèmement extensible et supporte des volumes importants.
Cet article présente l’architecture, les technologies, les outils de développement et les approches de développement WebObjects aux développeurs et à ceux intéressés de savoir comment WebObjects fonctionne.

Pourquoi lire cet article

L’Introduction à WebObjects est écrite pour les développeurs qui veulent démarrer avec WebObjects. Cependant, quiconque intéressé par la technologie WebObjects tirera bénéfice de la lecture de cet article.

Dans sa majeure partie, cet article ne suppose pas que vous ayez des connaissance en programmation orientée objet. Cependant, WebObjects est basé sur des frameworks orientés objet écrits en Java, un langage orienté objet. Il serait préférable que vous soyez familier de la programmation orentée objet si vous avez l’intention d’écrire des applications WebObjects. Il y a de nombreux bouquins qui traitent de ce sujet si vous ne l’êtes pas.

Un des avantages significatifs de WebObjects tient dans sa connectivité aux bases de données. Pour apprécier pleinement cette technologie, il serait souhaitable que vous ayez des connaissances en bases de données (même si cet article ne le requiert pas). Encore une fois, il y a de nombreux livres qui traite de ce sujet.

Quatre approches différentes étant disponibles pour développer des applications en WebObject, cet article les abordera une par une, et comparera elurs avantages et inconvénients afin de vous aider à décider quelle approche est la plus appropriée pour votre application.

Cet article fait partie d’une série divisée selon les chapitres suivants :

  • Qu’est-ce que WebObjects ?” présente les technologies WebObjects et comment elles s’articulent.
  • “Objets Entreprise” décrit les objets qui résident dans le coeur de toute application WebObjects et qui encapsulent les données et la logique business de votre application.
  • “Applications HTML” décrit l’approche qui vous permet de créer des applications HTML pour le World Wide Web.
  • “Applications Web” décrit la version développement rapide de l’approche permettant de créer des applications HTML.
  • “Applications WebObjects” décrit l’approche par laquelle vous pouvez produire une application à interface graphique qui tourne sur une machine cliente.
  • “Intégration dans J2EE” explique comment WebObjects implémente les Enterprise JavaBeans et comment il s’intègre dans un environnement basé sur les JavaServer Pages (JSP) et les servlets.
  • “Choisir votre approche” synthètise les pour et les contre des différentes approches et met en évidence la marche à suivre pour décider quelle approche ou combinaison est appropriée à votre environnement.

Documentation développeur

Quand vous installez le package WebObjects Developer sur votre machine, l’installateur met la documentation développeur dans les endroits suivants :

  • Frameworks Information, inextricablement associé à un framework, est habituellement installé dans un sous-dossier du framework. Cette méthode de packaging assure que la documentation sera déplacée avec le framework si celui-ci est déplacé (ou copié) vers un autre endroit. Cela rend aussi possible le fait d’avoir des versions localisées de la documentation (bien que les outils de développement et de déploiement ne soient qu’en anglais).
  • Les aides des outils de développement d’applications tels que Project Builder et Interface Builder sont installées avec l’application. Quand l’utilisateur requiert cette aide à partir du menu Help, l’application lance Help Viewer pour l’afficher.
  • Des exemples de codes et une grande variété de bouts de programmes sont installés dans /Developer/Examples/JavaWebObjects ($NEXT_ROOT/Developer/Examples/JavaWebObjects sur Windows 2000) pour vous montrer comment réaliser des taches communes avec WebObjects.
  • Toute information qui n’est pas spécifique aux frameworks ou aux applications de développement est installée dans /Developer/Documentation/WebObjects ($NEXT_ROOT/Documentation/Developer sur Windows 2000). Sur Mac OS X, l’nstallateur crée aussi des liens symboliques vers la documentation framework à cet emplacement.

Pour accéder à la documentation développeur sur Mac OS X, vous ouvrirez le fichier WOHomePage.html dans votre browser. Ce fichier est situé dans le répertoire /Developer/Documentation/WebObjects. Sur Windows 2000, vous utiliserez l’application WOInfoCenter. Pour lancer WOInfoCenter, cliquez sur le menu “Démarrer” et sélectionnez Programmes > WebObjects > WOInfoCenter.

Documentation en ligne

Vous pouvez trouver de la documentation et des ressources à l’adresse : http://developer.apple.com/webobjects.

Qu’est ce que WebObjects?

Technologiquement parlant, WebObjects est un serveur d’applications extensible et à hautes performances. D’un point de vue développeur, cependant, WebObjects est une plate-forme extensible orientée objet sur laquelle vous pouvez rapidement développer et déployer des applications Web qui intègreront vos données et vos systèmes existants. WebObjects convient spécialement à la publication de données dynamiques sur le Web et apporte la connectivité grandissante du Web aux applications traditionnelles de type client-serveur ou front-end.
Le Web a été créé pour simplifier les accès aux documents publiés électroniquement. A l’origine conçues sous forme de pages statiques avec des hyperliens vers d’autres documents, les pages Web ont rapidement évolué en des présentations graphiques animées. En même temps, la notion d’interactivité a été introduite, permettant ainsi aux internautes de remplir des formulaires et, de ce fait, de fournir des données au serveur.
WebObjects vous permet de passer à l’étage supérieur. Avec WebObjects, vous pouvez produire des applications complètes accessibles par le Web, à usage externe via Internet ou à vocation interne via un intranet d’entreprise. Ces applications peuvent être des applications HTML, accessibles donc par un navigateur, ou peuvent être des applications autonomes avec une totale interactivité.

Publication HTML dynamique

La plupart des contenus du Web sont des textes ou des graphiques qui ne changent pas beaucoup. Cependant, il y a une demande incessante de sites qui publient des données changeant fréquemment : actualités, cotations de titres ou prévisions météo en sont de bons exemples.

Un site Web typique est organisé selon le schéma illustré en Figure 2-1. Un navigateur Web utilisateur requiert des pages en utilisant des URL (Uniform Resource Locators). Ces requêtes sont transmises sur le réseau au serveur HTTP, qui analyse chaque requête et sélectionne la page Web appropriée à retourner au navigateur. Cette page Web est un fichier texte simple qui contient du code HTML. En se basant sur les balises HTML reçues du serveur HTTP, le navigateur affiche la page.

Figure 2-1 Un site à publication statique

Les sites à publication statique sont faciles à maintenir. Il y a plein d’outils sur le marché qui permettent de créer des pages HTML avec très peu d’efforts. Et tant que le contenu de vos pages ne changent pas souvent, il n’est pas difficile de les maintenir à jour. Pour les sites à publication dynamique, cependant, c’est une autre histoire. Sans WebObjects il faudrait une petite armée de webmasters pour tenir à jour un site d’actualités.

WebObjects a été conçu dès le départ pour permettre de publier rapidement et facilement des données dynamiques sur le Web. Vous créez des modèles HTML sur lesquels vous indiquez où seront placés les données dynamiques, et une application WebObjects se chargera de remplir le contenu quand la page sera accédée. Ce traitement s’apparente plus à une fusion de courrier en fait. Les informations que vos pages Web hébergent résident dans une base de données ou sur un autre support permanent de données (des fichiers peut être), elles peuvent aussi être calculées ou générées au moment même où la page est accédée. Les pages sont aussi grandement interactives — vous pouvez pleinement spécifier la manière dont l’utilisateur naviguera de l’une à l’autre.

La Figure 2-2 illustre un site WebObjects de publication dynamique. Encore une fois, la requête (sous la forme d’une URL) provient d’un navigateur client. Si le serveur HTTP détecte que la requête doit être gérée par WebObjects, il passe la requête à un adaptateur HTTP. L’adaptateur transforme la requête de manière à la rendre compréhensible par une application WebObjects et la redirige vers l’application. En se basant sur les modèles que vous avez définis et les données pertinentes provenant du stock de données, l’application génère la page HTML qu’elle renvoit via l’adaptateur au serveur Web. Le serveur Web transmet alors la page au navigateur client qui en effectue le rendu visuel.

Figure 2-2 Un site à publication dynamique

Ce type d’application WebObjects est appelé “HTML-based”, puisque le résultat en est une série de pages HTML générées dynamiquement.

Au lieu d’utiliser un adaptateur HTTP, vous pouvez déployer vos applications via des containers à servelt. Cette approche permet de tirer profit des possibilités de déploiement d’application de vos serveurs servlet. Pour plus d’informations à ce sujet, voir la partie “JSP et Servlets” (NDT : A venir !).

Applications client-serveur “webisées”

Bien que la majorité des sites web publient principalement des données statiques, le nombre de sites qui publient des contenus dynamiques s’accroit rapidement. Beaucoup de compagnies utilisent des intranets, l’Internet, ou les deux pour fournir un accès aisé à leurs applications et à leurs données internes. Un site marchant vendant des livres, de la musique ou même des ordinateurs est un exemple d’application client-serveur “webisée”.

Les applications “webisées” peuvent offrir de grands avantages par rapport aux applications traditionnelles. Les clients n’ont pas d’applications à installer, ce qui non seulement économise de l’espace disque mais en plus permet d’être sûr que le client aura toujours la version la plus récente de l’application. En plus, la machine cliente peut être un Macintosh, un PC ou une station de travail — tout ce qui est capable de faire tourner un navigateur doté des fonctionnalités nécessaires.

WebObjects permet de développer deux types d’applications web : des applications HTML et des applications Client Java. Les applications HTML sont semblables aux applications Common Gateway Interface (CGI) et consistent en des pages HTML dynamiquement générées accédées via un navigateur Web. Les applications Client Java déplacent une partie de votre application vers la machine cliente et mettent à contribution les Java Foundation Classes (JFC) de Sun pour lui apporter une interface utilisateur dans le style de celle que l’on trouve dans les applications traditionnelles.

Applications WebObjects basées sur HTML

Quand vous devez développer une application basée sur HTML telle qu’un caddie, vous pouvez la créer rapidement et facilement avec les outils de développement WebObjects. WebObjects fournit un grand nombre de composants préfabriqués — pages Web, ou portions de pages Web, à partir desquels vous pouvez construire l’interface de votre application. Ces composants vont du plus simple symbole graphique (par exemple : boutons “Envoi”, boites à cocher, tableaux) aux plus complexes (par exemple : barre d’outils). L’ensemble des composants que vous pouvez utiliser avec WebObjects est extensible, vous pouvez donc créer vos propres éléments que vous pourrez réutiliser dans toutes vos applications Web.
Votre application n’est pas entièrement batie à partir de composants. Vous créez des applications WebObjects à partir d’un mélange de composants et de classes Java. Vous placez la logique business propre à votre application dans ces classes. WebObjects fournit le reste.

La structure basique d’une application basée sur HTML correspond à celle d’un site publiant des contenus dynamiques et utilisant WebObjects. Ainsi, la Figure 2-2 s’applique aussi aux applications Web basées sur HTML.

Applications Client Java

Quand vous avez besoin de l’interface rapide et riche des applications client-serveur traditionnelles, vous pouvez partitionner votre application de façon à ce qu’une partie — y compris tout ou partie de l’interface — tourne en Java directement sur la machine cliente. La communication client-serveur est alors gérée par WebObjects. Les applications WebObjects qui sont partitionnées de cette manière sont connues sous le nom d’applications Client Java.

Un Client Java distribue les objets de l’application WebObjects entre le serveur d’application et un ou plusieurs clients — des applications Java en général. Il est basé sur une architecture client-serveur distribuée à multi-tiers, où les traitements sont répartis entre le client, un serveur de bases de données et un serveur HTTP. Avec une application Client Java, vous pouvez partitionner les objets business qui contiennent la logique de votre business et les données en deux parties : la partie client et la partie serveur. Ce partitionnement peut améliorer les performances et en même temps aide à sécuriser les données privées et les règles business.

la Figure 2-3 illustre une application Client Java dans laquelle la partie client est exécutée comme une application installée sur l’ordinateur de l’utilisateur. Comme avec les applications WebObjects basées sur HTML, l’application peut communiquer avec la partie serveur via HTTP. En plus, le Client Java passe des objets entre la portion de votre application qui réside sur la machine de l’utilisateur et celle qui reste sur le serveur.

Figure 2-3 Un site Web lançant des applications Client Java

Les Clients Java permettent à votre application d’avoir l’apparence et le comportement d’une application traditionnelle tout en tirant pleinement profit de la puissance de WebObjects.

Développement rapide

WebObjects est à la fois puissant et flexible. Cette puissance et cette flexibilité, cependant, s’accompagnent d’une dose de complexité. Pour beaucoup d’applications, qu’elles soient HTML ou Client Java, il est important de rapidement développer l’application plutôt que de faire beaucoup d’efforts en termes de flexibilité et de raffinements. Par exemple, une application simple de consultation et de mise à jour de données, à destination d’administrateurs internes, ne nécessiterait pas le même degré d’efforts qu’une application Internet à destination du grand public. Pour simplifier le développement d’applications, WebObjetcts comporte un ensemble de technologies de développement rapide : Direct to Web et Direct to Java Client.

Direct to Web et Direct to Java Client ont une approche similaire. Leur principale différence tient dans la façon dont l’application interagit avec l’utilisateur. Direct to Web crée des applications WebObjects HTML, alors que Direct to Java Client crée des applications WebObjects qui emploient Java Client pour partager l’application entre le serveur et le client. Les deux sont utiles non seulement pour créer des applications simples de consultations de bases de données, mais peuvent aussi, dans pas mal de situations, servir d’outils rapides de prototypage. Compte tenu que Direct to Web et Direct to Java Client autorisent toutes les deux la personnalisation à différents niveaux, elles sont bien adaptées pour créer vos applications critiques.

Direct to Web

Direct to Web est un système de création d’applications WebObjects HTML qui ont accès à une base de données. Tout ce que Direct to Web nécessite pour créer une application est un modèle de la base de données, que vous pouvez construire avec EOModeler (un outil de modélisation de données).

Les applications Direct to Web ne sont pas un ensemble de pages Web statiques. Par contre, Direct to Web utilise les informations du modèle de données disponible au moment de l’exécution pour générer dynamiquement les pages. Par conséquent, vous pouvez modifier la configuration de votre application pendant son exécution — en utilisant l’Assistant Direct to Web — pour cacher les objets d’une classe particulière, cacher leurs propriétés, réordonner leurs propriétés et changer la manière dont ils sont affichés sans devoir recompiler ou relancer l’application.

En plus, Direct to Web sait générer des pages Web pour neuf types d’actions de bases de données, dont les requêtes, les mises à jour et la gestion des listes. Pour y arriver, Direct to Web utilise un composant spécifique par tache appelé modèle qui peut traiter la tache sur n’importe quelle entité. Les modèles, en conjonction avec un ensemble de règles (que vous pouvez personnaliser) sont les éléments essentiels de votre application Direct to Web.

Direct to Web est hautement personnalisable. Par exemple, vous pouvez changer l’apparence des modèles standard, incorporer des composants WebObjects HTML aux pages Direct to Web, et créer des composants et des modèles qui implémentent des comportements spéciaux.

Direct to Java Client

Comme Direct to Web, Direct to Java Client génère une interface utilisateur à des taches communes de bases de données en utilisant des règles pour contrôler les flux de données et, est accompagné d’un assistant qui vous permet de modifier votre application en cours d’exécution. La principale différence avec Direct to Web tient dans le type d’application générée : Direct to Java Client produit des applications Client Java dotées de la richesses et de la rapidité des interfaces utilisateurs associées aux applications traditionnelles.

Ainsi, les applications Direct to Java Client ont les mêmes besoins que d’autres applications Java classiques.

Les avantages de WebObjects

WebObjects comport un nombre de technologies clés qui lui confèrent un avantage certain sur d’autres serveurs d’applications.

Accès rationels aux bases de données

La plupart des données qui sont présentées (ou pourraient l’être) existe déjà sous forme électonique. Non seulement le fait de créer un site web ou une application web de présentation de vos données en utilisant des outils conventionnels peut déjà être un challenge, le fait d’être capable de les accéder peut aussi en être un autre. Des produits reposent sur des SQL (Structured Query Language) manuels ou créés par des assistants menant ainsi à des codes spécifiques à une base de données qu’il sera difficile d’optimiser. WebObjects évite ces problèmes en utilisant Enterprise Objects, un mécanisme reposant sur des modèles permettant d’instancier proprement les objets business directement à partir des tables de la base de données. WebObjets gère toutes les interactions avec la base de données dont la recherche, la mise en cache et la sauvegarde. Cela vous permet d’appliquer votre logique business à vos objets actuels indépendamment de la source de données. Vous pouvez modifier les chémas, ajouter ou changer des bases, et même utiliser un mécanisme totalement différente de stockage de données dans avoir à réécrire l’application.

Les applications WebObjects peuvent accéder à toute base de données via un pilote JDBC 2.0. JDBC est une interface entre les plate-formes Java et les bases de données.

Separation de la présentation, de la logique et des données

Un système idéal de développement d’application Web simplifie la maintenance et encourage la réutilisation du code en imposant une séparatrion propre de la présentation (HTML), de la logique (Java) et des données (SQL). Cette modularité est inhérente au modèle de programmation WebObjects qui utilise des composants réutilisables pour générer des pages Web directement à partir des objets de l’entreprise sans avoir à incorporer des scripts ou du code Java dans vos pages HTML. Un composant contient un modèle, que vous — ou un concepteur Web professionnel — peut mettre en forme et éditer en utilisant des outils standard de création Web. Un composant peut aussi implémenter un comportement personnel en se basant sur une source Java externe. Ni le modèle, ni le fichier source Java n’inclut d’informations spécifiques au modèle.

Gestion d’état

Intrinsèquement, le protocole HTTP utilisé sur le Web ne gère pas la notion de statut, ce qui implique que toute requête HTTP arrive indépendamment des requêtes précédentes et que c’est à l’application Web de reconnaître celles qui proviennent d’une session ou d’un utilisateur individuel. Par conséquent, la plupart des applications Web — comme celles des sites à contenu dynamique les plus intéressants — doivent gérer l’information relative au statut, telles que les informations d’identification ou de panier d’achat, associées à chaque session utilisateur.

Sans se servir de coockies, WebObjects fournit des objets qui vous permet de maintenir les informations de la vie d’une session utilisateur particulière ou sur une durée plus longue. Cela rend la chose particulièrement facile à implémenter dans une application du style magasin Web en ligne : vous n’avez rien de spécial à faire pour maintenir le contenu du caddie de l’utilisateur ou tout autres données se rapportant à la durée de la session. En addition, votre boutique en ligne pourra même gérer des profils d’acheteurs individuels et proposer des articles qui seront censés être plus en rapport avec les goûts du visiteur la prochaine fois qu’il viendra sur votre site.

Développement modulaire

La puissance de WebObjects provient d’un ensemble d’outils et frameworks étroitement intégrés, facilitant ainsi l’assemblage rapide d’applications complexes. Au coeur de ce système réside Project Builder, un environnement intégré de devloppement (IDE) qui gère votre logique business Java et suit tous les modèles et composants supportés. Comme déjà mentionné auparavant, WebObjects comporte aussi des assistants puissants et des frameworks qui permettent la création rapide d’applications HTML ou Client Java directement à partir de la base de données. Les développeurs avancés peuvent taper dans les API Java sousjacentes aux frameworks WebObjects, permettent une personnalisation et une extensibilité virtuellement sans limite.

Java pure

Les applications WebObjects sont du 100% pure Java, ce qui implique qu’elles peuvent être déployées sur toute plate-forme disposant d’une machine vurtuelle Java 2 certifiée.

Extensibilité et performance

Les sites Web statiques et les applications client-serveur traditionnelles ont une facheuse tendance : elles sollicitent trop de puissance de la plate-forme cliente, minimisant ainsi la charge sur le serveur. Il n’est pas nécessaire d’utiliser toute cette puissance pour servir un ensemble de pages Web statiques. Les applications Web dynamiques, malgré une énorme avance sur les pages statiques, requièrent plus de puissance serveur pour accéder aux données dynamiques et construire les pages Web ou l’interface Client Java à la volée.
Le serveur d’applications WebObjects est à la fois efficace et extensible. Avec WebObjects, si plus de puissance, de fiabilité ou de protection de l’intégrité des données est requise, vous pouvez lancer plusieurs instances de votre application, sur un ou plusieurs serveurs (voir Figure 2-4). Vous pouvez choisir un algorithme de répartition de charge parmis plusieurs (ou créer le vôtre) pour déterminer sur quelle instance applicative devra se connecter tout nouvel utilisateur. Et, localement ou à distance, vous pouvez analyser la charge du site et des échantillons d’utilisation et décider alors de lancer ou d’arrêter des instances applicatives si nécessaire. La répartition de charge est une fonctionnalité très puissante de WebObjects qui permet d’ajouter plus de capacité serveur quand le besoin se fait sentir sans avoir à implémenter vous même un algorithme de ce type.

Figure 2-4 Instances multiples, applications multiples

Textes originaux en anglais sur developer.apple.com : WebObjects overview

Thierry WebObjects ,

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
Vous devez être identifié pour poster un commentaire