VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA EE

Slides:



Advertisements
Podobné prezentace
Pokroky v technologiích (2)
Advertisements

© 2000 VEMA počítače a projektování spol. s r. o..
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Webové rozhraní pro datové úložiště
SÍŤOVÉ PROTOKOLY.
Webové služby nad IS/STAG 1 / 21 Seminář IS/STAG Kunžak 2008 Seminář IS/STAG – Kunžak 2008 Webové služby nad IS/STAG Lukáš Valenta.
Zpracování informací a znalostí Další přístupy k vyhledávání textových dokumentů Doc. RNDr. Jan Rauch, CSc. Katedra informačního a znalostního inženýrství.
Úvod do platformy Java EE
Rozšíření systému pro zátěžové testy o SOAP a agenty Zbyněk Pyšný.
Základy databázových systémů
Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
Přednáška č. 5 Proces návrhu databáze
Návrh architektury moderních informačních systémů
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Základy informatiky Internet Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení Hornicko – geologická fakulta.
Tvorba webů pomocí Web CMS Michal Neuwirth Product Manager Kentico Software s.r.o. Ondřej Výšek Samostatný konzultant Optimalizovane-it.
© 2003 FSS, spol. s r.o. Všechna práva vyhrazena.1 e - Insurance Management System Financial Support Services Struktura systému.
Úvod do databází Databáze.
VY_32_INOVACE_INF_RO_12 Digitální učební materiál
VY_32_INOVACE_ 14_ sčítání a odčítání do 100 (SADA ČÍSLO 5)
, InforumJiří Šilha, LANius s.r.o. Nové možnosti komunikace knihovních systémů firmy LANius s.r.o. Client-server varianta systému CLAVIUS ®
Dělení se zbytkem 6 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Dělení se zbytkem 5 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Čtení myšlenek Je to až neuvěřitelné, ale skutečně je to tak. Dokážu číst myšlenky.Pokud mne chceš vyzkoušet – prosím.
Petr Šetka, MVP Exchange, MCSE:Messaging, MCT Windows Small Business Server 2003 R2.
Adresářová služba Active directory
Dělení se zbytkem 8 MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA
Zásady pozorování a vyjednávání Soustředění – zaznamenat (podívat se) – udržet (zobrazit) v povědomí – představit si – (opakovat, pokud se nezdaří /doma/)
Vývoj aplikací pro SharePoint
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Návrh a tvorba WWW Přednáška 1
Aplikace VT v hospodářské praxi internetové technologie Ing. Roman Danel, Ph.D. VŠB – TU Ostrava.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost Číslo projektu: CZ.1.07/1.5.00/ Číslo materiálu: VY_32_INOVACE_PSK-4-14.
Konference SI Praha Ladislav Přívozník is:energy czech a.s.
Systémy pro podporu managementu 2 e-business a podpora rozhodování.
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Databázové systémy Architektury DBS.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
Dokumentace objektů a zveřejnění funkcí
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 13.
Navrhované předměty pro OI a další zimní semestr.
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.1 Lucián Piller Intranet HR.
Základní principy řešení a využití ERP aplikací
CZ.1.07/1.4.00/ VY_32_INOVACE_168_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
PROJEKT : SCADA systémy na mobilních zařízeních AUTOŘI : Ing. Ondřej Krejcar Ing. Stanislav Slíva.
DATABÁZOVÉ SYSTÉMY. 2 DATABÁZOVÝ SYSTÉM SYSTÉM ŘÍZENÍ BÁZE DAT (SŘBD) PROGRAM KTERÝ ORGANIZUJE A UDRŽUJE NASHROMÁŽDĚNÉ INFORMACE DATABÁZOVÁ APLIKACE PROGRAM.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
organizační struktury Implementace EOS III na Olomouckém kraji Pro:Krajský rok informatiky 2005 Autor:Jan Kadlec Datum:
ISSS IS HN/SS Softwarová architektura informačního systému hmotné nouze a sociálních služeb Jindřich Štěpánek
SOA = Architektura orientovaná na služby
Klomfar Petr.  Adresářová služba  specializovaná databáze optimalizovaná pro čtení a vyhledávání.  popisující objekt pomocí atributů. Na rozdíl od.
Správní a dopravně správní evidence - IISSDE RNDr. Jiří Malátek Zástupce ředitele OIVS MV
ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ KATEDRA TEORETICKÉ ELEKTROTECHKY Oddělení informatiky Java Micro Edition pro mobilní zařízení.
Sales & Consulting IGS, Czech Republic © 2005 IBM Corporation Optimalizace a sdílení informací ve státní správě Pavel Hrdlička.
PA165: Úvod do Java EE Petr Adámek.
Portál jako Dynamic WorkPlace.  Cleverbee s.r.o.  společnost založena 2000  15 let zkušeností (prodej a vývoj ERP řešení)  švýcarská společnost se.
B2B Systémová integrace Jiří Macháček. Osnova ► Úvod ► Terminologie ► Parametry – požadavky ► Způsoby integrace ► Web-Services ► Příklady.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
© 2016 InterSystems Corporation. All rights reserved. Integrace OAuth 2.0 a OpenID Connect.
AS/400 (IBM iSeries) Úvod. Co vlastně je AS/400 (IBM i)? Aplikační systém 400 (AS/400) byl navržen jako počítač obecně použitelný v obchodním prostředí.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 5.
Web services – když si Java sedne s M$ na kus řeči Ing. Petr Přibyl CCA Group a.s.
Unix a Internet 9. SQL server
Zkušenosti s nasazením J2EE aplikací na AS GlassFish
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
Application Layer Functionality and Protocols
Transkript prezentace:

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA EE 02/24/12 1 VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA EE Zbyněk Šlajchrt http://java.vse.cz/4it447/HomePage Část 1.

Historické ohlédnutí – 5 revolucí 02/24/12 Historické ohlédnutí – 5 revolucí 2 60. léta První multitaskingový OS 70. léta On-line pořizování dat 80. léta Osobní počítače SQL 90. léta Client-server aplikace Třívrstvé aplikace v druhé polovině desetiletí 2000 Java Enterprise Edition

60. léta První multitaskingový OS vyvinutý IBM (MVT/MFT) 02/24/12 60. léta 3 První multitaskingový OS vyvinutý IBM (MVT/MFT) Mainframes, počítače řady IBM System/360 8-bitové, později kvůli finančním tlakům 6/4-bitové Děrné štítky Magnetické pásky s 9 stopami Diskové plotny po 7,25 MB (max 6), 85ms seek time, 156 kb/s transfer rate Zpracování dat jednou denně dávkami psanými v COBOLu – tzv. batch night cycles Nevýhoda: data nebyla aktuální, opožděná o den

60. léta 02/24/12 4 http://en.wikipedia.org/wiki/IBM_System/360 http://www.columbia.edu/acis/history/cards.html Zdroj: http://en.wikipedia.org/wiki/IBM_System/360 Zdroj: http://www.columbia.edu/acis/history/cards.html 4

70. léta Ve znamení on-line pořizování dat 02/24/12 70. léta 5 Ve znamení on-line pořizování dat IBM CICS – Customer Information Control System transakční server pro mainframy terminálový přístup pro zadávání dat Assembler, PL/I, COBOL IBM VSAM – Virtual Storage Access Method ukládání dat a jejich indexace pro rychlé vyhledávání nezávislé na zařízení (tj. virtual) Výhoda: data byla aktuální

80. léta Počátek éry osobního počítače – Microsoft 02/24/12 80. léta 6 Počátek éry osobního počítače – Microsoft Nahrazení zelených obrazovek terminálů IBM SQL-86 – ANSI standard Zadávání příkazů databázi jazykem blízkým přirozenému Původ v jazyku SEQUEL, výzkum 70. léta v IBM 1979 – Relational Software uvádí Oracle Database Následují DB2, Progres, Informix, Sybase Standard později upraven pro nedostatky – SQL-92

90. léta Microsoft prosazuje klient-server aplikace 02/24/12 90. léta 7 Microsoft prosazuje klient-server aplikace Klient zasílá požadavky na server prostřednictvím počítačové sítě a čeká na odpověď Všechny údaje jsou uloženy na serveru - bezpečnost Snadnější úpravy a modernizace serverové části Nevýhody: snadno dochází k přetížení sítě, náchylnost k výpadkům kvůli centralizaci, náročná správa verzí klientských aplikací http://cs.wikipedia.org/wiki/Klient-server Zdroj: http://cs.wikipedia.org/wiki/Klient-server 7

02/24/12 Přelom tisíciletí 8 Java Enteprise Edition - Sun Microsystems a další definují standard pro vývoj distribuovaných přenositelných aplikací Navazuje na standardní Javu write once, run everywhere JDBC API – transparentní přístup k databázím RMI –volání metod na vzdálených objektech Přináší další, komponentové technologie Enterprise Java Beans (EJB) Servlety, portlety a JSP stránky Webové služby Java Connector API – integrace s legacy aplikacemi

Přehled Java EE První specifikace 1999-2000, verze J2EE 1.2 02/24/12 Přehled Java EE 9 První specifikace 1999-2000, verze J2EE 1.2 Další verze J2EE 1.3, 1.4, Java EE 5 a Java EE 6 (2009) Obsahuje sadu specifikací pro jednotlivé oblasti vývoje distribuovaných aplikací: vývoj webových aplikací – servlety, portlety, JSP, JSF vývoj sdílené aplikační (business) logiky – EJB ukládání a získávání dat z databází – JPA, dříve entity beans vývoj webových služeb asynchronní zpracování dat – Java Messaging Service integrace s legacy aplikacemi – Java Connector API

Referenční implementace (RI) 02/24/12 Referenční implementace (RI) 10 Aplikační server kompletně podporující poslední specifikaci Slouží především jako ukázka implementace nových rysů (features) v poslední specifikaci Není určen k nasazení do produkčního prostředí Java EE 6 – referenční implementace GlassFish v3 open-source produkt (CDDL licence) firmy Sun Microsystems (nyní součástí Oracle)

Compatibility Test Suite 02/24/12 Compatibility Test Suite 11 Utilita, která ověřuje, že daná implementace je kompatibilní se specifikací Java EE Bez tohoto nástroje bychom neměli jistotu, že implementace splňuje vše podle specifikace Různí výrobci by si mohli specifikaci vykládat po svém To by vedlo k omezení výhod plynoucích z principu write once, run everywhere

APM Blueprint Application Programming Model Blueprint 02/24/12 APM Blueprint 12 Application Programming Model Blueprint Referenční příručka pro výuku vývoje distribuovaných aplikací na platformě Java EE V posledních letech ztrácí na důležitosti a opodstatněnosti Řada lidí je již z problematikou seznámena, případně využívá jiných knih

Schéma Java EE aplikací 02/24/12 Schéma Java EE aplikací 13 http://edndoc.esri.com/arcobjects/9.2/Java/java/server/enterprise_adf/intro_eadf.htm Zdroj: http://edndoc.esri.com/arcobjects/9.2/Java/java/server/enterprise_adf/intro_eadf.htm 13

02/24/12 Typický scénář 14 http://edndoc.esri.com/arcobjects/9.2/Java/java/server/enterprise_adf/intro_eadf.htm Zdroj: http://edndoc.esri.com/arcobjects/9.2/Java/java/server/enterprise_adf/intro_eadf.htm 14

Dosavadní certifikované implementace 02/24/12 Dosavadní certifikované implementace 15 Java EE 6 GlassFish v3 (RI) Sun GlassFish Enterprise Server v3 TmaxSoft JEUS 7 Java EE 5 Sun Java System Application Server 9.0 GlassFish JBoss Application Server JOnAS Apache Geronimo/Open EJB IBM WebSphere Oracle (BEA) Web Logic Oracle Containers for Java EE 11 SAP NetWeaver Application Server TmaxSoft JEUS 6 NEC WebOTX

Aplikační rozhraní v Java EE 02/24/12 Aplikační rozhraní v Java EE 16 Java Standard Edition (Java SE) Java EE vychází ze standardní Javy Java Database Connectivity (JDBC) Standardní API pro jednotné připojování k databázím bez ohledu na výrobce RMI-JRMP RMI – Remote Method Invocation, API pro volání metod na vzdálených javovských objektech JRMP – Java Remote Message Protocol, nativní protokol přenos zpráv mezi JVM

Aplikační rozhraní – část 2. 02/24/12 Aplikační rozhraní – část 2. 17 Java Interface Definition Language (Java IDL) Služba, která umožňuje definovat Java rozhraní prostřednictvím jazyka Interface Definition Language Součinnost s programy vyvinutými ve standardu CORBA RMI/IIOP – RMI Over Internet Inter-ORB Protocol Umožňuje použít RMI API pro komunikaci s CORBA aplikacemi, které používají IIOP protokol Enterprise Java Bean (EJB) Komponentová architektura pro vývoj a nasazování distribuovaných business aplikací

Aplikační rozhraní – část 3. 02/24/12 Aplikační rozhraní – část 3. 18 Servlets Komponenty pro komunikaci s webovým klientem Komunikace probíhá ve stylu dotaz-odpověď V principu není omezena na HTTP protokol Náhrada CGI (Common Gateway Interface) skriptů Java Server Pages (JSP) Šablony pro dynamické webové stránky, např. HTML, XML, WML Java Standard Tag Library (JSTL) Standardní knihovny tagů pro JSP stránky

Aplikační rozhraní – část 4. 02/24/12 Aplikační rozhraní – část 4. 19 Java Message Service (JMS) API ke komunikaci s Message Oriented Middleware (MOM) Topic – Publish/Subscribe Jedna strana odesílá (publikuje) zprávu Příjemci jsou všichni, kteří se přihlásí k odběru Po předání zprávy odběratelům se obvykle maže Fronta – FIFO (First In First Out), Point-to-point Jedna strana vkládá zprávy do fronty Příjemce je právě jeden Zpráva čeká ve frontě, dokud si ji příjemce nevyzvedne

Aplikační rozhraní – část 5. 02/24/12 Aplikační rozhraní – část 5. 20 Java Naming and Directory Service (JNDI) API pro přístup k adresářovým službám (např. LDAP) Java Transaction API (JTA) API pro řízení distribuovaných transakcí JavaMail API pro odesílání a přijímání elektronické pošty JavaBeans Activation Framework (JAF) API pro rozeznávání obsahu v libovolném vzorku dat Např. rozeznání formátu obrázku z dat (JPEG) 20

Aplikační rozhraní – část 6 02/24/12 Aplikační rozhraní – část 6 21 Java Persistence API (JPA) ORM framework, který umožňuje vývojářům spravovat relační data v aplikacích Definuje Java Persitence Query Language (JPQL) Nahrazuje entity beans z dřívějších specifikací Java EE Java Authorization Contract for Containers (JACC) Vyjadřuje operace kontejnerů ve smyslu povolenek řídících přístupy k prostředkům systému (java.security.Permission)

Aplikační rozhraní – část 7 02/24/12 Aplikační rozhraní – část 7 22 Java API for XML Web Services (JAX-WS) API pro vývoj webových služeb založeno na anotacích Java Architecture for XML Binding (JAXB) API pro mapování javovských tříd do XML Umožňuje objekty ukládat do XML (marsall) a načítat je zpět z XML (unmarshall)

02/24/12 Kontejnery v Java EE 23 Kontejnery poskytují podporu Java EE aplikačním komponentám – komfortní vývoj aplikací Komponenty používají metody a protokoly kontejneru ke komunikaci s ostatními komponentami a službami aplikačního serveru Java EE zavádí čtyři druhy kontejnerů Klientský kontejner Kontejner appletů Webový kontejner EJB kontejner

Klíčové pojmy Separation of Concerns (SoC) Inversion of Control (IoC) 02/24/12 Klíčové pojmy 24 Separation of Concerns (SoC) oddělení zájmů "sebestředné" komponenty Inversion of Control (IoC) Aplikační logika je pasivní, tj. čeká na událost (callback) Hollywood principle: "Don't call us, we will call you!" Dependency Injection (DI) Aplikace se nestará o získávání služeb, které potřebuje Kontejner injektuje závislosti do komponent

SoC - Separation of Concerns 02/24/12 SoC - Separation of Concerns 25 Rozdělení programu do částí (komponent), jejichž funkcionalita se pokud možno nepřekrývá a je úplná Pozitivně ovlivňuje řadu tzv. systémových kvalit Udržovatelnost (Maintainability) – snadná výměna komponent Testovatelnost Škálovatelnost a další Objektově orientované programování velmi napomáhá tomuto procesu

SoC – Separation of Concerns 02/24/12 SoC – Separation of Concerns 26 Příklad: Bankovní aplikace-Založení bankovního účtu Příjem HTTP dotazu – dříve (procedurálně) poslouchej na TCP portu 80 analyzuj HTTP dotaz přečti z konf. souboru parametry db připojení otevři spojení sestroj SQL příkaz pro založení účtu zadej příkaz vyhodnoť odpověď ukonči spojení (commit) předej odpověď klientovi Aplikace

SoC – Separation of Concerns 02/24/12 SoC – Separation of Concerns 27 Příklad: E-Shop-Nákup Příjem HTTP dotazu – dříve (procedurálně) poslouchej na TCP portu 80 analyzuj HTTP dotaz přečti z konf. souboru parametry db připojení otevři spojení sestroj SQL příkaz aktualizaci skladu zadej příkaz proveď platbu kreditní kartou ukonči spojení (commit) předej odpověď klientovi Aplikace

SoC – Separation of Concerns 02/24/12 SoC – Separation of Concerns 28 Příklad: Založení bankovního účtu Příjem HTTP dotazu – oddělení zájmů poslouchej na TCP portu 80 analyzuj HTTP dotaz přečti z konf. souboru parametry db připojení otevři spojení sestroj SQL příkaz pro založení účtu zadej příkaz vyhodnoť odpověď ukonči spojení (commit) předej odpověď klientovi Kontejner Aplikace (Business Logic)

Separation of Concerns 02/24/12 Separation of Concerns 29 ss 9 Kontejner 8 Aplikace 6 6 7 1 1 5 5 2 2 3 3 4 4

SoC – Separation of Concerns 02/24/12 SoC – Separation of Concerns 30 Zpracování požadavku klienta Příjem požadavku a příprava komponenty Aplikační logika Finalizace a předání odpovědi na klienta Body 1 a 3 se příliš nezávisí na aplikační logice Informace o aplikaci spravované kontejnerem se zapisují deklarativně prostřednictvím konfiguračního XML souboru nebo anotací.

IoC – Inversion of Control 02/24/12 IoC – Inversion of Control 31 Hollywood principle: "Don't call us, we will call you!" Princip událostmi řízeného programování (použito např. v knihovně Swing) Aplikace principu SoC Nezabývej se tím, jak otevřít připojení k databázi nebo vyhledat službu pro ověření kreditní karty. Kontejner ti nastaví vše, co potřebuješ. (Konfigurační aspekt IoC) Neřeš příjem požadavku z klienta ani čekání na zprávu ve frontě. Kontejner tě zavolá, až přijde ta správná chvíle. (Behaviorální aspekt IoC)

DI - Dependency Injection 02/24/12 DI - Dependency Injection 32 Řeší konfigurační aspekt IoC nastavování parametrů, připojení a služeb Dotaženo v Java EE 5 Inspirace: Spring, NanoContainer, Avalon Container Tradiční styl: DI: new A() setA(A) A new A() A C new C() C B new B() B setB(B) new B()

02/24/12 Lookup Service 33 Alternativní metoda pro implementaci konfigurační stránky IoC, kdy komponenta sama vyhledává službu pomocí tzv. vyhledávací služby (Lookup Service) Využíváno v dřívějších verzích Java EE A lookup(A) C Lookup lookup(B) B

Klientský kontejner Pro klientské aplikace psané v jazyce Java 02/24/12 Klientský kontejner 34 Pro klientské aplikace psané v jazyce Java Poskytuje tyto služby: Vzdálená volání (RMI) Připojení k databázi Vyhledávací služba Např. k vyhledávání databázových zdrojů, EJB a MOM prostředků podle jména Klientský kontejner obsahuje tato API: J2SE, JMS, JNDI, RMI-IIOP a JDBC

Kontejner appletů Poskytuje služby javovským appletům 02/24/12 Kontejner appletů 35 Poskytuje služby javovským appletům Applet je program napsaný v Javě, který běží ve webovém prohlížeči – kontejneru Kontejner appletů musí poskytovat Java SE API

Webový kontejner Poskytuje podporu servletům a JSP stránkám 02/24/12 Webový kontejner 36 Poskytuje podporu servletům a JSP stránkám Servlety a JSP stránky jsou komponenty pro přípravu, zpracování a formátování dynamického obsahu určeného k zobrazení Zajišťuje bezpečnostní aspekty jako ověřování uživatele a autorizaci přístupu uživatelů ke stránkám. Musí podporovat následující API: Java SE, JMS, JNDI, JTA, JavaMail, JAF, RMI-IIOP, JDBC, JPA ad.

EJB kontejner Poskytuje služby pro: 02/24/12 EJB kontejner 37 Poskytuje služby pro: řízení transakcí správu stavů komponent resource pooling bezpečnostní kontroly EJB komponenty obsahují business logiku aplikace Jsou jádrem distribuované aplikace Kontejner musí poskytovat tato rozhraní: Java SE, JMS, JNDI, JTA, JavaMail, JAF, RMI-IIOP, JDBC, JPA ad.

Integrace s dřívějšími aplikacemi 02/24/12 38 Java Connector Architecture (JCA) Je zapotřebí propojit Java EE aplikace s jinými, které nejsou vyvinuty na platformě Java EE Důležitá vlastnost Java EE významně přispívající k jejímu rozšíření JDBC hraje podobnou roli na poli databází JCA má širší záběr: Mainframes, SAP, Siebel, PeopleSoft, LDAP http://java.sun.com/j2ee/connector/products.html

02/24/12 Novinky v Java EE 6 39 Profily – podmnožiny technologií z Java EE ušité na míru nějaké oblasti použití Web Profile, Full Profile WebBeans 1.0 Sjednocuje JSF, JPA a EJB3 Inspirováno Seam, Google Guice a Spring Zjednodušuje práci s JSF Java Server Faces 2.0 (JSF) Zavádí tzv. facelets, alternativu k JSP Využívá anotací, podpora AJAXu Zabudovaná podpora pro obrázky, skripty, CSS atp. http://www.theserverside.com/tt/articles/article.tss?l=JavaEE6Overview 39

Novinky v Java EE 6 – část 2. EJB 3.1 JPA 2.0 02/24/12 Novinky v Java EE 6 – část 2. 40 EJB 3.1 Singleton beans – jediná instance v aplikace, thread safe by default Plánování úloh v cron stylu (5 * * * ? *) Možnost volání session beanů asynchronně EJB 3.1 Lite – ořezaná verze pro webový profil JPA 2.0 Modelování kolekcí, které nereprezentují relaci mezi entitami Criteria API – umožňuje vytvářet dotazy objektově- orientovaným a typově bezpečným způsobem

Novinky v Java EE 6 – část 3. Servlet 3.0 JAX-RS 1.1 02/24/12 Novinky v Java EE 6 – část 3. 41 Servlet 3.0 Zavádí užitečné anotace, redukuje web.xml Fragmenty web.xml – jednotlivé moduly aplikace mohou přispívat vlastním fragmentem Možnost programově přidávat servlety, filtry a posluchače – usnadňuje práci webovým frameworkům JAX-RS 1.1 REST alternativa JAX-WS REST – REpresentational State Transfer URL reprezentují prostředky na webu Obsah prostředku představuje stav HTTP metody GET, POST, DELETE a další mají obecnější význam a představují operace nad prostředkem

SunTone AM Methodology 02/24/12 SunTone AM Methodology 42 Architektonická metodologie vyvinutá v SUNu koncem 90. let. Jedná se o rozšíření RUP metodologie. Přidala best-practices k popisu procesu vývoje mission-critical podnikových aplikací. Převzato ze SUNTONE ARCHITECTURE METHODOLOGY A 3-DIMENSIONAL APPROACH TO ARCHITECTURAL DESIGN 42

SunTone AM Methodology 02/24/12 SunTone AM Methodology 43 Architektonická metodologie pro vývoj mission- crtical enterprise aplikací Má svůj původ v RUP Hlavní předměty zájmu v enteprise aplikacích zobrazuje jako kostku, jejíž tři dimenze jsou: Tiers - aplikační vrstva, list(?) Layers - technologická vrstva, sloj(?) Systémové kvality (bezpečnost, dostupnost...) Řeší se systémové kvality pro všechny kombinace tier vs. layer

02/24/12 Tiers 44 Popisují, jak je distribuovaná aplikace rozložená do modulů kvůli redukci provázanosti a lepší pružnosti Client tier – web browser, standalone Java application, web service clients Web presentation tier – přijímá HTTP požadavky a odpovídá např. HTML, obsahuje servlety a JSP Business logic tier – obsahuje moduly s business logikou, typicky EJB Integration tier – obsahuje moduly pro připojování a komunikaci s Enterprise resource tier, typicky JPA, JMS Enterprise resource tier – typicky non-Java systémy, databáze a mainframy

02/24/12 Tiers - obrázek 45 Převzato z http://java.sun.com/javaee/5/docs/tutorial/doc/bnaay.html

02/24/12 Layers 46 Popisují, jak je distribuovaná aplikace implementována na vrcholu infrastruktury platformy Aplikační vrstva – obsahuje všechny aplikační moduly, vývoj probíhá zde Virtuální platforma – obsahuje rozhraní k modulům z vrstvy Aplikační infrastruktura, definováno JCP Aplikační infrastruktura – obsahuje middleware produkty, databáze, aplikační servery Enterprise service layer – typicky operační systémy Compute and storage layer – hardware, disky, paměť, procesory Network infrastructure – síťová infrastruktura, karty, routery, load balancers,

Layers - obrázek Příklad technologických vrstev v business tier 02/24/12 Layers - obrázek 47 Příklad technologických vrstev v business tier MyPetStoreApp EJB beans – aplikační vrstva EJB 3.1 – virtuální platforma Glassfish v3 – aplikační infrastruktura Hot Spot Java 6 - virtuální platforma Solaris 10 OS – enterprise service layer Sun Blade X6440 – compute and storage layer CISCO Network Infrastructure

02/24/12 Systémové kvality 48 Vlastnosti systému, které tvoří základ kvality služeb poskytovaných systémem Různé systémové kvality mají odlišný vliv na celkový design systému, občas protichůdný Čtyři skupiny Manifest qualities –interakce uživatele se systémem Operational qualities – vlastnosti běžícího systému, které bezprostředně nedotýkají uživatele Developmental qualities – vlastnosti vývoje systému Evolutionary qualities – jak se systém chová, když je třeba jej upravit nebo povýšit (upgrade)

Systémové kvality - příklady 02/24/12 Systémové kvality - příklady 49 Výkonnost Spolehlivost Dostupnost Bezpečnost Snadná správa Testovatelnost Realizovatelnost Plánovatelnost Škálovatelnost Rozšiřitelnost Flexibilita

Role ve vývoji Java EE aplikací 02/24/12 Role ve vývoji Java EE aplikací 50 Velkou výhodou Java EE aplikací je, že přirozeně vedou k rozdělení vývoje do rolí, ve kterých se uplatňují lidé s odlišnými dovednostmi. Např. EJB Developer Web Component Developer Grafik Programátor stránek a servletů Application Client Developer Application Assembler Application Deployer and Administrator

Nasazení (deployment) 02/24/12 Iterativní vývoj 51 Životní cyklus vývoje Java EE aplikací Vývoj JEE komponent Sestavení (assembly) Nasazení (deployment) Testy

Java EE programovací vzory 02/24/12 Java EE programovací vzory 52 Sada ověřených řešení opakovaně se vyskytujících problémů při vývoji Java EE řešení Vycházejí ze zkušenosti Java EE komunity Výhody: Ověřená řešení Znovupoužitelnost (reusability) Navrženy s ohledem na lepší výkon ... a další systémové kvality (maintainability) V tomto kurzu se budeme věnovat hlavním vzorům

Java EE programovací vzory 02/24/12 Java EE programovací vzory 53

02/24/12 SUN certifikace 54 http://www.sun.com/training/certification/java/index.xml Zdroj: http://www.sun.com/training/certification/java/index.xml 54