430 likes | 679 Views
IDU0075 Sissejuhatus veebiteenustesse. Tarvo Treier Tarvo.treier@gmail.com. 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 :
E N D
IDU0075 Sissejuhatus veebiteenustesse TarvoTreier Tarvo.treier@gmail.com
Sissejuhatus veebiteenustesse • Annab üldised teadmised: • Teenus-orienteeritudarhitektuuripõhimõtetest • Veebiteenustegaseotudstandarditestjatöövahenditest. • Praktilisedoskused: • veebiteenustetuvastamine • veebiteenuste kirjeldamine • veebiteenusterealiseerimine • veebiteenustekasutamine • veebiteenustetestimine Tarvo Treier tarvo.treier@gmail.com
KORRALDUS Kohtumised: • R 06.09.2013 • L 05.10.2013 • L 16.11.2013 • L 14.12.2013 + eksamisessioon Tarvo Treier tarvo.treier@gmail.com
Materjalid • http://www.tud.ttu.ee/im/Tarvo.Treier/idu0075/2013/kaug/ • Raamat Java SOA cookbook Pdf: http://www.filecrop.com/java-soa-cookbook.html Tarvo Treier tarvo.treier@gmail.com
Hindamine eksamil • Teooriatest (40% hindest) • WSDL-i koostamine (20% hindest) • Projekt (40% hindest) + Boonuspunktid (kuni 15% hindest) Tarvo Treier tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
WSDL-i koostamine • Tuleb luua ühe veebiteenuse kirjeldus. • Peab saama vähemalt 11 punkti 20-st. Tarvo Treier tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
Boonuspunktid • Boonuspunkte on võimalik koguda praktikumide ajal iseseisvaid ülesandeid ette näidates. Tarvo Treier tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
Mõned mõisted ja lühendid • Liides (interface) • API (application programming interface) • WS (webservice) • SOA (serviceorientedarchitecture) • XML (extensiblemarkuplanguage) • XSD (XML SchemaDefinition) • XPath (XML pathlanguage) Tarvo Treier tarvo.treier@gmail.com
Veebiteenuse väljakutse demo • SoapUI (http://www.soapui.org/) • Temperatuuri konverteerimise teenus • http://www.w3schools.com/webservices/tempconvert.asmx?WSDL Tarvo Treier tarvo.treier@gmail.com
1. boonuspunkt • Otsi töötav tasuta veebiteenus, mida saab SoapUI-ga käivitada. • Boonuspunkti saab kätte teises praktikumis 05.10.2013. Tarvo Treier tarvo.treier@gmail.com
Mis on veebiteenus? Tarvo Treier tarvo.treier@gmail.com
Veebiteenus… …tähendab programmide omavahelist suhtlemist ja andmevahetust üle hariliku veebi. Allikas: T.Tammet, Veebiteenuste võlu ja valu Tarvo Treier tarvo.treier@gmail.com
Veebiteenus • Veebiteenus on üle veebi (http) välja kutsutav (käivitatav) meetod (protseduur või funktsioon). • Veebiteenust kutsutakse välja mingis kindlas formaadis sõnumiga (nt. SOAP) ja vastus saadakse samuti selles formaadis. • Sarnaselt tavaliste funktsioonidega saab ka veebiteenuse väljakutsel määrata sisendparameetreid. Tarvo Treier tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
... ja puudused • Suurem keerukus • Väiksem jõudlus • ... Tarvo Treier tarvo.treier@gmail.com
Service-oriented architecture (SOA) • Arhitektuur, mis kasutab • teenuseid organisatsiooni integrastiooni ehitusklotsidena • komponentide taaskasutust läbi nõrga seotuse. Tarvo Treier tarvo.treier@gmail.com
SOA: On arhitektuur • Mingi hulga teenuste tegemine ei anna meile SOA-d. • Arhitektuur peab andma meile juhised teenuste loomiseks. Tarvo Treier tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
..jätkub • SOA annab meile raamistiku, kus mitmed mittefunktsionaalsed nõuded on juba täidetud. • Näiteks turvalisus. • Arendajad saavad keskenduda äriprobleemidele. Tarvo Treier tarvo.treier@gmail.com
XML Tarvo Treier tarvo.treier@gmail.com
XPath Tarvo Treier tarvo.treier@gmail.com
Veebiteenustega seotud standardid Tarvo Treier tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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: Kand Põlv Klapp Pump Torumees: Põlv Klapp Pump Toru Tarvo Treier tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
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 tarvo.treier@gmail.com
Muster “Russian Doll” • Üks juurelement on globaalne • Kõik tüübid on lokaalsed Tarvo Treier tarvo.treier@gmail.com
Muster “Salami Slice” • Kõik elemendid on globaalsed • Kõik tüübid on lokaalsed Tarvo Treier tarvo.treier@gmail.com
Muster “Venetian Blind” • Üks juurelement on globaalne • Kõik tüübid on globaalsed Tarvo Treier tarvo.treier@gmail.com
XSLT iseseisvaks uurimiseks • http://www.tud.ttu.ee/im/Tarvo.Treier/idu0075/2012/Loengud/L3_xsd_xslt/L3_XSLT.pptx • http://www.tud.ttu.ee/im/Tarvo.Treier/idu0075/2012/Harjutused/H6_XSLT/h6_xslt.ppt Tarvo Treier tarvo.treier@gmail.com