Samiksha Jaiswal (Editor)

Lightstreamer

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Initial release
  
2000

Written in
  
Java

Development status
  
Active

Operating system
  
Cross-platform

Developer(s)
  
Lightstreamer (formerly Weswit)

Stable release
  
6.1.0 / January 23, 2017 (2017-01-23)

Lightstreamer is a web-based asynchronous messaging project, implementing the WebSocket protocol, the Comet model, the push technology paradigm, and the real-time web practices.

Contents

Origin

The first version of Lightstreamer was created at the end of 2000, as one of the first attempts to implement real-time data push to HTML pages without employing Java applets. The application domain driving most of the interest in push technology at that time was market data distribution for the financial services industry. In the following years, Lightstreamer was used within other application domains too, including aerospace telemetry, where NASA chose Lightstreamer to push live telemetry data for the International Space Station.

Architecture

The Lightstreamer Server is a high-performance engine that manages all the connections with the clients through the Internet. It integrates with the backend systems via custom adapters. The Data Adapter receives the real-time data flow from the data feed and injects it into the Lightstreamer Server. The Metadata Adapter has control over authentication, authorization, and quality of service.

Lightstreamer Server is made up of three logical layers:

  • Web Transport. Lightstreamer implements a bi-directional transport based on standard Web protocols. This means it uses several underlying techniques (WebSocket, Comet, HTTP streaming, etc.) to provide the upper layers with a channel over which data can be exchanged in real-time with any client connected through the Web, even if protected by firewalls and proxies.
  • Messaging. Lightstreamer implements a publish–subscribe pattern, suitable for both one-to-many fan-out scenarios and one-to-one messaging needs. It takes care of routing each message to the right recipients, multiplexing the flow of events on the top of each connection with the clients.
  • Semantics+QoS+Security. It implements data semantics (tables, schema, metadata, conflation, etc.), network optimization (dynamic throttling, bandwidth control, resampling, batching, etc.), and full session management (authentication, fine-grained authorization, etc.) on the top of publish-subscribe.
  • Server-Side APIs

  • Java In-Process Adapter API
  • Java Remote Adapter API
  • .NET Adapter API
  • Node.js Adapter API
  • Python Adapter API
  • Generic Adapter API (based on TCP sockets)
  • JMX Management API
  • Client-Side APIs

  • Web Client API
  • Node.js Client API
  • Flash Client API
  • Flex and AIR Cient API
  • Silverlight Client API
  • Java SE Client API
  • .NET PCL Client API
  • iOS Client API
  • macOS Client API
  • tvOS Client API
  • Android Client API
  • BlackBerry Client API
  • Java ME Client API
  • Generic Client API (via a documented protocol)
  • References

    Lightstreamer Wikipedia