Bartosz
Borowiec
Salesforce and Java
backend/integration
developer at Inde...
Temat: Ciekawy problem
Mam do przemyślenia pewien problem. Wymyśliłem juz rozwiazanie ale moze ktoś z was wpadnie na lepszy pomysł.Mam aplikacje X od zewnetrznego dostawcy (napisana c++).Przyjmuje ona na wejsciu tekstowe parametry, a zwraca obiekty binarne. Musze sie do tych obiektów dobrać z poziomu Stateful Session beana. Oto jakie rozwiazania przychodzą mi do glowy:
1) umieścić aplikacje X na tym samym komputerze co konter aplikacji z EJB kami. Z Session Beana wywoływać metode na klasie, ktora posreniczy miedzy EJB a zewnetrzna applikacja. Klasa ta kontaktowała by sie z aplikacja przy pomocy JNA.
2) Przeniesc tą aplikacje na zewnetrzny serwer. na tym serwerze postwic tomcata, a na tomcacie servis ktory z jednej strony udostepnia webservisy, a z drugiej łączy sie z zewnętrzna aplikacja X. Wtedy nasz session bean wywoływałby webserivice na drugim serverze a on uruchamiałby nasza apliacje X i zwracał plik binarny (tez przez webservice). Zastanawiam sie tylko jak by wygladała obsługa tranzakcji. Co sie stanie jeśli nasza zewnetrzna aplikacja nie zdąży na czas.
3) tak jak w rozwiazaniu numer 2) tylko ze zamiast EJB użyć JMS. Jedyny problem jaki widze w tym rozwiazaniu to taki ze nie wiem jak zaimplementować oczekiwanie na odpowiedz. Wiadomo ze można użyć message driven beana, ale jak w takim razie sprawić zeby ta odpowiedz z powrotem trafila do metody z session beana ktory wysłał JMS? Z tego co mi wiadomo, do session beana nie mozna wrzucić metody odbierajacej komunikacy JMS.
Jak narazie, ze wzglendu na wydajniosc ( aplikacja X jest bardzo zasobożerna), wybralem rozwiązanie numer dwa, ale zastanawiam sie jeszcze nad JCA. Ma ktos doswiadczenie z conectorami?