Envoy® Updates – Envoy Client Software Development Kit (SDK)

By | January 8, 2016

In this issue we will introduce the latest enhancement to the Envoy® framework – the Envoy® Client Software Development Kit (SDK). The Envoy® Client SDK enables any custom application to quickly leverage the power of the Envoy® Server’s Plugins. A “Plugin” can add communication to backend systems, centralize business logic, provide CTI functionality, manage pooled resources, or enable monitoring of virtually any enterprise resource.

Application Programming Interface (API)
The SDK exposes a standard set of methods to the calling application – regardless of the Envoy® Plugin that is being accessed. The SDK’s Application Programming Interface (API) is based upon XML so it is easy to adapt into any current or new programming effort and consume without worrying about any special data types. By standardizing the API, the user of the SDK does not have to learn new API methods every time functionality on the backend (or in the Plugin) is added or changed. Once an application incorporates the SDK, the “Envoy® enabled” application can access all of the functionality within any existing Envoy® Plugin. And any new Plugin added to the Envoy® Server – at any time – is also immediately available to the application using the SDK without adding any new API function calls.

Versatile Programming Interfaces
The SDK is extremely versatile and flexible as the same code base is available to any programming language by extending three different programming interfaces; a Win32 standard C/C++ API, a component object model (COM) API, and a managed code (.NET) API. The C/C++ interface can be called by virtually any programming language but the convenience of the COM API is also available to support Visual Basic or any other COM-aware languages. If applications are deployed with any of the .NET languages such as VB.NET or C#, the managed code interface can be used.

Connection Management and Optimization
The Envoy® Client SDK can be deployed in any number of environments in a vast array of applications ranging from single agent desktop applications, to an enterprise wide server application such as an Interactive Voice Response (IVR) system, to an application hosted on a web server. In addition to adapting into many application models, the Envoy® Client SDK also provides multiple transaction oriented network connection options. The secret to this “adaptable connectivity” relies on the fact that the SDK has built in socket management and optimization. Multiple physical connections can be opened by any application using the SDK, but a single connection can also be used to support any number of “logical” connections. Consider the use case of a 96 port IVR system – rather than opening 96 physical network connections, the SDK is capable of using one physical network connection – with a set of managed “logical” connections – one logical connection available per IVR port This strategy uses less system resources on both the client side and server side applications.

Push Model Programming
The SDK supports the concept of event notification. This means that any logic running in a Envoy® Plugin can notify the “Envoy® enabled” application of any “events” (changes in monitored state) that the application may be interested in monitoring and / or managing. The SDK has the ability to “callback” to the application using the SDK to “notify” it to “events” received. By delivering the changes happening on the server side in real-time to the application using the SDK, the “push” model can be implemented. The push model is a much more efficient way to design applications as it does not produce extra overhead by “polling” for changes and / or events.

Stay tuned for additional “Envoy® Updates” in the next issue of the VEXIS Voice.

Richard Wolff, Director of Software R&D