Open Service Platform

POCO OSP Remoting

Introduction

POCO Remoting is a framework for implementing distributed objects and web services in C++. It is fully integrated into the Open Service Platform. Different bundles provide the Remoting library, as well as the different transport implementations to OSP applications.

Remoting Bundle

The Remoting Bundle contains the Remoting shared library and ensures that the Remoting shared library can be found in the code repository. The bundle does not contain a BundleActivator.

Binary Transport Bundle

The Binary Transport Bundle contains the Remoting binary transport implementation. It also contains a BundleActivator that registers the transport with the Remoting framework. To add binary listeners add a listeners.xml resource file to the bundle that contains listener entries:

<listeners>
    <listener port="10001"/>
    <listener port="8080"/>
</listeners>

The client side of the binary transport (i.e. when creating a connection to a binary server) does not require any configuration.

SOAP Transport Bundle

The SOAP Transport Bundle contains the Remoting SOAP transport implementation. It also contains a BundleActivator that registers the transport with the Remoting framework. Similar to the binary bundle, the listeners.xml file defines which listeners are initially started. A listener can have the following attributes:

The following example registers two SOAP listeners, one using the HTTPServer from the WebServer, the other creating a new HTTPListener:

<listeners>
    <listener ref="osp.web" port="22080" useSoap="true" keepAlive="true"/>
    <listener port="9999" useSoap="true" maxQueue="64" maxThreads="32" keepAlive="true" maxKeepAlive="0"/>
</listeners>

The client side of the SOAP package (i.e. when a connection is created to a SOAP service) is configured via the bundle.properties file:

# Enable/disable SOAP encoding
useSoap=true

# Enable/disable persistent HTTP connections
keepAlive=true