Webové služby v Jave: Rozdiel medzi revíziami
d (Zamyká „Webové služby v Jave“ ([edit=sysop] (na neurčito) [move=sysop] (na neurčito)) [kaskáda]) |
|||
(3 medziľahlé úpravy od 2 ďalších používateľov nie sú zobrazené) | |||
Riadok 5: | Riadok 5: | ||
|Martin Starosta|Ing. Juraj Ďuďák|2008/2009|Bakalárska práca|Mechatronika | |Martin Starosta|Ing. Juraj Ďuďák|2008/2009|Bakalárska práca|Mechatronika | ||
}} | }} | ||
− | {{Praca_uvod|1|Webové služby v Jave | + | {{Praca_uvod|1|Webové služby v Jave|Webové služby|Návrh webovej služby rozvrhu fakulty mechatroniky|Implementácia webových služieb v Jave|Klient webovej služby rozvrhu FM||||||||||}} |
+ | __TOC__ | ||
{{abstrakt | {{abstrakt | ||
|Webové služby umožňujú vytvárať zautomatizovanú sieť aplikácii na Internete. Cieľom práce je zoznámiť čitateľa s princípom webových služieb, s ich využitím na rôznych softvérových a hardvérových platformách. V práci je ukázaný konkrétny návrh webovej služby a to služby rozvrhu fakulty mechatroniky v programovacom jazyku Java. Ďalej je v práci napísaný a vysvetlený kód služby, ako aj jej spustenie na aplikačnom servery. Na konci práce je návrh a popis klienta webovej služby napísaného v jazyku PHP. | |Webové služby umožňujú vytvárať zautomatizovanú sieť aplikácii na Internete. Cieľom práce je zoznámiť čitateľa s princípom webových služieb, s ich využitím na rôznych softvérových a hardvérových platformách. V práci je ukázaný konkrétny návrh webovej služby a to služby rozvrhu fakulty mechatroniky v programovacom jazyku Java. Ďalej je v práci napísaný a vysvetlený kód služby, ako aj jej spustenie na aplikačnom servery. Na konci práce je návrh a popis klienta webovej služby napísaného v jazyku PHP. | ||
Riadok 21: | Riadok 22: | ||
Úlohou tejto práce je vytvoriť webovú službu rozvrhu fakulty mechatroniky. V prvej kapitole si povieme, čo je to webová služba a ako sa tvorí. V druhej kapitole si popíšeme návrh a realizáciu služby, jej triedy a metódy. V tretej kapitole si popíšeme zdrojový kód klienta. | Úlohou tejto práce je vytvoriť webovú službu rozvrhu fakulty mechatroniky. V prvej kapitole si povieme, čo je to webová služba a ako sa tvorí. V druhej kapitole si popíšeme návrh a realizáciu služby, jej triedy a metódy. V tretej kapitole si popíšeme zdrojový kód klienta. | ||
+ | |||
+ | =Webové služby= | ||
+ | ==Definícia webovej služby== | ||
+ | ''Webová služba je softwarová aplikácia definovaná pomocou URI, ktorej interfejsy a väzby je možné definovať, opísať a vyhľadať ako artefakty XML. Podporuje priamu interakciu s inými softwarovými prostredníctvom správ zapísaných v jazyku XML a prenášanými protokolmi internetu.''<ref>Buranský, I.: XML a webové služby, Microsoft 2002</ref> | ||
+ | |||
+ | Webovými službami rozumieme akúkoľvek službu, ktorá je umiestnená niekde na internete a ku ktorej môžeme pristupovať pomocou štandardných webových protokolov ako sú napríklad HTTP alebo SMTP. Komunikácia webových služieb prebieha pomocou štandardizovaného jazyka XML, čo nám umožňuje nezávislosť na platforme i na programovacom jazyku. | ||
+ | |||
+ | Webové služby majú tieto charakteristické znaky: | ||
+ | *založené na XML – umožňuje webovým službám byť nezávislé od operačného systému, od väzieb na sieťové protokoly | ||
+ | *voľná väzba – klient nie je viazaný so službou, takže pri zmene kódu na strane servera nie je nutná zmena na strane klienta, čo umožňuje väčšiu možnosť managementu softwaru | ||
+ | *„coarse-grained“ (granularita) – dáta sa vymieňajú občas, po prebehnutí väčšieho množstva výpočtov | ||
+ | *synchrónnosť a asynchrónnosť – pri synchrónnych službách klient dostane odpoveď až po vykonaní operácie. Pri asynchrónnych môže klient zadávať funkcie a postupne bude dostávať odpovede | ||
+ | *podpora vzdialeného volania procedúr ( Remote Procedure Calls – RPC) – webové služby umožňujú klientovi volať funkcie a metódy na vzdialených objektoch pomocou XML protokolu. | ||
+ | *podpora výmeny dokumentov – umožňuje výmenu kompletných dokumentov, od adries až po kompletné knihy | ||
+ | *opísateľnosť – webová služba by mala byť aspoň minimálne opísaná v čitateľnej forme, aby ju klient mohol ľahko implementovať. Ak služba používa SOAP, je potrebné aby pomocou XML boli popísane verejné funkcie, argumenty a návratové hodnoty | ||
+ | *objavitelnosť- webová služba by sa mala dať jednoducho nájsť vo verejnom registri | ||
+ | |||
+ | ==Použitie webových služieb== | ||
+ | Je snaha vytvoriť automatizovanú sieť služieb, ktoré by medzi sebou komunikovali bez interakcie s užívateľom a tak užívateľa odbremenili od opakujúcich sa úkonov. | ||
+ | |||
+ | Máme spoločnosť STROJ s.r.o., ktorá chce zakúpiť software, ktorý zautomatizuje nákup súčiastok. Priebeh operácie by vypadal nasledovne: | ||
+ | #skladová aplikácia sa pripojí na centralizovaný register webových služieb a vyhľadá si službu, ktorá poskytuje objednávkový systém súčiastok. Register vráti informáciu o webovej službe spoločnosti Súčiastky a.s. a ukazateľ na popis tejto služby. | ||
+ | #skladová aplikácia sa spojí s objednávkovou službou Súčiastky a.s. a obdrží popis služby | ||
+ | #popis služby obsahuje všetky potrebné detaily na pripojenie sa so službou. Potom nie je pre skladovú aplikáciu problém automaticky objednávať potrebné súčiastky | ||
+ | |||
+ | Novým trendom v informačných technológiách je vývoj inteligentného agenta. Je snaha vytvoriť software, ktorý by predstavoval automatizovaného elektronického asistenta, ktorý by odbremenil užívateľa od opakujúcich sa operácii, pomáhal by pri plnení úloh a učil sa od užívateľa. Inteligentných agentov môžeme rozdeliť do niekoľkých skupín: | ||
+ | *'''trhový agent''' – tento agent prehľadáva sieť www a získava informácie o tovare a službách. Dokáže zistiť najnižšiu cenu, dostupnosť a objednať Vám zvolený tovar až k Vám domov. Ukážkou môže byť Amazon.com | ||
+ | *'''osobný agent''' – tento agent sa chová podľa vášho chovania. Môže čítať emaily, vyznačovať vám dôležité informácie na www stránkach, zisťovať informácie o zvolenom objekte alebo udalosti, hrať hru ako váš protihráč alebo vypĺňať formuláre za vás | ||
+ | *'''monitorovací a dozorný agent''' – tiež známy ako „predvídavý“ agent. Slúži na pozorovanie a dohľad nad vecami. Napríklad NASA má takéhoto agenta, ktorý sleduje stavy skladov, dopĺňa chýbajúce súčiastky a dozerá na dátumy spotreby jedla v sklade. Takýto agent môže byť pripojený aj na komplexnú sieť počítačov a sledovať nastavenia jednotlivých počítačov v sieti | ||
+ | *'''informačný agent''' – (data mining) tento agent slúži na to, že prezerá rôzne zdroje informácii a hľadá v nich zvolenú informáciu. A podľa zvolenej informácie dokáže vykonať aj určitú akciu | ||
+ | |||
+ | Webové služby sú ideálnym nástrojom na tvorbu takýchto inteligentných agentov, ktorý sú teraz v popredí výskumu informačných technológii. Aj z tohto dôvodu získavajú webové služby veľkú popularitu a svoje miesto v informačných technológiách. | ||
+ | |||
+ | V dnešných dňoch je skloňovaným pojmom v informačno-komunikačných technológiách SOA. SOA je architektonický štýl navrhnutý na dosiahnutie voľného prepojenia heterogénnych softvérových komponentov. Táto architektúra má niekoľko vrstiev, z ktorých jednu tvoria webové služby. Webové služby vytvárajú úžitkové metódy, operácie s entitami a vyhľadávacie metódy v systémových dátach. Webové služby umožňujú zabaliť logiku, integráciu kódu treťostranných nástrojov a implementáciu z aplikačnej vrstvy. | ||
+ | |||
+ | ==Technológie používané webovými službami== | ||
+ | Existuje množstvo technológii, ktoré využívajú webové služby a ešte mnoho ich bude vyvinutých. Vízia webových služieb je celosvetová integrácia, ktorá však nie je možná, pokiaľ všetok software od rôznych firiem nebude podporovať základné technológie webových služieb. Medzi primárne technológie webových služieb patria: | ||
+ | *'''Simple Object Access Protocol (SOAP)''' – zabezpečuje základnú obaľovaciu štruktúru pre transportovanie XML dokumentov cez štandardné sieťové protokoly ako sú HTTP, SMTP a FTP. Poskytuje jednoduchú štruktúru pre volanie RPC, čo umožňuje .NET klientovi vyvolať EJB´s (Enterprise Java Beans) a opačne Java klientovi vyvolať .NET Component pomocou SOAP | ||
+ | *'''XML – RPC''' – je to jednoduchý protokol, ktorý využíva XML na volanie vzdialených procedúr . Požiadavka je zakódovaná do XML a poslaná pomocou HTTP POST. | ||
+ | *'''Web Services Descripting Language(WSDL)''' – WSDL je XML technológia, ktorá popisuje rozhranie webových služieb štandardizovanou cestou. Popisuje vstupné a výstupné parametre služby, štruktúru funkcii a protokoly, pomocou ktorých služba komunikuje. Po prečítaní WSDL klient rozumie, ako služba funguje | ||
+ | *'''Universal Description, Discovery, and Integration (UDDI)''' - poskytuje celosvetový register (XML) webových služieb. V registri si môžeme nájsť webovú službu pomocou mena, kategórie alebo identifikátora. Potom stačí len implementovať požadovanú službu do vlastného kódu aplikácie. | ||
+ | |||
+ | ==Tvorba klienta webovej služby== | ||
+ | |||
+ | #Identifikovať a nájsť požadovanú webovú službu, najlepšie pomocou UDDI | ||
+ | #Nájsť popis služby. Pre SOAP je to WSDL dokument a pre XML-RPC treba nájsť zrozumiteľný popis pre integráciu služby. | ||
+ | #Napísať kód klientskej aplikácie. Pre WSDL je možnosť použiť automatického generovania kódu pomocou špecializovaných nástrojov. | ||
+ | #Spustiť aplikáciu, ktorá vyvolá webovú službu | ||
+ | [[Súbor:klient.png|center|frame|Obr. 3 - Postup tvorby klienta]] | ||
+ | |||
+ | ==Tvorba webovej služby (servera)== | ||
+ | #Napísať zdrojový kód aplikácie | ||
+ | #Obaliť zdrojový kód do SOAP alebo XML-RPC obaľovača (w rapper) | ||
+ | #Popísať službu. Pre SOAP službu treba napísať WSDL dokument | ||
+ | #Spojazdniť webovú službu. Záleží od vašich požiadaviek, či vytvoríte samostatný server alebo umiestnite na webový server | ||
+ | #Zverejnenie webovej služby. Zaregistrovanie do UDDI | ||
+ | [[Súbor:služba.png|center|frame|Obr. 4 - Postup tvorby webovej služby]] | ||
+ | |||
+ | ==Popísanie webovej služby== | ||
+ | Pri komunikácii webových služieb (web-services) je potrebné popísať komunikáciu týchto služieb štandardizovanou formou a na to slúži WSDL. WSDL popisuje, čo služba robí, ako vyvolať jej operácie a kde sa nachádza. WSDL definuje pomocou XML jazyka webové služby ako komunikáciu dvoch koncových bodov (endpoints) schopných výmeny správ. WSDL poskytuje dokumentáciu pre distribuované systémy a podáva návod pre automatizáciu detailov vyskytujúcich sa pri komunikácii aplikácii. Pre vývojárov client-side aplikácii WSDL popisuje všetky potrebné informácie, ktoré služba vyžaduje. | ||
+ | |||
+ | Podrobnejšie informácie o WSDL dokumente a jeho elementoch nájdete v dokumente WSDL-Web Services Description Language.pdf, ktorý sa nachádza na priloženom CD v adresári Dokumenty. | ||
+ | |||
+ | ==Java a webové služby== | ||
+ | Firma Sun Microsystems vyvinula v roku 1995 objektovo orientovaný programovací jazyk Java. Java sa syntakticky najviac približuje jazyku C++. Java sa radí medzi hybridné jazyky. To znamená, že je súčasne prekladaná i interpretovaná. Program sa najprv preloží do špeciálneho tvaru nazývaného bajtkód (bytecode), ktorý potom analyzuje a interpretuje špeciálny program nazývaný virtuálny stroj Javy (Java Virtual Machine – JVM). Java patrí medzi najbezpečnejšie jazyky, preto je vo veľkej forme využívaná pre internetové aplikácie. | ||
+ | To ju predurčuje pre tvorbu webových služieb. | ||
+ | |||
+ | Keďže Java je moderný jazyk preto sa stále dynamicky rozvíja. Stále sa vyvíjajú nové balíky, ktoré uľahčujú vytváranie webových služieb. Príkladom je balík javax.jws, ktorý umožňuje programátorovi služby sústrediť čas len na vývoj funkčného kódu služby a nemusí sa zaoberať o spracovávanie SOAP správy, vytváranie spojenia s klientom a iných úkonov súvisiacich s webovými službami. Viac informácii o SOAP sa nachádza v dokumente SOAP.pdf na priloženom CD v adresári Dokumenty. | ||
+ | |||
+ | ==Príklady existujúcich webových služieb== | ||
+ | V dnešnej dobe sa na internete dá nájsť veľké množstvo webových služieb a medzi ne patria: | ||
+ | *National Weather Service - NORA (National Oceanic and Atmospheric Administration´s) vyvinula webovú službu, ktorá poskytuje svetové počasie. Popis služby sa nachádza na:http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl | ||
+ | *Vyhľadávacie služby napríklad Google Search a Yahoo Search, ktorú použijeme ako príklad v našej službe | ||
+ | *Lokalizačné služby napríklad Google Map alebo Microsoft MapPoint Web Service vyvinutá spoločnosťou Microsoft, ktorá umožňuje pomocou súradníc nájsť určitý bod v mapách alebo naplánovať trasu, informácie sa nachádzajú na stránke: http://www.microsoft.com/mappoint/products/webservice/default.mspx | ||
+ | *Lighting Calculation Service - webová služba vypočíta silu osvetlenia v miestnosti. Jej WSDL popis nájdeme na URL: http://www.fold1.com/SOAP/foldcalc.php?wsdl | ||
+ | *RC Filter – webová služba simuluje jednoduchý RC filter. Poskytovateľ je Vanguard Software. WSDL sa nachádza na:http://wiki.vanguardsw.com/bin/ws.dsb?wsdl/Engineering/Electrical/RC%20Filter | ||
+ | |||
+ | '''Odkazy''' | ||
+ | <references/> |
Aktuálna revízia z 18:35, 28. február 2010
![]() |
Trenčianska Univerzita Alexandra Dubčeka v Trenčíne
Fakulta Mechatroniky |
![]() |
Webové služby v Jave
Bakalárska práca |
Autor: | Martin Starosta |
Pedagogický vedúci: | Ing. Juraj Ďuďák |
Študijný odbor: | Mechatronika
|
Akademický rok | 2008/2009
|
1. | Webové služby |
2. | Návrh webovej služby rozvrhu fakulty mechatroniky |
3. | Implementácia webových služieb v Jave |
4. | Klient webovej služby rozvrhu FM
|
Obsah
Abstrakt
Webové služby umožňujú vytvárať zautomatizovanú sieť aplikácii na Internete. Cieľom práce je zoznámiť čitateľa s princípom webových služieb, s ich využitím na rôznych softvérových a hardvérových platformách. V práci je ukázaný konkrétny návrh webovej služby a to služby rozvrhu fakulty mechatroniky v programovacom jazyku Java. Ďalej je v práci napísaný a vysvetlený kód služby, ako aj jej spustenie na aplikačnom servery. Na konci práce je návrh a popis klienta webovej služby napísaného v jazyku PHP. |
Abstract
Web services allow creating automated network of applications on Internet. Objective of this thesis is to familiarize reader with principle of Web services and their use on different software and hardware platforms. In the thesis concrete design of Web service – a schedule of faculty of mechatronics in Java programming language is shown. Then code of service, as well as the launch of service on application server is written and illustrated in this thesis. At the end of the thesis design and illustration of Web service client, written in PHP programming language. |
Úvod
Dnešným hitom číslo jedna v informačných a komunikačných technológiách je servisne orientovaná architektúra (SOA), kde servisy znamenajú služby, ktoré daný systém publikuje, aby ich iné systémy mohli využívať. Preto sa čoraz častejšie skloňuje pojem webové služby.
Vývoj webových služieb môžeme rozdeliť do troch fáz. V prvej fáze bol zadefinovaný model klient/server. Kde klient mohol volať na jednom serveri pomocou vzdialených volaní (RPC). Potom prišla druhá fáza vývoja , ktorá bola založená na webe. Klienti mohli so servermi komunikovať cez preddefinované prostredie, za podmienky, že mali spoločný objektový model a komunikačný protokol. Tretia fáza predstavuje model webových služieb, kde sú dynamicky spojení poskytovatelia aj užívatelia služieb.
Rozdiel medzi webovou aplikáciou a webovou službou je ten, že webová služba slúži na komunikáciu stroja s iným strojom, pričom webová aplikácia slúži na komunikáciu medzi užívateľom a strojom. Aby mohli stroje medzi sebou komunikovať, musia komunikovať spolu rovnakým jazykom, ktorý predstavuje jazyk XML. Samotný jazyk však nestačí, je nutné definovať aj spôsob komunikácie. Preto webové služby dokážu posielať a prijímať XML správy pomocou štandardných internetových protokolov ako sú HTTP, FTP, SMTP alebo BEEP.
Úlohou tejto práce je vytvoriť webovú službu rozvrhu fakulty mechatroniky. V prvej kapitole si povieme, čo je to webová služba a ako sa tvorí. V druhej kapitole si popíšeme návrh a realizáciu služby, jej triedy a metódy. V tretej kapitole si popíšeme zdrojový kód klienta.
Webové služby
Definícia webovej služby
Webová služba je softwarová aplikácia definovaná pomocou URI, ktorej interfejsy a väzby je možné definovať, opísať a vyhľadať ako artefakty XML. Podporuje priamu interakciu s inými softwarovými prostredníctvom správ zapísaných v jazyku XML a prenášanými protokolmi internetu.[1]
Webovými službami rozumieme akúkoľvek službu, ktorá je umiestnená niekde na internete a ku ktorej môžeme pristupovať pomocou štandardných webových protokolov ako sú napríklad HTTP alebo SMTP. Komunikácia webových služieb prebieha pomocou štandardizovaného jazyka XML, čo nám umožňuje nezávislosť na platforme i na programovacom jazyku.
Webové služby majú tieto charakteristické znaky:
- založené na XML – umožňuje webovým službám byť nezávislé od operačného systému, od väzieb na sieťové protokoly
- voľná väzba – klient nie je viazaný so službou, takže pri zmene kódu na strane servera nie je nutná zmena na strane klienta, čo umožňuje väčšiu možnosť managementu softwaru
- „coarse-grained“ (granularita) – dáta sa vymieňajú občas, po prebehnutí väčšieho množstva výpočtov
- synchrónnosť a asynchrónnosť – pri synchrónnych službách klient dostane odpoveď až po vykonaní operácie. Pri asynchrónnych môže klient zadávať funkcie a postupne bude dostávať odpovede
- podpora vzdialeného volania procedúr ( Remote Procedure Calls – RPC) – webové služby umožňujú klientovi volať funkcie a metódy na vzdialených objektoch pomocou XML protokolu.
- podpora výmeny dokumentov – umožňuje výmenu kompletných dokumentov, od adries až po kompletné knihy
- opísateľnosť – webová služba by mala byť aspoň minimálne opísaná v čitateľnej forme, aby ju klient mohol ľahko implementovať. Ak služba používa SOAP, je potrebné aby pomocou XML boli popísane verejné funkcie, argumenty a návratové hodnoty
- objavitelnosť- webová služba by sa mala dať jednoducho nájsť vo verejnom registri
Použitie webových služieb
Je snaha vytvoriť automatizovanú sieť služieb, ktoré by medzi sebou komunikovali bez interakcie s užívateľom a tak užívateľa odbremenili od opakujúcich sa úkonov.
Máme spoločnosť STROJ s.r.o., ktorá chce zakúpiť software, ktorý zautomatizuje nákup súčiastok. Priebeh operácie by vypadal nasledovne:
- skladová aplikácia sa pripojí na centralizovaný register webových služieb a vyhľadá si službu, ktorá poskytuje objednávkový systém súčiastok. Register vráti informáciu o webovej službe spoločnosti Súčiastky a.s. a ukazateľ na popis tejto služby.
- skladová aplikácia sa spojí s objednávkovou službou Súčiastky a.s. a obdrží popis služby
- popis služby obsahuje všetky potrebné detaily na pripojenie sa so službou. Potom nie je pre skladovú aplikáciu problém automaticky objednávať potrebné súčiastky
Novým trendom v informačných technológiách je vývoj inteligentného agenta. Je snaha vytvoriť software, ktorý by predstavoval automatizovaného elektronického asistenta, ktorý by odbremenil užívateľa od opakujúcich sa operácii, pomáhal by pri plnení úloh a učil sa od užívateľa. Inteligentných agentov môžeme rozdeliť do niekoľkých skupín:
- trhový agent – tento agent prehľadáva sieť www a získava informácie o tovare a službách. Dokáže zistiť najnižšiu cenu, dostupnosť a objednať Vám zvolený tovar až k Vám domov. Ukážkou môže byť Amazon.com
- osobný agent – tento agent sa chová podľa vášho chovania. Môže čítať emaily, vyznačovať vám dôležité informácie na www stránkach, zisťovať informácie o zvolenom objekte alebo udalosti, hrať hru ako váš protihráč alebo vypĺňať formuláre za vás
- monitorovací a dozorný agent – tiež známy ako „predvídavý“ agent. Slúži na pozorovanie a dohľad nad vecami. Napríklad NASA má takéhoto agenta, ktorý sleduje stavy skladov, dopĺňa chýbajúce súčiastky a dozerá na dátumy spotreby jedla v sklade. Takýto agent môže byť pripojený aj na komplexnú sieť počítačov a sledovať nastavenia jednotlivých počítačov v sieti
- informačný agent – (data mining) tento agent slúži na to, že prezerá rôzne zdroje informácii a hľadá v nich zvolenú informáciu. A podľa zvolenej informácie dokáže vykonať aj určitú akciu
Webové služby sú ideálnym nástrojom na tvorbu takýchto inteligentných agentov, ktorý sú teraz v popredí výskumu informačných technológii. Aj z tohto dôvodu získavajú webové služby veľkú popularitu a svoje miesto v informačných technológiách.
V dnešných dňoch je skloňovaným pojmom v informačno-komunikačných technológiách SOA. SOA je architektonický štýl navrhnutý na dosiahnutie voľného prepojenia heterogénnych softvérových komponentov. Táto architektúra má niekoľko vrstiev, z ktorých jednu tvoria webové služby. Webové služby vytvárajú úžitkové metódy, operácie s entitami a vyhľadávacie metódy v systémových dátach. Webové služby umožňujú zabaliť logiku, integráciu kódu treťostranných nástrojov a implementáciu z aplikačnej vrstvy.
Technológie používané webovými službami
Existuje množstvo technológii, ktoré využívajú webové služby a ešte mnoho ich bude vyvinutých. Vízia webových služieb je celosvetová integrácia, ktorá však nie je možná, pokiaľ všetok software od rôznych firiem nebude podporovať základné technológie webových služieb. Medzi primárne technológie webových služieb patria:
- Simple Object Access Protocol (SOAP) – zabezpečuje základnú obaľovaciu štruktúru pre transportovanie XML dokumentov cez štandardné sieťové protokoly ako sú HTTP, SMTP a FTP. Poskytuje jednoduchú štruktúru pre volanie RPC, čo umožňuje .NET klientovi vyvolať EJB´s (Enterprise Java Beans) a opačne Java klientovi vyvolať .NET Component pomocou SOAP
- XML – RPC – je to jednoduchý protokol, ktorý využíva XML na volanie vzdialených procedúr . Požiadavka je zakódovaná do XML a poslaná pomocou HTTP POST.
- Web Services Descripting Language(WSDL) – WSDL je XML technológia, ktorá popisuje rozhranie webových služieb štandardizovanou cestou. Popisuje vstupné a výstupné parametre služby, štruktúru funkcii a protokoly, pomocou ktorých služba komunikuje. Po prečítaní WSDL klient rozumie, ako služba funguje
- Universal Description, Discovery, and Integration (UDDI) - poskytuje celosvetový register (XML) webových služieb. V registri si môžeme nájsť webovú službu pomocou mena, kategórie alebo identifikátora. Potom stačí len implementovať požadovanú službu do vlastného kódu aplikácie.
Tvorba klienta webovej služby
- Identifikovať a nájsť požadovanú webovú službu, najlepšie pomocou UDDI
- Nájsť popis služby. Pre SOAP je to WSDL dokument a pre XML-RPC treba nájsť zrozumiteľný popis pre integráciu služby.
- Napísať kód klientskej aplikácie. Pre WSDL je možnosť použiť automatického generovania kódu pomocou špecializovaných nástrojov.
- Spustiť aplikáciu, ktorá vyvolá webovú službu
Tvorba webovej služby (servera)
- Napísať zdrojový kód aplikácie
- Obaliť zdrojový kód do SOAP alebo XML-RPC obaľovača (w rapper)
- Popísať službu. Pre SOAP službu treba napísať WSDL dokument
- Spojazdniť webovú službu. Záleží od vašich požiadaviek, či vytvoríte samostatný server alebo umiestnite na webový server
- Zverejnenie webovej služby. Zaregistrovanie do UDDI
Popísanie webovej služby
Pri komunikácii webových služieb (web-services) je potrebné popísať komunikáciu týchto služieb štandardizovanou formou a na to slúži WSDL. WSDL popisuje, čo služba robí, ako vyvolať jej operácie a kde sa nachádza. WSDL definuje pomocou XML jazyka webové služby ako komunikáciu dvoch koncových bodov (endpoints) schopných výmeny správ. WSDL poskytuje dokumentáciu pre distribuované systémy a podáva návod pre automatizáciu detailov vyskytujúcich sa pri komunikácii aplikácii. Pre vývojárov client-side aplikácii WSDL popisuje všetky potrebné informácie, ktoré služba vyžaduje.
Podrobnejšie informácie o WSDL dokumente a jeho elementoch nájdete v dokumente WSDL-Web Services Description Language.pdf, ktorý sa nachádza na priloženom CD v adresári Dokumenty.
Java a webové služby
Firma Sun Microsystems vyvinula v roku 1995 objektovo orientovaný programovací jazyk Java. Java sa syntakticky najviac približuje jazyku C++. Java sa radí medzi hybridné jazyky. To znamená, že je súčasne prekladaná i interpretovaná. Program sa najprv preloží do špeciálneho tvaru nazývaného bajtkód (bytecode), ktorý potom analyzuje a interpretuje špeciálny program nazývaný virtuálny stroj Javy (Java Virtual Machine – JVM). Java patrí medzi najbezpečnejšie jazyky, preto je vo veľkej forme využívaná pre internetové aplikácie. To ju predurčuje pre tvorbu webových služieb.
Keďže Java je moderný jazyk preto sa stále dynamicky rozvíja. Stále sa vyvíjajú nové balíky, ktoré uľahčujú vytváranie webových služieb. Príkladom je balík javax.jws, ktorý umožňuje programátorovi služby sústrediť čas len na vývoj funkčného kódu služby a nemusí sa zaoberať o spracovávanie SOAP správy, vytváranie spojenia s klientom a iných úkonov súvisiacich s webovými službami. Viac informácii o SOAP sa nachádza v dokumente SOAP.pdf na priloženom CD v adresári Dokumenty.
Príklady existujúcich webových služieb
V dnešnej dobe sa na internete dá nájsť veľké množstvo webových služieb a medzi ne patria:
- National Weather Service - NORA (National Oceanic and Atmospheric Administration´s) vyvinula webovú službu, ktorá poskytuje svetové počasie. Popis služby sa nachádza na:http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl
- Vyhľadávacie služby napríklad Google Search a Yahoo Search, ktorú použijeme ako príklad v našej službe
- Lokalizačné služby napríklad Google Map alebo Microsoft MapPoint Web Service vyvinutá spoločnosťou Microsoft, ktorá umožňuje pomocou súradníc nájsť určitý bod v mapách alebo naplánovať trasu, informácie sa nachádzajú na stránke: http://www.microsoft.com/mappoint/products/webservice/default.mspx
- Lighting Calculation Service - webová služba vypočíta silu osvetlenia v miestnosti. Jej WSDL popis nájdeme na URL: http://www.fold1.com/SOAP/foldcalc.php?wsdl
- RC Filter – webová služba simuluje jednoduchý RC filter. Poskytovateľ je Vanguard Software. WSDL sa nachádza na:http://wiki.vanguardsw.com/bin/ws.dsb?wsdl/Engineering/Electrical/RC%20Filter
Odkazy
- ↑ Buranský, I.: XML a webové služby, Microsoft 2002