Wikipedia / Lightstreamer
Wikipedia / Lightstreamer
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.
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 distribution of financial information for the finance 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 Standard 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
Android Client API
Java SE Client API
.NET Standard Client API
C++ Client API
Swift Client API
iOS Client API
macOS Client API
tvOS Client API
watchOS Client API
visionOS Client API
Python Client API
Flutter Client API
Flash Client API
Flex and AIR Client API
Silverlight Client API
BlackBerry Client API
Java ME Client API
Generic Client API (via a documented protocol)
References
External links