java virtual machine - cloud object...

35

Upload: others

Post on 30-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,
Page 2: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,
Page 3: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Java Virtual MachineJava Virtual Machine

2001

1995

Scala story...

Page 4: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Scala basics

Scala

Java

Page 5: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Scala Scala Console Console DemoDemo

Page 6: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Variables and type inference

Scala

Java

Page 7: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Infix notation and unicode names

Java

Scala

Page 8: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

DSL in Scala

Page 9: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

1st class functions

Scala

Java

Page 10: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

No more loops...

Scala

Java

Page 11: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Pattern MatchingScala

Java

Page 12: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

For comprehensions

Page 13: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Akka

Page 14: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Actor

Page 15: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Actor Demo

Page 16: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,
Page 17: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Actor implementation

ActoActorrMailboMailbo

xx

DispatcDispatcherher

ThreadThreadThreadThreadThreadThread

ActoActorrMailboMailbo

xx

ActoActorrMailboMailbo

xx

ActoActorrMailboMailbo

xx

ActoActorrMailboMailbo

xx

ActoActorrMailboMailbo

xx

ActoActorrMailboMailbo

xx

receive(msg)

receive(m

sg)

receive(msg)ActoActorrMailboMailbo

xx

Page 18: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Ask Pattern

Page 19: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,
Page 20: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

JVMJVM

Supervision

Router Router ActorActor

Cassandra Cassandra ActorActor

ConnectioConnectionn

CassandCassandrara

Get(...)Cassandra Cassandra

ActorActorConnectioConnectio

nn

Cassandra Cassandra ActorActor

ConnectioConnectionn

Page 21: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Apache Apache CamelCamelCamelCamel

Page 22: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Message Endpoint

Page 23: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Message router

Page 24: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Content enricher

Page 25: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Camel DSL

Page 26: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,
Page 27: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Consumer Actor

Page 28: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Consumer Config

Page 29: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Route Definition

Page 30: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Producer Actor

Page 31: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Message Transformation

Page 32: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Http Consumer Http Consumer DemoDemo

Page 33: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Manual route creation

Page 34: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Jobs SystemJobs System

Jobs Application

Dynamo Dynamo DBDB TwitterTwitter

GMailGMail

Job Serve Job Serve RSSRSS

goo.glgoo.gl

Http Http AdapterAdapter

Page 35: Java Virtual Machine - Cloud Object Storages3-eu-west-1.amazonaws.com/presentations2012/51_presentation.pdf · assert True jim) assertFalse ( bob let's move the java world Scala,

Questions?Questions?

Peter GabryanczykPeter Gabryanczyk@piotrga@[email protected]@scala-experts.comhttp://blog.scala4java.comhttp://blog.scala4java.com

val akka_camel = "com.typesafe.akka" % "akka-val akka_camel = "com.typesafe.akka" % "akka-camel" % "2.1-SNAPSHOT",camel" % "2.1-SNAPSHOT",

We are We are hiring! hiring!