SlideShare a Scribd company logo
1 of 45
Download to read offline
Oracle Coherence and WebLogic
12c
Delivering Real Time Push at
Scale
Steve Millidge
© C2B2 Consulting Limited 2013
All Rights Reserved
About Me
• Founder of C2B2
– Leading Independent Middleware Experts
– Non-functional Experts

• Vendor Neutral
– Red Hat (JBoss), Oracle (Fusion), VMWare
(vFabric), Open Source (Apache)

• 20 Years Middleware Expertise
• 15 years Field Consultancy
© C2B2 Consulting Limited 2013
All Rights Reserved
Agenda
•
•
•
•
•
•

Introduction to Web Sockets and Push
WebSockets in WebLogic 12c
Introduction to Coherence
Test Demo
Code walkthrough - Hooking up to Coherence
Summary

© C2B2 Consulting Limited 2013
All Rights Reserved
Standard HTTP model

•Client requests data – server responds

© C2B2 Consulting Limited 2013
All Rights Reserved
The problems with HTTP

•
•
•
•

HTTP is a request-response protocol
HTTP is half-duplex – one way traffic
HTTP is stateless – lots of redundant data
New connection required for each transaction

© C2B2 Consulting Limited 2013
All Rights Reserved
Push to browser

© C2B2 Consulting Limited 2013
All Rights Reserved
Simulated Push – HTTP Polling
• Regular requests at a set interval
• Near real-time
• Server events may occur between requests

© C2B2 Consulting Limited 2013
All Rights Reserved
Simulated Push – Long polling
• Connection is kept open
• Response is blocked until an event occurs or a
timeout occurs
• Resource hungry on the server

© C2B2 Consulting Limited 2013
All Rights Reserved
HTTP Streaming
• Long lived HTTP connection
• Or XMLHttpRequest connection
• Browser needs to close and reconnect the
streaming channel to release memory

© C2B2 Consulting Limited 2013
All Rights Reserved
Reverse AJAX/Comet
• Utilises long polling or HTTP Streaming techniques
• Complex development
• Poor scalability

© C2B2 Consulting Limited 2013
All Rights Reserved
The Future - Web Sockets
• New to HTML 5
• Enables Full Duplex communication between a
browser and a Server
• Allows Web Servers to push updates to
browsers
• Better than “long polling”
• Establishes a Dedicated Socket to the Backend
Web Socket Server
© C2B2 Consulting Limited 2013
All Rights Reserved
Web Socket standards
• This is all in flux
• Rfc 6455 defines the
protocol
• W3C SSE
http://dev.w3.org/html
5/eventsource/
• W3C WebSockets
http://dev.w3.org/html
5/websockets/
© C2B2 Consulting Limited 2013
All Rights Reserved
Browser Support
•
•
•
•
•

Chrome 4+
Internet Explorer 10+
Firefox 4+
Opera 10.7+
Safari 5+

© C2B2 Consulting Limited 2013
All Rights Reserved
Benefits over old techniques
•
•
•
•
•

Reduced latency
Reduced network traffic
Reduced CPU/memory usage on the server
Scalable
Simplified development

© C2B2 Consulting Limited 2013
All Rights Reserved
Web Socket Protocol
•Client

•Server

•GET /chat HTTP/1.1
•Host: server.example.com
Upgrade: websocket
•Connection: Upgrade
•Sec-WebSocket-Key:
dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
•Sec-WebSocket-Protocol:
chat, superchat
•Sec-WebSocket-Version: 13

•HTTP/1.1 101 Switching
•Protocols Upgrade:
websocket Connection:
Upgrade Sec-WebSocketAccept:
s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
•Sec-WebSocket-Protocol:
chat

© C2B2 Consulting Limited 2013
All Rights Reserved
From the RFC
•Conceptually, WebSocket is really just a layer on top of TCP that
does the following:
• adds a web origin-based security model for browsers
• adds an addressing and protocol naming mechanism to
support multiple services on one port and multiple host
names on one IP address
• layers a framing mechanism on top of TCP to get back to the
IP packet mechanism that TCP is built on, but without length
limits
• includes an additional closing handshake in-band that is
designed to work in the presence of proxies and other
intermediaries
© C2B2 Consulting Limited 2013
All Rights Reserved
JavaScript API
•Web Socket
•WebSocket(location,protocol)
•Function onmessage
•Function onopen
•Function onclose
•Function onerror
•close()
•send(data)

•Server Sent Events
•
EventSource(location)
•Function onmessage
•Function onopen
•Function onerror

© C2B2 Consulting Limited 2013
All Rights Reserved
W3C Definition
[Constructor(in DOMString url, in optional DOMString protocol)]
interface WebSocket {
readonly attribute DOMString URL;
// ready state
const unsigned short CONNECTING = 0;
const unsigned short OPEN = 1;
const unsigned short CLOSED = 2;
readonly attribute unsigned short readyState;
readonly attribute unsigned long bufferedAmount;
// networking
attribute Function onopen;
attribute Function onmessage;
attribute Function onclose;
boolean send(in DOMString data);
void close();
};
WebSocket implements EventTarget;

© C2B2 Consulting Limited 2013
All Rights Reserved
WebSockets in WebLogic

© C2B2 Consulting Limited 2013
All Rights Reserved
WebLogic Key Classes
• Note this is only in WebLogic 12c
WebSocketConnection
WebSocket
Listener

WebSocket
Context

WebSocketConnection

WebSocketConnection

© C2B2 Consulting Limited 2013
All Rights Reserved
WebLogic Annotations
@WebSocket (
pathPatterns = {"/chat/*"},
dispatchPolicy = "ChatWorkManager",
timeout = 30,
maxConnections = 1000 )
public class MyListener implements
WebSocketListener { ... }
© C2B2 Consulting Limited 2013
All Rights Reserved
JSR 356
• @ServerEndpoint(path="/echo")
public class EchoBean {
@OnMessage
public String echo(String message) {
return message + " (from your server)";
}
}
© C2B2 Consulting Limited 2013
All Rights Reserved
Oracle Coherence
Real Time Push @ Scale?

© C2B2 Consulting Limited 2013
All Rights Reserved
JCache
• JCache standard api for caches
• JSR 107 (Coming in JEE7)
• Provides Map Semantics for Cache
– put(Key,Object)
– Object get(Key)

• Most Caches support this api
• Coherence supports the api
© C2B2 Consulting Limited 2013
All Rights Reserved
Data Cache
• Data Caches aren’t New
– Hibernate Session Cache
– Entity Bean Cache
– JPA Cache
– Custom Caches
– Open Source Caches

• Typically Cache Database Data
• Data Grids are Cache on Steroids!
© C2B2 Consulting Limited 2013
All Rights Reserved
GET B

PUT C

Cache Partitioning
Application

C
Application

Application

Cache

Cache

Cache

Cache

PUT B

B
Application

B

C

B

© C2B2 Consulting Limited 2013
All Rights Reserved
HA Cache Partitioning
Application

Application

Application

Cache

Cache

Cache

Cache

PUT B

B
Application

B

NODE
CRASH!!
!

© C2B2 Consulting Limited 2013
All Rights Reserved
Typical Coherence Grid
Application

Application

Application

Application

Application

Application

Application

Cache

Cache

Cache

Cache

Cache

Cache

Cache

Application

Application

Application

Application

Application

Application

Application

Cache

Cache

Cache

Cache

Cache

Cache

Cache

Application

Application

Application

Application

Application

Application

Application

Cache

Cache

Cache

Cache

Cache

Cache

Cache

© C2B2 Consulting Limited 2013
All Rights Reserved
Coherence Partitioned Cache
• Linear Scalability
– 2 hops for Read (Worst Case)
– 2 hops for Write (Worst Case)

• High Availability
– Configurable Duplicates

• Location Independent Access
– Grid knows where data is

• More Nodes = More Data in Memory
© C2B2 Consulting Limited 2013
All Rights Reserved
Coherence Key Features
• Elasticity
•
Grow and Shrink the Cluster
• Grid Execution
•

•
•
•
•
•

Push code around the cluster

Grid Queries
Near Cache
Continuous Query Cache
Many Caching Strategies
© C2B2 Consulting Limited 2013
All Rights Reserved
Grid Events Subsystem

Application

Cache
Listener

Application

Application

Application

Cache

Cache

Cache

Cache

© C2B2 Consulting Limited 2013
All Rights Reserved
Coherence Event Listeners
• Coherence classes MapEvent, MapListener
• Each time a record is changed, Coherence
raises a MapEvent
• Override entryUpdated, entryInserted and
entryDeleted to process these events
• MapListeners can have filters

© C2B2 Consulting Limited 2013
All Rights Reserved
Events
• E_ALL
– All Events

• E_INSERTED
– Inserts

• E_DELETED
– Deletes

• E_UPDATED
– Updated

• E_UPDATED_LEFT
– Updated and now not
matched

• E_UPDATED_WITHIN
– Updated still matched

• E_KEYSET
– All updated which change the
matching set

• E_UPDATED_ENTERED
– Updated and now matched

© C2B2 Consulting Limited 2013
All Rights Reserved
JSR 107 API
•boolean registerCacheEntryListener(
• CacheEntryListener cacheEntryListener);
•Fired on
• Expired
• Removed
• Updated
• Read

© C2B2 Consulting Limited 2013
All Rights Reserved
Best Practice Architecture

Load Balancer
JEE
Cluster
Node

JEE
Cluster
Node

JEE
Cluster
Node

JEE
Cluster
Node

JEE
Cluster
Node

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

Applicat
Cach
ion

e

e

e

e

e

e

e

e

e

e

e

e

e

e

e

e

e

e

e

e

e

© C2B2 Consulting Limited 2013
All Rights Reserved
Stock Ticker Architecture

WebLogic 12c
Application
Cache

StockTicker App
Application
Cache

© C2B2 Consulting Limited 2013
All Rights Reserved
Demo
http://demo.c2b2.co.uk:7080
Follow the Link

© C2B2 Consulting Limited 2013
All Rights Reserved
Stock Ticker Classes
Ticker
(WebSocket
Adapter)

Stock

Index.jsp

Named
Cache

WAR File

WebLogic 12c
WebSocket
Engine

PushUpdates

© C2B2 Consulting Limited 2013
All Rights Reserved
PushUpdates
public static void main(String args[]) throws Exception {
// attach to Coherence
CacheFactory.ensureCluster();
NamedCache cache = CacheFactory.getCache("Stocks");
// create a random stock and stick it in Coherence
while(true) {
Stock stock = new Stock("C2B2","C2B2",Math.random() * 100.0);
cache.put("C2B2", stock);
int sleepTime = (int)(500*Math.random() + 500);
Thread.currentThread().sleep(sleepTime);
}
}

© C2B2 Consulting Limited 2013
All Rights Reserved
Ticker
@WebSocket (
pathPatterns = {"graph/*"},
timeout = 3600
)
public class Ticker extends WebSocketAdapter implements MapListener
{
public Ticker() {
try {
jaxb = JAXBContext.newInstance(Stock.class);
} catch (JAXBException ex) {
Logger.getLogger(Ticker.class.getName()).log(Level.SEVERE, null, ex);
}
}

© C2B2 Consulting Limited 2013
All Rights Reserved
Ticker init
@Override
public void init(WebSocketContext context) {
super.init(context);
CacheFactory.ensureCluster();
cache = CacheFactory.getCache("Stocks");
System.out.println("Got Cache " + cache);
cache.addMapListener(this);
}

© C2B2 Consulting Limited 2013
All Rights Reserved
Ticker entryUpdated
public void entryUpdated(MapEvent me) {
// marshall to JSON
Stock stock = (Stock) me.getNewValue();
Marshaller m = jaxb.createMarshaller();
m.setProperty("eclipselink.media-type", "application/json");
StringWriter sw = new StringWriter(30);
m.marshal(stock, sw);
// now write to socket
Set<WebSocketConnection> conns =
getWebSocketContext().getWebSocketConnections();
for (WebSocketConnection conn : conns) {
conn.send(sw.toString());
}
}
© C2B2 Consulting Limited 2013
All Rights Reserved
index.jsp
var chart;
document.chart = new Highcharts.Chart({
….
})
websocket.onmessage = function(event) {
var object = JSON.parse(event.data);
var x = (new Date()).getTime();
var y = object.price;
document.chart.series[0].addPoint([x,y],true,true,false);
}

© C2B2 Consulting Limited 2013
All Rights Reserved
Summary
• Reduced latency, network traffic and
CPU/memory usage on the server
• Highly scalable
• When linked to Coherence, provide enterprise
scale, event driven, real time push

© C2B2 Consulting Limited 2013
All Rights Reserved
© C2B2 Consulting Limited 2013
All Rights Reserved

More Related Content

What's hot

WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewJames Bayer
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootMichel Schildmeijer
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Michel Schildmeijer
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOpsFrank Munz
 
WSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2
 
Weblogic-clustering-failover-and-load-balancing-training
Weblogic-clustering-failover-and-load-balancing-trainingWeblogic-clustering-failover-and-load-balancing-training
Weblogic-clustering-failover-and-load-balancing-trainingUnmesh Baile
 
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...WSO2
 
Narayana 5: The premier open source transaction manager
Narayana 5: The premier open source transaction manager Narayana 5: The premier open source transaction manager
Narayana 5: The premier open source transaction manager Virtual JBoss User Group
 
Cloud OS development
Cloud OS developmentCloud OS development
Cloud OS developmentSean Chang
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupShapeBlue
 
CloudStack European User Group - controlCircle
CloudStack European User Group - controlCircle CloudStack European User Group - controlCircle
CloudStack European User Group - controlCircle ShapeBlue
 
Linkedin NUS QCon 2009 slides
Linkedin NUS QCon 2009 slidesLinkedin NUS QCon 2009 slides
Linkedin NUS QCon 2009 slidesruslansv
 
Nicolas Vazquez - Open vSwitch with DPDK on CloudStack
Nicolas Vazquez - Open vSwitch with DPDK on CloudStackNicolas Vazquez - Open vSwitch with DPDK on CloudStack
Nicolas Vazquez - Open vSwitch with DPDK on CloudStackShapeBlue
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administrationMuhammad Mansoor
 
CloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanCloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanKimihiko Kitase
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)MarkTaylorIBM
 

What's hot (20)

WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview
 
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and TroubleshootOracle Fuson Middleware Diagnostics, Performance and Troubleshoot
Oracle Fuson Middleware Diagnostics, Performance and Troubleshoot
 
Weblogic - clustering failover, and load balancing
Weblogic - clustering failover, and load balancingWeblogic - clustering failover, and load balancing
Weblogic - clustering failover, and load balancing
 
Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020Keynote Oracle Fusion Middleware Summit_2020
Keynote Oracle Fusion Middleware Summit_2020
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
 
WSO2 Message Broker - Product Overview
WSO2 Message Broker - Product OverviewWSO2 Message Broker - Product Overview
WSO2 Message Broker - Product Overview
 
Weblogic-clustering-failover-and-load-balancing-training
Weblogic-clustering-failover-and-load-balancing-trainingWeblogic-clustering-failover-and-load-balancing-training
Weblogic-clustering-failover-and-load-balancing-training
 
MaxScale - The Pluggable Router
MaxScale - The Pluggable RouterMaxScale - The Pluggable Router
MaxScale - The Pluggable Router
 
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 En...
 
Narayana 5: The premier open source transaction manager
Narayana 5: The premier open source transaction manager Narayana 5: The premier open source transaction manager
Narayana 5: The premier open source transaction manager
 
Cloud OS development
Cloud OS developmentCloud OS development
Cloud OS development
 
Pub/Sub Messaging
Pub/Sub MessagingPub/Sub Messaging
Pub/Sub Messaging
 
Solid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User GroupSolid fire cloudstack storage overview - CloudStack European User Group
Solid fire cloudstack storage overview - CloudStack European User Group
 
Oracle WorkManager
Oracle WorkManagerOracle WorkManager
Oracle WorkManager
 
CloudStack European User Group - controlCircle
CloudStack European User Group - controlCircle CloudStack European User Group - controlCircle
CloudStack European User Group - controlCircle
 
Linkedin NUS QCon 2009 slides
Linkedin NUS QCon 2009 slidesLinkedin NUS QCon 2009 slides
Linkedin NUS QCon 2009 slides
 
Nicolas Vazquez - Open vSwitch with DPDK on CloudStack
Nicolas Vazquez - Open vSwitch with DPDK on CloudStackNicolas Vazquez - Open vSwitch with DPDK on CloudStack
Nicolas Vazquez - Open vSwitch with DPDK on CloudStack
 
Weblogic configuration & administration
Weblogic   configuration & administrationWeblogic   configuration & administration
Weblogic configuration & administration
 
CloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanCloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen Japan
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)
 

Viewers also liked

Weblogic Cluster Installation
Weblogic Cluster InstallationWeblogic Cluster Installation
Weblogic Cluster InstallationAditya Bhuyan
 
Weblogic Cluster monitoring
Weblogic Cluster monitoringWeblogic Cluster monitoring
Weblogic Cluster monitoringAditya Bhuyan
 
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...Rakuten Group, Inc.
 
Weblogic Cluster advanced performance tuning
Weblogic Cluster advanced performance tuningWeblogic Cluster advanced performance tuning
Weblogic Cluster advanced performance tuningAditya Bhuyan
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuningprathap kumar
 
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?Toronto-Oracle-Users-Group
 
Oracle 12c New Features for Developers
Oracle 12c New Features for DevelopersOracle 12c New Features for Developers
Oracle 12c New Features for DevelopersCompleteITProfessional
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cAjith Narayanan
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012Arun Gupta
 
Weblogic server administration
Weblogic server administrationWeblogic server administration
Weblogic server administrationbispsolutions
 
Oracle Weblogic 11g admin guide 2
Oracle Weblogic 11g admin guide 2Oracle Weblogic 11g admin guide 2
Oracle Weblogic 11g admin guide 2Ram Kumar
 
WebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleJames Bayer
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationRevelation Technologies
 
Weblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencastWeblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencastRajiv Gupta
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningMichel Schildmeijer
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsJames Bayer
 

Viewers also liked (16)

Weblogic Cluster Installation
Weblogic Cluster InstallationWeblogic Cluster Installation
Weblogic Cluster Installation
 
Weblogic Cluster monitoring
Weblogic Cluster monitoringWeblogic Cluster monitoring
Weblogic Cluster monitoring
 
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
[Rakuten TechConf2014] [Fukuoka] Case Study of Financial Web Systems Developm...
 
Weblogic Cluster advanced performance tuning
Weblogic Cluster advanced performance tuningWeblogic Cluster advanced performance tuning
Weblogic Cluster advanced performance tuning
 
weblogic perfomence tuning
weblogic perfomence tuningweblogic perfomence tuning
weblogic perfomence tuning
 
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
 
Oracle 12c New Features for Developers
Oracle 12c New Features for DevelopersOracle 12c New Features for Developers
Oracle 12c New Features for Developers
 
Performance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12cPerformance Tuning Oracle Weblogic Server 12c
Performance Tuning Oracle Weblogic Server 12c
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
 
Weblogic server administration
Weblogic server administrationWeblogic server administration
Weblogic server administration
 
Oracle Weblogic 11g admin guide 2
Oracle Weblogic 11g admin guide 2Oracle Weblogic 11g admin guide 2
Oracle Weblogic 11g admin guide 2
 
WebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan Example
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
 
Weblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencastWeblogic 11g admin basic with screencast
Weblogic 11g admin basic with screencast
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 

Similar to Oracle Coherence & WebLogic 12c Web Sockets: Delivering Real Time Push at Scale

SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012Fabian Lange
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingPhil Wilkins
 
GeeCon- 'www.NoSQL.com' by Mark Addy
GeeCon- 'www.NoSQL.com' by Mark Addy GeeCon- 'www.NoSQL.com' by Mark Addy
GeeCon- 'www.NoSQL.com' by Mark Addy C2B2 Consulting
 
Running Docker in Production
Running Docker in ProductionRunning Docker in Production
Running Docker in ProductionAndrew Kennedy
 
VMware vCloud Air: Networking
VMware vCloud Air: NetworkingVMware vCloud Air: Networking
VMware vCloud Air: NetworkingVMware
 
BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...
BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...
BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...Dzmitry Durasau
 
Software-Defined WAN: A Real World Success Story
Software-Defined WAN: A Real World Success StorySoftware-Defined WAN: A Real World Success Story
Software-Defined WAN: A Real World Success StoryCisco Enterprise Networks
 
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Phil Wilkins
 
Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4Tejas Purohit
 
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)Sam Vanhoutte
 
How Databases Work - for Developers, Accidental DBAs and Managers
How Databases Work - for Developers, Accidental DBAs and ManagersHow Databases Work - for Developers, Accidental DBAs and Managers
How Databases Work - for Developers, Accidental DBAs and ManagersEDB
 
Az 104 session 6 azure networking part2
Az 104 session 6 azure networking part2Az 104 session 6 azure networking part2
Az 104 session 6 azure networking part2AzureEzy1
 
Citirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise MobilityCitirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise MobilityDigicomp Academy AG
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsJay Bryant
 
01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinar01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinarAerospike, Inc.
 
Using Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the CloudUsing Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the CloudAndrew Kennedy
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the CloudCloudBees
 
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesHit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesBobby Curtis
 

Similar to Oracle Coherence & WebLogic 12c Web Sockets: Delivering Real Time Push at Scale (20)

SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012SPDY - http reloaded - WebTechConference 2012
SPDY - http reloaded - WebTechConference 2012
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go Streaming
 
GeeCon- 'www.NoSQL.com' by Mark Addy
GeeCon- 'www.NoSQL.com' by Mark Addy GeeCon- 'www.NoSQL.com' by Mark Addy
GeeCon- 'www.NoSQL.com' by Mark Addy
 
Running Docker in Production
Running Docker in ProductionRunning Docker in Production
Running Docker in Production
 
VMware vCloud Air: Networking
VMware vCloud Air: NetworkingVMware vCloud Air: Networking
VMware vCloud Air: Networking
 
12-Factor Apps
12-Factor Apps12-Factor Apps
12-Factor Apps
 
BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...
BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...
BAUG Meetup #1 2022: Публикация ресурсов в Интернет в Microsoft Azure. Обзор ...
 
Software-Defined WAN: A Real World Success Story
Software-Defined WAN: A Real World Success StorySoftware-Defined WAN: A Real World Success Story
Software-Defined WAN: A Real World Success Story
 
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
Fluentd – Making Logging Easy & Effective in a Multi-cloud & Hybrid Environme...
 
Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4Ahmedabad MuleSoft Meetup #4
Ahmedabad MuleSoft Meetup #4
 
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
 
How Databases Work - for Developers, Accidental DBAs and Managers
How Databases Work - for Developers, Accidental DBAs and ManagersHow Databases Work - for Developers, Accidental DBAs and Managers
How Databases Work - for Developers, Accidental DBAs and Managers
 
Az 104 session 6 azure networking part2
Az 104 session 6 azure networking part2Az 104 session 6 azure networking part2
Az 104 session 6 azure networking part2
 
Citirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise MobilityCitirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise Mobility
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge Clouds
 
01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinar01282016 Aerospike-Docker webinar
01282016 Aerospike-Docker webinar
 
OpenDataPlane Project
OpenDataPlane ProjectOpenDataPlane Project
OpenDataPlane Project
 
Using Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the CloudUsing Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the Cloud
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
Hit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate MicroservicesHit Refresh with Oracle GoldenGate Microservices
Hit Refresh with Oracle GoldenGate Microservices
 

More from C2B2 Consulting

Hands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandHands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandC2B2 Consulting
 
Advanced queries on the Infinispan Data Grid
Advanced queries on the Infinispan Data Grid Advanced queries on the Infinispan Data Grid
Advanced queries on the Infinispan Data Grid C2B2 Consulting
 
Hands-on Performance Workshop - The science of performance
Hands-on Performance Workshop - The science of performanceHands-on Performance Workshop - The science of performance
Hands-on Performance Workshop - The science of performanceC2B2 Consulting
 
Jsr107 come, code, cache, compute!
Jsr107 come, code, cache, compute!Jsr107 come, code, cache, compute!
Jsr107 come, code, cache, compute!C2B2 Consulting
 
JBoss Clustering on OpenShift
JBoss Clustering on OpenShiftJBoss Clustering on OpenShift
JBoss Clustering on OpenShiftC2B2 Consulting
 
Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...
Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...
Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...C2B2 Consulting
 
'Deploying with GlassFish & Docker'
'Deploying with GlassFish & Docker' 'Deploying with GlassFish & Docker'
'Deploying with GlassFish & Docker' C2B2 Consulting
 
'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit'
'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit' 'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit'
'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit' C2B2 Consulting
 
'New JMS features in GlassFish 4.0' by Nigel Deakin
'New JMS features in GlassFish 4.0' by Nigel Deakin'New JMS features in GlassFish 4.0' by Nigel Deakin
'New JMS features in GlassFish 4.0' by Nigel DeakinC2B2 Consulting
 
Coherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-webCoherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-webC2B2 Consulting
 
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 ScaleC2B2 Consulting
 
Monitoring VMware vFabric with Hyperic and Spring Insight
Monitoring VMware vFabric with Hyperic and Spring InsightMonitoring VMware vFabric with Hyperic and Spring Insight
Monitoring VMware vFabric with Hyperic and Spring InsightC2B2 Consulting
 
Middleware Expert Support Presentation
Middleware Expert Support PresentationMiddleware Expert Support Presentation
Middleware Expert Support PresentationC2B2 Consulting
 
Monitoring Production JBoss with JBoss ON
Monitoring Production JBoss with JBoss ONMonitoring Production JBoss with JBoss ON
Monitoring Production JBoss with JBoss ONC2B2 Consulting
 
Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...
Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...
Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...C2B2 Consulting
 
G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?C2B2 Consulting
 
Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'C2B2 Consulting
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to ProductionC2B2 Consulting
 
Coherence For Extreme Performance, Availablity and Scalability
Coherence For Extreme Performance, Availablity and ScalabilityCoherence For Extreme Performance, Availablity and Scalability
Coherence For Extreme Performance, Availablity and ScalabilityC2B2 Consulting
 

More from C2B2 Consulting (20)

Hands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandHands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx Poland
 
Advanced queries on the Infinispan Data Grid
Advanced queries on the Infinispan Data Grid Advanced queries on the Infinispan Data Grid
Advanced queries on the Infinispan Data Grid
 
Hands-on Performance Workshop - The science of performance
Hands-on Performance Workshop - The science of performanceHands-on Performance Workshop - The science of performance
Hands-on Performance Workshop - The science of performance
 
Jsr107 come, code, cache, compute!
Jsr107 come, code, cache, compute!Jsr107 come, code, cache, compute!
Jsr107 come, code, cache, compute!
 
JBoss Clustering on OpenShift
JBoss Clustering on OpenShiftJBoss Clustering on OpenShift
JBoss Clustering on OpenShift
 
Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...
Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...
Dr. Low Latency or: How I Learned to Stop Worrying about Pauses and Love the ...
 
Jax London 2013
Jax London 2013Jax London 2013
Jax London 2013
 
'Deploying with GlassFish & Docker'
'Deploying with GlassFish & Docker' 'Deploying with GlassFish & Docker'
'Deploying with GlassFish & Docker'
 
'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit'
'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit' 'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit'
'JMS @ Data Grid? Hacking the Glassfish messaging for fun & profit'
 
'New JMS features in GlassFish 4.0' by Nigel Deakin
'New JMS features in GlassFish 4.0' by Nigel Deakin'New JMS features in GlassFish 4.0' by Nigel Deakin
'New JMS features in GlassFish 4.0' by Nigel Deakin
 
Coherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-webCoherence sig-nfr-web-tier-scaling-using-coherence-web
Coherence sig-nfr-web-tier-scaling-using-coherence-web
 
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
 
Monitoring VMware vFabric with Hyperic and Spring Insight
Monitoring VMware vFabric with Hyperic and Spring InsightMonitoring VMware vFabric with Hyperic and Spring Insight
Monitoring VMware vFabric with Hyperic and Spring Insight
 
Middleware Expert Support Presentation
Middleware Expert Support PresentationMiddleware Expert Support Presentation
Middleware Expert Support Presentation
 
Monitoring Production JBoss with JBoss ON
Monitoring Production JBoss with JBoss ONMonitoring Production JBoss with JBoss ON
Monitoring Production JBoss with JBoss ON
 
Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...
Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...
Pushing Oracle Coherence Events to Web Browsers Using HTML5, Web Sockets and ...
 
G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?G1 Garbage Collector - Big Heaps and Low Pauses?
G1 Garbage Collector - Big Heaps and Low Pauses?
 
Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'Davoxx 2012 - 'JMS 2.0 Update'
Davoxx 2012 - 'JMS 2.0 Update'
 
Infinispan from POC to Production
Infinispan from POC to ProductionInfinispan from POC to Production
Infinispan from POC to Production
 
Coherence For Extreme Performance, Availablity and Scalability
Coherence For Extreme Performance, Availablity and ScalabilityCoherence For Extreme Performance, Availablity and Scalability
Coherence For Extreme Performance, Availablity and Scalability
 

Recently uploaded

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
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
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
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
 
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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
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
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
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
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
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
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
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
 
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
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
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
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Oracle Coherence & WebLogic 12c Web Sockets: Delivering Real Time Push at Scale

  • 1. Oracle Coherence and WebLogic 12c Delivering Real Time Push at Scale Steve Millidge © C2B2 Consulting Limited 2013 All Rights Reserved
  • 2. About Me • Founder of C2B2 – Leading Independent Middleware Experts – Non-functional Experts • Vendor Neutral – Red Hat (JBoss), Oracle (Fusion), VMWare (vFabric), Open Source (Apache) • 20 Years Middleware Expertise • 15 years Field Consultancy © C2B2 Consulting Limited 2013 All Rights Reserved
  • 3. Agenda • • • • • • Introduction to Web Sockets and Push WebSockets in WebLogic 12c Introduction to Coherence Test Demo Code walkthrough - Hooking up to Coherence Summary © C2B2 Consulting Limited 2013 All Rights Reserved
  • 4. Standard HTTP model •Client requests data – server responds © C2B2 Consulting Limited 2013 All Rights Reserved
  • 5. The problems with HTTP • • • • HTTP is a request-response protocol HTTP is half-duplex – one way traffic HTTP is stateless – lots of redundant data New connection required for each transaction © C2B2 Consulting Limited 2013 All Rights Reserved
  • 6. Push to browser © C2B2 Consulting Limited 2013 All Rights Reserved
  • 7. Simulated Push – HTTP Polling • Regular requests at a set interval • Near real-time • Server events may occur between requests © C2B2 Consulting Limited 2013 All Rights Reserved
  • 8. Simulated Push – Long polling • Connection is kept open • Response is blocked until an event occurs or a timeout occurs • Resource hungry on the server © C2B2 Consulting Limited 2013 All Rights Reserved
  • 9. HTTP Streaming • Long lived HTTP connection • Or XMLHttpRequest connection • Browser needs to close and reconnect the streaming channel to release memory © C2B2 Consulting Limited 2013 All Rights Reserved
  • 10. Reverse AJAX/Comet • Utilises long polling or HTTP Streaming techniques • Complex development • Poor scalability © C2B2 Consulting Limited 2013 All Rights Reserved
  • 11. The Future - Web Sockets • New to HTML 5 • Enables Full Duplex communication between a browser and a Server • Allows Web Servers to push updates to browsers • Better than “long polling” • Establishes a Dedicated Socket to the Backend Web Socket Server © C2B2 Consulting Limited 2013 All Rights Reserved
  • 12. Web Socket standards • This is all in flux • Rfc 6455 defines the protocol • W3C SSE http://dev.w3.org/html 5/eventsource/ • W3C WebSockets http://dev.w3.org/html 5/websockets/ © C2B2 Consulting Limited 2013 All Rights Reserved
  • 13. Browser Support • • • • • Chrome 4+ Internet Explorer 10+ Firefox 4+ Opera 10.7+ Safari 5+ © C2B2 Consulting Limited 2013 All Rights Reserved
  • 14. Benefits over old techniques • • • • • Reduced latency Reduced network traffic Reduced CPU/memory usage on the server Scalable Simplified development © C2B2 Consulting Limited 2013 All Rights Reserved
  • 15. Web Socket Protocol •Client •Server •GET /chat HTTP/1.1 •Host: server.example.com Upgrade: websocket •Connection: Upgrade •Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Origin: http://example.com •Sec-WebSocket-Protocol: chat, superchat •Sec-WebSocket-Version: 13 •HTTP/1.1 101 Switching •Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocketAccept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= •Sec-WebSocket-Protocol: chat © C2B2 Consulting Limited 2013 All Rights Reserved
  • 16. From the RFC •Conceptually, WebSocket is really just a layer on top of TCP that does the following: • adds a web origin-based security model for browsers • adds an addressing and protocol naming mechanism to support multiple services on one port and multiple host names on one IP address • layers a framing mechanism on top of TCP to get back to the IP packet mechanism that TCP is built on, but without length limits • includes an additional closing handshake in-band that is designed to work in the presence of proxies and other intermediaries © C2B2 Consulting Limited 2013 All Rights Reserved
  • 17. JavaScript API •Web Socket •WebSocket(location,protocol) •Function onmessage •Function onopen •Function onclose •Function onerror •close() •send(data) •Server Sent Events • EventSource(location) •Function onmessage •Function onopen •Function onerror © C2B2 Consulting Limited 2013 All Rights Reserved
  • 18. W3C Definition [Constructor(in DOMString url, in optional DOMString protocol)] interface WebSocket { readonly attribute DOMString URL; // ready state const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSED = 2; readonly attribute unsigned short readyState; readonly attribute unsigned long bufferedAmount; // networking attribute Function onopen; attribute Function onmessage; attribute Function onclose; boolean send(in DOMString data); void close(); }; WebSocket implements EventTarget; © C2B2 Consulting Limited 2013 All Rights Reserved
  • 19. WebSockets in WebLogic © C2B2 Consulting Limited 2013 All Rights Reserved
  • 20. WebLogic Key Classes • Note this is only in WebLogic 12c WebSocketConnection WebSocket Listener WebSocket Context WebSocketConnection WebSocketConnection © C2B2 Consulting Limited 2013 All Rights Reserved
  • 21. WebLogic Annotations @WebSocket ( pathPatterns = {"/chat/*"}, dispatchPolicy = "ChatWorkManager", timeout = 30, maxConnections = 1000 ) public class MyListener implements WebSocketListener { ... } © C2B2 Consulting Limited 2013 All Rights Reserved
  • 22. JSR 356 • @ServerEndpoint(path="/echo") public class EchoBean { @OnMessage public String echo(String message) { return message + " (from your server)"; } } © C2B2 Consulting Limited 2013 All Rights Reserved
  • 23. Oracle Coherence Real Time Push @ Scale? © C2B2 Consulting Limited 2013 All Rights Reserved
  • 24. JCache • JCache standard api for caches • JSR 107 (Coming in JEE7) • Provides Map Semantics for Cache – put(Key,Object) – Object get(Key) • Most Caches support this api • Coherence supports the api © C2B2 Consulting Limited 2013 All Rights Reserved
  • 25. Data Cache • Data Caches aren’t New – Hibernate Session Cache – Entity Bean Cache – JPA Cache – Custom Caches – Open Source Caches • Typically Cache Database Data • Data Grids are Cache on Steroids! © C2B2 Consulting Limited 2013 All Rights Reserved
  • 26. GET B PUT C Cache Partitioning Application C Application Application Cache Cache Cache Cache PUT B B Application B C B © C2B2 Consulting Limited 2013 All Rights Reserved
  • 27. HA Cache Partitioning Application Application Application Cache Cache Cache Cache PUT B B Application B NODE CRASH!! ! © C2B2 Consulting Limited 2013 All Rights Reserved
  • 29. Coherence Partitioned Cache • Linear Scalability – 2 hops for Read (Worst Case) – 2 hops for Write (Worst Case) • High Availability – Configurable Duplicates • Location Independent Access – Grid knows where data is • More Nodes = More Data in Memory © C2B2 Consulting Limited 2013 All Rights Reserved
  • 30. Coherence Key Features • Elasticity • Grow and Shrink the Cluster • Grid Execution • • • • • • Push code around the cluster Grid Queries Near Cache Continuous Query Cache Many Caching Strategies © C2B2 Consulting Limited 2013 All Rights Reserved
  • 32. Coherence Event Listeners • Coherence classes MapEvent, MapListener • Each time a record is changed, Coherence raises a MapEvent • Override entryUpdated, entryInserted and entryDeleted to process these events • MapListeners can have filters © C2B2 Consulting Limited 2013 All Rights Reserved
  • 33. Events • E_ALL – All Events • E_INSERTED – Inserts • E_DELETED – Deletes • E_UPDATED – Updated • E_UPDATED_LEFT – Updated and now not matched • E_UPDATED_WITHIN – Updated still matched • E_KEYSET – All updated which change the matching set • E_UPDATED_ENTERED – Updated and now matched © C2B2 Consulting Limited 2013 All Rights Reserved
  • 34. JSR 107 API •boolean registerCacheEntryListener( • CacheEntryListener cacheEntryListener); •Fired on • Expired • Removed • Updated • Read © C2B2 Consulting Limited 2013 All Rights Reserved
  • 35. Best Practice Architecture Load Balancer JEE Cluster Node JEE Cluster Node JEE Cluster Node JEE Cluster Node JEE Cluster Node Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion Applicat Cach ion e e e e e e e e e e e e e e e e e e e e e © C2B2 Consulting Limited 2013 All Rights Reserved
  • 36. Stock Ticker Architecture WebLogic 12c Application Cache StockTicker App Application Cache © C2B2 Consulting Limited 2013 All Rights Reserved
  • 37. Demo http://demo.c2b2.co.uk:7080 Follow the Link © C2B2 Consulting Limited 2013 All Rights Reserved
  • 38. Stock Ticker Classes Ticker (WebSocket Adapter) Stock Index.jsp Named Cache WAR File WebLogic 12c WebSocket Engine PushUpdates © C2B2 Consulting Limited 2013 All Rights Reserved
  • 39. PushUpdates public static void main(String args[]) throws Exception { // attach to Coherence CacheFactory.ensureCluster(); NamedCache cache = CacheFactory.getCache("Stocks"); // create a random stock and stick it in Coherence while(true) { Stock stock = new Stock("C2B2","C2B2",Math.random() * 100.0); cache.put("C2B2", stock); int sleepTime = (int)(500*Math.random() + 500); Thread.currentThread().sleep(sleepTime); } } © C2B2 Consulting Limited 2013 All Rights Reserved
  • 40. Ticker @WebSocket ( pathPatterns = {"graph/*"}, timeout = 3600 ) public class Ticker extends WebSocketAdapter implements MapListener { public Ticker() { try { jaxb = JAXBContext.newInstance(Stock.class); } catch (JAXBException ex) { Logger.getLogger(Ticker.class.getName()).log(Level.SEVERE, null, ex); } } © C2B2 Consulting Limited 2013 All Rights Reserved
  • 41. Ticker init @Override public void init(WebSocketContext context) { super.init(context); CacheFactory.ensureCluster(); cache = CacheFactory.getCache("Stocks"); System.out.println("Got Cache " + cache); cache.addMapListener(this); } © C2B2 Consulting Limited 2013 All Rights Reserved
  • 42. Ticker entryUpdated public void entryUpdated(MapEvent me) { // marshall to JSON Stock stock = (Stock) me.getNewValue(); Marshaller m = jaxb.createMarshaller(); m.setProperty("eclipselink.media-type", "application/json"); StringWriter sw = new StringWriter(30); m.marshal(stock, sw); // now write to socket Set<WebSocketConnection> conns = getWebSocketContext().getWebSocketConnections(); for (WebSocketConnection conn : conns) { conn.send(sw.toString()); } } © C2B2 Consulting Limited 2013 All Rights Reserved
  • 43. index.jsp var chart; document.chart = new Highcharts.Chart({ …. }) websocket.onmessage = function(event) { var object = JSON.parse(event.data); var x = (new Date()).getTime(); var y = object.price; document.chart.series[0].addPoint([x,y],true,true,false); } © C2B2 Consulting Limited 2013 All Rights Reserved
  • 44. Summary • Reduced latency, network traffic and CPU/memory usage on the server • Highly scalable • When linked to Coherence, provide enterprise scale, event driven, real time push © C2B2 Consulting Limited 2013 All Rights Reserved
  • 45. © C2B2 Consulting Limited 2013 All Rights Reserved