SDK for Generic Adapters CHANGELOG
1.9.0
Compatible with Adapter Remoting Infrastructure since Server version 7.3.
May not be compatible with Remote Servers based on the previous version; see compatibility notes below.
Compatible with Remote Servers sticking to the previous version.
Released on 19 Sep 2022

Introduced a new encoding for strings, which minimizes the need to percent-encode characters. However, the old encoding is still used and the message type now determines the required encoding (this differentiation is needed to let the Proxy Adapter keep the support for old versions of the protocol). In fact, the two encodings are also referred to as "Smart Encoding" and "Backward Compatibility Encoding". See the protocol specifications for details. COMPATIBILITY NOTE: Existing Remote Adapters in order to be upgraded to version 1.9.0, have to be modified to use the new encoding where required. To support the new encoding, all streams are now expected to carry UTF-8 characters. This is not incompatible with old versions of the protocol, in which the streams are requested to only contain ASCII characters. COMPATIBILITY NOTE: Existing Remote Adapters based on version 1.8.3, in order to be upgraded to version 1.9.0, should ensure that the streams used for reading support UTF-8 characters; on the other hand, they don't need to use UTF-8 streams for writing, provided that they keep percent-encoding any non-ASCII character, which is still allowed by the protocol.

Introduced the DFD message on the notification channel of the Remote Data Adapter. This message, together wuth the new F data type, allows a Data Adapter to specify which algorithms, and in which order, the Server should try, in order to compute the difference between a value and the previous one in order to send the client this difference, for "delta delivery" purpose.
Currently, the following options are available:

  • JSON Patch, which the Server can use when the involved values are valid JSON representations.
  • Google's "diff-match-patch" algorithm (the result is then serialized to the custom "TLCP-diff" format).
See the ARI protocol documentation for details.

Introduced "backward" requests that can be issued by Remote Metadata Adapters. These requests are sent on the existing replies channel and may require responses, to be received on the existing request channel. The following backward requests are now available:

  • FST (force session termination)
  • FUS (force unsubscription)
  • FAL (failure)
See the protocol documentation for details.
COMPATIBILITY NOTE: Existing Remote Adapters based on version 1.8.3, in order to be upgraded to version 1.9.0, are not affected by the extension, as long as they don't leverage the new methods.

Extended the syntax of NNS (notify new session) to support the supply of a time-to-live information in the response. However, the new response format is optional and the previous empty response is still supported.

Extended the syntax of NNT (notify new tables) to support the specifications, in the response, of flags that enable further capabilities (see the protocol documentation for details). However, the new response format is optional and the previous empty response is still supported.
COMPATIBILITY NOTE: Existing Remote Adapters based on version 1.8.3, in order to be upgraded to version 1.9.0, are not affected by the extension, unless they want to take advantage of the new capabilities.

Extended the syntax of NNT (notify new tables), NTC (notify tables close), and MSA (notify MPN subscription activation) with more information on the involved tables (i.e. subscriptions). Note that, in particular, a "data adapter name" information is now inserted between group name and schema name. COMPATIBILITY NOTE: Existing Remote Adapters based on version 1.8.3, in order to be upgraded to version 1.9.0, have to be extended to accept the new syntax (unless they never enable the reception of table notifications and never accept device access for the MPN service).
Furtherly extended the syntax of NTC (notify tables close) with final statistics about the traffic related with the life of the subscripion. COMPATIBILITY NOTE: This new information, in some cases, may increase the size of the notification significantly; however, in NNT (notify new tables) this additional information can be disabled and it is disabled by default.
To support the latter extension, the new data type L (long) has been introduced. COMPATIBILITY NOTE: Existing Remote Adapters based on version 1.8.3, in order to be upgraded to version 1.9.0, don't have to support the new type, unless they enable the reception of statistics in NTC (notify tables close).

Removed the possibility to use the Y (byte array) type in values of the UD3 messages. Type Y itself has been removed from the protocol specifications, as no longer needed. COMPATIBILITY NOTE: Existing Remote Adapters based on version 1.8.3, in order to be upgraded to version 1.9.0, should be checked if they use type Y at all; if they do, since byte arrays are defined as base64 representations of iso-latin strings, those original strings should be rescued and then just encoded to the S (string) type.

Introduced the exception subtype ER (resuorce unavailable) that can be used in response to NUS (notify user) and its extended version NUA.

1.8.3
Compatible with Adapter Remoting Infrastructure since Server version 7.2.
May not be compatible with Remote Servers based on the previous version; see compatibility notes below.
Compatible with Remote Servers sticking to the previous version.
Released on 15 Jul 2021

Introduced a CLOSE message, that the Proxy Adapter can issue on a request channel when it is about to interrupt the connection. The message can be issued only after the successful determination of the protocol version, hence after the response to MPI or DPI.COMPATIBILITY NOTE: Existing Remote Adapters implementing protocol version 1.8.2 cannot be upgraded to declare version 1.8.3, unless they, at least, silently ignore any CLOSE message received. Anyway, they are guaranteed to be supported by any Proxy Adapter which supports a later version. Moreover, introduced a "enableClosePacket" parameter on the initial RAC message, to allow a Remote Adapter to enable the CLOSE message earlier.
COMPATIBILITY NOTE: Even if fully featured 1.8.3 requires Server version 7.2, Remote Adapters based only on protocol version 1.8.3 can also interoperate with Server version 7.1 (which uses protocol version 1.8.2).

Reformulated the compatibility constraint with respect to the Server version, instead of the Adapter Remoting Infrastructure version, also for the past history.

1.8.2 build 104
Compatible with Adapter Remoting Infrastructure since Server version 7.1.
Not compatible with Remote Servers based on the previous version; see compatibility notes below.
Compatible with Remote Servers sticking to the previous version.
Released on 24 Jan 2020

Modified the syntax of the response to MPI and DPI messages, to support initialization parameters provided by the Remote Adapter to the Proxy Adapter. COMPATIBILITY NOTE: Existing Remote Adapters based on protocol version 1.8.0 are not compliant with the new syntax. Anyway, they are guaranteed to be supported by any Proxy Adapter which supports a later version.

Introduced an optional message, RAC, to be sent on all channels by a Remote Adapter, to enable Remote Adapter authentication, when configured on the Proxy Adapter. See the ARI Protocol specifications for details on syntax and supported parameters. COMPATIBILITY NOTE: Existing Remote Adapters based on protocol version 1.8.0 are still compliant with this syntax change. However, if Remote Adapter authentication is configured on the Proxy Adapter, they will not be able to connect.

Added the ARI.version initialization parameter in all messages of type MPI and DPI, to report Proxy Adapter protocol information. Now the Remote Adapter must also specify its own protocol version in a ARI.version parameter in the newly introduced response messages to MPI and DPI. COMPATIBILITY NOTE: Existing Remote Adapters based on protocol version 1.8.0, still supported, will receive the additional ARI.version parameter upon MPI and DPI messages; this is not supposed to hurt the Adapter.

Added the optional keepalive_hint.millis initialization parameter in messages of type MPI and DPI, to indicate the suggested time for keepalive messages. COMPATIBILITY NOTE: Existing Remote Adapters based on protocol version 1.8.0, still supported, may receive the additional keepalive_hint.millis parameter upon MPI and DPI messages; this is not supposed to hurt the Adapter.

Improved the protocol specifications with regard to the keepalive messages.
Improved the protocol specifications with regard to line termination, where it could have been misleading.

1.8.0 build 84
Compatible with Adapter Remoting Infrastructure since Server version 7.0.
Compatible with Remote Servers based on the previous version.
Compatible with Remote Servers sticking to the previous version.
Released on 28 Feb 2018

Added clarifications on licensing matters in the documentation.

1.8.0 build 77
Compatible with Adapter Remoting Infrastructure since Server version 7.0.
Not compatible with Remote Servers based on the previous version; see compatibility notes below.
May not be compatible with Remote Servers sticking to the previous version; see compatibility notes below.
Released on 20 Dec 2017

Modified the protocol for the Remote Metadata Adapters in the part related to Mobile Push Notifications, after the full revision of Lightstreamer Server's MPN Module. In particular:

  • Modified the parameters of the "Notify MPN Device Access" (MDA) and "Notify MPN Device Token Change" (MDC) methods to add the session ID.
  • Wholly revised the syntax of the "Notify MPN Subscription Activation" (MSA) method; see the protocol documentation for details.
  • Revised the "Mobile Platform Type" data type, by removing all the values other than 'A' and 'G'; note that the removed values were just predisposed for future support.
COMPATIBILITY NOTE: Only if the MPN Module is enabled, existing Remote Metadata Adapters should be updated to support the new syntax.

Revised the documentation to comply with the configuration change introduced in ARI 1.8 about <sequentialize_table_notifications>.

Added missing notes on the constraints on error codes in Credits and Conflicting Session exception types.

Clarified in the documentation which race conditions between Notify Session Close and other methods can be expected.

Added notes in the documentation on the implication of the licensing policies.

1.7 build 68
Compatible with Adapter Remoting Infrastructure since Server version 6.0.
Compatible with Remote Servers based on the previous version.
Compatible with Remote Servers sticking to the previous version.
Released on 13 Feb 2015

Fixed syntax errors in the examples of the MPI and DPI commands. The syntax specifications were unaffected.

1.7 build 66
Compatible with Adapter Remoting Infrastructure since Server version 6.0.
Not compatible with Remote Servers based on the previous version; see compatibility notes below.
Compatible with Remote Servers sticking to the previous version.
Released on 21 Jan 2015

Introduced as a separate SDK to address the ARI Protocol, made available to custom Remote Servers for implementing the Adapter interface via TCP. For the history of the previous versions of the protocol, refer to the "Adapter Remoting Infrastructure" component, up to version 1.4.3 (corresponding to Server 5.1).

Extended the protocol to introduce the possibility to provide Remote Servers with initialization parameters directly from the Proxy Adapter configuration. Hence, new "DPI" and "MPI" methods, for Data and Metadata Adapters respectively, have been added; they will be invoked on the request channel immediately after the connection and passed the new parameters (to be supplied as explained in the Adapter Remoting Infrastructure documentation). See the protocol documentation for details. COMPATIBILITY NOTE: Existing Remote Servers have to be extended in order to accept and answer the new request, otherwise the connection will fail. However, the previous behavior can be enforced on the Proxy Adapter by disabling the new request through the new "init_remote" configuration parameter of the Proxy Adapter.

Extended the protocol with requests related with the new Push Notification Service (aka MPN Module). When enabled, the new requests will be issued in order to validate client requests related with the service. See the Protocol documentation for details. COMPATIBILITY NOTE: existing Remote Servers don't need to be extended as long as the MPN Module is not enabled.

Introduced the "CLS" command on the Data Adapter notification channel for clearing the state of an item in a single step (or, in DISTINCT mode, for notifying compatible clients that the update history should be discarded). Refer to "clearSnapshot" in the Java In-Process Adapter SDK for details.

Clarified the protocol documentation with regard to the thread pools within Lightstreamer Server involved in the invocation of the various methods.