PHP Web 2 0 Tworzenie aplikacji typu mashup phpw2m

background image

PHP Web 2.0.

Tworzenie aplikacji

typu mashup

Autor: Shu-Wai Chow

T³umaczenie: Maciej Jezierski, Rados³aw Meryk

ISBN: 978-83-246-1609-1

Tytu³ orygina³u:

PHP Web 2.0 Mashup Projects

Format: 170x230, stron: 240

• Jak stosowaæ mechanizmy dostarczane przez gigantów Web 2.0?

• Jak stworzyæ swoj¹ w³asn¹, prost¹ wyszukiwarkê?

• Jak zintegrowaæ treœci z Flickr i Google Maps?

Serwisy takie, jak Google Maps, Flickr, YouTube, MySpace, to symbole nurtu Web 2.0.

Nie da siê ukryæ, ¿e dorównaæ takim gigantom bêdzie Ci trudno. Wa¿ne jednak jest to,

¿e treœci i mechanizmów dostarczanych przez nich mo¿esz u¿ywaæ równie¿ i Ty.

Wykorzystuj¹c ich API oraz dostêpne us³ugi sieciowe, mo¿esz stworzyæ ca³kowicie nowy

serwis, oferuj¹cy takie mo¿liwoœci, o których nikomu wczeœniej siê nawet nie œni³o!
W³aœnie dziêki tej ksi¹¿ce dowiesz siê, w jaki sposób po³¹czyæ treœci i mo¿liwoœci wielu

serwisów w ramach nowej – Twojej – aplikacji WWW, korzystaj¹c z jêzyka PHP.

Poznasz zasady dzia³ania stron agreguj¹cych treœci, a u¿ywanie technologii XML-RPC

nie bêdzie stanowi³o dla Ciebie problemu. Lektura ksi¹¿ki

PHP Web 2.0 Mashup

pozwoli Ci poznaæ zasady pracy z ¿¹daniami typu REST. Poznasz metody GET i POST

oraz nauczysz siê przetwarzaæ odpowiedzi w formacie XML, korzystaj¹c z biblioteki

SAX. Ju¿ wkrótce bêdziesz móg³ sam stworzyæ prost¹ wyszukiwarkê czy te¿ w³asn¹

"szafê graj¹c¹", korzystaj¹c¹ z danych YouTube i Last.fm. Dodatkowo bêdziesz mia³

mo¿liwoœæ poznania API dostêpnego miêdzy innymi w Google Maps, internetowej bazie

danych UPC oraz ksiêgarni Amazon. Je¿eli chcesz stworzyæ nowy serwis agreguj¹cy

treœci, jest to obowi¹zkowa pozycja dla Ciebie!

• Funkcjonowanie stron agreguj¹cych treœci

• Wykorzystanie techniki XML-RPC

• Przetwarzanie odpowiedzi przy u¿yciu SAX

• ¯¹dania REST

• Dzia³anie metod POST i GET

• Jêzyk WSDL

• Zastosowanie kana³ów RSS

• Interfejs API Amazon

• Interfejs API Google Maps

• Interfejs API internetowej bazy danych UPC

• Interfejs API Flickr

• Zastosowanie obiektu XMLHttpRequest i jego rola w technologii AJAX

Stwórz nowy projekt, korzystaj¹cy z mo¿liwoœci gigantów Web 2.0!

background image

Spis treci

5

Spis treci

O autorze

9

O recenzencie

11

Wstp

13

Rozdzia 1. Wprowadzenie do aplikacji typu mashup

17

Web 2.0 i mashup

19

Znaczenie danych

19

Spoecznoci uytkowników

20

Jak bdziemy tworzy aplikacje typu mashup

21

Wicej aplikacji typu mashup

22

Rozdzia 2. Zrób zakupy w Amazon

23

Podsumowanie projektu

23

XML-RPC

24

Struktura XML-RPC

24

Odpowied XML-RPC

29

Obsuga XML-RPC w PHP

31

Wykonywanie dania XML-RPC

31

Przetwarzanie odpowiedzi XML-RPC

40

Tworzenie klasy parsujcej XML-RPC

41

Wykorzystanie PEAR do obsugi XML-RPC

44

REST

46

Praca z REST w PHP

48

Wykonywanie dania REST

48

Przetwarzanie odpowiedzi REST

55

Interfejs API internetowej bazy danych UPC

65

Interfejs API Amazon

67

Przegld ECS

68

Budowa dania REST ECS

69

Tworzenie aplikacji typu mashup

71

Wyszukiwanie produktów

71

Podsumowanie

84

background image

Spis

treci

6

Rozdzia 3. Stwórz wasn wyszukiwark

85

Podsumowanie projektu

85

SOAP

86

Web Services Descriptor Language (WSDL) i XML Schema Data (XSD)

87

Podstawowa struktura WSDL

87

Komunikat SOAP

99

Klasa SoapClient w PHP

103

Tworzenie parametrów

104

Tworzenie instancji SoapClient

105

Wykonywanie wywoania za pomoc metod SoapClient

107

Obsuga odpowiedzi SOAP

110

Usuga sieciowa Microsoft Live Search

113

Korzystanie z wyszukiwania

113

Usuga Yahoo! Search

117

Korzystanie z wyszukiwania stron internetowych

117

Tworzenie strony agregujcej

119

Podsumowanie

124

Rozdzia 4. Wasna szafa grajca z teledyskami

125

Podsumowanie projektu

125

XSPF

126

RSS

129

Przegld YouTube

136

Interfejs programistyczny YouTube

137

Przegld Last.fm

139

Usugi internetowe Audioscrobbler

140

Parsowanie za pomoc PEAR

141

Instalacja i korzystanie z pakietów

142

File_XSPF

143

Services_YouTube

144

XML_RSS

147

Tworzenie aplikacji typu mashup

150

Architektura aplikacji typu mashup

150

Strona gówna

151

Strona nawigacyjna

152

Strona z zawartoci

153

Korzystanie z aplikacji typu mashup

155

Podsumowanie

158

Rozdzia 5. Zdjcia londyskiego metra

159

Podsumowanie projektu

159

Wstpne planowanie

160

Znalezienie informacji o stacjach metra

161

Integracja serwisów Google Maps i Flickr

162

Kolejno operacji w aplikacji

163

RDF (Resource Description Framework)

164

background image

Spis treci

7

SPARQL

166

Analiza przedmiotu zapytania

167

Anatomia zapytania SPARQL

168

Klauzule WHERE w jzyku SPARQL

169

Dodatkowe wasnoci jzyka SPARQL

177

RDF API for PHP (RAP)

177

Obiekt XMLHttpRequest

180

Przegld informacji na temat obiektu XMLHttpRequest

181

Korzystanie z obiektu

182

Notacja JSON (JavaScript Object Notation)

186

Przegld obiektów JavaScript

187

Struktura JSON

187

Korzystanie z waciwoci JSON

188

Serializacja odpowiedzi JSON

189

Interfejs API Google Maps

190

Tworzenie mapy

191

Geokodowanie

192

Znaczniki

194

Zdarzenia

195

Obiekty InfoWindow

195

Interfejs API Flickr Services

198

Wykonywanie operacji wyszukiwania

199

Interpretacja wyników zwróconych przez usug

200

Pobieranie fotografii lub strony z fotografiami

202

Tworzenie aplikacji typu mashup

203

Tworzenie bazy danych i wypenianie jej danymi

204

Klasa interfejsu z baz danych — TubeSource

214

Gówny interfejs uytkownika

216

Wykorzystanie usug Flickr i technologii AJAX

220

Podsumowanie

230

Skorowidz

231

background image

1

Wprowadzenie

do aplikacji typu

mashup

Strony agregujce (mashup), okrelane równie przez Wikipedi jako hybrydowe aplikacje in-
ternetowe, staj si w ostatnich latach coraz popularniejszym kierunkiem rozwoju sieci. S
one dokadnie tym, na co wskazuje ich nazwa — aplikacjami internetowymi, które pobieraj da-
ne z jednego lub kilku róde i prezentuj je w nowy sposób. Waciciele danych chtnie udostp-
niaj swoje zasoby zewntrznym uytkownikom. W wielu przypadkach oferuj interfejsy progra-
mistyczne (API) oparte na standardowych protokoach usug internetowych, które z atwoci
mog by zaimplementowane w rónych jzykach programowania, wczajc w to PHP. Kadego
dnia pojawiaj si strony agregujce tworzone przez ludzi, którzy w innowacyjny sposób cz
dane.

Jednym z przykadów jest witryna Wii Seeker. Kiedy w listopadzie 2006 roku pojawia si na
rynku konsola Nintendo Wii, wiadomo byo, e zrodz si problemy z jej zakupem. Zadaniem
witryny Wii Seeker bya pomoc w odnalezieniu sklepu, w którym dostpne s konsole, poprzez
poczenie informacji o dostawach z danymi Google Maps. Znacznik na mapie Google Maps
wskazywa sklep. Kiedy uytkownik klikn znacznik, wywietlane byy informacje o sklepie,
m.in. adres. Oprócz tego pojawiaa si równie informacja o liczbie konsol oferowanych do sprze-
day w sklepie w dniu premiery. Dziki temu, e na mapie wywietlane byy dane na temat wiel-
koci dostawy, uytkownik móg odszuka sklep pooony najbliej swojego domu i tak zapla-
nowa zakupy, aby mie jak najwiksze szanse nabycia Wii.

Po wypuszczeniu konsoli na rynek strona zostaa uzupeniona o informacje o aukcjach w ser-
wisie eBay i produktach dostpnych w Amazon. Dodano take sklepy sieciowe takie jak Circuit

background image

PHP Web 2.0. Tworzenie aplikacji typu mashup

18

City i Wal-Mart. Zamiast pokazywa informacje o zapasach konsol Nintendo Wii w kadym
sklepie, witryna umoliwia uytkownikom wymian informacji na temat dostpnoci konsol
w poszczególnych sklepach.

Innym przykadem witryny mashup jest Astrolicio.us. Pobiera ona dane z takich witryn jak Di-
gg.com, Google News oraz Google Videos i prezentuje je na jednej stronie. W ten sposób
powsta portal z biecymi informacjami o astronomii.

Na stronie gównej uytkownik moe szybko przejrze tematy i wybra te, które go interesuj.
Wiadomoci prezentowane s w postaci wypunktowanej listy zawierajcej nagówki i skrócon

background image

Rozdzia 1. • Wprowadzenie do aplikacji typu mashup

19

tre . Zamiast filmów widniej ich miniaturki. Po klikniciu cza uytkownik zostanie przenie-
siony na stron ródow artykuu lub filmu. Strona jest czytelna, prosta i zawiera duo infor-
macji. Bardzo atwo j stworzy za pomoc interfejsów API róde danych. Prawdopodobnie jej
zrobienie nie zajo autorowi wicej ni jeden wieczór.

Web 2.0 i mashup

Dlaczego w cigu zaledwie kilku lat aplikacje typu mashup znalazy tak powszechne zastoso-
wanie? Ich historia zacza si kilka lat temu. Po pkniciu baki internetowej w 2001 roku fir-
my internetowe przeksztaciy si. Musiay zmieni podejcie biznesowe, podda technologie
ponownej ocenie i wzi pod uwag sposób, w jaki uytkownicy korzystaj z internetu. W poowie
dekady ujawniy si kluczowe trendy. Pojawio si okrelenie Web 2.0, pozwalajce oddzieli
nowe witryny od witryn, które zdobyy popularno pod koniec lat 90. Okrelenie to byo
mao precyzyjne i na pierwszy rzut oka wydawao si podejrzanie efekciarskie. Jednak rónice
midzy nowymi i starymi witrynami s rzeczywiste. Nie chodzi tylko o zaszoci historyczne czy
zmiany wynikajce z upywu czasu. Witryny takie jak Google, YouTube czy Flickr zademonstro-
way nowe podejcie do biznesu internetowego. Miay one czsto proste interfejsy, w peni
rozwinite usugi internetowe i daway uytkownikowi duo swobody. Wiele z nich bazowao na
zawartoci dostarczanej przez uytkowników. We wrzeniu 2005 roku wydawca ksiek tech-
nicznych Tim O’Reilly napisa artyku zatytuowany Czym jest Web 2.0, w którym zwile opisa
cechy odróniajce witryny Web 2.0 od witryn poprzedniej generacji. Uwzgldni w swoim
wykazie dwie cechy, które bezporednio wpyny na rozwój stron mashup:

Q

znaczenie danych,

Q

spoeczno uytkowników.

Znaczenie danych

Pierwsz cech jest znaczenie danych. Kwestia tego, kto jest wacicielem danych i co zamierza
z nimi zrobi , staa si powanym problemem. Dlaczego firmy miayby inwestowa miliony
dolarów, eby gromadzi dane w systemach bazodanowych, a nastpnie za darmo udostpnia
je innym? Dlatego, e dziki temu twórcy stron agregujcych uatwiaj dotarcie do wacicieli
danych.

eby to pokaza , O’Reilly posuy si przykadem firmy MapQuest, która bya liderem na rynku
map w drugiej poowie lat 90. Jednak jej system by zamknity i nie umoliwia zewntrznym
uytkownikom wykorzystywania jej danych. W pierwszych latach XXI wieku strony z mapami
zaczy walczy z tymi sabociami. Na rynek weszy Yahoo! Maps, Microsoft Virtual Earth
i Google Maps, udostpniajc interfejsy API. Pomimo ogromnego udziau w rynku, MapQuest
szybko zacz traci przewag na rzecz firm udostpniajcych dane. Jest wiele podobnych przy-
kadów. Amazon udostpni dane poprzez Amazon E-Commerce Service (ECS). Wiele witryn
agregujcych wykorzystao t usug do stworzenia wasnych sklepów. Amazon organizuje

background image

PHP Web 2.0. Tworzenie aplikacji typu mashup

20

sprzeda, pacc prowizj twórcom i wacicielom witryn mashup. Dziki temu firma urucho-
mia nowe kanay sprzeday produktów, cho oczywicie www.amazon.com nadal dziaa. Z kolei
firma BarnesAndNoble.com nie udostpnia swoich danych. Jedynym kanaem ich sprzeday jest
gówna witryna. Spowodowao to nie tylko utrat moliwoci sprzeday, ale równie mniejsz
lojalno uytkowników ni w przypadku Amazon.

We wczeniejszych przykadach przedstawilimy witryn Wii Seeker, która pomagaa sprze-
dawcom poprzez kierowanie nabywców do sklepów. W zamian za to pobierana jest opata za
reklam i czonkostwo. Google Videos, Google News i Digg.com zdobywaj uytkowników, kiedy
kto kliknie cze na witrynie Astrolicious.us. Z kolei Astrolicious.us otrzymuje opat za reklamy,
wkadajc niewielki wysiek w ich stworzenie.

Spoecznoci uytkowników

Drug cech jest to, e dane wprowadzone przez uytkowników s o wiele cenniejsze, ni dotd
sdzilimy. Recenzje produktów pisane przez uytkowników na stronach komercyjnych nie s
jak nowoci. Nie s ni równie fora internetowe. Jednak wane stao si to, w jaki sposób
witryny korzystaj z tych informacji i kto jest ich wacicielem. Witryna wypoyczajca filmy,
Netflix, od zawsze umoliwiaa uytkownikom ocenianie filmów, które ogldali. Na podstawie
tych ocen Netflix sugeruje inne filmy, które mogyby si im podoba . Niedawno dodano now
funkcjonalno spoecznociow o nazwie „Przyjaciele”, która umoliwia obejrzenie ocen przy-
znanych filmom przez Twoich przyjació oraz zdobycie informacji o tym, jakie filmy ogldaj.
Jedn z opcji jest ocena podobiestwa. Dziki porównaniu Twoich rekomendacji z rekomen-
dacjami przyjació Netflix wylicza procentowy wskanik zgodnoci gustów.

Niektóre witryny s cakowicie zalene od danych uytkowników. YouTube i Flickr udostpniaj
za darmo miejsce na filmy i zdjcia. Ich popularno nie wzia si jednak po prostu z tego, e
usugi s darmowe. Nie ma w tym niczego nowego. Rónica ponownie polegaa na tym, co obie
witryny robi z danymi dodawanymi przez uytkowników. Obie udostpniaj funkcjonalnoci
spoecznociowe. Moesz oceni i skomentowa zdjcia i filmy innych uytkowników, a take
ledzi zmiany w ich profilach. Za kadym razem, kiedy kto doda jakie dane, zostaniesz o tym
poinformowany. Obydwie witryny umoliwiaj take swobodne oznaczanie treci, dziki czemu
uytkownik moe opisa dodany element za pomoc wasnych sów kluczowych. Odwiedzajcy
mog uy tych sów podczas wyszukiwania zawartoci. Oznaczanie treci okazao si dosko-
na pomoc przy tworzeniu algorytmów wyszukiwania.

Te dwie cechy nowych witryn umoliwiaj maym firmom internetowym sprawianie wraenia,
e s o wiele wiksze. Korzystajc z danych udostpnianych przez wiksze firmy, twórcy witryn
agregujcych znajduj zastosowania, o których nie pomyleliby waciciele danych lub których
nie mogliby wprowadzi z powodu ogranicze biznesowych.

background image

Rozdzia 1. • Wprowadzenie do aplikacji typu mashup

21

Jak bdziemy tworzy aplikacje
typu mashup

Z technologicznego punktu widzenia zjawisko agregacji danych nie narodzioby si, gdyby waci-
ciele witryn internetowych nie oddzielili wyranie danych, które s wykorzystywane na witry-
nach, od waciwej ich prezentacji. To zawsze byo celem podczas tworzenia aplikacji inter-
netowych, dlatego te nie powinien dziwi kierunek rozwoju ich architektury. Dziki temu
podziaowi sie przeksztaca si w co, co jest znane jako semantyczna sie stron interneto-
wych
— zawarto internetowa jest prezentowana nie tylko w celu czytania przez ludzi, ale
równie moe by atwo przetwarzana przez komputery. Przeszlimy od stron statycznych do
stron opartych na bazach danych, od prezentacyjnych znaczników

FONT

do kaskadowych arkuszy

stylów. Prawdopodobnie nieuniknione byo to, e internet stanie si rodowiskiem, w którym
rozwin si witryny mashup.

róda danych dla witryn agregujcych s zrónicowane. Czsto waciciele udostpniaj dane
poprzez oficjalne interfejsy API. Interfejsy te uywaj usug sieciowych, które korzystaj z wielu
protokoów. Innym powszechnie stosowanym ródem danych, które pomogo w rozwoju witryn
agregujcych, jest rodzina formatów RSS. Kiedy niedostpne s oficjalne metody, programici
bardzo kreatywnie poszukuj rozwiza umoliwiajcych pobieranie danych. Przetwarzanie
caych stron jest czsto stosowan metod. Bez wzgldu na metod, witryny agregujce korzy-
staj z rónych formatów danych i zasadniczo s do proste w tworzeniu. Mimo to ich twórcy
musz by elastyczni i dobrze zna uywane narzdzia.

Oprogramowanie o otwartym kodzie szczególnie dobrze zaspokaja potrzeby twórców witryn
agregujcych. Poczenie serwera Apache i jzyka PHP umoliwia szybkie tworzenie oprogra-
mowania. Dziki otwarciu kodu, programici bez przerwy i szybko dodaj nowe funkcjonal-
noci zapewniajce spójno z usugami internetowymi.

W tej ksice przedstawi, w jaki sposób korzysta z popularnych róde danych w PHP. Wik-
szo oficjalnych interfejsów API oparta jest na jednym z trzech protokoów internetowych —
XML-RPC, REST lub SOAP. Oczywicie przyjrzymy si tym protokoom. Interfejsy API i bez-
porednie rczne odwoywanie si do usug internetowych to nie jedyne sposoby pobierania
danych. Poka równie, jak korzysta z zewntrznych bibliotek w celu komunikacji z popu-
larnymi witrynami. Innym wanym ródem danych s kanay informacyjne. Poznanie szerokiego
zestawu narzdzi wykorzystywanych do tworzenia stron agregujcych pozwoli Ci na szybkie
rozpoczcie pracy nad wasn witryn.

background image

PHP Web 2.0. Tworzenie aplikacji typu mashup

22

Wicej aplikacji typu mashup

Poniej znajduj si przykady aplikacji typu mashup, z których mona czerpa inspiracj:

Q

Popurls (popurls.com) — kolekcja adresów URL z popularnych witryn,

Q

Housingmaps.com (www.housingmaps.com) — wywietla na mapie pozycje domów
z witryny Craiglist,

Q

Keggy (us.keggy.com) — witryna agregujca wiadomoci z rónych róde
i personalizujca j pod ktem okrelonego czytelnika,

Q

Alkemis (local.alkemis.com) — agreguje i umieszcza na mapie wszystkie rodzaje
danych, na przykad zdjcia i obrazy z kamer w wybranych miastach,

Q

Gametripping.com (www.gametripping.com) — kolekcja zdj satelitarnych i zdj
z serwisu Flickr ze stadionami baseballowymi.


Wyszukiwarka

Podobne podstrony:
informatyka php web 2 0 tworzenie aplikacji typu mashup shu wai chow ebook
PHP i Oracle Tworzenie aplikacji webowych od przetwarzania danych po Ajaksa
PHP i MySQL Tworzenie aplikacji WWW phmsap
PHP i MySQL Tworzenie aplikacji WWW
PHP i Oracle Tworzenie aplikacji webowych od przetwarzania danych po Ajaksa
PHP i MySQL Tworzenie aplikacji WWW phmsap

więcej podobnych podstron