Apachecon US 2008 with Apache Shindig
Total Page:16
File Type:pdf, Size:1020Kb
ApacheCon US 2008 Empowering the social web with Apache Shindig Henning Schmiedehausen Sr. Software Engineer – Ning, Inc. November 3 - 7 • New Orleans Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 1 • How the web became social • Get out of the Silo – Google Gadgets • OpenSocial – A social API • Apache Shindig • Customizing Shindig • Summary November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 2 ApacheCon US 2008 In the beginning... Freitag, 7. November 2008 3 ApacheCon US 2008 ...let there be web 2.0 Freitag, 7. November 2008 4 • Web x.0 is about participation • Users have personalized logins Relations between users are graphs • "small world phenomenon", "six degrees of separation", Erdös number, Bacon number November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 5 ApacheCon US 2008 The Silo problem Freitag, 7. November 2008 6 • How the web became social • Get out of the Silo – Google Gadgets • OpenSocial – A social API • Apache Shindig • Customizing Shindig • Summary November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 7 ApacheCon US 2008 iGoogle Freitag, 7. November 2008 8 • Users adds Gadgets to their homepages Gadgets share screen space • Google experiments with Canvas view Javascript, HTML, CSS • A gadget runs on the Browser! Predefined Gadgets API • Core APIs for IO, JSON, Prefs; optional APIs (e.g. flash, rpc, views) • Third-Party gadgets available November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 9 "Hello World" <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="hello world example" /> <Content type="html"> <![CDATA[ <b>Hello, World!</b> ]]> </Content> </Module> Freitag, 7. November 2008 10 Gadget Anatomy <?xml version="1.0" encoding="UTF-8" ?> <Module> Metadata <ModulePrefs title="hello world example" > <Require feature="dynamic-height" /> <Optional feature="flash" /> <Locale lang="en" messages="en.xml" /> Required and <Locale lang="de" messages="de.xml" /> Optional Features </ModulePrefs> <UserPref name="text" display_name="Text" datatype="string" default_value="Hello, World!" /> <Content type="html"><![CDATA[ <div id="helloworld" /> <script> prefs = new gadgets.Prefs(); Localization var text = prefs.getString('text'); document.getElementById('helloworld').innerHTMLPreferences = "<b>" + text + "</b>"; </script> ]]></Content> </Module> Freitag, 7. November 2008 11 Gadget Anatomy <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="hello world example" > <Require feature="dynamic-height" /> <Optional feature="flash" /> HTML / <Locale lang="en" messages="en.xml" /> <Locale lang="de" messages="de.xml" /> CSS / </ModulePrefs> <UserPref name="text" display_name="Text" JavaScript / datatype="string" default_value="Hello, World!" /> <Content type="html"><![CDATA[ Flash <div id="helloworld" /> <script> prefs = new gadgets.Prefs(); var text = prefs.getString('text'); document.getElementById('helloworld').innerHTML = "<b>" + text + "</b>"; </script> ]]></Content> </Module> Freitag, 7. November 2008 12 ... on iGoogle Freitag, 7. November 2008 13 ... on Ning Freitag, 7. November 2008 14 ... on Orkut Freitag, 7. November 2008 15 ... sample container Freitag, 7. November 2008 16 Write once, embed everywhere • iGoogle / Google gadgets • other web sites • gadget enabled Containers (Websphere) November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 17 How does it work? (the techie slides) Freitag, 7. November 2008 18 Gadget enabled web site Hosting site Browser requests Gadget web page with Renderer embedded gadget Data Proxy Provider November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 19 browser requests Gadget enabled web site gadget content Hosting site Gadget Renderer Renderer requests gadget from hosting site Data Proxy Provider November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 20 Gadget enabled web site Hosting site Gadget Renderer proxy sends request to data provider gadget requests application data from its Data Proxy backend site Provider November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 21 But is it social? Freitag, 7. November 2008 22 • How the web became social • Get out of the Silo – Google Gadgets • OpenSocial – A social API • Apache Shindig • Customizing Shindig • Summary November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 23 • Google launched OpenSocial Nov 1st, 2007 • Launch partners: Bebo, Engage.com, Friendster, hi5, Hyves, imeem, NetModular, mixi, MySpace, Ning, orkut, Plaxo, SixApart, LinkedIn, Tianji, salesforce.com, Viadeo, Oracle, XING • Plaxo and Ning delivered inside 24 hours November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 24 • opensocial 0.5: Nov 1st, 2007 • opensocial 0.6: Dec 21st, 2007 • opensocial 0.7: Jan 25th 2008 • opensocial 0.8: May 27th 2008 • opensocial 0.8.1: Sep 25th 2008 November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 25 • social data API • persons • relationships • activities • persistence API November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 26 Person • Core building block of the social API • Has a huge number of attributes about_me, activities, addresses, age, body_type, books, cars, children, current_location, date_of_birth, drinker, email, ethnicity, fashion, food, gender, happiest_when, has_app, heroes, humor, id, interests, job_int job_interests, jobs, languages_spoken, living_arrangement, looking_for, movies, music, name, network_presence, nickname, pets, phone_numbers, political_views, profile_song, profile_url, profile_video, quotes, relationship_status, religion, romance, scared_of, schools, sexual_orientation, smoker, sports, status, tags, thumbnail_url, time_zone, turn_offs, turn_ons, tv_shows, urls • Almost all are optional November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 27 Relationships views owns App Viewer Owner has has Person Person Friends Friends Person Person Person Person Person Person Freitag, 7. November 2008 28 Activities • Activities stream related to Applications • Can contain URLs, Images, Videos • Templating system for sharing URLs • read and write access November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 29 AppData • Gadgets had to rely on Prefs or external backends for data storage • AppData stores arbitrary key/value pairs • write for own data, read for related persons November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 30 before OpenSocial Freitag, 7. November 2008 31 with OpenSocial OpenSocial API Freitag, 7. November 2008 32 <ModulePrefs title="going social"> <Require feature="opensocial-0.8" /> </ModulePrefs> November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 33 • up to opensocial-0.7: • browser facing Javascript API, delivered as a feature to Gadgets • Gadget Renderer • Data Proxy • OpenSocial API implementation November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 34 OpenSocial enabled web site Hosting site Gadget Renderer Social Data gadget requests social content OS APIs Data Provider OpenSocial API Data Proxy dispatches request Provider November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 35 • since 0.8: • outward facing restful API • OAuth Core 1.0 service provider • OAuth Consumer Request extension • since 0.8.1: • outward facing RPC API November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave of Open Source The Official User Conference of The Apache Software Foundation Freitag, 7. November 2008 36 OpenSocial enabled other web site web site Restful or RPC API Social Data OS APIs web site requests access Data Provider to social information November 3 - 7 • New Orleans ApacheCon US 2008 Leading the Wave