Question

Notre application se connecte souvent à un autre type de back-ends sur les services Web, MQ, JDBC, propriétaire (directement sur la douille) et d'autres types de transport. Nous avons déjà un certain nombre de réalisations qui nous permettent de connecter de notre application à ces back-ends et pendant toutes ces implémentations implémenter l'interface java commune, ils ne partagent rien d'autre.

Nous avons réalisé qu'il ya des portions signification de code qui sont communs pour toutes ces implémentations de connecteur particulier et nous avons décidé de rationaliser le développement des connecteurs futurs par un connecteur universel. Ce connecteur sera capable de formater des messages à un format attendu par back-end et de les envoyer en utilisant le mécanisme de transport disponible. Par exemple, le format de message de longueur fixe sur MQ ou sur une prise.

L'un des dilemmes auxquels nous sommes confrontés est la technologie la plus appropriée pour ce type de connecteur. Jusqu'à présent, nos connecteurs sont des classes Java de base qui mettent en œuvre l'interface java commune. Étant donné que nous hébergeons généralement nos applications dans un serveur d'applications Java EE, il semble que Java Connector Architecture serait la technologie la plus appropriée pour ce logiciel. Cependant, la mise en œuvre connecteur compatible JCA semble être relativement complexe. Quels sont les avantages palpables d'aller avec la norme - et JCA ne avantages justifient l'effort supplémentaire

Était-ce utile?

La solution

En effet JCA semble la technologie la plus appropriée pour vous. Déjà d'excellents arguments ont été faits, à savoir la portabilité, interface standardisée, la mise en commun de connexion et de transactions. Et ne pas oublier la sécurité.

Avec WebSphere Process Server les adaptateurs peuvent être exposés en tant que service de SCA qui peut avoir beaucoup d'avantages si c'est important pour vous.

En outre, certains outils de développement ont un large soutien pour le développement et les essais des connecteurs JCA.

Un autre avantage est (expérimentés) développeurs Java EE Administrateurs et Java EE (devrait) connaître la norme si l'administration et le développement doivent être faciles à rationaliser.

Mais à la fin, vous devriez avoir à trouver des raisons pour mettre en œuvre JCA en fonction de la portée de votre projet, l'avenir vous avez des plans pour votre projet ou peut-être dans la politique de votre entreprise.

Autres conseils

Réponse courte: Je ne vois aucun avantage sur la sélection JCA sur d'autres technologies, je le vois comme un inconvénient car vous avez besoin conteneur Java EE

.

Réponse longue:

Je suis sceptique au sujet de ces normes Java EE depuis un certain temps. Je ne vois pas convaincant technique raison d'utiliser plus d'un serveur complet en vedette Java EE, car il y a de meilleures implémentations open source pour tous fonctionnalité offerte. J'ai été mordu à plusieurs reprises par des incompatibilités de mise en œuvre lors du passage à / de « solutions enterprisey ».

L'idée de JCA est surfaçage ici maintenant et je pousse à essayer apache chameau ou l'intégration de printemps à la place. Je suis tout pour les implémentations open source que vous pouvez utiliser partout. Et il y a beaucoup de choses. Consultez cette liste des composants . Certes, est peut-être plus petit que ce qui est déjà développé avec JCA, mais tout est open source et il est sur un seul emplacement. Aussi, je crois la documentation est plus simple et plus complète. L'envie d'intégration appelle à un puissant SPI avec beaucoup d'open source, des exemples concrets en direct, développé de la même façon, et que se trouve au même endroit.

Je suis haïssant la négativité, mais je n'aime pas les serveurs pleins d'applications en vedette. Par exemple, je pencherais pour tomcat et terracota un jour sur les autres produits « enterprisey », tout comme j'aller avec chameau avant JCA, jusqu'à ce que le besoin de JCA obtient prouvé. Je n'aime pas l'idée du Comité Java pour dire comment je devrais développer mes propres applications parce que je ne leur fais pas confiance. Je crois qu'il est dans mon intérêt lorsque le logiciel peut fonctionner aussi facilement sur Java SE / RCP comme dans un environnement Java EE ou dans un récipient pur Servlet.

Je viens développé un adaptateur de ressources entrant pour un dispositif de communication GPS sur un protocole propriétaire. Ce n'était pas trop de tracas, mais j'ai l'impression que le développement d'un un sortant pourrait nécessiter plus de travail. La pire chose avec le JCA est le manque de documentation. Tous les livres et articles semble avoir le même exemple muet.

La chose dont je suis le plus heureux est la portabilité. Une fois que vous avez écrit l'adaptateur, vous pouvez brancher le rar (archive adaptateur de ressources) dans un serveur d'applications pour fournir des applications déployées la capacité de communiquer avec eis supporté par votre ra. Vous pouvez également regrouper le rar dans la guerre / oreille.

Les avantages sont principalement pour les fournisseurs qui souhaitent vendre des connecteurs pour propriétaires systèmes dorsaux pour une utilisation avec un serveur d'applications, pour les clients qui veulent être en mesure de déposer dans un connecteur sans se soucier de savoir si elle ne fonctionne que sur WebLogic non Websphere, etc. Ceci est en effet l'objectif de Java EE en général.

Notez que JBoss a décidé de mettre plusieurs choses en JCA, par exemple les connexions JDBC passent par JCA.

Votre futur code client aura une interface standardisée, une mise en commun et de transactions, etc., mais il est important de garder la vue de l'image plus grande; à savoir que les avantages ne sont pas ciblés à vous et votre un projet spécifique, mais à un composé éco-système logiciel de nombreux serveurs d'applications, de nombreux systèmes de back-end, de nombreux connecteurs et ainsi de suite.

Sons comme un bon usage pour une JBI container avec des composants de liaison. Discussion de JCA vs JBI.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top