Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
WebRTC With Java
Binod PG, Architect, Oracle
Amitha Pulijala, Oracle Product Management
Communications Business Unit
Octob...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to ...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
WebRTC Introduction
WebRTC Architect...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Real Time Communications Meets The WEB
Oracle Confi...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Re...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• Web Customer Service • Advanced Customer
Experien...
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 Re...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Agenda
WebRTC Introduction
WebRTC Architecture Comp...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC Simple View
Oracle Confidential – Internal/R...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Re...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC Session Controller
Signaling Engine
WebRTC “...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Re...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Re...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
WebRTC Introduction
WebRTC Architect...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Typical Web Application
Oracle Confidential – Inter...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC is a W3C JavaScript API in the Browser
Oracl...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 18
RTCMediaStream
• Fundamental block of WebRTC API...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC API is in browser
Oracle Confidential – Inte...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Add WebRTC to your Java EE Web Application
Oracle C...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
JSEP (JavaScript Session Establisment Protocol
Orac...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC Signaling Choices
• JAX-RS + SSE
– Standard ...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC in Web Application (Add a WebSocket Endpoint...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Extend Communication To Legacy Phone Networks
• SIP...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC to SIP with SIP Servlets
Oracle Confidential...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How about Conferencing?
• Media Server Control API
...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Media Server Control with WebRTC
Oracle Confidentia...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
How about a MicroService for WebRTC?
Oracle Confide...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
• WebRTC Java Binding
– RTCPeerConnectionFactory
– ...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 30
WebRTC in Android - Architecture
Android Platfor...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 31
PeerConnectionFactory pcf = …;
PeerConnection pc...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 32
Java WebRTC SDKs for Android
Android Platform
We...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
WebRTC Introduction
WebRTC Architect...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Security, Authentication and Authorization
Oracle C...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Peer Authentication
• Alice calls Bob
• Alice’s bro...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Connectivity and Reliability
• Customers ex...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Rehydration
• In the event that the local a...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
The World is a Chatty Place!
• Customers expect to ...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Is network that simple? No!
Oracle Confidential – I...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
WebRTC with Java
Oracle Confidential – Internal/Res...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Additional Developer Resources
• Oracle WebRTC Deve...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Demo
Oracle Confidential – Internal/Restricted/High...
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Session Surveys
Help us help you!!
• Oracle would l...
WebRTC with Java
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
Server-side WebRTC Infrastructure
Next
Download to read offline and view in fullscreen.

11

Share

Download to read offline

WebRTC with Java

Download to read offline

WebRTC with Java

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

WebRTC with Java

  1. 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. 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. 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. 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. 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. 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. 7. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 7 WebRTC Services Video MessagingVideo Calling
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 42. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Demo Oracle Confidential – Internal/Restricted/Highly Restricted 42
  43. 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
  • ssuser4851fc

    Jun. 16, 2020
  • loind89

    Aug. 9, 2019
  • SafaYasinMjdeci

    Apr. 9, 2019
  • ArmelZy

    Dec. 11, 2017
  • jaredjin

    Jun. 19, 2017
  • hichamalaoui6

    Dec. 21, 2016
  • MarcinMiotk

    Dec. 5, 2016
  • KenTakehara

    Sep. 7, 2016
  • RiteshSarode

    Jun. 14, 2016
  • XavierLiao

    Jun. 8, 2016
  • utcuong3010

    May. 6, 2016

WebRTC with Java

Views

Total views

16,301

On Slideshare

0

From embeds

0

Number of embeds

48

Actions

Downloads

329

Shares

0

Comments

0

Likes

11

×