X33EJA Enterprise Java



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

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

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

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

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

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

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

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

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

Platformy / technologie. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

Server-side technologie pro webové aplikace

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

(Enterprise) JavaBeans. Lekce 7

Systémová administrace portálu Liferay

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

Technologie Java. Jaroslav Žáček

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

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

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

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

KIV/PIA 2013 Jan Tichava

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

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

Architektury informačních systémů

Architektury informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Spring framework 2.0. Roman Pichlík CZJUG

Úvod do Web Services

Michal Krátký, Miroslav Beneš

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

Tvorba informačních systémů

Web Services na SOAP

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

Komponentní technologie

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

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

Java technologie pro webové aplikace

Technologie Java. Jaroslav Žáček

Tvorba informačních systémů

RESTful web service v Javě

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

Softwarové komponenty a Internet

Platformy / technologie. Jaroslav Žáček

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

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

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

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

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


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

Tvorba informačních systémů

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

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

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

PV207. Business Process Management

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

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

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

Co je nového v Java EE 6

Požadavky pro výběrová řízení TerraBus ESB/G2x

Michal Krátký, Miroslav Beneš

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

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Tvorba informačních systémů

Nové jazykové brány do Caché. Daniel Kutáč

Enterprise Java Beans 3.0

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

Korporátní identita - nejcennější aktivum

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Michal Krátký, Miroslav Beneš

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

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

INFORMAČNÍ SYSTÉMY NA WEBU

Zabezpečení platformy SOA. Michal Opatřil Corinex Group

Použití databází na Webu

MBI - technologická realizace modelu

Znalostní systém nad ontologií ve formátu Topic Maps

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

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

Řešení integrace Profinit ESB. Michal Bureš

Tvorba informačních systémů

Informační systém autoškoly

Multiplatformní osobní organizér v jazyce Java

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

UDS for ELO. Univerzální datové rozhraní. >> UDS - Universal Data Source

JAVA EE ORGANIZÉR - SOFTWAROVÁ ARCHITEKTURA

1. Webový server, instalace PHP a MySQL 13

Integrace mobilních zařízení do ICT, provoz tlustých aplikací na mobilních telefonech a tabletech Roman Kapitán, Citrix Systems Czech

Komunikace systémů pomocí Hradec Králové

Návrhové vzory pro J2EE. Miroslav Beneš

Komponentový návrh SW

Compatibility List. GORDIC spol. s r. o. Verze

ArcGIS Server 10.1/10.2

Transkript:

X33EJA Enterprise Java Petr Šlechta Sun Microsystems petr.slechta@sun.com Petr Aubrecht CA (Computer Associates) petr.aubrecht@ca.com

X33EJA (2+2) Cvičení Formou samostatné práce na projektu témata budou zadána 5. týden semestru Konzultace přes e-mail nebo po přednášce Klasifikovaný zápočet na základě předvedení projektu a diskuse nad ním

X33EJA (2+2) Přednášky 1. Úvod, organizace přednášek a cvičení 2. Přehled technologií J2EE, jejich společný kontext a vzájemné souvislosti, architektura J2EE systémů 6. Javové technologie pro webové aplikace, servlety, Java Server Pages (JSP) 3. Objektově-relační mapování, entity beans, Java Persistence API (JPA). 4. Session beans, transakční model 5. Aparát pro zasílání zpráv, message-driven beans, Java Message Service (JMS) 7. Přehled hlavních webových frameworků, Java server Faces (JSF), vybrané knihovny pro podporu JSF

X33EJA (2+2) Přednášky 8. Web services (XML, SOAP, WSDL) 9. Související podpůrné javové technologie (JNDI, JTA, JTS, JCA) 10. Demonstrace návrhu a implementace jednoduché aplikace 11. Deplyment aplikací, konfigurační management J2EE systémů 12. Výkonové aspekty J2EE systémů, load balancing 13. Některé implementační techniky (proxy, connection pool, bean pool) 14. Současné trendy ve vývoji J2EE aplikací

Úvod do Java Enterprise technologií

Java Programovací jazyk Jednoduchost, navržen s ohledem na malá zařízení Přenositelnost (byte code) Veřejné specifikace (JCP) Implementace a podpora více firmami Sun, IBM,... Průřez historií 1995 verze 1.0, 1998 Java 2 (J2SE 1.2, J2ME, J2EE) 2006 GPLv2, 2007 free and open-source (problém s Java 2D)

Java Editions JavaCard Java ME CLDC (pagers, mobile phones), CDC Java SE Java 1.x, J2SE 1.2 & 1.3 & 1.4, Java SE 5 & 6 & (7) Java EE J2EE 1.2 & 1.3 & 1.4, Java EE 5 & (6) Jazyk stejný napříč edicemi Edice se liší hlavně knihovnami a podporovanými technologiemi

Java Editions

Enterprise Applications Velké objemy dat databáze Paralelní přístup mnoha uživatelů Client server architektura Mainframes 2 vrstvy 3 vrstvy...

Mainframe Centralizovaný model Jednoduché terminály připojené k hlavnímu počítači Jednoduchá správa, velké datové přenosy

2 vrstvy Klienti připojeni přímo k databáze Interaktivní, složitá správa, velké datové přenosy

3 vrstvy Databázový server, aplikační server(y) a klienti Klient tenký nebo tlustý

3 vrstvy Databáze (popř. legacy systems) Uložení dat Aplikační server Business logika Klient Visualizace výsledků, zadávání dat Tenký: webový prohlížeč (bez speciální instalace) Tlustý: aplikace (větší interaktivita, kontola dat) Jeden z prvních třívrstvých systémů byl SAP

Java EE Java EE je soubor technologií integrovaný v Java EE aplikačním serveru Specifikace, více implementací Open-source implementace GlassFish (Sun), JBoss (Red Hat), Apache Geronimo, JonAS Komerční implementace Sun Java AS, IBM WebSphere, BEA WebLogic Kritéria Open source, certifikace, škálovatelnost, konfigurace,...

Aplikační Server Integrované Java EE API a technologie Unifikovaný management a deployment enterprise aplikací Framework zjednodušující tvorbu serverových aplikací (deklarativně či programově) bezpečnost (security), transkační zpracování, sdílení zdrojů (pooling), synchronizovaný přístup ke komponentám, podpora persistence, distribuovatelné aplikace (local/remote access), škálovatelnost (jedna konfigurace, load balancing)

Aplikační Server ukázka Administrativní konzola, spuštění CLI asadmin: start-appserv, stop-appserv, autodeploy NetBeans IDE registrace, start, stop,... Deployment aplikace HelloWorld.war

Struktura Aplikačního Serveru Dva základní kontejnery: web & business

Servlety

Cíl: Vytvořit jednoduchou web aplikaci Tenký klient (webový prohlížeč) AS: pouze web kontejner Servlety JSP stránky Bez business logiky a persistence Viz též JSP Web Frameworks

Dokumentace Java EE 5 API http://java.sun.com/javaee/5/docs/api/ NetBeans již tuto dokumentaci obsahují http://www.netbeans.org/

Servlet Objekt spravovaný (managed) web kontejnerem Obecný servlet (javax.servlet.*) HTTP servlet (javax.servlet.http.*) Odstíněn od některých detailů komunikace (listenery, cache) a HTTP protokolu (bezestavový) Na základě vstupních informací (HttpServletRequest) generuje výstupní informace (HttpServletResponse, HTML stránku)

Mapování servletů Konfigurační data pro servlety (a ostatní komponenty web aplikace) jsou uloženy v soubory web.xml (descriptor) Mapování servletů na URL Aplikace sama má kontext http://localhost:8080/helloworld V rámci web aplikace je nutno určit, které dotazy budou zpracovány daným servletem http://localhost:8080/helloworld/sayhello

WAR soubor Celá web aplikace je zabalena do WAR (Web Archive) souboru WAR = JAR (Java ARchive) s určitou strukturou (některé položky jsou stejné jako v JAR souboru) JAR = ZIP s určitou struktorou WAR může obsahovat Java kód, JSP, HTML, resources, konfigurační informace (descriptors),...

Ukázka vstup a výstup Servlet provede Zpracování vstupních parametrů Zápis do logu Generování výstupní stránky Ukázka ladění na úrovni HTTP protokolu

Lifecycle servletu AS má obvykle více threadů zpracovávajících požadavky klientů Viz konfigurace AS Lifecycle: init(), service(), service(),..., service(), destroy() Kód servletu není synchronizován (!) Metoda service() může být prováděna několika thready najednou Nutno psát reentrantní kód (pouze s lokálními proměnnými) a synchronizovat všechny přístupy ke sdíleným zdrojům

Uchování kontextu HTTP je bezestavový protokol Kontext lze uchovat na klientu či na serveru Klient: cookies Server: sessions Různé rozsahy (scopes) Application (javax.servlet.servletcontext) Session (javax.servlet.http.httpsession) Page (javax.servlet.jsp.pagecontext)

Ukázka cookies Využití API HTTP ladění

Konfigurace servletu web.xml může obsahovat konfigurační data pro web aplikaci (app scope) Java EE web aplikace by neměly být závislé na externích zdrojích (soubory, atd.) Měly by být nezávislé na OS a AS

Ukázka Zpřístupnění souborů přes web Různí uživatelé, různé sessions Volba jak zakódovat parametry do URL (REST styl vs. klasický styl) Konfigurace aplikace

Filtry (filters) Umožňují vstoupit mezi klienta a servlet a změnit data Komprese, kódování obrázků,... Pozměňování výstupu servletu (logo,...) Bezpečnost (odmítnutí přístupu) Integrace web aplikací (SSO)... Konfigurace filtru pomocí web.xml (záleží na pořadí položek) Řetězení filtrů do filtrovacího řetězce (filter chain)

Řetězení filtrů

Implementace filtru dofilter(...) metoda Návrat z metody = prázdná odpověď Lze přesměrovat klienta na jiný zdroj (redirect) Pomocí zabalení (wrapping) request a response objektů lze dosáhnout pozměnění vstupů či výstupů pro další filtr v řetězci (HttpServletRequestWrapper a HttpServletResponseWrapper) Ukázka: kontrola přístupu k informacím podle přihlášení uživatele

Přesměrování a vložení zdroje HttpServletResponse.sendRedirect(String location) Pomocí RequestDispatcher (metody forward a include): RequestDispatcher dispatcher = session.getservletcontext().getrequestdispatcher("/banner"); if (dispatcher!= null) dispatcher.include(request, response);

Listeners Umožňují reagovat na změnu v lifecycle servletu či session ServletContextListener ServletContextAttributeListener ServletRequestListener ServletRequestAttributeListener HttpSessionListener HttpSessionActivationListener HttpSessionAttributeListener HttpSessionBindingListener

Ošetření chyb Web kontejner generuje standardní stránku v případě chyby Lze definovat chybovou stránku pro danou vyjímku Ve web.xml, tag <error-page>

SingleThreadModel SingleThreadModel Interface pro servlety se stavem lépe je použít synchronize blok SingleThreadModel může způsobovat potíže s výkoností AS