SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   3	
  
Classroom	
  Training	
  
Learning	
  SubscripFon	
  
Live	
  Virtual	
  Class	
  
Training	
  On	
  Demand	
  
Keep	
  Learning	
  with	
  Oracle	
  University	
  
educa7on.oracle.com	
  
Cloud	
  
Technology	
  
ApplicaFons	
  
Industries	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Session	
  Surveys	
  
Help	
  us	
  help	
  you!!	
  
•  Oracle	
  would	
  like	
  to	
  invite	
  you	
  to	
  take	
  a	
  moment	
  to	
  give	
  us	
  your	
  session	
  
feedback.	
  Your	
  feedback	
  will	
  help	
  us	
  to	
  improve	
  your	
  conference.	
  	
  
•  Please	
  be	
  sure	
  to	
  add	
  your	
  feedback	
  for	
  your	
  aQended	
  sessions	
  by	
  using	
  
the	
  Mobile	
  Survey	
  or	
  in	
  Schedule	
  Builder.	
  
	
  
4
How to Thrive on REST/
WebSocket-based Microservices
	
  
	
  
Pavel	
  Bucek	
  (pavel.bucek@oracle.com)	
  
Michal	
  Gajdoš	
  (michal@sapho.com)	
  
	
  
Oracle/Sapho	
  
October	
  27,	
  2015	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Safe	
  Harbor	
  Statement	
  
The	
  following	
  is	
  intended	
  to	
  outline	
  our	
  general	
  product	
  direcFon.	
  It	
  is	
  intended	
  for	
  
informaFon	
  purposes	
  only,	
  and	
  may	
  not	
  be	
  incorporated	
  into	
  any	
  contract.	
  It	
  is	
  not	
  a	
  
commitment	
  to	
  deliver	
  any	
  material,	
  code,	
  or	
  funcFonality,	
  and	
  should	
  not	
  be	
  relied	
  upon	
  
in	
  making	
  purchasing	
  decisions.	
  The	
  development,	
  release,	
  and	
  Fming	
  of	
  any	
  features	
  or	
  
funcFonality	
  described	
  for	
  Oracle’s	
  products	
  remains	
  at	
  the	
  sole	
  discreFon	
  of	
  Oracle.	
  
6	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
IntroducFon	
  
7	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Why	
  are	
  we	
  doing	
  this?	
  
•  Proof	
  of	
  concept	
  
– Micro	
  is	
  the	
  new	
  black	
  
– Very	
  small	
  runFme	
  can	
  deliver	
  key	
  funcFonality	
  
•  JAX-­‐RS	
  (Jersey)	
  +	
  WebSocket	
  (Tyrus)	
  
•  Java	
  SE	
  8	
  adopFon	
  
•  ReacFve	
  APIs	
  
	
  
8	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
What’s	
  already	
  there?	
  
•  Vert.x	
  
•  Dropwizard	
  
– JeQy,	
  Jersey,	
  Jackson,	
  …	
  
– No	
  WebSocket	
  
•  Glassfish	
  /	
  Payara	
  
– JAX-­‐RS,	
  WebSocket,	
  Servlet,	
  JSF,	
  BV,	
  CDI,	
  …	
  
– ~60MB	
  
	
  
9	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
QUESTION	
  
Typical	
  produc7on	
  deployment	
  in	
  my	
  company	
  is:	
  
Micro-­‐service	
  (small	
  containers,	
  dynamic	
  up/down	
  scaling)	
  
Monolithic	
  applicaFon	
  (big	
  containers,	
  staFc	
  resources,	
  acFve/
passive	
  backup)	
  
CombinaFon	
  of	
  previous	
  
A	
  
B	
  
C	
  
10	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Sample	
  applicaFon	
  
•  Simple	
  poll	
  
– Jersey	
  MVC	
  
•  Results	
  are	
  updated	
  based	
  on	
  new	
  votes	
  
– WebSocket	
  connecFon	
  (could	
  be	
  SSE..)	
  
•  Simple	
  filtering	
  (websocket	
  based)	
  
– InteracFve	
  part	
  of	
  the	
  app	
  
– WebSocket	
  are	
  more	
  efficient	
  to	
  use	
  
11	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
DEMO	
  
How	
  does	
  the	
  Survey	
  app	
  works?	
  
12	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
QUESTION	
  
Which	
  Java	
  framework	
  do	
  you	
  use	
  in	
  produc7on?	
  
Java	
  EE	
  6+	
  
Spring	
  
Java	
  EE	
  5	
  (and	
  older)	
  +	
  Java	
  SE	
  
Something	
  else,	
  text	
  us	
  what!	
  
A	
  
B	
  
C	
  
13	
  
D	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
DEMO	
  
+CDI	
  
14	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
QUESTION	
  
Do	
  you	
  use	
  WebSocket	
  in	
  produc7on?	
  
Yes.	
  
Not	
  yet,	
  but	
  we	
  plan	
  to.	
  
No	
  (we	
  don’t	
  need	
  bi-­‐direcFonal	
  communicaFon).	
  
No	
  (we	
  use	
  something	
  else).	
  
A	
  
B	
  
C	
  
15	
  
D	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Micro-­‐services	
  
•  Simple,	
  small,	
  decoupled	
  standalone	
  “applicaFons”	
  
– They	
  don’t	
  do	
  (and	
  provide)	
  anything	
  else	
  than	
  they	
  should	
  
– Easy	
  to	
  develop	
  and	
  test	
  
•  Fast	
  startup	
  Fme,	
  Fault	
  tolerant	
  
– Dynamic	
  scaling	
  
– CaQle	
  vs	
  Pet	
  
16	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
<<Placeholder>>	
  
17	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
<<Placeholder>>	
  
•  Grizzly	
  
– HTTP	
  container	
  
•  HK2	
  
– Dependency	
  InjecFon	
  
•  Tyrus	
  
– WebSocket	
  RI	
  
•  Jersey	
  
– JAX-­‐RS	
  RI	
  
18	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
DEMO	
  
<<Placeholder>>	
  
19	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
QUESTION	
  
Executable	
  JAR	
  size	
  (<<Placeholder>>	
  +	
  poll	
  app)	
  is:	
  
~100	
  MB	
  
~50	
  MB	
  
~20	
  MB	
  
~10	
  MB	
  
~5	
  MB	
  
A	
  
B	
  
C	
  
20	
  
D	
  
E	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Summary	
  
•  Glassfish	
  
– Footprint:	
  >200	
  M	
  
– Startup	
  Fme:	
  ~10	
  s	
  
•  JeQy	
  +	
  Weld	
  
– Footprint:	
  ~28	
  M	
  
– Startup	
  Fme:	
  ~5	
  s	
  
•  <<Placeholder>>	
  
– Footprint:	
  ~11	
  M	
  
– Startup	
  Fme:	
  ~1s	
  
21	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
What	
  do	
  we	
  miss?	
  
22	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Java	
  8	
  +	
  ReacFve	
  APIs	
  
•  Lots	
  of	
  new	
  features	
  in	
  Java	
  8	
  
•  Frameworks	
  slowly	
  up-­‐taking	
  new	
  APIs	
  
•  OpFonal,	
  Lambdas,	
  Streams,	
  …	
  
•  ReacFve	
  APIs	
  are	
  very	
  handy	
  when	
  you	
  are	
  accessing	
  more	
  services	
  
– You	
  don’t	
  need	
  to	
  wait	
  (block)	
  for	
  the	
  answer	
  
– Processing	
  hooked	
  to	
  “response(s)	
  received”	
  
23	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
QUESTION	
  
Java	
  version	
  in	
  produc7on:	
  
Java	
  5	
  (and	
  older)	
  
Java	
  6	
  
Java	
  7	
  
Java	
  8	
  
Java	
  9	
  (for	
  cuwng-­‐edge	
  enthusiasts)	
  
A	
  
B	
  
C	
  
24	
  
D	
  
E	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
OpFonal	
  in	
  Jersey	
  
•  Server	
  
– Incoming	
  enFFes	
  
– Return	
  values	
  (Outgoing	
  enFFes)	
  
– @*Param	
  values	
  
•  Client	
  
– Outgoing	
  enFFes	
  
25	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
OpFonal	
  in	
  Jersey	
  
26	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
OpFonal	
  in	
  Jersey	
  
27	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ReacFve	
  Client	
  API	
  in	
  Jersey/JAX-­‐RS	
  2.1	
  
•  UFlize	
  the	
  reacFve	
  programming	
  model	
  when	
  using	
  Jersey/JAX-­‐RS	
  Client	
  
•  Already	
  in	
  Jersey	
  
– Java	
  8	
  –	
  CompleFonStage	
  
– RxJava	
  
– Guava	
  
•  Will	
  be	
  in	
  JAX-­‐RS	
  2.1	
  
28	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ReacFve	
  Client	
  API	
  –	
  Jersey	
  &	
  RxJava	
  
29	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ReacFve	
  Client	
  API	
  –	
  JAX-­‐RS	
  2.1	
  &	
  CompleFonStage	
  
30	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
ProgrammaFc	
  Resources	
  in	
  Jersey	
  
31	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Lambdas	
  in	
  Tyrus	
  
•  Endpoint	
  is	
  just	
  a	
  set	
  of	
  lambda	
  funcFons	
  
– @OnOpen,	
  @OnMessage,	
  @OnError,	
  @OnClose	
  
– WebSocket	
  API	
  already	
  has	
  programmaFc	
  version	
  in	
  the	
  specificaFon	
  –	
  see	
  
javax.websocket.Endpoint	
  
•  It	
  can	
  be	
  applied	
  to	
  server	
  side	
  as	
  well	
  
– AnnotaFon	
  way	
  is	
  o{en	
  preferred	
  for	
  server-­‐side	
  deployment	
  
– Easier	
  to	
  read	
  +	
  integrate	
  with	
  other	
  frameworks	
  (DI,	
  ..)	
  
32	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Lambdas	
  in	
  Tyrus	
  
33	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Lambdas	
  in	
  Tyrus	
  
34	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Lambdas	
  in	
  Tyrus	
  
35	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Streams	
  in	
  Tyrus	
  
•  Stream	
  processing	
  is	
  another	
  bigger	
  and	
  more	
  notable	
  feature	
  of	
  the	
  Java	
  8	
  
•  MessageHanders	
  (in	
  general	
  -­‐	
  any	
  event	
  handler)	
  can	
  be	
  	
  modeled	
  as	
  
endless	
  stream	
  
– there	
  are	
  some	
  issues	
  with	
  “terminators”,	
  but	
  that	
  could	
  be	
  solved	
  -­‐	
  terminator	
  
would	
  unregister	
  current	
  “message	
  handler”;	
  push	
  vs	
  pull..	
  
– streams	
  can	
  easily:	
  filter,	
  map	
  (encode/decode)	
  
36	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Contacts	
  
•  Pavel	
  Bucek	
  (pavel.bucek@oracle.com)	
  
•  Michal	
  Gajdoš	
  (michal@sapho.com)	
  
	
  
Github	
  repo:	
  hQps://github.com/pavelbucek/placeholder	
  
•  Jersey	
  –	
  hQp://jersey.java.net	
  
•  Tyrus	
  –	
  hQp://tyrus.java.net	
  
	
  
37	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Q	
  &	
  A	
  
38	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
	
  	
  
	
  	
  
39	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
   40	
  
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices

Contenu connexe

Tendances

Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015Edward Burns
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0David Delabassee
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoBruno Borges
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot David Delabassee
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Edward Burns
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developersPavel Bucek
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...0xdaryl
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Edward Burns
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXBruno Borges
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishArun Gupta
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEReza Rahman
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudShaun Smith
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5Shaun Smith
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015Edward Burns
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceBruno Borges
 

Tendances (20)

Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo Conectado
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developers
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
 
JavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin TadićJavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin Tadić
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service
 

Similaire à How to Thrive on REST/WebSocket-Based Microservices

Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MoreShaun Smith
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in actionAnkara JUG
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em StartupsMySQL Brasil
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееOlga Lavrentieva
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ OsakaTakashi Ito
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianReza Rahman
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouDavid Delabassee
 
Java Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at KumamotoJava Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at KumamotoTakashi Ito
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
 
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会Takashi Ito
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaTakashi Ito
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle CloudJuan Carlos Ruiz Rico
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Ed Burns
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETGeertjan Wielenga
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQLMySQL Brasil
 
Oracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suiteOracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suiteOTN Systems Hub
 

Similaire à How to Thrive on REST/WebSocket-Based Microservices (20)

Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in action
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
Владимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущееВладимир Иванов (Oracle): Java: прошлое и будущее
Владимир Иванов (Oracle): Java: прошлое и будущее
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka20160123 java one2015_feedback @ Osaka
20160123 java one2015_feedback @ Osaka
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
 
Oracle JET overview
Oracle JET overviewOracle JET overview
Oracle JET overview
 
Java Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at KumamotoJava Day Tokyo 2016 feedback at Kumamoto
Java Day Tokyo 2016 feedback at Kumamoto
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会JavaOne2015フィードバック @ 富山合同勉強会
JavaOne2015フィードバック @ 富山合同勉強会
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
 
Modern App Development with Oracle Cloud
Modern App Development with Oracle CloudModern App Development with Oracle Cloud
Modern App Development with Oracle Cloud
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017
 
Coding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JETCoding from Application Container Cloud to Oracle JET
Coding from Application Container Cloud to Oracle JET
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
Oracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suiteOracle super cluster for oracle e business suite
Oracle super cluster for oracle e business suite
 

Dernier

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 

Dernier (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 

How to Thrive on REST/WebSocket-Based Microservices

  • 1.
  • 2.
  • 3. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   3   Classroom  Training   Learning  SubscripFon   Live  Virtual  Class   Training  On  Demand   Keep  Learning  with  Oracle  University   educa7on.oracle.com   Cloud   Technology   ApplicaFons   Industries  
  • 4. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Session  Surveys   Help  us  help  you!!   •  Oracle  would  like  to  invite  you  to  take  a  moment  to  give  us  your  session   feedback.  Your  feedback  will  help  us  to  improve  your  conference.     •  Please  be  sure  to  add  your  feedback  for  your  aQended  sessions  by  using   the  Mobile  Survey  or  in  Schedule  Builder.     4
  • 5. How to Thrive on REST/ WebSocket-based Microservices     Pavel  Bucek  (pavel.bucek@oracle.com)   Michal  Gajdoš  (michal@sapho.com)     Oracle/Sapho   October  27,  2015   Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |  
  • 6. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Safe  Harbor  Statement   The  following  is  intended  to  outline  our  general  product  direcFon.  It  is  intended  for   informaFon  purposes  only,  and  may  not  be  incorporated  into  any  contract.  It  is  not  a   commitment  to  deliver  any  material,  code,  or  funcFonality,  and  should  not  be  relied  upon   in  making  purchasing  decisions.  The  development,  release,  and  Fming  of  any  features  or   funcFonality  described  for  Oracle’s  products  remains  at  the  sole  discreFon  of  Oracle.   6  
  • 7. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   IntroducFon   7  
  • 8. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Why  are  we  doing  this?   •  Proof  of  concept   – Micro  is  the  new  black   – Very  small  runFme  can  deliver  key  funcFonality   •  JAX-­‐RS  (Jersey)  +  WebSocket  (Tyrus)   •  Java  SE  8  adopFon   •  ReacFve  APIs     8  
  • 9. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What’s  already  there?   •  Vert.x   •  Dropwizard   – JeQy,  Jersey,  Jackson,  …   – No  WebSocket   •  Glassfish  /  Payara   – JAX-­‐RS,  WebSocket,  Servlet,  JSF,  BV,  CDI,  …   – ~60MB     9  
  • 10. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   QUESTION   Typical  produc7on  deployment  in  my  company  is:   Micro-­‐service  (small  containers,  dynamic  up/down  scaling)   Monolithic  applicaFon  (big  containers,  staFc  resources,  acFve/ passive  backup)   CombinaFon  of  previous   A   B   C   10  
  • 11. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Sample  applicaFon   •  Simple  poll   – Jersey  MVC   •  Results  are  updated  based  on  new  votes   – WebSocket  connecFon  (could  be  SSE..)   •  Simple  filtering  (websocket  based)   – InteracFve  part  of  the  app   – WebSocket  are  more  efficient  to  use   11  
  • 12. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   DEMO   How  does  the  Survey  app  works?   12  
  • 13. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   QUESTION   Which  Java  framework  do  you  use  in  produc7on?   Java  EE  6+   Spring   Java  EE  5  (and  older)  +  Java  SE   Something  else,  text  us  what!   A   B   C   13   D  
  • 14. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   DEMO   +CDI   14  
  • 15. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   QUESTION   Do  you  use  WebSocket  in  produc7on?   Yes.   Not  yet,  but  we  plan  to.   No  (we  don’t  need  bi-­‐direcFonal  communicaFon).   No  (we  use  something  else).   A   B   C   15   D  
  • 16. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Micro-­‐services   •  Simple,  small,  decoupled  standalone  “applicaFons”   – They  don’t  do  (and  provide)  anything  else  than  they  should   – Easy  to  develop  and  test   •  Fast  startup  Fme,  Fault  tolerant   – Dynamic  scaling   – CaQle  vs  Pet   16  
  • 17. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   <<Placeholder>>   17  
  • 18. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   <<Placeholder>>   •  Grizzly   – HTTP  container   •  HK2   – Dependency  InjecFon   •  Tyrus   – WebSocket  RI   •  Jersey   – JAX-­‐RS  RI   18  
  • 19. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   DEMO   <<Placeholder>>   19  
  • 20. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   QUESTION   Executable  JAR  size  (<<Placeholder>>  +  poll  app)  is:   ~100  MB   ~50  MB   ~20  MB   ~10  MB   ~5  MB   A   B   C   20   D   E  
  • 21. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Summary   •  Glassfish   – Footprint:  >200  M   – Startup  Fme:  ~10  s   •  JeQy  +  Weld   – Footprint:  ~28  M   – Startup  Fme:  ~5  s   •  <<Placeholder>>   – Footprint:  ~11  M   – Startup  Fme:  ~1s   21  
  • 22. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   What  do  we  miss?   22  
  • 23. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Java  8  +  ReacFve  APIs   •  Lots  of  new  features  in  Java  8   •  Frameworks  slowly  up-­‐taking  new  APIs   •  OpFonal,  Lambdas,  Streams,  …   •  ReacFve  APIs  are  very  handy  when  you  are  accessing  more  services   – You  don’t  need  to  wait  (block)  for  the  answer   – Processing  hooked  to  “response(s)  received”   23  
  • 24. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   QUESTION   Java  version  in  produc7on:   Java  5  (and  older)   Java  6   Java  7   Java  8   Java  9  (for  cuwng-­‐edge  enthusiasts)   A   B   C   24   D   E  
  • 25. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   OpFonal  in  Jersey   •  Server   – Incoming  enFFes   – Return  values  (Outgoing  enFFes)   – @*Param  values   •  Client   – Outgoing  enFFes   25  
  • 26. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   OpFonal  in  Jersey   26  
  • 27. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   OpFonal  in  Jersey   27  
  • 28. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ReacFve  Client  API  in  Jersey/JAX-­‐RS  2.1   •  UFlize  the  reacFve  programming  model  when  using  Jersey/JAX-­‐RS  Client   •  Already  in  Jersey   – Java  8  –  CompleFonStage   – RxJava   – Guava   •  Will  be  in  JAX-­‐RS  2.1   28  
  • 29. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ReacFve  Client  API  –  Jersey  &  RxJava   29  
  • 30. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ReacFve  Client  API  –  JAX-­‐RS  2.1  &  CompleFonStage   30  
  • 31. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   ProgrammaFc  Resources  in  Jersey   31  
  • 32. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Lambdas  in  Tyrus   •  Endpoint  is  just  a  set  of  lambda  funcFons   – @OnOpen,  @OnMessage,  @OnError,  @OnClose   – WebSocket  API  already  has  programmaFc  version  in  the  specificaFon  –  see   javax.websocket.Endpoint   •  It  can  be  applied  to  server  side  as  well   – AnnotaFon  way  is  o{en  preferred  for  server-­‐side  deployment   – Easier  to  read  +  integrate  with  other  frameworks  (DI,  ..)   32  
  • 33. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Lambdas  in  Tyrus   33  
  • 34. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Lambdas  in  Tyrus   34  
  • 35. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Lambdas  in  Tyrus   35  
  • 36. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Streams  in  Tyrus   •  Stream  processing  is  another  bigger  and  more  notable  feature  of  the  Java  8   •  MessageHanders  (in  general  -­‐  any  event  handler)  can  be    modeled  as   endless  stream   – there  are  some  issues  with  “terminators”,  but  that  could  be  solved  -­‐  terminator   would  unregister  current  “message  handler”;  push  vs  pull..   – streams  can  easily:  filter,  map  (encode/decode)   36  
  • 37. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Contacts   •  Pavel  Bucek  (pavel.bucek@oracle.com)   •  Michal  Gajdoš  (michal@sapho.com)     Github  repo:  hQps://github.com/pavelbucek/placeholder   •  Jersey  –  hQp://jersey.java.net   •  Tyrus  –  hQp://tyrus.java.net     37  
  • 38. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Q  &  A   38  
  • 39. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |           39  
  • 40. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   40