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

Podobné dokumenty
Technologie Java. Jaroslav Žáček

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

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

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

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

(Enterprise) JavaBeans. Lekce 7

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

Tvorba informačních systémů

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

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

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

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

KIV/PIA 2013 Jan Tichava

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

Platformy / technologie. Jaroslav Žáček

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

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

X33EJA Enterprise Java

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

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

Server-side technologie pro webové aplikace

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

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

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

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

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

Úvod do Web Services

Architektura aplikace

Spring framework 2.0. Roman Pichlík CZJUG

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

IBM TRIRIGA Application Platform Verze 3 Vydání 4.2. Příručka instalace a implementace

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

Obsah. Předmluva Začínáme: překlad, spuštění a ladění 27

PV239/WP. Vývoj univerzálních Windows Store aplikací. Mgr. David Gešvindr MCSD: Windows Store MCSE: Data Platform MCT MSP

Co je nového v Java EE 6

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

INFORMAČNÍ SYSTÉMY NA WEBU

Mobilní správce hesel

Platformy / technologie. Jaroslav Žáček

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

Enterprise Java Beans 3.0

JAVA EE ORGANIZÉR - SOFTWAROVÁ ARCHITEKTURA

RESTful web service v Javě

SPECIFIKACE PŘEDMĚTU PLNĚNÍ

KIV/PIA Semestrální práce

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

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

InternetovéTechnologie

Web Services na SOAP

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

Název Popis Lhůta. dne Odmítnuté platby Zobrazení, tisk a export seznamu odmítnutých plateb. Informace připraveny k vyzvednutí z bankovního

Instalace a konfigurace web serveru. WA1 Martin Klíma

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

Ověřování nahraditelnosti EJB komponent. Pavel Stuna

JAVA. Java Micro Edition

Komponentní technologie

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

Vladimír

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

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

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

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

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

Tvorba informačních systémů

JAVA. Java Micro Edition

Michal Krátký, Miroslav Beneš

Architektury informačních systémů

Architektury informačních systémů

Tvorba informačních systémů

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

Webové služby. Martin Sochor

Úvod do programování v jazyce Java

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle

Brno. 30. května 2014

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

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

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

2 Popis softwaru Administrative Management Center

Obchodní podmínky technické podpory programu ESRI Developer Network (EDN)

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

Michal Krátký, Miroslav Beneš

PHP Best Practices. Please try to fit your code to 80 columns. That's decimal 80. A. Morton

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

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

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

Aleš Rybák, Jiří Kadlec. Pluginy budoucnosti

Tvorba webových stránek

TECHNOLOGIE RTSJ A JEJÍ UPLATNĚNÍ PŘI TVORBĚ APLIKAČNÍ A PREZENTAČNÍ VRSTVY PORTÁLOVÝCH ŘEŠENÍ

Sem vložte zadání Vaší práce.

MYBIZ - Řešení pro zpřístupnění dat ze stávajících aplikací na mobilních zařízeních (Mobilize your business!) Požadavky zákazníka.

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

Tvorba informačních systémů

Identifikátor materiálu: ICT-3-55

HMI * nad webovými technologiemi

aniel Dvořák, Martin Mičan Liberec Windows Server 2012/R2 Migrační scénáře

Tvorba informačních systémů

Otevřený svět ICS. Radim Navrátil. aneb co svět oken a ICS? Vedoucí oddělení aplikační administrace a bezpečnosti, YOUR SYSTEM, spol. s r.o.

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.

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í)

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.

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?