open social & cmis oasistc-20100712

15
Some thoughts for discussion: OpenSocial & CMIS Mark Weitzel Secretary, OpenSocial Founda@on [email protected] Eric Woods [email protected]

Upload: weitzelm

Post on 21-Jan-2015

764 views

Category:

Technology


1 download

DESCRIPTION

Some ideas and starting points on how OpenSocial and CMIS may play nice together. It would be nice to get some thoughts here: http://wiki.opensocial.org/index.php?title=Align_CMIS_and_OpenSocial or here: http://groups.google.com/group/opensocial-and-gadgets-spec

TRANSCRIPT

Page 1: Open social & cmis   oasistc-20100712

Some  thoughts  for  discussion:  OpenSocial  &  CMIS  

Mark  Weitzel  Secretary,  OpenSocial  Founda@on  

[email protected]  Eric  Woods  

[email protected]    

Page 2: Open social & cmis   oasistc-20100712

Discussion  Topics  

•  Overview  of  OpenSocial  •  A  look  at  the  API  •  A  general  ques@on  •  More  ques@ons,  some  ideas,  some  first  steps…  

Page 3: Open social & cmis   oasistc-20100712

Overview  of  OpenSocial  

•  History  •  OpenSocial  Founda@on  •  Specifica@on  •  Open  source  

Page 4: Open social & cmis   oasistc-20100712

Overview  of  OpenSocial:  History  

•  Started  in  2007  as  response  to  Facebook  –  Google,  MySpace,  Yahoo!,  hi5,  Flixster  

•  Very  broad  adop@on  in  Social  Networking  space  –  Global  reach  – Most  using  on  Apache  Shindig  

•  Increasing  adop@on  by  enterprises  &  enterprise  vendors  

•  Established  from  the  outset  as  a  community  effort  –  Some  technology  seeded  by  Google  

•  2008  started  OpenSocial  Founda@on  

Page 5: Open social & cmis   oasistc-20100712

Overview  of  OpenSocial:  Founda@on  

•  Board  –  5  Corporate  Members  

(Bri@sh  Telecom,  Google,  IBM,  MySpace,  Yahoo!)  

–  2  Community  Elected  Members  (Mark  Halvorson  –  Atlassian,  Paul  Lindner  –  LinkedIn)  

•  Officers  –  President:  David  Peck  (MySpace)  

–  Treasurer:  Karthik  Suri  (Yahoo!)  –  Secretary:  Mark  Weitzel  (IBM)  

•  Community  –  Open  to  all  –  No  cost  to  par@cipate  

The OpenSocial Foundation is a non-profit corporation created to sustain the free and open development of the OpenSocial specification.

Page 6: Open social & cmis   oasistc-20100712

Overview  of  OpenSocial:  Development  Process  

•  All  development  done  transparently  

•  Lead  with  code  –  Propose  an  idea  –  Create  a  prototype    – Modify  the  spec  

–  Community  vote  

Page 7: Open social & cmis   oasistc-20100712

Overview  of  OpenSocial:  The  Spec  

•  Defines  a  Web  2.0  Component  model  (OpenSocial  Gadgets—Not  the  same  as  Google  Gadgets)  

•  Defines  a  social  data  model  •  Layered  to  accommodate  levels  of  compliance  

•  Designed  to  be  extended  •  Current  version  is  1.0  

–  1.1  under  development  

–  1.2  tenta@ve  plan  

OpenSocial  Specifica-on  

Core  Gadget   Social  Gadget  

Core  API   Social  API  Server  

Core  Data  

Page 8: Open social & cmis   oasistc-20100712

Overview  of  OpenSocial:  The  Spec  •  Web  2.0  component  model  (OpenSocial  Gadgets)  

–  JavaScript  API  •  Social  API  

–  JavaScript  &  REST  •  Templates  •  Discovery  

Social  People   Groups   Ac@vi@es   AppData  

Albums   Media  Items   Messages  

Gadgets  

Templates   Preferences   App  Data   Life  Cycle  Events  

Inter-­‐applica@on  events   Features   OAuth  &  Request  Signing   Data  Pipelining  

Views   Versions   Localiza@on   Tabs  

Skins   Batch  Requests  

Page 9: Open social & cmis   oasistc-20100712

A  quick  look  at  the  API:  JavaScript  Gegng  Friends  osapi.people.get({userId: '@owner', groupId: '@friends'}).execute(function(result) { if (!result.error) { alert('You have ' + result.totalResults + ' friends'); } });

Gegng  Specific  Fields  (“Proper@es”)  osapi.people.getViewer({fields: ['displayName', 'birthday']}).execute(function(result) { if (!result.error) { alert('Your name is ' + result.displayName + '!'); alert('Your birthday is ' + result.birthday + '!'); } });

Gegng  Specific  Fields  (“Proper@es”)  osapi.people.getViewer({fields: ['displayName', 'birthday']}).execute(function(result) { if (!result.error) { alert('Your name is ' + result.displayName + '!'); alert('Your birthday is ' + result.birthday + '!'); } });

Page 10: Open social & cmis   oasistc-20100712

A  quick  look  at  the  API:  Data  Pipelining  &  Templates  

Templates  <script type="text/os-template"> <div style="font-size: 20px">Hello ${Viewer.displayName}! </div> </script>

Data  Pipelining  <Content type="html”> <![CDATA[ <script xmlns:os="http://ns.opensocial.org/2008/markup" type="text/os-data"> <os:ViewerRequest key="Viewer" fields="name, birthday"/> <os:HttpRequest key="mydata" href="http://example.com/api"/> </script> ... HTML content here ... ]]> </Content>

Page 11: Open social & cmis   oasistc-20100712

A  quick  look  at  the  API:  REST  General  Pajern  HTTPVerb http://baseURL/serviceName/userID/selector?queryParameters

Services  

•  People  

•  Groups  

•  Ac@vi@es  •  AppData  

•  Albums  

•  MediaItems  

•  Messages  

Examples  GET http://api.example.org/people/userID/@friends?sortBy=updated

GET http://api.example.org/people/userID/@friends

GET http://api.example.org/people/@me/@friends

Try  it!!  http://www-opensocial.googleusercontent.com/api/people/108384687998576846752/@self

http://www-opensocial.googleusercontent.com/api/people/108384687998576846752/@self?format=xml

http://www-opensocial.googleusercontent.com/api/people/108384687998576846752/@self?format=atom

It  is  expected  that  new  services  will  be  added  as  more  capability  defined  in  OpenSocial,  e.g.  via  extensions  

Page 12: Open social & cmis   oasistc-20100712

A  General  Ques@on  

Given  that  we  have  a  number  of  vendors  that  are  acAvely  working  on  products  and  soluAons  that  use  both  OpenSocial  and  CMIS…      

and  similar  concepts  appear  in  each  spec…  

…as  OpenSocial  and  CMIS  emerge  in  the  enterprise,  can  we  provide  a  consistent,  open,  standards  based  programming  model  to  our  customers  that  leverages  the  strengths  of  each  specificaAon,  promotes  interoperability,  and  fosters  sharing  and  collaboraAon  between  communiAes?    

Page 13: Open social & cmis   oasistc-20100712

More  ques@ons,  some  ideas,  some  first  steps…  •  Are  there  “low  hanging  fruit”  that  we  can  do  to  “test  the  

waters”?  –  Build  CMIS  gadgets  to  demonstrate  parts  of  Chemistry  

–  Build  gadgets  to  show  how  the  APIs  can  work  together  

–  Add  OpenSocial  MediaItems  as  a  CMIS  Document  subclass  

–  Create  a  CMIS  based  extension  for  exis@ng  OS  MediaItems  

Some First Steps… (will be done in open source – not sure which project) • MediaItems & Albums seem to overlap with CMIS

• Created a bi-directional mapping utility Next Steps… • In process of integrating mapping utility as binding with Shindig • Demonstrate complimentary APIs via OpenSocial Gadget

• Retrieve document info (CMIS) & Person info (OS) • Create document (CMIS) & Post Activity (OS)

Page 14: Open social & cmis   oasistc-20100712

More  ques@ons,  some  ini@al  ideas,  some  first  steps…  

•  Moving  forward,  what  makes  sense?  –  What  changes  are  necessary  to  OpenSocial  to  bejer  support  CMIS?  

•  Add  new  “CMIS-­‐style”  MediaItems  (or  extensions)  

•  Formalize  rela@onships  

–  Create  CMIS  “bindings”  for  OpenSocial  JavaScript?  •  Leverage  simple  OS  API  programming  model,  Templates,  Features  

•  Adds  social  constructs  “for  free”  –  OAuth  support  in  Chemistry?  

Page 15: Open social & cmis   oasistc-20100712

Links  &  References  

•  hjp://wiki.opensocial.org/index.php?@tle=Align_CMIS_and_OpenSocial