Adapter Remoting Infrastructure CHANGELOG
1.9.8 build 118
Compatible with Lightstreamer Server since 7.1.
Compatible with configuration files for the previous version.
Compatible with Remote Servers based on the previous version.
Released on 25 Sep 2020
Moved the "adapter_remoting_infrastructure" folder, which includes the provided
resources, from inside the old "DOCS-SDKs" to the main "Lightstreamer" folder.
Also renamed the subfolders used to contain the templates of adapters.xml for the
configuration of remote Adapters.
This local changelog has also been separated from the Server changelog and placed
in the "adapter_remoting_infrastructure" folder.
1.9.7 build 116
Compatible with Lightstreamer Server since 7.1.
Compatible with configuration files for the previous version.
Compatible with Remote Servers based on the previous version.
Released on 27 May 2020
Fixed a NPE that could occur in the Robust Metadata Adapter Proxy
when failing to connect due to unexpected interruption of the underlying
server socket. As a consequence, the Proxy would give up retrying.
Improved the handling of changes in the keystore, when configured to enforce
TLS encryption on the connections with the Remote counterpart. Changes are now
immediately detected also when the Proxy is currently waiting for connections.
1.9.6 build 113
Compatible with Lightstreamer Server since 7.1.
May not be compatible with configuration files for the previous version;
see the compatibility notes below.
May not be compatible with Remote Servers based on the previous version;
see the compatibility notes below.
Released on 24 Jan 2020
Discontinued the support for old Remote Adapters targeted to
Adapter Remoting Infrastructure version up to 1.4.x. The backward compatibility
mode was triggered by setting the "init_remote" parameter to false. Now this
setting will cause the Proxy Adapter startup to fail.
COMPATIBILITY NOTE: Existing installations using
very old Remote Adapter SDKs that require Adapter Remoting Infrastructure version
1.4.3 or earlier cannot be upgraded, until the Remote Adapter SDK is also
upgraded to a more recent version.
Revised the support for custom configuration parameters defined in adapters.xml
and forwarded to the Remote Adapter upon initialization. All parameter names without
a ':' character are now reserved. To enforce this, the prefix specified in the
"remote_params_prefix" parameter must also contain a ':' character, although the
indication of an empty prefix is still supported.
COMPATIBILITY NOTE: If custom parameters are used and they
don't contain a ':', they should be renamed, and the specified "remote_params_prefix"
should be changed accordingly. As a consequence, the Remote Adapter should also be modified.
However, by specifying an empty prefix in "remote_params_prefix" the names can be kept,
but name conflicts with new reserved parameters, with unpredictable consequences,
will become possible.
Introduced the support for TLS encrypted connections from the Remote Adapters.
This is enabled by the new "tls" parameter, available independently for each
Remote Adapter in the corresponding <metadata_provider> or <data_provider>
block in adapters.xml. Further parameters are available for the configuration
of the certificate and the handshake preferences; see the sample adapters.xml files
for details.
Introduced the support for authentication of the Remote Adapters based on user/password
credentials. This is enabled by the new "auth" parameter, available independently for each
Remote Adapter in the corresponding <metadata_provider> or <data_provider>
block in adapters.xml. Further parameters are available for the configuration
of the credentials; see the sample adapters.xml files for details.
Allowed the <install_dir> configuration element for all Proxy Adapters,
to better support the new configuration options. Previously it was refused with
an error when <classloader> was set to "log-enabled".
Revised the initialization phase, in which the connections from the Remote Adapters
are expected. Now multiple connections may be accepted and evaluated concurrently
on the same listening port, although only one per port will eventually be elected
and the others will be closed. If authentication is configured, a connection will be
elected only after successful authentication. However, after electing a connection,
the listening port will be closed, as before.
Modified the meaning of the "connection_recovery_timeout_millis" setting for Robust
Proxy Adapters accordingly.
Note that the log of the initialization phase may be quite different than before.
Enabled the support for multiple protocol versions, to allow for backward compatibility
with the Remote Servers upon future extensions. To achieve this, a proper
initialization parameter is sent to the remote counterpart.
COMPATIBILITY NOTE: Existing Remote Servers
based on previous Remote Adapter SDKs are still supported. They will just forward
the additional "ARI.version" parameter to the Remote Adapter upon initialization,
which is not supposed to hurt the Adapter (BTW, in the unlikely case
that the same parameter were supplied to a Remote Adapter by the Remote Application,
as possible with some SDKs, the supplied value would be preserved
and no changes at all would occur).
Introduced the indication to the remote counterpart of the suggested time for
keepalive messages (when needed), through a proper initialization parameter.
Recent Remote Adapter SDKs can obey the suggestion instead of using a custom time.
COMPATIBILITY NOTE: Existing Remote Servers
based on previous Remote Adapter SDKs will (if received) forward the additional
"keepalive_hint.millis" parameter to the Remote Adapter upon initialization,
which is not supposed to hurt the Adapter (BTW, in the unlikely case
that the same parameter were supplied to a Remote Adapter by the Remote Application,
as possible with some SDKs, the supplied value would be preserved
and no changes at all would occur).
Added the "keepalive_hint_millis" parameter in both the <metadata_provider>
and <data_provider> block in adapters.xml, to customize the suggested
keepalive time instead of using a library-determined default.
Added the "notify_user_on_disconnection" parameter for the Robust Proxy Metadata Adapter
and, when set, enforced the consistency with "notify_user_disconnection_code".
Added, in particular, the possibility to have Lightstreamer Server instruct the Client
to retry when the Remote Metadata Adapter is disconnected.
Extended the client context provided to the remote counterpart upon the
notifyNewSession invocations, by adding the CLIENT_TYPE and
CLIENT_VERSION keys, with information on the Client SDK in use.
Fixed the implementation of the activity (or keepalive) check, which could
have been heavy in case of very frequent request or update rates. This only
affected the cases in which the "keepalive_timeout_millis" setting was leveraged.
Improved logging of the connection phase, with information on the remote side,
which was missing.
Improved activity and error logging.
Changed the suggested settings for some of the dedicated thread pools
in the adapters.xml templates, and revised the count of queued tasks,
according to ARI specificities.
Fixed the documentation of <authentication_pool> and <messages_pool>
to account for changes introduced in ARI version 1.8.0.
1.8.1 build 84
Compatible with Lightstreamer Server since 7.0.
Compatible with configuration files for the previous version.
Compatible with Remote Servers based on the previous version.
Released on 28 Feb 2018
Added a new configuration parameter, "keepalive_timeout_millis", for both Proxy
Metadata and Data Adapters. The new configuration allows to set a timeout for received
data and keepalives from the Remote Adapters to detect unresponsive connections
(that will be handled differently by the "robust" and "non robust" versions.
See the sample adapters.xml files for details.
Aligned the protocol documentation to comply with current licensing policies.
1.8.0 build 77
Compatible with Lightstreamer Server since 7.0 b2.
May not be compatible with configuration files for the previous version;
see the compatibility notes below.
May not be compatible with Remote Servers based on the previous version;
see the compatibility notes below.
Released on 20 Dec 2017
Modified the communication protocol for the Remote Metadata Adapters
in the part related to the MPN Module, after its full revision.
COMPATIBILITY NOTE: Only if the MPN Module
is enabled, existing Remote Metadata Adapters based on the current SDKs
have to be ported to the new versions of the SDKs.
Changed the default of the <sequentialize_table_notifications> flag
available in adapters.xml from Y to N, to better cope with cases in which
many subscriptions are performed at once.
COMPATIBILITY NOTE: If any existing Remote Metadata Adapter relies on the invocations
of notifyNewTables and notifyTablesClose for the same session to never overlap,
ensure that the flag is explicitly configured as Y for this Adapter.
Improved some error messages.
Changed the preconfigured settings for the dedicated thread pools in the
adapters.xml templates, to leverage the new defaults for the SERVER pool.
1.7.2 build 73
Compatible with Lightstreamer Server since 6.0.
Compatible with configuration files for the previous version.
Compatible with Remote Servers based on the previous version.
Released on 23 Jan 2017
Introduced a "first_connection_timeout_millis" configuration parameter for
the Robust Proxy Data Adapter, similarly to what is available for the
Robust Metadata case (but with a 0 default, which is consistent with the
previous behavior).
Introduced a new strategy for the "events_recovery" configuration parameter
of the Robust Proxy Data Adapter. See "enforce_snapshot" in the sample
configuration file under "adapter_robust_conf_template".
Extended the configuration templates to advertise the variable-expansion
feature introduced in Server version 6.1.
1.7 build 70
Compatible with Lightstreamer Server since 6.0.
Compatible with configuration files for the previous version.
Compatible with Remote Servers based on the previous version.
Released on 10 May 2016
Improved a log message, which was unclear, related with Remote Adapter unavailability.
1.7 build 67
Compatible with Lightstreamer Server since 6.0.
Not compatible with configuration files for the previous version;
see the compatibility notes below.
May not be compatible with Remote Servers based on the previous version;
see the compatibility notes below.
Released on 21 Jan 2015
Embedded the Proxy Adapter binaries related with the current version of the
Adapter Remoting Infrastructure. Previously, the ls-proxy-adapters.jar file
supplied by the ARI SDK had to be added to the Adapter Set libraries.
As a consequence, the ls-proxy-adapters.jar binaries are no longer provided
directly. As a further consequence, the compatibility constraint of the
Adapter Remoting Infrastructure is now stated directly with respect to
Lightstreamer Server. COMPATIBILITY NOTE: Existing Adapter Set
deployments based on the old Proxy Adapters supplied in ls-proxy-adapters.jar
are supported seamlessly.
Introduced the "PROXY_FOR_REMOTE_ADAPTER" and "ROBUST_PROXY_FOR_REMOTE_ADAPTER"
reserved names to be used in place of the class names for the inclusion of
the new embededd Proxy Adapters in adapters.xml.
COMPATIBILITY NOTE: The new reserved names are not
expected to conflict with custom class names in an existing adapters.xml.
COMPATIBILITY NOTE: In order to port an existing
Adapter Set configured for Remote Adapters to the new Proxy Adapters, the adapters.xml
configuration file has to be changed to comply with the new naming (and
ls-proxy-adapters.jar can be discarded).
Introduced an explicit initialization request sent by the Proxy Adapters
to the Remote Adapters upon connection. This now allows for:
- Defining parameters for the Remote Adapter directly in the configuration
block of the Proxy Adapter.
- Having the Proxy Adapter send its own identification information to the
Remote Adapter. With a "Robust" version of a Proxy Adapter, this also means
notifying the Remote Adapter of the instance identity of the Proxy Adapter
(hence Lightstreamer Server), so that if a previous detached instance of Remote Adapter
has persisted any context information, this information can be identified
and retrieved by the new instance.
- Having the Remote Adapter inform the Proxy Adapter in case of any
initialization issue, instead of just having the Remote Server refrain from
connecting.
See "remote_params_prefix" in the sample "adapters.xml" files for details
on how the initialization parameters can be specified.
COMPATIBILITY NOTE: Existing Remote Servers based
on the .NET and Generic Adapter SDKs have to be upgraded to the new SDK version.
However, backward compatibility can be restored by disabling the new request
through the new "init_remote" configuration parameter.
Discontinued the support for the "Piped" versions of the Proxy Adapters.
Only the "Networked" versions and their "Robust" extensions are now available.
COMPATIBILITY NOTE: Existing installations based
on the "Piped" versions should be ported to the "Networked" versions. But
we don't expect this case to occur for production deployments, as the use
of the "Piped" versions was not recommended for production.
Removed the "eos_count_limit" and "eos_sleep_time" configuration parameters,
which were only used by the "Piped" versions of the Proxy Adapters.
Introduced the "remote_address_whitelist" parameter, to be used to specify a list of IP
addresses, from where Remote Adapter connections are accepted by a Proxy Adapter.
If missing, connections are still accepted from any host.
Changed the logger names used by the Proxy Adapters for their own logging
and replaced the old logger configuration with the new one in Lightstreamer Server's
factory log configuration file (see the supplied file for details).
COMPATIBILITY NOTE: To keep using an existing
log configuration file, the logger should be manually replaced too.
Obviously, as long as existing Adapter Set deployments based on the old
Proxy Adapters are in use, the old logger should also be kept.
Removed the description of the ARI Protocol (made available to custom
Remote Servers for implementing Lightstreamer Server Adapter interface via TCP) from the scope
of this component. Now, the "Adapter Remoting Infrastructure" component
(no longer an SDK) only covers Lightstreamer-Server-side support (based
on the Proxy Adapters) for all Remote Adapter SDKs.
See the new "SDK for Generic Adapters" for the ARI Protocol topic.
As a consequence of the introduction, in Lightstreamer Server version 6.0,
of separate ClassLoaders for the loading of the external libraries
used by the Server internally, specifed the suggested
settings in the factory Proxy Adapter configuration (through the new <classloader>
setting), to enforce sharing of the slf4j/logback logging libraries with the Server.
This confirms the previous behavior, hence the log configuration of the Proxy Adapters
is still included in the Server log configuration file.
Revised the factory configuration of the optional thread pools in adapters.xml;
with the new suggested configuration, some adapter-related pools are enabled
and will take on some tasks previously falling in the "SERVER" pool.
Revised the default naming of connections (for logging purposes) and related threads,
by leaning on the configured proxy names instead of progressive numbers.
Introduced name suffixes to distinguish subsequent streams that may be
created by the Robust Proxy Metadata Adapter.
Moved the configuration examples (which include parameter descriptions) under "doc".
Provided a new introductory document.
1.4.3 build 58
Compatible with Lightstreamer Server since 5.1.
Compatible with Remote Servers for the previous version.
Released on 20 Dec 2012
Revised and relieved the Notes on Method Sequence for the Notify New Tables
and Notify Tables Close methods, according with the locking policy change
and the new <sequentialize_table_notifications> parameter introduced
in SDK for Java In-Process Adapters version 5.1.
1.4.2 build 57
Compatible with Lightstreamer Server since 5.0.
Compatible with Remote Servers for the previous version.
Released on 3 Aug 2012
Discontinued the compatibility with the previous version of Lightstreamer Server.
1.4.2 build 52
Compatible with Lightstreamer Server since 4.0.
Compatible with Remote Servers for the previous version.
Released on 9 Aug 2012
Revised the low level log of the Proxy Adapters, to allow for suppressing
the log of real-time messages while logging the requests and replies from
the Remote Server; see com.lightstreamer.adapters.remote in the Lightstreamer Server log
configuration file.
Fixed a typo in the com.lightstreamer.adapters.remote logger description.
1.4.2 build 51
Compatible with Lightstreamer Server since 4.0.
Compatible with Remote Servers for the previous version.
Released on 6 Apr 2012
Introduced new configuration properties to let the RobustNetworkedMetadataProvider
return a custom error notification to the Client upon a request for a new session
when the Remote Server is currently unavailable; see "notify_user_disconnection_code"
and "notify_user_disconnection_msg" in "conf\sockets(robust)\adapters.xml".
Introduced new configuration properties to let the RobustNetworkedDataProvider
manage a custom item which carries notifications about the availability of the
Remote Server; see "remote_adapter_status" in "conf\sockets(robust)\adapters.xml".
Added checks on the correct configuration of the Proxy Adapters; in fact, wrongly
setting a notify port on a Proxy Metadata Adapter could lead to wrong behavior.
Improved the extraction of HTTP headers supplied by the "NUS"/"NUA" request.
Added log to detect issues caused by obsolete Remote Servers
1.4.1 build 48
Compatible with Lightstreamer Server since 4.0.
Released on 7 Jun 2011
Introduction of Lightstreamer "Duomo" release (Server 4.0).