Enterprise JavaBean 3.0

Podobne dokumenty
EJB 3.0 (Enterprise JavaBeans 3.0)

Enterprise Java Beans Narzędzia i Aplikacje Java EE

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Programowanie komponentowe 5

Podstawowe informacje o technologii Java EE 7

Rola EJB na platformie Java EE. Enterprise JavaBeans (EJB)

Enterprise Java Beans wykład 7 i 8

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Java wybrane technologie

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Enterprise JavaBeans (EJB)

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

JAVA EE MODEL APLIKACJI. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

1 Wprowadzenie do J2EE

Programowanie obiektowe

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Wprowadzenie do Enterprise JavaBeans 2.0

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Enterprise JavaBeans 3.0

Enterprise JavaBeans

EJB 3.0 & JBoss Seam. 25 kwietnia 2007 Jacek Gerbszt 1

Komponenty sterowane komunikatami

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Modelowanie systemów w architekturze J2EE z wykorzystaniem notacji UML

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

SOP System Obsługi Parkingów

Załącznik Nr 5 do Zarz. Nr 33/11/12

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

Tworzenie aplikacji dla Oracle Application Server 10g R3 w technologii EJB 3.0

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

mgr inż. Michał Paluch

Zaawansowane aplikacje internetowe

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Java wybrane technologie

Enterprise JavaBeans (EJB)

Usługa TimerService

Java Enterprise Edition

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Programowanie Komponentowe WebAPI

Programowanie komponentowe

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

edziennik Ustaw Opis architektury

Nowoczesne aplikacje internetowe oparte na Seam, JSF, EJB3, JPA, AJAX

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Platforma J2EE i EJB. Oprogramowanie systemów równoległych i rozproszonych Wykład 9. Rola EJB na platformie J2EE. Dr inż. Tomasz Olas olas@icis.pcz.

Forum Client - Spring in Swing

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Zagadnienia projektowania aplikacji J2EE

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

JBoss Seam: framework nowej generacji. Copyright Piotr Kochański & Erudis,

Zastosowanie komponentów EJB typu Session

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Serwery Statefull i Stateless

Podstawowe informacje o technologii Java Persistence API - przykład

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Kolejkowanie wiadomości Standard MQ (JMS)

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

Co nowego w Java EE?

POSTANOWIENIE. z dnia 20 sierpnia 2018 roku

Java EE: JSF + EJB + JPA + CDI + BV

JBoss Application Server

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

76.Struktura oprogramowania rozproszonego.

J2EE Project TEMATY PROJEKTÓW PRZEMYSŁAW SOŁTAN. (0.2 build )

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Serwery Aplikacji "CC" Grzegorz Blinowski. tel (22) ; faks (22)

Projekt INP Instrukcja 2. Autor Dr inż. Zofia Kruczkiewicz

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Co nowego w Java EE?

Bezstanowe komponenty sesyjne i zdarzenia zwrotne

Analiza i projektowanie aplikacji Java

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Budowa komponentów Enterprise JavaBeans

Programowanie obiektowe. Wprowadzenie

JAVA EE 8. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

Oracle JDeveloper Suite 2.0 jako wydajne środowisko do tworzenia aplikacji intra- i internetowych, na przykładzie sklepu elektronicznego

Aplikacje Internetowe, Servlety, JSP i JDBC

Zaawansowane Aplikacje Internetowe

Zagadnienia Programowania Obiektowego. Usługi sieciowe w Javie EE 5

Komunikacja i wymiana danych

Transkrypt:

Enterprise JavaBean 3.0 Michał Szymczak, Grzegorz Dziemidowicz Politechnika Wrocławska Inżynieria Oprogramowania 26 maja 2009

Ogólne spojrzenie na EJB EJB jako komponent EJB jako framework Typy beanów Session bean Message-driven bean Entity Rozbudowany przykład

Ogólne spojrzenie na EJB Ogólne spojrzenie na EJB Platforma ułatwiająca tworzenie rozproszonych aplikacji w Javie Szybsze pisanie skalowalnych, niezawodnych i bezpiecznych aplikacji Umożliwia programiście dostosowanie oferowanych funkcjonalności do potrzeb i wymagań realizowanego projektu Pozwala programiście skupić się na tworzeniu logiki biznesowej, a nie infrastruktury Dostarcza gotowych do wykorzystania funkcjonalności z zakresu: bezpieczeństwa, transakcyjności, automatycznej perzystencji, web services, wielowątkowości...

Ogólne spojrzenie na EJB Ogólne spojrzenie na EJB Możliwości EJB rozpatrujemy w dwóch płaszczyznach Component Framework EJB to kod Java wykonywany w EJB container Kod musi być tam umieszczony (deployment) przed tym jak zaczniemy go używać Container współpracuje z JVM celem dostarczenia nowej funkcjonalności

EJB jako komponent EJB jako komponent EJB jako framework Typy beanów Pojedynczy element EJB znajdujący się po stronie serwera Odpowiada za konkretne zadania (realizuje konkretne funkcje) Wykorzystuje się tylko te funkcje komponentów, które są aktualnie programiście potrzebne Poprzez wykorzystanie funkcjonalności oferowanych przez komponenty, programista kreuje logikę biznesową 3 podstawowe typy komponentów Session Message-driven Entity

EJB jako komponent EJB jako komponent EJB jako framework Typy beanów Rysunek: Program Java realizowany w technologii Enterprise JavaBeans składa się z dwóch rodzajów elementów składowych: aplikacji klienta i zdalnych komponentów przetwarzania danych. Aplikacja klienta komunikuje się poprzez sieć z komponentami przetwarzania danych, przesyłając do nich żądania zdalnego wykonania metod. Wyniki działania tych metod są następnie tą samą drogą odsyłane do aplikacji klienta.

EJB jako framework EJB jako komponent EJB jako framework Typy beanów Skupia się na dostarczaniu funkcjonalności, wspólnej dla większości projektów programistycznych: Zarządzanie stanem aplikacji Zapisywanie i pobieranie danych z SZBD Zarządzanie transakcjami Wprowadzanie mechanizmów zabezpieczeń (i wiele innych) Framework dba również o wydajność, skalowalność tworzonej aplikacji oraz odporność na błędy Włączanie i konfigurowanie funkcjonalności odbywa się przez adnotacje lub/oraz pliki konfiguracyjne XML

Aplikacje wielowarstwowe EJB jako komponent EJB jako framework Typy beanów Rysunek: Schemat wykorzystania EJB w aplikacjach wielowarstwowych

Typy beanów EJB jako komponent EJB jako framework Typy beanów Trzy typy beanów, podzielone ze względu na funkcjonalności: Session Message-driven Entity Podział przydatny, gdyż: Ułatwia tworzenie aplikacji wielowarstwowych Uniemożliwia (utrudnia) tworzenie beanów, które miałyby przeciwstawne właściwości Ukierunkowanie na funkcjonalność Nie ma beana "od wszystkiego" czytelność kodu

Session beans EJB jako komponent EJB jako framework Typy beanów Służą do modelowania procesów biznesowych Skupiają się na wykonywaniu zaprogramowanych akcji Ich trwałość jest ograniczona (zależy od typu obiektu) i zgromadzone dane nie przetrwają np. restartu serwera Mogą zostać wywołane lokalnie lub zdalnie Typy session beans: Bezstanowe (stateless) Kolejne wywołania (nawet z tego samego klienta) nie mają między sobą powiązania np. wykonanie płatności kartą Mogą zostać łatwo przerobione na web service Stanowe (stateful) Automatycznie zachowują swój stan po każdorazowym wywołaniu przez klienta np. sklep internetowy

Session beans - kod EJB jako komponent EJB jako framework Typy beanów Listing 1: interfejs beana package e n t e r p r i s e. s t a t e l e s s e j b ; i m p o r t j a v a x. e j b. Remote ; @Remote p u b l i c i n t e r f a c e S t a t e l e s s S e s s i o n { S t r i n g h e l l o ( ) ; } Listing 2: klasa beana package e n t e r p r i s e. s t a t e l e s s e j b ; i m p o r t j a v a x. e j b. S t a t e l e s s ; @ S t a t e l e s s p u b l i c c l a s s S t a t e l e s s S e s s i o n B e a n implements S t a t e l e s s S e s s i o n { p u b l i c S t r i n g h e l l o ( ) { r e t u r n H e l l o World! ; } }

Message-driven beans EJB jako komponent EJB jako framework Typy beanów Podobnie jak session beans wykonują zadania/akcje jako część logiki biznesowej aplikacji Nie mogą być wywołane bezpośrednio przez klienta. Klient wysyła wiadomości do serwera wiadomości i to on dopiero przekazuje instrukcje sterujące do MDB Używane w celu zapewnienia najwyżej wydajności oraz przetwarzania asynchronicznego Popularne messaging servers: IBM WebSphere MQ, SonicMQ, Oracle Advanced Queueing, TIBCO MDBs mogą następnie wywoływać akcje na innych beanach (także MDB pośrednio poprzez serwery wiadomości)

Message-driven bean - kod EJB jako komponent EJB jako framework Typy beanów Listing 3: MDB package e n t e r p r i s e. mdb e j b ; i m p o r t javax. ejb. ActivationConfigProperty ; i m p o r t j a v a x. e j b. MessageDriven ; i m p o r t j a v a x. jms. Message ; i m p o r t j a v a x. jms. MessageListener ; @MessageDriven (mappedname = jms / destinationname, activationconfig = { @ A c t i v a t i o n C o n f i g P r o p e r t y ( propertyname = acknowledgemode, p r o p e r t y V a l u e = Auto acknowledge ), @ A c t i v a t i o n C o n f i g P r o p e r t y ( propertyname = destinationtype, p r o p e r t y V a l u e = javax. jms. Queue ) }) p u b l i c c l a s s mdbbean implements M e s s a g e L i s t e n e r { p u b l i c mdbbean ( ) { } } p u b l i c v o i d onmessage ( Message message ) { }

Entity beans EJB jako komponent EJB jako framework Typy beanów Służą do modelowania danych biznesowych Odwzorowują byty z SZBD w obiektowe klasy Javy Poprzez wykorzystanie persistance providera (wg JPA - Java Persistence API) entities zostają wprowadzone permanentnie do bazy danych (przetrwają np. restart serwera) Popularni persistance providerzy: Hibernate, TopLink

Entity beans - kod EJB jako komponent EJB jako framework Typy beanów Listing 4: Entity bean package e n t e r p r i s e. database ; i m p o r t j a v a. i o. S e r i a l i z a b l e ; i m p o r t javax. p e r s i s t e n c e. Entity ; i m p o r t j a v a x. p e r s i s t e n c e. GeneratedValue ; i m p o r t j a v a x. p e r s i s t e n c e. GenerationType ; i m p o r t javax. p e r s i s t e n c e. Id ; @Entity p u b l i c c l a s s Person implements S e r i a l i z a b l e { p r i v a t e s t a t i c f i n a l l o n g s e r i a l V e r s i o n U I D = 1L ; @Id @GeneratedValue ( strategy = GenerationType.AUTO) p r i v a t e Long i d ; p u b l i c Long g e t I d ( ) { r e t u r n i d ; } p u b l i c v o i d s e t I d ( Long i d ) { t h i s. i d = i d ; } @Override p u b l i c i n t hashcode ( ) {... } @Override p u b l i c b o o l e a n e q u a l s ( Object o b j e c t ) {... } } @Override p u b l i c S t r i n g t o S t r i n g ( ) {... }

Klient - kod EJB jako komponent EJB jako framework Typy beanów Listing 5: Prosty klient package e n t e r p r i s e. s t a t e l e s s a p p c l i e n t ; i m p o r t j a v a x. e j b. EJB ; i m p o r t e n t e r p r i s e. s t a t e l e s s e j b. ; p u b l i c c l a s s S t a t e l e s s S e s s i o n A p p C l i e n t { @EJB p r i v a t e s t a t i c S t a t e l e s s S e s s i o n s l e s s ; } p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) { System. out. p r i n t l n ( s l e s s. h e l l o ( ) ) ; }

Bar Wirtualny bar Barman Może witać klientów (zapisuje ich sobie w notesie) i rzucać złośliwe uwagi po ich odejściu Może pokazać kartę drinków Umie obsłużyć cudzoziemców Klient Może pokazać swoje Id Może zamówić drinka, jeśli pokaże ID Może opuścić bar

Bar - projekt

Przygotowanie środowiska Środowisko programistyczne - NetBeans 6.5 Serwer aplikacji - GlassFish V2 Baza danych - MySQL 5.1

Nowy projekt Tworzymy nowy projekt Java EE (Enterprise Application) Tworzymy moduł EJB i moduł aplikacji internetowej Wybieramy nasz serwer aplikacji

Encja - drink Tworzymy nową encje Drink Tworzymy persistence unit (grupa encji używanych razem) Wybieramy persitence provider (TopLink) Tworzymy nowe źródło danych (definujemy połączenie z bazą danych) Dodajemy adnotacje na potrzeby mapowania obiektowo-relacyjnego

Barman - stateless bean Tworzymy session bean Dodajemy metody biznesowe Tworzymy klienta (strona JSF) Cykl życia @PostConstruct @PreDestroy

Visit - statefull bean Jak używać statefull beanów z warstwy WEB Cykl życia @PrePassivate @PostActivate

TimerService Umożliwia wywołanie metody Stateless / Message Driven beana, po określonym czasie (lub w interwałach czasu) @Timeout Prosty w użyciu ale nie tak funkcjonalny jak zewnętrzne biblioteki

Interceptors Programowanie aspektowe w EJB Logowanie w barze ( @Interceptors(BarLogger.class) )

Order Message Driven Bean Aplikacja przyjmuje żądanie klienta i przekazuje je do kolejki MDB nasłuchuje kolejkę i wykonuje żądania

Barman jako Web Service Stateless bean mogą być łatwo zamienione w Web Service @WebService WebService czy RMI?

Sun Certified Business Component Developer (SCBCD)

Q&A

D. Panda et al., EJB3 in Action, Manning, Greenwich 2007 R. P. Sriganesh et al., Mastering Enterprise JavaBeans 3.0, Wiley Publishing Inc., Indianapolis 2006