Aktuální vydání

celé číslo

08

2024

Automatizace v potravinářství a farmacii

Měření a regulace průtoku, čerpadla

celé číslo

Získávání informace s použitím webových služeb

číslo 10/2005

Získávání informace s použitím webových služeb

Petr Klán

Informace z oblasti automatizace lze získávat z webu použitím určitého vyhledávače. Pro obecné informace je vhodný např. Google, pro informace o nových knihách Amazon apod. Proces vyhledávání lze však podstatně zlepšit naprogramováním webového agentu, který informace jednoduše opatří za nás. Může to být v předem zadaném čase a bez nutnosti zdlouhavého manuálního „proklikávání se„ k hledané informaci. Článek nabízí návod, jak takový originální a funkční webový agent, který využívá služby vyhledávačů Google a Amazon, vytvořit.

1. Úvod

Často lze slyšet tvrzení „všechno je na webu„. Ovšem již nikdo nedodává, jak se v něm dobře vyznat a jak rychle ze všech údajů získat informaci, která je právě zapotřebí. Existuje dobře zavedený manuální způsob, jak se o to pokusit. Uživatel zvolí např. vyhledávač Google a při zadání vhodně volených klíčových slov a pokročilého vyhledávání je pravděpodobné, že se hledanou informaci, pokud na webu existuje, podaří zaměřit. Takový manuální postup však vyžaduje jednak určitý čas a náklady na připojení a jednak uživatelovu trpělivost při zpracovávání nalezených informací.

Automatizace jako obor je poměrně náročná na množství potřebných informací, ať již jde o nové výsledky, postupy, nebo zkušenosti, řízení na dálku, kooperativní řízení apod. Web zde má nezastupitelné místo a webové služby nabízejí způsob, jak celý postup získávání informace z webu zautomatizovat a tím ušetřit čas i peníze. Komplexní webové služby přitom poskytují známé informační a vyhledávací portály Google i Amazon [1].

Článek je zaměřen na automatizaci procesu vyhledávaní informace a literatury z oboru automatizace. Dává návod, jak lze formou jednoduchých originálních skriptů PHP vytvořit praktické klienty webových služeb portálů Google a Amazon. Proč PHP? Hlavním důvodem je skutečnost, že PHP je zcela bez poplatků a funguje na webových serverech se systémy Apache. Je zde použita zcela nová verze jazyka PHP5 [2].

2. Webové služby

Co je webová služba? Na to se lze podívat z několika úhlů. Nejsnadnější vysvětlení tkví v získání přístupu k informacím. Hlouběji, klient webové služby v předepsaném formátu požádá server o informaci a server informaci ve stejném formátu poskytne. Žádost o informaci i odpověď serveru jsou typicky vyjádřeny v jazyce XML (eXtensible Markup Language). Jazyk XML zachovává informační obsah sdělení bez ohledu na rozmanitost používaných výpočetních prostředků, takže je možné nejenom získat informaci, ale také porozumět kontextu, ve kterém je použita. Například žádost webové službě portálu Google definuje druh vyhledávané informace v jazyce XML a hloubku jejího detailu. Webová služba portálu Google uživateli odešle žádanou informaci (pokud existuje) opět v XML, přičemž může k jejímu nalezení použít všechny databáze portálu Google. Podstatou je, že webové služby mohou přijímat početné žádosti různých typů a typ žádosti ovlivňuje informaci, kterou klient od webové služby obdrží. Jestliže např. klient žádá Google o specifické obrázky, obdrží související obrázky, které databáze portálu Google obsahují.

Webová služba se vykonává na vzdáleném počítači, ne na lokálním počítači uživatele. Jinými slovy, klient webové služby používá zdroje na jiném počítači se souhlasem vlastníka tohoto vzdáleného počítače. To se řeší většinou tak, že zájemce o webovou službu požádá jejího vlastníka o licenci; to s sebou nese i potřebu instalovat odpovídající licenční program.

Přestože jsou webové služby novou metodou, není třeba se jich obávat. Postupuje se stejně jako např. při výběru hotovosti v bance. Uživatel předepsaným způsobem, nezávisle na použitých výpočetních prostředcích, formuluje dotaz a pohotově obdrží odpověď. Základní kroky většiny webových služeb jsou takovéto (podrobněji viz např. [1]):

  1. Klient objevuje webovou službu. To zpravidla souvisí se stažením počítačového souboru se souborem pravidel pro komunikaci s webovou službou. Podobně jako klient, který ví, že banka existuje, si potřebuje opatřit pravidla k používání účtu.

  2. Klient podává žádost podle pravidel webové služby. Ta specifikují formu žádosti. Jde o stejný krok jako v bance při výběru hotovosti. Žádost musí obsahovat identifikační číslo klientského účtu, množství vybírané hotovosti, popř. další identifikační údaje. Banka specifikuje formát žádosti a informaci, kterou musí žádost obsahovat.

  3. Server požádá o přístupové údaje. Jde o obdobu pověřovacích listin. U webových služeb je to přidělené identifikační číslo. Banka může vyžadovat např. průkaz totožnosti při výběru peněz u přepážky.

  4. Webová služba vykoná činnost specifikovanou v žádosti. Ve většině případů webová služba přistupuje k určité databázi pro opatření informace požadované v dotazu. Tu zpravidla ještě daným způsobem zpracovává. Jde o obdobu činnosti úředníka za přepážkou v bance, který vezme z přihrádky či sejfu finanční hotovost a počítá ji.

  5. Webová služba posílá data klientovi. Odesílaná informace je ve specifickém formátu webové služby. Odpovídá to situaci, kdy bankovní úředník předává klientovi požadovanou hotovost.

  6. Klient se odpojí od webové služby. Případně webová služba po jisté době nečinnosti sama odpojí klienta. To lze přirovnat k odchodu z banky. Jestliže neodejde klient sám, bude k tomu dříve či později vyzván.

  7. Klient něco dělá se získanými daty. Ve většině případů data formátuje a prezentuje na obrazovce uživatelům k použití. To napodobuje situaci klienta banky, který použije získané peníze.

Ačkoliv všechny webové služby spoléhají na jazyk XML pro přijetí žádosti a poslání informace, je nutné mít určitý dohodnutý způsob, resp. protokol, jak nalezenou informaci v XML poskládat. Jazyk XML je zde obdobou obálky a je třeba vědět, jak do této „XML obálky„ informaci zabalit a jak ji odeslat. Webové služby k tomu používají protokol s názvem SOAP (Simple Object Access Protocol). Ten představuje obecný návod, jak informaci v XML ukládat a posílat v počítačových sítích. Úvod do protokolu SOAP je např. na http://www.w3.org/TR/soap12-part0

3. Slabikář XML

K pochopení XML je užitečné jeho porovnání s HTML, značkovacím jazykem k vytváření webových stránek, s nímž je většina uživatelů webu obeznámena. Libovolná webová stránka je tzv. dokumentem HTML, kde se kromě vlastního obsahu vyskytují značky jazyka HTML. Každá značka dále mívá atributy upřesňující její význam. Webový prohlížeč potom značky a jejich atributy používá k zobrazení obsahu dokumentu. Jazyk HTML obsahuje více než 100 různých značek jako h1, h2, p, které zabezpečují zobrazení informace obsažené v dokumentu. Zde je typický fragment dokumentu v HTML:

<h1>Tohle je nadpis.</h1>
 <h2>Tohle je podnadpis.</h2>
  <p>Zde je odstavec textu.</p>

Na rozdíl od HTML je XML značkovací metajazyk. To znamená, že XML nespecifikuje soubor přípustných značek nebo atributů. Naopak si zde uživatel sám definuje značky, které uzná za vhodné podle kontextu. Například hlášení o teplotě z meteorologické stanice by mohlo být v XML vyjádřeno takto (soubor např. stanice.xml):

<?xml version=„1.0„ encoding=„windows-1250„?>
<Stanice>
 <Kde>Zelená hora</Kde>
 <Datum>8. 3. 2005</Datum>
 <Hodina>13:00</Hodina>
 <Teplota>2.1</Teplota>
<Kontext />
</Stanice>

Každý dokument XML začíná deklarací. Shora uvedená deklarace oznamuje, že uživatel používá XML verze 1.0 a kódování znaků (češtinu) Windows-1250. Dále jsou uvedeny značky specifické pro daný dokument: Stanice, Kde, Datum, Hodina, Teplota a Kontext. Říká se, že značka Stanice je rodičem (parent) značek Kde, Datum, Hodina, Teplota, Kontext. Naproti tomu značky Kde, Datum, Hodina, Teplota, Kontext jsou dětmi (children) značky Stanice. Dokumenty XML mají obecně stromovou strukturu, v níž každá značka odpovídá jednomu vrcholu stromu. Kořenem předcházejícího dokumentu je značka Stanice a větvemi stromu jsou značky Kde, Datum, Hodina, Teplota, Kontext. Každý dokument XML musí mít přesně jednu kořenovou značku. Strom však může obsahovat libovolný počet větví, rovněž hloubka stromu je neomezená.

Velká síla XML je v tom, že představuje rámec pro konstrukci nového značkovacího jazyka. Každý uživatel může v rámci XML definovat svůj vlastní značkovací jazyk tím, že definuje značky takového jazyka k danému účelu: XML je tak extrémně pružný a otevřený jazyk, který může vyhovovat širokému rozsahu aplikací. Jak je zřejmé z příkladu o hlášení teploty z meteorologické stanice, nové značky XML se obvykle volí tak, aby popsaly význam dat, která mezi sebou uzavírají. To dovoluje zpracovávat dokumenty podle sémantického významu obsažené informace.

Ačkoliv je XML pružný jazyk co do svého slovníku, jeho syntaktická pravidla, která určují, jak kombinovat značky a jejich atributy, je nezbytně nutné dodržet. Dokument XML, který poruší syntaktické pravidlo, je nekompromisně označen za chybný. Jeho zpracování zdaleka není tak benevolentní jako v případě HTML, kde prohlížeč „přehlíží“ drobné syntaktické prohřešky. V porovnání s HTML jde o výhodu, neboť u dokumentů XML lze jednoznačně předpovídat jejich chování.

Přestože uživatelé mohou vytvářet dokumenty XML se značkami, jaké si přejí, pro vytváření dokumentů XML existuje několik hotových tzv. aplikací XML jako specifických značkovacích jazyků definovaných podle pravidel XML s vlastním pevným souborem značek a atributů. Známými příklady aplikací XML jsou např.:

  • SVG (Scalable Vector Graphics) pro tvorbu dvojrozměrné grafiky na webových stránkách (kreslení bodů, čar, křivek apod.),
  • MathML (Mathematical Markup Language) pro zobrazování matematických formulí na webových stránkách,
  • XSL (Extensible Stylesheet Language) pro formátování dokumentů XML,
  • XHTML (Extensible HTML) pro vytváření webových stránek; jde o XML verzi HTML: protože má stejnou sadu značek a atributů jako HTML, zobrazí dokumenty XHTML každý webový prohlížeč,
  • SMIL (Synchronized Multimedia Integration Language) pro multimediální aplikace.

Právě XHTML přináší do tvorby webových stránek jednu podstatnou výhodu v porovnání s HTML. V rámci jedné webové stránky totiž lze použít různé značkovací jazyky, tj. je-li třeba na webové stránce zobrazit např. matematický výraz, použijí se značky MathML, je-li třeba namalovat geometrický obrazec, použije se SVG apod.

Obr. 1.

Obr. 1. Zobrazení matice ze souboru „matice.html“ webovým prohlížečem Amaya (k příkladu 1)

Pro ilustraci těchto možností následují dva jednoduché příklady v XHTML. V prvním je s použitím MathML na webové stránce zobrazena jednoduchá matice (obr. 1) a ve druhém s použitím SVG jednoduchá elipsa. V příkladech je pěkně vidět, že se používají standardní značky známé z HTML, a když je třeba vložit matici (elipsu), přejde se do jiného značkovacího jazyka.

Příklad 1. Při zobrazení matice na webové stránce za použití MathML podle obr. 1 může být příslušný zdrojový kód takovýto (název matice.html):

<?xml version=„1.0„ encoding=„windows-1250„?>
<html xmlns=„http://www.w3.org/1999/xhtml„>
<head>
 <title> Matice </title>
</head>
<body>
 <div align=„center„>
  <h1> Zobrazení matice </h1>
  <math xmlns=„http://www.w3.org/1998/Math/MathML„>
  <mrow>
   <mo>(</mo>
   <mtable>
    <mtr>
     <mtd><mi>1</mi></mtd>
     <mtd><mi><msqrt><mn>-1</mn>
     </msqrt></mi></mtd>
    </mtr>
    <mtr>
     <mtd><mi><msqrt><mn>-1</mn>
     </msqrt></mi></mtd>
     <mtd><mi>1</mi></mtd>
    </mtr>
   </mtable>
   <mo>)</mo>
  </mrow>
  </math>
 </div>
</body>
</html>

Obr. 2.

Obr. 2. Zobrazení elipsy ze souboru „elipsa. html“ webovým prohlížečem Amaya (k příkladu 2)

Příklad 2. Je-li třeba na webové stránce za použití SVG zobrazit elipsu (obr. 2), může být odpovídající zdrojový kód takovýto (název elipsa.html):

<?xml version=„1.0„ encoding=„windows-1250„?>
<html xmlns=„http://www.w3.org/1999/xhtml„>
<head>
<title> Elipsa </title>
</head>
<body>
 <div align=„center„>
  <h1> Zobrazení elipsy </h1>
  <svg xmlns=„http://www.w3.org/2000/svg„>
  <ellipse cx=„265„ cy=„110„ rx=„150„ ry=„100„ style=„fill:lightyellow;
  stroke:green; stroke-width:7„ />
  </svg>
 </div>
</body>
</html>

Vraťme se nyní k souboru stanice.xml s jeho definovanými značkami a zabývejme se otázkou zobrazení takového dokumentu XML webovým prohlížečem.

Obr. 3.

Obr. 3. Zobrazení souboru „stanice.xml“ prohlížečem Internet Explorer

Při pokusu otevřít soubor stanice.xml jej prohlížeč zobrazí způsobem podle obr. 3. Je zřejmé, že Internet Explorer se souborem XML nic neudělá, prostě zobrazí jeho řádky. Je tomu tak proto, že prohlížeče jsou specialisté na interpretaci značek HTML, a nikoliv obecně značek XML. Existují však způsoby, jak i značkám XML přiřadit styl, jakým je bude webový prohlížeč interpretovat. Prvním z nich je použít kaskádové styly CSS (Cascading Style Sheets) podobně jako v HTML, druhým použití již zmíněného XSL. V obou případech je nutné po deklaraci dokumentu XML uvést značku pro styl <?xml-stylesheet?> s patřičnými atributy.

Za příklad je zvoleno použití kaskádových stylů. Každé nově definované značce dokumentu XML se přiřadí určitý styl zobrazování webovým prohlížečem. Styly se soustředí v souboru xstyl.css např. tohoto tvaru:

Kde {display:block; font-size:24pt; color:#00ff00; text-align:center; text-decoration:underline}
Datum {display:block; font-size:12pt; color:#0000ff; text-align:right}
Hodina {display:block; font-size:12pt; color:#0000ff; text-align:right}
Teplota {display:block; font-size:30pt; color:#ff0000; text-align:left}
Kontext {background-image:url(teplota.png); height:400px; width:470px; float:left}

Soubor je dobře čitelný: Například text ohraničený značkou Kde by na webové stránce měl mít velikost 24, barvu sytě zelenou, být vystředěný a podtržený. Dosud záhadná značka Kontext odpovídá obrázku ze souboru teplota.png, ukazujícího širší teplotní pole, rozměr jeho zobrazení bude 400 × 470 a bude umístěn vlevo.

Právě uvedené styly se přidají do původního dokumentu XML (viz druhá řádka):

<?xml version=„1.0„ encoding=„windows-1250„?>
<?xml-stylesheet type=„text/css„ href=„xstyl.css„?>
<Stanice>
 <Kde>Zelená hora</Kde>
 <Datum>8. 3. 2005</Datum>
 <Hodina>13:00</Hodina>
 <Teplota>2.1</Teplota>
 <Kontext />
</Stanice>

Obr. 4.

Obr. 4. Zobrazení formátovaného souboru „stanice.xml“ prohlížečem Internet Explorer (foto z http://www.medard-online.cz)

Atributy u značky <?xml-stylesheet?> říkají, že jde o styly CSS, a uvádějí název souboru xstyl.css, který styly obsahuje. Výsledek ukáže běžný webový prohlížeč podobně jako na obr. 4.

4. Získávání dat z dokumentů XML

Základním posláním dokumentů XML je přenášet data po internetu. Obecněji mají umožnit komunikaci mezi platformami, podobně jako v uvedeném příkladu hlášení meteorologické stanice. Data lze na dané platformě shromažďovat ke zpracování v centrální databázi. Ta může představovat zdroj informace pro uživatele. Musí však existovat nástroj, jak data z dokumentů XML opět získávat. Tím jsou tzv. parsery, které data z dokumentu XML získávají doslova jejich mluvnickým rozebíráním (parsing). Zde se zaměřme na získávání dat z dokumentů XML, např. poskytnutých webovými službami, s použitím jazyka PHP.

Jazyk PHP obsahuje pro získávání dat z dokumentů XML techniky SAX (Simple API for XML) a DOM (Dokument Object Model). Při použití techniky SAX parser dokument prochází a oživuje určité události vždy, když narazí na počáteční nebo koncovou značku. Je zde třeba rozhodnout, jak s těmito událostmi nakládat. Při technice DOM je celý dokument XML transformován do stromu, který je možné procházet použitím funkcí jazyka PHP. Pojem DOM je známý v objektově orientovaném programování. Ilustrace činnosti SAX a DOM s již uvedenými meteorologickými údaji lze najít na http://pklan.php5.cz. Zde bude uveden nejjednodušší způsob práce s XML, zavedený teprve ve verzi PHP5, kde již není třeba používat mnohdy obtížně zapamatovatelné vlastnosti a metody DOM. Vše se děje s použitím struktury „vícerozměrného pole„, kde jednotlivým dimenzím přímo odpovídají značky používané v dokumentu XML. Technika se nazývá SimpleXML a její použití ukazuje následující příklad.

Příklad 3. Je-li třeba ze souboru stanice.xml získat a zobrazit umístění stanice a naměřenou teplotu, napíše se:

<?php
 $sx = simplexml_load_file(„stanice.
 xml„);
 echo $sx->Kde . „<br />„;
 echo $sx->Teplota;
?>

Jedním příkazem se tedy soubor načte (ukazatel $sx) do odpovídajícího pole a k datům se uživatel dostane symbolickým indexováním tohoto pole. Program vypíše umístění stanice a naměřenou teplotu.

Pokud se stejná značka několikrát opakuje (např. odstavec p), lze použít $sx->Kde-> p [1], kde se jednoduše uvede pořadí značky. Jestliže je zapotřebí z dokumentu XML získat všechna data v něm obsažená, lze v PHP5 použít konstrukce s foreach např. takovýmto způsobem:

<?php
 $sx = simplexml_load_file(„stanice.
 xml„);
 foreach ($sx->children() as $element)
  {
  echo $element . „<br />„;
  }
?>

5. Přihlašování k webovým službám

Před začátkem práce je nutné se přihlásit k webovým službám. Je třeba získat odpovídající programové vybavení (kit) a licenční klíč. Portál Google postup podrobně popisuje na http://www.google.com/apis a Amazon na http://soap.amazon.com. Zatímco Google umožňuje prostřednictvím webové služby hledat ve svých databázích, na Amazonu lze získat informace o všech jeho produktech (v uváděném případě zejména knihách).

Licenční klíč uživatel zpravidla obdrží elektronickou poštou po vyplnění jednoduchého elektronického formuláře, kterým u dané služby zřídí své konto. V případě portálu Google má např. 32 znaků, proto se do aplikace zpravidla neopisuje, ale překopíruje se. Je totiž snadné znak splést, a aplikace potom nefunguje. Licence na portálu Google opravňuje k 1 000 bezplatných vyhledávání denně.

Programové vybavení potřebné k běžnému používání služby se obvykle redukuje na tzv. soubor WSDL (Web Service Description Language). Soubory WSDL jsou zvláštní soubory XML s návodem k použití webových služeb. Na soubory WSDL se sice lze odkazovat i na dálku; pokud však jsou na lokálním počítači, ušetří se internetová komunikace. Zběhlý uživatel ze souboru WSDL navíc vyčte, jaké parametry dotaz webové službě potřebuje.

To je vše, co je k používání webových služeb zapotřebí. Pozorný čtenář může namítnout, že mu chybí ještě další nástroje, např. protokol SOAP. Ty ale již má jazyk PHP5 v sobě a klient SOAP se zde vytvoří jedním příkazovým řádkem. Situaci lze přirovnat k používání elektronické pošty. Aby poslal dopis, uživatel zde také nepotřebuje nic vědět o doručovacím protokolu (např. SMTP).

6. Skripty ke komunikaci s webovými službami

Ve skriptech ke komunikaci s webovými službami lze rozlišit tři hlavní části.

1. Vytvoření klientu SOAP pro soubor WSDL dané webové služby.

V případě webové služby portálu Google to bude jednořádkový příkaz s příslušným souborem WSDL (tj. GoogleSearch.wsdl):

$sclient=new SoapClient(„GoogleSearch.wsdl„)

Vytvoření klientu SOAP pro použití vzdáleného souboru WSDL v portálu Amazon bude ilustrováno kódem, který může vypadat např. takto:

$url = „http://soap.amazon.com/schemas3/AmazonWebServices.wsdl„;
$sclient = new SoapClient($url)

2. Kompozice a podání žádosti webové službě.

Ve zde uváděném případě se budou v portálu Google hledat informace o PID regulaci (PID control) a v portálu Amazon knihy na stejné téma. Pro Google může být odpovídající kód v PHP5:

$query=„PID control„;
/* Licenční klíč */
$key=„***„;
/* Max. počet výsledků a poč. index */
$maxResults=10; $start=0;
/* Nastavení dalších parametrů */
$filter=FALSE; $restrict=„„; $safeSearch=FALSE;
$lr=„„; $ie=„„; $oe=„„;
/* Hledání v Googlu */
$results=$sclient->
doGoogleSearch($key, $query, $start, $maxResults, $filter, $restrict, $safeSearch, $lr, $ie, $oe);

Nejdříve se do proměnné query specifikuje vlastní dotaz (PID control), do proměnné key se uvede přidělené licenční číslo, do proměnné maxResults maximální počet nalezených zdrojů, který je žádán. Že to budou zdroje z počátku všech vyhledaných zdrojů, se uvede do proměnné start. Dále je třeba ještě nastavit některé další parametry, které zde nebudou blíže určeny. Vlastní hledání je výsledkem příkazu sclient->doGoogleSearch se specifickými parametry. Výsledky vyhledávání se uloží do proměnné results.

Podobně se postupuje i při vyhledávání knih o PID regulaci v portálu Amazon. Zde se dotaz formuje do jednoduchého pole, které je potom parametrem vlastního prohledávání. Odpovídající kód v PHP5 může vypadat takto:

/* Parametry hledané knihy */
$params = array(
 „author„ => „„,
 „keywords„ => „PID Control„,
 „page„ => 1,
 „mode„ => „books„,
 „tag„ => „„,
 „type„ => „lite„,
 „devtag„ => „licenční klíč„,
);
/* Hledáni v Amazonu */
$results = $sclient->KeywordSearchRequest($params);

Opět je zde vidět, že vlastní hledání se soustředí do jediného příkazového řádku a výsledky se uloží do proměnné results.

3. Zpracování výsledků poskytnutých webovou službou.

Výsledky poskytnuté webovou službou je možné zobrazit, uložit do určité databáze, použít k výpočtům apod. Ukažme jejich zobrazení. Pro Google se výsledky vyhledávání jednoduše zobrazí např. kódem:

$i=1;
foreach ($results->resultElements as $res)
 {
 echo $i . „. „;
 echo $res->title;
 echo „ ($res->URL)„;
 echo „<br /><br />„;
 $i++;
 }

Každému výsledku vyhledávání se nejdříve přiřadí pořadové číslo, zobrazí se jeho název a hypertextový odkaz. Jednotlivé výsledky se oddělují prázdnou řádkou.

Podobně lze postupovat i při zobrazení výsledků z portálu Amazon kódem např.:

$i=1;
foreach ($results->Details as $detail)
 {
 echo „$i. $detail->ProductName
 <br />„;
 $i++;
 }

Obr. 5.

Obr. 5. Vlastní „googlový“ vyhledávač

Zde se zobrazí jen pořadové číslo a název knihy. Podobně lze zobrazit i další údaje.

7. Použití webových služeb pro praxi

Webové služby lze použít k mnoha cílům v praxi. Zde budou ukázány dva konkrétní příklady. Prvním z nich bude vlastní vyhledávač informace s použitím portálu Google a druhým vyhledávač knih v portálu Amazon. Začít lze vytvořením jednoduché webové stránky, která umožňuje zadávat klíčová slova pro vyhledávání, a odesílat je tlačítkem. Aktivuje-li se tlačítko, spustí se skript podobný těm již uvedeným, přičemž se zprostředkuje komunikace s danou webovou službou.

Odpovídající jednoduchá webová stránka může mít podobu podle obr. 5. Tomu odpovídá kód HTML:

<html>
 <head>
 <title>Hledani v Googlu</title>
 </head>
 <body>
 <h1>Hledej v Googlu podle hesla</h1>
<form method=„post„ action=„lookatgoogle1.php„>
 <input type=„text„ name=„heslo„>
 <input type=„submit„ value=„Hledej„>
 </form>
 </body>
</html>

Obr. 6.

Obr. 6. Výsledky vyhledávání v portálu Google pro heslo „PID control“

Zde je dobré pojmenovat rámeček, přičemž s jeho obsahem je možné ve skriptu PHP zacházet jako s proměnnou téhož jména (v našem případě heslo). Jestliže budou do rámečku zapsána klíčová slova a klikne se na tlačítko Hledej, spustí se skript lookatgoogle1.php využívající webovou službu portálu Google. Zdrojový tvar tohoto skriptu může být:

<?php
$query=$_POST[„heslo„];
$key=„***„;
$maxResults=10; $start=0;
$filter=FALSE; $restrict=„„; $safeSearch=FALSE;
$lr=„„; $ie=„„; $oe=„„;
$sclient=new SoapClient(„GoogleSearch.wsdl„);
$results=$sclient->
doGoogleSearch($key, $query, $start, $maxResults, $filter, $restricts, $safeSearch, $lr, $ie, $oe);
echo „<p>RESULTS FOR: <b>$query</b> </p>„;
$i=1;
foreach ($results->resultElements as $res)
 {
 echo $i . „. „;
 echo $res->title;
 echo „ ($res->URL)„;
 echo „<br /><br />„;
 $i++;
 }
?>

Obr. 7.

Obr. 7. Výsledky vyhledávání knih v portálu Amazon pro heslo „PID control“

Do proměnné query se přečte dotaz a podle shora uvedeného se provede jeho kompozice a podá se žádost webové službě. Poté uživatel zobrazí získané výsledky, které pro klíčová slova PID control budou vypadat podobně jako na obr. 6.

Obdobně lze postupovat i při hledání knih v portálu Amazon. Zde uživatel obdrží výsledky podobné těm z obr. 7 s prvními deseti vyhledanými tituly na téma PID regulace.

Fungování obou služeb lze vyzkoušet na http://pklan.php5.cz

8. Závěr

Článek zájemce stručně uvedl do používání webových služeb, včetně představení skriptů k jejich používání. Čtenář se mohl přesvědčit, že použitím nového jazyka PHP5 jsou skripty velmi „úsporné„ v tom smyslu, že jazyk sám obsahuje vše potřebné a ke komunikaci s webovou službou či zřízení klienta SOAP postačí jeden příkazový řádek.

Webové služby mohou přinést novou kvalitu do procesu získávání informace, a to i v oblasti automatizace. Použitím webových služeb je totiž možné tento proces zautomatizovat. Na určitou časovou periodu, událost apod. Navíc je možné informace poskytnuté webovou službou zpracovat vlastním způsobem, který vyhovuje dané úloze. A regulace budoucnosti bude velmi pravděpodobně fungovat podobně jako webová služba.

Poděkování
Práce vznikla v rámci grantu MŠMT 1N04002.

Literatura:
[1] MUELLER, J. P.: Mining Google Web Services: Building Applications with the Google API. Sybex Inc., 2004.
[2] GUTMANS, A. – BAKKEN, S. – RETHANS, D.: PHP 5 Power Programming. Prentice Hall, 2005.

Petr Klán,
Ústav informatiky, Akademie věd ČR
(pklan@cs.cas.cz)