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

Podobné dokumenty
Spring framework 2.0. Roman Pichlík CZJUG

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

JAVA. Aspekty (AOP) AspectJ

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

(Enterprise) JavaBeans. Lekce 7

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

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

Tvorba informačních systémů

KIV/PIA 2013 Jan Tichava

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

Enterprise Java Beans 3.0

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

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

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

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

Co je nového v Java EE 6

Návrhové vzory Tvorba objektů

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

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

Architektury informačních systémů

Spring Framework Handout

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

X33EJA Enterprise Java

Architektury informačních systémů

Podpora aplikační logiky v J2EE aplikačních rámcích

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

Platformy / technologie. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

UJO Framework. revoluční architektura beans. verze

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

Softwarové komponenty a Internet

Technologie Java. Jaroslav Žáček

Server-side technologie pro webové aplikace

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

Tvorba informačních systémů

Návrhové vzory pro J2EE

Michal Krátký, Miroslav Beneš

Návrhové vzory pro J2EE. Miroslav Beneš

SOAP & REST služby. Rozdíly, architektury, použití

Databázové a informační systémy

Tvorba informačních systémů

Tvorba informačních systémů

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

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

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

Platformy / technologie. Jaroslav Žáček

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

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

Komponentní technologie

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

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

JAVA EE ORGANIZÉR - SOFTWAROVÁ ARCHITEKTURA

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

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

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

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

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

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

Systém evidence knih v obecní

Architektura aplikace

Tvorba informačních systémů

Technologie Java. Jaroslav Žáček

UNIVERZITA PARDUBICE

Multiplatformní osobní organizér v jazyce Java

Technologie JavaBeans

Databáze II. 1. přednáška. Helena Palovská

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Systémová administrace portálu Liferay

RESTful web service v Javě

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

Architektura softwarových systémů

Architektury Informačních systémů. Jaroslav Žáček

Co by měl umět dobrý vývojář. Petr Adámek Home Credit International a.s.

Úvod do Web Services

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

Java Message Service (JMS) Martin Ptáček, KOMIX s.r.o.

Web Services na SOAP

Použití databází na Webu

Využití EJB 3.0 při tvorbě podnikových aplikací

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

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

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

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

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Architektury Informačních systémů. Jaroslav Žáček

Service Component Architecture a komponenty Oracle SOA Suite

Architektura, design, konstrukce

Nové předměty z oblasti softwarového vývoje na FIM UHK

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

Tvorba informačních systémů

PA165: Persistence Layer. Petr Adámek

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

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

DPKOM_06 Dědičnost entit a zpětná volání posluchači

Spring portfolio. Tomáš Krátký

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

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

Tvorba informačních systémů

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Transkript:

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

Spring & EJB Program: K čemu je to dobré, historie, odlišnosti Spring 2.5 EJB 3.0

K čemu jsou? 1 Vývoj velkých podnikových řešení Znovupoužitelnost Volné vazby Transakce Deklarativní rozhraní, protokoly Persistence Bezpečnost Distribuované aplikace, výpočty

K čemu jsou? 2 Třívrstvá architektura IS / datová Aplikační: Legacy systémy zprávy Business nebo process logic deklarativní Presentační / klientská Services, SOA tencí klienti

Vývoj starší EJB EJB před verzí 3 Náročný vývoj příliš složité Robusní, komplexní řešení Pro největší aplikace Problémy, např. s testováním 1998 Standard IBM (Web Sphere), BEA (Weblogic), Oracle (JDeveloper)

Vývoj Spring Spring Rod Johnson, 2002 Reakce na EJB Snahy Jednoduššeji Standardní JavaBeans Lehčí řešení Není třeba vše implementovat, stačí dobrá integrace pro stávající (otevřené) frameworky Interoperabilita s EJB

Vývoj EJB 3 EJB 3 Sun Microsystems 2003 2006 Inspirováno Springem Jednodušší Použitelnější Nejsou třeba implementovat některé interface Ubyly zbytečné callback metody xy... Nahrazeno anotacemi Dříve prosyceno java.rmi.remoteexception Dependency Injection (viz dále) Context ne úplně jako Spring (mix s lookup)

Spring komponenty 1 Core Container BeanFactory IOC viz dále Spring Context Konfigurační soubor.xml Aspect Oriented (AOP) Např. transakce Aplikace instruována anotacemi DAO (Data Access Object) Abstrakce nad přístupem k DB (JDBC, )

Spring komponenty 2 Object Relational (ORM) JDO, Hibernate, OJB and ibatis SQL Maps Web (context) module Jakarta Struts, JSF and webworks MVC Framework Web aplikace pohledy: JSP, Velocity, Tiles, PDF, XLS

Spring Architektura

Inversion of Control (IoC) Objekty se nepropojují v kódu, ale v konfiguračním souboru Objekt není zodpovědný za hledání svých závislostí Závislosti nadeklarovány Kontejner je dodá nastaví konkrétní objekty pomocí setterů Obvyklá jmenná konvence setxxx()

Property namebean.java public class namebean { String name; public void setname(string a) { name = a; } context.xml <bean id="bean1" class="namebean"> <property name="name" > <value>tom</value> </property> </bean> } public String getname() { return name; }

Konstruktor namebean.java public class namebean { String name; } public namebean(string a) { name = a; } context.xml <bean id="bean1" class="namebean"> <constructor arg> <value>my Value</value> </constructor arg> </bean> Obdobně Init() metoda Ukázka jednoduchá konzolová

Provázání context.xml... <bean id="bean" class="beanimpl"> <property name="conn"> <ref bean="bean2"/> </property> </bean> <bean id="bean2" class="bean2impl"/>... Reference Dědění context.xml... <bean id="parent" class="mybean" > <property name="name" value="xxx"/> </bean> <bean id="child" class="mybean" parent="parent"> <property name="address value="prague"/> </bean>... Ukázka servlet + update konfigurace

Spring a databáze Data access JDBC, JDO Object Ralational Mapping Hibernate, OJB, ibatis, Např. org.springframework.jdbc.datasource.drivermanagerdatasource Ukázka servlet & JDBC & MySQL

Remoting Modely: RMI, Hessian, Burnlap, HTTP invoker, EJB, JAX RPC Vše přes konfigurační soubor RMI: RmiProxyFactoryBean, RmiServiceExporter EJB Není třeba žádný lookup, abstract support classes pro jednotlivé typy beanů Viz dále Ukázka RMI

EJB 3 Funkce Zpráva transakcí Bezpečnost pomocí atributů, ne API Zpráva zdrojů a životního cyklu Remoting Concurrency Control Detekce, zámky Clustery, vyvažování zátěže

Typy beanů Session bean Synchronní komunikace Interakce s klientem aplikační vrstva Message driven bean Asynchronní komunikace Služby, spíš nejnižší vrstva

Session beans

Session beans Interakce s uživatelem Business logika, algoritmy, procesy, Ne práce s daty, na to jsou jiné (EntityBean) Životní cyklus Pro jednoho klienta Nepersistentní @PreConstruct, @PreDestroy, @PrePassivate, @PostActivate,... Použití První 2 pažadavky viz životní cyklus Web servisy

Stateless session beans Bezestavové (stateless) Jedno volání metody, pak destroy Jednoduchost škálovatelnost, výkon @Stateless Ukázka

Statefull session beans Stavové (statuful) konverzace, např. účet

Message driven beans Motivace problémy s RMI Čekání... Těsnost vazeb přímá komunikace Spolehlivost chvilkový výpadek je problém Nelze jinak, než 1:1 Alternativa Java Message Services (JMS)

JMS & Message driven beans Modely: Point to Point Publish/Subscribe @MessageDriven Která fronta se má poslouchat Implements MessageListener Možno @Resource MessageDrivenContext

POJO Plain Old Java Object, Plain Old Java Interface Integrace normálních Java objektů do EJB Výhody: Snadné testování Rychlý vývoj Není vazba na EJB framework Nevýhody Je třeba se vypořádat s transakcemi a perzistencí jinak Viz implementace service v ukázce Spring RMI

EntityBeans, JPA Java Persistence API Pro objekty a vztahy mezi nimi Načítání, ukládání, mazání databáze Primitivní typy, kolekce, některá pole EJB QL javax.persistence.entitymanager @Entity, @Table @Id, @GeneratedValue, @SequenceGenerator @OneToOne, @OneToMany, @ManyToMany Např. OneToMany(cascade=REMOVE, mappedby="customer")

Životní cyklus entity Řízeno pomocí EntityManageru

Závěrem... K čemu je to dobré? Srovnání Dotazy?