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

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

Úvod do Web Services

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

Michal Krátký, Miroslav Beneš

Vánoční hrátky s JAXB

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Webové služby. Martin Sochor

RESTful API TAMZ 1. Cvičení 11

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

Webové služby. Martin Kuba Superpočítačové centrum Brno Masarykova univerzita

Tvorba informačních systémů

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

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

Webové služby v Java EE (JAX-WS)

Web Services na SOAP

Tvorba informačních systémů

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

API pro volání služby kurzovního lístku KB

Softwarové komponenty a Internet

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

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

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

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

Webové služby v Java EE (JAX-WS)

Komponentový návrh SW

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Automatizované

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

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Čipové karty Lekařská informatika

Koordinační středisko pro resortní zdravotnické informační systémy

KIV/PIA 2013 Jan Tichava

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

České vysoké učení technické v Praze Fakulta stavební Katedra mapování a kartografie

Tvorba informačních systémů

MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Vývoj Internetových Aplikací

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Metody integrace aplikací

Životní cyklus služby v SOA a popis webových služeb

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

Web Services. Martin Kuba Superpočítačové Centrum Brno, Masarykova Univerzita Web Services, DATAKON

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Webové služby a XML. Miroslav Beneš

Tvorba informačních systémů

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

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

UJO Framework. revoluční architektura beans. verze

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());


Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Popis XML rozhraní Veřejného webu RŽP

The Lightweight Directory Access Protocol version 3 (LDAPv3) is specified by this set of eleven RFCs:

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

Kapitola 5 WCF, webové služby a mezidoménové zásady

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

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

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

Základní zadání IS o ISVS. Sluţba poskytování dat IS o ISVS

RMI - Distribuované objekty v Javě

Zápasíme s REST API. Lukáš Křečan REST API Architect GoodData

Popis XML rozhraní Veřejného webu RŽP

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Java a XML. 10/26/09 1/7 Java a XML

Fakulta elektrotechnická

Verze dokumentu 0.1 duben 2016

ZNAČKOVACÍ JAZYKY A JEJICH VYUŽÍVÁNÍ MARKUP LANGUAGE AND THEIR USE. Zdeněk Havlíček

Odkaz na WSDL Testovací verze:

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

Technická dokumentace B2C WS postcode

Object-relational mapping (JPA, Hibernate)

Distribuované systémy a výpočty

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Univerzita Pardubice Fakulta elektrotechniky a informatiky. Transport konfiguračních dat pomocí webových služeb. Lubomír Mokrý

Podrobný popis GovTalk obálky

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

podnikatele ve formě PDF dokumentu nebo budou jednotlivé datové položky rozvedeny v XML subelementech.

Obsah přednášky. XML DOM SAX XPath XSL transformace 1/46

Analýza dat a modelování. Speciální struktury

RESTful web service v Javě

RMI Remote Method Invocation

Sémantický web 10 let poté

Uspořádání klient-server. Standardy pro Web

Tvorba informačních systémů

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Hitparáda webhackingu nestárnoucí hity. Roman Kümmel

Správnost XML dokumentu

XML a nové trendy v publikování na Webu

Anotace a Hibernate. Aleš Nosek Ondřej Vadinský Daniel Krátký

Práce se soubory opakování

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

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

BI-AWD. Administrace Webového a Databázového serveru Úvod do problematiky HTTP serveru

SCHÉMOVÉ JAZYKY. Přednáška z předmětu KMA/POK. Otakar ČERBA Západočeská univerzita v Plzni

InternetovéTechnologie

Automatizovaná rekonstrukce rozhraní webových služeb

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

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

Transkript:

Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV) Katedra softwarového inženýrství Fakulta informačních technologií ČVUT v Praze Letní semestr 2010/2011, přednáška č. 7 Zdeněk Troníček, 2011

Agenda Java API for XML Binding (JAXB) Webové služby Java API for XML Web Services (JAX-WS) Java API for RESTful Web Services (JAX-RS) 2

XML (opak.) značkovací jazyk stejně jako HTML všechny tagy musí být uzavřeny a nesmí se křížit hodnoty atributů musí být uzavřeny v uvozovkách nebo apostrofech rozlišují se velká a malá písmena přípustné značky definuje např. DTD nebo XML schéma Znakové entity: & &apos; " < > Komentáře: <!-- This is a comment --> 3

Terminologie <message> start tag attribute element <priority type="urgent"/> <to>you@fit.cvut.cz</to> <from>me@fit.cvut.cz</from> empty element subelements <subject>car lights on</subject> </message> end tag 4

Well-formed & Valid XML Well-formed splňuje pravidla XML syntaxe Valid well-formed a podle připojeného DTD nebo XML schématu Parser validating non-validating Document Type Definition (DTD) <!DOCTYPE articles [ <!ELEMENT articles (article*)> <!ELEMENT article (articledata+)> <!ELEMENT articledata (title, author)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> ]> 5

XML schéma umožňuje přesnější definici struktury než DTD obsahuje podporu typů, např. string, date, time, decimal telefonní číslo ve tvaru XX-XXXX <xsd:simpletype name="phone"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{2}-\d{4}"/> </xsd:restriction> </xsd:simpletype> omezení rozsahu na interval <1,100) <xsd:simpletype name="age"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="1"/> <xsd:maxexclusive value="100"/> </xsd:restriction> </xsd:simpletype> 6

Java API for XML Binding (JAXB) XML schema bind JAXB classes follows instances of document unmarshal marshal objects 7

Binding Compiler XML schema binding compiler schema-derived classes and interfaces <complextype name="itemtype"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/>... public class ItemType { public String getname() public void setname(string n)... } </complextype> 8

Mapping @XmlRootElement @XmlType( proporder = {"name", "email", "phones"} ) public class Customer { @XmlElement public String getname() { return name; } } @XmlList public List<String> getphones() { return phones; } 9

Unmarshalling Content Objects XML document JAXB API JAXBContext ctx = JAXBContext.newInstance( "my.package" ); Unmarshaller u = ctx.createunmarshaller(); AddressBookType addrbook = (AddressBookType) u.unmarshal( new File( "addressbook.xml" )); 10

Mashalling Content Objects JAXB API XML document Marshaller m = ctx.createmarshaller(); m.setproperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE ); m.marshal( addrelement, System.out ); 11

Webová služba "A Web Service is a software component that is described via WSDL and is capable of being accessed via standard network protocols such as but not limited to SOAP over HTTP." distributed, loosely coupled, self-contained unit self-describing published, located, and accessed over the Internet language and platform neutral relies on standard Internet and XML-based protocols 12

Srovnání s RMI Remote Method Invocation within enterprise tied to a set of languages tightly-coupled firewall-unfriendly (to some extent) efficient processing Web services between enterprises language independent loosely-coupled firewall-friendly inefficient processing 13

Web Service Elements Client XML-based messages (SOAP) HTTP, HTTPS Service Service registry 14

Životní cyklus Web Service Provider 1 create, assemble, and deploy Service Description 2 publish Web Service Registry Service Registry Entry 6 access service 3 search Client Provider 5 create client 4 retrieve service information Web Service Client 15

UDDI who businessentity tmodel 1..1 0..* what businessservice Service registry public private hybrid 1..1 0..* 0..* bindingtemplate where/how 16

Web Service Description Language <definitions targetnamespace="http://ws/" name="stockservice"> <types>... </types> <message>... </message> <porttype>... </porttype> <binding>... </binding> <port>... </port> <service>... </service> adresa datové typy zprávy operace protokol a formát dat kolekce portů abstract concrete 17 </definitions>

WSDL příklad(1) <xs:complextype name="getquote"> <xs:sequence> <xs:element name="stock" type="xs:string" minoccurs="0"/> </xs:sequence> </xs:complextype> <xs:complextype name="getquoteresponse"> <xs:sequence> <xs:element name="return" type="xs:int"/> </xs:sequence> </xs:complextype> 18

WSDL příklad(2) <message name="getquote"> <part name="parameters" element="tns:getquote"/> </message> <message name="getquoteresponse"> <part name="parameters" element="tns:getquoteresponse"/> </message> <porttype name="stockexchange"> <operation name="getquote"> <input message="tns:getquote"/> <output message="tns:getquoteresponse"/> </operation> </porttype> 19

WSDL příklad(3) <binding name="stockexchangeportbinding" type="tns:stockexchange"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="getquote"> <soap:operation soapaction=""/> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </operation> </binding> <service name="stockexchangeservice"> <port name="stockexchangeport" binding="tns:stockexchangeportbinding"> <soap:address location="http://localhost:1234/stockws/stockexchangeservice"/> </port> </service> 20

SOAP Java objects and primitive values marshalling SOAP message SOAP message Internet unmarshalling Utility wsgen wsimport 21

Java API for XML Web Services (JAX-WS) Client Service @WebService public class StockExchange { @WebMethod Stub Tie public BigDecimal getquote( @WebParam( name = "stock" ) String stock ) { Web Service Runtime Internet and XML-based protocols Web Service Runtime } }... 22

SOAP over HTTP HTTP request HTTP header HTTP body SOAP message SOAP Message SOAP envelope SOAP header header entry header entry XML namespace definitions Data encoding rules Attributes User authentication SOAP body body entry body entry Serialized data 23

Representational State Transfer (REST) architecture style alternativa k SOAPu založeno na pojmu resource každý resource je identifikován jednoznačným URI HTTP slouží jako aplikační protokol HTTP method POST GET PUT DELETE action CREATE RETRIEVE UPDATE DELETE 24

REST: postup 1. identifikujeme zdroje (resources) 2. každému zdroji přiřadíme jednoznačné URI 3. pro každý zdroj zvolíme příkazy (GET, POST, ) 4. vytvoříme XML reprezentaci zdrojů (zdroje propojujeme odkazy) Příklad: knihovna Zdroje: knihy, kategorie, 25

Příklad: knihovna (1) resource URI method representation kniha book/[id] GET PUT DELETE kategorie category/ GET PUT popis knihy popis knihy seznam kategorií seznam kategorií knihy v dané kategorii category/ [kategorie] GET PUT seznam knih seznam knih POST seznam knih 26

Příklad: knihovna (2) Category <category uri=" "> <name>travel</name> <book uri=" "/> <book uri=" "/> </category> Book <book uri=" "> <id>1</id> <title>cesta na sever</title> <author>karel Čapek</author> <pages>292</pages> </book> 27

Java API for RESTful Services (JAX-RS) resource path @Path( "book/{id}" ) public class BookResource { } @GET HTTP method path parameter output @Produces( "application/xml" ) @GET @POST @PUT @DELETE public BookConverter read( @PathParam( "id" ) Long id ) { } 28

Parameters @CookieParam @FormParam @HeaderParam @MatrixParam @PathParam @QueryParam Matrix parameters @PUT input @Consumes( "application/xml" ) public void update( BookConverter data ) { } JAXB class resources/map;lat=50;long=20;scale=32000 29

Otázky & odpovědi tronicek@fit.cvut.cz