250 likes | 425 Views
IDU0075 Veebiteenused. Tarvo Treier Tarvo.treier@gmail.com. Täna kavas. Mõisted : liides, API, WS, SOA, XML, XPath Kordamine Veebiteenuste eelised ja puudused SOA XML JSON XPath JSONPath. Mõned mõisted ja lühendid. Liides ( interface ) API ( application programming interface )
E N D
IDU0075 Veebiteenused TarvoTreier Tarvo.treier@gmail.com
Täna kavas • Mõisted: liides, API, WS, SOA, XML, XPath • Kordamine • Veebiteenuste eelised ja puudused • SOA • XML • JSON • XPath • JSONPath 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) • JSON (JavaScriptObjectNotation) • XPath (XML pathlanguage) • JSONPath(JSON pathlanguage) Tarvo Treier tarvo.treier@gmail.com
Kordamine: Mis on veebiteenus? 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
Mis eeliseid annavad veebiteenused? 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 (missioncritical) 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 keskenduda äriprobleemidele. Tarvo Treier tarvo.treier@gmail.com
XML Tarvo Treier tarvo.treier@gmail.com
XML (eXtended Markup Language) • Root element (document element) • <element_nameattribute_name="attribute_value">Element Content </element_name> • Element content võib olla Child element • XML’i näited http://www.w3schools.com/xml/cd_catalog.xml http://www.w3schools.com/XQuery/books.xml
XML namespaces <root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="http://www.w3schools.com/furniture"> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root> • http://www.w3schools.com/xml/xml_namespaces.asp
XPath Tarvo Treier tarvo.treier@gmail.com
XPATH • XPATH on päringukeel XML dokumentidest informatsiooni otsimisest nagu SQL on päringukeel andmebaasi tabelitest otsimiseks.
XPATH’i näited • Online vahendeid • http://www.bit-101.com/xpath/ • http://www.futurelab.ch/xmlkurs/xpath.en.html • http://www.xmlme.com/XpathTool.aspx • Näite XML • http://www.w3schools.com/xml/cd_catalog.xml • Pärime välja kõik title’d • /CATALOG/CD/TITLE • //TITLE • Pärime välja kõik cd’d, mille hind on suurem kui 10 • /CATALOG/CD[PRICE>10]
JSON (JavaScriptObjectNotation) • Nimi-väärtus paaride kollektsioon {„nimi“:“Juhan“ , „vanus“: 21 } • http://www.w3schools.com/json/
JSONPath • Xpathi analoog JSON-i jaoks • http://goessner.net/articles/JsonPath/ • Online vahendid • http://ashphy.com/JSONPathOnlineEvaluator/ • http://jsonpath.curiousconcept.com/