1 Enteprise Java Beans Emil Wcisło
2 Czym jest Enteprise Java Beans Architektura J2EE - EJB Dlaczego EJB? Plan prezentacji Czym jest Enteprise Java Beans Architektura J2EE - EJB Dlaczego EJB? Rodzaje komponentów EJB Architektura kontenera EJB Java Naming and Directory Service Wywołania zdalne – RMI-IIOP Zarządzanie transakcjami w EJB
3 Czym jest EJB Wchodzi w skład specyfikacji J2EE Definiuje standard – nie jest to konkretny produkt Architektura komponentów po stronie serwera Warstwa biznesowa aplikacji Działanie w środowisku kontenera EJB
4 Architektura J2EE - EJB
5 Dlaczego EJB Złożona aplikacja biznesowa zawiera: Logikę biznesowąInfrastrukturę systemową: Bezpieczństwo Zdalne wywołania Zarządzanie transakcjami Zarządzanie zasobami Obsługa wielu klientów jednocześnie – skalowalność Integracja w środowisku heterogenicznym
6 Dlaczego EJB cd. Enteprise Java Beans dostarczają infrastrukurę dla wymagań niefunkcjonalnych aplikacji Pozwalają skupić uwagę na tworzeniu logiki biznesowej
7 Rodzaje komponentów EJBSession Bean Stateless Statefull Entity Bean Message – Driven Bean
8 Rodzaje EJB – Session StatelessZawiera logikę biznesową Bezstanowy – nie przypisany do klienta Może być widziany jako: obiekt zdalny obiekt lokalny (dla innych beanów) Web-service Najczęściej wykorzystywany rodzaj EJB
9 Cykl życia EJB Session Stateless
10 Rodzaje EJB – Session StatefullZawiera logikę biznesową Stanowy – jest przypisany do konkretnego klienta Może zapamiętać stan konwersacji z klientem W razie potrzeby może zostać pasywowany Może być widziany jako: obiekt zdalny
11 Cykl życia EJB Session Statefull
12 Rodzaje EJB – Entity BeanReprezentuje trwałe dane Dostarcza metody do manipulowania danymi Typy Entity Beanów: Bean Managed Persistance (BMP) Container Managed Persistance (CMP) Jest nieudaną próbą stworzenia standardu obiektowo – relacyjnego
13 Cykl życia EJB Entity
14 Dlaczego NIE należy używać Entity BeanówOgraniczone możliwości definiowania złożonych obiektów Duży narzut wydajnościowy Małe możliwości optymalizacji Dodatkowa warstwa blokowania się zasobów Ograniczony dostęp bezpośredni z zewnatrz kontenera
15 Message – Driven Bean Służy do odbierania asynchronicznych komunikatów (JMS) Nie jest widoczny dla klienta i innych komponentów Jest bezstanowy
16 Cykl życia Message – Driven Bean
17 Wymagane elementy aplikacji EJBKlasa komponentu Interfejsy komponentu Interfejs zdalny / lokalny Interfejs domowy Standardowy deskryptor wdrożenia – ejb-jar.xml Deskryptory specyficzne dla danego serwera aplikacji
18 Architektura kontenera EJB
19 Java Naming and Directory InterfaceUsługa nazw i katalogu API klienta i Service Provider Interface
20 Zastosowania JNDI w EJBWyszukiwanie komponentów przez klientów zdalnych Dostarczenie zasobów do komponentów Łączenie komponentów Dostarczenie referencji do interfejsu UserTransaction (Java Transaction API)
21 Wywołania zdalne – RMI-IIOPIIOP – protokół zdalnych wywołań CORBA IDL – język opisowy interfejsów CORBA Podobieństwa CORBA i RMI Ukrycie komunikacji przed klientem – wsparcie dla clusteringu Pieńki i szkielety Standard a nie konkretny produkt
22 Wywołania zdalne – RMI-IIOP cd.
23 Zarządzanie transakcjami w EJBŚrodowisko: Wiele rozproszonych, transakcyjnych zasobów Cel: Realizacja transakcyjności na rozproszonych zasobach Elastyczne określenie granic transakcji Środki: Implementacja OMG Object Transaction Service Java Transaction Service (JTS) Java Transaction API (JTA)
24 Sposoby ograniczenia transakcjiTransakcje programowalne Interfejs javax.transaction.UserTransaction Ziarnistość na poziomie kodu Transakcje deklaratywne Określenie atrybutów transakcji w deskryptorze wdrożenia Ziarnistość na poziomie metody biznesowej Transakcje inicjowane przez klienta Niska wydajność Ziarnistość na poziomie wywołanie metody zdalnej
25 Atrybuty transakcji deklaratywnychRequired RequiresNew Supports Mandatory NotSupported Never
26 DZIĘKUJĘ ZA UWAGĘ