RESTful web service v Javě

Podobné dokumenty
Úvod do Web Services

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

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

(Enterprise) JavaBeans. Lekce 7

Michal Krátký, Miroslav Beneš

Pokročilé Webové služby a Caché security. Š. Havlíček

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

RESTful API TAMZ 1. Cvičení 11

KIV/PIA 2013 Jan Tichava

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

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

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

Tvorba informačních systémů

Komponentní technologie

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

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

Server-side technologie pro webové aplikace

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

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Webové služby. Martin Sochor

Softwarové komponenty a Internet

Platformy / technologie. Jaroslav Žáček

Technologie Java. Jaroslav Žáček

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Architektury informačních systémů

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

Architektury informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Michal Krátký, Miroslav Beneš

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

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

Komponentový návrh SW


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

Tvorba informačních systémů

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

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

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

Přístup do IS z mobilních zařízení

Sísyfos Systém evidence činností

X33EJA Enterprise Java

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

Microsoft Office 2003 Souhrnný technický dokument white paper

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

Internet Information Services (IIS) 6.0

Manuscriptorium jako základ pro virtuální badatelské prostředí

Úvod do tvorby internetových aplikací

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

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

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

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

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

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

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

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

InternetovéTechnologie

Integrace mobilního klienta do IS přes webovou službu

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

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

Vývoj informačních systémů. Obecně o IS

Tvorba informačních systémů

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

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

Web Services na SOAP

Použití databází na Webu

UJO Framework. revoluční architektura beans. verze

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

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

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

ArcGIS Server 10.1/10.2

Firemní informační systém

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

Úvod do aplikací internetu a přehled možností při tvorbě webu

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

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

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

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

Common Object Request Broker Architecture

Webové mapové služby. Lukáš Birka

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

SUTOL Symposium 2014

Co je to Grid. Martin Kuba Superpočítačové Centrum Brno Seminář CESNET, Třešť

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

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

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

Databázový systém Matylda

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby

Architektura GIS KMA/AGI. Karel Jedlička

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

INFORMAČNÍ SYSTÉMY NA WEBU

IS pro podporu BOZP na FIT ČVUT

Inovace výuky prostřednictvím šablon pro SŠ

Transkript:

Mendelova univerzita v Brně Provozně ekonomická fakulta RESTful web service v Javě Literární rešerše práce Vedoucí práce: Ing. Jan Turčínek, Ph.D. Pavel Savrov Brno 2016

OBSAH 2 Obsah 1 Protokoly implementaci webových služeb 3 1.1 XML-RPC................................. 3 1.2 SOAP................................... 3 1.3 REST................................... 3 2 Java a Web 5 2.1 Webové aplikace............................. 5 3 Reference 6

1 PROTOKOLY IMPLEMENTACI WEBOVÝCH SLUŽEB 3 1 Protokoly implementaci webových služeb 1.1 XML-RPC Extensible Markup Language Remote Procedure Call je předekem takzvaných webových služeb a API. Vyvinut v roce 1998 na žádost společnosti Microsoft. Ve svém jádru je reinkarnace RPC zpráv pomocí formátování XML. XML-RPC se skládá že 3 malých části: datový model, struktura požadavků a struktura odpovědi. Specifikace protokolu definuje 6 jednoduchých základních datových typu: int, double, boolean, string, datetime.iso8601 a base64. Tyto základní typy mohou být kombinované ještě do 2 složitých datových typů: pole (posloupnost hodnot) a struktura (klíč - hodnota). Kazdy požadavek se skládá z jedneho XML souboru s kořenovým elementem extttmethodcall. Uvnitř tohoto elementů se zapisuje další element - extttmethodname. Tento element definuje proceduru které bude vyvolávána a předává jí parametry že složky extttparams. Odpověď je velmi podobná požadavku ale má pár změn. Element extttmethodcall je nahrazen extttmethodresponse, který obsahuje jenom jeden parametr. (S. Laurent, 2015) Zřejmá výhoda protokolu je jeho jednoduchost, a v důsledku toho, snadnost provedení. Struktura XML je snadno čitelna a lze jí jednoduché pochopit, ale je slabé standardizovaná. 1.2 SOAP SOAP je zkratkou z Simple Object Access Protocol. Je protokolem pro výměnu zpráv založených na XML přes síť, hlavně pomocí HTTP protokolu. SOAP zpráva je obyčejným XML souborem, který se skládá že 4 části: extttenvelope, extttheader, extttbody a extttfault. První část definuje začátek a konec zprávy, je povinná. Hlavička obsahuje volitelné atributy pro zpracování zprávy. Tělo zprávy obsahuje data, je povinné. Poslední část poskytuje informace když nastane nějaká chyba. (E. Newcomer, 2002) SOAP je vhodnější pro komplexní architektury, kde interakce s objekty je nad rámcem teorie CRUD (Create Read Update Delete), XML se aktivní používá pro kódování požadavků a odpovědí, přísné typizace dát, což zaručuje jejich integritu při přenosu mezi klientem a serverem. Struktura XML souboru je mnohem složitější než u XML-RPC. (V. Vaswani, 2010) 1.3 REST REST jako termín byl představen Royem Fieldingem, jedním že zakladatelů protokolu HTTP, pouze v roce 2000. Ve své disertací (R. Fielding, 2000) popsal základní principy REST (Representational Státě Transfer). REST není ani protokol ani nějaký standart, REST je architektura rozhraní. Webová služby které používají REST

1.3 REST 4 se jmenují RESTful. Toto rozhraní není závislé na nějakém protokolu, ale ve většině případů se používá HTTP. (Habrahabr, 2008) Zaměření RESTful služby je na zdroje a jak zajistit přístup k těmto zdrojům. Můžeme si zvolit vchodny spusob reprezentace tehto zdrojů - XML nebo JSON. Velkým rozdílem od XML-RPC je to že XML-RPC využívá HTTP protokol jenom jako transport pro XML soubor, ale REST využívá všechny možnosti HTTP. Využívá se dobře známé HTTP metody: extttget(read-only přístup ke zdrojům), exttt- PUT(vytvořit nový zdroj), extttdelete(smazat zdroj), extttpost(aktulizovat nebo vytvořit nový zdroj) a další. (J. Webber, 2010) Výhodou jsou jednoduchost, flexibilita, rychlost zpracování (zvláště důležité pro velké stránky), multi-formát. (V. Vaswani, 2010; M. Rodriguez, 2015)

2 JAVA A WEB 5 2 Java a Web Pojem web aplikace odkazuje na softwarový systém, který poskytuje uživatelské rozhraní pomocí web prohlížeče. Příkladem mohou být redakční publikační systémy, wiki, online obchody a různé vyhledávací programy. Vývoj web aplikace se stal velmi důležitým oborem pro zlákáni běžných uživatelů k Internetu. Dnes hodně firmy spoléhají na web pro řízení interní logiky firmy a pro poskytování různých služeb zákazníkům. To nemají být jenom velké podniky, nyní web aplikace jsou dostupné pro každého. (D. Nourie, 2013) Ve zkratce lze říct, že každá webová stránka může patřit k statickým nebo k dynamickým. Pojem statická webová stránka znamená, že obsah dokumentu je uložen v souborovém systému. Dynamická webová stránka má tento kontent uložený v databázi. Výhoda používání dynamických stránek je v tom, že obsah se může změnit v důsledku interakce uživatele se stránkou. Dnes každý moderní web je dynamický. (M. Spaanem, 2013) Existuje velké množství různých programovacích jazyků a frameworků, které se používají pro vývoj web aplikací. Java je jedním ze starších a spolehlivých jazyků pro vývoj web aplikací různé složitosti. (Stack Exchange, 2016) Je důležité si všimnout, že pro vývoj webových aplikací nestačí platforma Java Standart Edition. K tomuto účelu se používá Java Enterprise Edition. Rozdíl je v tom, že Java EE obsahuje v sobě Java SE a více dalších technologií jako například: Enterprise JavaBeans, JavaServer Pages, Java Persistence API a JSP Standard Tag Library. Uvedené webové komponenty zajišťují rozšíření možnosti pro webový server. (Oracle, 2013) 2.1 Webové aplikace Moderní aplikace v současnosti využívají téměř výhradně třívrstvé architektury. Hlavními stavebními kameny jsou: webová aplikace na prezentační vrstvě, vrstva komponentové aplikační logiky a vrstva přístupu k databázi a integraci s dalšími systémy. (D. Hanel, 2009) Pro praktické použití je třeba aplikační moduly sestavit do speciální adresářové struktury a vytvořit z nich archivy, které pak budou nasazeny na aplikační server. Existuje několik typu takových archivu: WAR, EJB JAR, EAR. WAR archiv obsahuje komponenty prezentační vrstvy, EJB JAR - vrstvy obchodní logiky, EAR neobsahuje vlastní kód, ale se skládá z několika EJB JAR archivů. (E. Jendrock, 2010) Funkční webová aplikace vznikne až po nasazení na aplikační server, který poskytuje požadované služby. Tyto služby jsou popsané v konfiguracích jednotlivých modulů. Proces je řízen pomocí tzv. deployment descriptors. Každý takový soubor určuje možnosti nasazení modulů, nastavení bezpečnosti a popisuje konkrétní požadavky pro konfigurace. Používá se jazyk XML. (I. Evans, 2010)

3 REFERENCE 6 3 Reference VASWANI, Vikram. Zend framework: a beginner s guide. New York: McGraw-Hill, c2010. ISBN 007163939X. RODRIGUEZ, Michael. RESTful Web services: The basics. In: IBM Corporation[online]. 2015 [cit. 2016-06-08]. Dostupné z: https://www.ibm.com/developerworks/webservices/library/ws-restful/. ST. LAURENT, SIMON., St. Laurent, Simon., Joe. JOHNSTON a Edd. DUMBILL. Programming Web services with XML-RPC. Sebastopol, Calif.: O Reilly, c2001. ISBN 0596001193. NEWCOMER, Eric. Understanding Web services: XML, WSDL, SOAP, and UDDI. Boston: Addison-Wesley, c2002. ISBN 0201750813. JIM WEBBER, Savas Parastatidis and Ian Robinson. REST in practice. Farnham: O Reilly, 2010. ISBN 9780596805821. FIELDING, Roy. Architectural Styles and the Design of Networkbased Software Architectures [online]. University of California, Irvine, 2000 [cit. 2016-06-08]. Dostupné z: https://www.ics.uci.edu/fĩelding/pubs/dissertation/fielding_dissertation.pdf Disertace. Architektura REST. In: Habrahabr [online]. Moskva: s.r.o. Habr, 2008 [cit. 2016-06-09]. Dostupné z: https://habrahabr.ru/post/38730/. NOURIE, Danna. Java Technologies for Web Applications. In: Oracle Technology Network[online]. 2006 [cit. 2016-05-24]. Dostupné z: http://www.oracle.com/technetwork/articles/java/webapps-1-138794.html. SPAANEM, Matt. Static vs. Dynamic Websites: What are They and Which is Better? In: Rocket Media[online]. 2013 [cit. 2016-06-08]. Dostupné z: https://rocketmedia.com/blog/static-vs-dynamic-websites/. STACKEXCHANGE. Stack Overflow Developer Survey 2016 Results. In: Stack Exchange Inc[online]. 2016 [cit. 2016-06-08]. Dostupné z: http://stackoverflow.com/research/developer-survey-2016/. ORACLE. The Java EE 6 Tutorial. In: Oracle Corporation[online]. 2013 [cit. 2016-06-08]. Dostupné z: http://docs.oracle.com/javaee/6/tutorial/doc/bnacj.html. HANEL, David. Vícevrstvá architektura [online]. 2009 [cit. 2016-06-08]. Dostupné z: http://java.vse.cz/jsf/chunks/ch02s03.html. JENDROCK, Eric. Packaging Enterprise Beans in EJB JAR Modules. In: Oracle Corporation[online]. 2010 [cit. 2016-06-08]. Dostupné z: https://docs.oracle.com/cd/e19798-01/821-1841/gipnz/.

3 REFERENCE 7 EVANS, Ian. The Java EE 5 Tutorial. In: Oracle Corporation[online]. 2010 [cit. 2016-06-08]. Dostupné z: http://docs.oracle.com/javaee/5/tutorial/doc/bnaby.html.