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

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

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

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

Spring framework 2.0. Roman Pichlík CZJUG

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

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

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

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

Tvorba informačních systémů

(Enterprise) JavaBeans. Lekce 7

Architektury informačních systémů

Architektury informačních systémů

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

KIV/PIA 2013 Jan Tichava

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

Platformy / technologie. Jaroslav Žáček

IBA CZ průmyslový partner FI MU

Systémová administrace portálu Liferay

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

X33EJA Enterprise Java

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

Technologie Java. Jaroslav Žáček

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

Co se chcete dozvědět?

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

Ruby on Rails: zapomeňte na Javu

Server-side technologie pro webové aplikace

Analýza a Návrh. Analýza

Michal Krátký, Miroslav Beneš

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

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

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

Enterprise Java Beans 3.0

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

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

IBA CZ průmyslový partner FI MU

Testování Java EE aplikací Petr Adámek

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

UNIVERZITA PARDUBICE

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

Architektura softwarových systémů

Vývoj informačních systémů. Přehled témat a úkolů

Sísyfos Systém evidence činností

Firemní profil FG Forrest

Softwarové komponenty a Internet

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

Informační systém ozdravných pobytů zdravotní pojišťovny

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

2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc

Web frameworks v praxi

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

Vývoj informačních systémů. Přehled témat a úkolů

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

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

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

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

Platformy / technologie. Jaroslav Žáček

Řízení reálných projektů, agilní metodiky

Technologie Java. Jaroslav Žáček

Komponentní technologie

Architektura GIS KMA/AGI. Karel Jedlička

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

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

Co je nového v Java EE 6

Úvod do problematiky vývoje Vývoj informačních systémů

Úvod do Web Services

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

Web frameworks v praxi Tomáš Krátký

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


Návrhové vzory Tvorba objektů

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

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

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

Formy komunikace s knihovnami

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

PV207. Business Process Management

JAVA EE ORGANIZÉR - SOFTWAROVÁ ARCHITEKTURA

UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY

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

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

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

Tabulka Nabídková cena za předmět plnění *uchazeč vyplní cenu za celý kurz nebo cenu za 1 účastníka dle zadávací dokumentace a nabídky uchazeče

BeeSIP ANEB BEZPEČNOST SILNIČNÍHO PROVOZU V IP TELEFONII

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

Optimalizace aplikací Java/EE

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

EMBARCADERO DATASNAP. OBSAH Úvod... 2 DataSnap a DBExpress... 2 Serverová část... 2 VCL Klient... 6 Nasazení... 7

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

J2EE Application Servers

Podnikový informační systém SAP

Tvorba informačních systémů

java remote method invocation Kateřina Fricková, Matouš Jandek

IBA CZ. Představení společnosti. Ing. Jan Valdman, Ph.D. 22 May 2007

Transkript:

PA165: Úvod do Java EE Petr Adámek

Obsah přednášky Organizace předmětu Formy výuky Hodnocení Osnova Java EE aplikace Architektury Java EE aplikací Technologie Java EE Základní koncepty PA165: Úvod do Java EE 2

ORGANIZACE PŘEDMĚTU PA165: Úvod do Java EE 3

Formy výuky Přednáška Doporučená účast Cvičení Povinná účast Příklady k probírané látce Konzultace k projektům Projekt Řešený ve čtyřčlenných týmech Kontrolní body Průběžná práce během semestru PA165: Úvod do Java EE 4

Hodnocení Projekt: 70 bodů Kontrolní body: 4x10 bodů Obhajoba: 30 bodů Závěrečná zkouška: 30 bodů Ukončení: Zápočet: min. 60 bodů Zkouška: min. 70 bodů PA165: Úvod do Java EE 5

Osnova předmětu Úvod do Java EE (architektura, technologie, koncepty) Perzistence dat (ORM, JPA, Spring JDBC, ibatis, Testování) Aplikační logika (IoC, AOP, Transakce, Bezpečnost, Testování) Prezentační vrstva (Webové frameworky, Stripes, Spring MVC, Wicket, JSF, Bezpečnost) Integrační technologie (Webové služby SOAP, REST, JMS, RMI, IIOP, ESB) Testování (jednotkové, integrační, funkční, akceptační, uživatelské přívětivosti, výkonnosti, bezpečnosti) PA165: Úvod do Java EE 6

Doporučené zdroje Viz osnova předmětu Effective Java (2nd Edition) Joshua Bloch http://amazon.com/dp/ 0321356683/ Ostatní viz osnova v IS PA165: Úvod do Java EE 7

PLATFORMA JAVA EE PA165: Úvod do Java EE 8

Co je to platforma Java EE Platforma pro vývoj moderních informačních systémů Poskytuje potřebnou infrastrukturu Průmyslový standard (JCP) Aktuální verze je Java EE 6 (JSR 316) Podpora pro vývoj Webových aplikací Webových služeb Vícevrstvých aplikací PA165: Úvod do Java EE 9

Charakteristika moderních IS Složité, rozsáhlé a komplexní systémy Nutnost integrace s ostatními systémy v rámci organizace i mimo ni Přizpůsobitelnost požadavkům různých zákazníků Provoz na různých platformách Podpora pro velké množství klientů (zejména u webových aplikací) Bezpečnost PA165: Úvod do Java EE 10

Požadavky na vývoj IS Rychlý vývoj Snadná údržba Snadná rozšiřitelnost a přizpůsobení Snadná integrovatelnost s jinými systémy Podpora pro agilní metodiky Podpora pro týmový a multi-týmový vývoj Přenositelnost Různé SW i HW platformy, různé nástroje i aplikační servery Škálovatelnost Bezpečnost PA165: Úvod do Java EE 11

ZÁKLADNÍ KONCEPTY PA165: Úvod do Java EE 12

Základní koncepty Infrastruktura Modularita Nezávislost a nízká invazivnost Deklarativní přístup Dodržování obecných zásad pro vývoj udržovatelného kódu PA165: Úvod do Java EE 13

Infrastruktura Vývojář by se měl zaměřit na vlastní problémovou doménu a neměl by být nucen se zabývat obecnými problémy, které je nutné řešit v každé aplikaci. Architektura aplikace, bezpečnost, řízení transakcí, perzistence dat, komunikace a integrace, vzdálený přístup, infrastruktura prezentační vrstvy, lokalizace, atd. Platforma Java EE a na ní postavené aplikační rámce (frameworky) proto nabízejí potřebnou infrastrukturu. Nikdy neimplementujte svůj vlastní framework! PA165: Úvod do Java EE 14

Modularita Aplikace je vyvíjena jako množina spolupracujících komponent Komponenty by měly Být volně propojené (loosely coupled), tj. mělo by mezi nimi být co nejméně závislostí Být znovupoužitelné (ať už pouze v rámci projektu, nebo i mimo něj) Mít dobře navržené rozhraní Být dobře otestované Pokud máme množinu dobře navržených komponent, je snadné měnit a přizpůsobovat chování aplikace Výměnou komponenty Změnou konfigurace komponenty Změnou propojení mezi komponentami PA165: Úvod do Java EE 15

Nezávislost a nízká invazivnost Komponenty by měly být nezávislé nejenom mezi sebou, ale také na konkrétních technologiích a aplikačních rámcích To zjednodušuje údržbu a zvyšuje znovupoužitelnost Koncept POJO komponent PA165: Úvod do Java EE 16

Deklarativní přístup Určité aspekty chování programu nejsou definovány tradičním imperativním kódem (tj. posloupností příkazů jak se to má udělat), ale specifikací cíle (tj. co se má udělat). To vede ke zjednodušení a zpřehlednění kódu. Vhodné např. pro řízení transakcí, řízení bezpečnosti a přístupových práv, automatické konverze, různá automatická mapování, apod. Vlastní deklarace požadovaného chování může být umístěna V popisovači nasazení (deployment descriptor) Přímo v kódu prostřednictvím anotace (modernější a preferovaný přístup) PA165: Úvod do Java EE 17

Imperativní řízení transakcí public void somemethod() { UserTransaction transaction = context.getusertransaction(); } try { transaction.begin(); dosomething(); transaction.commit(); } catch (Exception ex){ try { transaction.rollback(); } catch (SystemException syex){ throw new EJBException ("Rollback failed: " + syex.getmessage()); } throw new EJBException ("Transaction failed: " + ex.getmessage()); } PA165: Úvod do Java EE 18

Deklarativní řízení transakcí @TransactionAttribute(TransactionAttributeType.RequiresNew) public void somemethod() { dosomething(); } PA165: Úvod do Java EE 19

Jak to bylo v dřívějších verzích První verze platformy Java EE byly zaměřeny zejména na infrastrukturu a technologie. Snadnost vývoje byla podceňována Složité technologie se složitým použitím strmá učící křivka Nutnost používání složitých nástrojů To vedlo k frustraci vývojářů a ke vzniku alternativních přístupů a technologií (Hibernate, Spring) Změna přišla s Java EE 5 Silná inspirace nástroji Spring, Hibernate, apod. Anotance POJO komponenty PA165: Úvod do Java EE 20

ARCHITEKTURA & TECHNOLOGIE PA165: Úvod do Java EE 21

Prezentační vrstva Aplikační logika Klientská vrstva (Client Tier) Desktop application Webová vrstva (Web tier) Aplikační vrstva (Business Tier) EJB Mobile application JSF Web Browser Servlety JSP Spring Client computer Application server Perzistence dat JDBC ORM Integrační vrstva (EIS Tear) Databáze Jiný IS DB/IS server PA165: Úvod do Java EE 22

Prezentační vrstva Desktopové aplikace Swing AWT SWT Java Web Start Mobilní aplikace Java ME Android/iOS/BlackBerry OS/Windows Phone Webové aplikace Servlety, JSP, JSTL MVC frameworky Request based (Struts, Stripes, Spring MVC) Component based (JSF, Tapestery, Wicket) Portlety Aplety 2012 Petr Adámek 23

Aplikační logika Obyčejná knihovna tříd Pro větší aplikace nevhodné řešení EJB Vyžaduje aplikační server s podporou EJB nebo EJB lite. Spring framework Není standardní součástí Java EE Přesto je velmi oblíbený Není invazivní 2012 Petr Adámek 24

Persistence dat JDBC Univerzální API pro přístup k DB Těžkopádné na přímé používání Template Method Spring JDBC Commons DB RowSet ORM Standard JPA (aktuálně JPA 2.0) Hibernate, TopLink, Eclipse Link Zastaralé technologie EJB 2.x JDO 2012 Petr Adámek 25

Aplikační servery Open Source plnohodnotné JBoss Glassfish Open Source pouze servlet kontejner Tomcat Jetty Komerční WebSphere (IBM) WebLogic (Oracle, dříve BEA) 2012 Petr Adámek 26

Závěr? 2012 Petr Adámek 27