IDU0075 Veebiteenused Tarvo Treier Tarvo.treier@gmai l.com
Mar 15, 2016
Tarvo Treier [email protected]
Täna kavas
Mõisted: liides, API, WS, SOA, XML, XPath Kordamine Veebiteenuste eelised ja puudused SOA XML JSON XPath JSONPath
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) JSON (JavaScript Object Notation) XPath (XML path language) JSONPath (JSON path language)
Tarvo Treier [email protected]
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 [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.
XML (eXtended Markup Language) Root element (document element) <element_name attribute_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.xmlhttp://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
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 (JavaScript Object Notation)
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/