45
ENTERPRISE 2.0 WITH OPEN SOURCE Frameworks like Agorava

Enterprise 2.0 with Open Source Frameworks like Agorava

Embed Size (px)

Citation preview

Page 1: Enterprise 2.0 with Open Source Frameworks like Agorava

ENTERPRISE 2.0 WITH OPEN SOURCE

Frameworks like Agorava

Page 2: Enterprise 2.0 with Open Source Frameworks like Agorava

Who am I?

2 © 2012-2016 Creative Arts & Technologies

Werner Keil

• Consultant – Coach• Creative Cosmopolitan• Open Source Evangelist• Software Architect• JCP EC Member• Agorava Co Founder• JSR-363 Co Spec Lead• IoT Enabler …

Twitter @wernerkeil

Email [email protected]

Page 3: Enterprise 2.0 with Open Source Frameworks like Agorava

Proliferation

3 © 2012-2016 Creative Arts & Technologies

Page 4: Enterprise 2.0 with Open Source Frameworks like Agorava

Proliferation of Social Media

4 © 2012-2016 Creative Arts & Technologies

Page 5: Enterprise 2.0 with Open Source Frameworks like Agorava

Social Gaga

Image © 2012 Lady Gaga. All Rights Reserved.

Page 6: Enterprise 2.0 with Open Source Frameworks like Agorava

Before Java Social(JSR 357)

6 © 2012-2016 Creative Arts & Technologies

Page 7: Enterprise 2.0 with Open Source Frameworks like Agorava

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 8: Enterprise 2.0 with Open Source Frameworks like Agorava

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 9: Enterprise 2.0 with Open Source Frameworks like Agorava

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 10: Enterprise 2.0 with Open Source Frameworks like Agorava

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 11: Enterprise 2.0 with Open Source Frameworks like Agorava

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 12: Enterprise 2.0 with Open Source Frameworks like Agorava

What went Wrong? (Feedback from vote)

Page 13: Enterprise 2.0 with Open Source Frameworks like Agorava

Too Broad?

Maybe...

Page 14: Enterprise 2.0 with Open Source Frameworks like Agorava

14

Too Soon?

Lack of real POC...

Page 15: Enterprise 2.0 with Open Source Frameworks like Agorava

15

It can’t be standardized?

FALSE

Page 16: Enterprise 2.0 with Open Source Frameworks like Agorava

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

Page 17: Enterprise 2.0 with Open Source Frameworks like Agorava

17

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 didn’t provide client API yet, JAX-RS 2.0 does

Page 18: Enterprise 2.0 with Open Source Frameworks like Agorava

18

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: }

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

Page 19: Enterprise 2.0 with Open Source Frameworks like Agorava

19

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 20: Enterprise 2.0 with Open Source Frameworks like Agorava

20

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 21: Enterprise 2.0 with Open Source Frameworks like Agorava

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 22: Enterprise 2.0 with Open Source Frameworks like Agorava

Standards that didn’t make it

Some Images © 2003 Universal Pictures. All Rights Reserved.

Page 23: Enterprise 2.0 with Open Source Frameworks like Agorava

23

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/SampleApps

• * See later why

OpenSocial

Page 24: Enterprise 2.0 with Open Source Frameworks like Agorava

24

• 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•And in 2015 Apache archived Shindig

OpenSocial – Shindig

Page 25: Enterprise 2.0 with Open Source Frameworks like Agorava

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

OpenSocial – What is a Gadget?

25 © 2012-2016 Creative Arts & Technologies

Page 26: Enterprise 2.0 with Open Source Frameworks like Agorava

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 sincehttps://github.com/revans/opensocial (original Google Code SVN by MySpace also still exists;-)

OpenSocial Fork

26 © 2012-2016 Creative Arts & Technologies

Page 27: Enterprise 2.0 with Open Source Frameworks like Agorava

27

Who uses OpenSocial?•Social “Herrings”

• MySpace• Orkut• Friendster• Hi5• Jive• IBM (Lotus Notes;-)

Page 28: Enterprise 2.0 with Open Source Frameworks like Agorava

28

Who does not useOpenSocial?

•Big “Fish”• Facebook• Twitter• LinkedIn• XING*• Yammer• Foursquare• Google+

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

Page 29: Enterprise 2.0 with Open Source Frameworks like Agorava

29

• 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)

What’s said about OpenSocial

Page 30: Enterprise 2.0 with Open Source Frameworks like Agorava

30

• 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 was proposed as W3C recommendation

What’s said about OpenSocial (2)

Page 31: Enterprise 2.0 with Open Source Frameworks like Agorava

31

Sun MicrosystemsSocialsite: Shindig + gadget based UI

written in JavaOpen Source https://socialsite.dev.java.net/ 

SocialSite – Sun’s Approach to Social

Page 32: Enterprise 2.0 with Open Source Frameworks like Agorava

32

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

• Backward compatibility when its API changes

Page 33: Enterprise 2.0 with Open Source Frameworks like Agorava

33

•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

What would be a standard for Social?

Page 34: Enterprise 2.0 with Open Source Frameworks like Agorava

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 POCfor a new Java Social Standard

Page 35: Enterprise 2.0 with Open Source Frameworks like Agorava

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 36: Enterprise 2.0 with Open Source Frameworks like Agorava

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 37: Enterprise 2.0 with Open Source Frameworks like Agorava

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

•DaliCore no longer Open Source

37 © 2012-2016 Creative Arts & Technologies

Page 38: Enterprise 2.0 with Open Source Frameworks like Agorava

49

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 IntegrationOracle stopped professional GF support

•Demonstrated Scalability also under heavy usage

38 © 2012-2016 Creative Arts & Technologies

Page 39: Enterprise 2.0 with Open Source Frameworks like Agorava

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

•Last commit 3 years ago, so it’s practically dead

39 © 2012-2016 Creative Arts & Technologies

Page 40: Enterprise 2.0 with Open Source Frameworks like Agorava

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

Page 41: Enterprise 2.0 with Open Source Frameworks like Agorava

In Memoriam

January 8, 1947 – January 10, 2016

David Bowie

Image © 1983 EMI America Records. All Rights Reserved.

Page 42: Enterprise 2.0 with Open Source Frameworks like Agorava

Image © 2003 Universal Pictures. All Rights Reserved.

Let’s Dance...emo...

Page 43: Enterprise 2.0 with Open Source Frameworks like Agorava

43

Agorava Book

• A first book about Agorava is scheduled for release to print and online (Amazon, Google Play!, iTunes) this Spring.

Page 44: Enterprise 2.0 with Open Source Frameworks like Agorava

• Agorava Project:http://agorava.org

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

#Agorava@wernerkeil@AgoravaProj

Links

44

Page 45: Enterprise 2.0 with Open Source Frameworks like Agorava

Q & A