SlideShare a Scribd company logo
1 of 33
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Java HTTP/2 Update
Edward Burns
Java EE Specifications Team
February 2016
Java Champions Call
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
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. |
• Ed Burns Credentials
– Working on Web technologies since 1994
– JCP Star Spec-lead 2009
– Spec lead for JSF and Servlet
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
My Plan for Your Time Investment
HTTP/2 protocol and justification
HTTP/Related Developments in Java
Q&A
1
2
3
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
My Plan for Your Time Investment
HTTP/2 protocol and justification
HTTP/Related Developments in Java
Q&A
1
2
3
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Why HTTP/2?
A Real Life Example
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. |
Why HTTP/2?
• Head of Line Blocking
• Inefficient Use of Sockets
• Wasteful Use of Network Resources
• Not resilient to pervasive monitoring by default
Problems with HTTP/1.1
7
S
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Why HTTP/2?
• Much of what we do in web-apps is a hack to work around shortcomings in
HTTP/1.1
– File concatenation and image sprites
– Domain sharding
– Inlined assets
What is an optimization?
8
S
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Why HTTP/2?
• Head of Line Blocking
– Frame Based Binary Protocol
• Inefficient Use of Sockets
– Stream Multiplexing
• Wasteful Use of Network Resources
– Header “compression”
– Server push
• Not resilient to pervasive monitoring by default
– Per RFC-7258, TLS is the default, clear text is optional
Problems with HTTP/1.1
9
S
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
HTTP/2 is really just a new transport
layer underneath HTTP/1.1
– same request/response model
– no new methods
– no new headers
– no new usage patterns from
application layer
– no new usage of URL spec and other
lower level specs
Network Programming Review
10
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Standing on the Shoulders
11
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Network Programming Review
12
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Network Programming Review
13
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Network Programming Review
14
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Network Programming Review
15
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Network Programming Review
16
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Network Programming Review
17
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Network Programming Review
18
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Request/Response multiplexing
• Binary Framing
• Stream Prioritization
• Server Push
• Header Compression
• Upgrade from HTTP/1.1
– Application Layer Protocol Negotiation (ALPN)
– 101 Switching Protocols
19
HTTP/2 Big Ticket New Features
S
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
1
My Plan for Your Time Investment
HTTP/2 protocol and justification
HTTP/Related Developments in Java
Q&A
2
3
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
HTTP/2 Related Developments in Java
• Java SE JDK 9
– JEP 110: HTTP/2 Client
– JEP 244: TLS ALPN
• Java EE 8
– Servlet 4.0
• Open Source
– Jetty
– Netty
– Grizzly
– Undertow
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
HTTP/2 Related Developments in Java
• Not yet in Early Access Release – Build 104
• Fully functional in internal builds
• JEP 110 http://openjdk.java.net/jeps/110
• Easy to use API
• Covers only the most common use cases
• Supports both HTTP/1.1 and 2
• Builds on Java API classes going back to Java 1.2!
Java SE JDK 9
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Java SE 9 Support for HTTP/2
23
HttpClientHttpClient.Builder
HttpRequest.Builder
HttpRequestHttpRequest
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Java SE 9 Support for HTTP/2
• Blocking mode: one thread per request/response
– send request
– get response
• Non-blocking mode
– Using ExecutorService and CompletableFuture
• Full support for HTTP/2 Server Push
Small footprint
24
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Java SE 9 Support for HTTP/2
HttpResponse response = HttpRequest
.create(new URI("http://www.foo.com"))
.headers("Foo", "foovalue", "Bar", "barvalue”)
.GET()
.response();
int statusCode = response.statusCode();
String responseBody = response.body(asString());
25
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Java SE 9 Support for HTTP/2: Async Case
List<URI> targets = ... // fetch list of URIs async and store in Files
List<CompletableFuture<File>> futures = targets.stream()
.map(target -> {
return HttpRequest
.create(target).GET().responseAsync().thenCompose(response -> {
Path dest = Paths.get("base", target.getPath());
if (response.statusCode() == 200) {
return response.bodyAsync(asFile(dest));
} else {
return CompletableFuture.completedFuture(dest);
}
})
// convert Path -> File
.thenApply((Path dest) -> {
return dest.toFile();
});
}).collect(Collectors.toList());
// all async operations waited for here
CompletableFuture.allOf(futures.toArray(new CompletableFuture<?>[0])).join();
26
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Java SE 9 Support for HTTP/2
• Negotiation of HTTP/2 from 1.1
– ALPN or plaintext
• Server Push
– Support for PUSH_PROMISE frames
• HPACK parameters
HTTP/2 features
27
E
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
HTTP/2 Related Developments in Java
• Request/Response multiplexing
• Binary Framing
• Stream Prioritization
• Server Push
• Header Compression
• Upgrade from HTTP/1.1
– ALPN
– 101 Switching Protocols
Java EE 8 Servlet 4.0
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Servlet 4.0 Big Ticket New Features
• HTTP/2 Required, including ALPN and HPACK
• HTTP/2 Server Push
– Push resource to client for a given url and headers
– Not at all a replacement for WebSocket
– Really useful for frameworks that build on Servlet, such as JSF
– Builder API
• Ease of Use
29
S
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
javax.servlet.http.PushBuilder
S
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 31
Server Push via Builder API
Servlet 4.0
Big Ticket
New Features
S
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The preceding 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. |
Questions?

More Related Content

What's hot

Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceBruno Borges
 
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374Heather VanCura
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015Pavel Bucek
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developersPavel Bucek
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoBruno Borges
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesPavel Bucek
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckEdward 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
 
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
 
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
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 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
 
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
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyDavid Delabassee
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudShaun Smith
 
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 hot (20)

Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service
 
Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374Adopt-a-JSR for JSON Processing 1.1, JSR 374
Adopt-a-JSR for JSON Processing 1.1, JSR 374
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
 
Web protocols for java developers
Web protocols for java developersWeb protocols for java developers
Web protocols for java developers
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo Conectado
 
How to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based MicroservicesHow to Thrive on REST/WebSocket-Based Microservices
How to Thrive on REST/WebSocket-Based Microservices
 
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute InfodeckJSF 2.3 Adopt-a-JSR 10 Minute Infodeck
JSF 2.3 Adopt-a-JSR 10 Minute Infodeck
 
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
 
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
 
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
 
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
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 
JavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin TadićJavaCro'15 - Java Cloud - Marin Tadić
JavaCro'15 - Java Cloud - Marin Tadić
 
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
 
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
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
 
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
JavaCro'15 - Java Certification – in theory and practice - Branko Mihaljević,...
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion2015 UJUG, Servlet 4.0 portion
2015 UJUG, Servlet 4.0 portion
 

Viewers also liked

Continuous Integration (CI) is about more than releases
Continuous Integration (CI) is about more than releasesContinuous Integration (CI) is about more than releases
Continuous Integration (CI) is about more than releasesChris Riley ☁
 
What DevOps means for QA Teams
What DevOps means for QA TeamsWhat DevOps means for QA Teams
What DevOps means for QA TeamsChris Riley ☁
 
Ramsey,aquilachapter8
Ramsey,aquilachapter8Ramsey,aquilachapter8
Ramsey,aquilachapter8aquilaramsey
 
Gruppo Wice Formazione Office
Gruppo Wice Formazione OfficeGruppo Wice Formazione Office
Gruppo Wice Formazione Officeederrico
 
Cтадник е.а. лимфоаденопатии
Cтадник е.а. лимфоаденопатииCтадник е.а. лимфоаденопатии
Cтадник е.а. лимфоаденопатииnizhgma.ru
 
Computación evolutiva
Computación evolutivaComputación evolutiva
Computación evolutivaHugo Banda
 
Лекция 2. Оптические методы визуализации
Лекция 2. Оптические методы визуализацииЛекция 2. Оптические методы визуализации
Лекция 2. Оптические методы визуализацииnizhgma.ru
 
Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Sauce Labs
 
Becoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and Hadoop
Becoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and HadoopBecoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and Hadoop
Becoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and HadoopDataWorks Summit
 
Things ilove 3A
Things ilove 3AThings ilove 3A
Things ilove 3Aclanmort
 

Viewers also liked (14)

Continuous Integration (CI) is about more than releases
Continuous Integration (CI) is about more than releasesContinuous Integration (CI) is about more than releases
Continuous Integration (CI) is about more than releases
 
What DevOps means for QA Teams
What DevOps means for QA TeamsWhat DevOps means for QA Teams
What DevOps means for QA Teams
 
Bappeda
BappedaBappeda
Bappeda
 
Proud to be a black man
Proud to be a black manProud to be a black man
Proud to be a black man
 
1C - Possessive Adjectives
1C - Possessive Adjectives1C - Possessive Adjectives
1C - Possessive Adjectives
 
Ramsey,aquilachapter8
Ramsey,aquilachapter8Ramsey,aquilachapter8
Ramsey,aquilachapter8
 
Gruppo Wice Formazione Office
Gruppo Wice Formazione OfficeGruppo Wice Formazione Office
Gruppo Wice Formazione Office
 
Cтадник е.а. лимфоаденопатии
Cтадник е.а. лимфоаденопатииCтадник е.а. лимфоаденопатии
Cтадник е.а. лимфоаденопатии
 
4B - Adjectives
4B - Adjectives4B - Adjectives
4B - Adjectives
 
Computación evolutiva
Computación evolutivaComputación evolutiva
Computación evolutiva
 
Лекция 2. Оптические методы визуализации
Лекция 2. Оптические методы визуализацииЛекция 2. Оптические методы визуализации
Лекция 2. Оптические методы визуализации
 
Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)
 
Becoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and Hadoop
Becoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and HadoopBecoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and Hadoop
Becoming a Data Driven Oil and Gas Enterprise with Advanced Analytics and Hadoop
 
Things ilove 3A
Things ilove 3AThings ilove 3A
Things ilove 3A
 

Similar to HTTP/2 in the Java Platform -- Java Champions call February 2016

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
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewKris Rice
 
Boost Your Content Strategy for REST APIs with Gururaj BS
Boost Your Content Strategy for REST APIs with Gururaj BSBoost Your Content Strategy for REST APIs with Gururaj BS
Boost Your Content Strategy for REST APIs with Gururaj BSInformation Development World
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in actionAnkara JUG
 
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/NetMySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/NetMark Swarbrick
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaTakashi Ito
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 
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
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7MySQL Brasil
 
OOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and securityOOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and securityvasuballa
 
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2vasuballa
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Javaamithap07
 
Con8780 nair rac_best_practices_final_without_12_2content
Con8780 nair rac_best_practices_final_without_12_2contentCon8780 nair rac_best_practices_final_without_12_2content
Con8780 nair rac_best_practices_final_without_12_2contentAnil Nair
 
What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018Jeff Smith
 
Ebs performance tuning session feb 13 2013---Presented by Oracle
Ebs performance tuning session  feb 13 2013---Presented by OracleEbs performance tuning session  feb 13 2013---Presented by Oracle
Ebs performance tuning session feb 13 2013---Presented by OracleAkash Pramanik
 
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...donaghmccabe
 

Similar to HTTP/2 in the Java Platform -- Java Champions call February 2016 (20)

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 REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
Boost Your Content Strategy for REST APIs with Gururaj BS
Boost Your Content Strategy for REST APIs with Gururaj BSBoost Your Content Strategy for REST APIs with Gururaj BS
Boost Your Content Strategy for REST APIs with Gururaj BS
 
Java EE7 in action
Java EE7 in actionJava EE7 in action
Java EE7 in action
 
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/NetMySQL Tech Tour 2015 - 5.7 Connector/J/Net
MySQL Tech Tour 2015 - 5.7 Connector/J/Net
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
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)
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
 
Ebr the key_to_online_application_upgrade at amis25
Ebr the key_to_online_application_upgrade at amis25Ebr the key_to_online_application_upgrade at amis25
Ebr the key_to_online_application_upgrade at amis25
 
OOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and securityOOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and security
 
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
OOW15 - Installation, Cloning, and Configuration of Oracle E-Business Suite 12.2
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Java
 
JAX-RS.next
JAX-RS.nextJAX-RS.next
JAX-RS.next
 
Con8780 nair rac_best_practices_final_without_12_2content
Con8780 nair rac_best_practices_final_without_12_2contentCon8780 nair rac_best_practices_final_without_12_2content
Con8780 nair rac_best_practices_final_without_12_2content
 
What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018What's New in Oracle SQL Developer for 2018
What's New in Oracle SQL Developer for 2018
 
Ebs performance tuning session feb 13 2013---Presented by Oracle
Ebs performance tuning session  feb 13 2013---Presented by OracleEbs performance tuning session  feb 13 2013---Presented by Oracle
Ebs performance tuning session feb 13 2013---Presented by Oracle
 
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...
 

More from Ed Burns

What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfileWhat We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfileEd Burns
 
2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution BriefingEd Burns
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentEd Burns
 
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...Ed Burns
 
Enterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you coveredEnterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you coveredEd Burns
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Ed Burns
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudEd Burns
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologyEd Burns
 
JavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a ThereminJavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a ThereminEd Burns
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Ed Burns
 
Chicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupChicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupEd Burns
 

More from Ed Burns (11)

What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfileWhat We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
 
2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java Development
 
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
 
Enterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you coveredEnterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you covered
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
 
JavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a ThereminJavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a Theremin
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017
 
Chicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupChicago JUG / GOTO Meetup
Chicago JUG / GOTO Meetup
 

Recently uploaded

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
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
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.
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
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
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
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
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 

Recently uploaded (20)

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...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
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
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
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)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
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
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 

HTTP/2 in the Java Platform -- Java Champions call February 2016

  • 1. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Java HTTP/2 Update Edward Burns Java EE Specifications Team February 2016 Java Champions Call
  • 2. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 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.
  • 3. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | • Ed Burns Credentials – Working on Web technologies since 1994 – JCP Star Spec-lead 2009 – Spec lead for JSF and Servlet
  • 4. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | My Plan for Your Time Investment HTTP/2 protocol and justification HTTP/Related Developments in Java Q&A 1 2 3
  • 5. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | My Plan for Your Time Investment HTTP/2 protocol and justification HTTP/Related Developments in Java Q&A 1 2 3
  • 6. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Why HTTP/2? A Real Life Example index.html style1.css style2.css . . . script1.js script9.js pic1.jpg pic8.jpg . . . photo1.png photo2.png . . .
  • 7. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Why HTTP/2? • Head of Line Blocking • Inefficient Use of Sockets • Wasteful Use of Network Resources • Not resilient to pervasive monitoring by default Problems with HTTP/1.1 7 S
  • 8. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Why HTTP/2? • Much of what we do in web-apps is a hack to work around shortcomings in HTTP/1.1 – File concatenation and image sprites – Domain sharding – Inlined assets What is an optimization? 8 S
  • 9. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Why HTTP/2? • Head of Line Blocking – Frame Based Binary Protocol • Inefficient Use of Sockets – Stream Multiplexing • Wasteful Use of Network Resources – Header “compression” – Server push • Not resilient to pervasive monitoring by default – Per RFC-7258, TLS is the default, clear text is optional Problems with HTTP/1.1 9 S
  • 10. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | HTTP/2 is really just a new transport layer underneath HTTP/1.1 – same request/response model – no new methods – no new headers – no new usage patterns from application layer – no new usage of URL spec and other lower level specs Network Programming Review 10 E
  • 11. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Standing on the Shoulders 11 E
  • 12. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Network Programming Review 12 E
  • 13. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Network Programming Review 13 E
  • 14. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Network Programming Review 14 E
  • 15. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Network Programming Review 15 E
  • 16. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Network Programming Review 16 E
  • 17. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Network Programming Review 17 E
  • 18. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Network Programming Review 18 E
  • 19. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | • Request/Response multiplexing • Binary Framing • Stream Prioritization • Server Push • Header Compression • Upgrade from HTTP/1.1 – Application Layer Protocol Negotiation (ALPN) – 101 Switching Protocols 19 HTTP/2 Big Ticket New Features S
  • 20. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 1 My Plan for Your Time Investment HTTP/2 protocol and justification HTTP/Related Developments in Java Q&A 2 3
  • 21. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | HTTP/2 Related Developments in Java • Java SE JDK 9 – JEP 110: HTTP/2 Client – JEP 244: TLS ALPN • Java EE 8 – Servlet 4.0 • Open Source – Jetty – Netty – Grizzly – Undertow
  • 22. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | HTTP/2 Related Developments in Java • Not yet in Early Access Release – Build 104 • Fully functional in internal builds • JEP 110 http://openjdk.java.net/jeps/110 • Easy to use API • Covers only the most common use cases • Supports both HTTP/1.1 and 2 • Builds on Java API classes going back to Java 1.2! Java SE JDK 9
  • 23. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Java SE 9 Support for HTTP/2 23 HttpClientHttpClient.Builder HttpRequest.Builder HttpRequestHttpRequest E
  • 24. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Java SE 9 Support for HTTP/2 • Blocking mode: one thread per request/response – send request – get response • Non-blocking mode – Using ExecutorService and CompletableFuture • Full support for HTTP/2 Server Push Small footprint 24 E
  • 25. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Java SE 9 Support for HTTP/2 HttpResponse response = HttpRequest .create(new URI("http://www.foo.com")) .headers("Foo", "foovalue", "Bar", "barvalue”) .GET() .response(); int statusCode = response.statusCode(); String responseBody = response.body(asString()); 25 E
  • 26. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Java SE 9 Support for HTTP/2: Async Case List<URI> targets = ... // fetch list of URIs async and store in Files List<CompletableFuture<File>> futures = targets.stream() .map(target -> { return HttpRequest .create(target).GET().responseAsync().thenCompose(response -> { Path dest = Paths.get("base", target.getPath()); if (response.statusCode() == 200) { return response.bodyAsync(asFile(dest)); } else { return CompletableFuture.completedFuture(dest); } }) // convert Path -> File .thenApply((Path dest) -> { return dest.toFile(); }); }).collect(Collectors.toList()); // all async operations waited for here CompletableFuture.allOf(futures.toArray(new CompletableFuture<?>[0])).join(); 26 E
  • 27. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Java SE 9 Support for HTTP/2 • Negotiation of HTTP/2 from 1.1 – ALPN or plaintext • Server Push – Support for PUSH_PROMISE frames • HPACK parameters HTTP/2 features 27 E
  • 28. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | HTTP/2 Related Developments in Java • Request/Response multiplexing • Binary Framing • Stream Prioritization • Server Push • Header Compression • Upgrade from HTTP/1.1 – ALPN – 101 Switching Protocols Java EE 8 Servlet 4.0
  • 29. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Servlet 4.0 Big Ticket New Features • HTTP/2 Required, including ALPN and HPACK • HTTP/2 Server Push – Push resource to client for a given url and headers – Not at all a replacement for WebSocket – Really useful for frameworks that build on Servlet, such as JSF – Builder API • Ease of Use 29 S
  • 30. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | javax.servlet.http.PushBuilder S
  • 31. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 31 Server Push via Builder API Servlet 4.0 Big Ticket New Features S
  • 32. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The preceding 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.
  • 33. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Questions?

Editor's Notes

  1. This is a Title Slide with Picture slide ideal for including a picture with a brief title, subtitle and presenter information. To customize this slide with your own picture: Right-click the slide area and choose Format Background from the pop-up menu. From the Fill menu, click Picture and texture fill. Under Insert from: click File. Locate your new picture and click Insert. To copy the Customized Background from Another Presentation on PC Click New Slide from the Home tab's Slides group and select Reuse Slides. Click Browse in the Reuse Slides panel and select Browse Files. Double-click the PowerPoint presentation that contains the background you wish to copy. Check Keep Source Formatting and click the slide that contains the background you want. Click the left-hand slide preview to which you wish to apply the new master layout. Apply New Layout (Important): Right-click any selected slide, point to Layout, and click the slide containing the desired layout from the layout gallery. Delete any unwanted slides or duplicates. To copy the Customized Background from Another Presentation on Mac Click New Slide from the Home tab's Slides group and select Insert Slides from Other Presentation… Navigate to the PowerPoint presentation file that contains the background you wish to copy. Double-click or press Insert. This prompts the Slide Finder dialogue box. Make sure Keep design of original slides is unchecked and click the slide(s) that contains the background you want. Hold Shift key to select multiple slides. Click the left-hand slide preview to which you wish to apply the new master layout. Apply New Layout (Important): Click Layout from the Home tab's Slides group, and click the slide containing the desired layout from the layout gallery. Delete any unwanted slides or duplicates.
  2. Frank Nimphius: Glaubt alles, kauft nichts. ----- Meeting Notes (11/19/15 13:44) ----- Normally the German takes longer than the English, but not in this case.
  3. This is a Remote Speaker Picture slide ideal for including a picture with the speaker’s name and title and company. To Replace the Picture on this sample slide (this applies to all slides in this template that contain replaceable pictures) Select the sample picture and press Delete. Click the icon inside the shape to open the Insert Picture dialog box. Navigate to the location where the picture is stored, select desired picture and click on the Insert button to fit the image proportionally within the shape. Note: Do not right-click the image to change the picture inside the picture placeholder. This will change the frame size of the picture placeholder. Instead, follow the steps outlined above.
  4. 30 resources 2 styelsheets 9 java scripts 8 jpg images 2 pngs ----- Meeting Notes (3/11/15 14:24) ----- Google research used to inform design of h2 from the beginning. From RFC 7540: HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection. It also introduces unsolicited push of representations from servers to clients.
  5. TCP efficiency with large files inlined images can't be easily cached and shared across pages. Base64 encoding / decoding
  6. TCP efficiency with large files inlined images can't be easily cached and shared across pages. Base64 encoding / decoding
  7. TCP efficiency with large files inlined images can't be easily cached and shared across pages. Base64 encoding / decoding
  8. This is important because HTTP/2 is essentially a new transport layer underneath the existing HTTP/1.1 semantics + a header compression specification. Same request/response model No new HTTP methods (except for PRI but that's just for the protocol) No new headers (but new names/concepts for old headers) No new usage pattern from application level Same usage of URL spec and TCP ports
  9. Care has been taken to avoid the "not invented here" syndrome, and to re-use concepts already proven successful.
  10. Physical: electrical and physical specifications of the data connection. Token ring, ethernet, etc. Data Link: MAC addresses, node-to-node transfer, anyone remember PPP? Reliable communication. Network: This is where routing comes in. This is how datagrams can make it between nodes that are not directly connected to each other. Multicast group management lives here. Transport: This is where TCP and UDP live. Session: home of the concept of a connection being created and closed. The connection lifecycle lives here. The UNIX Socket API lives here. Presentation: This is where Transport Layer Security lives (incorrectly named, eh?). Mime is another example of a presentation layer protocol. Does anyone here do anything with layers 6 and below here?
  11. May add callback for completion or error of a push ? In the future?
  12. Reuse PushBuilder order
  13. This is a Safe Harbor Front slide, one of two Safe Harbor Statement slides included in this template. One of the Safe Harbor slides must be used if your presentation covers material affected by Oracle’s Revenue Recognition Policy To learn more about this policy, e-mail: Revrec-americasiebc_us@oracle.com For internal communication, Safe Harbor Statements are not required. However, there is an applicable disclaimer (Exhibit E) that should be used, found in the Oracle Revenue Recognition Policy for Future Product Communications. Copy and paste this link into a web browser, to find out more information.   http://my.oracle.com/site/fin/gfo/GlobalProcesses/cnt452504.pdf For all external communications such as press release, roadmaps, PowerPoint presentations, Safe Harbor Statements are required. You can refer to the link mentioned above to find out additional information/disclaimers required depending on your audience.