Frage

Unsere Anwendung verbindet oft zu einer anderen Art von Back-Ends über Web-Service, MQ, JDBC, proprietäres (direkt über Buchse) und andere Arten von Verkehr. Wir haben bereits eine Reihe von Implementierungen, die uns von unserer Anwendung auf diese Backends verbinden lassen und während all diese Implementierungen die gemeinsame Java-Schnittstelle implementieren, sie nichts anderes teilen.

Wir haben erkannt, dass es Bedeutung Teile des Codes, die für alle diese speziellen Stecker Implementierungen gemeinsam sind, und wir beschlossen haben, die Entwicklung zukünftiger Anschlüsse durch einen Universalanschluss zu straffen. Dieser Anschluss wird von Back-End und sendet sie den verfügbaren Transportmechanismus erwartet der Formatierung Nachrichten in ein Format fähig sein. Beispielsweise mit fester Länge Nachrichtenformat über MQ oder über eine Socket.

Ein Dilemma wir stehen, ist die am besten geeignete Technologie für diese Art von Stecker. Bisher haben sich unsere Anschlüsse waren einfach Java-Klassen, die die gemeinsame Java-Schnittstelle implementieren. Da wir in der Regel unsere Anwendungen in einigen Java EE Application Server hosten, so scheint es, dass Java Connector Architecture die am besten geeignete Technologie für dieses Stück Software sein würde. Allerdings scheint JCA-konformen Steckverbinder Implementierung relativ komplex. Was sind die Vorteile spürbar von der Norm geht - JCA und rechtfertigen Vorteile die zusätzlichen Aufwand

War es hilfreich?

Lösung

Tatsächlich JCA scheint die am besten geeignete Technologie für Sie. Bereits ausgezeichnete Argumente wurden, nämlich die Portabilität, standardisierte Schnittstelle, das Verbindungs-Pooling und Transaktionsunterstützung gemacht. Und vergessen Sie nicht die Sicherheit.

Mit Server WebSphere Process die Adapter als SCA-Service ausgesetzt werden könnten, die eine Menge Vorteile haben kann, wenn das für Sie wichtig ist.

Auch haben einige Entwicklungstools umfangreiche Unterstützung für die Entwicklung und Erprobung von JCA-Anschlüssen.

Ein weiterer Vorteil ist (erfahrene) Java EE-Administratoren und Java EE-Entwickler (soll) kennt den Standard so die Verwaltung und Entwicklung sollten einfach sein zu optimieren.

Aber am Ende sollen Sie haben Gründe zu finden, JCA zu implementieren, basierend auf dem Umfang des Projektes, die Zukunft plant, Sie für Ihr Projekt haben oder vielleicht in der Politik Ihres Unternehmens.

Andere Tipps

Kurze Antwort: Ich sehe keinen Nutzen JCA gegenüber anderen Technologien zur Auswahl, ich sehe es als Nachteil, da Sie Java EE Container benötigen

.

Lange Antwort:

Ich habe nun schon seit einiger Zeit über diese Java EE Standards skeptisch gewesen. Ich sehe nicht einen überzeugenden technischer Grund, einen voll funktionsfähigen Java EE-Server nicht mehr zu verwenden, da es besser ist Open-Source-Implementierungen für alle Feature angeboten. Ich habe mehrmals durch Umsetzung Inkompatibilitäten gebissen worden, wenn zu / von „enterprisey Lösungen“ zu bewegen.

Die Idee für JCA ist Auftauchen jetzt hier und ich bin schieben Apache Kamel oder spring Integration statt. Ich bin für die Open-Source-Implementierungen, die Sie überall nutzen können. Und es gibt eine Menge los. Prüfen Sie dieser Liste der Komponenten . Zugegeben, das ist vielleicht kleiner als, was bereits mit JCA entwickelt, aber jedes Stück ist Open Source und es ist alles an einem Ort. Ich glaube auch, die Dokumentation einfacher und vollständiger ist. Der Drang zur Integration erfordert eine leistungsstarke SPI mit viel Open Source, echte Live-Beispiele, auf die gleiche Art und Weise entwickelt, und das kann auf dem gleichen Platz zu finden.

Ich hasste die Negativität, aber ich mag es nicht, voll funktionsfähige Anwendungsserver. Zum Beispiel würde ich für Kater und terracota gehen jeden Tag über andere „enterprisey“ Produkte, so wie ich mit Kamel vor JCA, bis die Notwendigkeit für JCA bewiesen wird gehen würde. Ich mag es nicht die Idee des Java Ausschuss zu sagen, wie ich meine eigenen Anwendungen zu entwickeln, weil ich sie nicht vertrauen. Ich glaube, es in meinem Interesse ist, wenn das Stück Software ebenso einfach auf Java SE / RCP als in einer Java EE-Umgebungen oder in einem reinen Servlet-Containern arbeiten kann.

Ich habe entwickelt gerade eine eingehende Ressourcenadapter für ein GPS-Gerät ein proprietäres Protokoll kommunizieren. Es war nicht so viel Aufwand, wenn ich den Eindruck habe, dass eine Nachaußengehenden entwickeln könnte mehr Arbeit erfordern. Das Schlimmste, was mit dem JCA ist der Mangel an Dokumentation. Alle Bücher und Artikel scheinen das gleiche stumme Beispiel zu haben.

Das, was ich mit den meisten zufrieden bin, ist die Portabilität. Sobald Sie den Adapter geschrieben Sie die rar verstopfen können (Resource Adapter Archive) in jedem Anwendungsserver bereitgestellten Anwendungen die Fähigkeit, mit uvb von Ihrem ra unterstützt die Kommunikation zur Verfügung zu stellen. Oder Sie können die rar in den Krieg / Ohr bündeln.

Die Vorteile in erster Linie für die Anbieter sind, die wünschen Anschlüsse zu verkaufen, um proprietäre Backend-Systeme für den Einsatz mit jedem App-Server, der für die Kunden wollen in einem Verbinder fallen zu können, ohne sich Gedanken darüber, ob es funktioniert nur auf WebLogic nicht Websphere, usw. Tatsächlich ist dies das Ziel der Java EE im allgemeinen.

Beachten Sie, dass JBoss mehrere Dinge in JCA, zum Beispiel JDBC-Verbindungen gehen über JCA.

setzen beschlossen hat,

Ihre Zukunft Client-Code wird eine standardisierte Schnittstelle, eine Bündelung und Transaktionsunterstützung usw., aber es ist wichtig, die Augen des größeren Bildes zu halten; nämlich, dass die Leistungen nicht an Sie gerichtete und Sie ein Projekt speziell, aber zu einem Software-Öko-System, das aus vielen Applikationsservern, viele Back-End-Systeme, viele Anschlüsse und so weiter.

Klingt wie eine gute Verwendung für ein JBI Behälter mit Bindungskomponenten. Diskussion von JCA vs JBI.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top