![Page 1: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/1.jpg)
Frameworks like Agorava
ENTERPRISE 2.0 WITH OPEN SOURCE
![Page 2: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/2.jpg)
![Page 3: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/3.jpg)
Werner Keil | Bio
• Consultant – Coach• Creative Cosmopolitan• Software Architect• Java Godfather• JCP Executive Committee Member• Eclipse UOMo Project Lead• Agorava Cofounder• ETCS Guy
@wernerkeil
![Page 4: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/4.jpg)
Proliferation
![Page 5: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/5.jpg)
Proliferation of Social Media
![Page 6: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/6.jpg)
Social Gaga
Image © 2012 Lady Gaga. All Rights Reserved.
![Page 7: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/7.jpg)
Before Java Social(JSR 357)
![Page 8: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/8.jpg)
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 (357) EG.
• It’s light and compatible even with Java 1.4 to be integrated e.g. in mobile apps
![Page 9: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/9.jpg)
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
• Was at the heart of Agorava 0.5
![Page 10: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/10.jpg)
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
![Page 11: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/11.jpg)
Spring Social
• Spring social somewhat inspirational to Seam Social and Agorava 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 a only module....
![Page 12: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/12.jpg)
In Memoriam
July 23, 1967 – February 2, 2014
PHILIP SEYMOUR HOFFMAN
Image © 2003 Universal Pictures. All Rights Reserved.
![Page 13: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/13.jpg)
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
Image © 2003 Universal Pictures. All Rights Reserved.
![Page 14: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/14.jpg)
What went Wrong? (Feedback from vote)
![Page 15: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/15.jpg)
Too Broad?
Maybe...
![Page 16: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/16.jpg)
Too Soon?
Maybe...
Lack of real POC...
![Page 17: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/17.jpg)
It can’t be standardized?
Maybe...FALSE
![Page 18: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/18.jpg)
Standard part in Social Media
Maybe...
18
• 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
![Page 19: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/19.jpg)
Maybe...
19
REST
• REpresentational State Transfer : Requests about resource representation (customer, book, order)
• REST is based on low level HTTP• Each resource has a unique identifier (URI). 4
HTTP verbs can be applied to a URI : GET, POST, PUT, DELETE
• Java has REST standard: JAX-RS. Version 1.0 doesn’t provide client API yet, JAX-RS 2.0 does
![Page 20: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/20.jpg)
Maybe...
20
JSON
1: { 2: "firstName": "John", 3: "lastName" : "Smith", 4: "age" : 25, 5: "address" : 6: { 7: "streetAddress": "21 2nd Street", 8: "city" : "New York", 9: "state" : "NY",10: "postalCode" : "10021"11: },12: "phoneNumber":13: [14: {15: "type" : "home",16: "number": "212 555-1234"17: },18: {19: "type" : "fax",20: "number": "646 555-4567"21: }22: ]23: }
• JavaScript Object Notation: Data format inspired by JavaScript. It became a standard for online services including Social Media.
![Page 21: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/21.jpg)
21
OAuth
• OAuth is a protocol to delegate rightsfor an application to act on the behalf of a 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
![Page 22: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/22.jpg)
22
OAuth (2)
• Version 2.0, simpler to use but often criticized for too many implementation was standardized in October 2012 under RFC 6749 and 6750. Already widely used (Facebook, Google, Microsoft)
• 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
![Page 23: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/23.jpg)
23
OAuth has 3 steps
• Creating an application in an OAauth service
• Initialization: right grantingphase also called OAuth Dance. At its end we obtain an access token (formed by public and secret part) to use in next step
• Signature: each request is signed with an access token identifying the OAuth application granted rights to
Image © 2003 Universal Pictures. All Rights Reserved.
![Page 24: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/24.jpg)
24
Standards that didn’t make it
Some Images © 2003 Universal Pictures. All Rights Reserved.
![Page 25: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/25.jpg)
OpenSocial
25
OpenSocial Container
• Become an OpenSocial ContainerGet Shindig (PHP or Java) or Google implementations*• http://shindig.apache.org
– Look at examples & documentation• http://code.google.com/p/opensocial-resources/wiki/Sam
pleApps
» * See later why
![Page 26: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/26.jpg)
OpenSocial – Shindig
26
– 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
![Page 27: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/27.jpg)
OpenSocial – What is a Gadget?
Simple gadgets for getting a Grid proxy credential and running remote commands. Both run on my ownWeb server.
27
![Page 28: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/28.jpg)
OpenSocial ForkThe “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;-)
28
![Page 29: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/29.jpg)
Who uses OpenSocial?
29
• Social “Herrings”– MySpace– Orkut– Friendster– Hi5– Jive– IBM (formerly known as Lotus Notes;-)
![Page 30: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/30.jpg)
Who does not useOpenSocial?
30
• Big “Fish”– Facebook– Twitter– LinkedIn– XING*– Yammer– Foursquare– Google+
... * Abandoned it for lack of Security among other reasons
![Page 31: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/31.jpg)
What’s said about OpenSocial
31
– 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)
![Page 32: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/32.jpg)
What’s said about OpenSocial (2)
32
– 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 potentialwithin the corporate firewall(ThoughtWorks Radar, March 2012)
– Latest twist: OpenSocial is now proposed as W3C recommendation
![Page 33: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/33.jpg)
The non Standard parts
33
• No standard identity management or any other API across Social Media(for Java JSR 351 tries to establish that)
• More than that. There is no Social Media that guarantee:– Its API won’t change for a given period
– Backward compatibility when its API changes
![Page 34: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/34.jpg)
What would be a standard for Social?
34
• 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
![Page 35: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/35.jpg)
From JSR 357 to Agorava
35
• 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 POCfor a new Java Social Standard
![Page 36: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/36.jpg)
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
![Page 37: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/37.jpg)
Differences to Spring Social (2)
• Despite otherwise still somewhat activeSpring community, even at Pivotal / VMware there’s doubt about support and activity, especially after some people left
• Currently supports .NET, too
![Page 38: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/38.jpg)
Differences to DaliCore
38
• 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
![Page 39: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/39.jpg)
Differences to DaliCore (2)
39
• 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 IntegrationOracle stopped professional GF support
• Demonstrated Scalability also under heavy usage
![Page 40: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/40.jpg)
Agorava 0.7 Macro architecture
40
– Agorava core is the «smart module» of the framework
– Modules are mainly REST API and JSON mapping
– Agorava provides full CDI implementation
– In progress from 0.7 on:
• Full Java SE support (e.g. CDI 2)
• JSR 330 (Guice | Dagger, maybe Spring) support
![Page 41: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/41.jpg)
Image © 2003 Universal Pictures. All Rights Reserved.
Let’s Dance...emo...
![Page 42: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/42.jpg)
Agorava Book
42
– A first book about Agorava is scheduled for release to print and online (Amazon, Google Play!, iTunes) this Spring.
– Please checkhttp://developerpress.com/en/enterprise-20-agorava-0/
![Page 43: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)](https://reader033.vdocuments.us/reader033/viewer/2022061202/546b98b7af7959df2b8b60bf/html5/thumbnails/43.jpg)
• Agorava Project:http://agorava.org
• Github:https://github.com/agorava
• JBoss Developer Framework:http://www.jboss.org/jdf/about/roadmap/
#smwagorava@wernerkeil@AgoravaProj
Links