JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further...

32
Dr Mark Little, Red Hat, November 7th 2012. JBoss Polyglot: Java & Beyond 1 Wednesday, 7 November 12

Transcript of JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further...

Page 1: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Dr Mark Little,Red Hat,November 7th 2012.

JBoss Polyglot: Java & Beyond

1

Wednesday, 7 November 12

Page 2: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Introductionl Why are multiple languages interesting to JBoss?l What does it mean to be involved with these

languages?l What are we trying to accomplish with the communities?l What are we trying to accomplish with our

implementations?l Illustrate with some projectsl How you can get involved

l Userl Contributor

2

Wednesday, 7 November 12

Page 3: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

3Source : www.tiobe.com, Sept 2012

Wednesday, 7 November 12

Page 4: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

4

Developer explosionBuild

Integration

DataProcessMessagesApplications

Management/Provisioning

Databases

Web Services

Devices / Clients

Data Center

Enterprise Applications

Wednesday, 7 November 12

Page 5: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

The JVM...

The best VM for $LANGUAGE

5

Wednesday, 7 November 12

Page 6: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Before 20101 JVM, 1 Language

Polyglot

JVM JVM

Today1 JVM, Over 20 Languages

6

Wednesday, 7 November 12

Page 7: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

New language requirementsl Customers and community wants:

l Interoperabilityl Guaranteed message delivery

l Even in the presence of failuresl Transactions

l Though not necessarily ACIDl Audit trails and bullet-proof securityl Machine-readable SLAs

l N-tier approach with different languages

7

Wednesday, 7 November 12

Page 8: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Enterprise capabilitiesl Java in 1996 did not possess enterprise features

l J2EE took several years to evolvel Some implementations layered on existing services

l Popular JVM languages experiencing similar problem

l Lack of enterprise capabilitiesl Two ways to resolve

l Build from scratch in languagel Leverage existing implementations in other languages

8

Wednesday, 7 November 12

Page 9: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

JBoss AS...

The best app-server for $LANGUAGE

9

Wednesday, 7 November 12

Page 10: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

“Java EE is too bloated”l Differentiate between the standard and

implementationl Bloatware should be a thing of the past

l It is possible to be lightweight and enterprise ready

10

Wednesday, 7 November 12

Page 11: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

11

Wednesday, 7 November 12

Page 12: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

12

Wednesday, 7 November 12

Page 13: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

13

Wednesday, 7 November 12

Page 14: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Getting involved with communities

14

Wednesday, 7 November 12

Page 15: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Parallel communitiesl The language communityl The implementation communityl Work to ensure the JVM implementation of a

language is a first-class citizen

15

Charlie Nutter, Thomas Enebo

Douglas Campos, Bruno Oliveira

Wednesday, 7 November 12

Page 16: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

TorqueBox

lRuby on EAP 6

16

Bob McWhirter, Jim Crossley, Ben Browning, Toby Crawley, Lance Ball

Wednesday, 7 November 12

Page 17: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Beyond the basics

l Message-driven Ruby objectsl Scheduled Jobsl Services/Daemonsl Infinispan cachingl HA/Failover

17

Wednesday, 7 November 12

Page 18: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Further beyondl Asynchronous programming model based on

messaging

18

class MyClass include Backgroundable always_background :slow

def slow() sleep 60 endend

Wednesday, 7 November 12

Page 19: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Immutant

lClojure on EAP6

19

Jim Crossley, Toby Crawley

Wednesday, 7 November 12

Page 20: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

What you get ...

l HornetQl Infinispanl Quartzl XAl Clustering

20

Wednesday, 7 November 12

Page 21: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Dynamic deployment

l Service binding via code:

21

(require ‘[immutant.web :as web])

(defn my-handler [request] {:status 200 :headers {“Content-type” “text/html”} :body “Hello world!”})

(web/start “/hi” my-handler)

Wednesday, 7 November 12

Page 22: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Escalante

lScala on EAP 6

22

Galder Zamarreño

Wednesday, 7 November 12

Page 23: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Basics

l Multiple Lift apps on JBoss

l Multiple versions of Scalal Multiple versions of Lift

l Living happily together

23

Wednesday, 7 November 12

Page 24: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

YellowBeard (aka AS.py)

lPython on JBoss AS 7

24

Toby Crawley

Wednesday, 7 November 12

Page 25: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Some issues ...

l Jython not quite first-classl Some Python frameworks/apps assume C-based

Python implementionl The occasional bug

25

Wednesday, 7 November 12

Page 26: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

AS.js

lJavaScript on EAP 6

26

Lance Ball, Bob McWhirter, Douglas Campos

Wednesday, 7 November 12

Page 27: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Goals

l Support Node.js applicationsl Using DynJS Java7 InvokeDynamic for fast

executionl And all that other middleware stuff

27

Wednesday, 7 November 12

Page 28: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

l A new language for the JVM

28

https://ceylon-lang.org/

Gavin King, Emmanuel Bernard, Max Andersen, countless others

Wednesday, 7 November 12

Page 29: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Goals

l Union and Intersection Typesl Type inference/Strongly-typedl Mixinsl Higher-order functionsl Operation Overloading

29

Wednesday, 7 November 12

Page 30: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

JBossThe J stands for

JVM not just Java

30

Wednesday, 7 November 12

Page 31: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Wayfinding

•http://torquebox.org/•http://immutant.org/•http://escalante.io/•http://jruby.org/•http://dynjs.org/•http://ceylon-lang.org/

31

Wednesday, 7 November 12

Page 32: JBoss Polyglot: Java & Beyond...Infinispan caching! HA/Failover 17 Wednesday, 7 November 12 Further beyond! Asynchronous programming model based on messaging 18 class MyClass include

Richard Hamming, 1968 Turing speech

• Whereas Newton could say, "If I have seen a little farther than others, it is because I have stood on the shoulders of giants," I am forced to say, "Today we stand on each other's feet." Perhaps the central problem we face in all of computer science is how we are to get to the situation where we build on top of the work of others rather than redoing so much of it in a trivially different way.

32

Wednesday, 7 November 12