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
Tarvo Treier [email protected]
KORRALDUS
Kohtumised:
1. 22.09.2012
2. 06.10.2012
3. 01.12.2012
+ eksamisessioon
Tarvo Treier [email protected]
Materjalid– http://www.tud.ttu.ee/im/Tarvo.Treier/idu007
5/2012/kaug/
RaamatJava SOA cookbook
Pdf: http://www.filecrop.com/java-soa-cookbook.html
Tarvo Treier [email protected]
Hindamine eksamil
Teooriatest (40% hindest)
WSDL-i koostamine (20% hindest)
Projekt (40% hindest)
+ Boonuspunktid (kuni 15% hindest)
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!
Tarvo Treier [email protected]
WSDL-i koostamine
Tuleb luua ühe veebiteenuse kirjeldus. Peab saama vähemalt 11 punkti 20-st.
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.
Tarvo Treier [email protected]
Boonuspunktid
Boonuspunkte on võimalik koguda praktikumide ajal iseseisvaid ülesandeid ette näidates.
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
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)
Tarvo Treier [email protected]
Ilmajaama näide
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
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.
Tarvo Treier [email protected]
Mis on veebiteenus?
Tarvo Treier [email protected]
Veebiteenus…
…tähendab programmide omavahelist suhtlemist ja andmevahetust üle hariliku veebi.
Allikas: T.Tammet, Veebiteenuste võlu ja valu
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.
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
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)
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
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
Tarvo Treier [email protected]
Service-oriented architecture (SOA)
Arhitektuur, mis kasutab – teenuseid organisatsiooni integrastiooni
ehitusklotsidena– komponentide taaskasutust läbi nõrga
seotuse.
Tarvo Treier [email protected]
SOA: On arhitektuur
Mingi hulga teenuste tegemine ei anna meile SOA-d.
Arhitektuur peab andma meile juhised teenuste loomiseks.
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.
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.
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.
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.
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.
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.
Tarvo Treier [email protected]
XML
Tarvo Treier [email protected]
XPath
Tarvo Treier [email protected]
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
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/
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
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
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
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
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>
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
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.
Tarvo Treier [email protected]
Muster “Russian Doll”
Üks juurelement on globaalne Kõik tüübid on lokaalsed
Tarvo Treier [email protected]
Muster “Salami Slice”
Kõik elemendid on globaalsed Kõik tüübid on lokaalsed
Tarvo Treier [email protected]
Muster “Venetian Blind”
Üks juurelement on globaalne Kõik tüübid on globaalsed
Tarvo Treier [email protected]
XSLT iseseisvaks uurimiseks
http://www.tud.ttu.ee/material/treier/idu0075/2011/Loengud/L4_xslt_wsdl/L4_XSLT.ppt
http://www.tud.ttu.ee/im/Tarvo.Treier/idu0075/2012/Harjutused/H6_XSLT/h6_xslt.ppt
Recommended