SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
WebRTC With Java
Binod PG, Architect, Oracle
Amitha Pulijala, Oracle Product Management
Communications Business Unit
October 27, 2015
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted
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.
Oracle Confidential – Internal/Restricted/Highly Restricted 2
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
WebRTC Introduction
WebRTC Architecture Components
Java in WebRTC Eco-System
Common Development/Architecture Issues
Demo
1
2
3
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 3
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Real Time Communications Meets The WEB
Oracle Confidential – Internal/Restricted/Highly Restricted 4
Voice
Video
Data
• A state-of-the-art
audio/video/data communication
stack in your WEB*client
• Communications at web speed
• Billions of end-points
• Allows communications to be
integrated into the “web”
experience
Machine to
Machine/Embedded
Mobile
Browsers
*WEB here is referred in a broader sense than just browsers
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 5
Communications as a feature
Audio Video Data
Connecting Customer’s journey through your application with Communications
• Context Awareness
• Personalized Service
• Connected Interactions
• Rewarding Relationship
Document
Share
Screen Share
Chat
Audio/Video
Call
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Web Customer Service • Advanced Customer
Experience
Oracle Confidential – Internal/Restricted/Highly Restricted 6
• Unified Communications
WebRTC Enabling Enterprises to Create Value for Customers
• Offer faster web-based
service tools where most
interactions with a business
begin, on the Web
• Offer a ‘Mayday Bundle’ for
advanced live engagement,
but make it available for any
website across any devices
• Provide BYOD mobile UC
clients to employees as an
extension of existing desk
phone experience for mobility
& remote worker
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 7
WebRTC Services
Video MessagingVideo Calling
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 8
What Does WebRTC Really Provide?
Lowers
Technology
Barriers
WebRTC.org
WebRTC
1.0
Standards Specifications Software Stack
WebRTC 1.0 WebRTC.org
IETF + W3C
Lowers
Technology
Barriers
NAT Traversal
Secure Media
Data Transport
Free, Open Source
Media APIs & SDK
Media Codecs No Plug-ins
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
WebRTC Introduction
WebRTC Architecture Components
Java in WebRTC Eco-System
Common Development/Architecture Issues
Demo
1
2
3
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 9
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC Simple View
Oracle Confidential – Internal/Restricted/Highly Restricted 10
Signaling
Signaling
Media (SRTP)
App App
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 11
WebRTC Server-Side Considerations
Media
Mixing
Transcoding
Reliability
PSTN
/SIP Trunk
Signaling and
Media GW
Media
Interworking
Identity
Push
Notifications
Reliability
STUN
TURN
Signaling
NAT Traversal
WebRTC
Notification
GW
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC Session Controller
Signaling Engine
WebRTC “Real-World” Architecture
Oracle Confidential – Internal/Restricted/Highly Restricted 12
Identity Server
App
Notification Server
Signaling
Normalization
Media Engine
Media Normalization
Transcoding
STUN/TURN
APNS,
GCM
Web Server
Browser
PSTN GatewayJSON/ WebSocket
SIP
REST
RTP
JSON/ WebSocket
SRTP
SRTP
MCU/SFU
REST/ JSR
309
RTP
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 13
WSC Client-Side Considerations
HW
Platforms
HW
acceleration
Quality
Audio
Fall back
“Look & Feel”
Mobile
UX/CX
Browser
Compatibility
IE /Safari
Codec
Support
JS SDK
Native SDK
Browser
Frameworks
SDK
WebRTC
Device
Handoffs
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 14
WebRTC Client Side SDK
SDK
SDK
• Broader client side reach – Native,
Browsers, versions, hardware
architectures
•Non-WebRTC Browser support
•Consistent feature evolution across
native and browser SDKs
•Application specific signaling
extensions and optimizations
32
64
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
WebRTC Introduction
WebRTC Architecture Components
Java in WebRTC Eco-System
Common Development/Architecture Issues
Demo
1
2
3
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 15
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Typical Web Application
Oracle Confidential – Internal/Restricted/Highly Restricted 16
HTTP Traffic
Java EE Server handles HTTP Requests.
JSF JSP JAX-RS
WebSocket MVC
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC is a W3C JavaScript API in the Browser
Oracle Confidential – Internal/Restricted/Highly Restricted 17
JavaScript API Protocols
• Acquire Audio and Video
• Communicate Audio and Video Streams
• Communicate Arbitrary Data (Text, File
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 18
RTCMediaStream
• Fundamental block of WebRTC API
• Represents Communication with a Peer
• Codec, Security, Bandwidth etc etc.
RTCPeerConnection
• Represents stream of audio or video
• Stream from camera or microphone
• Navigator.getUserMedia
HTML App
SDP
Browser
PeerConnection
RTCPeerConnection
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC API is in browser
Oracle Confidential – Internal/Restricted/Highly Restricted 19
How to get two PeerConnections to communicate?
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Add WebRTC to your Java EE Web Application
Oracle Confidential – Internal/Restricted/Highly Restricted 20
WebRTC
Signaling
WebRTC
Signaling
Media (SRTP)
JSF JSP JAX-RS
WebSocket MVC
HTTP Traffic HTTP Traffic
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
JSEP (JavaScript Session Establisment Protocol
Oracle Confidential – Internal/Restricted/Highly Restricted 21
WebRTC
Signaling
WebRTC
Signaling
Media (SRTP)
JSF JSP JAX-RS
WebSocket MVC
HTML App
SDP
Browser
PeerConnection
RTCPeerConnection
HTML App
SDP
Browser
PeerConnection
RTCPeerConnection
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC Signaling Choices
• JAX-RS + SSE
– Standard Paradigm
– Wait for incoming (eg: disconnect)
messages
– How about incoming calls?
• Java API for WebSocket (JSR 356)
– Bi directional
– Suits communication signaling
22
Signaling Signaling
Media (SRTP)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC in Web Application (Add a WebSocket Endpoint)
Oracle Confidential – Internal/Restricted/Highly Restricted 23
onOpen()
onOpen()
javax.websocket.server.ServerEndpoint
onMessage(offer)
Session.getBasicRemote().sendText(answer) onMessage(answer)
Session.getBasicRemote().sendText(offer)
<Candidate Exchange> <Candidate Exchange>
Media (SRTP)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Extend Communication To Legacy Phone Networks
• SIP Servlet 2.0 API (JSR 359)
– Integrates with Java EE 7
– Allows you to connect with traditional
SIP networks
– Also supports SIP over WebSockets
24
voice
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC to SIP with SIP Servlets
Oracle Confidential – Internal/Restricted/Highly Restricted 25
onOpen()
ServerEndpoint + SipServlet
onMessage(offer)
Session.getBasicRemote().sendText(answer) SIP/183 (answer)
SIP INVITE (offer)
<Candidate Exchange>
Media (SRTP)
SIP/INFO/OK (candidate)
SIP/200 ()Session.getBasicRemote().sendText()
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How about Conferencing?
• Media Server Control API
– Server Side Java API (JSR 309)
– Abstract Interaction with Media Server
• Dialogic, Radisys
– Connect your ServerEndpoint with a
Media Server
26
Voice,Video
Media Mixer / SFU
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Media Server Control with WebRTC
Oracle Confidential – Internal/Restricted/Highly Restricted 27
WebSocket App
(ServerEndPoint)
PeerConnection
MediaGroup
(Record, Play, DTMF)
NetworkConnectionMediaMixer
Media Server
JSR 309
WebRTC
Signaling
WebRTC
Signaling
WebRTC
Signaling
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How about a MicroService for WebRTC?
Oracle Confidential – Internal/Restricted/Highly Restricted 28
WebRTC
Signaling WebRTC
Signaling
Media (SRTP)
Http Traffic Http Traffic
Java EE
ServerWebRTC
Server Jax-RS/RxJava
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• WebRTC Java Binding
– RTCPeerConnectionFactory
– https://chromium.googlesource.com/external/webrtc/
– Google’s open source project
– Matches with W3C JavaScript API
29
WebRTC in Android
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 30
WebRTC in Android - Architecture
Android Platform
WebRTC Stack (webrtc.org)
WebRTC Java Binding
(webrtc.org) Java WebSocket
Client
(eg: Tyrus)
Android App
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 31
PeerConnectionFactory pcf = …;
PeerConnection pc = pcf.createPeerConnection(iceSrvrs, constraints, obsrvr);
pc.addStream(localStream); //add the stream from local camera/mic
pc.createOffer(this, offerConstraints);
public void onCreateSuccess(final SessionDescription offer) {
sendMessage(offer) ; // send on signaling channel
}
Initiate a WebRTC call in Android
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 32
Java WebRTC SDKs for Android
Android Platform
WebRTC Stack (webrtc.org)
WebRTC Java Binding
(webrtc.org) Java WebSocket
Client
(eg: Tyrus)
Android App
WebRTC Java SDK (eg: WSC)
Similar stack exists for IOS as well
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
WebRTC Introduction
WebRTC Architecture Components
Java in WebRTC Eco-System
Common Development/Architecture Issues
Demo
1
2
3
4
5
Oracle Confidential – Internal/Restricted/Highly Restricted 33
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Security, Authentication and Authorization
Oracle Confidential – Internal/Restricted/Highly Restricted 34
WSS
(Signaling +
Identity
Assertion)
Media (DTLS/SRTP)
Identity
Provder
Get Assertion
Verify Assertion
Alice Bob
WSS
(Signaling +
Identity
Assertion)
Java EE
Security
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Peer Authentication
• Alice calls Bob
• Alice’s browser fetches assertion from IDP (JAX-RS)
• Alice’s browser app sends the assertion to Bob (Java
WebSocket)
• Bob’s browser verifies the assertion (JAX-RS)
• Bob’s browser displays authorization
• Bob accepts the call
35
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Connectivity and Reliability
• Customers expect a seamless experience across
– Web-style Browser reloads
– Web-style “Back Button” navigation
– Native app crashes
– IP network connectivity changes (WiFi <-> 4G)
– Device Handoffs
– Server-side failures
• This can be solved using the concept of Session Rehydration
– Ability to keep the session alive when connectivity is interrupted and
recreate it as soon as the connectivity is re-established
36
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Rehydration
• In the event that the local app state is reinitialized, either
due to a user reload of the page, or a decision within the
app to reload itself it is possible to keep an existing session
alive, via a process called "rehydration“
• Inspired by the approach described in IETF rtcweb-jsep-03
draft
• Upon reconnect, resurrect the session (voice, video, Data
Channel)
– Client Information (sessionId etc) is stored in LocalStorage
– Completely reliable signaling protocol
– WebSocket connection is kept for a short time and the message
resynchronization happens when clients is reconnected
– Restart ICE procedures, send new SDP
37
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
The World is a Chatty Place!
• Customers expect to stay “engaged” when they wander away from
the app without draining device resources – battery power
• This can be solved by:
– Optimizing the WebSocket connections with Push Notifications
• Hibernation of the session during periods of inactivity
• Session rehydration upon wake up/ call resume
– Mobile Push Notification Gateway
• Manages connectivity to APNS, GCM; registers and activates multiple apps
• Supports templates
• Delivers push notifications to iOS and Android
– Chrome Push Notifications – Service Worker, W3C API
• On desktop and mobile browsers
– WebRTC server uses JAX-RS to send messages to notification server
38
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Is network that simple? No!
Oracle Confidential – Internal/Restricted/Highly Restricted 39
WebRTC
Signaling WebRTC
Signaling
Media (SRTP)
NAT
NAT
STUN STUN
Media (SRTP)
TURN Server
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC with Java
Oracle Confidential – Internal/Restricted/Highly Restricted 40
Identity
Provider
SIP
Network
JAX-RS
Android
Java Binding
Conference
Server
Notification Server
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Additional Developer Resources
• Oracle WebRTC Developer Page :
http://www.oracle.com/technetwork/developer-
tools/webrtc/overview/index.html
• Oracle WebRTC Session Controller:
http://www.oracle.com/us/products/applications/communications/web-
rtc-session-controller/overview/index.html
• Oracle WebRTC Documentation:
http://docs.oracle.com/en/industries/communications/webrtc-session-
controller/index.html
• Sandbox (partner maintained): http://tadhack.optaresolutions.com/
Oracle Confidential – Internal/Restricted/Highly Restricted 41
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Demo
Oracle Confidential – Internal/Restricted/Highly Restricted 42
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Surveys
Help us help you!!
• Oracle would like to invite you to take a moment to give us your session
feedback. Your feedback will help us to improve your conference.
• Please be sure to add your feedback for your attended sessions by using
the Mobile Survey or in Schedule Builder.
Oracle Confidential – Internal/Restricted/Highly Restricted 43
WebRTC with Java

Contenu connexe

Tendances

Tacacs
TacacsTacacs
Tacacs1 2d
 
Cisco switch commands cheat sheet
Cisco switch commands cheat sheetCisco switch commands cheat sheet
Cisco switch commands cheat sheet3Anetwork com
 
Ccna rse chp7 Access Control List (ACL)
Ccna rse chp7 Access Control List (ACL)Ccna rse chp7 Access Control List (ACL)
Ccna rse chp7 Access Control List (ACL)newbie2019
 
Breeze overview
Breeze overviewBreeze overview
Breeze overviewYang Cheng
 
Radius vs. Tacacs+
Radius vs. Tacacs+Radius vs. Tacacs+
Radius vs. Tacacs+Netwax Lab
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache CamelChristian Posta
 
The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...
The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...
The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...Aruba, a Hewlett Packard Enterprise company
 
Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3NGINX, Inc.
 
ASP.NET MVC 3.0 Validation
ASP.NET MVC 3.0 ValidationASP.NET MVC 3.0 Validation
ASP.NET MVC 3.0 ValidationEyal Vardi
 
Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with KamailioFred Posner
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC OverviewArin Sime
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 

Tendances (20)

Tacacs
TacacsTacacs
Tacacs
 
Cisco switch commands cheat sheet
Cisco switch commands cheat sheetCisco switch commands cheat sheet
Cisco switch commands cheat sheet
 
Ccna rse chp7 Access Control List (ACL)
Ccna rse chp7 Access Control List (ACL)Ccna rse chp7 Access Control List (ACL)
Ccna rse chp7 Access Control List (ACL)
 
Dynamic Routing RIP
Dynamic Routing RIPDynamic Routing RIP
Dynamic Routing RIP
 
Breeze overview
Breeze overviewBreeze overview
Breeze overview
 
Radius vs. Tacacs+
Radius vs. Tacacs+Radius vs. Tacacs+
Radius vs. Tacacs+
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
 
The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...
The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...
The Aruba Tech Support Top 10: WLAN design, configuration and troubleshooting...
 
Aruba Remote Access Point (RAP) Networks Validated Reference Design
Aruba Remote Access Point (RAP) Networks Validated Reference DesignAruba Remote Access Point (RAP) Networks Validated Reference Design
Aruba Remote Access Point (RAP) Networks Validated Reference Design
 
EMEA Airheads - Aruba Remote Access Point (RAP) Troubleshooting
EMEA Airheads - Aruba Remote Access Point (RAP) TroubleshootingEMEA Airheads - Aruba Remote Access Point (RAP) Troubleshooting
EMEA Airheads - Aruba Remote Access Point (RAP) Troubleshooting
 
Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3Get Hands-On with NGINX and QUIC+HTTP/3
Get Hands-On with NGINX and QUIC+HTTP/3
 
Aruba 802.11ac networks: Validated Reference Designs
Aruba 802.11ac networks: Validated Reference DesignsAruba 802.11ac networks: Validated Reference Designs
Aruba 802.11ac networks: Validated Reference Designs
 
ASP.NET MVC 3.0 Validation
ASP.NET MVC 3.0 ValidationASP.NET MVC 3.0 Validation
ASP.NET MVC 3.0 Validation
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
Expanding Asterisk with Kamailio
Expanding Asterisk with KamailioExpanding Asterisk with Kamailio
Expanding Asterisk with Kamailio
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC Overview
 
Apple Captive Network Assistant Bypass with ClearPass Guest
Apple Captive Network Assistant Bypass with ClearPass GuestApple Captive Network Assistant Bypass with ClearPass Guest
Apple Captive Network Assistant Bypass with ClearPass Guest
 
Socket Programming
Socket ProgrammingSocket Programming
Socket Programming
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Campus Network Design version 8
Campus Network Design version 8Campus Network Design version 8
Campus Network Design version 8
 

Similaire à WebRTC with Java

WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)Oracle
 
The WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next WaveThe WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next WaveWebRTCConferenceJapan
 
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
 
Beneficios de la coexistencia de ambientes híbridos utilizando SOA
Beneficios de la coexistencia de ambientes híbridos utilizando SOABeneficios de la coexistencia de ambientes híbridos utilizando SOA
Beneficios de la coexistencia de ambientes híbridos utilizando SOASoftware Guru
 
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
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 
JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...
JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...
JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...terrencebarr
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Bart Jonkers
 
IMS WebRTC Workshop Oracle
IMS WebRTC Workshop OracleIMS WebRTC Workshop Oracle
IMS WebRTC Workshop OracleAlan Quayle
 
JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...
JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...
JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...terrencebarr
 
Embracing SOA and the Cloud
Embracing SOA and the CloudEmbracing SOA and the Cloud
Embracing SOA and the CloudHeba Fouad
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015Pavel Bucek
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Edward Burns
 
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
 
Workshop web rtc customers and use cases
Workshop web rtc customers and use casesWorkshop web rtc customers and use cases
Workshop web rtc customers and use casesDouglas Tait
 
Workshop intro web rtc
Workshop intro web rtcWorkshop intro web rtc
Workshop intro web rtcDouglas Tait
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmenteG Innovations
 

Similaire à WebRTC with Java (20)

WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)
 
The WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next WaveThe WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next Wave
 
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
 
Beneficios de la coexistencia de ambientes híbridos utilizando SOA
Beneficios de la coexistencia de ambientes híbridos utilizando SOABeneficios de la coexistencia de ambientes híbridos utilizando SOA
Beneficios de la coexistencia de ambientes híbridos utilizando SOA
 
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)
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 
JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...
JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...
JavaOne 2015: CON 3437 - Smart Devices for the Internet of Things ...
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
Increased Developer Productivity for IoT with Java and Reactive Blocks (Oracl...
 
IMS WebRTC Workshop Oracle
IMS WebRTC Workshop OracleIMS WebRTC Workshop Oracle
IMS WebRTC Workshop Oracle
 
Soa suite12c presentation @AMIS by Simone Geib
Soa suite12c presentation @AMIS by Simone GeibSoa suite12c presentation @AMIS by Simone Geib
Soa suite12c presentation @AMIS by Simone Geib
 
JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...
JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...
JavaOne 2015: CON3434 - Bringing IoT Cloud Services ...
 
SOACS-Overview.pdf
SOACS-Overview.pdfSOACS-Overview.pdf
SOACS-Overview.pdf
 
Embracing SOA and the Cloud
Embracing SOA and the CloudEmbracing SOA and the Cloud
Embracing SOA and the Cloud
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
 
Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
 
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
 
Workshop web rtc customers and use cases
Workshop web rtc customers and use casesWorkshop web rtc customers and use cases
Workshop web rtc customers and use cases
 
Workshop intro web rtc
Workshop intro web rtcWorkshop intro web rtc
Workshop intro web rtc
 
How to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual EnvironmentHow to Obtain Peak Performance from Your Virtual Environment
How to Obtain Peak Performance from Your Virtual Environment
 

Dernier

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

WebRTC with Java

  • 1. WebRTC With Java Binod PG, Architect, Oracle Amitha Pulijala, Oracle Product Management Communications Business Unit October 27, 2015 Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted
  • 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. Oracle Confidential – Internal/Restricted/Highly Restricted 2
  • 3. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Program Agenda WebRTC Introduction WebRTC Architecture Components Java in WebRTC Eco-System Common Development/Architecture Issues Demo 1 2 3 4 5 Oracle Confidential – Internal/Restricted/Highly Restricted 3
  • 4. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Real Time Communications Meets The WEB Oracle Confidential – Internal/Restricted/Highly Restricted 4 Voice Video Data • A state-of-the-art audio/video/data communication stack in your WEB*client • Communications at web speed • Billions of end-points • Allows communications to be integrated into the “web” experience Machine to Machine/Embedded Mobile Browsers *WEB here is referred in a broader sense than just browsers
  • 5. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 5 Communications as a feature Audio Video Data Connecting Customer’s journey through your application with Communications • Context Awareness • Personalized Service • Connected Interactions • Rewarding Relationship Document Share Screen Share Chat Audio/Video Call
  • 6. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | • Web Customer Service • Advanced Customer Experience Oracle Confidential – Internal/Restricted/Highly Restricted 6 • Unified Communications WebRTC Enabling Enterprises to Create Value for Customers • Offer faster web-based service tools where most interactions with a business begin, on the Web • Offer a ‘Mayday Bundle’ for advanced live engagement, but make it available for any website across any devices • Provide BYOD mobile UC clients to employees as an extension of existing desk phone experience for mobility & remote worker
  • 7. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 7 WebRTC Services Video MessagingVideo Calling
  • 8. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 8 What Does WebRTC Really Provide? Lowers Technology Barriers WebRTC.org WebRTC 1.0 Standards Specifications Software Stack WebRTC 1.0 WebRTC.org IETF + W3C Lowers Technology Barriers NAT Traversal Secure Media Data Transport Free, Open Source Media APIs & SDK Media Codecs No Plug-ins
  • 9. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Agenda WebRTC Introduction WebRTC Architecture Components Java in WebRTC Eco-System Common Development/Architecture Issues Demo 1 2 3 4 5 Oracle Confidential – Internal/Restricted/Highly Restricted 9
  • 10. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC Simple View Oracle Confidential – Internal/Restricted/Highly Restricted 10 Signaling Signaling Media (SRTP) App App
  • 11. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 11 WebRTC Server-Side Considerations Media Mixing Transcoding Reliability PSTN /SIP Trunk Signaling and Media GW Media Interworking Identity Push Notifications Reliability STUN TURN Signaling NAT Traversal WebRTC Notification GW
  • 12. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC Session Controller Signaling Engine WebRTC “Real-World” Architecture Oracle Confidential – Internal/Restricted/Highly Restricted 12 Identity Server App Notification Server Signaling Normalization Media Engine Media Normalization Transcoding STUN/TURN APNS, GCM Web Server Browser PSTN GatewayJSON/ WebSocket SIP REST RTP JSON/ WebSocket SRTP SRTP MCU/SFU REST/ JSR 309 RTP
  • 13. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 13 WSC Client-Side Considerations HW Platforms HW acceleration Quality Audio Fall back “Look & Feel” Mobile UX/CX Browser Compatibility IE /Safari Codec Support JS SDK Native SDK Browser Frameworks SDK WebRTC Device Handoffs
  • 14. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 14 WebRTC Client Side SDK SDK SDK • Broader client side reach – Native, Browsers, versions, hardware architectures •Non-WebRTC Browser support •Consistent feature evolution across native and browser SDKs •Application specific signaling extensions and optimizations 32 64
  • 15. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Program Agenda WebRTC Introduction WebRTC Architecture Components Java in WebRTC Eco-System Common Development/Architecture Issues Demo 1 2 3 4 5 Oracle Confidential – Internal/Restricted/Highly Restricted 15
  • 16. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Typical Web Application Oracle Confidential – Internal/Restricted/Highly Restricted 16 HTTP Traffic Java EE Server handles HTTP Requests. JSF JSP JAX-RS WebSocket MVC
  • 17. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC is a W3C JavaScript API in the Browser Oracle Confidential – Internal/Restricted/Highly Restricted 17 JavaScript API Protocols • Acquire Audio and Video • Communicate Audio and Video Streams • Communicate Arbitrary Data (Text, File
  • 18. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 18 RTCMediaStream • Fundamental block of WebRTC API • Represents Communication with a Peer • Codec, Security, Bandwidth etc etc. RTCPeerConnection • Represents stream of audio or video • Stream from camera or microphone • Navigator.getUserMedia HTML App SDP Browser PeerConnection RTCPeerConnection
  • 19. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC API is in browser Oracle Confidential – Internal/Restricted/Highly Restricted 19 How to get two PeerConnections to communicate?
  • 20. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Add WebRTC to your Java EE Web Application Oracle Confidential – Internal/Restricted/Highly Restricted 20 WebRTC Signaling WebRTC Signaling Media (SRTP) JSF JSP JAX-RS WebSocket MVC HTTP Traffic HTTP Traffic
  • 21. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | JSEP (JavaScript Session Establisment Protocol Oracle Confidential – Internal/Restricted/Highly Restricted 21 WebRTC Signaling WebRTC Signaling Media (SRTP) JSF JSP JAX-RS WebSocket MVC HTML App SDP Browser PeerConnection RTCPeerConnection HTML App SDP Browser PeerConnection RTCPeerConnection
  • 22. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC Signaling Choices • JAX-RS + SSE – Standard Paradigm – Wait for incoming (eg: disconnect) messages – How about incoming calls? • Java API for WebSocket (JSR 356) – Bi directional – Suits communication signaling 22 Signaling Signaling Media (SRTP)
  • 23. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC in Web Application (Add a WebSocket Endpoint) Oracle Confidential – Internal/Restricted/Highly Restricted 23 onOpen() onOpen() javax.websocket.server.ServerEndpoint onMessage(offer) Session.getBasicRemote().sendText(answer) onMessage(answer) Session.getBasicRemote().sendText(offer) <Candidate Exchange> <Candidate Exchange> Media (SRTP)
  • 24. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Extend Communication To Legacy Phone Networks • SIP Servlet 2.0 API (JSR 359) – Integrates with Java EE 7 – Allows you to connect with traditional SIP networks – Also supports SIP over WebSockets 24 voice
  • 25. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC to SIP with SIP Servlets Oracle Confidential – Internal/Restricted/Highly Restricted 25 onOpen() ServerEndpoint + SipServlet onMessage(offer) Session.getBasicRemote().sendText(answer) SIP/183 (answer) SIP INVITE (offer) <Candidate Exchange> Media (SRTP) SIP/INFO/OK (candidate) SIP/200 ()Session.getBasicRemote().sendText()
  • 26. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | How about Conferencing? • Media Server Control API – Server Side Java API (JSR 309) – Abstract Interaction with Media Server • Dialogic, Radisys – Connect your ServerEndpoint with a Media Server 26 Voice,Video Media Mixer / SFU
  • 27. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Media Server Control with WebRTC Oracle Confidential – Internal/Restricted/Highly Restricted 27 WebSocket App (ServerEndPoint) PeerConnection MediaGroup (Record, Play, DTMF) NetworkConnectionMediaMixer Media Server JSR 309 WebRTC Signaling WebRTC Signaling WebRTC Signaling
  • 28. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | How about a MicroService for WebRTC? Oracle Confidential – Internal/Restricted/Highly Restricted 28 WebRTC Signaling WebRTC Signaling Media (SRTP) Http Traffic Http Traffic Java EE ServerWebRTC Server Jax-RS/RxJava
  • 29. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | • WebRTC Java Binding – RTCPeerConnectionFactory – https://chromium.googlesource.com/external/webrtc/ – Google’s open source project – Matches with W3C JavaScript API 29 WebRTC in Android
  • 30. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 30 WebRTC in Android - Architecture Android Platform WebRTC Stack (webrtc.org) WebRTC Java Binding (webrtc.org) Java WebSocket Client (eg: Tyrus) Android App
  • 31. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 31 PeerConnectionFactory pcf = …; PeerConnection pc = pcf.createPeerConnection(iceSrvrs, constraints, obsrvr); pc.addStream(localStream); //add the stream from local camera/mic pc.createOffer(this, offerConstraints); public void onCreateSuccess(final SessionDescription offer) { sendMessage(offer) ; // send on signaling channel } Initiate a WebRTC call in Android
  • 32. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 32 Java WebRTC SDKs for Android Android Platform WebRTC Stack (webrtc.org) WebRTC Java Binding (webrtc.org) Java WebSocket Client (eg: Tyrus) Android App WebRTC Java SDK (eg: WSC) Similar stack exists for IOS as well
  • 33. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Program Agenda WebRTC Introduction WebRTC Architecture Components Java in WebRTC Eco-System Common Development/Architecture Issues Demo 1 2 3 4 5 Oracle Confidential – Internal/Restricted/Highly Restricted 33
  • 34. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Security, Authentication and Authorization Oracle Confidential – Internal/Restricted/Highly Restricted 34 WSS (Signaling + Identity Assertion) Media (DTLS/SRTP) Identity Provder Get Assertion Verify Assertion Alice Bob WSS (Signaling + Identity Assertion) Java EE Security
  • 35. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Peer Authentication • Alice calls Bob • Alice’s browser fetches assertion from IDP (JAX-RS) • Alice’s browser app sends the assertion to Bob (Java WebSocket) • Bob’s browser verifies the assertion (JAX-RS) • Bob’s browser displays authorization • Bob accepts the call 35
  • 36. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Session Connectivity and Reliability • Customers expect a seamless experience across – Web-style Browser reloads – Web-style “Back Button” navigation – Native app crashes – IP network connectivity changes (WiFi <-> 4G) – Device Handoffs – Server-side failures • This can be solved using the concept of Session Rehydration – Ability to keep the session alive when connectivity is interrupted and recreate it as soon as the connectivity is re-established 36
  • 37. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Session Rehydration • In the event that the local app state is reinitialized, either due to a user reload of the page, or a decision within the app to reload itself it is possible to keep an existing session alive, via a process called "rehydration“ • Inspired by the approach described in IETF rtcweb-jsep-03 draft • Upon reconnect, resurrect the session (voice, video, Data Channel) – Client Information (sessionId etc) is stored in LocalStorage – Completely reliable signaling protocol – WebSocket connection is kept for a short time and the message resynchronization happens when clients is reconnected – Restart ICE procedures, send new SDP 37
  • 38. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | The World is a Chatty Place! • Customers expect to stay “engaged” when they wander away from the app without draining device resources – battery power • This can be solved by: – Optimizing the WebSocket connections with Push Notifications • Hibernation of the session during periods of inactivity • Session rehydration upon wake up/ call resume – Mobile Push Notification Gateway • Manages connectivity to APNS, GCM; registers and activates multiple apps • Supports templates • Delivers push notifications to iOS and Android – Chrome Push Notifications – Service Worker, W3C API • On desktop and mobile browsers – WebRTC server uses JAX-RS to send messages to notification server 38
  • 39. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Is network that simple? No! Oracle Confidential – Internal/Restricted/Highly Restricted 39 WebRTC Signaling WebRTC Signaling Media (SRTP) NAT NAT STUN STUN Media (SRTP) TURN Server
  • 40. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | WebRTC with Java Oracle Confidential – Internal/Restricted/Highly Restricted 40 Identity Provider SIP Network JAX-RS Android Java Binding Conference Server Notification Server
  • 41. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Additional Developer Resources • Oracle WebRTC Developer Page : http://www.oracle.com/technetwork/developer- tools/webrtc/overview/index.html • Oracle WebRTC Session Controller: http://www.oracle.com/us/products/applications/communications/web- rtc-session-controller/overview/index.html • Oracle WebRTC Documentation: http://docs.oracle.com/en/industries/communications/webrtc-session- controller/index.html • Sandbox (partner maintained): http://tadhack.optaresolutions.com/ Oracle Confidential – Internal/Restricted/Highly Restricted 41
  • 42. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Demo Oracle Confidential – Internal/Restricted/Highly Restricted 42
  • 43. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Session Surveys Help us help you!! • Oracle would like to invite you to take a moment to give us your session feedback. Your feedback will help us to improve your conference. • Please be sure to add your feedback for your attended sessions by using the Mobile Survey or in Schedule Builder. Oracle Confidential – Internal/Restricted/Highly Restricted 43