NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze



Podobné dokumenty
Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Co je nového v Java EE 6

Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi:

(Enterprise) JavaBeans. Lekce 7

KIV/PIA 2013 Jan Tichava

Enterprise Java Beans 3.0

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Technologie Java. Jaroslav Žáček

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

X33EJA Enterprise Java

Tvorba informačních systémů

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition

Spring framework 2.0. Roman Pichlík CZJUG

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Platformy / technologie. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

Technologie Java. Jaroslav Žáček

DPKOM_2. Technologie Enterprise JavaBeans Řízení zdrojů a primární služby

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18

Architektury informačních systémů

Architektury informačních systémů

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Platformy / technologie. Jaroslav Žáček

PA165: Úvod do Java EE. Petr Adámek

Java a J2EE. Cleverlance. Lukáš Marek lukas.marek@cleverlance.com

JavaServer Faces Zdeněk Troníček

Návrhové vzory pro J2EE. Miroslav Beneš

Tvorba informačních systémů

Návrhové vzory pro J2EE

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Správa a sledování SOA systémů v Oracle SOA Suite

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno

RMI Remote Method Invocation

X36WWW. Technologie aplikačních serverů. Miroslav Bureš,, Martin Klíma. X36WWW: 12. přednáška 1

Tvorba informačních systémů

Distribuované systémy a výpočty

RESTful web service v Javě

Ověřování nahraditelnosti EJB komponent. Pavel Stuna

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Transaction API + webové frameworky + další poznámky. Petr Aubrecht CA

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

UJO Framework. revoluční architektura beans. verze

Oddělení webového a aplikačního serveru. Běží zde několik aplikací.

JAVA. Aspekty (AOP) AspectJ

Základy Guice Vazby Scopes. Google Guice. základní seznámení s frameworkem Google Guice

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

RMI - Distribuované objekty v Javě

Web Services na SOAP

Tvorba informačních systémů

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition vývoj webových aplikací

Architektura aplikace

Java a Caché IV: Manipulace s objekty

Tvorba informačních systémů

VŠB Technická univerzita Ostrava. Fakulta elektrotechniky a informatiky. Katedra informatiky. Enterprise Java Beans historie, současnost a budoucnost

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Tvorba informačních systémů

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

JAVA EE ORGANIZÉR - SOFTWAROVÁ ARCHITEKTURA

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

Technologie JavaBeans

Spring Framework Handout

Server-side technologie pro webové aplikace

Softwarové komponenty a Internet

DPKOM_10 Transakce 1

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

Web Frameworks Java Server Faces. Petr Aubrecht CA

[ASP].NET Core Demystified. Miroslav Holec. Konzultant a lektor [ASP].NET Core.

Michal Krátký, Miroslav Beneš

GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.

Úvod do Web Services

Návrhové vzory Tvorba objektů

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

A7B39WPA Webové podnikové aplikace. Zdeněk Kouba Petr Aubrecht Petr Křemen

Informační systém autoškoly

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Online galerie: využití J2EE s JPA Petr Bludský

Tvorba informačních systémů

Tvorba informačních systémů

Multiplatformní osobní organizér v jazyce Java

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

Navrhněte a implementujte webový portál pro milovníky čokolády. Proveďte analýzu současných řešení a zdůvodněte návrh vlastního řešení.

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Elektronická podpora výuky předmětu Komprese dat

Java Managenent Extension JMX

Transkript:

NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2

JAVA EDITIONS Java Enterprise Edition Java Micro Edition Java Standard Edition 3

MOTIVACE Co mají podnikové aplikace společného? User authentication Multi-user support Data persistence Data integrity (transactions) Client-tier communication Asynchronous communication Naming service Communication with legacy systems 4

JAVA ENTERPRISE EDITION 6 Java Server Faces (JSF) 2.0 Java Server Pages (JSP) 2.2 Enterprise Java Beans (EJB) 3.1 Java Persistence API (JPA) 2.0 Java API for XML-Based Web Services (JAX-WS) 2.2 Java API for RESTful Web Services (JAX-RS) 1.1 Java Architecture for XML Binding (JAXB) 2.2 Java Message Service API (JMS) 1.1 Java Transaction API (JTA) 1.1 5

APLIKACE V JEE Application Server Web Browser Web Container EJB Container Database HTML JSP EJB Applet Servlets EJB Prezentační logika Business logika 6

ARCHIVE FILES Web Archive (WAR) EJB Archive (JAR) Enterprise Archive (EAR) HTML JSP DD bean interface DD JAR DD servlet tag libraries helper classes EJB JAR helper classes DD = Deployment Descriptor WAR JAR 7

DEPLOYMENT JAR EAR WAR Aplikační server MainServlet.class index.jsp home.jsp web.xml 8

SLUŽBY POSKYTOVANÉ AS Komunikace s klientem Životní cyklus komponent (zahrnuje i řízení souběžného přístupu) Správa databázových spojení (Connection pool) Transakční zpracování Persistence objektů Asynchronní komunikace Přihlašování uživatelů a přidělování práv 9

CONTAINERS Web browser Web container EJB Container HTTP (HTTPS) servlets JSP, JSF EJB Lite Full EJB Databáze Application client RMI 10

ENTERPRISE JAVA BEANS 3.1 Session Beans (Entity Beans 2.1) Message Driven Beans Dependency Injection kontejner se postará o nastavení odkazu např. na jinou beanu 11

EJB APPLICATION client client Session Bean AutomaticTeller Entity TransactionLog ATMCustomer databáze client BranchTeller Account Customer 12

EJB CONTAINER Container Life-Cycle Management Client Client Support Bean Resource Management 13

SESSION EJB Plain Old Java Object (POJO) bezestavové (@Stateless) stavové (@Stateful) singleton (@Singleton) (EJB 3.1) remote a local business interface no interface (EJB 3.1) 14

IMPLEMENTACE Business Interface import javax.ejb.local; @Local public interface HelloLocal { String sayhello(); } @Local @Remote @Stateless @Stateful Bean import javax.ejb.stateless; @Stateless public class HelloBean implements HelloLocal { public String sayhello() { return "Hello!"; } } 15

STATELESS SESSION EJB Container Pool Client 1 1 EJB Object Banking 3 Bean2 2 4 Bean2 Bean1 Client 2 16

STATELESS SESSION EJB LIFE CYCLE Does not exist 1. newinstance() 2. dependency injection 3. @PostConstruct callback @PreDestroy callback method Method-ready pool timeout callback 17

STATEFUL SESSION EJB Container Client1 Banking Bean1 Disc Client2 Banking Bean2 Client3 Banking Bean3 18

STATEFUL SESSION EJB LIFE CYCLE dependency injection, business interface lookup Does not exist timeout 1. newinstance() @PreDestroy callback 2. dependency injection 3. @PostConstruct callback method Method-ready @Remove method or timeout @PrePassivate @PostActivate Passive method 19

NOVINKY V EJB 3.1 No-interface view Global JNDI names Singleton session beans Calendar based timer service Asynchronous invocations EJB lite Simplified packaging Embeddable container 20

NO-INTERFACE VIEW EJB nemusí mít business interface Pokud EJB nemá business interface, klient vidí všechny public metody @Stateless public class HelloSessionBean { } public String sayhello(string name) { } @EJB private HelloSessionBean hellobean; 21

GLOBAL JNDI NAMES java:global[/<app-name>]/<module-name>/<beanname>[!<fully-qualified-interface-name>] java:app/<module-name>/<bean-name>[!<fully-qualifiedinterface-name>] java:module/<bean-name>[!<fully-qualified-interfacename>] java:global/fooweb/foobean java:global/fooweb/foobean!com.acme.foo java:app/fooweb/foobean java:app/fooweb/foobean!com.acme.foo java:module/foobean java:module/foobean!com.acme.foo 22

SINGLETON SESSION BEANS Pouze jedna instance Lze stanovit pořadí inicializací (@DependsOn) Inicializace může být eager (@Startup) @Startup @Singleton( name = "A" ) @DependsOn( "B" ) public class ASessionBean { } @Startup @Singleton( name = "B" ) public class BSessionBean { } 23

CONCURRENCY MANAGEMENT (1) @Singleton //@ConcurrencyManagement( // ConcurrencyManagementType.CONTAINER ) public class SingletonSessionBean { @Lock( LockType.READ ) public void dosomething() { } } @Lock( LockType.WRITE ) public void dosomethingelse() { } 24

CONCURRENCY MANAGEMENT (2) @Singleton @ConcurrencyManagement( ConcurrencyManagementType.BEAN ) public class SingletonSessionBean { } public void dosomething() { synchronized(this) { } } public synchronized void dosomethingelse() { } 25

CALENDAR BASED TIMER SERVICE Anotace @Schedule s atributy: year, month, dayofmonth, dayofweek hour, minute, second timezone @Singleton public class ServiceBean { } @Schedule( dayofweek = "Sun", hour = "2", minute = "30" ) public void cleandatabase() { } 26

ASYNCHRONOUS INVOCATIONS Metodu EJB lze volat asynchronně Návratovou hodnotou asynchronní metody je Future @Stateless public class MathSessionBean { @Asynchronous public Future<Integer> compute( Integer x, Integer y ) { Integer z = return new AsyncResult( z ); } } Future<Integer> r = mathbean.compute( 20, 11 ); while (!r.isdone() ) { } Integer i = r.get(); 27

EJB LITE Podmnožina EJB Full: No Message Driven Beans No remote interfaces No EJB timers and scheduling No asynchronous invocation No web services EJB Lite mohou být součástí souboru.war 28

EMBEDDABLE CONTAINER Umožňuje programově spustit kontejner Vhodné pro testování @Test public void hello() throws Exception { EJBContainer ec = EJBContainer.createEJBContainer(); Context c = ec.getcontext(); HelloSessionBean hello = (HelloSessionBean) c.lookup( "java:global/classes/hellosessionbean" ); String s = hello.sayhello( "Eva" ); assertequals( "Hello, Eva", s ); } 29

30 OTÁZKY A ODPOVĚDI Děkuji za pozornost