Je suis un nouveau venu dans l'univers Java et OSGi et j'ai du mal à comprendre le système écologique d'une application Web OSGi.Problèmes de compréhension de l'ensemble du système Web OSGi
Pour être plus précis, je suis en ce moment à essayer de comprendre comment toutes les parties du système écologique sont liés les uns aux autres:
- cadre OSGi (par exemple Apache Felix, Equinox, Knoplerfish)
- OSGi Runtime (par exemple Spring DM Server, Pax Runner, Apache Karaf)
- Web Extender (par exemple Pax Web Extender, Spring Web Extender)
- conteneur Web (par exemple Apache Tomcat, Jetty)
Pour vous donner une représentation visuelle de ma compréhension réelle de leur relation vérifier cette image:
alt text http://img253.imageshack.us/img253/1631/osgiwebenvironmentschem.png
Pour autant que je sais que le cadre OSGi est une implémentation de la spécification OSGi. Le runtime est une distribution qui ajoute des fonctionnalités supplémentaires à la spécification OSGi comme la journalisation par exemple. Comme il semble y avoir des différences dans le mécanisme de classpath d'OSGi et des conteneurs Web comme Tomcat, vous avez besoin d'un traducteur. Cette partie est gérée par le "Web Extender".
Pourriez-vous clarifier tout cela pour moi? Est-ce que je comprends tout correct?
Merci pour votre réponse rapide désavouez. Si je vous comprends bien, l'extension Web prend des fichiers WAR, qui seraient normalement déployés sur un conteneur Web comme Tomcat, et les feraient fonctionner sur l'environnement d'exécution OSGi. Le service HttpService d'OSGi les rendrait alors disponibles "sur le Web" via le protocole HTTP. Correct? En conclusion: je n'aurais pas besoin d'un conteneur Web comme Tomcat? – Jens
Oui, exactement à propos de la façon dont il s'emboîte. Vos services seront disponibles via le service http OSGi. Cependant, en pratique, l'extension Web utilise un conteneur Web pour déployer le WAR de toute façon. L'avantage que vous obtenez est que le WAR peut être démarré avec vos scripts de démarrage normaux du framework OSGi, et que les WAR peuvent prendre part à la gestion normale des dépendances du framework OSGi (ie vous pouvez dépendre de WAR: s, et WAR: s peut dépendre d'autres bundles OSGi). –
Et toutes les servlets seront enregistrées au service http OSGi. –