260 likes | 400 Views
Emil Wcisło. Enteprise Java Beans. 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. Plan prezentacji.
E N D
Emil Wcisło Enteprise Java Beans
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 Plan prezentacji
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 Czym jest 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 Dlaczego EJB
Enteprise Java Beans dostarczają infrastrukurę dla wymagań niefunkcjonalnych aplikacji Pozwalają skupić uwagę na tworzeniu logiki biznesowej Dlaczego EJB cd.
Session Bean Stateless Statefull Entity Bean Message – Driven Bean Rodzaje komponentów EJB
Zawiera 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 Rodzaje EJB – Session Stateless
Zawiera 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 Rodzaje EJB – Session Statefull
Reprezentuje 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 Rodzaje EJB – Entity Bean
Ograniczone 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 Dlaczego NIE należy używać Entity Beanów
Służy do odbierania asynchronicznych komunikatów (JMS) Nie jest widoczny dla klienta i innych komponentów Jest bezstanowy Message – Driven Bean
Klasa komponentu Interfejsy komponentu Interfejs zdalny / lokalny Interfejs domowy Standardowy deskryptor wdrożenia – ejb-jar.xml Deskryptory specyficzne dla danego serwera aplikacji Wymagane elementy aplikacji EJB
Usługa nazw i katalogu API klienta i Service Provider Interface Java Naming and Directory Interface
Wyszukiwanie komponentów przez klientów zdalnych Dostarczenie zasobów do komponentów Łączenie komponentów Dostarczenie referencji do interfejsu UserTransaction (Java Transaction API) Zastosowania JNDI w EJB
IIOP – 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 Wywołania zdalne – RMI-IIOP
Ś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) Zarządzanie transakcjami w EJB
Transakcje 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 Sposoby ograniczenia transakcji
Required RequiresNew Supports Mandatory NotSupported Never Atrybuty transakcji deklaratywnych