SlideShare une entreprise Scribd logo
1  sur  45
ENTERPRISE SOCIAL USING
OPEN SOURCE FRAMEWORKS
like Agorava
Social Media Week Hamburg

               Werner Keil
               Hamburg, Deutschland
                    18 / 02 / 13
Twitter
Werner Keil - Bio                      @wernerkeil
    • Consultant – Coach
    • Creative Cosmopolitan
    • Open Source Evangelist
    • Software Architect
    • Java Godfather
    • JCP Executive Committee Member
    • Eclipse UOMo Project Lead
3   • DevOps Guy
Proliferation




4   © 2010-2013 Creative Arts & Technologies
Proliferation of Social Media




5   © 2010-2013 Creative Arts & Technologies
Social Gaga




6   © 2010-2013 Creative Arts & Technologies
Before JSR 357 (Java Social)




7
Twitter4J
    • Twitter4J is an unofficial Java library for Twitter API.
      With Twitter4J, you can easily integrate your Java
      application with Twitter.
    • Its author, Yusuke Yamamoto used to work at Twitter.
      While he did, he was briefly meant to represent Twitter
      in the Social JSR EG.

    • It’s light and based on Java 1.4 to be integrated in
      mobile app for instance
8
Scribe Java
    • Scribe is Java framework that provides basic OAuth
      function
    • It also contains configuration for a lot of Social Media

    • Only one dependency on Apache Common Codec


    • At the heart of Agorava 0.5

9
DaliCore – CMS
     • More than a CMS → DaliCore
     • Adds functionality common to users, content and
       permissions on top of Java EE 6.
     • Focus on Users and Permissions.
     • In about every DaliCore project, users should be able
       to login with existing credentials (Facebook, Twitter,
       Google Connect,...)
     • Dali modules extend DaliCore
10
Spring Social
     • Spring social that inspired Seam
       Social and Agorava and has been
       around a bit longer

     • Spring Social module were used to create first
       Agorava modules (thanks to OSS and ASL2)


     • But it’s Spring only module....
11
Along came JSR 357
      • In march 2012 on Werner Keil’s initiative, Java Social
        was submitted to the JCP to become a JSR


      • It proposed to standardize high level access to Social
        Media for the Java Platform


      • It was voted down by 8 votes against 5

12   Images © 2003 Universal Pictures. All Rights Reserved.
What went Wrong?
(Feedback from vote)




13
Too Broad ?




              Maybe...
14
Too Soon?




            Lack of real POC...
15
It can’t be standardized?




                      FALSE
16
Standard part in Social Media
     • All social medias use REST as transmission protocol


     • Most of them transmit data in JSON format and some
       in XML


     • Identification & Authentication are almost entirely
       based on OAuth protocol

17
REST
     • REpresentational State Transfer : Requests about
       resource representation (customer, book, order)
     • REST is based on low level HTTP concepts
     • Each resource has a unique identifier (an URI). 4
       HTTP verbs can be applied to a URI : GET, POST,
       PUT, DELETE
     • Java has a standard for REST: JAX-RS. Version 1.0
       doesn’t provide client API yet. JAX-RS 2.0 will
18
       provide one
JSON
                                                • JavaScript Object Notation:
 1: {
 2:
 3:
        "firstName": "John",
        "lastName" : "Smith",
                                                  Data format inspired by
 4:     "age"       : 25,
 5:
 6:
        "address" :
        {
                                                  JavaScript. It became a
 7:         "streetAddress": "21 2nd Street",
 8:
 9:
            "city"
            "state"
                         : "New York",
                          : "NY",
                                                  standard for online services
10:          "postalCode" : "10021"
11:
12:
         },
         "phoneNumber":
                                                  including Social Media.
13:      [
14:          {
15:            "type" : "home",
16:            "number": "212 555-1234"
17:          },
18:          {
19:            "type" : "fax",
20:            "number": "646 555-4567"
21:          }
22:      ]
23: }




19
OAuth
     • OAuth is a protocol to delegate rights for an
       application to act on the behalf of an user who
       granted its rights without giving away login / password
     • Developed by Twitter, Magnolia and Google, it was
       made standard by IETF in April 2010 under RFC 5849
     • Version 2.0, simpler to use but often criticized for too
       many implementation was standardized in October
       2012 under RFC 6749 and 6750. It’s already used by
       many actors (Facebook, Google, Microsoft)
20
OAuth (2)
     • All Social Media services are based on
       OAuth 1.0a or 2.0.
     • To use OAuth, one has to create an application on
       the targeted service to have an entry point for
       consumer




21
OAuth has 3 steps
      • Creating an application in an OAuth Social Media
        service
      • Initialization: the right granting phase also called the
        OAuth Dance. At the end of the dance we obtain an
        access token (formed by a public and secret part) to
        use in the next step
      • Signature: each request is signed with an access
        token identifying the OAuth application that’s been
        granted rights
22   Images © 2003 Universal Pictures. All Rights Reserved.
Standards that didn’t make it




23   Images © 2003 Universal Pictures. All Rights Reserved.
OpenSocial


     • Become an
       OpenSocial Container
       Get Shindig (PHP or Java)
       or the Google implementations*
       • http://shindig.apache.org
                                                                         OpenSocial Container
      • Look at examples & documentation
       • http://code.google.com/p/opensocial-resources/wiki/SampleApps


                          • * See later why




24
OpenSocial – Shindig

     • Open source implementation of OpenSocial &
       Gadgets specification
     • An Apache Software project
     • Available in Java & PHP
     • http://shindig.apache.org
  It’s Goal: “Shindig's goal was to allow new sites to start
hosting social apps in under an hour's worth of work“
• Those who tried it confirm, this failed quite miserably
                                                           25

25
OpenSocial – What is a Gadget?




           Simple gadgets for getting a Grid proxy credential and
             running remote commands. Both run on my own
                               Web server.


26
OpenSocial Fork
• Death Star
     The “official” OpenSocial implementation has shifted – from Shindig
     to Google Code https://code.google.com/p/opensocial-
     resources/
     And just plans to move yet again, this time to GitHub!
     In fact, Google’s OpenSocial Ruby Gem moved there 4 years ago,
     and the code hasn’t changed since
     https://github.com/revans/opensocial
     (original Google Code SVN by MySpace also still exists;-)


27
Who uses OpenSocial?
• OpenSocial Empire
     • MySpace
     • Orkut
     • Friendster
     • Hi5
     • Jive
     • IBM (Lotus Notes;-)




28
Who does not use OpenSocial?
• Rebel Alliance
     • Facebook
     • Twitter
     • LinkedIn
     • XING*
     • Yammer
     • Foursquare
     • Google+

         ...
                    * Abandoned it for lack of Security among other reasons


29
What’s said about OpenSocial?
     • OpenSocial is what Google created for MySpace
       (Yammer CTO and co-founder Adam Pisoni)
     • Out of the box, most gadgets are publicly available
       content that do not require authentication and
       authorization.
       (ThoughtWorks Studios about OpenSocial gadgets)



30
What’s said about OpenSocial (2)
     • OpenSocial is a specification that provides a standard
       way to share content between semi-trusted
       applications.
     • While initially proposed for public facing social
       networking sites, it has possibly more potential
       within the corporate firewall
      (ThoughtWorks Radar, March 2012)



31
SocialSite – Sun’s Approach to Social

                     Sun Microsystems
      Socialsite: Shindig + gadget based UI written in Java
           Open Source https://socialsite.dev.java.net/




32
The non Standard parts
     • No standard identity management or any other API
       across Social Media


     • More than that. There is no Social Media that
       guarantee:
       • Its API won’t change for a given period

       • Backward compatibility when its API change



33
What would be a standard for Social ?
     • A basic heart providing basic services :
      • OAuth and Rest request
      • Multi Social Media connections
      • Polymorphic services to enforce standard on social Media
      • Connector definition for Social module


     • So this standard would be a kind Java Social
       Connector definition standard


34
From JSR 357 to Agorava
     • Before Agorava there was Seam Social, part of the
       JBoss Seam 3 project
     • Early 2012, Seam was stopped to be merged in
       Apache DeltaSpike
     • Agorava was born mainly from Seam Social after JSR
       357 attempt
     • One of it’s goals is to be the missing POC
       for a new Java Social Standard
35
Differences to Spring Social
     • Spring Social works primarily with Spring
     • Other UI frameworks than Spring MVC are harder to
       integrate
     • Focus on Facebook, so far examples only provide
       Single Service support, unlike Agorava Multiservice
       approach


36
Differences to Spring Social (2)

     • Despite otherwise still somewhat active
       Spring community, even at SpringSource / VMware
       there’s doubt about support and activity, especially
       after some people left
     • Currently supports .NET, too




37
Differences to DaliCore
     • Also offering Social Container and CMS, partial
       OpenSocial support
     • Persistence support via EJB, JPA, etc.
     • Not so clear separation of modules, especially
       API/Spec and Implementation, in most cases they
       share same module and even package


                                                         49

38
Differences to DaliCore (2)
     • Currently seems a little heavier, strong dependencies
       on the Full Java EE stack, i.e. using only Web Profile
       or Java SE seems hard right now
     • Glassfish support and Integration
     • Demonstrated Scalability also under heavy usage



                                                                49

39
Differences to Oracle SocialLink
     • Feels almost like Eclipse or Microsoft project
       (ISocialNetwork)
     • Still very new, looks immature in several areas
     • Seemingly non-existent community support
     • No Modularity or separation between API and
       Implementation


                                                         50

40
Differences to Oracle SocialLink (2)
     • No Modularity or separation between API and
       Implementation
     • Makes less use of Java EE stack and standards than
       any of the other frameworks even Spring Social
     • Has fewer dependencies, thus could be ported to
       Desktop or Mobile/Embedded more easily
     • No clean Exception hierarchy

                                                            50

41
Agorava 0.5 Macro architecture
                        • Agorava core is the «smart
                          module» of the framework
                        • Modules are mainly REST
                          API and JSON mapping
                        • Today Agorava provides CDI
                          implementation only
                        • On the roadmap we plan to
                          provide:
                           • Full Java SE support (e.g. CDI 2)
                           • JSR 330 (Guice/Dagger or maybe
                             Spring) support

42
Demo




                                                              Let’s Dance...
43   Images © 2003 Universal Pictures. All Rights Reserved.
Agorava Book

     • A book about Agorava is
       scheduled for release to print
       and online (e.g. Amazon Kindle)
       this Spring.
     • Please check
       http://www.developer-press.com/
       for updates about it soon




44
Twitter
Links                                 #Java_Social
                                      @AgoravaProj
   • Agorava Project: http://agorava.org

   • DaliCore: http://java.net/projects/dalicore/

   • Oracle SocialLink:
     http://java.net/projects/sociallink/

Contenu connexe

Tendances

Guide to open source
Guide to open source Guide to open source
Guide to open source Javier Perez
 
Open Social Frameworks
Open Social FrameworksOpen Social Frameworks
Open Social Frameworksrsandhu1
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereKevin Pettitt
 
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)Rikkyo University
 
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFIBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFNiklas Heidloff
 
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来Rikkyo University
 
Open social gadgets in ibm connections
Open social gadgets in ibm connectionsOpen social gadgets in ibm connections
Open social gadgets in ibm connectionsVincent Burckhardt
 
Prakash Narayan Building Social Web V1
Prakash  Narayan    Building  Social  Web V1Prakash  Narayan    Building  Social  Web V1
Prakash Narayan Building Social Web V1SOA Symposium
 
Basics About Git & GitHub
Basics About Git & GitHubBasics About Git & GitHub
Basics About Git & GitHubRaiful Hasan
 
2009 CTSA Profiles OpenSocial Poster
2009 CTSA Profiles OpenSocial Poster2009 CTSA Profiles OpenSocial Poster
2009 CTSA Profiles OpenSocial Posterericmeeks
 

Tendances (12)

Guide to open source
Guide to open source Guide to open source
Guide to open source
 
Open Social Frameworks
Open Social FrameworksOpen Social Frameworks
Open Social Frameworks
 
ILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates EverywhereILUG 2008 Templates, Templates Everywhere
ILUG 2008 Templates, Templates Everywhere
 
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
Web技術の現状と将来 (Open Source Conference 2011 Tokyo Spring)
 
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFIBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
 
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
Open Source Conference 2010 福岡 W3C/Keio 講演 ウェブ技術の現状と将来
 
Open social gadgets in ibm connections
Open social gadgets in ibm connectionsOpen social gadgets in ibm connections
Open social gadgets in ibm connections
 
Prakash Narayan Building Social Web V1
Prakash  Narayan    Building  Social  Web V1Prakash  Narayan    Building  Social  Web V1
Prakash Narayan Building Social Web V1
 
Basics About Git & GitHub
Basics About Git & GitHubBasics About Git & GitHub
Basics About Git & GitHub
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
2009 CTSA Profiles OpenSocial Poster
2009 CTSA Profiles OpenSocial Poster2009 CTSA Profiles OpenSocial Poster
2009 CTSA Profiles OpenSocial Poster
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
 

En vedette

Secuencia didactica1
Secuencia didactica1Secuencia didactica1
Secuencia didactica1Daniela2386
 
Screen grabs of my contents page
Screen grabs of my contents pageScreen grabs of my contents page
Screen grabs of my contents pageleilahstott
 
Mpwrteam Apresentação Plataforma gtc
Mpwrteam Apresentação Plataforma gtc Mpwrteam Apresentação Plataforma gtc
Mpwrteam Apresentação Plataforma gtc mpwrteam
 
Credence 15 Years Updated Jan 18 AB
Credence 15 Years Updated Jan 18 ABCredence 15 Years Updated Jan 18 AB
Credence 15 Years Updated Jan 18 ABAman Bandvi
 
Plaquette NANON Côte d'Ivoire sarlu v-nci-2015-11
Plaquette NANON Côte d'Ivoire sarlu   v-nci-2015-11Plaquette NANON Côte d'Ivoire sarlu   v-nci-2015-11
Plaquette NANON Côte d'Ivoire sarlu v-nci-2015-11Othniel ZOKOU
 
UK Low Carbon Marketing Strategy
UK Low Carbon Marketing StrategyUK Low Carbon Marketing Strategy
UK Low Carbon Marketing StrategyMichael Ward
 
Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)
Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)
Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)UTPL UTPL
 
Secuencia didactica3
Secuencia didactica3Secuencia didactica3
Secuencia didactica3Daniela2386
 
Enfermedades transmitidas por los alimentos (ii bimestre)
Enfermedades transmitidas por los alimentos (ii bimestre)Enfermedades transmitidas por los alimentos (ii bimestre)
Enfermedades transmitidas por los alimentos (ii bimestre)UTPL UTPL
 
Informacion contable
Informacion contableInformacion contable
Informacion contablercontrer3
 
CAUE de l'Ain AG 2014
CAUE de l'Ain AG 2014CAUE de l'Ain AG 2014
CAUE de l'Ain AG 2014CAUE de l'Ain
 
Contents page analysis
Contents page analysisContents page analysis
Contents page analysisDavid Stout
 
ΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣ
ΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣ
ΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣ11dimalex
 
Sociale media en de onthaalbediende
Sociale media en de onthaalbediendeSociale media en de onthaalbediende
Sociale media en de onthaalbediendeTeamD5
 

En vedette (20)

Secuencia didactica1
Secuencia didactica1Secuencia didactica1
Secuencia didactica1
 
Marco de contabilidad sistematizada ii bn
Marco de contabilidad sistematizada ii bnMarco de contabilidad sistematizada ii bn
Marco de contabilidad sistematizada ii bn
 
Screen grabs of my contents page
Screen grabs of my contents pageScreen grabs of my contents page
Screen grabs of my contents page
 
Fernando pessoa
Fernando pessoaFernando pessoa
Fernando pessoa
 
Mpwrteam Apresentação Plataforma gtc
Mpwrteam Apresentação Plataforma gtc Mpwrteam Apresentação Plataforma gtc
Mpwrteam Apresentação Plataforma gtc
 
Credence 15 Years Updated Jan 18 AB
Credence 15 Years Updated Jan 18 ABCredence 15 Years Updated Jan 18 AB
Credence 15 Years Updated Jan 18 AB
 
Plaquette NANON Côte d'Ivoire sarlu v-nci-2015-11
Plaquette NANON Côte d'Ivoire sarlu   v-nci-2015-11Plaquette NANON Côte d'Ivoire sarlu   v-nci-2015-11
Plaquette NANON Côte d'Ivoire sarlu v-nci-2015-11
 
Synergy keynote
Synergy keynoteSynergy keynote
Synergy keynote
 
UK Low Carbon Marketing Strategy
UK Low Carbon Marketing StrategyUK Low Carbon Marketing Strategy
UK Low Carbon Marketing Strategy
 
Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)
Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)
Higiene personal (II Bimestre - Nutricion Dietetica e Higiene de los Alimentos)
 
Secuencia didactica3
Secuencia didactica3Secuencia didactica3
Secuencia didactica3
 
Enfermedades transmitidas por los alimentos (ii bimestre)
Enfermedades transmitidas por los alimentos (ii bimestre)Enfermedades transmitidas por los alimentos (ii bimestre)
Enfermedades transmitidas por los alimentos (ii bimestre)
 
Programación 12016
Programación 12016Programación 12016
Programación 12016
 
Informacion contable
Informacion contableInformacion contable
Informacion contable
 
Fotos tic chiclayo
Fotos  tic chiclayoFotos  tic chiclayo
Fotos tic chiclayo
 
CAUE de l'Ain AG 2014
CAUE de l'Ain AG 2014CAUE de l'Ain AG 2014
CAUE de l'Ain AG 2014
 
Contents page analysis
Contents page analysisContents page analysis
Contents page analysis
 
ΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣ
ΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣ
ΕΚΔΡΟΜΗ Ε΄ΤΑΞΗΣ
 
Question 2
Question 2Question 2
Question 2
 
Sociale media en de onthaalbediende
Sociale media en de onthaalbediendeSociale media en de onthaalbediende
Sociale media en de onthaalbediende
 

Similaire à Enterprise Social using Open Source Frameworks

Enterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like AgoravaEnterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like AgoravaWerner Keil
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open sourceTech Triveni
 
Devfest09 OpenSocial Enterprise
Devfest09 OpenSocial EnterpriseDevfest09 OpenSocial Enterprise
Devfest09 OpenSocial EnterpriseChris Schalk
 
Buiding application for social networks
Buiding application for social networksBuiding application for social networks
Buiding application for social networksĐỗ Duy Trung
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712weitzelm
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptOpenStack Foundation
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptOpenStack Foundation
 
The Social Semantic Web
The Social Semantic WebThe Social Semantic Web
The Social Semantic WebJohn Breslin
 
Java API for Social Media
Java API for Social MediaJava API for Social Media
Java API for Social MediaWerner Keil
 
Java API für Social Media
Java API für Social MediaJava API für Social Media
Java API für Social MediaWerner Keil
 
OpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseOpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseBenjamin Cabé
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014Steven Andrews
 
Global Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 ForecastGlobal Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 ForecastSammy Fung
 
Apache Geode - The First Six Months
Apache Geode -  The First Six MonthsApache Geode -  The First Six Months
Apache Geode - The First Six MonthsAnthony Baker
 

Similaire à Enterprise Social using Open Source Frameworks (20)

Enterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like AgoravaEnterprise 2.0 with Open Source Frameworks like Agorava
Enterprise 2.0 with Open Source Frameworks like Agorava
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
 
Devfest09 OpenSocial Enterprise
Devfest09 OpenSocial EnterpriseDevfest09 OpenSocial Enterprise
Devfest09 OpenSocial Enterprise
 
Buiding application for social networks
Buiding application for social networksBuiding application for social networks
Buiding application for social networks
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.ppt
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.ppt
 
The Social Semantic Web
The Social Semantic WebThe Social Semantic Web
The Social Semantic Web
 
Java API for Social Media
Java API for Social MediaJava API for Social Media
Java API for Social Media
 
Java API für Social Media
Java API für Social MediaJava API für Social Media
Java API für Social Media
 
OpenSocial gadgets at Eclipse
OpenSocial gadgets at EclipseOpenSocial gadgets at Eclipse
OpenSocial gadgets at Eclipse
 
Suguk Southampton CodePlex - March 2014
Suguk Southampton   CodePlex - March 2014Suguk Southampton   CodePlex - March 2014
Suguk Southampton CodePlex - March 2014
 
Global Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 ForecastGlobal Open Source Development 2011-2014 Review and 2015 Forecast
Global Open Source Development 2011-2014 Review and 2015 Forecast
 
Blackstock wo t 2011
Blackstock wo t 2011Blackstock wo t 2011
Blackstock wo t 2011
 
An Introduction to MIT's Drupal Cloud
An Introduction to MIT's Drupal CloudAn Introduction to MIT's Drupal Cloud
An Introduction to MIT's Drupal Cloud
 
The SIOC Project
The SIOC ProjectThe SIOC Project
The SIOC Project
 
Android Training
Android TrainingAndroid Training
Android Training
 
Apache Geode - The First Six Months
Apache Geode -  The First Six MonthsApache Geode -  The First Six Months
Apache Geode - The First Six Months
 

Plus de Werner Keil

Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Werner Keil
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021Werner Keil
 
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021Werner Keil
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualWerner Keil
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualWerner Keil
 
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRJCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRWerner Keil
 
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020Werner Keil
 
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Werner Keil
 
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Werner Keil
 
NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)Werner Keil
 
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR DayHow JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR DayWerner Keil
 
JNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesJNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesWerner Keil
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesEclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesWerner Keil
 
Physikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG MunichPhysikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG MunichWerner Keil
 
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Werner Keil
 
Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Werner Keil
 
Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Werner Keil
 
Java2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the CloudJava2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the CloudWerner Keil
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartWerner Keil
 
The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-BrandenburgThe First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-BrandenburgWerner Keil
 

Plus de Werner Keil (20)

Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21Securing eHealth, eGovernment and eBanking with Java - DWX '21
Securing eHealth, eGovernment and eBanking with Java - DWX '21
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021
 
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
How JSR 385 could have Saved the Mars Climate Orbiter - Zurich IoT Day 2021
 
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 VirtualOpenDDR and Jakarta MVC - Java2Days 2020 Virtual
OpenDDR and Jakarta MVC - Java2Days 2020 Virtual
 
NoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 VirtualNoSQL Endgame - Java2Days 2020 Virtual
NoSQL Endgame - Java2Days 2020 Virtual
 
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDRJCON 2020: Mobile Java Web Applications with MVC and OpenDDR
JCON 2020: Mobile Java Web Applications with MVC and OpenDDR
 
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
How JSR 385 could have Saved the Mars Climate Orbiter - JFokus 2020
 
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
Money, Money, Money, can be funny with JSR 354 (Devoxx BE)
 
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)Money, Money, Money, can be funny with JSR 354 (DWX 2019)
Money, Money, Money, can be funny with JSR 354 (DWX 2019)
 
NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)NoSQL: The first New Jakarta EE Specification (DWX 2019)
NoSQL: The first New Jakarta EE Specification (DWX 2019)
 
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR DayHow JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
How JSR 385 could have Saved the Mars Climate Orbiter - Adopt-a-JSR Day
 
JNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL DatabasesJNoSQL: The Definitive Solution for Java and NoSQL Databases
JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL DatabasesEclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
Eclipse JNoSQL: The Definitive Solution for Java and NoSQL Databases
 
Physikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG MunichPhysikal - Using Kotlin for Clean Energy - KUG Munich
Physikal - Using Kotlin for Clean Energy - KUG Munich
 
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
Physikal - JSR 363 and Kotlin for Clean Energy - Java2Days 2017
 
Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017Performance Monitoring for the Cloud - Java2Days 2017
Performance Monitoring for the Cloud - Java2Days 2017
 
Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363Eclipse Science F2F 2016 - JSR 363
Eclipse Science F2F 2016 - JSR 363
 
Java2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the CloudJava2Days - Security for JavaEE and the Cloud
Java2Days - Security for JavaEE and the Cloud
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-BrandenburgThe First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
The First IoT JSR: Units of Measurement - JUG Berlin-Brandenburg
 

Dernier

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Dernier (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Enterprise Social using Open Source Frameworks

  • 1.
  • 2. ENTERPRISE SOCIAL USING OPEN SOURCE FRAMEWORKS like Agorava Social Media Week Hamburg Werner Keil Hamburg, Deutschland 18 / 02 / 13
  • 3. Twitter Werner Keil - Bio @wernerkeil • Consultant – Coach • Creative Cosmopolitan • Open Source Evangelist • Software Architect • Java Godfather • JCP Executive Committee Member • Eclipse UOMo Project Lead 3 • DevOps Guy
  • 4. Proliferation 4 © 2010-2013 Creative Arts & Technologies
  • 5. Proliferation of Social Media 5 © 2010-2013 Creative Arts & Technologies
  • 6. Social Gaga 6 © 2010-2013 Creative Arts & Technologies
  • 7. Before JSR 357 (Java Social) 7
  • 8. Twitter4J • Twitter4J is an unofficial Java library for Twitter API. With Twitter4J, you can easily integrate your Java application with Twitter. • Its author, Yusuke Yamamoto used to work at Twitter. While he did, he was briefly meant to represent Twitter in the Social JSR EG. • It’s light and based on Java 1.4 to be integrated in mobile app for instance 8
  • 9. Scribe Java • Scribe is Java framework that provides basic OAuth function • It also contains configuration for a lot of Social Media • Only one dependency on Apache Common Codec • At the heart of Agorava 0.5 9
  • 10. DaliCore – CMS • More than a CMS → DaliCore • Adds functionality common to users, content and permissions on top of Java EE 6. • Focus on Users and Permissions. • In about every DaliCore project, users should be able to login with existing credentials (Facebook, Twitter, Google Connect,...) • Dali modules extend DaliCore 10
  • 11. Spring Social • Spring social that inspired Seam Social and Agorava and has been around a bit longer • Spring Social module were used to create first Agorava modules (thanks to OSS and ASL2) • But it’s Spring only module.... 11
  • 12. Along came JSR 357 • In march 2012 on Werner Keil’s initiative, Java Social was submitted to the JCP to become a JSR • It proposed to standardize high level access to Social Media for the Java Platform • It was voted down by 8 votes against 5 12 Images © 2003 Universal Pictures. All Rights Reserved.
  • 13. What went Wrong? (Feedback from vote) 13
  • 14. Too Broad ? Maybe... 14
  • 15. Too Soon? Lack of real POC... 15
  • 16. It can’t be standardized? FALSE 16
  • 17. Standard part in Social Media • All social medias use REST as transmission protocol • Most of them transmit data in JSON format and some in XML • Identification & Authentication are almost entirely based on OAuth protocol 17
  • 18. REST • REpresentational State Transfer : Requests about resource representation (customer, book, order) • REST is based on low level HTTP concepts • Each resource has a unique identifier (an URI). 4 HTTP verbs can be applied to a URI : GET, POST, PUT, DELETE • Java has a standard for REST: JAX-RS. Version 1.0 doesn’t provide client API yet. JAX-RS 2.0 will 18 provide one
  • 19. JSON • JavaScript Object Notation: 1: { 2: 3: "firstName": "John", "lastName" : "Smith", Data format inspired by 4: "age" : 25, 5: 6: "address" : { JavaScript. It became a 7: "streetAddress": "21 2nd Street", 8: 9: "city" "state" : "New York", : "NY", standard for online services 10: "postalCode" : "10021" 11: 12: }, "phoneNumber": including Social Media. 13: [ 14: { 15: "type" : "home", 16: "number": "212 555-1234" 17: }, 18: { 19: "type" : "fax", 20: "number": "646 555-4567" 21: } 22: ] 23: } 19
  • 20. OAuth • OAuth is a protocol to delegate rights for an application to act on the behalf of an user who granted its rights without giving away login / password • Developed by Twitter, Magnolia and Google, it was made standard by IETF in April 2010 under RFC 5849 • Version 2.0, simpler to use but often criticized for too many implementation was standardized in October 2012 under RFC 6749 and 6750. It’s already used by many actors (Facebook, Google, Microsoft) 20
  • 21. OAuth (2) • All Social Media services are based on OAuth 1.0a or 2.0. • To use OAuth, one has to create an application on the targeted service to have an entry point for consumer 21
  • 22. OAuth has 3 steps • Creating an application in an OAuth Social Media service • Initialization: the right granting phase also called the OAuth Dance. At the end of the dance we obtain an access token (formed by a public and secret part) to use in the next step • Signature: each request is signed with an access token identifying the OAuth application that’s been granted rights 22 Images © 2003 Universal Pictures. All Rights Reserved.
  • 23. Standards that didn’t make it 23 Images © 2003 Universal Pictures. All Rights Reserved.
  • 24. OpenSocial • Become an OpenSocial Container Get Shindig (PHP or Java) or the Google implementations* • http://shindig.apache.org OpenSocial Container • Look at examples & documentation • http://code.google.com/p/opensocial-resources/wiki/SampleApps • * See later why 24
  • 25. OpenSocial – Shindig • Open source implementation of OpenSocial & Gadgets specification • An Apache Software project • Available in Java & PHP • http://shindig.apache.org It’s Goal: “Shindig's goal was to allow new sites to start hosting social apps in under an hour's worth of work“ • Those who tried it confirm, this failed quite miserably 25 25
  • 26. OpenSocial – What is a Gadget? Simple gadgets for getting a Grid proxy credential and running remote commands. Both run on my own Web server. 26
  • 27. OpenSocial Fork • Death Star The “official” OpenSocial implementation has shifted – from Shindig to Google Code https://code.google.com/p/opensocial- resources/ And just plans to move yet again, this time to GitHub! In fact, Google’s OpenSocial Ruby Gem moved there 4 years ago, and the code hasn’t changed since https://github.com/revans/opensocial (original Google Code SVN by MySpace also still exists;-) 27
  • 28. Who uses OpenSocial? • OpenSocial Empire • MySpace • Orkut • Friendster • Hi5 • Jive • IBM (Lotus Notes;-) 28
  • 29. Who does not use OpenSocial? • Rebel Alliance • Facebook • Twitter • LinkedIn • XING* • Yammer • Foursquare • Google+ ... * Abandoned it for lack of Security among other reasons 29
  • 30. What’s said about OpenSocial? • OpenSocial is what Google created for MySpace (Yammer CTO and co-founder Adam Pisoni) • Out of the box, most gadgets are publicly available content that do not require authentication and authorization. (ThoughtWorks Studios about OpenSocial gadgets) 30
  • 31. What’s said about OpenSocial (2) • OpenSocial is a specification that provides a standard way to share content between semi-trusted applications. • While initially proposed for public facing social networking sites, it has possibly more potential within the corporate firewall (ThoughtWorks Radar, March 2012) 31
  • 32. SocialSite – Sun’s Approach to Social Sun Microsystems Socialsite: Shindig + gadget based UI written in Java Open Source https://socialsite.dev.java.net/ 32
  • 33. The non Standard parts • No standard identity management or any other API across Social Media • More than that. There is no Social Media that guarantee: • Its API won’t change for a given period • Backward compatibility when its API change 33
  • 34. What would be a standard for Social ? • A basic heart providing basic services : • OAuth and Rest request • Multi Social Media connections • Polymorphic services to enforce standard on social Media • Connector definition for Social module • So this standard would be a kind Java Social Connector definition standard 34
  • 35. From JSR 357 to Agorava • Before Agorava there was Seam Social, part of the JBoss Seam 3 project • Early 2012, Seam was stopped to be merged in Apache DeltaSpike • Agorava was born mainly from Seam Social after JSR 357 attempt • One of it’s goals is to be the missing POC for a new Java Social Standard 35
  • 36. Differences to Spring Social • Spring Social works primarily with Spring • Other UI frameworks than Spring MVC are harder to integrate • Focus on Facebook, so far examples only provide Single Service support, unlike Agorava Multiservice approach 36
  • 37. Differences to Spring Social (2) • Despite otherwise still somewhat active Spring community, even at SpringSource / VMware there’s doubt about support and activity, especially after some people left • Currently supports .NET, too 37
  • 38. Differences to DaliCore • Also offering Social Container and CMS, partial OpenSocial support • Persistence support via EJB, JPA, etc. • Not so clear separation of modules, especially API/Spec and Implementation, in most cases they share same module and even package 49 38
  • 39. Differences to DaliCore (2) • Currently seems a little heavier, strong dependencies on the Full Java EE stack, i.e. using only Web Profile or Java SE seems hard right now • Glassfish support and Integration • Demonstrated Scalability also under heavy usage 49 39
  • 40. Differences to Oracle SocialLink • Feels almost like Eclipse or Microsoft project (ISocialNetwork) • Still very new, looks immature in several areas • Seemingly non-existent community support • No Modularity or separation between API and Implementation 50 40
  • 41. Differences to Oracle SocialLink (2) • No Modularity or separation between API and Implementation • Makes less use of Java EE stack and standards than any of the other frameworks even Spring Social • Has fewer dependencies, thus could be ported to Desktop or Mobile/Embedded more easily • No clean Exception hierarchy 50 41
  • 42. Agorava 0.5 Macro architecture • Agorava core is the «smart module» of the framework • Modules are mainly REST API and JSON mapping • Today Agorava provides CDI implementation only • On the roadmap we plan to provide: • Full Java SE support (e.g. CDI 2) • JSR 330 (Guice/Dagger or maybe Spring) support 42
  • 43. Demo Let’s Dance... 43 Images © 2003 Universal Pictures. All Rights Reserved.
  • 44. Agorava Book • A book about Agorava is scheduled for release to print and online (e.g. Amazon Kindle) this Spring. • Please check http://www.developer-press.com/ for updates about it soon 44
  • 45. Twitter Links #Java_Social @AgoravaProj • Agorava Project: http://agorava.org • DaliCore: http://java.net/projects/dalicore/ • Oracle SocialLink: http://java.net/projects/sociallink/