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/