Remoting for C++

Web services, REST APIs and microservices have significantly changed the way complex
software systems are designed, built and deployed. POCOPRO Remoting makes
these technologies and concepts available to C++ developers.

Multi-Protocol Stack and Code Generator

Remoting for C++ is a web services and remote method call
framework for C++. Remoting supports different communication
protocols. This includes JSON-based REST APIs, JSON-RPC,
SOAP and a highly efficient binary protocol.
Remote services are implemented as C++ classes, annotated
with special comments.
The Remoting code generator takes care of the rest.
There is no need to maintain a separate interface definition
using an interface definition language (IDL).

SOAP and WSDL/XSD-to-C++ Code Generation

Remoting also includes a tool for generating C++ code
from WSDL 1.1 (document/literal wrapped) and XML Schema (XSD) documents.
This makes it possible to build C++ clients for SOAP 1.1 and 1.2
web services built with Java, Microsoft .NET, or other middleware
technologies.

Remoting Features

Cross-Platform & Interoperability

Easily communicate between different hardware
and operating system platforms.
Or clients and servers built in other programming
languages and environments such as Java or .NET.

Multi Protocol Support

Remoting supports sockets, HTTP, REST, JSON-RPC and SOAP.
Thanks to a flexible and modular design, other protocols
can be added by implementing a new protocol library.

Code Generator

Extensive C++ Type Support

All standard C++ types and some STL collection types (including enumerations,
std::string, std::vector, std::set and std::multiset), as well as user-defined
classes and structures are supported as method arguments and return types.

Microservices

Implement microservices in C++ exposing
REST APIs for best interoperability. Or use
the super efficient binary transport protocol
for communication between C++ applications.

SOAP and WSDL

Generate C++ client and server code for SOAP web services from WSDL documents.
Implement SOAP 1.1/1.2 web services in C++ that can be called from Java
and .NET WCF applications with support for MTOM, HTTPS, HTTP compression
(gzip content encoding) and HTTP Basic and Digest authentication.

Remote Events

Support for events in remote interfaces enables implementation
of server-pushed asynchronous notifications or publish-subscribe
messaging patterns.

REST API Sample

The following code snipped shows an example for how to
define a RESTful API with Remoting. This definition is
specific to the Remoting REST transport. Note how the method names
correspond to HTTP methods. Also note the special comments.
The Remoting code generator (RemoteGen)
parses these definitions and generates C++ code that implements
serialization, deserialization and remote invocation.

Remote Method Sample

The following code snipped shows an example for a
remote methods-based service that can use the efficient
binary Remoting transport over sockets or HTTP, the
JSON-RPC or the SOAP transport. Again, note the special comments.
The Remoting code generator (RemoteGen)
parses these definitions and generates C++ code that implements
serialization, deserialization and remote invocation.

Open Service Platform

Dynamic C++ module system, nanoservices and application server.

Today's applications are becoming ever more complex. A large part of this complexity stems from the need to
support different configurations, e.g. for different devices, operating system environments or
customer needs. Huge monolithic applications like the ones developed in the past do not
(or only at an enormous cost) provide the necessary flexibility required today.

Build, deploy and manage dynamic, modular C++ applications

Open Service Platform (OSP) enables the creation, deployment
and management of dynamically extensible, modular applications,
based on a powerful plug-in and (nano-) services model.
Applications built with OSP can be extended, upgraded and
managed even when deployed in the field.
At the core of OSP lies a powerful software component (plug-in) and
services model based on the concept of bundles. A bundle is a deployable
entity, consisting of both executable code (shared libraries) and the
required configuration, data and resource files.

Plug-in and service-based architecture

Bundles extend the functionality of an application by providing
certain services. A central Service Registry allows bundles to
discover the services provided by other bundles. Bundles can be
installed, upgraded, started, stopped or removed from an application
(programmatically, or using a web- or console based administration utility)
without the need to terminate and restart the application.

Simplify large-scale C++ application development and deployment

This component-based architecture of OSP addresses an increasing problem in software development:
The large number of application configurations that need to be developed and maintained.
The standardized OSP component architecture simplifies this configuration and deployment process
significantly.

Dynamic Deployment & Lifecycle Management

Install, start, stop, upgrade or uninstall an application's bundles
dynamically, at run-time. Without the need to restart the entire
application.

Dependency Management

Automatically manage version dependencies between bundles.
OSP makes sure that all dependencies are satisfied and that
bundles are started or stopped in correct order.

Service Registry

Provide and find services in an application through a central ServiceRegistry.
Dynamically react to availability of services through
events or ServiceListener objects.

Management Console

Manage an application's bundles through a built-in web-based Bundle
Administration Utility or through an extensible console based shell
administration service.

Web Application Server

An integrated web application server enables powerful
dynamic C++ web applications. Routing, sessions, authentication, access
permissions and CSRF protection can be configured using metadata and
are handled by the framework, without the need for extra code.

Signed Bundles

Bundles can be cryptographically signed. Make sure
bundles installed in your system come from a known
publisher and have not been tampered with.

Licensing & Pricing

The POCOPRO C++ Frameworks are available under a commercial source code license.

Prices for source code licenses for POCOPRO C++ Frameworks are dependent
on the number of developers using them. There are no separate runtime fees or royalties.
Our Source Code License Agreement
(PDF) allows the use of the POCOPRO C++ Frameworks
source code to develop software on and for all supported operating system and hardware platforms.

We offer fair and transparent pricing.
Subscriptions start at EUR 148.00 per developer per month and are paid
upfront for 12 months.

How Many Licenses Do I Need?

A license is required for every developer writing code that directly calls the programming
interfaces of our libraries and frameworks, or if the developer is otherwise incorporating
the source code of our software or parts thereof into his code.

How Long is my License Valid?

Development licenses are perpetual. Even if you don't renew, you are still allowed
to develop code with the POCOPRO frameworks. However, you will no longer receive
support or new versions of the software if you don't renew.

Do I Get Support?

When you purchase a subscription you will get
Standard Support,
with a maximum initial
response time of three (3) business days. The total time budget for support requests
is limited to two (2) hours per support term (12 months). Higher levels of support
are available upon request. Please contact us to discuss your support requirements.

SDK Redistribution License

An optional SDK redistribution license allows you to ship library header files and static
libraries to your customers along with your product. Please contact us
for more information.

Use the licensed source code on as many platforms and in as many products or projects you want,
for as long as you want.

Freely distribute software (binaries) and devices built with the POCOPRO C++ Frameworks.

No additional runtime fees or royalties.

Contact Applied Informatics

Please contact us for a quote, to order licenses, or with any questions regarding
products, professional support or trainings.

I have read and understood the
Privacy Policy
and give my consent that my given data will be electronically processed and stored for the purpose of contacting me.

Download Evaluation

Download a free trial version of the POCOPRO C++ Frameworks
to try out the included demo applications or build your own programs.

Getting Started

Please read the Getting Started Guide
before downloading and installing the software.
This document contains valuable information that will help you get the best out of the
POCOPRO C++ Frameworks, including setup instructions and tips to get you started.

The Windows evaluation version is available for Visual Studio 2013, 2015 and 2017. Only 32-bit builds
are supported by the evaluation version. The full version supports both 32-bit and 64-bit builds.
Need an evaluation version for a different platform? Please let us know.

A license file is required for running applications (including the samples) built with the
POCOPRO C++ Frameworks trial version. Receive the license file via email by
filling out the form on the right.

No license file will be required once you purchase a source code license.

Get Your License File

Requests for license files are processed automatically. You should receive the license
file via email within a few minutes after submitting the form. If not, please check your junk mail folder.

I have read and understood the
Privacy Policy
and give my consent that my given data will be electronically processed and stored for the purpose of contacting me.