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

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

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

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

X33EJA Enterprise Java

Tvorba informačních systémů

KIV/PIA 2013 Jan Tichava

Java technologie pro webové aplikace

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

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

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

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

Platformy / technologie. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

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

Technologie Java. Jaroslav Žáček

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

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

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

(Enterprise) JavaBeans. Lekce 7

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

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

Tvorba informačních systémů

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

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

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

JavaServer Faces Zdeněk Troníček

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

Architektury informačních systémů

Architektury informačních systémů

Co je nového v Java EE 6

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

Michal Krátký, Miroslav Beneš

Spring framework 2.0. Roman Pichlík CZJUG

JAVA. Webové aplikace Servlety, JSP

Tvorba informačních systémů

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

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

Tvorba informačních systémů

Tvorba informačních systémů

Platformy / technologie. Jaroslav Žáček

Návrhové vzory pro J2EE

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

Semináˇr Java XI Servlety, JSP Semináˇr Java XI p.1/38

Tvorba informačních systémů

Technologie Java. Jaroslav Žáček

Návrhové vzory pro J2EE. Miroslav Beneš

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

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

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

Tvorba informačních systémů

České vysoké učení technické v Praze. Fakulta elektrotechnická. Katedra řídící techniky. Internetové rozhraní do Matlabu.

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

Technologie Java Server Pages

RESTful web service v Javě

Softwarové komponenty a Internet

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

Enterprise Java Beans 3.0

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

Technologie JavaBeans

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

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

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

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

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

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

Tvorba informačních systémů

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

Server-side technologie pro webové aplikace

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

<Insert Picture Here> Vývoj portálových řešení v Javě

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

Tvorba informačních systémů

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

Michal Krátký, Miroslav Beneš

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


Java a Caché IV: Manipulace s objekty

Tvorba informačních systémů

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Nainstalujte zvolený server s podporou servletů a JSP, např. Jakarta/Tomcat nebo JBOSS.

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

UJO Framework. revoluční architektura beans. verze

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

Spring portfolio. Tomáš Krátký

}w!"#$%&'()+,-./012345<ya

Architektura aplikace

Základy programování v jazyce JAVA

IBM Connections pro firmy s Lotus Notes/Domino. Petr Kunc

Web Frameworks Java Server Faces. Petr Aubrecht CA

Úvod do Web Services

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Čipové karty Lekařská informatika

Java Platform, Enterprise Edition (Java EE)

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

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

KIV/PIA Semestrální práce

H.p protokol, request response

Aplikační rámce. Jakarta Struts Framework. Obsah přednášky. Aplikační rámce a knihovny. Co je to aplikační rámec? Enterprise Java Beans

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

Transkript:

Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Katedra softwarového inženýrství Fakulta informačních technologií ČVUT v Praze Letní semestr 2010/2011, přednáška č. 2 Zdeněk Troníček, 2011

Program Seznámení s Java Enterprise Edition (JEE) Aplikační server Architektura aplikace v JEE Servlety Java Server Pages (JSP) 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

Příklad 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) HTML JSP servlet DD tag libraries helper classes EJB Archive (JAR) bean interface DD helper classes DD = Deployment Descriptor Enterprise Archive (EAR) JAR EJB JAR DD 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

N-tier architecture Client web browser Presentation tier Business tier Integration tier servlets, JSP, HTML, XML EJB, Plain Old Java Objects (POJO) EJB, Entity, POJO 11 EIS tier Relational Database Management System (RDBMS), Enterprise Resource Planning (ERP)

Archetypy Web application Rich Internet application Rich client application Mobile application Service application 12

Web Application 13

Rich Internet Application 14

Rich Client Application 15

Mobile Application 16

Service Application 17

Development Analysis Design Architecture Coding Deployment Descriptors Assembly Deployment Testing 18

Servlety & JSP Web container servlet JSP Webové komponenty, které slouží pro dynamické generování stránek Pro daný servlet existuje v jednom kontejneru pouze jedna instance Každé JSP je před provedením převedeno na servlet 19

Servlet web container browser 1 browser 2 web container servlet new HTTP request thread pool init() HTTP request servlet service() service() destroy() 20

Servlet API <<interface>> Servlet service() GenericServlet service() HttpServlet service( request, response ) doget( request, response ) dopost( request, response )... public class HelloServlet extends HttpServlet { @Override protected void doget( HttpServletRequest req, HttpServletResponse resp ) throws... { resp.setcontenttype( "text/html" ); PrintWriter out = resp.getwriter();... } } 21

Request & Response API <<interface>> ServletRequest <<interface>> HttpServletRequest getheader( name ): String getheaders( name ): Enumeration getheadernames(): Enumeration getintheader( name ): int getdateheader( name ): Date <<interface>> ServletResponse setcontenttype( type ) getwriter(): PrintWriter getoutputstream(): ServletOutputStream <<interface>> HttpServletResponse addheader( name, value ) addintheader( name, value ) adddateheader( name, value ) 22

Zpracování požadavku web container servlet request <<create>> <<create>> service( req, resp ) request response doget <<destroy>> response <<destroy>> 23

Java Server Pages (JSP) JSP request response yes first access or JSP has been modified? no transform compile <%@ page import="java.util.date" %> <html> <body> <h1>eja</h1> <%= new Date() %> </body> </html> servlet 24

JSP scripting elements Directives <%@ page import="..."%> <%@ include file="..."%> <%@ taglib uri="..." prefix="..."%> Declarations <%! String url = "/account.jsp"%> <%! boolean numofaccounts(customer c) { return c.getaccounts().size(); } %> Expressions <%= c.getaccounts().size() %> Scriptlets <% out.println("hi!"); %> Comments <%-- not finished yet! --%> 25

Session API <<interface>> HttpServletRequest getsession( create ) getsession() web.xml <<interface>> HttpSession getid(): String isnew(): boolean getattribute( name ): Object setattribute( name, value ) removeattribute( name ) invalidate() <session-config> <session-timeout>10</session-timeout> </session-config> 26

Thread model browser1 int x; public void doget(...) { browser2 } instance variables class variables external resources synchronized keyword Lock lock = new ReentrantLock(); lock.lock(); try {... } finally { lock.unlock(); } 27

Thread interference class Counter { private int c = 0; public void increment() { c++; } public void decrement() { c--; } public int value() { return c; } } Vlákno A volá increment(), vlákno B decrement(): 1. vlákno A přečte c 2. vlákno B přečte c 3. vlákno A zvýší c o 1 4. vlákno B sníží c o 1 5. vlákno A uloží výsledek (v c je 1) 6. vlákno B uloží výsledek (v c je -1) 28

Model 2 (Model-View-Controller) model retrieves data Java Java class retrieves data updates model JSP view sends events selects view sends data servlet controller 29

Dispatcher View browser 1 servlet 4 2 business logic JSP JSP JSP 3 30

Service-to-Worker browser 1 servlet 2 business logic 4 3 JSP JSP JSP 31

Předávání dat Controller Customer c =... request.setattribute( "customer", c ); RequestDispatcher rd = request.getrequestdispatcher( "/view.jsp" ); rd.forward( request, response ); Scope page request session application View <jsp:usebean id="customer" class="bank.customer" scope="request"/> <jsp:getproperty name="customer" property="firstname"/> <jsp:getproperty name="customer" property="lastname"/> 32

Rozdělení rolí servlet přijme žádost zpracuje formulářová data připraví data pro view předá řízení JSP JSP přijme data od servletu vytvoří HTML odpověď generic servlet Java Server Faces Struts 33

Otázky & odpovědi Znáte NetBeans API a chcete pracovat na zajímavém projektu? Napište mi!