2010-11-11 21 views
9

Przeczytałem, że JCA jest dla starszej integracji EIS. Czy to jest nastawione na dostawców, a nie na programistę aplikacji? Ciekawi mnie przypadek użycia, w którym programiści napisali adaptery JCA, aby rozwiązać swoje problemy techniczne lub biznesowe.Przypadki użycia dla JCA

+1

Dobre pytanie, to niektóre z rzadszych zwierząt znalezionych w królestwie J2EE/JEE - spróbuj poszukać książek na ten temat: | –

Odpowiedz

10

Napisałem złącza JCA do wszelkiego rodzaju systemów końcowych (FTP, SFTP, File, systemy finansowe).

to głównie w sektorze bankowości inwestycyjnej, gdzie trzeba wysłać towarowych i/lub danych statycznych na różnych systemach wewnątrz i na zewnątrz banku. Cokolwiek z usług sieciowych RESTFul JSON/XML do wywołań gniazd do komputera mainframe może być zaangażowane w transakcję biznesową.

Więc JCA przychodzi w czasie rzeczywistym przydatny jest to zapewnia jednolity model programowania i mogą być zarządzane przez serwery aplikacji, które pomogą Ci transakcyjności, łączenie itd

Chcesz FTP plik zawierający bardzo drogiego handlu przyjazd (transakcyjnie gwarantowane)? JCA to jedna z technologii, które można wykorzystać do rozwiązania tego problemu.

< rażące wtyczka > dodam, że pracuje obecnie nad projektem open source o nazwie Ikasan która ma wolne złącza JCA </wtyczki rażące > podobnie jak kilka innych projektów, takich jak muł i Integracji wiosennym. Więc nie jest tak, że przeciętny programista musi sam pisać.

+0

Czy możesz wyjaśnić więcej na 1) podejście, które musimy podjąć, pisząc adapter jca przy użyciu wywołań gniazd jako przykładu 2) Jaki jest powód wywoływania gniazd z adaptera niż wywoływanie gniazda bezpośrednio z poziomu kodu 3) W jaki sposób połączenie z gniazdem może być zaangażowane w transakcję? Nie ma sposobu, aby skłonić transakcję do prawa odbiorcy połączenia? Czy możesz wyjaśnić więcej na temat semantyki transakcji w tym scenariuszu? –

+1

@Pangea - To głęboki temat, ale w skrócie: 1) To zależy od tego, czy piszesz złącze wejściowe, czy złącze wychodzące (będziesz chciał to przeczytać). 2) Posiadanie adaptera JCA jest dobre, ponieważ oddziela aspekty połączenia od głównej logiki biznesowej, adapter (zwykle w pakiecie jako RAR) zajmie się obsługą gniazd, łączeniem połączeń, propagacją transakcji i wieloma innymi funkcjami (przeczytaj JCA na stronie Oracle). 3) Patrz 1), czasami możliwe jest propagowanie transakcji, którą uruchamia twój menedżer transakcji lub rozpoczyna się ich menedżer transakcji. –

+1

Kończyło mi się miejsce na komentarz, ale aby kontynuować 3). Pomyśl o tym, jak działa połączenie/transakcja bazy danych - to ta sama zasada. Serwer aplikacji może uruchomić transakcję, która jest propagowana do bazy danych przez złącze bazy danych. Tak, większość połączeń z bazami danych jest napisana jako JCA pod maską :-) –

2

JCA oznacza J2EE Connector Architecture, zapewnia środki do podłączenia elementy uruchamiane na serwerze aplikacji J2EE ze światem zewnętrznym, wiele istniejących systemów heterogenicznych.

W języku J2EE można pisać kod warstwy prezentacji działający w kontenerze WWW i komponent EJB w komponencie EJB, ale aplikacja nie jest w próżni, potrzebny jest dostęp do innych systemów, a aplikacja musi być również dostępna w innym systemie . JCA zapewnia tylko standardowy interfejs API do uzyskiwania dostępu do zewnętrznych systemów lub dostępu do nich przez zewnętrzne systemy.

Jeżeli jesteś sprzedawców systemu EIS, że jest OK, bo chcesz być dostępny ty system serwera J2EE.

Jeśli jesteś programistą aplikacji, możesz również potrzebować JCA, ponieważ możesz potrzebować dostępu do innego systemu bez gotowego adaptera zasobów JCA w swojej aplikacji, po prostu napisz sam adapter zasobów.

2

JCA to zbiór umów dotyczących połączeń, wątków, transakcji, zabezpieczeń i umów dotyczących cyklu życia. Przestrzegając tych umów, możesz odciążyć większość kontenerów, zarządzanie wątkami, zarządzanie transakcjami, bezpieczeństwo, pakowanie, wdrażanie, aktywację, dezaktywację itd. ... do kontenera (serwer aplikacji zgodny z JCA). Jca zapewnia również opcjonalny interfejs cci (wspólny interfejs klienta), który umożliwia aplikacjom dostęp do adaptera.

To, czy pisać złącze zgodne z jca, czy nie, zależy od wymagań aplikacji.

Ludzie na ogół napisać JCA adaptery do dostępu do systemów plików, JMS, bazy danych, LDAP, e-mail, systemy komputerowe, pakowane aplikacje i tylko o innych EIS. Naprawdę prerogatywą dewelopera jest ustalenie, czy pisanie jest konieczne, ale napisanie go jest zasadniczo nietrywialne.

+0

Mam składnik, który komunikuje się z aplikacją tcp/ip. Bierze obiekty jako dane wejściowe i tłumaczy je na stały ciąg bajtów, wysyła je do aplikacji tcp/ip, otrzymuje odpowiedź, a następnie przekształca wykres resp do obj. Problem, który mam obecnie, polega na tym, że zawsze, gdy zmienia się ten składnik, muszę ponownie spakować moją aplikację, ponieważ pakiet jest wraz z nią. Czy ma sens wdrożenie tego komponentu jako adaptera JCA? W ten sposób mogę ponownie wdrożyć adapter i ponownie uruchomić aplikację. Nie ma potrzeby ponownego pakowania. czy to działa? Początkowo myślałem o OSGi, aby móc wykonywać aktualizacje w miejscu. –

+0

Jednak uczynienie tego starszego komponentu zgodnego z OSGi jest dodatkową pracą i wygląda na to, że nasze systemy kompilacji nie są świadome, więc jest to więcej pracy niż to, czego chcemy. –

+0

Myślę, że lepiej będzie, aby adapter skupił się na punkcie integracji, czyli mechanizmie uzgadniania i odczytywaniu/zapisywaniu bajtów z/do gniazda tcp/ip i pozwolił aplikacji zrobić resztę. Oracle ma adapter jca, który możesz wypróbować @ref. http://docs.oracle.com/cd/E21764_01/integration.1111/e10231/adptr_sock.htm#BABGEIBH –

Powiązane problemy