SlideShare a Scribd company logo
1 of 43
ENTERPRISE 2.0 WITH OPEN SOURCE
Frameworks like Agorava

#SMWCPH
#SMWCPH
Werner Keil | Bio
•
•
•
•
•
•
•
•

Consultant – Coach
Creative Cosmopolitan
Software Architect
Java Godfather
JCP Executive Committee Member
Eclipse UOMo Project Lead
Agorava Cofounder
ETCS Guy

@wernerkeil

#SMWCPH
Proliferation

#SMWCPH
Proliferation of Social Media

#SMWCPH
Social Gaga

Image © 2012 Lady Gaga. All Rights Reserved.

#SMWCPH
Before Java Social
(JSR 357)

#SMWCPH
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
#SMWCPH
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
#SMWCPH
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

#SMWCPH
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....

#SMWCPH
In Memoriam
PHILIP SEYMOUR HOFFMAN

July 23, 1967 – February 2, 2014

Image © 2003 Universal Pictures. All Rights Reserved.

#SMWCPH
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.

#SMWCPH
What went Wrong?
(Feedback from vote)

#SMWCPH
Too Broad?

Maybe...
#SMWCPH
Too Soon?

Lack of real POC...
16

#SMWCPH
It can’t be standardized?

FALSE
17

#SMWCPH
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
18

#SMWCPH
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
#SMWCPH
yet, JAX-RS 2.0 does

19
JSON
1: {
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23: }

"firstName": "John",
"lastName" : "Smith",
"age"
: 25,
"address" :
{
"streetAddress": "21 2nd Street",
"city"
: "New York",
"state"
: "NY",
"postalCode" : "10021"
},
"phoneNumber":
[
{
"type" : "home",
"number": "212 555-1234"
},
{
"type" : "fax",
"number": "646 555-4567"
}
]

20

• JavaScript Object
Notation: Data format
inspired by
JavaScript. It became
a standard for online
services including
Social Media.

#SMWCPH
OAuth
• OAuth is a protocol to delegate rights
for 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

21

#SMWCPH
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 #SMWCPH

22
OAuth has 3 steps
• Creating an application in
an OAauth service
• Initialization: right granting
phase 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
#SMWCPH

Image © 2003 Universal Pictures. All Rights Reserved.
Standards that
didn’t make it

Some Images © 2003 Universal Pictures. All Rights Reserved.

#SMWCPH
OpenSocial
• Become an
OpenSocial Container
Get Shindig (PHP or Java)
or Google implementations*

OpenSocial Container

• http://shindig.apache.org

– Look at examples & documentation
• http://code.google.com/p/opensocialresources/wiki/SampleApps
25

» * See later why

#SMWCPH
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
26

#SMWCPH
OpenSocial – What is a
Gadget?

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

#SMWCPH
OpenSocial Fork
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;-)

28

#SMWCPH
Who uses OpenSocial?
• Social “Herrings”
– MySpace
– Orkut
– Friendster
– Hi5
– Jive
– IBM (Lotus Notes;-)

29

#SMWCPH
Who does not use
OpenSocial?
• Big “Fish”
– Facebook
– Twitter
– LinkedIn
– XING*
– Yammer
– Foursquare
– Google+

...
30

* Abandoned it for lack of Security among other reasons

#SMWCPH
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)

31

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

– Latest twist: OpenSocial is now proposed as
W3C recommendation
32

#SMWCPH
The non Standard parts
• 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

34

– Backward compatibility when its API
changes
#SMWCPH
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
35

#SMWCPH
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
36

#SMWCPH
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

#SMWCPH
Differences to
Spring Social (2)
• Despite otherwise still somewhat active
Spring community, even at Pivotal /
Vmware there’s doubt about support and
activity, especially after some people left
• Currently supports .NET, too

#SMWCPH
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

39

#SMWCPH
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
Oracle stopped professional GF support
• Demonstrated Scalability also under
heavy usage
49

40

#SMWCPH
Agorava 0.7
Macro architecture
– 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

43

#SMWCPH
Image © 2003 Universal Pictures. All Rights Reserved.

Let’s Dance... #SMWCPH
emo...
Agorava Book
– A first book about Agorava is
scheduled for release to print
and online (Amazon, Google
Play!, iTunes) this Spring.
– Please check
http://developerpress.com/en
/enterprise-20-agorava-0/

45

#SMWCPH
Links
• Agorava Project:
http://agorava.org

#smwagorava
@wernerkeil
@AgoravaProj

• Github:
https://github.com/agorava
• JBoss Developer Framework:
http://www.jboss.org/jdf/about/roadmap/

#SMWCPH

More Related Content

What's hot

Eunis federation2
Eunis federation2Eunis federation2
Eunis federation2
HEAnet
 

What's hot (10)

Management de communaute
Management de communauteManagement de communaute
Management de communaute
 
Using Liferay Portal with LDAP and Single sign-on
Using Liferay Portal with LDAP and Single sign-onUsing Liferay Portal with LDAP and Single sign-on
Using Liferay Portal with LDAP and Single sign-on
 
GR8Conf 2009. The Grails Plugin System by Graeme Rocher
GR8Conf 2009. The Grails Plugin System by Graeme RocherGR8Conf 2009. The Grails Plugin System by Graeme Rocher
GR8Conf 2009. The Grails Plugin System by Graeme Rocher
 
Solr's missing plugin ecosystem
Solr's missing plugin ecosystemSolr's missing plugin ecosystem
Solr's missing plugin ecosystem
 
State of the Ecosystem - Atlassian Summit 2010
State of the Ecosystem - Atlassian Summit 2010State of the Ecosystem - Atlassian Summit 2010
State of the Ecosystem - Atlassian Summit 2010
 
Feed Herny developer training : crossplatform and HTML5
Feed Herny developer training : crossplatform and  HTML5Feed Herny developer training : crossplatform and  HTML5
Feed Herny developer training : crossplatform and HTML5
 
Top modules
Top modulesTop modules
Top modules
 
Eunis federation2
Eunis federation2Eunis federation2
Eunis federation2
 
Drupal 8 Initiatives
Drupal 8 InitiativesDrupal 8 Initiatives
Drupal 8 Initiatives
 
Modular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterModular Open Source in Java for Now and Later
Modular Open Source in Java for Now and Later
 

Similar to Enterprise 2.0 using Social Frameworks like Agorava (SMWCPH 2014)

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
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
daveayan
 
Best practices for using open source software in the enterprise
Best practices for using open source software in the enterpriseBest practices for using open source software in the enterprise
Best practices for using open source software in the enterprise
Marcel de Vries
 
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
MongoDB
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
Louis-Philippe Lavoie
 

Similar to Enterprise 2.0 using Social Frameworks like Agorava (SMWCPH 2014) (20)

Enterprise Social using Open Source Frameworks (SMWCPH)
Enterprise Social using Open Source Frameworks (SMWCPH)Enterprise Social using Open Source Frameworks (SMWCPH)
Enterprise Social using Open Source Frameworks (SMWCPH)
 
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...
 
Appleseed Social Networking
Appleseed Social NetworkingAppleseed Social Networking
Appleseed Social Networking
 
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
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
 
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
 
Best practices for using open source software in the enterprise
Best practices for using open source software in the enterpriseBest practices for using open source software in the enterprise
Best practices for using open source software in the enterprise
 
Apache Geode - The First Six Months
Apache Geode -  The First Six MonthsApache Geode -  The First Six Months
Apache Geode - The First Six Months
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
Socialite, the Open Source Status Feed Part 1: Design Overview and Scaling fo...
 
USG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 DaysUSG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 Days
 
Adopt A JSR - MoroccoJUG
Adopt A JSR - MoroccoJUGAdopt A JSR - MoroccoJUG
Adopt A JSR - MoroccoJUG
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
June 2014 HUG - Continuuity Loom : Cluster Management
June 2014 HUG - Continuuity Loom : Cluster ManagementJune 2014 HUG - Continuuity Loom : Cluster Management
June 2014 HUG - Continuuity Loom : Cluster Management
 
Building rich interface components with SharePoint
Building rich interface components with SharePointBuilding rich interface components with SharePoint
Building rich interface components with SharePoint
 
Towards Responsive Open Learning Environments: the ROLE Interoperability Fram...
Towards Responsive Open Learning Environments: the ROLE Interoperability Fram...Towards Responsive Open Learning Environments: the ROLE Interoperability Fram...
Towards Responsive Open Learning Environments: the ROLE Interoperability Fram...
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
 
2014 Q4 IAM Open Source Support Program Update
2014 Q4 IAM Open Source Support Program Update2014 Q4 IAM Open Source Support Program Update
2014 Q4 IAM Open Source Support Program Update
 

More from Werner Keil

More from 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
 

Recently uploaded

Capstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdfCapstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdf
eliklein8
 
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
ZurliaSoop
 
Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7
Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7
Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Production diary Film the city powerpoint
Production diary Film the city powerpointProduction diary Film the city powerpoint
Production diary Film the city powerpoint
 
Capstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdfCapstone slidedeck for my capstone final edition.pdf
Capstone slidedeck for my capstone final edition.pdf
 
Film show evaluation powerpoint for site
Film show evaluation powerpoint for siteFilm show evaluation powerpoint for site
Film show evaluation powerpoint for site
 
Website research Powerpoint for Bauer magazine
Website research Powerpoint for Bauer magazineWebsite research Powerpoint for Bauer magazine
Website research Powerpoint for Bauer magazine
 
Film show production powerpoint for site
Film show production powerpoint for siteFilm show production powerpoint for site
Film show production powerpoint for site
 
The Butterfly Effect
The Butterfly EffectThe Butterfly Effect
The Butterfly Effect
 
Ready to get noticed? Partner with Sociocosmos
Ready to get noticed? Partner with SociocosmosReady to get noticed? Partner with Sociocosmos
Ready to get noticed? Partner with Sociocosmos
 
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
Jual Obat Aborsi Palu ( Taiwan No.1 ) 085657271886 Obat Penggugur Kandungan C...
 
Film show pre-production powerpoint for site
Film show pre-production powerpoint for siteFilm show pre-production powerpoint for site
Film show pre-production powerpoint for site
 
Generate easy money from tiktok using this simple steps on the book.
Generate easy money from tiktok using this simple steps on the book.Generate easy money from tiktok using this simple steps on the book.
Generate easy money from tiktok using this simple steps on the book.
 
Unlock the power of Instagram with SocioCosmos. Start your journey towards so...
Unlock the power of Instagram with SocioCosmos. Start your journey towards so...Unlock the power of Instagram with SocioCosmos. Start your journey towards so...
Unlock the power of Instagram with SocioCosmos. Start your journey towards so...
 
Hire↠Young Call Girls in Hari Nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esco...
Hire↠Young Call Girls in Hari Nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esco...Hire↠Young Call Girls in Hari Nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esco...
Hire↠Young Call Girls in Hari Nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esco...
 
Call Girls In Gurgaon Dlf pHACE 2 Women Delhi ncr
Call Girls In Gurgaon Dlf pHACE 2 Women Delhi ncrCall Girls In Gurgaon Dlf pHACE 2 Women Delhi ncr
Call Girls In Gurgaon Dlf pHACE 2 Women Delhi ncr
 
Your LinkedIn Makeover: Sociocosmos Presence Package
Your LinkedIn Makeover: Sociocosmos Presence PackageYour LinkedIn Makeover: Sociocosmos Presence Package
Your LinkedIn Makeover: Sociocosmos Presence Package
 
This is a Powerpoint about research into the codes and conventions of a film ...
This is a Powerpoint about research into the codes and conventions of a film ...This is a Powerpoint about research into the codes and conventions of a film ...
This is a Powerpoint about research into the codes and conventions of a film ...
 
Vellore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Vellore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort ServiceVellore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
Vellore Call Girls Service ☎ ️82500–77686 ☎️ Enjoy 24/7 Escort Service
 
Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7
Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7
Call Girls in Chattarpur (delhi) call me [9953056974] escort service 24X7
 
Interpreting the brief for the media IDY
Interpreting the brief for the media IDYInterpreting the brief for the media IDY
Interpreting the brief for the media IDY
 
Enjoy Night⚡Call Girls Palam Vihar Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Palam Vihar Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Palam Vihar Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Palam Vihar Gurgaon >༒8448380779 Escort Service
 
Vip Call Girls Tilak Nagar ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Tilak Nagar ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Tilak Nagar ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Tilak Nagar ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Enterprise 2.0 using Social Frameworks like Agorava (SMWCPH 2014)

  • 1. ENTERPRISE 2.0 WITH OPEN SOURCE Frameworks like Agorava #SMWCPH
  • 3. Werner Keil | Bio • • • • • • • • Consultant – Coach Creative Cosmopolitan Software Architect Java Godfather JCP Executive Committee Member Eclipse UOMo Project Lead Agorava Cofounder ETCS Guy @wernerkeil #SMWCPH
  • 5. Proliferation of Social Media #SMWCPH
  • 6. Social Gaga Image © 2012 Lady Gaga. All Rights Reserved. #SMWCPH
  • 7. Before Java Social (JSR 357) #SMWCPH
  • 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 (357) EG. • It’s light and compatible even with Java 1.4 to be integrated e.g. in mobile apps #SMWCPH
  • 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 • Was at the heart of Agorava 0.5 #SMWCPH
  • 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 #SMWCPH
  • 11. 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.... #SMWCPH
  • 12. In Memoriam PHILIP SEYMOUR HOFFMAN July 23, 1967 – February 2, 2014 Image © 2003 Universal Pictures. All Rights Reserved. #SMWCPH
  • 13. 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. #SMWCPH
  • 14. What went Wrong? (Feedback from vote) #SMWCPH
  • 16. Too Soon? Lack of real POC... 16 #SMWCPH
  • 17. It can’t be standardized? FALSE 17 #SMWCPH
  • 18. 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 18 #SMWCPH
  • 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 #SMWCPH yet, JAX-RS 2.0 does 19
  • 20. JSON 1: { 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: } "firstName": "John", "lastName" : "Smith", "age" : 25, "address" : { "streetAddress": "21 2nd Street", "city" : "New York", "state" : "NY", "postalCode" : "10021" }, "phoneNumber": [ { "type" : "home", "number": "212 555-1234" }, { "type" : "fax", "number": "646 555-4567" } ] 20 • JavaScript Object Notation: Data format inspired by JavaScript. It became a standard for online services including Social Media. #SMWCPH
  • 21. OAuth • OAuth is a protocol to delegate rights for 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 21 #SMWCPH
  • 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 #SMWCPH 22
  • 23. OAuth has 3 steps • Creating an application in an OAauth service • Initialization: right granting phase 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 #SMWCPH Image © 2003 Universal Pictures. All Rights Reserved.
  • 24. Standards that didn’t make it Some Images © 2003 Universal Pictures. All Rights Reserved. #SMWCPH
  • 25. OpenSocial • Become an OpenSocial Container Get Shindig (PHP or Java) or Google implementations* OpenSocial Container • http://shindig.apache.org – Look at examples & documentation • http://code.google.com/p/opensocialresources/wiki/SampleApps 25 » * See later why #SMWCPH
  • 26. 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 26 #SMWCPH
  • 27. OpenSocial – What is a Gadget? Simple gadgets for getting a Grid proxy credential and running remote commands. Both run on my own Web server. 27 #SMWCPH
  • 28. OpenSocial Fork 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;-) 28 #SMWCPH
  • 29. Who uses OpenSocial? • Social “Herrings” – MySpace – Orkut – Friendster – Hi5 – Jive – IBM (Lotus Notes;-) 29 #SMWCPH
  • 30. Who does not use OpenSocial? • Big “Fish” – Facebook – Twitter – LinkedIn – XING* – Yammer – Foursquare – Google+ ... 30 * Abandoned it for lack of Security among other reasons #SMWCPH
  • 31. 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) 31 #SMWCPH
  • 32. What’s said about OpenSocial (2) – OpenSocial is a specification that provides a standard way to share content between semitrusted applications. – While initially proposed for public facing social networking sites, it has possibly more potential within the corporate firewall (ThoughtWorks Radar, March 2012) – Latest twist: OpenSocial is now proposed as W3C recommendation 32 #SMWCPH
  • 33. The non Standard parts • 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 34 – Backward compatibility when its API changes #SMWCPH
  • 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 35 #SMWCPH
  • 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 36 #SMWCPH
  • 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 #SMWCPH
  • 37. Differences to Spring Social (2) • Despite otherwise still somewhat active Spring community, even at Pivotal / Vmware there’s doubt about support and activity, especially after some people left • Currently supports .NET, too #SMWCPH
  • 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 39 #SMWCPH
  • 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 Oracle stopped professional GF support • Demonstrated Scalability also under heavy usage 49 40 #SMWCPH
  • 40. Agorava 0.7 Macro architecture – 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 43 #SMWCPH
  • 41. Image © 2003 Universal Pictures. All Rights Reserved. Let’s Dance... #SMWCPH emo...
  • 42. Agorava Book – A first book about Agorava is scheduled for release to print and online (Amazon, Google Play!, iTunes) this Spring. – Please check http://developerpress.com/en /enterprise-20-agorava-0/ 45 #SMWCPH
  • 43. Links • Agorava Project: http://agorava.org #smwagorava @wernerkeil @AgoravaProj • Github: https://github.com/agorava • JBoss Developer Framework: http://www.jboss.org/jdf/about/roadmap/ #SMWCPH