International PHP Conference
17. Nov. 2009 | Karlsruhe
Frank Ruske
Frank Ruske



❙ >10 Jahre Erfahrung in der Softwareentwicklung


❙ Seit März 2009 Mitarbeiter bei Mayflower


❙ Autor für das PHP-Magazin




                                                   OpenSocial
                                                   © MAYFLOWER GmbH 2009 2
Was ist das Objekt?
Was ist das Ziel?
Wie kann das Objekt
 geshared werden?
4.294.967.296

340.282.366.920.938.463.463.374.607.431.768.211.456

     665.570.793.348.866.943.898.599 pro Quadratkilometer
          ca. 667.000.000.000.000.000 pro Quadratmillimeter
Was ist die Belohnung
für eine Anmeldung?
Business Model?
Wie können wir Objekte
  sozialisieren ohne ein
weiteres Social Network zu
         erstellen?
a common open   set of API's
           for building
   social applications
         across multiple sites
Gadget (XML)
 Clientseitig: JavaScript, HTML
            und CSS

           Container
Serverseitig: RESTfull API, JSON
         RPC (optional)
Grundfunktionen
    People,
    Friends,
   Activities,
  Persistence
Benutzergruppen
    Viewer
    Owner
     Friend
OpenSocial application „Hello world“




http://www.frank-ruske.com/ipc/hello_world.xml
http://www.frank-ruske.com/ipc/show_friends_final.xml
http://www.frank-ruske.com/ipc/activity.xml
http://www.frank-ruske.com/ipc/save_data.xml
gadgets.io.makeRequest()
Apache Shindig

Incubator seit November 2007
http://shindig.local/gadgets/files/samplecontainer/samplecontainer.html
http://shindig.local/gadgets/files/samplecontainer/examples/SocialHelloWorld.xml
http://www.frank-ruske.com/ipc/activity.xml
REST / PEOPLE
/people/{guid}/@all
   Alle Leute mit Verbindungen zum User {guid}

/people/{guid}/@friends
   Alle Freunde vom Benutzer {guid}

/people/{guid}/@self
   Profil vom Benutzer {guid}

/people/@me/@self
   Profil des Viewers
Freunde von „Jane Doe“




http://shindig.local/social/rest/people/jane.doe/@friends
REST / ACTIVITIES
/activities/{guid}/@self
    Liste mit Aktivitäten des User {guid}

/activities/{guid}/@friends
    Liste mit Aktivitäten der Freunde des User {guid}
Aktivität von „John.doe“




http://shindig.local/social/rest/activities/john.doe/@self
REST / PERSISTENCE
/appdata/{guid}/@self/{appid}
   Alle App spezifischen Daten für den User {guid}

/appdata/{guid}/@friends/{appid}
   Alle App spezifischen Daten für die Freunde des Users
REST / Additional Parameters
/format={format}
    Format der Rückgabe (ATOM, JSON, XML)

/fields={field+}
     Die Felder die zurück gegeben werden sollen

/startPage={startPage}
    Paginator

/count={count}
    Paginator – Anzahl von Items
Additional Parameters




http://shindig.local/social/rest/activities/john.doe/@self?format=XML
Container implementieren:

     1.) PHP Interfaces implementieren:
 ActivityService, PersonService, AppDataService,
MessagesService, AlbumService, MediaItemService

      2.) Apache Shindig konfigurieren
1.) PHP Interfaces implementieren:
      class JsonDbOpensocialService implements ActivityService, PersonService,
       AppDataService, MessagesService, AlbumService, MediaItemService {...}




http://svn.apache.org/repos/asf/incubator/shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php
2.) Shindig konfigurieren




http://svn.apache.org/repos/asf/incubator/shindig/trunk/php/config/container.php
Partuza
OpenSocial / Social Network Beispielseite

   Kommuniziert mit Apache Shindig

         Implementiert in PHP
1.) PHP Interfaces implementieren:
   class PartuzaService implements ActivityService, PersonService,
AppDataService, MessagesService, AlbumService, MediaItemService {...}




   http://code.google.com/p/partuza/source/browse/trunk/Shindig/PartuzaService.php
2.) Shindig konfigurieren




http://svn.apache.org/repos/asf/incubator/shindig/trunk/php/config/container.php
Links und Referenzen
          unter

www.frank-ruske.com/ipc09
Vielen Dank für Ihre Aufmerksamkeit!


Referent
Frank Ruske
Mayflower GmbH
Pleichertorstr. 2
97070 Würzburg
+49 (931) 35 9 65 - 0
frank.ruske@mayflower.de

OpenSocial und Apache Shindig