Date post: | 23-Sep-2018 |
Category: |
Documents |
Upload: | dinhnguyet |
View: | 221 times |
Download: | 0 times |
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Servlet4.0:StatusUpdate,HTTP/2ComestoJavaCON7980
EdBurnsServletSpecificaLonCo-leadJavaEEPlaNormGroupSeptember2016
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirecLon.ItisintendedforinformaLonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncLonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andLmingofanyfeaturesorfuncLonalitydescribedforOracle’sproductsremainsatthesolediscreLonofOracle.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• EuigeunChung(TmaxSoX,Inc)• GregWilkins(WebLdeLLC)• JusLnLee(MongoDB,Inc)• MarkThomas(Individual,Tomcat)• MarLnMulholland(IBM)• MinehikoIIDA(FujitsuLimited)• NeilGriffin(LiferayInc)• StuartDouglas(RedHat)• WenboZhu(GoogleInc.)
ServletHasAlwaysBeenaTrueCommunityEffort
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JavaEEBigPicture
HTTP/2andServlet4.0
ServletandReacLveProgramming
NewandPlannedImprovementsinServlet4.0
JavaSE9SupportforHTTP/2
SummaryandCurrentStatus
1
2
3
4
5
6
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JavaEEBigPicture
HTTP/2andServlet4.0
ServletandReacLveProgramming
NewandPlannedImprovementsinServlet4.0
JavaSE9SupportforHTTP/2
SummaryandCurrentStatus
1
2
3
4
5
6
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.| ConfidenLal–OracleInternal/Restricted/HighlyRestricted 8
JavaEE7
Connector JAXBJSPDebugging
ManagedBeansJSPConcurrencyEE Interceptors JAX-WS WebSocket
BeanValidaLon JASPIC ServletJMS JTADeployment
Batch JACCDependencyInjecLon JAXR JSTL Management
CDI EJB JAX-RPC WebServicesJSF JavaPersistence
JSON-PCommonAnnotaLons EL JAX-RS WebServices
MetadataJavaMail
CDI
JSON-B
Security
BeanValidaLon
JSF
JAX-RS
JSON-P
Servlet
HealthCheckConfiguraLon
JavaEE8(RevisedProposal,2016)
JSP
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.| ConfidenLal–OracleInternal/Restricted/HighlyRestricted 9
JavaEE7
Connector JAXBJSPDebugging
ManagedBeansJSPConcurrencyEE Interceptors JAX-WS WebSocket
BeanValidaLon JASPIC ServletJMS JTADeployment
Batch JACCDependencyInjecLon JAXR JSTL Management
CDI EJB JAX-RPC WebServicesJSF JavaPersistence
JSON-PCommonAnnotaLons EL JAX-RS WebServices
MetadataJavaMail
CDI
JSON-B
Security
BeanValidaLon
JSF
JAX-RS
JSON-P
Servlet
HealthCheckConfiguraLon
JavaEE8(RevisedProposal,2016)
JSP
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JavaEEBigPicture
HTTP/2andServlet4.0
ServletandReacLveProgramming
NewandPlannedImprovementsinServlet4.0
JavaSE9SupportforHTTP/2
SummaryandCurrentStatus
1
2
3
4
5
6
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2Percep4onisReality(especiallywithWebBrowsers)
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2Percep4onisReality(especiallywithWebBrowsers)
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2Percep4onisReality(especiallywithWebBrowsers)
ReducedpercepLonoflatency
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2Percep4onisReality(especiallywithWebBrowsers)
ReducedpercepLonoflatency
Headerfieldcompression
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2Percep4onisReality(especiallywithWebBrowsers)
ReducedpercepLonoflatency
Headerfieldcompression
MulLpleconcurrentexchanges
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2isreallyjustanewtransportlayerunderneathHTTP/1.1– samerequest/responsemodel– nonewmethods– nonewheaders– nonewusagepalernsfromapplicaLonlayer– nonewusageofURLspecandotherlowerlevelspecs
NetworkProgrammingReview
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• HTTP/1.0– Socketsareathrowawayresource– SpecificaLonsaysverylilleabouthowsocketsaretobeused– Browsersfreetoopenmanysocketstothesameserver
NetworkProgrammingReview
Credit:chrisjstanleyflickr
TheSocketAngle
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
NetworkProgrammingReviewTheSocketAngle
• HTTP/2– Socketsseenasascarceresource– SpecificaLonsaysmuchabouthowtheyaretobeused– Onlyoneopenperserver
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
NetworkProgrammingReviewTheSocketAngle
Client ServerClient Server
Client Server
Client Server
Client Server
Client Server
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
NetworkProgrammingReviewSolu4oninHTTP/2
Client Server
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
NetworkProgrammingReview
• HTTP/1.0wasdesignedtobeeasytoimplementwithcontemporarydevelopmentpracLcesof1991– textbasedprotocol– leavesflowcontroltotheTCPlayer– easytowriteaparser– simplesocketlifecycle
TheAdop4onAngle
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
NetworkProgrammingReview
• HTTP/2ismuchmorecomplicatedtoimplement– statemachine– flowcontrol– headercompression– binaryframing(arguablyeasierthantextbasedforparsing)
TheAdop4onAngle
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2BigTicketFeatureReview• Request/ResponsemulLplexing• BinaryFraming• StreamPrioriLzaLon• ServerPush• HeaderCompression• UpgradefromHTTP/1.1
• ALPN• 101SwitchingProtocols
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2RequestResponseMulLplexing
• Fullybi-direcLonal• Enabledbydefiningsometerms– Connec&onATCPsocket– StreamA“channel”withinaconnecLon– MessageAlogicalmessage,suchasarequestoraresponse– FrameThesmallestunitofcommunicaLoninHTTP/2.
LetstheprotocoldomorethingswithasingleTCPconnec4on
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2RequestResponseMulLplexing
• Fullybi-direcLonal• Enabledbydefiningsometerms– Connec&onATCPsocket– StreamA“channel”withinaconnecLon– MessageAlogicalmessage,suchasarequestoraresponse– FrameThesmallestunitofcommunicaLoninHTTP/2.
LetstheprotocoldomorethingswithasingleTCPconnec4on
Backpressure?}
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2RequestResponseMulLplexing
• Fullybi-direcLonal• Enabledbydefiningsometerms– Connec&onATCPsocket– StreamA“channel”withinaconnecLon– MessageAlogicalmessage,suchasarequestoraresponse– FrameThesmallestunitofcommunicaLoninHTTP/2.
LetstheprotocoldomorethingswithasingleTCPconnec4on
Flowcontrol}
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2RequestResponseMulLplexingConnec4ons,Streams,Messages,Frames
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2RequestResponseMulLplexing
• OnceyoubreakthecommunicaLondownintoframes,youcaninterweavethelogicalstreamsoverasingleTCPconnecLon.• Yetanotherideafromthe1960sisnewagain.
Connec4ons,Streams,Messages,Frames
BrowserServerSingle TCP connection for HTTP 2
STREAM'4'HEADERS'
STREAM'9'HEADERS'
STREAM'7'DATA'
STREAM'7'HEADERS'
STREAM'2'HEADERS'
STREAM'2'DATA'
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2BinaryFraming
• SolvesHead-Of-Line(HOL)blockingproblem
• TypefieldcanbeDATA,HEADERS,PRIORITY,RST_STREAM,SETTINGS,PUSH_PROMISE,PING,GOAWAY,WINDOW_UPDATE,CONTINUATION
EnabledbydumpingnewlinedelimitedASCII
Length(24)
Type(8) Flags(8)
R StreamIden4fier(31)
FramePayload(0…)
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2BinaryFraming
GET/index.htmlHTTP/1.1Host:example.comAccept:text/html
Example1
HEADERS+END_STREAM+END_HEADERS:method:GET:scheme:hlp:path:/index.html:authority:example.orgaccept:text/html
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2BinaryFraming
HTTP/1.1200OKContent-Length:11Content-Type:text/htmlHelloWorld
Example2
HEADERS-END_STREAM+END_HEADERS:status:200content-length:11content-type:text/htmlDATA+END_STREAMHelloWorld
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2HeaderCompression
• ObservaLon:mostoftheheadersarethesameinagivenconnecLon– Host:Accept:user-agent:etc.
• WhysendthemeveryLme?• Havetheserverandtheclientkeeptablesofheaders,thenjustsendreferencesandupdatestothetables.
KnownasHPACK
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2StreamPrioriLzaLon
• StreamDependencyinHEADERSFrame• PRIORITYframetype• AnaddiLonal40bytes– Streamid(31)– Weight(8):[1,256]– Exclusivebit(1)
• OnlyasuggesLon
A
B C
4 12
A
B CD
4 16 12
exclusive=0
A
B C
D
4 12
16
exclusive=1
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2ServerPush
• Eliminatestheneedforresourceinlining.• Letstheserverpopulatethebrowser’scacheinadvanceofthebrowseraskingfortheresourcetoputinthecache.• NocorrespondingJavaScriptAPI,butcanbecombinedwithSSE– Serverpushesstuffintothebrowser’scache.– ServerusesSSEtotellthebrowsertogofetchit(butweknowit’salreadyinthebrowser’scache).
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
HTTP/2UpgradefromHTTP/1.1
• Notsecure(h2c)– Wehavetouseport80– UseexisLng101SwitchingProtocolsfromHTTP/1.1
• Secure(h2)– ApplicaLonLayerProtocolNegoLaLon(ALPN)
Secureornot-secure?
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• AllowframeworkstoeffecLvelyleverageserverpush– flexiblestrategiesforleveragingpush
• LeverageALPN
AbstracLonsEndureServletAPIisWellPosiLonedtoEnableHTTP/2OpLmizaLons
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• ExisLngAPIisdesignedforOneRequest==OneResponse.• HTTP/2destroysthisassumpLon.• ItwillbechallengingtodojusLcetothenewrealityofOneRequest==OneorMoreResponses.• Wemustnotsimplyboltthe“OneorMoreResponses”conceptontosomeconvenientpartoftheexisLngAPI.
ChallengesinExposingHTTP/2FeaturesinServletAPI
Servlet4.0BigTicketNewFeatures
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• Request/ResponsemulLplexing• BinaryFraming/FlowControl• StreamPrioriLzaLon• ServerPush• HeaderCompression• UpgradefromHTTP/1.1– ALPN– 101SwitchingProtocols
HTTP/2FeaturesServlet4.0BigTicketNewFeatures
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• Request/ResponsemulLplexing• BinaryFraming/FlowControl• StreamPrioriLzaLon• ServerPush• HeaderCompression• UpgradefromHTTP/1.1– ALPN– 101SwitchingProtocols
HTTP/2FeaturesPoten4allyExposedinServletAPI
Servlet4.0BigTicketNewFeatures
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Servlet4.0BigTicketNewFeatures• HTTP/2Required,includingALPNandHPACK• HTTP/2ServerPush– Pushresourcetoclientforagivenurlandheaders– NotatallareplacementforWebSocket– ReallyusefulforframeworksthatbuildonServlet,suchasJSF– BuilderAPI
• EaseofUse
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ServerPushviaBuilderAPI
Servlet4.0BigTicketNewFeatures
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ServerPush
publicclassFacesServletimplementsServlet{publicvoidservice(ServletRequestreq,ServletResponseresp)throwsIOException,ServletException{//..HttpServletRequestrequest=(HttpServletRequest)req;try{ResourceHandlerhandler=context.getApplication().getResourceHandler();if(handler.isResourceRequest(context)){handler.handleResourceRequest(context);}else{lifecycle.attachWindow(context);lifecycle.execute(context);lifecycle.render(context);}}}
ExampleofPoten4alUsefromJSF
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ServerPush
publicclassExternalContextImplextendsExternalContext{//…publicStringencodeResourceURL(Stringurl){if(null==url){Stringmessage=MessageUtils.getExceptionMessageString(MessageUtils.NULL_PARAMETERS_ERROR_MESSAGE_ID,"url");thrownewNullPointerException(message);}((HttpServletRequest)request).getPushBuilder().path(url).push();return((HttpServletResponse)response).encodeURL(url);}//…}
ExampleofPoten4alUsefromJSF
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JavaEEBigPicture
HTTP/2andServlet4.0
ServletandReacLveProgramming
NewandPlannedImprovementsinServlet4.0
JavaSE9SupportforHTTP/2
SummaryandCurrentStatus
1
4
5
6
3
2
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
ReacLveProgramming
Responsive
MessageDriven
ResilientElasLc
imagecredit:reacLvemanifesto.org
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JavaSE9SupportforReacLveProgramming(JEP266)
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SubmissionPublisher<R>• ReacLve-streampublishers– Ondrophandlingand/orblockingforflowcontrol
• Constructorparameters– Executor– intmaxBufferCapacityforeachsubscriber’sbuffer– BiConsumer<?superFlow.Subscriber<?SuperR>,?superThrowable>handler
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SubmissionPublisher<R>• Methods– intsubmit(Ritem)• result:theesLmatedmaximumlag(numberofitemssubmiledbutnotyetconsumed)amongallcurrentsubscribers
– intoffer(Ritem,BiPredicate<Flow.Subscriber<?SuperR>,?superR>onDrop)• result:ifnegaLve,the(negaLve)numberofdrops;otherwiseanesLmateofmaximumlag
– ...
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
AsynchronousinServlet3.0
• ServletRequest#startAsync• AsyncContext– #addListener,#dispatch,#complete
• AsyncListener– #onComplete,#onError,#onStartAsync,#onTimeout
• Event-driven– Server-SentEvents
AsyncinJavaEE6!
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Non-blockingIOinServlet3.1
• ServletInputStream– #setReadListener,#isReady
• ServletOutputStream– #setWriteListener,#isReady
• ReadListener– #onDataAvailable,#onAllDataRead,#onError
• WriteListener– #onWritePossible,#onError
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Non-blockingIOinServlet3.1
• ServletInputStream– #setReadListener,#isReady
• ServletOutputStream– #setWriteListener,#isReady
• ReadListener– #onDataAvailable,#onAllDataRead,#onError
• WriteListener– #onWritePossible,#onError
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Non-blockingIOinServlet3.1
• ServletInputStream– #setReadListener,#isReady
• ServletOutputStream– #setWriteListener,#isReady
• ReadListener– #onDataAvailable,#onAllDataRead,#onError
• WriteListener– #onWritePossible,#onError
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Non-blockingIOinServlet3.1
• ServletInputStream– #setReadListener,#isReady
• ServletOutputStream– #setWriteListener,#isReady
• ReadListener– #onDataAvailable,#onAllDataRead,#onError
• WriteListener– #onWritePossible,#onError
Flowcontrol}
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JavaEEBigPicture
HTTP/2andServlet4.0
ServletandReacLveProgramming
NewandPlannedImprovementsinServlet4.0
JavaSE9SupportforHTTP/2
SummaryandCurrentStatus
1
2
4
5
3
6
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• AddJavaSE8defaultmethods– ServletContextAttributeListener,ServletContextListener,ServletRequestAttributeListener,ServletRequestListener,HttpSessionActivationListener,HttpSessionAttributeListener,HttpSessionBindingListener,HttpSessionListener
• AdddefaulttoFilter#init,#destroy• AddGenericFilterandHttpFilter• <default-context-path>elementinweb.xml• AddCookie[]getCookie(Stringname)toHttpServletRequest
Servlet4.0SmallChange
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Servlet4.0SmallChange
• Mappingjavax.servlet.http.HttpServletRequest.getMapping()• javax.servlet.http.Mapping– MappingMatchgetMatchType()– StringgetMatchValue()– StringgetPattern()
• javax.servlet.http.MappingMatchenum– CONTEXT_ROOT,DEFAULT,EXACT,EXTENSION,IMPLICIT,PATH,UNKNOWN
DiscovercurrentAc4veMapping
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
@Deprecatesomemethodsandclasses– ServletContext:getServlet(),getServlets(),getServletNames(),log()– ServletRequestWrapper:getRealPath()– SingleThreadModel– UnavailableExcepLon– HlpServletResponse:encodeUrl(),encodeRedirectUrl(),setStatus()– HlpServletResponseWrapper:encodeUrl(),encodeRedirectUrl(),setStatus()– HlpSession:getSessionContext(),getValue(),getValueNames(),putValue(),removeValue()– HlpSessionContext
Servlet4.0SmallChange
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
• HlpConstraint• HlpMethodConstraint
• MulLpartConfig
• ServletSecurity• WebFilter
• WebInitParam
• WebListener
• WebServlet
• …
• PostConstruct• PreDestroy• Resource• Resources• DeclareRoles• RunAs• DataSourceDefiniLon• DataSourceDefiniLons• …
•
• AroundConstruct• AroundInvoke• AroundTimeout
• ExcludeClassInterceptors• ExcludeDefaultInterceptors• Interceptors• …
Servlet4.0SmallChangeClarifyexactlywhichannota4onsarenotscannedwhenmetadata-complete="true"
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Poten4alFutureAreasforInvesLgaLon
• “ForwardedHTTPExtension”Standardizes– X-Forwarded-{Host,Server,Proto,For}– X-Proxied-Hlps
• Intoasinglestandard“Forwarded”header• ServletcouldprovideAPIsupporttomakeiteasierforprogramstoaccesstheinformaLonwithouthavingtomanuallyparsetheheader.
RFC7239APISupport
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Poten4alFutureAreasforInvesLgaLon
• JSON-Bsupport– AllowincomingoroutgoingapplicaLon/jsontobemarshaledorunmarshaledautomaLcally
• SecurityandJSR-375integraLon– OAuthand/orOpenIDConnect
• Packaging– ExecutableJARsupport– IntegraLonwithnewConfigJSR
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Poten4alFutureAreasforInvesLgaLon
• MulL-tenancy– ApplicaLon-scopeddataisnowtenant-specific– APIfordiscoveringtenantID
• HealthChecking– healthPalernalributeon@WebServletand@WebFilter?
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JavaEEBigPicture
HTTP/2andServlet4.0
ServletandReacLveProgramming
NewandPlannedImprovementsinServlet4.0
JavaSE9SupportforHTTP/2
SummaryandCurrentStatus
1
2
3
5
4
6
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JavaSE9SupportforHTTP/2• JEP110hlp://openjdk.java.net/jeps/110• EasytouseAPI• Coversonlythemostcommonusecases• SupportsbothHTTP/1.1and2• BuildsonJavaAPIclassesgoingbacktoJava1.2!
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JavaSE9SupportforHTTP/2
HlpClientHlpClient.Builder
HlpRequest.Builder
HlpRequestHlpRequest
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JavaSE9SupportforHTTP/2
• Ahandfulofclasses– HlpClient,builtbyHlpClient.Builder• HoldsinformaLonforcreaLngoneormoreHlpRequests
– HlpRequest,builtbyHlpRequest.Builder• onerequest/responseinteracLon
– HlpResponse– BodyProcessors• HlpRequestBodyProcessor• HlpResponseBodyProcessor
Smallfootprint
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
JavaSE9SupportforHTTP/2
• Blockingmode:onethreadperrequest/response– sendrequest– getresponse
• Non-blockingmode– UsingExecutorServiceandCompletableFuture
• FullsupportforHTTP/2ServerPush
Smallfootprint
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
MyPlanforYourTimeInvestment
JavaEEBigPicture
HTTP/2andServlet4.0
ServletandReacLveProgramming
NewandPlannedImprovementsinServlet4.0
JavaSE9SupportforHTTP/2
SummaryandCurrentStatus
1
2
3
4
6
5
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SummaryandCurrentStatus• JSR-369formedon22September2014• EarlyDraXReviewpostedonJCP.orgJavaOne2015
Sep2016
Oct2016
Nov2016
Dec2016
Jan2017
Feb2017
Mar2017
Apr2017
May2017
June2017
July2017
Aug2017
Sep2017
PublicDraX
ProposedFinalDraX
FinalRelease
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
NextSteps
• Takethesurvey– hlp://glassfish.org/survey
• Sendtechnicalcommentsto– [email protected]– hlp://java.net/projects/servlet-spec/
• JointheJCP–cometoHackergardeninJavaHub– hlps://jcp.org/en/parLcipaLon/membership_drive
• JoinortracktheJSRsastheyprogress– hlps://java.net/projects/javaee-spec/pages/SpecificaLons
• Adopt-a-JSR– hlps://community.oracle.com/community/java/jcp/adopt-a-jsr
Giveusyourfeedback
79
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
WheretoLearnMoreatJavaOne
80
SessionNumber SessionTitle Day/Time
CON1558 What'sNewintheJavaAPIforJSONBinding Monday5:30p.m.
BOF7984 JavaEEfortheCloud Monday7:00p.m.
CON4022 CDI2.0IsComing Tuesday11:00a.m.
CON7983 JAX-RS2.1forJavaEE8 Tuesday12:30p.m.
CON8292 PortableCloudApplicaLonswithJavaEE Tuesday2:30p.m.
CON7980 Servlet4.0:StatusUpdateandHTTP/2 Tuesday4:00p.m.
CON7978 SecurityforJavaEE8andtheCloud Tuesday5:30p.m.
CON7979 ConfiguraLonforJavaEE8andtheCloud Wednesday11:30a.m.
CON7977 JavaEENext–HTTP/2andREST Wednesday1:00p.m.
CON6077 TheIllusionofStatelessness Wednesday4:30p.m.
CON7981 JSF2.3 Thursday11:30a.m.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
OtherSessionsofInterest• ConfiguraLonforJavaEE8andtheCloud[CON7979]Wednesday21September,11:30,Parc55CyrilMagninII/III• JavaEENext:HTTP/2andRESTOpportuniLes[CON7977]Wednesday21September,13:00Parc55CyrilMagninII/III• End-to-EndReacLveStreams,fromSockettoBusiness[CON1852]Thursday22September,11:30,HiltonConLnentalBallroom1/2/3
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SafeHarborStatementTheprecedingisintendedtooutlineourgeneralproductdirecLon.ItisintendedforinformaLonpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfuncLonality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,andLmingofanyfeaturesorfuncLonalitydescribedforOracle’sproductsremainsatthesolediscreLonofOracle.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
SessionSurveys
Helpushelpyou!!• Oraclewouldliketoinviteyoutotakeamomenttogiveusyoursessionfeedback.Yourfeedbackwillhelpustoimproveyourconference.• PleasebesuretoaddyourfeedbackforyouralendedsessionsbyusingtheMobileSurveyorinScheduleBuilder.
Copyright©2016,Oracleand/oritsaffiliates.Allrightsreserved.|
Servlet4.0• SupportforHTTP/2– ServerPush– ImplementaLonsrequiredtosupportHTTP/2(impliesHPACK,ALPN)
• CommunityDrivenImprovements– DiscovercurrentlyinvokedServlet/Filtermapping– RFC7239/X-Forwarded-Forsupport
• JavaEE8IntegraLon– JSON-B– Security– Config