Neobsahuje názory Henryka Laholy

Mashupy v PHP

Povinné čtení pro české webotvůrce: Shu-Wai Chow – PHP Web2.0 Mashup Projects (vydalo Packt Publishing)

A zatímco se v Česku místní webové celebrity, respektované weby, blogy a Lupa dohadují, jestli Web2.0 jsou spíš kulaté rohy a pastelové barvy nebo spíš komunity, o Křišťálovou Lupu soutěží téměř stejné projekty jako loni a čeští provozovatelé se stále ohánějí podivuhodnými opatřeními proti "krádežím dat", tak vyšla kniha, která by mohla být českým webotvůrcům dobrým průvodcem do začátku. Samosebou – nevyšla v Česku. Vydalo ji nakladatelství Packt Publishing a můžete ji koupit přímo na stránkách Packt za 36 dolarů (poštovné po Evropě zdarma).

Kniha začíná stručným úvodem do mashupů a světa Web2.0 vůbec. Autor píše: "Mashupy (česky míchanice) jsou přesně to, jak se jmenují – webové aplikace, které berou data z jednoho nebo více zdrojů a publikují je jiným způsobem, v nových souvislostech. Často ti, kdo vlastní data, podporují a pomáhají cizím vývojářům používat tato data. Nejčastěji je tato pomoc poskytována tak, že vlastník dat poskytne aplikační rozhraní (API). Tato API jsou založena na známých standardních webových protokolech a mohou být rychle a snadno implementována v nejrůznějších jazycích, včetně PHP. (...) Velkým problémem Webu 2.0 se stává otázka KDO vlastní data a CO se rozhodl s nimi dělat. Proč firmy investují miliony dolarů na pořízení dat a databázových systémů – a pak je zdarma poskytnou všem ostatním k užívání? Odpověď spočívá v otevření systémů. Vývojáři mashupů vlastně pomáhají šířit vliv a dosah majitelů dat."

V knize je citován O'Reillyho příklad s MapQuest. MapQuest byl jasným favoritem v oblasti mapových služeb od poloviny 90. let. Jejich systém byl uzavřený a nedovoloval ostatním subjektům, aby s jejich daty cokoli dělali. Na začátku nového století na trh vstoupili Yahoo, Microsoft a Google – a všichni tři nabídli API. A navzdory téměř desetiletému zpoždění na trhu vytlačili MapQuest, a to právě díky otevřenosti svých systémů. A je mnoho podobných příkladů – např. Amazon, který umožňuje využít svou infrastrukturu pro spousty e-shopů. Amazon prodává zboží a dělí se o zisk s autory těchto shopů. Naproti tomu např. obchody jako BarnesAndNoble.com své systémy neotvírají, data neposkytují a jediný kanál, jakým mohou prodávat, je jejich webová stránka. Tím nejen že ztrácí obchodní příležitosti, ale přichází i o loajalitu "poboček", jakou má právě Amazon.

Ale zpět ke knize. Ve druhé kapitole ukazuje autor praktický postup vytvoření prvního mashupu – spojení UPC databáze a Amazonu. UPC zde není kabelová televize, ale Universal Product Code. Na tomto mashupu autor demonstruje dva velmi často používané protokoly, a to XML-RPC a REST. Velmi srozumitelně a podrobně popisuje formát XML-RPC dotazů a odpovědí a výklad prokládá praktickými ukázkami PHP kódu. Rovněž ukáže, jak použít XML-RPC třídu z PEAR. Následuje stejně podrobný a praktickými ukázkami proložený výklad protokolu REST, zakončený vlastní REST client třídou a parserem XML odpovědí (via SAX). Pak už nic nebrání stručnému představení API od UPC Database a od Amazon AWS. Kapitola končí podkapitolkou "Mashing up", kde všechny probrané informace autor poskládá do funkčního mashupu, do něhož stačí vložit číslo UPC daného výrobku. Mashup se dotáže databáze UPC kódů, a pokud dokáže rozpoznat zboží, zjistí, zda je na Amazonu dostupné. Pokud ano, zobrazí jej a nabídne vložení do nákupního košíku, to vše automaticky, prostřednictvím API. Samozřejmostí je hojně komentovaný PHP zdrojový kód.

Třetí kapitola nese provokativní název "Vytvořte si vlastní vyhledávač". Ale nebojte, konkurence Googlu z toho nebude. Jde o mashup nad vyhledávačema od Microsoftu a Yahoo. Jestli pamatujete všelijaké "metavyhledávače", tak toto je něco takového. Autor stejným způsobem jako ve druhé kapitole popisuje rozhraní SOAP, jeho formát a použití, a následně smíchává vyhledávání Yahoo a Live do jedné stránky.

Kapitola čtvrtá nabízí "vlastní video jukebox". Idea je prostá – mashup bere z last.fm informace o tom, jaké písničky vám hrály, a hledá na Youtube odpovídající videoklipy. Používá protokol REST a datové formáty XML, XPSF a RSS, to vše pomocí PEAR nástrojů. Ostatně – tato kapitola je dostupná na webu jako ukázková kapitola, takže si můžete počíst sami.

Pátá kapitola ukazuje "ne právě čistou" metodu získávání dat pro mashupy. Popisuje vytvoření mashupu, který umožní posílání SMS s informacemi o dopravních nehodách na kalifornských dálnicích (takže pro nás prakticky nepoužitelný mashup, přesto velmi užitečná kapitola). Problém je v tom, že zatímco na posílání SMS má autor službu 411Sync, tak California Highway Patrol se chová jako obdobné weby v ČR. Ocituju autora: "Tento web je velmi užitečný – pokud sedíte u počítače. Pokud jste venku a nemáte zrovna internetové PDA, máte smůlu. Navíc web používá JavaScript a framy, takže i některé PDA s ním mají problémy." Zmíněný web navíc nenabízí alternativní možnost získání dat. Autor proto ukazuje techniku, nazývanou "screen scraping", při níž PHP skriptem stáhne HTML stránku, rozloží ji DOM parserem, vybere požadovaná data a udělá z nich RSS výstup.

Kniha končí šestou kapitolou, v níž autor míchá Google Maps a Flickr. Mashup, popsaný v této kapitole, zobrazí na mapě Londýna stanice metra a když uživatel na některou z nich klikne, prohledá Flickr a nabídne fotografie této stanice. Nosným tématem této kapitoly je protokol REST, formáty RDF a JSON a nástroje jako je SPARQL, RDF API pro PHP a konečně i ten oblíbený AJAX. Vše opět vysvětleno v míře nezbytné pro vytvoření vlastního mashupu a bohatě okořeněno konkrétními příklady v PHP.

A resumé? Začnu negativy: Na několika místech utekly korektorům uvozovky ve výpisu kódů a chvíli jsem přemýšlel, co má znamenat $a=«String». Taky by bylo fajn, kdyby příklady z knihy fungovaly někde "live", třeba na webu Packt.

Pozitiva však převažují: Kniha je napsána čtivě, je přehledná, nezdržuje se zbytečnou omáčkou, ale jde přímo k věci. Člověk, který ví jak funguje REST či XML-RPC, může příslušné části přeskočit či pro osvěžení prolistovat, přesto najde v knize spoustu jiných zajímavých věcí. Kniha neslouží (a ani nemá sloužit) jako návod "Jak udělat mashup", po jejímž přečtení by člověk vyskočil a za jedno odpoledne napsal úžasný mashup co zboří Křišťálovou Lupu i s Miklíkem, to rozhodně ne. I při vytváření mashupů je nejdůležitější nápad CO a JAK smíchat (stejně jako třeba při vytváření koktejlů) – a v tom žádná kniha nepomůže. Ale může dát, a taky dává, základní přehled o tom, jaké možnosti jsou, co se používá a ukazuje jak to lze dělat. A tím vlastně mimoděk, a to je na ní nejcennější, inspiruje k vlastní tvorbě!

Teda alespoň mě inspirovala. Po pravdě musím říct, že tato kniha byla poslední kapkou, která mě donutila spustit APIManii  – přehled českých a slovenských API a mashupů.

Doufám, že inspiruje i další...

---

PHP Web 2.0 Mashup Projects – Create practical mashups in PHP, grabbing and mixing data from Google Maps, Flickr, Amazon, YouTube, MSN Search, Yahoo!, Last.fm and 411sync 
Autor: Shu-Wai Chow 
Vydalo Packt Publishing

 

Dne 12.10.2007

Twittni

Přidej do: Přidat na Conota Linkuj si ! asdf.sk StumbleUpon Toolbar Stumble It!

Komentáře

[1] (codeas - Mail - WWW) 20.03.2008, 23:14:40 [X] [D]
Tato kniha vyjde v češtině u Computer Pressu
http://codeasi.blogspot.com....html
(nekdy leto 2008, za cca 300,-kč)
uvidíme jak dopadne překlad