Client/Server Compatibility

Any Union Platform client framework whose version number exactly matches Union Server's version number is compatible with that server. For example, the client framework "OrbiterMicro 1.1.0" and the server release "Union Server 1.1.0" share the exact same version number (1.1.0), so they are fully compatible with each other.

A compatible client/server pair for a given Union Platform version can communicate using the entire set of features supported by that platform version.

For best results, always ensure that your application's client framework and Union Server installation have matching version numbers.

Any Union Platform client framework whose version number does not match a given Union Server's version number may or may not be compatible with that server, depending on the version of the UPC protocol in use by the client and the server. If a client's declared UPC version number does not match the server's UPC version number, then the client is either strictly or loosely incompatible with that server. Strictly incompatible clients are forcibly disconnected by the server at connection-request time. Loosely incompatible clients are permitted to stay connected to Union Server, but will not have access to the full set of features supported by that version of Union Platform.

The following server-side connection-log excerpt shows a client-connection attempt that fails due to a strictly incompatible UPC version. The client, OrbiterMicro 2.0.0 Beta 3, attempts to connect to an installation of Union Server 2.0.0 Beta 1. The client's UPC protocol version is 1.10.1, which is strictly incompatible with the server's UPC protocol version, 1.9.4. As a result of the strict incompatibility, the server forcibly disconnects the client. To resolve the connectivity issue in this example situation, the server would have to be upgraded to at least 2.0.0 Beta 3 (the first Union Platform release to support UPC protocol 1.10.1).

2012-07-11 16:18:27,537 DEBUG - Processing from client [1] message [<U>
  <M>C2S_CLIENT_HELLO(u65)</M>
  <L><A>OrbiterMicro</A>
  <A>Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727;
   .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MS-RTC LM 8;
   AskTbORJ/5.13.1.18107; BRI/2; BOIE9;ENGB);2.0.0 (Build 767)</A>
  <A>1.10.1</A>
  </L></U>]

2012-07-11 16:18:27,538 DEBUG - Server sending to client [1] message [<U>
  <M>S2C_SERVER_HELLO(u66)</M><L><A><![CDATA[Union Server 2.0.0 (build 566)]]></A>
  <A>15059982058e667487-a8c8-4360-a7f7-591a29b74205</A>
  <A>1.9.4</A>
  <A>false</A></L></U>]

2012-07-11 16:18:27,538 INFO - Client [1] using incompatible UPC version [1.10.1]. Disconnecting client.

When a loosely incompatible client connects to Union Server, it will dispatch a "PROTOCOL_INCOMPATIBLE" event to the client application, allowing the application to determine whether it can continue to operate correctly without access to all Union Platform features. Features that were added to Union Platform since the older of either the client or server was released will not be available to the application. For example, Reactor 1.0.0 does not have access to features added in Union Server 1.1.0. For a list of features added to Union's UPC protocol for each Union Platform release, please see the UPC Protocol Revision History in the UPC Specification.