SlideShare ist ein Scribd-Unternehmen logo
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?
OpenSocial und Apache Shindig
OpenSocial und Apache Shindig
OpenSocial und Apache Shindig
OpenSocial und Apache Shindig
a common open   set of API's
           for building
   social applications
         across multiple sites
OpenSocial und Apache Shindig
OpenSocial und Apache Shindig
OpenSocial und Apache Shindig
Gadget (XML)
 Clientseitig: JavaScript, HTML
            und CSS

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




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

Incubator seit November 2007
OpenSocial und Apache Shindig
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
OpenSocial und Apache Shindig
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

Weitere ähnliche Inhalte

PDF
Vorstellung Open Social Ipc 2009
PPT
PDF
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
PDF
Social Network Application Programming
PDF
Ist GraphQL das bessere REST
PDF
Django - The Web framework for perfectionists with deadlines
PDF
Web Services leicht gemacht
PDF
Social Web und Mobile
Vorstellung Open Social Ipc 2009
DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf
Social Network Application Programming
Ist GraphQL das bessere REST
Django - The Web framework for perfectionists with deadlines
Web Services leicht gemacht
Social Web und Mobile

Mehr von Mayflower GmbH (20)

PDF
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
PDF
Why and what is go
PDF
Agile Anti-Patterns
PDF
JavaScript Days 2015: Security
PDF
Vom Entwickler zur Führungskraft
PPTX
Produktive teams
PDF
Salt and pepper — native code in the browser Browser using Google native Client
PDF
Plugging holes — javascript memory leak debugging
PDF
Usability im web
PDF
Rewrites überleben
PDF
JavaScript Security
PDF
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
PDF
Responsive Webdesign
PDF
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
PDF
Pair Programming Mythbusters
PDF
Shoeism - Frau im Glück
PDF
Bessere Software schneller liefern
PDF
Von 0 auf 100 in 2 Sprints
PDF
Piwik anpassen und skalieren
PDF
Agilitaet im E-Commerce - E-Commerce Breakfast
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Why and what is go
Agile Anti-Patterns
JavaScript Days 2015: Security
Vom Entwickler zur Führungskraft
Produktive teams
Salt and pepper — native code in the browser Browser using Google native Client
Plugging holes — javascript memory leak debugging
Usability im web
Rewrites überleben
JavaScript Security
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
Responsive Webdesign
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Pair Programming Mythbusters
Shoeism - Frau im Glück
Bessere Software schneller liefern
Von 0 auf 100 in 2 Sprints
Piwik anpassen und skalieren
Agilitaet im E-Commerce - E-Commerce Breakfast
Anzeige

OpenSocial und Apache Shindig