quels sont les avantages d'OSGi du composant au système de vous fournir?
Eh bien, Ici, est tout à fait une liste:
Réduction de la Complexité - Développement avec la technologie OSGi-dire de développement de faisceaux: les composants OSGi. Les Bundles sont des modules. Ils cachent leurs internes des autres faisceaux et de communiquer à travers des prestations définies. Cacher les éléments internes de la plus grande liberté de changer plus tard. Cela réduit non seulement le nombre de bugs, il fait aussi des faisceaux plus simple à développer correctement de la taille des faisceaux de mettre en œuvre un morceau de fonctionnalités par le biais d'interfaces bien définies. Il y a un blog intéressant qui décrit ce que la technologie OSGi a fait pour leur processus de développement.
La réutilisation - OSGi modèle de composant, il est très facile à utiliser de nombreux composants tiers dans une application. Un nombre croissant de projets open source offrent leurs Pots de prêt à l'emploi pour OSGi. Toutefois, les bibliothèques sont aussi de plus en plus comme des ready-made de faisceaux.
Monde réel - Le framework OSGi est dynamique. Il peut mettre à jour des faisceaux sur la volée et services peuvent aller et venir. Les développeurs ont utilisé plus traditionnelles en Java voyons cela comme une très problématique de la fonctionnalité et de ne pas voir l'avantage. Cependant, il s'avère que le monde réel est très dynamique et ayant des services dynamiques qui peuvent aller et venir rend les services d'un match parfait pour de nombreux scénarios réels. Par exemple, un service peut modéliser un appareil dans le réseau. Si le périphérique est détecté, le service est enregistré. Si l'appareil se met à l'écart, le service est annulé. Il ya un nombre surprenant de scénarios réels qui correspondent à cette dynamique, le modèle de service. Applications peut donc réutiliser le puissant primitives du service de registre (registre, d'obtenir, de la liste avec une force expressive du langage de filtrage, et d'attente pour les services d'apparaître et de disparaître) dans leur propre domaine. Cela permet non seulement d'économiser de l'écriture de code, il fournit également une visibilité mondiale, les outils de débogage, et plus de fonctionnalités qu'aurait mis en place pour une solution dédiée. L'écriture de code dans un environnement aussi dynamique des sons comme un cauchemar, mais heureusement, il y a des cours de soutien et des cadres qui prennent pour la plupart, si pas tous, de la douleur.
Facilité de Déploiement - La technologie OSGi n'est pas seulement une norme pour les composants. Il précise également la manière dont les composants sont installés et gérés. Cette API a été utilisé par de nombreux faisceaux de fournir un agent de gestion. Cet agent de gestion peut être aussi simple comme un shell de commande, un TR-69 protocole de gestion de pilote, OMA DM pilote de protocole, cloud computing interface d'Amazon EC2, ou un IBM Tivoli système de gestion. La normalisation de la gestion de l'API, il est très facile à intégrer la technologie OSGi dans des systèmes existants et futurs.
Les Mises à jour dynamiques - OSGi modèle de composant est un modèle dynamique. Les faisceaux peuvent être installés, marche, arrêt, mise à jour, et désinstallé sans ramener le système dans son ensemble. Beaucoup de développeurs Java ne crois pas que cela peut être fait de manière fiable et donc d'abord de ne pas l'utiliser dans la production. Cependant, après l'utilisation de ce développement pendant un certain temps, la plupart commencent à se rendre compte qu'elle fonctionne réellement et significativement réduit le temps de déploiement.
Adaptation de L'OSGi modèle de composant est conçu à partir du sol pour permettre le mélange et l'appariement des composants. Cela nécessite que les dépendances des composants doivent être spécifiés et il nécessite des composants de vivre dans un environnement où leurs dépendances optionnelles ne sont pas toujours disponibles. OSGi service de registre est une dynamique de registre où les faisceaux peuvent s'inscrire, obtenir et écouter de services. Cette dynamique modèle de service permet de faisceaux pour savoir quelles fonctionnalités sont disponibles sur le système et d'adapter les fonctionnalités qu'ils peuvent offrir. Cela rend le code plus flexible et résilient aux changements.
Transparence - Faisceaux et des services de première classe des citoyens dans l'environnement OSGi. La gestion de l'API permet d'accéder à l'état interne d'un bundle ainsi que la façon dont il est connecté à d'autres bundles. Par exemple, la plupart des cadres de fournir une interface de commande qui montre cet état interne. Les applications peuvent être arrêtés pour résoudre un certain problème de santé, de diagnostic ou de faisceaux peut être introduit. Au lieu de regarder des millions de lignes de sortie de journalisation et à long redémarrage fois, OSGi applications peuvent souvent être corrigés avec un shell de commande.
La gestion des versions de la technologie OSGi résout POT de l'enfer. POT de l'enfer est le problème que la bibliothèque fonctionne avec la bibliothèque B;version=2, mais la bibliothèque C ne peut travailler qu'avec B;version=3. En Java standard, vous êtes hors de la chance. Dans OSGi environnement, tous les faisceaux sont soigneusement versionnées et seuls les ensembles qui peuvent collaborer sont câblés ensemble dans la même classe de l'espace. Ceci permet à la fois bundle A et C de la fonction avec leur propre bibliothèque. Bien qu'il n'est pas conseillé pour la conception de systèmes avec cette versioning problème, il peut être un épargnant de vie dans certains cas.
Simple - OSGi API est étonnamment simple. L'API de base n'est qu'un paquet de moins de 30 classes/interfaces. Cette API de base est suffisant pour écrire des faisceaux, d'installation, de démarrage, d'arrêt, de mise à jour, et de les désinstaller et comprend tous les écouteurs et classes de sécurité. Il y a très peu d'Api qui fournissent autant de fonctionnalités pour si peu de l'API.
Petit - OSGi Version 4-Cadre peut être mis en œuvre dans environ 300 KO fichier JAR. C'est une petite surcharge de la quantité de fonctionnalités qui est ajouté à une demande en OSGi. OSGi donc fonctionne sur une large gamme d'appareils: de très petites, de petites, unités centrales. Il demande seulement pour un minimum de la machine virtuelle Java pour exécuter et ajoute que très peu sur le dessus de cela.
Rapide - l'Une des principales responsabilités de l'OSGi cadre du chargement des classes de faisceaux. En Java traditionnelle, les Pots sont complètement visibles et placés sur une liste linéaire. La recherche d'une classe nécessite la recherche par le biais de ce (souvent très long, 150 n'est pas rare) de la liste. En revanche, OSGi pré-faisceaux de fils et sait pour chaque module exactement qui bundle fournit la classe. Ce manque de recherche est l'une vitesse importante facteur au démarrage.
Fainéant - Paresseux dans le logiciel est bon et la technologie OSGi a beaucoup de mécanismes en place pour faire des choses que lorsqu'ils sont vraiment nécessaires. Pour des exemples, des paquets peut être démarré avec impatience, mais ils peuvent également être configurés uniquement dans le cas où un autre bundle. Les Services peuvent être enregistrées, mais seulement créé quand ils sont utilisés. Les spécifications ont été optimisés à plusieurs reprises pour permettre ce genre de paresseux scénarios qui peuvent enregistrer d'énormes coûts d'exécution.
Secure - Java a un très puissant fine modèle de sécurité dans le fond mais il s'est avéré très difficile à configurer dans la pratique. Le résultat est que la plupart de sécuriser les applications Java sont en cours d'exécution avec un choix binaire: pas de sécurité ou très limitée des capacités. OSGi modèle de sécurité tire parti de la fine modèle de sécurité, mais améliore la facilité d'utilisation (ainsi que le durcissement le modèle d'origine) en ayant le bundle développeur de spécifier la sécurité demandé des détails facilement vérifiés forme, alors que l'opérateur de l'environnement demeure entièrement responsable. Dans l'ensemble, OSGi est susceptible de fournir l'un des plus sûrs d'environnements d'applications qui est encore utilisable à court de matériel protégé des plates-formes informatiques.
Non Intrusif - Applications (bundles) dans un environnement OSGi sont laissés à leur propre. Ils peuvent utiliser pratiquement n'importe quel établissement de la VM sans OSGi en les limitant. Les meilleures pratiques dans OSGi est d'écrire Plain Old Java Objects et pour cette raison, il n'y a pas d'interface requis pour les services OSGi, même un Java objet de type String peut agir comme un service OSGi. Cette stratégie permet à l'application d'un code plus port à un autre environnement.
Coule de Partout - eh Bien, ça dépend. L'objectif initial de Java a été de courir n'importe où. Évidemment, il n'est pas possible d'exécuter tout code partout, parce que les capacités des machines virtuelles Java diffèrent. Une machine virtuelle dans un téléphone mobile ne sera probablement pas en charge les mêmes bibliothèques comme un mainframe IBM exécutant une application bancaire. Il y a deux problème pour prendre soin de. Tout d'abord, le OSGi Api ne doit pas utiliser des classes qui ne sont pas disponibles sur tous les environnements. Deuxièmement, un bundle ne devrait pas démarrer si il contient du code qui n'est pas disponible dans l'environnement d'exécution. Ces deux questions ont été prises en charge dans les spécifications OSGi.
Source : osgi.org/Technology/WhyOSGi