Praca na wielu platformach

IBM opracował strategię rozwoju i specyfikację własnych serwerów aplikacyjnych.

IBM opracował strategię rozwoju i specyfikację własnych serwerów aplikacyjnych.

Oprogramowanie IBM działa na wielu platformach sprzętowych i systemowych. Aby zapewnić dobrą współpracę podobnych produktów działających na różnych platformach, firma opracowuje wspólną specyfikację funkcjonalną produktu, przed przystąpieniem do określania jego właściwości na każdej z nich. Pozwala to na stworzenie jednolitego kodu produktu, wspólnego dla wszystkich platform, oraz dodanie niewielkiej części kodu, specyficznej dla każdej platformy.

Serwer dla wszystkich

Kluczowym elementem stosowania Javy do obsługi dużych aplikacji jest serwer aplikacyjny. IBM opracował specyfikację serwera Enterprise Server for Java (ESJ), zapewniającego jednolity model programistyczny (jeden zestaw funkcji API) oraz zestaw usług, niezbędnych do uruchamiania aplikacji.

ESJ składa się z maszyny wirtualnej Java oraz pewnej liczby klas Java: do definicji interfejsów do obiektów, zdalnego wywołania procedur, obsługi komponentów Enterprise JavaBeans (EJB) i podstawowych rozszerzeń właściwości języka Java.

W skład ESJ wchodzi też zestaw rozszerzeń specyficznych dla środowiska komputerów i programów IBM nazwany EJB Connectors. Zapewnia on komunikację i korzystanie z usług produktów IBM: CICS, DB2, IMS, MQSeries i Lotus Notes.

IBM włączył do ESJ niektóre rozszerzenia Javy proponowane przez Suna - do komunikacji z usługami katalogowymi i bazami danych oraz obsługujące zapytania SQL z Javy i komunikaty.

Środowisko wykonawcze EJB

Standardowe środowisko wykonawcze aplikacji to środkowa warstwa w trójwarstwowej architekturze klient/serwer, korzystające z technologii CORBA i Internetu do osadzania logiki aplikacji napisanej w Javie.

Jako podstawę operacji transakcyjnych ESJ wykorzystuje Enterprise JavaBeans (EJB) wbudowane w monitor transakcyjny. Komponenty EJB działają w ściśle kontrolowanym środowisku, umożliwiającym jednoczesne działanie wielu komponentów, wykrywanie źle działających i usuwanie ich z pamięci. Środowisko może tworzyć hierarchię wielu kontenerów do komponentów EJB, które tworzą aplikację.

Jako środowisko wykonawcze EJB mogą być używane podsystemy, takie jak IBM Component Broker (zgodny ze specyfikacją CORBA), monitory transakcyjne TXSeries i serwery aplikacyjne WebSphere.

Podobnie jak w innych serwerach aplikacyjnych, uczestnictwo komponentu w transakcji ma charakter deklaratywny (programista decyduje o tym w trakcie tworzenia aplikacji). Nie jest zaś na stałe wbudowane w komponent. Upraszcza to wielokrotne używanie komponentów.

Serwery dołączane do ESJ

Specyfikacja ESJ przewiduje możliwość dołączania pięciu serwerów, uzupełniających właściwości funkcjonalne serwera aplikacyjnego:

Serwer WWW do obsługi komunikacji HTTP; domyślny jest serwer Lotus Domino.

Serwer bazy danych; domyślna jest baza IBM DB2.

Usługi bezpieczeństwa; zwykle korzysta się z usług bezpieczeństwa wbudowanych w platformę systemową, na które odwzorowuje się API bezpieczeństwa Java. ESJ nie określa rodzaju systemu bezpieczeństwa, ale wymaga realizacji SSL.

Usługi nazewniczo-katalogowe, które mogą być zlokalizowane na serwerze zdalnym. ESJ i kod aplikacji korzysta z zestawu API JNDI, odwzorowanych na istniejące usługi, dostępne na ogół za pośrednictwem protokołów LDAP i COS.

Broker obiektowy CORBA dostosowany do skalowalności używanej platformy systemowej.