46
IDU0075 Sissejuhatus veebiteenustesse Tarvo Treier Tarvo.treier@gmai l.com

IDU0075 Sissejuhatus veebiteenustesse

Embed Size (px)

DESCRIPTION

IDU0075 Sissejuhatus veebiteenustesse. Tarvo Treier [email protected]. Sissejuhatus veebiteenustesse. Annab üldised teadmised: T eenus-orienteeritud arhitektuuri põhimõt etest V eebiteenustega seotud standardi test ja töövahendi test . P raktilis ed oskus ed : - PowerPoint PPT Presentation

Citation preview

Page 1: IDU0075 Sissejuhatus veebiteenustesse

IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier

[email protected]

Page 2: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Sissejuhatus veebiteenustesse

Annab üldised teadmised:– Teenus-orienteeritud arhitektuuri põhimõtetest– Veebiteenustega seotud standarditest ja töövahenditest.

Praktilised oskused:– veebiteenuste tuvastamine – veebiteenuste kirjeldamine– veebiteenuste realiseerimine– veebiteenuste kasutamine – veebiteenuste testimine

Page 3: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

KORRALDUS

Kohtumised:

1. 22.09.2012

2. 06.10.2012

3. 01.12.2012

+ eksamisessioon

Page 5: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Hindamine eksamil

Teooriatest (40% hindest)

WSDL-i koostamine (20% hindest)

Projekt (40% hindest)

+ Boonuspunktid (kuni 15% hindest)

Page 6: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Teooriatest

Nii teoreetilised kui praktilised ülesanded seni loengutes ja praktikumides käsitletud teemadel.

Valikvastustega Peab saama vähemalt 21 punkti 40-st. Abivahendeid kasutada ei tohi!

Page 7: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

WSDL-i koostamine

Tuleb luua ühe veebiteenuse kirjeldus. Peab saama vähemalt 11 punkti 20-st.

Page 8: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Projekt

Koosneb veebiteenuste projekteerimisest, realiseerimisest, kasutamisest ja testimisest.

Projekti eest peab saama vähemalt 21 punkti 40-st.

Projekt peab olema esitatud kaks päeva enne kaitsmisele tulekut.

Page 9: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Boonuspunktid

Boonuspunkte on võimalik koguda praktikumide ajal iseseisvaid ülesandeid ette näidates.

Page 10: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Eeldused aine edukaks läbimiseks

Aeg– Aeg iseseisvate ülesannetega pusimiseks.

Elementaarne java oskus:– Klass / objekt– IF ja FOR– Muutuja väärtustamine– Meetodi väljakutse

Kasuks tuleb:– Liideste tundmine

Page 11: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Mõned mõisted ja lühendid

Liides (interface) API (application programming interface) WS (web service) SOA (service oriented architecture) XML (extensible markup language) XPath (XML path language)

Page 12: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Ilmajaama näide

Page 13: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Veebiteenuse väljakutse demo

SoapUI (http://www.soapui.org/)

Temperatuuri konverteerimise teenus– http://www.w3schools.com/webservices/temp

convert.asmx?WSDL

Page 14: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

1. boonuspunkt

Otsi töötav tasuta veebiteenus, mida saab SoapUI-ga käivitada.

Boonuspunkti saab kätte teises praktikumis 06.10.2012.

Page 15: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Mis on veebiteenus?

Page 16: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Veebiteenus…

…tähendab programmide omavahelist suhtlemist ja andmevahetust üle hariliku veebi.

Allikas: T.Tammet, Veebiteenuste võlu ja valu

Page 17: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Veebiteenus

Veebiteenus on üle veebi (http) välja kutsutav (käivitatav) meetod (protseduur või funktsioon).

Veebiteenust kutsutakse välja SOAP formaadis sõnumiga ja vastus saadakse samuti SOAP formaadis.

Sarnaselt tavaliste funktsioonidega saab ka veebiteenuse väljakutsel määrata sisendparameetreid.

Page 18: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Veebiteenused

http://www.w3.org/TR/ws-gloss/ A software system designed to support interoperable

machine-to-machine interaction over a network It has an interface described in a machine-

processable format (WSDL) Other systems interact with the Web service in a

manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards

Page 19: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Mõned mõisted ja lühendid

Liides (interface) WS (web service) SOA (service oriented architecture) XML (extensible markup language) XPath (XML path language)

Page 20: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Pilt veebiteenuste abil integreerimisest

Erinevad platvormid ja programmeerimiskeeled

Erinevad kasutajaliidesed ühel kesksüsteemil Erinevad organisatsioonid Varjatud realisatsioon Kliendi ja teenusepakkuja sõltumatu arendus

Page 21: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Veebiteenuste eelised..

Erinevate platvormide rakenduste koostöö võimaldamine

Teksti põhised ja avatud standardid on arendajale arusaadavad

Annavad võimaluse erinevate ettevõtete erinevas kohas asuvaid rakendusi ja teenuseid integreerida üheks uueks teenuseks

Veebiteenuste taaskasutamise võimalus

Page 22: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

... ja puudused

Suurem keerukus Väiksem jõudlus ...

Page 23: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Service-oriented architecture (SOA)

Arhitektuur, mis kasutab – teenuseid organisatsiooni integrastiooni

ehitusklotsidena– komponentide taaskasutust läbi nõrga

seotuse.

Page 24: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

SOA: On arhitektuur

Mingi hulga teenuste tegemine ei anna meile SOA-d.

Arhitektuur peab andma meile juhised teenuste loomiseks.

Page 25: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

SOA: Ehitatakse teenustest

Nagu objekt-orienteeritud maailmas on objekt/klass nii on SOA-s teenus peamine komponent.

Ilma teenusteta pole meil millestki ehitada, midagi jälgida (monitor) ega käivitada.

Page 26: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

SOA: integratsioon

SOA esindab ühte võimalust süsteemide integratsiooniks.

Erinevate süsteemide kokkuühendamise võib lahendada mõne P2P lahendusega palju kiiremini.

Samas võib minna alternatiivide puhul ka palju rohkem aega, kuna süsteemid räägivad erinevat keelt (sõnumite formaat).

SOA kasutab sõnumivahetuses XML-i.

Page 27: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

SOA: nõrk seotus

SOA-s püütakse teha nõrgalt seotud komponente, ehk teenuseid, mis ei tea midagi klientidest, kes neid kasutama hakkavad.

Page 28: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

SOA: taaskasutus

Pole alati hädavajalik. Samas, kui ühegi komponendi taaskasutus

võimalust pole ega näe ka tulemas, siis on tõenäoliselt tegu üle mõeldud lahendusega ja kindlasti mitte SOA-ga.

Page 29: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

SOA müügijutt..

Kattes oma süsteemi selgroo (mission critical) veebiteenustega, mis opereerivad SOA raamistikul, saad sa kergesti– laiendatava,– taaskasutatava ja– asendatava lahenduse.

Page 30: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

..jätkub

SOA annab meile raamistiku, kus mitmed mittefunktsionaalsed nõuded on juba täidetud. – Näiteks turvalisus. – Arendajad keskenduda äriprobleemidele.

Page 31: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

XML

Page 32: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

XPath

Page 33: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Page 34: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Veebiteenustega seotud standardid

IP

Data

Server KlientHTTP/JMS/SMTP/...

SOAP

Envelope

Header (metainfo)

Body (info)

WSDL

Spec Types Messages PortTypes

Access Binding Service

XSD

ElementsSimpleTypesComplexTypes

Page 35: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

XSD - XML Schema Definition

XSD kirjeldab XML dokumendi struktuuri– Elemendid (Elements)– Atribuudid (Attributes)– Nende tüübid

Tavatüübid (Simple types) Komplekstüübid (Complex types) Piirangud (Restrictions)

XSD õppetund w3Schools lehel– http://w3schools.com/schema/

Page 36: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

XSD võrdlused andmebaasi tabelite ja java klassidega

XSD – Document structure

Table structure Class definition

XML – Document instance

Record in a Table Object instance

Page 37: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

XSD määrab..

Millised elemendid ja atribuudid tohivad olla dokumendis

Millised elemendid on alamelemendid Alamelementide järjestuse ja arvu Kas element on tühi või sisaldab teksti Andmetüübid elementide ja atribuutide jaoks Vaikimisi ja fikseeritud väärtused elementidele ja

atribuutidele Piirangud

Page 38: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

NB! Nimeruumid

Nimeruum (namespace) on lihtsalt loogiline (elementide ja tüüpide) nimede grupeering

Nimeruumis peavad nimed olema unikaalsed Ühes XSD failis defineeritakse üks nimeruum

Arst:KandPõlv

KlappPump

Torumees:Põlv

KlappPumpToru

Page 39: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Näide

<?xml version="1.0" ?> <Employees xmlns="http://www.abccorp.com"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.abccorp.com/employee.xsd"> <Employee>

<SSN>737333333</SSN> <Name>ED HARRIS</Name> <DateOfBirth>1960-01-01</DateOfBirth>

<EmployeeType>FULLTIME</EmployeeType> <Salary>4000</Salary> </Employee>

</Employees> Allikas: http://www.15seconds.com/issue/031209.htm

Page 40: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Näide jätkub (employee.xsd)

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="Employee"

minOccurs="0" maxOccurs="unbounded">

<xsd:complexType> <xsd:sequence>

<xsd:element name="SSN" type ="xsd:string"/> <xsd:element name="Name"

type="xsd:string"/> <xsd:element name="DateOfBirth" type="xsd:date"/>

<xsd:element name="EmployeeType"type="xsd:string"/>

<xsd:element name="Salary" type="xsd:long"/> </xsd:sequence> </xsd:complexType>

</xsd:element></xsd:schema>

Page 41: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

XML Schema patterns

Hewitt, E., Java SOA Cookbook, O’Reilly Media, 2009

http://books.google.com/books?id=W2XrQRMIEd4C&lpg=PP1&pg=PP1#v=onepage&q&f=false – Lk 41; p2.1

Page 42: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Järgnevad mustrid erinevad ühe asja poolest

Nende elemendid ja tüübid on kas lokaalselt või globaalselt defineeritud.

Globaalne element või tüüp on schema alamelement.

Lokaalne element või tüüp on defineeritud mõne teise elemendi või tüübi sees.

Lokaalseid elemente ei saa taaskasutada.

Page 43: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Muster “Russian Doll”

Üks juurelement on globaalne Kõik tüübid on lokaalsed

Page 44: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Muster “Salami Slice”

Kõik elemendid on globaalsed Kõik tüübid on lokaalsed

Page 45: IDU0075 Sissejuhatus veebiteenustesse

Tarvo Treier [email protected]

Muster “Venetian Blind”

Üks juurelement on globaalne Kõik tüübid on globaalsed