Quelles sont les différences fondamentales entre OSGi et Java EE?
J'ai donc pris un peu de temps cet après-midi pour enfin s'asseoir et de commencer à lire sur le mystérieux et insaisissable "OSGi" et sa soi-disant bundles.
OK, donc je pense je l'obtenir. Un OSGi "bundle" est en fait un POT avec quelques informations sur le manifeste. Et, au lieu de déploiement d'une application normale du serveur (ou autre récipient), vous pouvez la déployer sur un serveur OSGi comme Apache Felix. Il exécuter, puis fournit les services aux utilisateurs/clients.
Comment est-ce différent d'une OREILLE normale en cours de déploiement sur un serveur d'application???
OSGi semble être à la hausse (je continuer à courir dans la!) mais pour la vie de moi je ne comprends pas ce qu'il offre (fonctionnalité-sage) sur tout ce que vous pouvez faire avec real-deal enterprise server comme GlassFish ou au Printemps.
Je sais que le monde n'est pas devenu fou, donc je suis évidemment manque quelque chose. N'ont tout simplement pas été en mesure de comprendre quoi. Merci pour toute aide ou des connaissances!
- Je pense que si c'était libellée comme "Quelle est la différence fondamentale entre OSGi et Java EE" puis ce serait plus utile et moins "avis"basée sur la
- À quel point l'on peut dire... OSGi est principalement conteneur qui fait quoi CDI essaie de le résoudre (injection de dépendance et de résolution), mais n'a généralement pas l'empêcher de s'exécuter quand il y a des erreurs. Il fournit une interface [généralement par le biais de la ligne de commande] qui permettrait de bugs lors de l'exécution. Java EE aurait besoin d'un déploiement à résoudre les problèmes. Java EE est une application de la pile, si elle fournit des services de conteneurs, c'est seulement dans le cadre de l'application (bien que peut obtenir des injections à partir d'un serveur) Note bien que les gros serveurs Java EE sont construites sur OSGi maintenant.
Vous devez vous connecter pour publier un commentaire.
Un bundle OSGi est plus un "module logiciel" que d'un "pot", "guerre", ou "l'oreille" du fichier. Bundles OSGi rarement offrir des avantages si elles regroupent un ensemble de l'application; cependant, ils sont très bénéfiques dans l'automatisation et la bonne gestion de l'accrocher beaucoup de bibliothèques.
Donc considérer le problème OSGi a tenté de résoudre, et vous permettra de mieux comprendre où il se situe. C'est la Java équivalent de la "diamond héritage" modèle à partir de C++. Elles comprennent deux bibliothèques, qui ont chacun besoin d'une bibliothèque de journalisation commune, mais dans ce cas, il n'est pas à cause de l'héritage multiple, c'est à cause de multiples inclure des déclarations.
Si les deux bibliothèques travaillent tous les deux avec la même version de la commune de la bibliothèque de journalisation, vous avez de la chance. S'ils ne le font pas, pour obtenir à chaque bibliothèque de fonctionner correctement de manière indépendante, vous avez besoin de charger deux copies de la même bibliothèque, chaque qui utilise probablement les mêmes espaces de nom (et souvent les mêmes noms de classe).
OSGi est un moyen de regroupement qui permet à deux versions de la même bibliothèque à charger qui utilisent les mêmes espaces de nom, les mêmes noms de classes, mais ont été créés à des moments différents. Il a également crochets jusqu'à la "bonne" version de la "droite" bundle OSGi, la prévention d'un bundle de l'aide de la "mauvaise version" de la "droite" de la bibliothèque.
Java EE fait beaucoup, mais ce n'est pas quelque chose que Java EE même adresse. Au mieux, le projet Jigsaw travaillait sur le même problème. Où Java EE /OSGi confusion vient jouer, c'est que la plupart des adopteurs précoces d'OSGi regroupement ont été ceux qui ont mis en œuvre des fonctionnalités similaires à certains des librairies Java EE. Cela dit, le conteneur de-connexion-cadre (OSGi) n'avait rien à voir avec le logiciel fonctionnalité (bien que certains de la découverte a été structurellement modifiés pour se conformer avec OSGi groupement des exigences).
Comparant Java EE avec OSGi, c'est comme comparer des pommes et des oranges avec le bonus supplémentaire de ne pas savoir ce qui est quoi.
Java EE accent est mis sur évolutif multi-tier entreprise applications en environnement hétérogène et l'échelle de l'entreprise d'intégration de systèmes d'information.
OSGi a commencé au coin de la rue par l'intégration de plusieurs bases de code dans une JVM (veuillez excusez-moi pour le extrêmement bref).
Bien sûr certains problèmes (par exemple, le déploiement à chaud) sont communs aux deux environnements, mais à un degré variable.
Bien sûr, vous pouvez mettre à niveau, de la rétrogradation et de races croisées deux à la fois et ils vont se rencontrer quelque part au milieu.
Donc la question ne devrait pas être "Quel est le bénéfice d'Un plus B", mais quelque chose comme "Dans ce domaine Un a des avantages indéniables par rapport à B et vice-versa?" Permettez-moi de reformuler: "Quand dois-je besoin d'un marteau et quand dois-je besoin d'une scie?"
Je suis désolé, mais TOUTES les réponses ici sont complètement risible. La dépendance de version problèmes résolus avec OSGi? Pooooohlease.... Jamais entendu parler de la classe loader politiques en application des serveurs?
OSGi semble comme une idée de conserver de la vente de nouveaux livres et de la formation, alors que les besoins fonctionnels ont été couverts pendant des éons par le POT de l'OREILLE/emballage & déploiement en JEE. Ceux qui achètent en il n'y a jamais eu de comprendre comment ils sont manipulés. Il y a aussi une question de tendances de la mode. I. e. non ce sont des considérations techniques qui sont une honte pour cette industrie.
Réinventer la roue est rentable car il y a des tonnes de fous là-bas. Malheureusement, il ya des tonnes de type gestion des crédules qui veulent être sur le "à la pointe de la technologie" qui se fera un plaisir de financer leurs employés des cours, d'absorber la courbe d'apprentissage, et ensuite de payer par le nez en "re-engineering" de choses qui n'avaient rien de mal avec eux pour commencer.
Ce n'est pas une question de "suis-je utiliser un tournevis, un marteau". C'est plus une question de "hey boss, il y a cette chose de nouveau là-bas appelé HEMMAR, et c'est vraiment cool!". "N'est-il pas un MARTEAU?", "Non, non, c'est waaaaay mieux, c'est un HEMMAR, c'est pour la conduite des clous dans des planches, il va révolutionner le monde".
La plupart des grands avantages, au moins les raisons que nous avons d'utiliser OSGi, sont énumérées à http://karaf.apache.org/, notamment les deux premiers.
En outre, l'OSGi alliance a une longue liste d'avantages: https://www.osgi.org/developer/benefits-of-using-osgi/.