Download - Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

Transcript
Page 1: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

Frameworks like Agorava

ENTERPRISE 2.0 WITH OPEN SOURCE

Page 2: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)
Page 3: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

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)

Proliferation

Page 5: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

Proliferation of Social Media

Page 6: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

Social Gaga

Image © 2012 Lady Gaga. All Rights Reserved.

Page 7: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

Before Java Social(JSR 357)

Page 8: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

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)

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)

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)

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)

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)

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)

What went Wrong? (Feedback from vote)

Page 15: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

Too Broad?

Maybe...

Page 16: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

Too Soon?

Maybe...

Lack of real POC...

Page 17: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

It can’t be standardized?

Maybe...FALSE

Page 18: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Image © 2003 Universal Pictures. All Rights Reserved.

Let’s Dance...emo...

Page 42: Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)

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)

• Agorava Project:http://agorava.org

• Github:https://github.com/agorava

• JBoss Developer Framework:http://www.jboss.org/jdf/about/roadmap/

#smwagorava@wernerkeil@AgoravaProj

Links