HTTP/2 comes to Java (Dec. 2015 version)

David Delabassee
David DelabasseeDevRel - Java Platform Group - Oracle
HTTP/2&comes&to&Java!&
JCConf&Taiwan&2015
David&Delabassee&
@delabassee&
Oracle
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.*
1
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Safe*Harbor*Statement
The* following* is* intended* to* outline* our* general* product* direction.* It* is* intended* for*
information* purposes* only,* and* may* not* be* incorporated* into* any* contract.* It* is* not* a*
commitment*to*deliver*any*material,*code,*or*functionality,*and*should*not*be*relied*upon*
in*making*purchasing*decisions.*The*development,*release,*and*timing*of*any*features*or*
functionality*described*for*Oracle’s*products*remains*at*the*sole*discretion*of*Oracle.
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 3
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*EE*
HTTP/2*and*Java*SE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 6 @delabassee
Data*Never*Sleeps*2.0
https://www.domo.com/learn/dataRneverRsleepsR2
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 7 @delabassee
HTTP*1.x
1991* 1996* 1999* 2009* 2015*
HTTP/0.9*
HTTP/1.0*
HTTP/1.1*
SPDY*
HTTP/2.0*
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 8 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 9 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 10 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 11 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 13 @delabassee
Today
index.html
style1.css
style2.css
.&
.&
.&
script1.js
script9.js
pic1.jpg
pic8.jpg
.&
.&
.&
photo1.png
photo2.png
.&
.&
.&
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 14 @delabassee
google.fr*(1st)*
• 3*HTTP*Requests*
• 21.355*bytes*
- 1*HTML*
- 1*image*
- 1*.js
Top*.FR*examples
lefigaro.fr*(15th)*
• 140*HTTP*Requests*
• 2.736.562*bytes*
- 1*HTML*
- 130*images*
- 6*.js*
- 2*.css*
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 15 @delabassee
• If*a*page*takes*longer*than*4*sec*to*load,*1/4*people*abandons*that*page*(1)*
• 57%*of*consumers*will*abandon*a*page*that*takes*longer*than*3*sec*to*load*(2)*
• Page*load*slowdown*of*1*sec*could*cost*Amazon*$1.6*billion*in*sales*a*year*(1)*
• Slowing*search*results*by*0.4*sec,*Google*could*lose*8*million*searches*per*day*(1)
Latency*Vs.*Conversion*Rate
Time&is&Money!
(1)*http://www.fastcompany.com/1825005/howRoneRsecondRcouldRcostRamazonR16RbillionRsales*
(2)*RadView*Spring*2015*State*of*the*Union:*Ecommerce*Page*Speed*&*Web*Performance
@delabasseeCopyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.
HTTP*1.1
HeadCofCLine&blocking
16
Client Server
index.html
index.html
style1.css*
script.js*
...
style1.css*
script.js*
...
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 17 @delabassee
HTTP*1.1
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 18 @delabassee
File*Concatenation*and*Image*Sprites
• Modern*web*page*consists*of*+90*resources*fetched*from*15*distinct*
hosts*(http://httparchive.org)*
• TCP*Efficiency*Improves*with*Larger*Files*
• Shoving*more*than*one*logical*file*into*one*physical*file
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 19 @delabassee
File*Concatenation*and*Image*Sprites
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 20 @delabassee
HTTP*1.1
Workaround&C&Domain&Sharding
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 21 @delabassee
Asset*inlining
…*
<img"src="data:image/gif;base64,R0lGODlhEAAOexs3eeALMAAOazToeHh0tLS/
7LZv0jvb29tf3Ubge8WSLrhf3kdbW1mxsjkhfkjfhGHhcjGDSHJUYgJvhgtyrHgfGfHy
t56HGfGH56ge8WSLf6GGHhfkjfhhfkjfhpBREzxvt6QAA4lsjkhfkjfhdxwqBnuIoYty
GhBKoOjJj6GGHvvhdsbxus38GV3pBREzxvt6QAA4lsjkhfkjfhdxwqBnuIoYtyGhBKoO
jJj6GGHvvhdsbxus38GV3vvhdsbxusbasbPmfyH5BAAAjAAAALAAfhGHhcjAAAAQAA4l
sjkhfkjfhGHhcjGDSHJUYgJvhgtyrHgfhfkjfhpBREzxvt6QAA4lsjkhfkjfhdxwqBnu
IoYtyGhBKoOjJj6GGHvvhdsbxus38GV3GfHyt56HGfGH56ge8WsjkhfkjfhGHhcjGDSH
JUYgJvhgtyrHgfGfHyt56HGfGH56gebxus38G8WSLf6GGHvvhdsbxusbaSLf6GGHvvhd
sbxusbaOiQA4lsjkhfkjf4lsjkhfkjf4lsjbxus38GkhfkjfhfkjfhpBREzxvt6QAA4l
sjkhfkjfhdxwqBnuIoYtyGhBKoOjJj6GGHvvhdsbxus38GV3DcPjjBceXsplojj…”"/>"
…
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 22 @delabassee
• HTTP*uses*TCP*poorly*
- HTTP:*short*and*bursty*flows*Vs.*TCP:*optimized*for*longRlived*flows*
• Solutions*
- Sprites*
- Domain*sharding*
- Assets*Inlining*
- File*concatenations*
- …
HTTP/1.1*circa*1999
Problems&Vs&Solutions
1991& 1996& 1999& 2009& 2015&
HTTP/0.9&
HTTP/1.0&
HTTP/1.1&
SPDY&
HTTP/2.0&
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
HTTP/2
• Jan*2015*
• Feb*2015*
• May*2015
24
Enabled*by*default*in*FireFox*(35)*and*Chrome*(40)*
IESG*approved*HTTP/2*
HTTP/2*in*10%*of*all*HTTP*responses*(FireFox)*
HTTP/2*used*in*18%*of*global*traffic*(Google)*
RFC*7540**“Hypertext*Transfer*Protocol*Version*2”*
RFC*7541**“HPACK:*Header*Compression*for*HTTP/2”**
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 25 @delabassee
Browsers*support
…&as&of&November&2015
http://caniuse.com/http2*
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.* @delabassee26
HTTP/2*Features
• Binary*Framing*over*single*TCP*connection*
• Request/Response*multiplexing*
• Stream*Prioritization*
• Server*Push*
• Upgrade*from*HTTP*1.1*
• Header*Compression*
• Preserve*HTTP*semantic
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.* @delabassee26
HTTP/2*Features
• Binary*Framing*over*single*TCP*connection*
• Request/Response*multiplexing*
• Stream*Prioritization*
• Server*Push*
• Upgrade*from*HTTP*1.1*
• Header*Compression*
• Preserve*HTTP*semantic
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 27 @delabassee
HTTP/2
• Fully*biRdirectional*
– Connection

A*TCP*socket*
– Message*

A*logical*HTTP*message,*such*as*a*request*or*a*response**
– Stream

A*biRdirectional*“channel”*within*a*connection,*carry*one*or*more*message*
– Frame

The*smallest*unit*of*communication*in*HTTP/2
Lets&you&do&more&things&with&a&single&TCP&connection
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 28 @delabassee
HTTP/2
Connections,&Streams,&Messages,&Frames
@delabasseeCopyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.
Binary*Frames
• Frames*
- HEADERS,*DATA,*PRIORITY,*RST_STREAM,*SETTINGS,*PUSH_PROMISE,*PING,*
GOAWAY,*WINDOW_UPDATE,*CONTINUATION*
- Prioritisation,*Flow*Control,*Server*Push,*…**
• Single*TCP*Connection
29
POST*/upload*HTTP/1.1*
Host:*www.test.com*
ContentRType:*application/json*
ContentRLength:*15*
{“name”:“duke”}
HTTP&1.1 HTTP/2
HEADERS&frame
DATA&frame
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 30 @delabassee
HTTP/2*Binary*Framing
GET*/index.html*HTTP/1.1

Host:*example.com

Accept:*text/html
Example&1
HEADERS

****+*END_STREAM

****+*END_HEADERS

********:method:*GET

********:scheme:*http

********:path:*/index.html

********:authority:*example.org

********accept:*text/html
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 31 @delabassee
HTTP/2*Binary*Framing
HTTP/1.1*200*OK

ContentRLength:*84

ContentRType:*text/html



<!doctype*html>*
<head>*
<meta*charset=utfR8>*
</head>*
<body>Hello*World</body>*
</html>
Example&2
HEADERS

****R*END_STREAM

****+*END_HEADERS

********:status:*200

********contentRlength:*84

********contentRtype:*text/html



DATA

****+*END_STREAM

<!doctype*html>…
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 32 @delabassee
Multiplexing
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 33 @delabassee
Stream*Prioritization
• Stream*Dependency*in*HEADERS*Frame*
• PRIORITY*frame*type*
• An*additional*40*bytes*
- Stream*id*(31)*
- Weight*(8):*[1,*256]**
- Exclusive*bit*(1)*
• Only*an*advice
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee#HTTP/2
Server*Push
/index.html***stream*1*
/style.css********stream*2*
/logo.gif*********stream*4
Client Server
stream&1&
HEADERS
stream&1&
DATA
stream&2&&&&
PROMISE
stream&4&
PROMISE
• No*JavaScript*API!
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 35 @delabassee
Header*Compression
HPack
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 36 @delabassee
Upgrade*from*HTTP*1.1
• HTTP*
- Port*80*
- HTTP*Upgrade*to*“h2c”*(101*Switching*Protocol)*
• HTTPS*(*)*
- Application*Layer*Protocol*Negotiation*(ALPN)*
- Next*Protocol*Negotiation*(NPN)*
(*)*TLS*is*not*mandatory
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee37
&Demo?
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9*Support*for*HTTP/2
• JEP*110*
- http://openjdk.java.net/jeps/110*
• Supports*both*HTTP*1.1*and*2*
• Easy*to*use*API*
• Covers*only*the*most*common*use*cases*
• Synchronous*&*Asynchronous
39#HTTP/2
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9
HttpClient"client"="HttpClient.create()"
" """"""""""""""""""""""""""".sslContext(ctx)"
" """"""""""""""""""""""""""".followRedirects(HttpRedirect.ALWAYS)"
"""""""""""""""""""""""""""""".executorService(…)"
" """"""""""""""""""""""""""".build();"
HttpRequest.Builder"builder"="client.request(new"URI(target))"
"""""""""""""""""""""""""""""""""""".body(noBody());"
HttpResponse"response"="builder.GET().send();"
//"do"something"with"the"response…"
40
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9
//"HttpRequest"builder"from"the"default"HttpClient"
HttpResponse"response"="HttpRequest.create(new"URI("http://www.abc.be"))"
""""""""""""""""""""""""""""""""""".send(HttpRequest.noBody());"
String"responseBody"="response.body(HttpResponse.asString());"
response"="HttpRequest.create(new"URI("http://www.abc.be"))"
"""""""""""""""""""""".body(fromString("param1=Abc"))"
"""""""""""""""""""""".post()A
AAAAAAAAAAAAAAAAAAAAAA.send();"
…
41
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9
HttpClient"cl"="HttpClient.create()"
"""""""""""""""""""""""""".proxy("http",proxAd).proxy("https","proxAd)"
"""""""""""""""""""""""""".sslContext(ctx)"
"""""""""""""""""""""""""".build();"
CompletableFuture<String>"compFut"="cl.request(uri)"
" " " " " " " " "".body(noBody())"
" """"""""""""""""""""""".GET()"
" """"""""""""""""""""""".sendAsync()"
"""""""""""""""""""""""""".thenCompose((HttpResponse"response)"l>"{"
""""""""""""""""""""""""""""""""""return"response.bodyAsync(asString());"
""""""""""""""""""""""""""});"
String"body"="compFut.get(5,"TimeUnit.SECONDS);"
…
42
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 44 @delabassee
• Request/Response*multiplexing*
• Binary*Framing*
• Stream*Prioritization*
• Server*Push*
• Header*Compression*
• Upgrade*from*HTTP*1.1*
– ALPN*
– 101*Switching*Protocols
HTTP/2
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 45 @delabassee
• Request/Response*Multiplexing*
• Binary*Framing*
• Stream*Prioritization*
• Server*Push*
• Header*Compression*
• Upgrade*from*HTTP*1.1*
– ALPN*
– 101*Switching*Protocols
Features&to&be&Exposed&in&the&Servlet&API
Servlet*4
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 46 @delabassee
• Push*resource*to*client*for*a*given*url*and*headers*
• May*add*callback*for*completion*or*error*of*a*push*
• Not*a*replacement*for*WebSocket
Servlet*4.0*R*Server*Push
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.
PushBuilderAbuilder = baseRequest.getPushBuilder();
builder.addHeader(“X-Pusher", …);
builder.path(aResource)
.etag(associated._etag)
.lastModified(associated._lastModified)
.push();
47
Server*Push
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
HTTP/2
• Address*the*Limitations*of*HTTP*1.x*
- Improve*ressources*utilization,*performance,*reduce*latency*
• “Compatible”*with*HTTP*1.1*
- Retain*HTTP*1.1*semantics*
- Define*interaction*with*HTTP*1.1*
- Undo*your*HTTP*1.1*tricks!!*
• “TLS0not0mandatory”
49
Hypertext&Transfer&Protocol&version&2&&&HPACK
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
HTTP/2*and*Java
• JEP*110*brings*HTTP/2*to*Java*SE*
• Servlet*4.0*brings*HTTP/2*to*Java*EE*
- Expose*key*features*to*the*API*
• Server*Push*
• HTTP*1.1*upgrade*
• Timing*TBC!
50
Plans
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee51
&
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Resources*(and*credits)
• http://http2.github.io*
• http://chimera.labs.oreilly.com/books/1230000000545/ch12.html*
• https://java.net/projects/servletRspec/*
• http://glassfish.org/adoptajsr*
• http://openjdk.java.net/jeps/110
52
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 53
1 of 53

Recommended

Java EE 8 - Work in progress by
Java EE 8 - Work in progressJava EE 8 - Work in progress
Java EE 8 - Work in progressDavid Delabassee
2.5K views80 slides
HTTP/2 comes to Java by
HTTP/2 comes to JavaHTTP/2 comes to Java
HTTP/2 comes to JavaDavid Delabassee
5.9K views79 slides
Java EE 8 - February 2017 update by
Java EE 8 - February 2017 updateJava EE 8 - February 2017 update
Java EE 8 - February 2017 updateDavid Delabassee
6K views65 slides
Java EE 7 (Lyon JUG & Alpes JUG - March 2014) by
Java EE 7 (Lyon JUG & Alpes JUG  - March 2014)Java EE 7 (Lyon JUG & Alpes JUG  - March 2014)
Java EE 7 (Lyon JUG & Alpes JUG - March 2014)David Delabassee
4.8K views76 slides
Oracle Database features every developer should know about by
Oracle Database features every developer should know aboutOracle Database features every developer should know about
Oracle Database features every developer should know aboutgvenzl
545 views54 slides
Data Management in a Microservices World by
Data Management in a Microservices WorldData Management in a Microservices World
Data Management in a Microservices Worldgvenzl
1.7K views111 slides

More Related Content

What's hot

Java EE Next - BeJUG JavaOne Afterglow 2016 by
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016David Delabassee
433 views26 slides
Java Embedded у вас дома by
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас домаDiana Dymolazova
389 views44 slides
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak by
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakDevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakHitachi, Ltd. OSS Solution Center.
527 views23 slides
Nonblocking Database Access in Helidon SE by
Nonblocking Database Access in Helidon SENonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SEDmitry Kornilov
866 views29 slides
Another compilation method in java - AOT (Ahead of Time) compilation by
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationLogico
3.6K views34 slides
Java EE 8 Overview (Japanese) by
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Logico
984 views91 slides

What's hot(7)

Java EE Next - BeJUG JavaOne Afterglow 2016 by David Delabassee
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
David Delabassee433 views
Nonblocking Database Access in Helidon SE by Dmitry Kornilov
Nonblocking Database Access in Helidon SENonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SE
Dmitry Kornilov866 views
Another compilation method in java - AOT (Ahead of Time) compilation by Logico
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
Logico 3.6K views
Java EE 8 Overview (Japanese) by Logico
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
Logico 984 views
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! by David Delabassee
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
David Delabassee1.1K views

Similar to HTTP/2 comes to Java (Dec. 2015 version)

Oracle Keynote from JMagghreb 2014 by
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Simon Ritter
693 views39 slides
Apex day 1.0 oracle apex 5.0 patrick wolf by
Apex day 1.0 oracle apex 5.0 patrick wolfApex day 1.0 oracle apex 5.0 patrick wolf
Apex day 1.0 oracle apex 5.0 patrick wolfAPEX Solutions - Natural Intelligence
592 views22 slides
Building beacon-enabled apps with Oracle MCS by
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSSteven Davelaar
1.8K views59 slides
Using Edition-Based Redefinition for Zero Downtime PL/SQL Changes by
Using Edition-Based Redefinition for Zero Downtime PL/SQL ChangesUsing Edition-Based Redefinition for Zero Downtime PL/SQL Changes
Using Edition-Based Redefinition for Zero Downtime PL/SQL ChangesChris Saxon
201 views27 slides
London Java Community (LJC) Open Meeting Keynote - Nov 2015 by
London Java Community (LJC) Open Meeting Keynote - Nov 2015London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015Steve Elliott
293 views34 slides
9thMeetup-20190316-CI/CD 기반의 Microservice 배포 by
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포DongHee Lee
130 views22 slides

Similar to HTTP/2 comes to Java (Dec. 2015 version)(20)

Oracle Keynote from JMagghreb 2014 by Simon Ritter
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter693 views
Building beacon-enabled apps with Oracle MCS by Steven Davelaar
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
Steven Davelaar1.8K views
Using Edition-Based Redefinition for Zero Downtime PL/SQL Changes by Chris Saxon
Using Edition-Based Redefinition for Zero Downtime PL/SQL ChangesUsing Edition-Based Redefinition for Zero Downtime PL/SQL Changes
Using Edition-Based Redefinition for Zero Downtime PL/SQL Changes
Chris Saxon201 views
London Java Community (LJC) Open Meeting Keynote - Nov 2015 by Steve Elliott
London Java Community (LJC) Open Meeting Keynote - Nov 2015London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015
Steve Elliott293 views
9thMeetup-20190316-CI/CD 기반의 Microservice 배포 by DongHee Lee
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
DongHee Lee130 views
GTRI.com Splunk for Vmware APP by Zivaro Inc
GTRI.com Splunk for Vmware APPGTRI.com Splunk for Vmware APP
GTRI.com Splunk for Vmware APP
Zivaro Inc635 views
OOW15 - EBS Certification and Roadmap by vasuballa
OOW15 - EBS Certification and RoadmapOOW15 - EBS Certification and Roadmap
OOW15 - EBS Certification and Roadmap
vasuballa1.6K views
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu... by Jérôme Petazzoni
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...
Jérôme Petazzoni10.9K views
Using Oracle Real Application Clusters (RAC) in Database as a Service by Jean-Philippe PINTE
Using Oracle Real Application Clusters (RAC) in Database as a ServiceUsing Oracle Real Application Clusters (RAC) in Database as a Service
Using Oracle Real Application Clusters (RAC) in Database as a Service
DevOps - Developer Cloud Service Demo by Mee Nam Lee
DevOps - Developer Cloud Service DemoDevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service Demo
Mee Nam Lee233 views
Application Development with Oracle Database by gvenzl
Application Development with Oracle DatabaseApplication Development with Oracle Database
Application Development with Oracle Database
gvenzl3.3K views
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ... by vasuballa
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
vasuballa820 views
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test by Ian Kelly
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test
Ian Kelly214 views
Oracle RAC - A Safe Investment into the Future of Your IT by Markus Michalewicz
Oracle RAC - A Safe Investment into the Future of Your ITOracle RAC - A Safe Investment into the Future of Your IT
Oracle RAC - A Safe Investment into the Future of Your IT
Markus Michalewicz1.4K views
Building Cloud-Native Applications with Helidon by Dmitry Kornilov
Building Cloud-Native Applications with HelidonBuilding Cloud-Native Applications with Helidon
Building Cloud-Native Applications with Helidon
Dmitry Kornilov961 views
Oracle WebLogic Server 12.2.1 Do More with Less by Ed Burns
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
Ed Burns1.5K views
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!? by Ryusuke Kajiyama
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
Ryusuke Kajiyama1.1K views
No sql from the web’s favourite relational database MySQL by Mark Swarbrick
No sql from the web’s favourite relational database MySQLNo sql from the web’s favourite relational database MySQL
No sql from the web’s favourite relational database MySQL
Mark Swarbrick261 views

More from David Delabassee

JVMs in Containers - Best Practices by
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
726 views37 slides
JVMs in Containers by
JVMs in ContainersJVMs in Containers
JVMs in ContainersDavid Delabassee
1.3K views38 slides
Serverless Java Challenges & Triumphs by
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
1.2K views46 slides
Serverless Java - Challenges and Triumphs by
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
282 views41 slides
Randstad Docker meetup - Serverless by
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessDavid Delabassee
322 views37 slides
Java Serverless in Action - Voxxed Banff by
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffDavid Delabassee
232 views22 slides

More from David Delabassee(20)

Serverless Java Challenges & Triumphs by David Delabassee
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee1.2K views
Serverless Java - Challenges and Triumphs by David Delabassee
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee282 views
Java Serverless in Action - Voxxed Banff by David Delabassee
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee232 views
EJB and CDI - Alignment and Strategy by David Delabassee
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee31.9K views
Java EE 8 - What’s new on the Web front by David Delabassee
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
David Delabassee960 views
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0 by David Delabassee
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
David Delabassee1.8K views
Java EE 8 - An instant snapshot by David Delabassee
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee10.7K views
HTTP/2 Comes to Java - What Servlet 4.0 Means to You by David Delabassee
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
David Delabassee13.8K views

Recently uploaded

ADDO_2022_CICID_Tom_Halpin.pdf by
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdfTomHalpin9
5 views33 slides
predicting-m3-devopsconMunich-2023-v2.pptx by
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptxTier1 app
11 views33 slides
tecnologia18.docx by
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 views5 slides
Top-5-production-devconMunich-2023.pptx by
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptxTier1 app
9 views40 slides
Agile 101 by
Agile 101Agile 101
Agile 101John Valentino
10 views20 slides
How to build dyanmic dashboards and ensure they always work by
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always workWiiisdom
14 views13 slides

Recently uploaded(20)

ADDO_2022_CICID_Tom_Halpin.pdf by TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin95 views
predicting-m3-devopsconMunich-2023-v2.pptx by Tier1 app
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptx
Tier1 app11 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
Top-5-production-devconMunich-2023.pptx by Tier1 app
Top-5-production-devconMunich-2023.pptxTop-5-production-devconMunich-2023.pptx
Top-5-production-devconMunich-2023.pptx
Tier1 app9 views
How to build dyanmic dashboards and ensure they always work by Wiiisdom
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always work
Wiiisdom14 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492162 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app8 views
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski13 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino7 views
Bootstrapping vs Venture Capital.pptx by Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic15 views
Electronic AWB - Electronic Air Waybill by Freightoscope
Electronic AWB - Electronic Air Waybill Electronic AWB - Electronic Air Waybill
Electronic AWB - Electronic Air Waybill
Freightoscope 5 views
AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8714 views
Transport Management System - Shipment & Container Tracking by Freightoscope
Transport Management System - Shipment & Container TrackingTransport Management System - Shipment & Container Tracking
Transport Management System - Shipment & Container Tracking
Freightoscope 5 views
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
Automated Testing of Microsoft Power BI Reports by RTTS
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI Reports
RTTS8 views

HTTP/2 comes to Java (Dec. 2015 version)