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?
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

Weitere ähnliche Inhalte

Ähnlich wie OpenSocial und Apache Shindig

HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
Mayflower GmbH
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für Entwickler
Jan Hentschel
 
Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes Team
NETWAYS
 
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
Stephan Hochdörfer
 

Ähnlich wie OpenSocial und Apache Shindig (20)

Django trifft Flutter
Django trifft FlutterDjango trifft Flutter
Django trifft Flutter
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
HTML5 und node.js Grundlagen
HTML5 und node.js GrundlagenHTML5 und node.js Grundlagen
HTML5 und node.js Grundlagen
 
Windows 8 für Entwickler
Windows 8 für EntwicklerWindows 8 für Entwickler
Windows 8 für Entwickler
 
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
Icinga 2: Integration von Graphite (Webinar vom 25.09.2014)
 
Mobile Web Development from Scratch
Mobile Web Development from ScratchMobile Web Development from Scratch
Mobile Web Development from Scratch
 
Puppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes TeamPuppet und OpenStack - Ein gutes Team
Puppet und OpenStack - Ein gutes Team
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
Google Analytics Konferenz 2019_App Tracking_Runa Reno (Booking.com) & Markus...
Google Analytics Konferenz 2019_App Tracking_Runa Reno (Booking.com) & Markus...Google Analytics Konferenz 2019_App Tracking_Runa Reno (Booking.com) & Markus...
Google Analytics Konferenz 2019_App Tracking_Runa Reno (Booking.com) & Markus...
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
Android Entwicklung
Android EntwicklungAndroid Entwicklung
Android Entwicklung
 
Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Slides__Splunk_UserGroup_20220407.pdf
Slides__Splunk_UserGroup_20220407.pdfSlides__Splunk_UserGroup_20220407.pdf
Slides__Splunk_UserGroup_20220407.pdf
 
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
Konfigurations Management mit Puppet (Webinar vom 17.10.2013)
 
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
CodeTalks Vortrag: Automatisierung mit Ansible & Jenkins @ LeanIX Enterprise ...
 
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 

Mehr von Mayflower GmbH

Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
Mayflower GmbH
 

Mehr von Mayflower GmbH (20)

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

OpenSocial und Apache Shindig