DEFINITIONS
License
Type
Lightstreamer Moderato is
available
free of charge.
Lightstreamer Allegro, Presto and Vivace are commercial
products.
Very High Scalability
Lightstreamer Server is a very
scalable system, based on a staged event-driven architecture
and asynchronous I/O.
TCP-Level
OptimizationLightstreamer has
direct control over the composition of the TCP packets.
Instead of delegating the aggregation of data in packets to
the operating system using the Nagle algorithm, Lightstreamer
Server itself decides on each occasion the optimum composition
of each TCP packet, with the objective/trade-off of reducing
the delay time before data is dispatched as well as minimizing
the number of dispatched packets.
ClusteringMultiple instances of Lightstreamer
Server can be clustered through a Web load balancing appliance
to guarantee load balancing and failover.
True Push/StreamingTrue push/streaming means that the data
are sent by the server to the client in an asynchronous
fashion. It is not up to the client to poll the server to know
if new data is available (except for when Stream-Sense
switches to Smart Polling).
Stream-Sense
and Smart PollingIf a client is
connected through a network infrastructure that blocks any
form of streaming, then Lightstreamer is able to send the
updates via a smart polling mode. The Web Client of
Lightstreamer automatically detects if streaming is not
supported (through the Stream-Sense feature) and in this case
it switches to smart polling mode.
AJAX
Zero-Client SupportLightstreamer
makes it possible to stream real-time data to a Web
application that is purely based HTML and JavaScript, with no
software installations and downloads (no applets, no plug-ins,
etc.). Many AJAX frameworks and toolkits can take advantage of
Lightstreamer to dynamically update their view.
Thick Client SupportBesides pushing data to Web Clients (thin
applications based on HTML and JavaScript), Lightstreamer
Server implements a different network protocol that is better
suited for thick applications (i.e. non-JavaScript Clients).
Thick applications include Java Clients and .NET Clients.
Authentication and Fine-Grained User
PermissioningLightstreamer
supports user authentication and implements a very
fine-grained permissioning policy so that any user’s action
can be validated through the custom Metadata Adapter.
Secure StreamingThe ability to deliver data over a secure
encrypted connection by using the HTTPS protocol.
Max Frequency
per Item (updates/second)The
maximum allowed update frequency for each subscribed item,
expressed as updates per second. For example, with the Presto
Edition, in which such limit is 3, a session can subscribe to
an arbitrary number of items (each item comprises a set of
fields that get updated in real-time, e.g. a stock quote). For
each item, the maximum update frequency of its set of fields
is 3 updates per second. So 3 updates per second is not the
maximum update frequency of a whole page, but just of each
individual item contained in the page. More formally, the 3
update-per-second limitation can be expressed like this: two
consecutive updates for a certain item are always delivered at
a minimum distance of 333 milliseconds, where each update can
contain information for an arbitrary number of fields for that
item.
Max Concurrent UsersThe maximum number of concurrent users
(sessions) allowed by the Server. Variable means that it
depends on the
license type. Site Licenses
limit the number of concurrent users based on the user packs
that have been purchased. Per-Server Licenses do not directly
limit the number of concurrent users but the number of server
instances (and indirectly the number of users, based on the
hardware capacity and application load).
Frequency ControlA maximum update frequency can be
allocated for each user/item combination. For example, it is
possible to configure the profile of a certain user so that
they do not receive more than 2 updates per second for a
certain subscribed item (piece of data).
Bandwidth ControlFor each user a maximum bandwidth can be
allocated, dedicated to the streaming channel, For example, if
it is required that a certain user cannot exceed a bandwidth
of 10 kbps, Lightstreamer will filter the data in such a way
as to ensure that the streaming connection for that user
always remains below 10 kbps.
Adaptive
Streaming and Congestion ControlLightstreamer automatically detects
situations of congestion on the Internet, heuristically
slowing down or suspending the dispatch of data until the
connection is again fully serviceable.
Heuristic
Frequency Management for Web ClientsThe Lightstreamer Web Client libraries
(used to develop HTML clients) contain heuristic algorithms
that control the push frequency based on the CPU usage of the
client. If the client is very slow because its CPU is
dedicated to other tasks, the push frequency will be reduced
accordingly.
Pre-FilteringThe pre-filter stage receives the data
from the Data Adapter and lowers its frequency before the
Kernel processes it and dispatches it to the clients at the
final frequency. Filtering the data with two stages (stage 1:
general filtering; stage 2: per-user filtering) greatly
improves the performance.
Multiple
Subscription Modes (MERGE, DISTINCT, COMMAND, RAW)Depending on the nature of the data and
the type of application and client, different subscription
modes can be chosen to select the most appropriate filtering
algorithms. For more details about MERGE, DISTINCT, COMMAND
and RAW modes please refer to the White Paper or to
Lightstreamer documentation.
Selector
Mechanism, Event Customization, Backward CommunicationFor each update of each subscribed item
destined to each user, a selector can be applied to decide
whether to send the update or discard it. Through the selector
mechanism, the same item can be subscribed by different users
with different views.
For each update
of each subscribed item destined to each user, a
transformation of the values can be applied through custom
code before delivering the event to the client.
Clients can directly send messages to the
Lightstreamer Metadata Adapter.
Support for
Unicode Data PushUnicode
characters can be pushed from the Server to the Clients.
Server
Installation As a Stand-Alone ProcessLightstreamer Server is a stand-alone
process, which does not rely on web servers or application
servers. This approach was taken in order to have direct
control over the operating system's TCP/IP stack and to
optimize the data transmission.
Flexible
Adapter-Based Server IntegrationBy writing custom Adapters, Lightstreamer
Server can be integrated with any kind of back-end system. A
Data Adapter connects Lightstreamer to some data feed. A
Metadata Adapter connects Lightstreamer to some
authentication/authorization system.
Multiple Data
Adapter SupportEach Lightstreamer
Client session can access an Adapter Set, which comprises one
Metadata Adapter and multiple Data Adapters.
Basic HTML
Monitoring ConsoleAn HTML page
embedded in Lightstreamer Server that displays real-time data
about the Server’s status.
JMX
ManageabilityAny JMX-compliant
management console can communicate with the JMX agent included
in Lightstreamer Server to collect thorough data about the
Server’s status and to manage the Server.
Push Export
of Server StatisticsThe real-time
Server status data available through the HTML Monitoring
Console are available for subscription by any custom clients
too.
SDK for Java
Adapter DevelopmentTo integrate
Lightstreamer Server with the data and metadata sources,
specific Adapters must be written. Data Adapters and Metadata
Adapters are developed by implementing simple Java interfaces
that are provided as part of this SDK.
SDK for .NET
Adapter DevelopmentThe .NET SDK
(based on Adapter Remoting Infrastructure) allow to write Data
and Metadata Adapters using the .NET languages.
SDK for
Adapter Remoting InfrastructureThrough the Adapter Remoting
Infrastructure (ARI), Proxy Adapters are provided that
communicate with custom Remote Servers based on different
technologies, that in turn host the actual Lightstreamer
Adapters. The Remote Servers can be developed by directly
implementing the fully documented ARI network protocol (based
on TCP sockets).
SDK for Web (AJAX)
Client DevelopmentExisting Web
front-ends, including AJAX applications, can become
“Lightstreamer-enabled” by integrating the Lightstreamer Web
Client JavaScript libraries (provided as part of this SDK)
with the existing pages. A very broad browser compatibility is
guaranteed.
SDK for Flash
Client DevelopmentThis SDK
includes an ActionScript/JavaScript Bridge, which enables any
Flash application to receive live data from Lightstreamer
Server through the Lightstreamer Web Client.
SDK for Flex & AIR
Client Development
This SDK
includes a native ActionScript library that enables any Flex
or AIR application to directly talk to Lightstreamer Server.
SDK for Java
SE Client Development
In the case
where the client is not a Web browser but a Java application,
a Java SE Client library is provided as part of this SDK. This
library completely hides the network protocol of Lightstreamer
and offers a higher level of abstraction to the developers
that need to incorporate streaming data in their Java
applications.
SDK for Java
ME Client Development
Two Client
libraries for Java Micro Edition are provided as part of this
SDK to build midlets based on both MIDP 1.0 and MIDP 2.0 This
allows the developers to incorporate streaming data in their
mobile Java applications.
SDK for .NET Client Development
To integrate
Lightstreamer with a .NET client application, a .NET Client
library is provided as part of the SDK. As for the Java
libraries, it implements the Lightstreamer network protocol
and provides simple methods and callbacks to interact with
Lightstreamer Server.
SDK for Silverlight Client Development
To integrate
Lightstreamer with a Silverlight application, a
library is provided as part of the SDK. As for the .NET
library, it implements the Lightstreamer network protocol
and provides simple methods and callbacks to interact with
Lightstreamer Server.
SDK for Generic Client Development
It is
possible to develop Lightstreamer clients written with
languages and technologies other than JavaScript,
ActionScript, Java, and .NET. In this case, it is sufficient
to implement, within the client, a management layer for the
very simple Lightstreamer network protocol, that is fully
documented.
SDK for JMX
Extensions
The API for the MBeans
provided by Lightstreamer Kernel for JMX manageability.
Support &
Maintenance
Support and
Maintenance is available with an annual fee calculated as a
percentage of the List price for the Lightstreamer
Licenses purchased.