A scalable solution for real-time bi-directional data delivery over the Web, based on publish-subscribe, with abstraction over the HTTP and WebSocket protocols.
Lightstreamer (www.lightstreamer.com) is a Web-based asynchronous messaging project from Weswit, implementing the WebSocket protocol, the Comet model, the Push Technology paradigm, and the Real-Time Web practices.
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 (WebSockets, 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 Adapter API
- .NET Adapter API Adapter
- Node.js Adapter API
- Remoting Infrastructure API (based on TCP sockets)
- JMX Management API
Client-Side APIs
- JavaScript Client API
- Flash Client API
- Flex and AIR Cient API
- Silverlight Client API
- Java SE Client API
- .NET Client API
- iOS Client API
- Android Client API
- BlackBerry Client API
- Windows Phone Client API
- WinRT Client API
- Java ME Client API
- Unity 3D Client API
- Generic Client API (via a documented protocol)