Products & Features

 my-devices.net

my-devices.net is a web and cloud-based platform enabling secure remote access to the built-in web server of intelligent systems such as industrial automation systems, smart home devices, monitoring and control systems for heating, solarthermal or photovoltaic plants, and similar embedded devices. With my-devices.net, any device with a built-in web server can be securely accessed remotely over the internet using any web client running on a PC, server, smartphone or tablet. This even works if the device is behind a NAT router, firewall or proxy server. The device becomes just another host on the internet, protected by the my-devices.net server against unauthorized access, thus enabling the device to become a part of the Internet of Things.

my-devices.net can be used to access a device's web interface via a web browser, as well as for accessing web services provided by a device for integrating it into enterprise IT environments, or for controlling it via a smartphone or tablet app.

my-devices.net

my-devices.net can be hosted on a cloud service, or customers can host their own server infrastructure by licensing and operating the server software. Based on the Open Service Platform, the software is fully customizable and extensible, enabling building customer-specific device management solutions on top of it.

Please visit the my-devices.net website for more information.

 Open Service Platform

The Open Service Platform (OSP) enables the creation, deployment and management of dynamically extensible, modular applications, based on a powerful plug-in and services model. Applications built with OSP can be extended, upgraded and managed even when deployed in the field.

OSP Overview

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. 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.

Highlights

  • create dynamically extensible C++ applications based on a powerful plug-in/component and services architecture
  • combine executable code (shared libraries), configuration files and other resources like web pages or images in easily manageable deployment units (bundles)
  • install, start, stop, upgrade and uninstall an application's bundles dynamically, at run-time
  • automatically manage version dependencies between bundles
  • provide and find services in an application through a Service Registry
  • manage an application's bundles through a built-in web-based Bundle Administration Utility or through an extensible console based shell administration service
  • various standard services providing a web server, user authentication and authorization, preferences management, extension points, database access, etc.
  • support for cryptographically signed bundles to control what bundles may be installed into an application
  • download a free starter kit or view the online documentation to learn more

Buy Now or Contact Us

 Remoting

Applied Informatics Remoting is a distributed objects and web services framework for C++. With Remoting, building distributed applications, implementing high-level object-based inter-process communication (IPC)/remote method invocation (RMI) or web services based on the Simple Object Access Protocol (SOAP) and the Web Service Definition Language (WSDL) becomes a breeze. Making C++ objects available remotely over the network or turning them into a web service is as easy as adding a few annotations to a header file. The Remoting code generator does the rest. There is no need to maintain a separate interface definition, using an awkward interface definition language.

Remoting also includes a code generator for creating C++ code from WSDL 1.1 (document/literal wrapped) and XML Schema 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 Example

Highlights

  • make almost any C++ object accessible remotely or available as a web service — the easiest way to create web services in C++
  • quickly implement object-based inter-process communication (IPC) between cooperating processes
  • different communication protocols (e.g. a fast and efficient TCP-based binary protocol or SOAP) are supported — even simultaneously
  • no separate interface definition required, no interface definition language to learn
  • all C++ types, 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
  • remote events allow servers to send notifications to clients
  • supports WSDL 1.1 generation, so web services implemented with Remoting are callable from Java and .NET based applications
  • supports WSDL 1.1 and XML Schema parsing and C++ code generation to access SOAP 1.1 and 1.2 web services built with other technologies (such as Java or Microsoft .NET/WCF)
  • supports SOAP 1.1 and 1.2, including MTOM, HTTPS, HTTP compression (gzip content encoding) and HTTP Basic and Digest authentication
  • supports JSON-RPC 2.0, enabling browser-based JavaScript applications to easily invoke server-based C++ methods
  • download a free starter kit or view the online documentation to learn more

Buy Now or Contact Us

 Universal Plug and Play

A modular and extensible C++ framework for implementing UPnP™ capable devices and applications. Based on the POCO C++ Libraries and the Applied Informatics Remoting framework, the Applied Informatics Universal Plug and Play framework is a powerful foundation for building consumer electronics, home automation, or industrial devices that must be integrated into a UPnP network.

UPnP Overview

Highlights

  • an implementation of the Simple Service Discovery Protocol (SSDP) for automatic device and service discovery
  • an implementation of UPnP SOAP for device control and the General Event Notification Architecture (GENA), based on the Remoting framework
  • helper classes for implementing evented state variables
  • automatic service code generation from UPnP XML service descriptions
  • modular and extensible implementation (e.g., it's possible to use the SSDP protocol for device/service discovery alone without incurring the overhead of the SOAP and GENA libraries)
  • efficient design — a single web server instance can provide UPnP services, media streaming and the web-based user interface for device configuration, control and monitoring
  • sample code and example applications for Media Server, Lighting Controls (device and control point) and Internet Gateway (control point)
  • download a free starter kit or view the online documentation to learn more

Buy Now or Contact Us

 DNS-SD/Zeroconf

DNS Service Discovery based on Zeroconf (Zero configuration networking) technology enables the automatic discovery of network devices and services in a TCP/IP network. Zeroconf is a mature technology, already supported by most network-capable printers and cameras, media servers, as well as many applications.

Applied Informatics provides an implementation of Zeroconf either based on Apple's Open Source implementation of Zeroconf known as Bonjour®, or Avahi, another Open Source implementation popular on Linux.

Highlights

  • an easy to use unified POCO-style API to Apple's Bonjour and Avahi
  • quickly integrate Zeroconf functionality into existing C++ applications
  • works with both Apple's Bonjour®, as well as with Avahi on Linux
  • download a free starter kit or view the online documentation to learn more

Buy Now or Contact Us

 Fast Infoset

Fast Infoset, an international standard (ITU-T Rec. X.891 and ISO/IEC 24824-1), is a binary representation of the information contained in an XML document. Fast Infoset documents are generally smaller in size and faster to read and write than equivalent XML documents. This is especially important if such documents are to be sent over a network, or processed on resource constrained devices.

Smaller Documents, Faster Parsing

The information contained in any valid XML document can be represented in a Fast Infoset document. While all information is preserved when converting an XML document into a Fast Infoset document, the exact formatting of the XML document (such as the ordering of attributes within an element) is lost. Depending on the content of an XML document, the equivalent Fast Infoset document can be one quarter the size of the original XML document, or even less. Parsing a Fast Infoset document is two to four times faster than parsing an equivalent XML document.

Highlights

  • compress XML documents for transfer or storage
  • based on and integrated with the XML library from the POCO C++ Libraries
  • supports event-based (SAX) and document tree-based (DOM) parsing, as well as creation of Fast Infoset documents
  • verified interoperability with other Fast Infoset implementations, for transferring documents between C++, Java and .NET applications
  • easy to use APIs and tools for converting an XML document into a Fast Infoset document and vice versa
  • support for Fast Infoset encoding algorithms (hex, dword/base64, short, int, long, bool, float, double, CDATA and UUID) and restricted alphabets
  • download a free starter kit or view the online documentation to learn more

Buy Now or Contact Us

 Smart Device Bundle

The Smart Device Bundle, consisting of the Open Service Platform, Universal Plug and Play (UPnP) and DNS-SD/Zeroconf frameworks, together with the POCO C++ Libraries and an operating system like Embedded Linux or Windows Embedded Compact, makes a great platform for network-connected smart devices or intelligent systems targeting home automation, consumer electronics, infotainment and related applications.

Highlights

  • Includes the Open Service Platform, an embeddable application server framework that enables the development of modular applications that can be extended, upgraded and managed even when deployed in the field.
  • Includes the Applied Informatics Universal Plug and Play framework, allowing the device to participate in a UPnP network by making it discoverable by other UPnP devices (including PCs running Windows or Linux), as well as by both providing UPnP services and accessing UPnP services provided by other devices in the network.
  • Includes the DNS-SD/Zeroconf framework enabling automatic discovery of network devices and services in a TCP/IP network, using Apple's Bonjour or Avahi.

Buy Now or Contact Us

 POCO C++ Libraries

The POCO C++ Libraries, the foundation for all of Applied Informatics' products, are a collection of Open Source C++ class libraries that make it easy to develop network-centric, cross-platform applications in C++. The libraries integrate perfectly with the C++ Standard Library and fill many of the functional gaps left open by it. Their modular and efficient design and implementation makes the POCO C++ Libraries well suited for embedded and mobile in addition to desktop and server development.

Highlights

  • threads, thread synchronization and advanced abstractions for multithreaded programming
  • streams and filesystem access
  • shared libraries and class loading
  • powerful logging and error reporting
  • security and encryption
  • network programming (TCP/IP sockets, HTTP, WebSockets, FTP, SMTP, POP3, SSL/TLS, etc.)
  • XML parsing (SAX2 and DOM) and generation
  • configuration file and options handling
  • SQL database access (ODBC, MySQL, SQLite)
  • ZIP file handling

Open Source

The POCO C++ Libraries are developed in an Open Source project, founded and sponsored by Applied Informatics. Developers from all over the world contribute to the project. For more information, please visit the POCO C++ Libraries Project Website.

Products

Customer Success Stories

We have successfully developed and deployed an Onboard Passenger Information System for 150 passenger buses in Northern France. Our choice of OSP framework for the embedded solution on ARM based platform was a very apt choice. OSP along with Poco provided us the desired flexibility we needed in our solution. We could develop our application with almost no support from Applied Informatics team. Thanks to the easiness, robustness, versatility, comprehensiveness and high quality of the OSP + Poco libraries. With OSP we could reduce our project turnaround time by 50 %. Thanks to the Applied Informatics team. I highly recommend the solution for rapid application development primarily for embedded solutions.

Suvajit Sengupta, Lumiplan

When we started working on our fractal architecture concept for O3S, the Open System Simulation Solution, we were looking primarily for a powerful C++ framework that would allow us to develop any needed service in a scalable modular multi-platform environment. With homogenous, robust and easy to understand code, Poco, OSP and Remoting were, in fact, the only single answer to our search.

Victor Andritoiu, OpenTekhnia (O3S)

Supported Platforms

  • Windows 2000/XP/Vista/7 (and server variants)
  • Mac OS X 10.4 and newer
  • Linux (various distributions)
  • FreeBSD (6.0 and later)
  • HP-UX
  • Solaris
  • Embedded Linux (glibc, eglibc or uClibc on ARM9, PowerPC, x86, etc.)
  • iOS
  • Android (NDK)
  • Windows Embedded CE (5.0 and later)
  • QNX
  • VxWorks*

* Please contact us regarding VxWorks support.

Supported Compilers

  • Microsoft Visual C++ (2003.NET, 2005, 2008, 2010, 2012)
  • GCC 3.3, 3.4, 4.x on various platforms
  • Clang 3.1/4.1
  • Sun Studio 12
  • Intel C++
  • HP ANSI C++
  • Diab C++

Licensing

The libraries and tools are licensed under the Applied Informatics Source Code License Agreement (PDF). Under this license, you get the complete source code for the libraries and tools. You are free to use the source code in as many projects and on as many platforms as you like, but you are not allowed to re-distribute the source code to third parties.

Benefits

  • You get the complete source code, project files and documentation.
  • Modify the sources as you like.
  • 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 Applied Informatics C++ libraries and tools.
  • No additional runtime fees or royalties.
  • If you need to redistribute the library header files or sources, we offer a separate redistribution license agreement, as well as source code buyouts. Please contact us for details.