L2_ws_soa_xml_xpath_json_jsonpath
Download
Report
Transcript L2_ws_soa_xml_xpath_json_jsonpath
IDU0075 Veebiteenused
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]
Kordamine: Mis on veebiteenus?
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]
Mis eeliseid annavad
veebiteenused?
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]
... ja puudused
Suurem keerukus
Väiksem jõudlus
...
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]
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.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
[email protected]
XPATH
XPATH on päringukeel XML
dokumentidest informatsiooni otsimisest
nagu SQL on päringukeel andmebaasi
tabelitest otsimiseks.
XPATH’i näited
Online vahendeid
–
–
–
Näite XML
–
http://www.w3schools.com/xml/cd_catalog.xml
Pärime välja kõik title’d
–
–
http://www.bit-101.com/xpath/
http://www.futurelab.ch/xmlkurs/xpath.en.html
http://www.xmlme.com/XpathTool.aspx
/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/