W przypadku aplikacji, które wyszukują lub wywołują zdalne komponenty EJB, należy rozważyć, w jaki sposób obsługiwać dostęp do zdalnych komponentów EJB z chmury, lub rozważyć migrację wszystkich pokrewnych komponentów EJB do chmury.
W kodzie Java adnotacja javax.ejb.EJB z elementem
lookup, który używa przestrzeni nazw java:global lub
corbaname:, wskazuje, że może być używany zdalny komponent EJB. Jeśli komponent EJB podany w operacji wyszukiwania znajduje się w innej
aplikacji, należy rozważyć migrację tej aplikacji do chmury z tą inną
aplikacją.
@EJB(lookup="java:global/myApp/myModule/MyBeanComponent")
W przypadku deskryptorów wdrażania element <ejb-ref> w
pliku application.xml, ejb-jar.xml lub
web.xml z elementem <home> lub
<remote> również wskazuje na użycie zdalnego komponentu EJB.
<ejb-ref> <ejb-ref-name>CartHomeZdalna</ejb-ref-name> <ejb-ref-type>Sesja</ejb-ref-type> <home>com.ibm.ejbs.CartHomeRemote</home> <remote>com.ibm.ejbs.CartRemote</remote> </ejb-ref>
Ta reguła jest oznaczana jednorazowo dla projektu Eclipse lub archiwum Java.
Jeśli aplikacja jest w stanie uzyskać bezpośredni dostęp do zdalnego dostawcy EJB, nie są wymagane żadne dodatkowe działania.
W przeciwnym wypadku jedną z opcji jest przeniesienie do chmury również aplikacji, które zawierają zdalne komponenty EJB, podczas migrowania tej aplikacji. Należy również przeanalizować te aplikacje pod kątem problemów z połączeniem. Alternatywnie można użyć tunelu VPN, na przykład IBM Cloud Secure Gateway, aby utworzyć bezpieczne połączenie do wyszukiwania istniejącego dostawcy zdalnego komponentu EJB w siedzibie. Więcej informacji o konfigurowaniu bezpiecznego połączenia zawiera sekcja Konfigurowanie sieci VPN. W przypadku operacji wyszukiwania komponentów EJB należy skonfigurować miejsce docelowe w zabezpieczonym kliencie na drzewo JNDI w siedzibie. Należy użyć hosta i portu zwróconych z tej konfiguracji dla bezpiecznego połączenia chmury w jednym z następujących formatów:
Należy zmienić adres URL dostawcy we właściwościach InitialContext lub we właściwościach JNDI, aby użyć hosta i portu w chmurze.
Przy konfigurowaniu bezpiecznego połączenia dla wywołań do zdalnych komponentów EJB w siedzibie, należy utworzyć i zainstalować serwlet tunelowania HTTP na serwerze aplikacji w siedzibie i włączyć tunelowanie w brokerze ORB po stronie klienta. Więcej informacji na ten temat zawiera sekcja Włączanie tunelowania HTTP. Należy skonfigurować zabezpieczonego klienta w taki sposób, aby wskazywał serwlet tunelowania HTTP, i użyć hosta oraz portu zwróconych z konfiguracji dla bezpiecznego połączenia chmury w następującym formacie:
Tej techniki można użyć zarówno wówczas, gdy klient EJB jest przenoszony do chmury, a komponent EJB jest w siedzibie, jak i w sytuacji odwrotnej.
Uwaga: aplikacje Liberty for Java używające zdalnych komponentów EJB mogą zostać wdrożone w środowisku wykonawczym IBM Cloud Instant Runtime, jednak zdalne komponenty EJB nie są zdalnie dostępne przy użyciu protokołu CORBA/IIOP z powodu ograniczeń dotyczących portów w środowisku IBM Cloud. Więcej informacji na temat produktu Liberty for Java w produkcie IBM Cloud można znaleźć w dokumentacji Składniki serwera Liberty obsługiwane w produkcie IBM Cloud.