Pour bien comprendre WebObjects, il faut savoir que contrairement aux outils concurrents qui eux ont été conçus pour utiliser les possibilités offertes par Java, webObject a été conçu à partir des concepts orientés objet en général.
C'est ainsi que tout dans webObject est un objet.
Tenez prenez une page web par exemple; elle est composée de code html, d'éléments graphiques, de boutons, d'applets, etc..Pour webObject, ce sont tous des objets hérités de l'objet WOElement et des objets WOButton, WOApplet..etc.
Or qui dit objet dit attributs+methodes(comportement ou capacité à répondre aux messages).
A quoi cela sert-il me direz-vous? Eh bien c'est de là que vient toute la magie de webObject.
C'est la génération dynamique de la page web et la réutilisation de ses composants.
En effet quand une appli webObject reçoit une requête, pour schematiser un peu, elle envoie à chaque composant de la page trois messages.
1 - Regarde dans la requête s'il y a un paramètre pour toi (takeValueFromRequest)
2 - Exécute l'action demandée (invokeAction)
3 - Génère ton code html et place-toi dans la page (appendToResponse)
et la page se construit dynamiquement, c'est à dire au moment de la prise en compte de la requête.
L'avantage me direz-vous? Eh bien ce sont les possibilités offertes par la dynamicité, et le caractère temps réel de l'appli.
Ne pas confondre serveur web avec serveur webObject.
Une application webObject utilise une architecture dite à 3 niveaux.
Un serveur Web qui reçoit la requête, celle-ci est prise en compte par un adaptateur (un programme webObject) qui la dirige vers le serveur webObject à l'application concernée.
Celle-ci en s'exécutant peut faire appel à un autre adaptateur pour allez chercher des données dans le serveur de base de données.
L'accès aux bases de données utilise une technologie inédite appelée EOF qui surclasse les JDBC et autres, par son élégance et sa facilité.
Mais ça c'est une autre histoire.
Je vous raconterai aussi comment en utilisant la technologie dite Java Client, au lieu de générer une page web, webObject genère de l'XML qui une fois interpreté sur la machine cliente, produit une interface native. Incroyable non??
Vous comprenez alors pourquoi sous Mac OS X les préférences, ainsi que la disposition des éléments dans une interface aqua (pour les applis carbon pour l'instant) sont tous codées en XML. Vous imaginez les possibilités???
Salut