Slide 1: for Java Developers
Chris Schalk, Google Developer Advocate Jason Cooper, Developer Programs Engineer SV-GTUG Meetup - 2/4/2009
Slide 2: Agenda
• OpenSocial Concepts • Apache Shindig • OpenSocial Client Libraries • Android and OpenSocial • OSDE
2
Slide 3: Agenda
• OpenSocial Concepts • Apache Shindig • OpenSocial Client Libraries • Android and OpenSocial • OSDE
3
Slide 6: Too many platforms!
Slide 7: Standards based
OpenSocial
Write once… Deploy everywhere
Slide 8: Massive exposure for your apps!
Slide 9: OpenSocial Concepts
What is OpenSocial?
“OpenSocial defines a common set of APIs based on Open Standards for building social applications across multiple websites”
9
Slide 10: OpenSocial Concepts
Who own’s OpenSocial?
?
No!
OpenSocial is managed under the auspices of the “OpenSocial Foundation” - http://www.opensocial.org
10
Slide 11: Some OpenSocial Partners
Slide 12: In one year: has over 600 Million user reach!
Slide 13: More OpenSocial numbers
315M+ app Installations 85M+ daily canvas page views 7,500+ applications 28+ live containers
http://opensocialapis.blogspot.com/
13
Slide 14: Where is OpenSocial live today?
Applications live to Users:
Initial Developer Sandboxes:
• • • • • • • • • • • • • • • • •
LinkedIn MySpace orkut Hi5 Freebar Friendster Webon from Lycos IDtail YiQi Netlog Hyves Ning Fanbox XiaoNei Mail.ru Socialtext 51.com
• • • • • • • • • •
•
iGoogle Yahoo! Minglebox imeem Viadeo CityIN Tianya Ning Plaxo Pulse Lokalisten
… many more in the pipeline!
http://wiki.opensocial.org
14
Slide 15: Not just Social Network Sites
• Social network sites - Profiles and home pages
ex: MySpace, Hi5
• Personal dashboards – Widgets
ex: iGoogle, My Yahoo
• Sites based around a Social Object
ex: Flickr, YouTube
• Enterprise, Professional
ex: LinkedIn, Oracle, SalesForce.com
• Any web site
15
Slide 16: OpenSocial Roadmap
Version v0.8.1 is current • Latest evolution of OpenSocial as defined by the OpenSocial development community • Updated JavaScript API • Now contains a RESTful API • hi5, MySpace, orkut, iGoogle now support 0.8 • Specification:
http://sites.google.com/a/opensocial.org/opensocial/TechnicalResources/opensocial-spec-v081
16
Slide 17: OpenSocial 0.9 - Future Directions
Goal:
– Enable a faster development experience that is both secure and
efficient
Solution: “Opensocial Templates”!
OS Templates core principles:
• Client-side and server-side processing • Standard set of tags with extensibility model
– Example: <os:ShowPerson>
• http://groups.google.com/group/opensocial-and-gadgetsspec/web/opensocial-templates – Demo: http://ostemplates-demo.appspot.com/
17
Slide 18: To follow future progress of the Spec…
http://groups.google.com/group/opensocial-and-gadgets-spec
18
Slide 19: Demonstration:
Building OpenSocial Applications
19
Slide 20: Agenda
• OpenSocial Concepts • Apache Shindig • OpenSocial Client Libraries • Android and OpenSocial • OSDE
20
Slide 21: How do you host OpenSocial Applications?
1. Can build your own server that implements OpenSocial specification…
2. Or can use “Shindig” - Reference implementation for OpenSocial
21
Slide 22: Hosting OpenSocial Applications
What is Shindig?
• Apache Incubator Project • Currently available in Java and PHP • Shindig Components: • Gadget Server
•Parses gadget XML, renders as HTML/JS/CSS
• OpenSocial Data Server
• Plugs into social graph data • RESTful, RPC protocol services
• Downloaded JavaScript libraries
•Core gadgets, OpenSocial client JavaScript environment
http://incubator.apache.org/shindig
22
Slide 23: Why use Shindig?
• Strong Open Source community • High quality production-ready code
• Used by: hi5, orkut, iGoogle, Netlog, Hyves …
• Synchronized with specification • Language neutral (Java, PHP, …)
23
Slide 24: How Shindig works
• Gadget Server • OpenSocial Data Server
Yoursite.com
Gadget
Shindig
Gadget Server OpenSocial DataServer
24
24
Slide 25: Java Shindig components
• Gadget Server • OpenSocial Data Server
Yoursite.com
Gadget
Shindig
Gadget Server OpenSocial DataServer
25
25
Slide 26: Shindig success at hi5
• Big Traffic • 10k req/sec Edge • 6k req/sec Origin • Hundreds of Developers • 1800+ Apps • 1 Billion hits/day
… on 42 Shindig servers
26
26
Slide 27: Demonstration: Trying out Shindig
27
27
Slide 28: Demonstration: Pinging a local Shindig via REST
Ex: http://localhost:8080/social/rest/people/john.doe/@all
28
28
Slide 29: Adapting Shindig
•
Adapting Shindig to your own social data
Shindig
Gadget Server
OpenSocialDataServer ActivityService PersonService AppDataService
Social Graph Data
29
Slide 30: Demonstration: Shindig with MySQL
30
30
Slide 31: Agenda
• OpenSocial Concepts • Apache Shindig • OpenSocial Client Libraries • Android and OpenSocial • OSDE
31
Slide 32: Introducing the OpenSocial Client Libraries
A set of client libraries for that enable direct communication to an OpenSocial server.
• Client libraries exist for PHP, Ruby, Python and Java • Supports both REST and RPC protocols • Documentation Wiki pages • Sample applications provided
http://code.google.com/p/opensocial-php-client http://code.google.com/p/opensocial-ruby-client http://code.google.com/p/opensocial-python-client http://code.google.com/p/opensocial-java-client
32
32
Slide 33: Demonstration: OpenSocial Java client library
33
33
Slide 34: Agenda
• OpenSocial Concepts • Apache Shindig • OpenSocial Client Libraries • Android and OpenSocial • OSDE
34
Slide 35: The Android Client Library
Provides Android developers with easy access to OpenSocial servers.
• Utilizes the OpenSocial Java client library • Sample application and documentation provided
35
35
Slide 36: Demonstration: Calling Plaxo from an Android app
Pulling down contacts from my Plaxo account…
REST
36
36
Slide 37: Agenda
• OpenSocial Concepts • Apache Shindig • OpenSocial Client Libraries • Android and OpenSocial • OSDE
37
Slide 38: An “OSDE” Sneak Preview
What is OSDE? Ans: OpenSocial Development Environment A complete OpenSocial development environment encapsulated within an Eclipse plugin.
• Under development in Japan • Bundles Shindig into Eclipse • Bundles H2 Java database with Hibernate for social data • Provides OpenSocial perspective • Has console to Shindig, database
http://www.eisbahn.jp/trac/osde
38
38
Slide 39: Useful Links
Homepage & specification: http://www.opensocial.org
New Wiki! (Compliancy, Cross container development …) • http://wiki.opensocial.org Get on the forums: • http://groups.google.com/group/opensocial Subscribe to the Shindig mailing list: • shindig-dev-subscribe@incubator.apache.org Help shape the specification:
•
http://groups.google.com/group/opensocial-and-gadgets-spec/
Check out Shindig:
•
http://incubator.apache.org/shindig
OS Templates:
•
39
http://groups.google.com/group/opensocial-and-gadgets-spec/web/opensocial-templates
Slide 40: Useful Event Info
Google Code Events Calendar: • http://code.google.com/events/calendar Google IO registration is now open! • http://code.google.com/events/io Google Summer of Code: • http://code.google.com
40
Slide 41: Questions
Q&A
Slides available at:
http://….
41