63 votes

Qu'est-ce que OSGi et quels sont quelques exemples d'utilisation?

Je viens tout juste de commencer à entendre le terme utilisé OSGi (lors de la lecture de didacticiels sur les conteneurs Java EE courants tels que GlassFish et Spring), mais je n'ai pas réussi à trouver une explication simple, directe et compréhensible de ce que OSGi est-ce qu'une entreprise novice telle que moi la comprendrait?

Quelqu'un peut-il fournir une telle explication factice? Peut-être avec des exemples ou même des extraits de code?

Merci!

76voto

akr Points 2011

Simplement dit, OSGi est un module dynamique du système pour Java. Il définit les moyens à installer, désinstaller, mettre à jour, de démarrer et d'arrêter de modules. Ces modules sont appelés faisceaux, mais sont, dans leur forme la plus simple, en fait Java jar fichiers avec un Manifeste. Les Modules peuvent être installé, désinstallé, etc, sans s'arrêter ou de redémarrer la machine virtuelle Java.

Un framework OSGi gère le décrit le cycle de vie et les dépendances entre les paquets de manière sécurisée. Un paquet de l'état qui les packages Java il exportations et qu'elle importe. L'importation et l'exportation des états peuvent être annotées avec les informations de version, de sorte que vous pouvez même avoir plus d'une version d'un même ensemble dans la même machine virtuelle Java.

L'OSGi Alliance est l'organisation qui spécifie le framework OSGi et de nombreux services d'accompagnement, par exemple pour la gestion des données de configuration, l'accès au périphérique, etc.

Ceci est juste un aperçu très élémentaire. OSGi est beaucoup plus. Jetez un oeil à http://www.osgi.org/About/Technology (une introduction à OSGi) et http://www.osgi.org/Links/HomePage (le lien de la page de l'OSGi Alliance).

34voto

Pangea Points 36713

Au détriment de certains votes contre ;-), j'aimerais répondre à cette question dans mes propres mots (de sorte que je peux être corrigé sur ma compréhension).

Nous créons des applications d'un ensemble de modules, chaque module fonctionnellement cohérent avec-lui-même et faiblement couplés avec d'autres modules. Cela a de nombreux avantages comme vous le savez peut être déjà. Les heures supplémentaires de temps, l'unité de la modularité s'est améliorée à partir de fonctions pour les classes de paquets à une unité de déploiement (comme pot en Java et l'assemblée .Net). Mais tout ceci n'est que pendant les temps de développement, une fois que l'application (qui est un ensemble de modules) est déployé, le serveur toujours de voir comme un géant de l'application monolithique c'est à dire les limites logiques ne sont pas conservées au cours de l'exécution. OSGi fait de ces limites explicites cours de développement ainsi que l'exécution en dehors de d'autres avantages décrits ici

Je suggère cet excellent livre gratuit pour vous aider à démarrer OSGi dans la Pratique

Si vous travaillez sur la plate-forme Java, également de vérifier cette présentation: Pourquoi Les Spécifications OSGi Été Basée Sur la Technologie Java™?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X