Lightstreamer. The Streaming-Ajax Revolution. Product Insight

Similar documents
Nirvana A Technical Introduction

Kaazing Gateway: An Open Source

Last revised: June 5, 2006

Delivering Real- Time Internet Solutions

Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios

A RESTful Java Framework for Asynchronous High-Speed Ingest

SPDY - A Web Protocol. Mike Belshe Velocity, Dec 2009

MigratoryData Server Architecture Guide. Version 5.0 November 13, 2018

Lecture 8: February 19

Building next-gen Web Apps with WebSocket. Copyright Kaazing Corporation. All rights reserved.

White Paper. Major Performance Tuning Considerations for Weblogic Server

GI PageBus AMS Integration Demo

System Specification

Flash: an efficient and portable web server

Comet for Highly- Scalable Applications

Module 6 Node.js and Socket.IO

Ch 1. Mobile Adaptive Computing

Harnessing the Power of HTML5 WebSocket to Create Scalable Real-time Applications. Brian Albers & Peter Lubbers, Kaazing

Zero Latency HTTP The comet Technique

Copyright Push Technology Ltd December Diffusion TM 4.4 Performance Benchmarks

Performance and Scalability with Griddable.io

Bipul Sinha, Amit Ganesh, Lilian Hobbs, Oracle Corp. Dingbo Zhou, Basavaraj Hubli, Manohar Malayanur, Fannie Mae

Diffusion TM 5.0 Performance Benchmarks

OSIsoft PI World 2018

Kaazing. Connect. Everything. WebSocket The Web Communication Revolution

Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway

Gateway Design Challenges

Connecting ESRI to Anything: EAI Solutions

ASPERA HIGH-SPEED TRANSFER. Moving the world s data at maximum speed

Introduction to OpenOnload Building Application Transparency and Protocol Conformance into Application Acceleration Middleware

Service Mesh and Microservices Networking

Reactive Microservices Architecture on AWS

IBM Europe Announcement ZP , dated November 6, 2007

Truffle Broadband Bonding Network Appliance

LUSTRE NETWORKING High-Performance Features and Flexible Support for a Wide Array of Networks White Paper November Abstract

From Data Push to WebSockets

Achieving Scalability and High Availability for clustered Web Services using Apache Synapse. Ruwan Linton WSO2 Inc.

Implementing Asynchronous Web Application using Grizzly's Comet. Jeanfrancois Arcand Staff Engineer Java WebTier

Introduction to reactive programming. Jonas Chapuis, Ph.D.

Enabling Full-Duplex Communications in APEX

Scaling for the Enterprise

Harnessing the Power of HTML5 WebSocket to Create Scalable Real-Time Applications. Peter Lubbers Kaazing

Virtualization and the Metrics of Performance & Capacity Management

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

ECE 650 Systems Programming & Engineering. Spring 2018

CLUSTERING HIVEMQ. Building highly available, horizontally scalable MQTT Broker Clusters

13. Databases on the Web

Report. Middleware Proxy: A Request-Driven Messaging Broker For High Volume Data Distribution

Using Adobe Flex in JSR-286 Portlets

Messaging Overview. Introduction. Gen-Z Messaging

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions

(h)icn Socket Library for HTTP Leveraging (h)icn socket library for carrying HTTP messages

Ajax Enabled Web Application Model with Comet Programming

<Insert Picture Here> Oracle Coherence & Extreme Transaction Processing (XTP)

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

Hands-On with Mendix 7

Web Sockets and SignalR Building the Real Time Web

Virtual private networks

The Future of the Web: HTML 5, WebSockets, Comet and Server Sent Events

Asynchronous Ajax for Revolutionary Web Applications. Jeanfrancois Arcand Ted Goddard, Ph.D.

Software Requirement Specification

HyperIP : SRDF Application Note

Avi Networks Technical Reference (16.3)

Etanova Enterprise Solutions

Developing Real-Time Web Mapping Applications

MQTT Message Queue Telemetry Transport.

Enterprise Architecture Deployment Options. Mark Causley Sandy Milliken Sue Martin

Clustering for Load Balancing and Fail Over

ProxySQL's Internals

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

On the Difficulty of Scalably Detecting Network Attacks

BEAAquaLogic. Service Bus. Native MQ Transport User Guide

IERG 4080 Building Scalable Internet-based Services

Cloudamize Agents FAQ

Introduction. Architecture Overview

Building Large Scale Distributed Systems with AMQP. Ted Ross

System Specification

The Google File System

Application Layer Introduction; HTTP; FTP

The Key Technology of Online Service System Based on MQTT. Da-mei CHEN and Ze-hua GAO

Cluster-Based Scalable Network Services

HTTP, WebSocket, SPDY, HTTP/2.0

System Specification

Tutorial 8 Build resilient, responsive and scalable web applications with SocketPro

SEDA: An Architecture for Well-Conditioned, Scalable Internet Services

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Adapter Remoting Infrastructure General Overview

LabVIEW Communication Techniques for Distributed Applications

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

Yahoo Traffic Server -a Powerful Cloud Gatekeeper

Bridging the Gap. Peter Ebell AMIS

Chelsio Communications. Meeting Today s Datacenter Challenges. Produced by Tabor Custom Publishing in conjunction with: CUSTOM PUBLISHING

Network Control and Signalling

BEAAquaLogic. Service Bus. MQ Transport User Guide

Research and Implementation of Server Load Balancing Strategy in Service System

Scaling DreamFactory

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems

Oracle Database 12c: JMS Sharded Queues

Quality of Service (QoS) Enabled Dissemination of Managed Information Objects in a Publish-Subscribe-Query

EXTENDING AN ASYNCHRONOUS MESSAGING LIBRARY USING AN RDMA-ENABLED INTERCONNECT. Konstantinos Alexopoulos ECE NTUA CSLab

Transcription:

Lightstreamer The Streaming-Ajax Revolution Product Insight 1

Agenda Paradigms for the Real-Time Web (four models explained) Requirements for a Good Comet Solution Introduction to Lightstreamer Lightstreamer Demonstrations Lightstreamer Architecture Connection Management Bandwidth Management Integration Steps 2

Intro: Synchronous & Asynchronous Modes Synchronous mode of a server (S) with respect to an actor (A) Asynchronous mode of a server (S) with respect to an actor (A) R1 R1 R2 R2 actions by A through time (requests) actions by S through time (responses) actions by A through time (requests) actions by S through time (responses) 3

Paradigms for the Real-Time Web Application Paradigm Method of sending data with respect to the user s actions Method of sending data with respect to the browser s actions 1 Traditional Web Application Page Refresh Synchronous Synchronous 2 Classic Ajax Application Periodic Polling Asynchronous Synchronous 3 Smart Ajax Application (Lightstreamer Application) Smart Polling Asynchronous Polling Comet - Long Poll Ajax Push Asynchronous Partially Asynchronous 4 Streaming Ajax Application (Lightstreamer Application) Streaming Ajax True Push/Streaming Comet - Forever Frame Reverse Ajax (term used for polling too) Asynchronous Asynchronous 4

Model 1: Web Application Based on Refresh Manual or automatic refresh refresh 1 Typical issues: Low update frequency; no real time High bandwidth usage refresh 2 High load on Web server refresh 3 user browser server 5

Model 2: Ajax Application Based on Polling Periodic polling done by the Ajax layer Typical issues: action 1 Low update frequency; no real time High bandwidth usage (but potentially lower than model 1) High load on Web server Advantages: action 2 User interface never blocked user browser server 6

Model 3: Ajax-Comet Application Based on Smart (Long) Polling Asynchronous polling (variable polling frequency, controlled by server) Typical issues: action 1 Medium update frequency; near real time Medium bandwidth usage (HTTP headers present in each round-trip cycle) High load on Web server action 2 Advantages: User interface never blocked Zero latency on lowfrequency events user browser server 7

Model 4: Ajax-Comet Application Based on Streaming Streaming Ajax (fully asynchronous push) Typical issues: action 1 Blocked by some antivirus software mounted on proxy servers Advantages: High update frequency; true real time action 2 Low bandwidth usage (very little overhead) Low load on the network infrastructure user browser server 8

Requirements for a Good Comet Solution Scalability: should scale well to thousands of concurrent push sessions (the architecture of traditional web/application servers is not suitable for models 3 and 4). Universality: should pass through the majority of firewalls and proxy servers and should support the broadest range of web browsers and AJAX toolkits & frameworks. Network Lightness: should employ a network protocol that minimizes the used bandwidth. Network Adaptiveness: should dynamically adapt to the changes in network conditions. Quality of Service: should allow to allocate a maximum bandwidth and a maximum update frequency for each push channel. Data Flexibility: should support multiple push & filtering modes based on the intrinsic nature of the data. Robustness: should support transparent fail-over. 9

What is Lightstreamer? Lightstreamer is a push/streaming engine designed for low latency and high scalability. Conceived in year 2000, has more than eight years of production maturity on the market (especially within mission-critical systems in the financial industry). Implements a pub/sub middleware based on HTTP and supports models 3 and 4. Fully manages bandwidth, frequency and network congestions. Supports many types of clients, including zero-install AJAX and Flex applications. Provides full SDKs on both server-side and client-side to integrate with any kind of system. 10

Lightstreamer Demos >> www.lightstreamer.com/demo << 11

Lightstreamer s Architecture Front-end integration with any kind of client technology: Lightstreamer Server is a stand-alone Java process. Back-end integration through custom Adapters written with Java,.NET, or direct TCP sockets. Thin Client: Through JavaScript API compatible with any web browsers and integrable with any AJAX frameworks. Through ActionScript API for Flex applications. Thick Client: through Java and.net API or through HTTP-based network protocol. 12

How Lightstreamer Handles Connections Stream Connection Single permanent Http/Https connection through which JavaScript commands are delivered to the browser in real-time (model 4). It is kept open even through proxy servers and firewalls. Multiplexing techniques are used to deliver the data destined to multiple frames and windows over a single physical connection, in order to avoid saturating the connection pool of the browser. Control Connections Short-lived connections mainly used to deliver subscribe and unsubscribe commands to the Server. Stream-Sense Http streaming usually passes through most proxies and firewalls But there exist cases where streaming is blocked by a particular combination of proxy and antivirus software. The Stream-Sense feature detects when streaming is blocked and automatically switches to smart polling (model 3). 13

How Lightstreamer Scales Staged Event-Driven Architecture Thread pools of fixed size to handle an arbitrary number of concurrent connections. Complete decoupling between threads and sockets. Non-blocking I/O, based on Java NIO, used for all types of connections. Graceful degradation of the quality of service in the case that the Server s CPU is saturated. Scalability Vertical scalability: an instance of Lightstreamer Server can fully leverage multiple CPUs and cores available in a box. The number of concurrent sessions handled by a Server instance depends on several variables, in particular: inbound throughput, outbound throughput, payload, subscription mode. Horizontal scalability: a cluster of Lightstreamer Servers can be easily implemented through a standard Load Balancer. 14

How Lightstreamer Manages Bandwidth (1) Data Filterability The nature of some data enables filterability. Lightstreamer s data filtering always ensures consistency and completeness. Different subscription modes are available, based on the data nature (Merge, Distinct, Raw, Command --> metapush). Bandwidth Control A maximum bandwidth can be allocated for each user. Data is dispatched based on the configured bandwidth. Bandwidth control is available in both streaming mode and smart-polling mode. Frequency Control Each single subscription can request a maximum update frequency. Frequency control is available in both streaming mode and smart-polling mode. 15

How Lightstreamer Manages Bandwidth (2) Multi-Stage Filtering A Pre-Filter is available to preliminarily sample the data on a global basis. Adaptive Streaming Lightstreamer automatically detects Internet congestions and heuristically throttles the data flow based on the available bandwidth. When the network channel is fully available again, the user will not receive a burst of old updates but will start seeing fresh data at once (i.e. data aging is avoided). Data is aggregated efficiently within TCP packets, with a direct control over the number of sent packets (a trade-off between latency and overhead reduction can be configured). Adaptive streaming is particularly useful for streaming sessions held over mobile networks or any unreliable networks. 16

How to Integrate Lightstreamer in a System Server-Side Development Develop a Data Adapter to connect Lightstreamer Server to your data source. Develop a Metadata Adapter, if you need to manage authentication and authorization. The Adapters can be developed in Java or.net through the provided APIs, or in any other language at TCP-socket level. Client-Side Development Web Client: Include the provided JavaScript libraries in the pages of the Web application. The JS libraries can coexist with third-party JavaScript or AJAX frameworks and toolkits (e.g. Lightstreamer + TIBCO General Interface; Lightstreamer + Dojo; Lightstreamer + ASP.NET AJAX). Flex Client: Include the provided ActionScript library in your application. Thick Clients: Use a provided client library within the client application (Java SE, Java ME,.NET, iphone) or implement the protocol at HTTP level in any language. 17

www.lightstreamer.com info@lightstreamer.com 18