Návrh webovej služby rozvrhu fakulty mechatroniky: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Riadok 46: Riadok 46:
 
#Napísať kód klientskej aplikácie. Pre WSDL je možnosť použiť automatického generovania kódu pomocou špecializovaných nástrojov.
 
#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
 
#Spustiť aplikáciu, ktorá vyvolá webovú službu
 +
[[Súbor:klient.png|center|frame|Obr. 3 - Postup tvorby klienta]]
  
 
==Tvorba webovej služby (servera)==
 
==Tvorba webovej služby (servera)==

Verzia zo dňa a času 11:26, 27. február 2010

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:

  1. 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.
  2. skladová aplikácia sa spojí s objednávkovou službou Súčiastky a.s. a obdrží popis služby
  3. 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

  1. Identifikovať a nájsť požadovanú webovú službu, najlepšie pomocou UDDI
  2. 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.
  3. Napísať kód klientskej aplikácie. Pre WSDL je možnosť použiť automatického generovania kódu pomocou špecializovaných nástrojov.
  4. Spustiť aplikáciu, ktorá vyvolá webovú službu
Obr. 3 - Postup tvorby klienta

Tvorba webovej služby (servera)

  1. Napísať zdrojový kód aplikácie
  2. Obaliť zdrojový kód do SOAP alebo XML-RPC obaľovača (w rapper)
  3. Popísať službu. Pre SOAP službu treba napísať WSDL dokument
  4. Spojazdniť webovú službu. Záleží od vašich požiadaviek, či vytvoríte samostatný server alebo umiestnite na webový server
  5. Zverejnenie webovej služby. Zaregistrovanie do UDDI
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:

Odkazy

  1. Buranský, I.: XML a webové služby, Microsoft 2002