SlideShare uma empresa Scribd logo
1 de 69
Baixar para ler offline
Web Sockets in Java EE 7
Sivasubramaniam Arunachalam
May 09, 2013
@sivaa_in
https://oraclein.activeevents.com/connect/sessionDetail.ww?SESSION_ID=1081&tclass=popup
It’s me!
• Product/Application Developer
• Web/Enterprise/Middleware/B2B
• Java/Java EE, Python/Django
• 2002
• Technical Consultant/Process Mentor
• Member of BOJUG
• Speaker
Agenda
• Introduction to Web Sockets
• History
• Protocol Spec
• Adoption
• Java EE 7 Support
• Demo
http://tweetping.net
Let’s warm up
Web 1.0Web 1.0
Web 2.0
Web 3.0
https://www.facebook.com/sitetour/chat.php
600+ M Active Users/Day
http://
1991
1995
2013
Still 22 Years Old
http?
http/tcp
(1974)(1991)
request / response
~ 2k bytes
~ 150 ms
State less
Real TimeReal Time~
4,0,0,0,0,0 | 2,0,1,…
http://www.espncricinfo.com/indian-premier-league-2013/engine/match/598051.html
SRH Score Card vs CSK
Over 1 (Mohit) Over 2 (Holder)
146/8 (20 Overs)
(May 08, 2013)
Pull Based (Polling)Periodic Polling (JS/AJAX)
Server Client
SRH 4/0
Latest Score?
Latest Score?
Latest Score?
Same
Same
Latest Score?
SRH 6/0
Latest Score?
Same
Ov 0.1
Ov 0.3
Ov 0.5
Ov 1.1
Ov 1.2
Push Based (Comet)Server Push/Long Polling (JS/AJAX/iframe)
Server Client
SRH 4/0
Latest Score?
Latest Score?
SRH 6/0
Latest Score?
Ov 0.1
Ov 0.2
Ov 1.1
Ov 1.2
• Request / Response
• Too Many
• Server Connections
• Heavy Headers
• Outdated Content
StreamingServer Side Hack
Server Client
SRH 4/0 (1/n)
Latest Score?
SRH 6/0 (2/n)
SRH 146/8 (n/n)
Ov 0.1
Ov 1.1
Ov 20.0
Server Client
SRH 4/0
Latest Score?
SRH 4/0
SRH 6/0
SRH 146/8
ServerBuffer
SRH 6/0
SRH 146/8
PROXY
(1/n)
(n-1 to go)
(n/n)
(2/n)
(n-2 to go)
Ov 0.1
Ov 1.1
Ov 20.0
• RTMP
• Adobe
• Are you Still using Flash?
• RTD
• Windows/Excel
• Non Web
Others
Web Sockets (to rescue)
The Web Socket WayThe Original Route
Server Client
Hi Client!
Hey Server!
SRH 4/0
Update me the Score
SRH 6/0
SRH 146/8
Not Interested. Bye
Ov 0.1
Ov 1.1
Ov 20.0
Server Client
Hi Client!
Hey Server!
SRH 4/0
Update me the Score
SRH 6/0
SRH 7/0
Not Interested. Bye
Update Over info too
(1.3 ov)
(1.1 ov)
(0.5 ov)
(1.0 ov)
Ov 0.1
Ov 0.5
Ov 1.0
Ov 1.1
Ov 1.2 (1.2 ov)
Ov 1.3
The Background
https://webmq.tavendo.de:9090/help/faq
Let’s Meet Next Year (2014)
Server Side
• Hand Shake
• Data Transfer
RFC 6455
Client Side
• Java Script API
• Browser Behavior
https://webmq.tavendo.de:9090/help/faq
• tcp
• Full Duplex (Bi-Directional)
• Native Browser Support
• No Hacks
• Not Limited to Web
Fundamentals
+ http
• 80 / 443 (plain/secure)
• No Proxy/Firewall pains
• Stream of Messages (Not Bytes)
• ws:// & wss://
• Only ONE Connection (up/down streams)
The Spec
2 Bytes Header
(for each message)
Still Why?
~ 50 ms (Latency)
1000 x
3 x
http://www.codeproject.com/Articles/437342/DotNet-WebSocket-Programming
1 Message/Second to each Client
1,000 clients 10,000 clients 1,00,000 clients
• GET (request)
• 101 (response code)
• Not 200 OK
• http:// -> ws://
The Upgrade
RFC 2616 (14.42)
GET /demo HTTP/1.1
Origin : http://sivaa.in
Host : sivaa.in
Connection : Upgrade
Upgrade : WebSocket
WebSocket-Protocol : json, chat, <protocol>
WebSocket-extensions : compression, <extn>
WebSocket-Version : 10
Client Request
HTTP/1.1 101 Switching Protocols
Connection : Upgrade
Upgrade : WebSocket
WebSocket-Protocol : json, chat, <protocol>
WebSocket-Origin : http://sivaa.in
WebSocket-Location : ws://sivaa.in/demo
Server Response
Challenge by Client
Sec-WebSocket-Key : Key (Random 128 bits -> Base 64)
Response By Server
Sec-WebSocket-Accept : Key + GUID* (SHA1)
[NOT FOR SECURITY]
* 258EAFA5-E914-47DA- 95CA-C5AB0DC85B11 (RFC 6455)
Challenge - Response
http://tools.ietf.org/html/rfc6455#page-28
Client / ServerClient / Server
Peer <-> Peer
• Frames (TCP)•
• No request / response behavior
• No Correlation too
• Independent
• # of requests != # of responses
Data Transfer
• Headers
• Cookies
• Authentication
And No
• Custom Message Patterns
• Technical / Business
• Request / Response
• 1 – 1
• 1 to Many
• Acknowledgements
Sub Protocols
Sub Protocols - Current
http://www.iana.org/assignments/websocket/websocket.xml#subprotocol-name
Extensions
• Compression
• Multiplexing
• Private Extenstions (x-)
Client -> Ping
Server -> Pong
Ping / Pong
• Keep-Alive
• Heart Beat
• Latency Metrics
• N/W Status Probing
• Detect Failed Connections
Browser Support
http://caniuse.com/websockets
Server Support
IDL (Java Script)
http://www.w3.org/TR/websockets/
http://www.w3.org/TR/websockets/
http://www.w3.org/TR/websockets/
http://www.w3.org/TR/websockets/
http://www.w3.org/TR/websockets/
1. var ws = new WebSocket("ws://sivaa.in/demo");
2. ws.onopen = function() {
ws.send("Hello Server!");
};
3. ws.onmessage = function(event) {
alert("Reply from Server " + event.data);
};
n-1. ws.send("This is the message sent by the client");
n. ws.close()
Developer Friendly
CONNECTING
OPEN
CLOSING
CLOSED
• Closing Long Lived Connections
• Unresponsive Server
• Buffering Server Response
• Non Encryption
• More Latency
The Guards
(Proxy / Firewall)
• Web Sockets isn’t Proxy aware
• Stripping HTTP Headers
• Upgrade
• Options to disable
• Rejecting Server Response
• Frames (HTTP Headers Expected)
• wss:// - No issues
Web Sockets and
The Guards
• 501
• 301
• Limited Support
• Inconsistent Behavior
The Hidden Blades
• No Polling (0%)
• Low Bandwidth
• Low Latency
• High Interoperability (expected)
Some Marketing Facts
The Vendors
(Server/Client/Proxy)
http://static.ibnlive.in.com/ibnlive/pix/slideshow/12-2011/happy-birthday-rajinikaths/rajini-dec11-8.jpg
http://media2.intoday.in/indiatoday/images/stories//2012december/rajinikanth_660_121112060009.jpg
• Web Socket
• Flash
• Long Polling
• Multi-Part Streaming
• Forever Frame
• Long Polling JSONP
The Best Approach
• SSE (Server Side Events)
• SPDY
Web Sockets vs
• JSR 356
• Java EE 7
• Tyrus ( http://tyrus.java.net/ )
• Web Socket SDK
• Reference Implementation
Java EE 7 & Web Socket
• Handshake Response to Clients
• Source/Origin Check
• URI Resolving & Matching
• Sub Protocols Negotiation
• Extension Negotiation
Server Side Capabilities
(Expected)
Handlers
Handler Purpose
End Point To handle life cycle events
Session To represent currently active session
Remote End Point To represent a peer
Message Handler To handle incoming messages
Error Handler Handler for error scenarios
• Interface Driven
• Annotation Driven
Models
• Text Based
• Binary
• Ping/Pong
Message Types
• Text
• TextStream
• Binary
• BinaryStream
Encoders/Decoders
• javax.websocket.*
• javax.websocket.server.*
• javax.net.websocket.*
Packages
Recent Refactoring Changes
https://blogs.oracle.com/PavelBucek/entry/tyrus_1_0_b12_released (Feb 27, 2013)
Web Sockets & Servlet 3.1
• HTTP Upgrade
• HttpServletRequest.upgrade()
• javax.servlet.http.HttpUpgradeHandler
• javax.servlet.http.WebConnection
• Apache Tomcat 7
• GlassFish 3.1
• Jetty 7
• JBoss 7
• And much more
Web Server Support
https://java.net/projects/websocket-spec/pages/WebSocketAPIs
17+
• Annotations / Interface
• Reference Implementation
• Web Sockets SDK / mvn
• Samples to Begin with
GlassFish
Lets Play!
• Subversion (svn)
• Maven (mvn)
• NetBeans IDE (7.3)
• Glassfish Promoted Build (latest)
Tools (which I use)
1. Get your tools ready
2. Configure GlassFish in NetBeans
3. # svn checkout
http://svn.java.net/svn/websocket-sdk~source-code-repository/trunk/samples/
4. # mvn clean install
5. Import in Latest Net Beans
6. Run it
Steps
Demo
Thank You!
siva@sivaa.in
bit.ly/sivasubramaniambit.ly/sivaa_in
References
• http://www.inc.com/ss/brief-history-time-management#7
• http://resources3.news.com.au/images/2013/01/30/1226564/845955-tim-berners-lee.jpg
• http://netdna.webdesignerdepot.com/uploads/2009/01/macii.jpg#old%20apple%20computer%20559x450
• http://3.bp.blogspot.com/_zVkfb2MIt4A/S8f_qzhuhRI/AAAAAAAAAjg/2idf7_G4wxo/s1600/apple-imac.png
• http://www.softwareforeducation.com/wikileki/images/c/c4/Simplex-half-full.gif
• http://www.mediafly.com/wp-content/uploads/Speed_Rocket-2.png
• http://weaponsman.com/wp-content/uploads/2013/01/thumbs-down.png
• http://m.flikie.com/ImageData/WallPapers/d1bef9f8be6d479387953929c766699a.jpg
• http://www.tavendo.de/webmq/resources/faq
• http://deadliestwebattacks.com/tag/websocket/
• http://en.wikipedia.org/wiki/WebSocket
• http://www.infoq.com/articles/Web-Sockets-Proxy-Servers
• http://media2.intoday.in/indiatoday/images/stories//2012december/rajinikanth_660_121112060009.jpg

Mais conteúdo relacionado

Mais procurados

Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server Debate
Hamed Hatami
 
Do We Need Containers Anyway?
Do We Need Containers Anyway?Do We Need Containers Anyway?
Do We Need Containers Anyway?
Dmitry Buzdin
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentation
Volodymyr Lavrynovych
 

Mais procurados (20)

Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
 
Life on the Edge with ESI
Life on the Edge with ESILife on the Edge with ESI
Life on the Edge with ESI
 
Jetty Continuation - 이상민
Jetty Continuation - 이상민Jetty Continuation - 이상민
Jetty Continuation - 이상민
 
Great Java Application Server Debate
Great Java Application Server DebateGreat Java Application Server Debate
Great Java Application Server Debate
 
HTML5 WebSockets
HTML5 WebSocketsHTML5 WebSockets
HTML5 WebSockets
 
SPDY
SPDYSPDY
SPDY
 
Jetty 9 – The Next Generation Servlet Container
Jetty 9 – The Next Generation Servlet ContainerJetty 9 – The Next Generation Servlet Container
Jetty 9 – The Next Generation Servlet Container
 
Do We Need Containers Anyway?
Do We Need Containers Anyway?Do We Need Containers Anyway?
Do We Need Containers Anyway?
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know?
 
IBM Think 2018 - IBM Connections Troubleshooting
IBM Think 2018 -  IBM Connections TroubleshootingIBM Think 2018 -  IBM Connections Troubleshooting
IBM Think 2018 - IBM Connections Troubleshooting
 
Webinar: IBM Connections Adminblast
Webinar: IBM Connections AdminblastWebinar: IBM Connections Adminblast
Webinar: IBM Connections Adminblast
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
Nexcess Magento Imagine 2014 Performance Breakout
Nexcess Magento Imagine 2014 Performance BreakoutNexcess Magento Imagine 2014 Performance Breakout
Nexcess Magento Imagine 2014 Performance Breakout
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentation
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
HTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the WebHTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the Web
 
SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0
 
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) HackableCollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
CollabSphere SC 103 : Domino on the Web : Yes, It's (Probably) Hackable
 
Intro to WebSockets
Intro to WebSocketsIntro to WebSockets
Intro to WebSockets
 
Websocket protocol overview
Websocket protocol overviewWebsocket protocol overview
Websocket protocol overview
 

Semelhante a Web sockets in java EE 7 - JavaOne 2013

Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala
floridawusergroup
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
Spiffy
 

Semelhante a Web sockets in java EE 7 - JavaOne 2013 (20)

JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at ScaleJUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
JUDCon 2013- JBoss Data Grid and WebSockets: Delivering Real Time Push at Scale
 
Websocket vs SSE - Paris.js - 24/06/15
Websocket vs SSE - Paris.js - 24/06/15Websocket vs SSE - Paris.js - 24/06/15
Websocket vs SSE - Paris.js - 24/06/15
 
Consuming REST Services in BizTalk 2010
Consuming REST Services in BizTalk 2010Consuming REST Services in BizTalk 2010
Consuming REST Services in BizTalk 2010
 
Art and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end ApproachArt and Science of Web Sites Performance: A Front-end Approach
Art and Science of Web Sites Performance: A Front-end Approach
 
Speed = $$$
Speed = $$$Speed = $$$
Speed = $$$
 
Stack Exchange Infrastructure - LISA 14
Stack Exchange Infrastructure - LISA 14Stack Exchange Infrastructure - LISA 14
Stack Exchange Infrastructure - LISA 14
 
Data power v7 update - Ravi Katikala
Data power v7 update - Ravi KatikalaData power v7 update - Ravi Katikala
Data power v7 update - Ravi Katikala
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinAdvanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
 
OTG-Recon
OTG-ReconOTG-Recon
OTG-Recon
 
Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
 
Mihai tataran developing modern web applications
Mihai tataran   developing modern web applicationsMihai tataran   developing modern web applications
Mihai tataran developing modern web applications
 
WebSockets On Fire
WebSockets On FireWebSockets On Fire
WebSockets On Fire
 
computer networking
computer networkingcomputer networking
computer networking
 
Web-Socket
Web-SocketWeb-Socket
Web-Socket
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
 
Best practices of building data streaming API
Best practices of building data streaming APIBest practices of building data streaming API
Best practices of building data streaming API
 
BizTalk Server 2010 - Invoking Restful Services - EPC Group
BizTalk Server 2010 - Invoking Restful Services - EPC GroupBizTalk Server 2010 - Invoking Restful Services - EPC Group
BizTalk Server 2010 - Invoking Restful Services - EPC Group
 
State of the Web
State of the WebState of the Web
State of the Web
 

Mais de Siva Arunachalam

Python for High School Programmers
Python for High School ProgrammersPython for High School Programmers
Python for High School Programmers
Siva Arunachalam
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
Siva Arunachalam
 
Simplify AJAX using jQuery
Simplify AJAX using jQuerySimplify AJAX using jQuery
Simplify AJAX using jQuery
Siva Arunachalam
 
Introduction to Browser DOM
Introduction to Browser DOMIntroduction to Browser DOM
Introduction to Browser DOM
Siva Arunachalam
 

Mais de Siva Arunachalam (17)

Introduction to EDI(Electronic Data Interchange)
Introduction to EDI(Electronic Data Interchange)Introduction to EDI(Electronic Data Interchange)
Introduction to EDI(Electronic Data Interchange)
 
Introduction to logging in django
Introduction to logging in djangoIntroduction to logging in django
Introduction to logging in django
 
Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Setup a New Virtualenv for Django in Windows
Setup a New Virtualenv for Django in WindowsSetup a New Virtualenv for Django in Windows
Setup a New Virtualenv for Django in Windows
 
What's New in Django 1.6
What's New in Django 1.6What's New in Django 1.6
What's New in Django 1.6
 
Introduction to Browser Internals
Introduction to Browser InternalsIntroduction to Browser Internals
Introduction to Browser Internals
 
Python for High School Programmers
Python for High School ProgrammersPython for High School Programmers
Python for High School Programmers
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Simplify AJAX using jQuery
Simplify AJAX using jQuerySimplify AJAX using jQuery
Simplify AJAX using jQuery
 
Introduction to Browser DOM
Introduction to Browser DOMIntroduction to Browser DOM
Introduction to Browser DOM
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
Installing MySQL for Python
Installing MySQL for PythonInstalling MySQL for Python
Installing MySQL for Python
 
Using Eclipse and Installing PyDev
Using Eclipse and Installing PyDevUsing Eclipse and Installing PyDev
Using Eclipse and Installing PyDev
 
Installing Python 2.7 in Windows
Installing Python 2.7 in WindowsInstalling Python 2.7 in Windows
Installing Python 2.7 in Windows
 
Setup a New Virtualenv for Django in Windows
Setup a New Virtualenv for Django in WindowsSetup a New Virtualenv for Django in Windows
Setup a New Virtualenv for Django in Windows
 
Introduction to Google APIs
Introduction to Google APIsIntroduction to Google APIs
Introduction to Google APIs
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Web sockets in java EE 7 - JavaOne 2013