Technologie Java. Jaroslav Žáček

Podobné dokumenty
Technologie Java. Jaroslav Žáček

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

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

Tvorba informačních systémů

(Enterprise) JavaBeans. Lekce 7

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

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

Platformy / technologie. Jaroslav Žáček

Úvod do Web Services

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

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

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

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

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

Server-side technologie pro webové aplikace

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

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

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

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

KIV/PIA 2013 Jan Tichava

X33EJA Enterprise Java

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

Instalace a konfigurace web serveru. WA1 Martin Klíma

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

(JME) Vybrané partie z jazyka Java (NPRG021) Jiří Tomeš

INFORMAČNÍ SYSTÉMY NA WEBU

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

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

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

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

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

Enterprise Java Beans 3.0

Co je nového v Java EE 6

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Spring framework 2.0. Roman Pichlík CZJUG

Platformy / technologie. Jaroslav Žáček

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

Architektury informačních systémů

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

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

TÉMATICKÝ OKRUH Softwarové inženýrství

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

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:

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

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

Architektury informačních systémů

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

Web Services na SOAP

Tvorba informačních systémů

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

UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud

InternetovéTechnologie

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

Internet Information Services (IIS) 6.0

RESTful web service v Javě

SCADA systémy na platformě mobilních zařízení

1 Webový server, instalace PHP a MySQL 13

Michal Krátký, Miroslav Beneš

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Programové vybavení OKsmart pro využití čipových karet

Komponentový návrh SW

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

Softwarové komponenty a Internet

Tvorba informačních systémů

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

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Michal Krátký, Miroslav Beneš

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

ERP-001, verze 2_10, platnost od

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

1. Webový server, instalace PHP a MySQL 13

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

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

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

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

Matematika v programovacích

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

WCF. IW5 - Programování v.net a C# WCF

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

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

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

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

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Common Object Request Broker Architecture

MBI - technologická realizace modelu

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

CineStar Černý Most Praha

Tvorba informačních systémů

Použití čipových karet v IT úřadu

Přizpůsobení JSTL pro Google App Engine Datastore

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

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


Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Platební systém XPAY [

Transkript:

Technologie Java Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Trocha historie Java vznikla v roce 1995 jak minimalistický programovací jazyk (211 tříd). Syntaxe vycházela z C/C++. V roce 1999 Java 2 (1524 tříd). Nyní se Java bere jako platforma, nikoli jen programovací jazyk.

Dělení jazyků Interpretované Kompilované Kam zařadit Javu? K čemu slouží JVM?

Vytvoření programu Vytvoření programu v jazyce Java. Kompilace souborů překladačem do bytového kódu. Při spuštění program přistupuje k API, které nabízí JVM. JVM reprezentuje program jako instrukce strojového kódu.

Základní koncepty Javy WORA - Write Once Run Anywhere. WODA - Write Once Deploy Anywhere. Bytový kód lze spustit kdekoliv. Java Community Process (JCP), od roku 1998 již 380 specifikací.

Edice Java Card Java ME Java SE Java EE

Java Card Od roku 1996, zaměřena na bezpečné spouštění aplikací s minimem paměti. Software - Applet, hardware - Smart Card. Vytvořen speciální virtuální stroj (Java Card VM). Obsahuje dvě podedice - Classic Edition a Connection Edition (vlákna, SOAP).

Smart Card

Architektura

Bezpečnostní mechanismy Applet firewall - kontrola přístupu k datové části jiných appletů. Šifrování - symetrické a asymetrické šifry. Data Encapsulation - aplikace jsou spouštěny v izolovaném prostředí.

Autorizace, autentizace, certifikáty 32K, 64K (Siemens CardOS); 72K (Java Virtual Machine) Dostupná API: PKCS#11 v2.01, Microsoft CAPI, PC/SC, X.509 v3 certificate storage, SSL v3, IPsec/IKE Obecné API pro komunikaci: OpenSC

Architektura

Java ME Pro přenosná zařízení s omezenými zdroji Dříve hlavně mobilní telefony, nyní spíše STB, IoT zařízení. Kvůli rozmanitosti mobilních zařízení (velikost displaye, paměti, výpočetního výkonu) rozdělena do profilů.

Connected Limited Device Configuration (CLDC) Profil pro velmi levná zařízení: alespoň 160 kb paměti alespoň 32 kb RAM pro aplikaci Upravený virtuální stroj (K Virtual Machine) K dispozici jsou balíčky: java.lang java.io java.util

Další parametry Obsahuje pouze jeden profil - MIDP který definuje další omezení (velikost displaye min 96x54, ovládání klávesami či dotykem, min 8 kb RAM) Téměř všechny mobilní zařízení spadají do kategorie MIDP, aplikace vybudované nad tímto profilem se nazývají midlety.

CDC Existuje několik profilů, nejvýznamnější jsou tyto: Foundation profile - oproti CDC přidává Beans, RMI a SQL. Personal Basis profile - uživatelské rozhraní, omezeno na jedno okno Personal Profile - přidává navíc knihovny AWT

Midlet 1

MIDLET 2

Úložiště záznamů Implementována jednoduchá databáze - Record Store. Struktura je pole bajtů indexovaná od 1. V sadě midletů musí mít jednotlivé databáze své unikátní názvy. Konzistenci databáze hlídá JVM/KVM. Operace jsou atomické, nelze použít transakce. Pro práci s úložištěm se využívá javax.microedition.rms

Java SE Určena pro budování desktopových aplikací. Omezena pouze existencí virtuálního stroje pro daný OS. Dělí se na JRE a JDK Plnohodnotné GUI + Applety + FX Komunikační technologie Socket RMI

Socket - server

Socket - client

Problematika socketů Surová komunikace. Není řešena bezpečnost. Neusnadňuje práci s objekty (serializace/de-serializace). Proč nevyužít principu RPC?

RPC

RMI

Java EE Pro Java SE stačí nainstalovat JVM Pro Java EE často doplněn o aplikační server a kontejnery pro běh webových aplikací Obsahuje API z Java SE doplněno o další třídy a podporu technologií. Zaměřena na škálovatelnost, výkonnost bezpečnost.

Java EE 8

Komponenty Java EE

Aplikační servery Middleware mezi JVM a Java webovou aplikací. Pro zaručení správné funkčnosti jsou certifikovány.

Java Servlet Původně se servlety (JSR-154) objevily jako odpověď na CGI skripty. Dnes jsou klíčovou technologií, používají se jako integrační nástroje pro jiné technologie. Aktuální verze: 3.0, třídy umístěny v javax.servlet. Nástroj pro práci požadavkem klienta (zpravidla HTTP)

Životní cyklus

Implementace

Základní metody pro obsluhu GET - metoda doget, přistupuje k parametrům v URL adrese. POST - metoda dopost, pro předávání parametrů mimo URL, teoreticky velikost parametru omezena není, prakticky ji omezuje webový server. HEAD - metoda dohead, získává informace z hlavičky HTML dokumentu (typ dokumentu, kódování)

Servlet 4.0 Podporuje HTTP/2 Request/response Server push Komprese hlavičky Priorizace streamů Kompatibilita s HTTP1.1 RFC

JSP Servlety nejsou vhodné pro generování HTML výstupu. Cílem je oddělení aplikační a prezentační logiky - proto zavedeny JavaServer Pages (JSR-245). Podporováno technologií Java Bean, které tvoří model pro zobrazení (view).

Architektura

Implementace

Charakteristika JSP kombinuje HTML a speciální tagy do jednoho souboru. JSP obsahuje direktivy, deklarace, výrazy a akce, později přidány speciální tagy <jsp>. JSP se stejně jako třídy Javy musí před spuštěním zkompilovat. Pro čistější kód bylo potřeba zavést šablonovací systém.

JSF 2.3 Lepší podpora CDI (Context and Dependenci Injection) Podpora java.time Websockety AJAX Validace na úrovní beanů (@NotEmpty, @NotBlank) Integrace UIData a UIRepeat

JSTL JavaServer Pages Standard Tag Library (JSR-52). Nabízí základní programovací techniky (iterátor) a další standardy (i18n).

Rich Faces, Primefaces http://www.primefaces.org/showcase/ui/menu/menubutton.xhtml

EJB Specifikace představena 1997 firmou IBM. Třídy běžící na AS vykonávající aplikační logiku. Pro svůj běh vyžadují EJB kontejner. EJB kontejner poskytuje třídám služby (specifikovány verzí kontejneru - nyní 3.1, JSR-318). Vhodné pro zajištění persistence a transakční zpracování

Hlavní výhody EJB Přenositelnost - koncept WODA je zde dodržen, podmínkou je správná verze EJB kontejneru. Jednoduchost - při vývoji se využívá služeb kontejneru EJB, častý jev je, že výrobci EJB kontejnerů přidávají vlastní proprietární funkcionalitu.

EJB 2.1 EJB - Komponenta napsaná v jazyce Java vykonávající aplikační logiku. Remote Interface - specifikuje vzdálené metody, které klient může volat. Remote Home Interface - specifikuje metody, které používají vzdálení klienti pro řízení instance komponenty. Deployment descriptor - XML soubory popisující vlastnosti EJB.

EJB 2.1 Lokální klient má k dispozici tyto rozhraní: Local Interface - odlehčená verze Remote Interface, obsahuje metody aplikační logiky EJB pro lokální uživatele. Local Home Interface - obdoba Remote Home Interface, používají pouze lokální klienti. Pro použití EJB s WS je definován Service Endpoint Interface.

Jmenný prostor Java Naming and Directory Interface Pro komunikaci je využito RMI (RMI-IIOP)

Typy Beanů Session Bean - pro tvorbu middleware Stateless - určeny pro tvorbu komponent, nemají žádný stav, nejsou závislé na přihlášeném uživateli/stavu AS. Statefull - uchovávají stav, který si drží po nějaký čas (doba přihlášení uživatele).

Typy Beanů Entity Bean - používají se pro zajištění persistence Container Managed persistency Bean Managed Persistency Ve verzi EJB 3 je toto nahrazeno JPA.

Typy Beanů Message-driven Bean - jsou aktivovány zaslanou zprávou (nikoli voláním metody), využívá se specifikace JMS, neobsahuje Home ani Remote rozhraní, při inicializaci se mapuje na JMS a čeká na zprávu.

EJB 3 Místo Deployment Deskriptorů jsou aplikovány anotace. EJB 3 neobsahuje rozhraní Home a Remote Původní filosofie Entity Beanů byla nahrazena JPA. Není striktně vyžadováno implementovat všechny metody (např. ejbcreate). EJB 3 povoluje dědičnost komponent. http://tomee.apache.org/ejb3-sample-applications.html

GUI v Javě Swing / AWT Design? Data Binding? Animace

Java FX Jazyk Java je primárním programovacím jazykem Dříve se používal skriptovací jazyk JavaFX Script Je možno použít všechny jazyky podporovány JVM JRuby, Jython, Scala, Groovy JavaScript Gosu, Visage

Java FX Způsoby nasazení Plugin - Java Applet do prohlížeče Java Web Start Standardní desktop Mobilní aplikace

Java FX

Motivace

Architektura

Architektura

Klíčové prvky Scene Graph Scene Builder Předdefinované komponenty Možnost použít CSS Podpora animací Základní mediální formáty (pouze licencované Oraclem) Multi-touch

Hierarchie elementů

Jak to vypadá v kódu

Jak to vypadá v kódu

Demo http://www.oracle.com/technetwork/java/javase/ overview/javafx-samples-2158687.html

Kritika Plugin do prohlížeče Nelze využít některé prvky HTML5 (geolokace) Licencované kodeky Velmi rychlý vývoj?