SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
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!
Spis tre ci




                                                    Spis tre ci

O autorze                                                                9
O recenzencie                                                           11
WstÚp                                                                   13

Rozdziaï 1. Wprowadzenie do aplikacji typu mashup                       17
  Web 2.0 i mashup                                                      19
      Znaczenie danych                                                  19
      Spoïeczno ci u ytkowników                                         20
  Jak bÚdziemy tworzyÊ aplikacje typu mashup                            21
  WiÚcej 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
  Obsïuga XML-RPC w PHP                                                 31
      Wykonywanie Èdania XML-RPC                                        31
  Przetwarzanie odpowiedzi XML-RPC                                      40
      Tworzenie klasy parsujÈcej XML-RPC                                41
      Wykorzystanie PEAR do obsïugi 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
      PrzeglÈd ECS                                                      68
      Budowa Èdania REST ECS                                            69
  Tworzenie aplikacji typu mashup                                       71
      Wyszukiwanie produktów                                            71
  Podsumowanie                                                          84



                                                                    5
Spis tre ci



Rozdziaï 3. Stwórz wïasnÈ 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 wywoïania za pomocÈ metod SoapClient                  107
      Obsïuga odpowiedzi SOAP                                           110
  Usïuga sieciowa Microsoft Live Search                                 113
      Korzystanie z wyszukiwania                                        113
  Usïuga Yahoo! Search                                                  117
      Korzystanie z wyszukiwania stron internetowych                    117
  Tworzenie strony agregujÈcej                                          119
  Podsumowanie                                                          124

Rozdziaï 4. Wïasna szafa grajÈca z teledyskami                          125
  Podsumowanie projektu                                                 125
  XSPF                                                                  126
  RSS                                                                   129
  PrzeglÈd YouTube                                                      136
      Interfejs programistyczny YouTube                                 137
  PrzeglÈd Last.fm                                                      139
      Usïugi 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 zawarto ciÈ                                              153
      Korzystanie z aplikacji typu mashup                               155
  Podsumowanie                                                          158

Rozdziaï 5. ZdjÚcia londyñskiego metra                                  159
  Podsumowanie projektu                                                 159
  WstÚpne 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



   6
Spis tre ci



 SPARQL                                                                  166
     Analiza przedmiotu zapytania                                        167
     Anatomia zapytania SPARQL                                           168
     Klauzule WHERE w jÚzyku SPARQL                                      169
     Dodatkowe wïasno ci jÚzyka SPARQL                                   177
 RDF API for PHP (RAP)                                                   177
 Obiekt XMLHttpRequest                                                   180
     PrzeglÈd informacji na temat obiektu XMLHttpRequest                 181
     Korzystanie z obiektu                                               182
 Notacja JSON (JavaScript Object Notation)                               186
     PrzeglÈd obiektów JavaScript                                        187
     Struktura JSON                                                      187
     Korzystanie z wïa ciwo ci 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 usïugÚ                       200
     Pobieranie fotografii lub strony z fotografiami                     202
 Tworzenie aplikacji typu mashup                                         203
     Tworzenie bazy danych i wypeïnianie jej danymi                      204
     Klasa interfejsu z bazÈ danych — TubeSource                         214
     Gïówny interfejs u ytkownika                                        216
     Wykorzystanie usïug Flickr i technologii AJAX                       220
 Podsumowanie                                                            230

Skorowidz                                                                231




                                                                     7
1

                               Wprowadzenie
                              do aplikacji typu
                                       mashup

Strony agregujÈce (mashup), okre lane równie przez WikipediÚ jako hybrydowe aplikacje in-
ternetowe, stajÈ siÚ w ostatnich latach coraz popularniejszym kierunkiem rozwoju sieci. SÈ
one dokïadnie 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. Wïa ciciele danych chÚtnie udostÚp-
niajÈ swoje zasoby zewnÚtrznym u ytkownikom. W wielu przypadkach oferujÈ interfejsy progra-
mistyczne (API) oparte na standardowych protokoïach usïug internetowych, które z ïatwo ciÈ
mogÈ byÊ zaimplementowane w ró nych jÚzykach programowania, wïÈczajÈc w to PHP Ka dego
                                                                                     .
dnia pojawiajÈ siÚ strony agregujÈce tworzone przez ludzi, którzy w innowacyjny sposób ïÈczÈ
dane.

Jednym z przykïadów jest witryna Wii Seeker. Kiedy w listopadzie 2006 roku pojawiïa siÚ na
rynku konsola Nintendo Wii, wiadomo byïo, e zrodzÈ siÚ problemy z jej zakupem. Zadaniem
witryny Wii Seeker byïa pomoc w odnalezieniu sklepu, w którym dostÚpne sÈ konsole, poprzez
poïÈczenie informacji o dostawach z danymi Google Maps. Znacznik na mapie Google Maps
wskazywaï sklep. Kiedy u ytkownik kliknÈï znacznik, wy wietlane byïy informacje o sklepie,
m.in. adres. Oprócz tego pojawiaïa siÚ równie informacja o liczbie konsol oferowanych do sprze-
da y w sklepie w dniu premiery. DziÚki temu, e na mapie wy wietlane byïy dane na temat wiel-
ko ci dostawy, u ytkownik mógï odszukaÊ sklep poïo ony najbli ej swojego domu i tak zapla-
nowaÊ zakupy, aby mieÊ jak najwiÚksze szanse nabycia Wii.

Po wypuszczeniu konsoli na rynek strona zostaïa uzupeïniona o informacje o aukcjach w ser-
wisie eBay i produktach dostÚpnych w Amazon. Dodano tak e sklepy sieciowe takie jak Circuit
PHP Web 2.0. Tworzenie aplikacji typu mashup



City i Wal-Mart. Zamiast pokazywaÊ informacje o zapasach konsol Nintendo Wii w ka dym
sklepie, witryna umo liwia u ytkownikom wymianÚ informacji na temat dostÚpno ci konsol
w poszczególnych sklepach.




Innym przykïadem 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 bie Ècymi informacjami o astronomii.




Na stronie gïównej u ytkownik mo e szybko przejrzeÊ tematy i wybraÊ te, które go interesujÈ.
Wiadomo ci prezentowane sÈ w postaci wypunktowanej listy zawierajÈcej nagïówki i skróconÈ


  18
Rozdziaá 1. • Wprowadzenie do aplikacji typu mashup



tre Ê. Zamiast filmów widniejÈ ich miniaturki. Po klikniÚciu ïÈcza u ytkownik zostanie przenie-
siony na stronÚ ródïowÈ artykuïu lub filmu. Strona jest czytelna, prosta i zawiera du o infor-
macji. Bardzo ïatwo jÈ stworzyÊ za pomocÈ interfejsów API ródeï danych. Prawdopodobnie jej
zrobienie nie zajÚïo autorowi wiÚcej ni jeden wieczór.




Web 2.0 i mashup
Dlaczego w ciÈgu zaledwie kilku lat aplikacje typu mashup znalazïy tak powszechne zastoso-
wanie? Ich historia zaczÚïa siÚ kilka lat temu. Po pÚkniÚciu bañki internetowej w 2001 roku fir-
my internetowe przeksztaïciïy siÚ. Musiaïy zmieniÊ podej cie biznesowe, poddaÊ technologie
ponownej ocenie i wziÈÊ pod uwagÚ sposób, w jaki u ytkownicy korzystajÈ z internetu. W poïowie
dekady ujawniïy siÚ kluczowe trendy. Pojawiïo siÚ okre lenie Web 2.0, pozwalajÈce oddzieliÊ
nowe witryny od witryn, które zdobyïy popularno Ê pod koniec lat 90. Okre lenie to byïo
maïo precyzyjne i na pierwszy rzut oka wydawaïo siÚ podejrzanie efekciarskie. Jednak ró nice
miÚdzy nowymi i starymi witrynami sÈ rzeczywiste. Nie chodzi tylko o zaszïo ci historyczne czy
zmiany wynikajÈce z upïywu czasu. Witryny takie jak Google, YouTube czy Flickr zademonstro-
waïy nowe podej cie do biznesu internetowego. Miaïy one czÚsto proste interfejsy, w peïni
rozwiniÚte usïugi internetowe i dawaïy u ytkownikowi du o swobody. Wiele z nich bazowaïo na
zawarto ci dostarczanej przez u ytkowników. We wrze niu 2005 roku wydawca ksiÈ ek tech-
nicznych Tim O’Reilly napisaï artykuï zatytuïowany Czym jest Web 2.0, w którym zwiÚ le opisaï
cechy odró niajÈce witryny Web 2.0 od witryn poprzedniej generacji. UwzglÚdniï w swoim
wykazie dwie cechy, które bezpo rednio wpïynÚïy na rozwój stron mashup:

   Q znaczenie danych,
   Q spoïeczno Ê u ytkowników.



Znaczenie danych
PierwszÈ cechÈ jest znaczenie danych. Kwestia tego, kto jest wïa cicielem danych i co zamierza
z nimi zrobiÊ, staïa siÚ powa nym problemem. Dlaczego firmy miaïyby inwestowaÊ miliony
dolarów, eby gromadziÊ dane w systemach bazodanowych, a nastÚpnie za darmo udostÚpniaÊ
je innym? Dlatego, e dziÚki temu twórcy stron agregujÈcych uïatwiajÈ dotarcie do wïa cicieli
danych.

¿eby to pokazaÊ, O’Reilly posïu yï siÚ przykïadem firmy MapQuest, która byïa liderem na rynku
map w drugiej poïowie lat 90. Jednak jej system byï zamkniÚty i nie umo liwiaï zewnÚtrznym
u ytkownikom wykorzystywania jej danych. W pierwszych latach XXI wieku strony z mapami
zaczÚïy walczyÊ z tymi sïabo ciami. Na rynek weszïy Yahoo! Maps, Microsoft Virtual Earth
i Google Maps, udostÚpniajÈc interfejsy API. Pomimo ogromnego udziaïu w rynku, MapQuest
szybko zaczÈï traciÊ przewagÚ na rzecz firm udostÚpniajÈcych dane. Jest wiele podobnych przy-
kïadów. Amazon udostÚpniï dane poprzez Amazon E-Commerce Service (ECS). Wiele witryn
agregujÈcych wykorzystaïo tÚ usïugÚ do stworzenia wïasnych sklepów. Amazon organizuje


                                                                                          19
PHP Web 2.0. Tworzenie aplikacji typu mashup



sprzeda , pïacÈc prowizjÚ twórcom i wïa cicielom witryn mashup. DziÚki temu firma urucho-
miïa nowe kanaïy sprzeda y produktów, choÊ oczywi cie www.amazon.com nadal dziaïa. Z kolei
firma BarnesAndNoble.com nie udostÚpniïa swoich danych. Jedynym kanaïem ich sprzeda y jest
gïówna witryna. Spowodowaïo to nie tylko utratÚ mo liwo ci sprzeda y, ale równie mniejszÈ
lojalno Ê u ytkowników ni w przypadku Amazon.

We wcze niejszych przykïadach przedstawili my witrynÚ Wii Seeker, która pomagaïa sprze-
dawcom poprzez kierowanie nabywców do sklepów. W zamian za to pobierana jest opïata za
reklamÚ i czïonkostwo. Google Videos, Google News i Digg.com zdobywajÈ u ytkowników, kiedy
kto kliknie ïÈcze na witrynie Astrolicious.us. Z kolei Astrolicious.us otrzymuje opïatÚ za reklamy,
wkïadajÈc niewielki wysiïek w ich stworzenie.



Spoïeczno ci u ytkowników
DrugÈ cechÈ jest to, e dane wprowadzone przez u ytkowników sÈ o wiele cenniejsze, ni dotÈd
sÈdzili my. Recenzje produktów pisane przez u ytkowników na stronach komercyjnych nie sÈ
jakÈ nowo ciÈ. Nie sÈ niÈ równie fora internetowe. Jednak wa ne staïo siÚ to, w jaki sposób
witryny korzystajÈ z tych informacji i kto jest ich wïa cicielem. Witryna wypo yczajÈca filmy,
Netflix, od zawsze umo liwiaïa u ytkownikom ocenianie filmów, które oglÈdali. Na podstawie
tych ocen Netflix sugeruje inne filmy, które mogïyby siÚ im podobaÊ. Niedawno dodano nowÈ
funkcjonalno Ê spoïeczno ciowÈ o nazwie „Przyjaciele”, która umo liwia obejrzenie ocen przy-
znanych filmom przez Twoich przyjacióï oraz zdobycie informacji o tym, jakie filmy oglÈdajÈ.
JednÈ z opcji jest ocena podobieñstwa. DziÚki porównaniu Twoich rekomendacji z rekomen-
dacjami przyjacióï Netflix wylicza procentowy wska nik zgodno ci gustów.

Niektóre witryny sÈ caïkowicie zale ne od danych u ytkowników. YouTube i Flickr udostÚpniajÈ
za darmo miejsce na filmy i zdjÚcia. Ich popularno Ê nie wziÚïa siÚ jednak po prostu z tego, e
usïugi sÈ darmowe. Nie ma w tym niczego nowego. Ró nica ponownie polegaïa na tym, co obie
witryny robiÈ z danymi dodawanymi przez u ytkowników. Obie udostÚpniajÈ funkcjonalno ci
spoïeczno ciowe. Mo esz oceniÊ i skomentowaÊ zdjÚcia i filmy innych u ytkowników, a tak e
 ledziÊ zmiany w ich profilach. Za ka dym razem, kiedy kto doda jakie dane, zostaniesz o tym
poinformowany. Obydwie witryny umo liwiajÈ tak e swobodne oznaczanie tre ci, dziÚki czemu
u ytkownik mo e opisaÊ dodany element za pomocÈ wïasnych sïów kluczowych. OdwiedzajÈcy
mogÈ u yÊ tych sïów podczas wyszukiwania zawarto ci. Oznaczanie tre ci okazaïo siÚ dosko-
naïÈ pomocÈ przy tworzeniu algorytmów wyszukiwania.

Te dwie cechy nowych witryn umo liwiajÈ maïym firmom internetowym sprawianie wra enia,
 e sÈ o wiele wiÚksze. KorzystajÈc z danych udostÚpnianych przez wiÚksze firmy, twórcy witryn
agregujÈcych znajdujÈ zastosowania, o których nie pomy leliby wïa ciciele danych lub których
nie mogliby wprowadziÊ z powodu ograniczeñ biznesowych.




   20
Rozdziaá 1. • Wprowadzenie do aplikacji typu mashup




Jak bÚdziemy tworzyÊ aplikacje
typu mashup
Z technologicznego punktu widzenia zjawisko agregacji danych nie narodziïoby siÚ, gdyby wïa ci-
ciele witryn internetowych nie oddzielili wyra nie danych, które sÈ wykorzystywane na witry-
nach, od wïa ciwej ich prezentacji. To zawsze byïo celem podczas tworzenia aplikacji inter-
netowych, dlatego te nie powinien dziwiÊ kierunek rozwoju ich architektury. DziÚki temu
podziaïowi sieÊ przeksztaïca 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 mo e byÊ ïatwo przetwarzana przez komputery. Przeszli my od stron statycznych do
stron opartych na bazach danych, od prezentacyjnych znaczników FONT do kaskadowych arkuszy
stylów. Prawdopodobnie nieuniknione byïo to, e internet stanie siÚ rodowiskiem, w którym
rozwinÈ siÚ witryny mashup.

½ródïa danych dla witryn agregujÈcych sÈ zró nicowane. CzÚsto wïa ciciele udostÚpniajÈ dane
poprzez oficjalne interfejsy API. Interfejsy te u ywajÈ usïug sieciowych, które korzystajÈ z wielu
protokoïów. Innym powszechnie stosowanym ródïem danych, które pomogïo w rozwoju witryn
agregujÈcych, jest rodzina formatów RSS. Kiedy niedostÚpne sÈ oficjalne metody, programi ci
bardzo kreatywnie poszukujÈ rozwiÈzañ umo liwiajÈcych pobieranie danych. Przetwarzanie
caïych stron jest czÚsto stosowanÈ metodÈ. Bez wzglÚdu na metodÚ, witryny agregujÈce 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Ê u ywane narzÚdzia.

Oprogramowanie o otwartym kodzie szczególnie dobrze zaspokaja potrzeby twórców witryn
agregujÈcych. PoïÈczenie serwera Apache i jÚzyka PHP umo liwia szybkie tworzenie oprogra-
mowania. DziÚki otwarciu kodu, programi ci bez przerwy i szybko dodajÈ nowe funkcjonal-
no ci zapewniajÈce spójno Ê z usïugami internetowymi.

W tej ksiÈ ce przedstawiÚ, w jaki sposób korzystaÊ z popularnych ródeï danych w PHP WiÚk-
                                                                                      .
szo Ê oficjalnych interfejsów API oparta jest na jednym z trzech protokoïów internetowych —
XML-RPC, REST lub SOAP Oczywi cie przyjrzymy siÚ tym protokoïom. Interfejsy API i bez-
                             .
po rednie rÚczne odwoïywanie siÚ do usïug internetowych to nie jedyne sposoby pobierania
danych. Poka Ú równie , jak korzystaÊ z zewnÚtrznych bibliotek w celu komunikacji z popu-
larnymi witrynami. Innym wa nym ródïem danych sÈ kanaïy informacyjne. Poznanie szerokiego
zestawu narzÚdzi wykorzystywanych do tworzenia stron agregujÈcych pozwoli Ci na szybkie
rozpoczÚcie pracy nad wïasnÈ witrynÈ.




                                                                                            21
PHP Web 2.0. Tworzenie aplikacji typu mashup




WiÚcej aplikacji typu mashup
Poni ej znajdujÈ siÚ przykïady aplikacji typu mashup, z których mo na czerpaÊ inspiracjÚ:

   Q Popurls (popurls.com) — kolekcja adresów URL z popularnych witryn,
   Q Housingmaps.com (www.housingmaps.com) — wy wietla na mapie pozycje domów
       z witryny Craiglist,
   Q Keggy (us.keggy.com) — witryna agregujÈca wiadomo ci z ró nych ródeï
       i personalizujÈca jÈ pod kÈtem okre lonego czytelnika,
   Q Alkemis (local.alkemis.com) — agreguje i umieszcza na mapie wszystkie rodzaje
       danych, na przykïad zdjÚcia i obrazy z kamer w wybranych miastach,
   Q Gametripping.com (www.gametripping.com) — kolekcja zdjÚÊ satelitarnych i zdjÚÊ
       z serwisu Flickr ze stadionami baseballowymi.




  22

Weitere ähnliche Inhalte

Ähnlich wie PHP Web 2.0. Tworzenie aplikacji typu mashup

AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychAJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychWydawnictwo Helion
 
PHP-Nuke. Tworzenie witryn WWW
PHP-Nuke. Tworzenie witryn WWWPHP-Nuke. Tworzenie witryn WWW
PHP-Nuke. Tworzenie witryn WWWWydawnictwo Helion
 
PHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie IIPHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie IIWydawnictwo Helion
 
PHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowePHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanoweWydawnictwo Helion
 
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyTworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyWydawnictwo Helion
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIWydawnictwo Helion
 
PHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawPHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawWydawnictwo Helion
 
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie IIPHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie IIWydawnictwo Helion
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIWydawnictwo Helion
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanieWydawnictwo Helion
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPWydawnictwo Helion
 
PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalisty
PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalistyPHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalisty
PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalistyWydawnictwo Helion
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startPHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startWydawnictwo Helion
 

Ähnlich wie PHP Web 2.0. Tworzenie aplikacji typu mashup (20)

AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychAJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
 
PHP-Nuke. Tworzenie witryn WWW
PHP-Nuke. Tworzenie witryn WWWPHP-Nuke. Tworzenie witryn WWW
PHP-Nuke. Tworzenie witryn WWW
 
PHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie IIPHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie II
 
PHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowePHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowe
 
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. ProjektyTworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
Tworzenie stron WWW z wykorzystaniem Ajaksa. Projekty
 
Ruby on Rails. Ćwiczenia
Ruby on Rails. ĆwiczeniaRuby on Rails. Ćwiczenia
Ruby on Rails. Ćwiczenia
 
PHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie IIPHP, MySQL i Apache dla każdego. Wydanie II
PHP, MySQL i Apache dla każdego. Wydanie II
 
PHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstawPHP5, Apache i MySQL. Od podstaw
PHP5, Apache i MySQL. Od podstaw
 
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie IIPHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
 
PHP 5. Nowe możliwości
PHP 5. Nowe możliwościPHP 5. Nowe możliwości
PHP 5. Nowe możliwości
 
PHP5 i MySQL. Biblia
PHP5 i MySQL. BibliaPHP5 i MySQL. Biblia
PHP5 i MySQL. Biblia
 
C++. Receptury
C++. RecepturyC++. Receptury
C++. Receptury
 
C# i ASP.NET. Szybki start
C# i ASP.NET. Szybki startC# i ASP.NET. Szybki start
C# i ASP.NET. Szybki start
 
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie IIIPHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
PHP i MySQL. Witryna WWW oparta na bazie danych. Wydanie III
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanie
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHP
 
Flash i PHP5. Podstawy
Flash i PHP5. PodstawyFlash i PHP5. Podstawy
Flash i PHP5. Podstawy
 
PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalisty
PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalistyPHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalisty
PHP i MySQL. Tworzenie stron WWW. Wydanie drugie. Vademecum profesjonalisty
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki startPHP i MySQL. Dynamiczne strony WWW. Szybki start
PHP i MySQL. Dynamiczne strony WWW. Szybki start
 
PHP5. Księga eksperta
PHP5. Księga ekspertaPHP5. Księga eksperta
PHP5. Księga eksperta
 

Mehr von Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 

Mehr von Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

PHP Web 2.0. Tworzenie aplikacji typu mashup

  • 1. 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!
  • 2. Spis tre ci Spis tre ci O autorze 9 O recenzencie 11 WstÚp 13 Rozdziaï 1. Wprowadzenie do aplikacji typu mashup 17 Web 2.0 i mashup 19 Znaczenie danych 19 Spoïeczno ci u ytkowników 20 Jak bÚdziemy tworzyÊ aplikacje typu mashup 21 WiÚcej 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 Obsïuga XML-RPC w PHP 31 Wykonywanie Èdania XML-RPC 31 Przetwarzanie odpowiedzi XML-RPC 40 Tworzenie klasy parsujÈcej XML-RPC 41 Wykorzystanie PEAR do obsïugi 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 PrzeglÈd ECS 68 Budowa Èdania REST ECS 69 Tworzenie aplikacji typu mashup 71 Wyszukiwanie produktów 71 Podsumowanie 84 5
  • 3. Spis tre ci Rozdziaï 3. Stwórz wïasnÈ 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 wywoïania za pomocÈ metod SoapClient 107 Obsïuga odpowiedzi SOAP 110 Usïuga sieciowa Microsoft Live Search 113 Korzystanie z wyszukiwania 113 Usïuga Yahoo! Search 117 Korzystanie z wyszukiwania stron internetowych 117 Tworzenie strony agregujÈcej 119 Podsumowanie 124 Rozdziaï 4. Wïasna szafa grajÈca z teledyskami 125 Podsumowanie projektu 125 XSPF 126 RSS 129 PrzeglÈd YouTube 136 Interfejs programistyczny YouTube 137 PrzeglÈd Last.fm 139 Usïugi 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 zawarto ciÈ 153 Korzystanie z aplikacji typu mashup 155 Podsumowanie 158 Rozdziaï 5. ZdjÚcia londyñskiego metra 159 Podsumowanie projektu 159 WstÚpne 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 6
  • 4. Spis tre ci SPARQL 166 Analiza przedmiotu zapytania 167 Anatomia zapytania SPARQL 168 Klauzule WHERE w jÚzyku SPARQL 169 Dodatkowe wïasno ci jÚzyka SPARQL 177 RDF API for PHP (RAP) 177 Obiekt XMLHttpRequest 180 PrzeglÈd informacji na temat obiektu XMLHttpRequest 181 Korzystanie z obiektu 182 Notacja JSON (JavaScript Object Notation) 186 PrzeglÈd obiektów JavaScript 187 Struktura JSON 187 Korzystanie z wïa ciwo ci 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 usïugÚ 200 Pobieranie fotografii lub strony z fotografiami 202 Tworzenie aplikacji typu mashup 203 Tworzenie bazy danych i wypeïnianie jej danymi 204 Klasa interfejsu z bazÈ danych — TubeSource 214 Gïówny interfejs u ytkownika 216 Wykorzystanie usïug Flickr i technologii AJAX 220 Podsumowanie 230 Skorowidz 231 7
  • 5. 1 Wprowadzenie do aplikacji typu mashup Strony agregujÈce (mashup), okre lane równie przez WikipediÚ jako hybrydowe aplikacje in- ternetowe, stajÈ siÚ w ostatnich latach coraz popularniejszym kierunkiem rozwoju sieci. SÈ one dokïadnie 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. Wïa ciciele danych chÚtnie udostÚp- niajÈ swoje zasoby zewnÚtrznym u ytkownikom. W wielu przypadkach oferujÈ interfejsy progra- mistyczne (API) oparte na standardowych protokoïach usïug internetowych, które z ïatwo ciÈ mogÈ byÊ zaimplementowane w ró nych jÚzykach programowania, wïÈczajÈc w to PHP Ka dego . dnia pojawiajÈ siÚ strony agregujÈce tworzone przez ludzi, którzy w innowacyjny sposób ïÈczÈ dane. Jednym z przykïadów jest witryna Wii Seeker. Kiedy w listopadzie 2006 roku pojawiïa siÚ na rynku konsola Nintendo Wii, wiadomo byïo, e zrodzÈ siÚ problemy z jej zakupem. Zadaniem witryny Wii Seeker byïa pomoc w odnalezieniu sklepu, w którym dostÚpne sÈ konsole, poprzez poïÈczenie informacji o dostawach z danymi Google Maps. Znacznik na mapie Google Maps wskazywaï sklep. Kiedy u ytkownik kliknÈï znacznik, wy wietlane byïy informacje o sklepie, m.in. adres. Oprócz tego pojawiaïa siÚ równie informacja o liczbie konsol oferowanych do sprze- da y w sklepie w dniu premiery. DziÚki temu, e na mapie wy wietlane byïy dane na temat wiel- ko ci dostawy, u ytkownik mógï odszukaÊ sklep poïo ony najbli ej swojego domu i tak zapla- nowaÊ zakupy, aby mieÊ jak najwiÚksze szanse nabycia Wii. Po wypuszczeniu konsoli na rynek strona zostaïa uzupeïniona o informacje o aukcjach w ser- wisie eBay i produktach dostÚpnych w Amazon. Dodano tak e sklepy sieciowe takie jak Circuit
  • 6. PHP Web 2.0. Tworzenie aplikacji typu mashup City i Wal-Mart. Zamiast pokazywaÊ informacje o zapasach konsol Nintendo Wii w ka dym sklepie, witryna umo liwia u ytkownikom wymianÚ informacji na temat dostÚpno ci konsol w poszczególnych sklepach. Innym przykïadem 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 bie Ècymi informacjami o astronomii. Na stronie gïównej u ytkownik mo e szybko przejrzeÊ tematy i wybraÊ te, które go interesujÈ. Wiadomo ci prezentowane sÈ w postaci wypunktowanej listy zawierajÈcej nagïówki i skróconÈ 18
  • 7. Rozdziaá 1. • Wprowadzenie do aplikacji typu mashup tre Ê. Zamiast filmów widniejÈ ich miniaturki. Po klikniÚciu ïÈcza u ytkownik zostanie przenie- siony na stronÚ ródïowÈ artykuïu lub filmu. Strona jest czytelna, prosta i zawiera du o infor- macji. Bardzo ïatwo jÈ stworzyÊ za pomocÈ interfejsów API ródeï danych. Prawdopodobnie jej zrobienie nie zajÚïo autorowi wiÚcej ni jeden wieczór. Web 2.0 i mashup Dlaczego w ciÈgu zaledwie kilku lat aplikacje typu mashup znalazïy tak powszechne zastoso- wanie? Ich historia zaczÚïa siÚ kilka lat temu. Po pÚkniÚciu bañki internetowej w 2001 roku fir- my internetowe przeksztaïciïy siÚ. Musiaïy zmieniÊ podej cie biznesowe, poddaÊ technologie ponownej ocenie i wziÈÊ pod uwagÚ sposób, w jaki u ytkownicy korzystajÈ z internetu. W poïowie dekady ujawniïy siÚ kluczowe trendy. Pojawiïo siÚ okre lenie Web 2.0, pozwalajÈce oddzieliÊ nowe witryny od witryn, które zdobyïy popularno Ê pod koniec lat 90. Okre lenie to byïo maïo precyzyjne i na pierwszy rzut oka wydawaïo siÚ podejrzanie efekciarskie. Jednak ró nice miÚdzy nowymi i starymi witrynami sÈ rzeczywiste. Nie chodzi tylko o zaszïo ci historyczne czy zmiany wynikajÈce z upïywu czasu. Witryny takie jak Google, YouTube czy Flickr zademonstro- waïy nowe podej cie do biznesu internetowego. Miaïy one czÚsto proste interfejsy, w peïni rozwiniÚte usïugi internetowe i dawaïy u ytkownikowi du o swobody. Wiele z nich bazowaïo na zawarto ci dostarczanej przez u ytkowników. We wrze niu 2005 roku wydawca ksiÈ ek tech- nicznych Tim O’Reilly napisaï artykuï zatytuïowany Czym jest Web 2.0, w którym zwiÚ le opisaï cechy odró niajÈce witryny Web 2.0 od witryn poprzedniej generacji. UwzglÚdniï w swoim wykazie dwie cechy, które bezpo rednio wpïynÚïy na rozwój stron mashup: Q znaczenie danych, Q spoïeczno Ê u ytkowników. Znaczenie danych PierwszÈ cechÈ jest znaczenie danych. Kwestia tego, kto jest wïa cicielem danych i co zamierza z nimi zrobiÊ, staïa siÚ powa nym problemem. Dlaczego firmy miaïyby inwestowaÊ miliony dolarów, eby gromadziÊ dane w systemach bazodanowych, a nastÚpnie za darmo udostÚpniaÊ je innym? Dlatego, e dziÚki temu twórcy stron agregujÈcych uïatwiajÈ dotarcie do wïa cicieli danych. ¿eby to pokazaÊ, O’Reilly posïu yï siÚ przykïadem firmy MapQuest, która byïa liderem na rynku map w drugiej poïowie lat 90. Jednak jej system byï zamkniÚty i nie umo liwiaï zewnÚtrznym u ytkownikom wykorzystywania jej danych. W pierwszych latach XXI wieku strony z mapami zaczÚïy walczyÊ z tymi sïabo ciami. Na rynek weszïy Yahoo! Maps, Microsoft Virtual Earth i Google Maps, udostÚpniajÈc interfejsy API. Pomimo ogromnego udziaïu w rynku, MapQuest szybko zaczÈï traciÊ przewagÚ na rzecz firm udostÚpniajÈcych dane. Jest wiele podobnych przy- kïadów. Amazon udostÚpniï dane poprzez Amazon E-Commerce Service (ECS). Wiele witryn agregujÈcych wykorzystaïo tÚ usïugÚ do stworzenia wïasnych sklepów. Amazon organizuje 19
  • 8. PHP Web 2.0. Tworzenie aplikacji typu mashup sprzeda , pïacÈc prowizjÚ twórcom i wïa cicielom witryn mashup. DziÚki temu firma urucho- miïa nowe kanaïy sprzeda y produktów, choÊ oczywi cie www.amazon.com nadal dziaïa. Z kolei firma BarnesAndNoble.com nie udostÚpniïa swoich danych. Jedynym kanaïem ich sprzeda y jest gïówna witryna. Spowodowaïo to nie tylko utratÚ mo liwo ci sprzeda y, ale równie mniejszÈ lojalno Ê u ytkowników ni w przypadku Amazon. We wcze niejszych przykïadach przedstawili my witrynÚ Wii Seeker, która pomagaïa sprze- dawcom poprzez kierowanie nabywców do sklepów. W zamian za to pobierana jest opïata za reklamÚ i czïonkostwo. Google Videos, Google News i Digg.com zdobywajÈ u ytkowników, kiedy kto kliknie ïÈcze na witrynie Astrolicious.us. Z kolei Astrolicious.us otrzymuje opïatÚ za reklamy, wkïadajÈc niewielki wysiïek w ich stworzenie. Spoïeczno ci u ytkowników DrugÈ cechÈ jest to, e dane wprowadzone przez u ytkowników sÈ o wiele cenniejsze, ni dotÈd sÈdzili my. Recenzje produktów pisane przez u ytkowników na stronach komercyjnych nie sÈ jakÈ nowo ciÈ. Nie sÈ niÈ równie fora internetowe. Jednak wa ne staïo siÚ to, w jaki sposób witryny korzystajÈ z tych informacji i kto jest ich wïa cicielem. Witryna wypo yczajÈca filmy, Netflix, od zawsze umo liwiaïa u ytkownikom ocenianie filmów, które oglÈdali. Na podstawie tych ocen Netflix sugeruje inne filmy, które mogïyby siÚ im podobaÊ. Niedawno dodano nowÈ funkcjonalno Ê spoïeczno ciowÈ o nazwie „Przyjaciele”, która umo liwia obejrzenie ocen przy- znanych filmom przez Twoich przyjacióï oraz zdobycie informacji o tym, jakie filmy oglÈdajÈ. JednÈ z opcji jest ocena podobieñstwa. DziÚki porównaniu Twoich rekomendacji z rekomen- dacjami przyjacióï Netflix wylicza procentowy wska nik zgodno ci gustów. Niektóre witryny sÈ caïkowicie zale ne od danych u ytkowników. YouTube i Flickr udostÚpniajÈ za darmo miejsce na filmy i zdjÚcia. Ich popularno Ê nie wziÚïa siÚ jednak po prostu z tego, e usïugi sÈ darmowe. Nie ma w tym niczego nowego. Ró nica ponownie polegaïa na tym, co obie witryny robiÈ z danymi dodawanymi przez u ytkowników. Obie udostÚpniajÈ funkcjonalno ci spoïeczno ciowe. Mo esz oceniÊ i skomentowaÊ zdjÚcia i filmy innych u ytkowników, a tak e ledziÊ zmiany w ich profilach. Za ka dym razem, kiedy kto doda jakie dane, zostaniesz o tym poinformowany. Obydwie witryny umo liwiajÈ tak e swobodne oznaczanie tre ci, dziÚki czemu u ytkownik mo e opisaÊ dodany element za pomocÈ wïasnych sïów kluczowych. OdwiedzajÈcy mogÈ u yÊ tych sïów podczas wyszukiwania zawarto ci. Oznaczanie tre ci okazaïo siÚ dosko- naïÈ pomocÈ przy tworzeniu algorytmów wyszukiwania. Te dwie cechy nowych witryn umo liwiajÈ maïym firmom internetowym sprawianie wra enia, e sÈ o wiele wiÚksze. KorzystajÈc z danych udostÚpnianych przez wiÚksze firmy, twórcy witryn agregujÈcych znajdujÈ zastosowania, o których nie pomy leliby wïa ciciele danych lub których nie mogliby wprowadziÊ z powodu ograniczeñ biznesowych. 20
  • 9. Rozdziaá 1. • Wprowadzenie do aplikacji typu mashup Jak bÚdziemy tworzyÊ aplikacje typu mashup Z technologicznego punktu widzenia zjawisko agregacji danych nie narodziïoby siÚ, gdyby wïa ci- ciele witryn internetowych nie oddzielili wyra nie danych, które sÈ wykorzystywane na witry- nach, od wïa ciwej ich prezentacji. To zawsze byïo celem podczas tworzenia aplikacji inter- netowych, dlatego te nie powinien dziwiÊ kierunek rozwoju ich architektury. DziÚki temu podziaïowi sieÊ przeksztaïca 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 mo e byÊ ïatwo przetwarzana przez komputery. Przeszli my od stron statycznych do stron opartych na bazach danych, od prezentacyjnych znaczników FONT do kaskadowych arkuszy stylów. Prawdopodobnie nieuniknione byïo to, e internet stanie siÚ rodowiskiem, w którym rozwinÈ siÚ witryny mashup. ½ródïa danych dla witryn agregujÈcych sÈ zró nicowane. CzÚsto wïa ciciele udostÚpniajÈ dane poprzez oficjalne interfejsy API. Interfejsy te u ywajÈ usïug sieciowych, które korzystajÈ z wielu protokoïów. Innym powszechnie stosowanym ródïem danych, które pomogïo w rozwoju witryn agregujÈcych, jest rodzina formatów RSS. Kiedy niedostÚpne sÈ oficjalne metody, programi ci bardzo kreatywnie poszukujÈ rozwiÈzañ umo liwiajÈcych pobieranie danych. Przetwarzanie caïych stron jest czÚsto stosowanÈ metodÈ. Bez wzglÚdu na metodÚ, witryny agregujÈce 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Ê u ywane narzÚdzia. Oprogramowanie o otwartym kodzie szczególnie dobrze zaspokaja potrzeby twórców witryn agregujÈcych. PoïÈczenie serwera Apache i jÚzyka PHP umo liwia szybkie tworzenie oprogra- mowania. DziÚki otwarciu kodu, programi ci bez przerwy i szybko dodajÈ nowe funkcjonal- no ci zapewniajÈce spójno Ê z usïugami internetowymi. W tej ksiÈ ce przedstawiÚ, w jaki sposób korzystaÊ z popularnych ródeï danych w PHP WiÚk- . szo Ê oficjalnych interfejsów API oparta jest na jednym z trzech protokoïów internetowych — XML-RPC, REST lub SOAP Oczywi cie przyjrzymy siÚ tym protokoïom. Interfejsy API i bez- . po rednie rÚczne odwoïywanie siÚ do usïug internetowych to nie jedyne sposoby pobierania danych. Poka Ú równie , jak korzystaÊ z zewnÚtrznych bibliotek w celu komunikacji z popu- larnymi witrynami. Innym wa nym ródïem danych sÈ kanaïy informacyjne. Poznanie szerokiego zestawu narzÚdzi wykorzystywanych do tworzenia stron agregujÈcych pozwoli Ci na szybkie rozpoczÚcie pracy nad wïasnÈ witrynÈ. 21
  • 10. PHP Web 2.0. Tworzenie aplikacji typu mashup WiÚcej aplikacji typu mashup Poni ej znajdujÈ siÚ przykïady aplikacji typu mashup, z których mo na czerpaÊ inspiracjÚ: Q Popurls (popurls.com) — kolekcja adresów URL z popularnych witryn, Q Housingmaps.com (www.housingmaps.com) — wy wietla na mapie pozycje domów z witryny Craiglist, Q Keggy (us.keggy.com) — witryna agregujÈca wiadomo ci z ró nych ródeï i personalizujÈca jÈ pod kÈtem okre lonego czytelnika, Q Alkemis (local.alkemis.com) — agreguje i umieszcza na mapie wszystkie rodzaje danych, na przykïad zdjÚcia i obrazy z kamer w wybranych miastach, Q Gametripping.com (www.gametripping.com) — kolekcja zdjÚÊ satelitarnych i zdjÚÊ z serwisu Flickr ze stadionami baseballowymi. 22