SlideShare a Scribd company logo
1 of 37
Download to read offline
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
WebSocket	
  in	
  Enterprise	
  apps	
  
	
  
Pavel	
  Bucek	
  (pavel.bucek@oracle.com)	
  
	
  
Oracle	
  
October	
  28,	
  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.	
  	
  |	
  
Program	
  Agenda	
  
	
  
EvoluFon	
  –	
  REST,	
  Polling,	
  SSE,	
  WebSocket	
  
Does	
  HTTP/2	
  make	
  WebSocket	
  obsolete?	
  
When	
  to	
  use	
  WebSocket?	
  
Java	
  EE	
  –	
  WebSocket	
  API	
  
Advanced	
  architectures/usecases	
  
1	
  
2	
  
3	
  
4	
  
5	
  
7	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EvoluFon	
  –	
  REST	
  
	
  
•  Basic	
  soaware	
  architecture	
  /	
  scheme	
  
•  Exposes	
  Resources	
  (URIs),	
  which	
  handle	
  METHODs	
  
– GET/PUT/POST/DELETE/HEAD/OPTIONS/TRACE/PATCH/…	
  
•  MediaType	
  (Accept/Content-­‐Type)	
  
– text/plain,	
  text/html,	
  applicaFon/json,	
  …	
  
•  Caching	
  (GET,	
  HEAD),	
  Hyperlinking,	
  …	
  
Representa7onal	
  State	
  Transfer	
  
8	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EvoluFon	
  –	
  REST	
  
	
  
Representa7onal	
  State	
  Transfer	
  
9	
  
Client	
   Server	
  
GET	
  /hello	
  HTTP/1.1	
  
Header:	
  value	
  
…	
  
HTTP/1.1	
  200	
  OK	
  
Header:	
  value	
  
…	
  
<enFty>	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EvoluFon	
  –	
  Polling	
  
	
  
10	
  
Client	
   Server	
  
GET	
  /hello	
  HTTP/1.1	
  
Header:	
  value	
  
…	
  
HTTP/1.1	
  200	
  OK	
  
Header:	
  value	
  
…	
  
<enFty>	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EvoluFon	
  –	
  Long-­‐Polling	
  
	
  
11	
  
Client	
   Server	
  
GET	
  /hello	
  HTTP/1.1	
  
Header:	
  value	
  
…	
  
HTTP/1.1	
  200	
  OK	
  
Header:	
  value	
  
…	
  
<enFty	
  -­‐	
  CHUNK>	
  
<enFty	
  -­‐	
  CHUNK>	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EvoluFon	
  –	
  SSE	
  
	
  
•  Channel	
  for	
  sending	
  events	
  from	
  server	
  to	
  the	
  client	
  
•  One-­‐way,	
  text	
  protocol	
  
•  Very	
  similar	
  to	
  long	
  polling	
  
– (actually,	
  it’s	
  exactly	
  same,	
  but	
  this	
  Fme	
  it	
  has	
  own	
  RFC)	
  
•  Accept:	
  text/event-­‐stream	
  
•  Semi-­‐permanent	
  connecFon	
  
– Clients	
  are	
  required	
  to	
  reconnect	
  when	
  the	
  connecFon	
  is	
  lost	
  
•  Limited	
  browser	
  support	
  (no	
  IE,	
  no	
  Android)	
  
Server	
  Sent	
  Events	
  
12	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EvoluFon	
  –	
  WebSocket	
  
	
  
•  RFC	
  6455	
  (December	
  2011)	
  
•  Bi-­‐direcFonal	
  communicaFon	
  
•  Uses	
  HTTP/1.1	
  for	
  iniFal	
  handshake	
  
– Completely	
  different	
  protocol	
  aaerwards	
  
•  “Server”	
  and	
  “client”	
  endpoints	
  are	
  equal	
  aaer	
  handshake	
  
•  Text	
  or	
  binary	
  payload	
  
•  Supported	
  in	
  all	
  modern	
  browsers	
  
13	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
EvoluFon	
  –	
  WebSocket	
  
	
  
WebSocket	
  Frame	
  
14	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  vs	
  REST	
  
	
  
•  Might	
  seem	
  to	
  be	
  similar	
  and	
  some	
  people	
  even	
  think	
  about	
  WebSocket	
  as	
  
about	
  another	
  “RevoluFon”	
  –	
  like	
  SOAP	
  -­‐-­‐>	
  REST	
  
•  In	
  reality,	
  these	
  are	
  two	
  different	
  concepts	
  which	
  COMPLEMENT	
  each	
  
other.	
  
•  REST	
  can	
  be	
  sFll	
  used	
  for	
  most	
  of	
  the	
  implementaFon	
  part	
  –	
  web,	
  forms,	
  …	
  
•  WebSocket	
  provides	
  bi-­‐direcFonal	
  channel,	
  suitable	
  for	
  exchanging	
  “short”	
  
messages	
  with	
  the	
  browser.	
  
– (the	
  scope	
  is	
  not	
  limited,	
  you	
  can	
  re-­‐implement	
  all	
  your	
  communicaFon	
  with	
  server,	
  
but	
  there	
  is	
  no	
  point	
  in	
  doing	
  that..)	
  
15	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  vs	
  HTTP/2	
  
	
  
•  Same	
  semanFcs	
  as	
  HTTP/1.1	
  
•  Binary	
  protocol	
  
•  MulFplexed	
  protocol	
  
– Single	
  TCP	
  connecFon	
  to	
  single	
  origin,	
  shared	
  for	
  consequent/parallel	
  requests	
  
•  Compressed	
  headers	
  
– HTTP/2	
  introduces	
  HPACK	
  (compression	
  algorithm)	
  
•  Server	
  Push	
  
– Server	
  can	
  push	
  (cacheable)	
  content	
  to	
  the	
  client	
  before	
  client	
  asks	
  
HTTP/2	
  Key	
  Features	
  
16	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  vs	
  HTTP/2	
  
	
  
•  Pushed	
  resources	
  are	
  cached	
  on	
  client	
  side	
  
•  When	
  client	
  decides	
  it	
  needs	
  something	
  (image,	
  ..),	
  it	
  looks	
  into	
  the	
  cache	
  
– Doesn’t	
  need	
  to	
  be	
  image,	
  but	
  all	
  cool	
  demos	
  are	
  using	
  that	
  (remember	
  SPDY)	
  
•  Server	
  push	
  has	
  its	
  own	
  issues	
  
– What	
  if	
  client	
  does	
  not	
  need	
  pushed	
  resource?	
  (there	
  might	
  be	
  other	
  caches,	
  …)	
  
•  Push	
  is	
  not	
  “interacFve”	
  message	
  exchange	
  
WebSocket	
  vs	
  Server	
  push	
  
17	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  HTTP/2	
  
	
  
	
  
Standards..	
  
18	
  
•  Currently,	
  WebSocket	
  is	
  not	
  defined	
  in	
  HTTP/2	
  world	
  
•  WebSocket	
  uses	
  UPGRADE	
  header,	
  which	
  gives	
  complete	
  control	
  over	
  TCP	
  
connecFon	
  
•  HTTP/2	
  Streams	
  could	
  
	
  	
  	
  support	
  WS	
  mulFplex	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
When	
  to	
  use	
  WebSocket	
  
	
  
•  Bi-­‐direcFonal	
  communicaFon	
  
– “messaging”	
  
•  InteracFve	
  applicaFons	
  
– Any	
  Fme,	
  you	
  need	
  fast	
  data	
  exchange	
  with	
  the	
  backend	
  
	
  
•  Time-­‐criFcal	
  data	
  delivery	
  
– Stock	
  quotes	
  
19	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  usecases	
  
	
  
20	
  
•  Chat-­‐like	
  applicaFons	
  
– Various	
  implementaFons	
  opFons	
  
– XMPP	
  (Jabber)	
  over	
  WebSocket	
  
•  Trading	
  and	
  transacFons	
  
– Fast	
  feedback/execuFon	
  
•  Real-­‐Fme	
  monitoring	
  
– Depends	
  on	
  the	
  data	
  source	
  
– InteracFon	
  with	
  monitored	
  object	
  
– (SSE?)	
  
•  Remote	
  control	
  
– Input	
  with	
  “real-­‐Fme”	
  feedback	
  
– From	
  industry	
  applicaFon	
  to	
  fun	
  apps	
  
•  Games	
  
– HTML5	
  “naFve”	
  transport	
  
– Supported	
  by	
  improvements	
  in	
  
browsers	
  2D/3D	
  canvas	
  support	
  
•  General	
  collaboraFon	
  
– Customer	
  service,	
  Social	
  apps,	
  …	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  usecases	
  
	
  
•  RFC	
  7118	
  –	
  SIP	
  over	
  WebSocket	
  
•  RFC	
  7355	
  –	
  SIP	
  &	
  CLF	
  (Common	
  Log	
  Format)	
  over	
  WebSocket	
  
•  RFC	
  7395	
  –	
  XMPP	
  over	
  WebSocket	
  
•  Draas	
  
– MSRP	
  (Message	
  Session	
  Relay	
  Protocol)	
  over	
  WebSocket	
  
– SDP	
  (Session	
  DescripFon	
  Protocol)	
  over	
  WebSocket	
  
– Remote	
  Framebuffer	
  Protocol	
  over	
  WebSocket	
  
– <anything>	
  over	
  WebSocket	
  
Subprotocols	
  
21	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Java	
  API	
  for	
  WebSocket	
  
	
  
•  JSR	
  356	
  –	
  Part	
  of	
  Java	
  EE	
  7	
  
– 1.0	
  (May	
  2013)	
  
– 1.1	
  (August	
  2014)	
  
•  Annotated	
  and	
  programmaFc	
  way	
  how	
  to	
  deploy	
  and	
  access	
  WebSocket	
  
endpoints	
  
•  Event-­‐driven	
  model	
  -­‐	
  @OnOpen,	
  @OnMessage,	
  @OnError,	
  @OnClose	
  
•  Encoders/Decoders,	
  Path/Query	
  parameter	
  handling,	
  Handshake	
  headers	
  
interceptors,	
  CDI	
  integraFon,	
  …	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Java	
  API	
  for	
  WebSocket	
  –	
  Annotated	
  Endpoint	
  
	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Java	
  API	
  for	
  WebSocket	
  –	
  ProgrammaFc	
  Endpoint	
  
	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  vs	
  Java	
  8,	
  9	
  /	
  JDK	
  1.8,	
  1.9	
  
	
  
•  Some	
  classes	
  in	
  the	
  WebSocket	
  API	
  could	
  be	
  replaced	
  /	
  disassembled	
  to	
  
separate	
  Java	
  8	
  Consumer<T>s	
  
– MessageHandlers	
  already	
  can	
  be	
  wriQen	
  as	
  lambda	
  funcFons	
  
•  Default	
  Methods,	
  CompleFonStage<T>,	
  Method	
  Parameter	
  ReflecFon,	
  
Streams,	
  …	
  
•  JDK	
  9	
  –	
  JEP	
  110:	
  HTTP/2	
  Client:	
  hQp://openjdk.java.net/jeps/110	
  
– Define	
  a	
  new	
  HTTP	
  client	
  API	
  that	
  implements	
  HTTP/2	
  and	
  WebSocket,	
  …	
  
Lambdas,	
  WebSocket	
  client	
  
25	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
•  Different	
  to	
  “classic”	
  cluster	
  
– We’d	
  like	
  to	
  talk	
  to	
  other	
  sessions	
  (clients)	
  directly	
  
•  Clustered	
  environment	
  present	
  different	
  challenges	
  
– “Finding	
  a	
  WebSocket	
  Session”	
  might	
  not	
  be	
  as	
  trivial	
  as	
  it	
  seem	
  
•  Broadcast	
  (mass-­‐noFficaFon)	
  is	
  common	
  usecase	
  
•  Clustering	
  can	
  help	
  
– BroadcasFng	
  to	
  “all	
  sessions”	
  can	
  be	
  faster	
  in	
  clustered	
  environment	
  
26	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
27	
  
JMS,	
  
JCache,	
  
Coherence,	
  
…	
  
Load	
  Balancer	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
28	
  
JMS,	
  
JCache,	
  
Coherence,	
  
…	
  
Load	
  Balancer	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
29	
  
JMS,	
  
JCache,	
  
Coherence,	
  
…	
  
Load	
  Balancer	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
30	
  
JMS,	
  
JCache,	
  
Coherence,	
  
…	
  
Load	
  Balancer	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
•  Different	
  requirements	
  
•  Load	
  balancers	
  might	
  need	
  to	
  manage	
  more	
  open	
  connecFons	
  
•  Cannot	
  re-­‐balance	
  when	
  session	
  is	
  already	
  created	
  
– Node	
  is	
  added	
  –	
  ok,	
  but	
  I	
  cannot	
  easily	
  decrease	
  load	
  on	
  other	
  nodes,	
  I	
  can	
  use	
  the	
  
new	
  node	
  only	
  for	
  new	
  connecFons	
  
•  Node	
  going	
  down	
  is	
  not	
  transparent	
  to	
  client	
  
– Robust	
  clients	
  can	
  hide	
  this,	
  but	
  for	
  now,	
  this	
  requires	
  custom	
  soluFon	
  
– WLS	
  12.2.1	
  offers	
  a	
  soluFon	
  for	
  this..	
  
31	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
32	
  
JMS,	
  
JCache,	
  
Coherence,	
  
…	
  
Load	
  Balancer	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
33	
  
JMS,	
  
JCache,	
  
Coherence,	
  
…	
  
Load	
  Balancer	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
WebSocket	
  and	
  Clustering	
  
	
  
•  Might	
  require	
  more	
  applicaFon	
  code	
  
– Proper	
  handling	
  on	
  client	
  side	
  
– Even	
  more	
  code	
  when	
  you	
  want	
  to	
  have	
  something	
  like	
  auto	
  reconnect	
  +	
  “session	
  
recovery”	
  
•  Infrastructure	
  requirements	
  
– Similar	
  to	
  SSL	
  (persistent	
  connecFon,	
  …)	
  
•  Much	
  more	
  effecFve	
  when	
  compared	
  to	
  the	
  same	
  app	
  implemented	
  using	
  
long-­‐polling	
  
34	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
Contacts/QA	
  
	
  
•  Pavel	
  Bucek	
  (pavel.bucek@oracle.com)	
  
•  RFC	
  6455:	
  The	
  WebSocket	
  Protocol	
  hQps://tools.iez.org/html/rfc6455	
  
•  JSR	
  356:	
  WebSocket	
  API	
  for	
  Java	
  
hQps://java.net/projects/websocket-­‐spec/	
  
•  Tyrus	
  /	
  WebSocket	
  RI	
  :	
  hQp://tyrus.java.net	
  
– users@tyrus.java.net	
  
	
  
Feel	
  free	
  to	
  ask	
  any	
  quesFons	
  now	
  or	
  contact	
  me	
  later.	
  
35	
  
Copyright	
  ©	
  2015,	
  Oracle	
  and/or	
  its	
  affiliates.	
  All	
  rights	
  reserved.	
  	
  |	
  
	
  	
  
	
  	
  
36	
  
WebSocket in Enterprise Applications 2015

More Related Content

What's hot

Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reza Rahman
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Bhakti Mehta
 
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
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016Ed Burns
 
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
 
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
 
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
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8PT.JUG
 
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
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoBruno Borges
 
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
 
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
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudBruno Borges
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developersPavel Bucek
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchReza Rahman
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7Shekhar Gulati
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateMartin Grebac
 

What's hot (20)

Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
 
Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...Expect the unexpected: Anticipate and prepare for failures in microservices b...
Expect the unexpected: Anticipate and prepare for failures in microservices b...
 
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
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
 
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
 
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
 
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
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
 
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
 
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
 
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
 
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
 
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David DelabasseeJavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
JavaCro'15 - Java EE 8 - An instant snapshot - David Delabassee
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developers
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
 
Modern web application development with java ee 7
Modern web application development with java ee 7Modern web application development with java ee 7
Modern web application development with java ee 7
 
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
 

Viewers also liked

Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Peter Moskovits
 
FIWARE Agenda for Smart City Expo - Nov 18th-20th
FIWARE Agenda for Smart City Expo  - Nov 18th-20th FIWARE Agenda for Smart City Expo  - Nov 18th-20th
FIWARE Agenda for Smart City Expo - Nov 18th-20th FIWARE
 
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...Mark West
 
Katelyn Kuhns resume 2016
Katelyn Kuhns resume 2016Katelyn Kuhns resume 2016
Katelyn Kuhns resume 2016Katelyn Kuhns
 
Scrum Toplantılar ve Ritüeller
Scrum Toplantılar ve RitüellerScrum Toplantılar ve Ritüeller
Scrum Toplantılar ve RitüellerCihan YILMAZ
 
TIK bab 3 4
TIK bab 3 4TIK bab 3 4
TIK bab 3 4RissaA13
 
Tundra at Agile Mississauga Meetup Kick off Event
Tundra at Agile Mississauga Meetup Kick off EventTundra at Agile Mississauga Meetup Kick off Event
Tundra at Agile Mississauga Meetup Kick off EventAbiodun Osoba
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Trisha Gee
 
Stop doing scrum; start doing agile
Stop doing scrum; start doing agileStop doing scrum; start doing agile
Stop doing scrum; start doing agilePeter Van de Voorde
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web servicesNeil Ghosh
 

Viewers also liked (18)

Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
 
FIWARE Agenda for Smart City Expo - Nov 18th-20th
FIWARE Agenda for Smart City Expo  - Nov 18th-20th FIWARE Agenda for Smart City Expo  - Nov 18th-20th
FIWARE Agenda for Smart City Expo - Nov 18th-20th
 
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
 
Driscoll resume 1
Driscoll resume 1Driscoll resume 1
Driscoll resume 1
 
Fraunhofer certificate
Fraunhofer certificateFraunhofer certificate
Fraunhofer certificate
 
Katelyn Kuhns resume 2016
Katelyn Kuhns resume 2016Katelyn Kuhns resume 2016
Katelyn Kuhns resume 2016
 
Java web services
Java web servicesJava web services
Java web services
 
Scrum Toplantılar ve Ritüeller
Scrum Toplantılar ve RitüellerScrum Toplantılar ve Ritüeller
Scrum Toplantılar ve Ritüeller
 
JavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote PresentationJavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote Presentation
 
Wsdl
WsdlWsdl
Wsdl
 
TIK bab 3 4
TIK bab 3 4TIK bab 3 4
TIK bab 3 4
 
1º básico c semana 20 al 24 de marzo
1º básico c semana 20 al 24 de marzo1º básico c semana 20 al 24 de marzo
1º básico c semana 20 al 24 de marzo
 
Tundra at Agile Mississauga Meetup Kick off Event
Tundra at Agile Mississauga Meetup Kick off EventTundra at Agile Mississauga Meetup Kick off Event
Tundra at Agile Mississauga Meetup Kick off Event
 
1º básico b semana 20 al 24 de marzo
1º básico b semana 20 al 24 de marzo1º básico b semana 20 al 24 de marzo
1º básico b semana 20 al 24 de marzo
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)
 
Stop doing scrum; start doing agile
Stop doing scrum; start doing agileStop doing scrum; start doing agile
Stop doing scrum; start doing agile
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web services
 
Web Services
Web ServicesWeb Services
Web Services
 

Similar to WebSocket in Enterprise Applications 2015

Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 
2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portionmnriem
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)Pavel Bucek
 
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
 
Apache Flink Online Training
Apache Flink Online TrainingApache Flink Online Training
Apache Flink Online TrainingLearntek1
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Javaamithap07
 
Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018Timothy Spann
 
WebRTC Customer Experience Optimizations - Kranky Geek Presentation
WebRTC Customer Experience Optimizations  - Kranky Geek PresentationWebRTC Customer Experience Optimizations  - Kranky Geek Presentation
WebRTC Customer Experience Optimizations - Kranky Geek Presentationamithap07
 
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PROIDEA
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckEdward Burns
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachPROIDEA
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaJAXLondon_Conference
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-finalshintaro mizuno
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScriptGeertjan Wielenga
 

Similar to WebSocket in Enterprise Applications 2015 (20)

Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 
2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
 
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
 
Apache Flink Online Training
Apache Flink Online TrainingApache Flink Online Training
Apache Flink Online Training
 
Apache flink
Apache flinkApache flink
Apache flink
 
Apache flink
Apache flinkApache flink
Apache flink
 
Apache flink
Apache flinkApache flink
Apache flink
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Java
 
Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018Apache Deep Learning 101 - DWS Berlin 2018
Apache Deep Learning 101 - DWS Berlin 2018
 
WebRTC Customer Experience Optimizations - Kranky Geek Presentation
WebRTC Customer Experience Optimizations  - Kranky Geek PresentationWebRTC Customer Experience Optimizations  - Kranky Geek Presentation
WebRTC Customer Experience Optimizations - Kranky Geek Presentation
 
02 basics
02 basics02 basics
02 basics
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
 
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute InfodeckServlet 4.0 Adopt-a-JSR 10 Minute Infodeck
Servlet 4.0 Adopt-a-JSR 10 Minute Infodeck
 
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav TulachJDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
JDD2015: Towards the Fastest (J)VM on the Planet! - Jaroslav Tulach
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
 
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
 

Recently uploaded

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 

Recently uploaded (20)

Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 

WebSocket in Enterprise Applications 2015

  • 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. WebSocket  in  Enterprise  apps     Pavel  Bucek  (pavel.bucek@oracle.com)     Oracle   October  28,  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.    |   Program  Agenda     EvoluFon  –  REST,  Polling,  SSE,  WebSocket   Does  HTTP/2  make  WebSocket  obsolete?   When  to  use  WebSocket?   Java  EE  –  WebSocket  API   Advanced  architectures/usecases   1   2   3   4   5   7  
  • 8. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EvoluFon  –  REST     •  Basic  soaware  architecture  /  scheme   •  Exposes  Resources  (URIs),  which  handle  METHODs   – GET/PUT/POST/DELETE/HEAD/OPTIONS/TRACE/PATCH/…   •  MediaType  (Accept/Content-­‐Type)   – text/plain,  text/html,  applicaFon/json,  …   •  Caching  (GET,  HEAD),  Hyperlinking,  …   Representa7onal  State  Transfer   8  
  • 9. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EvoluFon  –  REST     Representa7onal  State  Transfer   9   Client   Server   GET  /hello  HTTP/1.1   Header:  value   …   HTTP/1.1  200  OK   Header:  value   …   <enFty>  
  • 10. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EvoluFon  –  Polling     10   Client   Server   GET  /hello  HTTP/1.1   Header:  value   …   HTTP/1.1  200  OK   Header:  value   …   <enFty>  
  • 11. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EvoluFon  –  Long-­‐Polling     11   Client   Server   GET  /hello  HTTP/1.1   Header:  value   …   HTTP/1.1  200  OK   Header:  value   …   <enFty  -­‐  CHUNK>   <enFty  -­‐  CHUNK>  
  • 12. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EvoluFon  –  SSE     •  Channel  for  sending  events  from  server  to  the  client   •  One-­‐way,  text  protocol   •  Very  similar  to  long  polling   – (actually,  it’s  exactly  same,  but  this  Fme  it  has  own  RFC)   •  Accept:  text/event-­‐stream   •  Semi-­‐permanent  connecFon   – Clients  are  required  to  reconnect  when  the  connecFon  is  lost   •  Limited  browser  support  (no  IE,  no  Android)   Server  Sent  Events   12  
  • 13. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EvoluFon  –  WebSocket     •  RFC  6455  (December  2011)   •  Bi-­‐direcFonal  communicaFon   •  Uses  HTTP/1.1  for  iniFal  handshake   – Completely  different  protocol  aaerwards   •  “Server”  and  “client”  endpoints  are  equal  aaer  handshake   •  Text  or  binary  payload   •  Supported  in  all  modern  browsers   13  
  • 14. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   EvoluFon  –  WebSocket     WebSocket  Frame   14  
  • 15. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  vs  REST     •  Might  seem  to  be  similar  and  some  people  even  think  about  WebSocket  as   about  another  “RevoluFon”  –  like  SOAP  -­‐-­‐>  REST   •  In  reality,  these  are  two  different  concepts  which  COMPLEMENT  each   other.   •  REST  can  be  sFll  used  for  most  of  the  implementaFon  part  –  web,  forms,  …   •  WebSocket  provides  bi-­‐direcFonal  channel,  suitable  for  exchanging  “short”   messages  with  the  browser.   – (the  scope  is  not  limited,  you  can  re-­‐implement  all  your  communicaFon  with  server,   but  there  is  no  point  in  doing  that..)   15  
  • 16. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  vs  HTTP/2     •  Same  semanFcs  as  HTTP/1.1   •  Binary  protocol   •  MulFplexed  protocol   – Single  TCP  connecFon  to  single  origin,  shared  for  consequent/parallel  requests   •  Compressed  headers   – HTTP/2  introduces  HPACK  (compression  algorithm)   •  Server  Push   – Server  can  push  (cacheable)  content  to  the  client  before  client  asks   HTTP/2  Key  Features   16  
  • 17. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  vs  HTTP/2     •  Pushed  resources  are  cached  on  client  side   •  When  client  decides  it  needs  something  (image,  ..),  it  looks  into  the  cache   – Doesn’t  need  to  be  image,  but  all  cool  demos  are  using  that  (remember  SPDY)   •  Server  push  has  its  own  issues   – What  if  client  does  not  need  pushed  resource?  (there  might  be  other  caches,  …)   •  Push  is  not  “interacFve”  message  exchange   WebSocket  vs  Server  push   17  
  • 18. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  HTTP/2       Standards..   18   •  Currently,  WebSocket  is  not  defined  in  HTTP/2  world   •  WebSocket  uses  UPGRADE  header,  which  gives  complete  control  over  TCP   connecFon   •  HTTP/2  Streams  could        support  WS  mulFplex  
  • 19. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   When  to  use  WebSocket     •  Bi-­‐direcFonal  communicaFon   – “messaging”   •  InteracFve  applicaFons   – Any  Fme,  you  need  fast  data  exchange  with  the  backend     •  Time-­‐criFcal  data  delivery   – Stock  quotes   19  
  • 20. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  usecases     20   •  Chat-­‐like  applicaFons   – Various  implementaFons  opFons   – XMPP  (Jabber)  over  WebSocket   •  Trading  and  transacFons   – Fast  feedback/execuFon   •  Real-­‐Fme  monitoring   – Depends  on  the  data  source   – InteracFon  with  monitored  object   – (SSE?)   •  Remote  control   – Input  with  “real-­‐Fme”  feedback   – From  industry  applicaFon  to  fun  apps   •  Games   – HTML5  “naFve”  transport   – Supported  by  improvements  in   browsers  2D/3D  canvas  support   •  General  collaboraFon   – Customer  service,  Social  apps,  …  
  • 21. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  usecases     •  RFC  7118  –  SIP  over  WebSocket   •  RFC  7355  –  SIP  &  CLF  (Common  Log  Format)  over  WebSocket   •  RFC  7395  –  XMPP  over  WebSocket   •  Draas   – MSRP  (Message  Session  Relay  Protocol)  over  WebSocket   – SDP  (Session  DescripFon  Protocol)  over  WebSocket   – Remote  Framebuffer  Protocol  over  WebSocket   – <anything>  over  WebSocket   Subprotocols   21  
  • 22. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Java  API  for  WebSocket     •  JSR  356  –  Part  of  Java  EE  7   – 1.0  (May  2013)   – 1.1  (August  2014)   •  Annotated  and  programmaFc  way  how  to  deploy  and  access  WebSocket   endpoints   •  Event-­‐driven  model  -­‐  @OnOpen,  @OnMessage,  @OnError,  @OnClose   •  Encoders/Decoders,  Path/Query  parameter  handling,  Handshake  headers   interceptors,  CDI  integraFon,  …  
  • 23. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Java  API  for  WebSocket  –  Annotated  Endpoint    
  • 24. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Java  API  for  WebSocket  –  ProgrammaFc  Endpoint    
  • 25. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  vs  Java  8,  9  /  JDK  1.8,  1.9     •  Some  classes  in  the  WebSocket  API  could  be  replaced  /  disassembled  to   separate  Java  8  Consumer<T>s   – MessageHandlers  already  can  be  wriQen  as  lambda  funcFons   •  Default  Methods,  CompleFonStage<T>,  Method  Parameter  ReflecFon,   Streams,  …   •  JDK  9  –  JEP  110:  HTTP/2  Client:  hQp://openjdk.java.net/jeps/110   – Define  a  new  HTTP  client  API  that  implements  HTTP/2  and  WebSocket,  …   Lambdas,  WebSocket  client   25  
  • 26. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     •  Different  to  “classic”  cluster   – We’d  like  to  talk  to  other  sessions  (clients)  directly   •  Clustered  environment  present  different  challenges   – “Finding  a  WebSocket  Session”  might  not  be  as  trivial  as  it  seem   •  Broadcast  (mass-­‐noFficaFon)  is  common  usecase   •  Clustering  can  help   – BroadcasFng  to  “all  sessions”  can  be  faster  in  clustered  environment   26  
  • 27. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     27   JMS,   JCache,   Coherence,   …   Load  Balancer  
  • 28. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     28   JMS,   JCache,   Coherence,   …   Load  Balancer  
  • 29. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     29   JMS,   JCache,   Coherence,   …   Load  Balancer  
  • 30. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     30   JMS,   JCache,   Coherence,   …   Load  Balancer  
  • 31. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     •  Different  requirements   •  Load  balancers  might  need  to  manage  more  open  connecFons   •  Cannot  re-­‐balance  when  session  is  already  created   – Node  is  added  –  ok,  but  I  cannot  easily  decrease  load  on  other  nodes,  I  can  use  the   new  node  only  for  new  connecFons   •  Node  going  down  is  not  transparent  to  client   – Robust  clients  can  hide  this,  but  for  now,  this  requires  custom  soluFon   – WLS  12.2.1  offers  a  soluFon  for  this..   31  
  • 32. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     32   JMS,   JCache,   Coherence,   …   Load  Balancer  
  • 33. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     33   JMS,   JCache,   Coherence,   …   Load  Balancer  
  • 34. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   WebSocket  and  Clustering     •  Might  require  more  applicaFon  code   – Proper  handling  on  client  side   – Even  more  code  when  you  want  to  have  something  like  auto  reconnect  +  “session   recovery”   •  Infrastructure  requirements   – Similar  to  SSL  (persistent  connecFon,  …)   •  Much  more  effecFve  when  compared  to  the  same  app  implemented  using   long-­‐polling   34  
  • 35. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |   Contacts/QA     •  Pavel  Bucek  (pavel.bucek@oracle.com)   •  RFC  6455:  The  WebSocket  Protocol  hQps://tools.iez.org/html/rfc6455   •  JSR  356:  WebSocket  API  for  Java   hQps://java.net/projects/websocket-­‐spec/   •  Tyrus  /  WebSocket  RI  :  hQp://tyrus.java.net   – users@tyrus.java.net     Feel  free  to  ask  any  quesFons  now  or  contact  me  later.   35  
  • 36. Copyright  ©  2015,  Oracle  and/or  its  affiliates.  All  rights  reserved.    |           36