Home Products Services Company Developer Connection
Applied Informatics

Developer Connection

What’s New in Remoting 2009.2

In a few weeks the 2009.2 release of our libraries and tools will be available. The new release will bring some significant improvements to Remoting. First of all, WSDL generation for SOAP web services has been improved. RemoteGen can now generate Document/Literal wrapped-style WSDL, which works much better with the Microsoft .NET (both Remoting and WCF) code generators. Note that the actual wire format has not changed, only the generated WSDL.
Then, we have support for new types – Poco::URI is now supported, and we have optimized the way std::vector is serialized. This is especially useful for web services, where std::vector can be used to transfer binary data. Therefore, we now serialize that type as base64Binary, which greatly improves the performance. The Binary transport also handles this type in an optimized way, resulting in better performance there as well. Remoting now also supports true out parameters. Since C++ does not provide a way to mark a parameter as out only, this is specified with an attribute. And finally, various bugs have been fixed as well.

Important Remoting Bugfix

We recently fixed a rather unfortunate bug in the Remoting deserialization code causing container type (vector, set, map) return values being deserialized incorrectly. A patch is available for customers. Please login to our download area where you’ll find a fixed TypeDeserializer.h header file. We recommend everyone to apply the patch.

Case Study: Play to Win with High Tech in the Stadium

Read our new case study to learn how the C++ libraries and tools from Applied Informatics helped building an innovative ticketing/admission control unit.

POCO C++ Libraries on Windows Embedded CE

Last week we finished a first port of the POCO C++ Libraries to Windows Embedded CE (5.0 and later). The port is based on the upcoming 1.3.6 release, and is currently maintained in a separate code branch. Eventually (but not for 1.3.6), the CE branch will be integrated into the main branch. Currently, only Foundation, XML, Util and Net are available for Windows CE, but for the other libraries porting should simply be a matter of creating an appropriate project file for Visual Studio. For the port, we used Visual Studio 2008 with the Windows Mobile 6 SDK (which is based on CE 5.0).

If you want to try out the port, send us a quick message and we’ll send you the download link.

New Remoting Transports

Recently we have been working on two new transport implementations for Remoting. The first one is based on Unix Named Pipes and is really great for implementing object-based IPC on Unix/Linux platforms, as Named Pipes have less overhead than localhost sockets.
The other new transport is an extension of the existing Binary transport and allows for bidirectional communication. The main advantage of this transport is that the server can itself send requests to the client over the same socket connection the client uses to talk to the server. This is good for implementing asynchronous notifications from the server to the client – and since the existing client connection is used, this will also work across firewalls.
Both transport implementations will be part of an upcoming POCO Platform release. If you want to try these transports out now, get in touch with us.

POCO Platform 2009.1 Evaluation Packages Available

Evaluation packages for the latest 2009.1 release of the POCO Platform are now available for download. We have versions for Windows (Visual Studio 2005 and 2008), Linux (Ubuntu and RedHat/CentOS) and Mac OS X, with a few more to follow in the coming weeks.

Quick Start Guide

A new Quick Start Guide (PDF) for developers using the POCO Platform is available. This guide contains valuable information for first time POCO Platform users, including an overview of the POCO Platform, a guide to building the POCO Platform libraries and tools from the delivered source code, and tips for working effectively with the software. The document is still preliminary and a work-in-progress, but nevertheless quite useful already.

POCO Platform 2009.1 Available

The 2009.1 release of the POCO Platform has been completed today. This release is based on the POCO C++ Libraries 1.3.5 release and features significant improvements to Remoting and OSP. Among the new features are improved integration of Remoting into OSP, a new OSP Shell service and support for signed bundles in OSP. Last but not least the documentation has been greately improved.

Customers will be able to download the source code for the new release starting tomorrow. Links to our new download site will be emailed out individually to each customer.

A new evaluation version containing the new features will be available next week.

POCO Platform 2009.1 Preview Part 3: OSP Bundle Signing

The new Open Service Platform release in 2009.1 includes a new feature: signed bundles. It is now possible to digitally sign a bundle with an X.509 certificate, using an RSA-SHA1 signature.

Digitally signed bundles offer the following features:

  • A signed bundle allows to confirm the author of the bundle, through the author’s digital (public key) certificate.
  • A signed bundle guarantees that its contents have not been modified since the bundle was signed.

The two main uses for signed bundles in an OSP based applications are:

  • allowing only bundles from certain well-known and trusted sources being loaded into the application, and
  • preventing end users from tampering with the contents of bundles.

It must be stated that a signed bundle is not an encrypted bundle. All files stored in a signed bundle are unencrypted (unless they have been encrypted by application-specific means), and thus readable for everyone.

Signed bundles in OSP are in concept very similar to signed JAR files used by Java. Some implementation details are different, though, and the formats are not compatible.

Support for signed bundles in OSP is implemented in the OSPBundleSign library (namespace Poco::OSP::BundleSign). The signbundle tool is used to sign a bundle, or verify the signature of a bundle.

For more information about this feature, please see the documentation.

Improved POCO Platform Documentation

With the upcoming 2009.1 release of the POCO Platform, we have also started the Documentation Improvement Project with the goal — as the project name implies — to improve and extend the available documentation for the POCO Platform. We have started with the new Remoting documentation. Writing good documentation takes a lot of time, as any developer knows, but over the coming weeks and months we will work on the documentation for other parts of the POCO Platform, as well as for the POCO C++ Libraries as well.

You can check out the new documentation at docs.appinf.com.