Solutions & Accelerators

 

Solutions & Accelerators

HSC has developed several Solutions (ready to run/white-label) & Accelerators (stable software components that can be integrated into customer products) in different domains and verticals that help our customers reduce time to market

To read more about our solutions, please click on the "Solutions" top menu and navigate to the solution you'd like to read more about.

HSC offers the following Accelerators today:

Publish-Subscribe Framework and SDK


The Pub-Sub Framework and SDK is used to share live data among independent network entities or service endpoints in near-Realtime. This accelerator is well-suited for sharing internal state, counters and similar monitoring points among virtual network functions running in context of VMs or containers. Using an optional SDN controlled, OVS or OVS-DPDK based virtual data bus, this solution promises real-time data sharing in a distributed deployment. Inter-VM Data is shared over OVS bridge or DPDK compliant OVS bridge using the OVS-DPDK provided para-virtualized virtio PMD.

The SDK provides a publish-subscribe mechanism to distributed applications or network functions, using which they can expose their internal states or variables to peering entities. This information can then be used for any kind of monitoring or decision making. 

Description

The SDK is based on a library offering APIs for the following:

  1. Publish a desired info from a service endpoint. The subscription scales to any number of subscribers and the publisher does not need to know about the subscribers before hand.
  2. Subscribe for the published info in a service endpoint and get near-realtime updates, whenever the subscribed variable changes in any publishing agent.
  3. Register/deregister/retrieve service endpoints

The SDK provides easy integration of these APIs with any proprietary application code base under test. The “publish” APIs can be used to publish the internal states or variables of an application. The user can also associate context information with the published info. The consumer of the information can be another application which can call “subscribe” APIs. The “subscriber” application can subscribe for a particular state or variable – retrieving information from all instances of the publishing application. It can subscribe for all states/variables published from a specific instance or all instances of the publishing application.

Features 

  • Language binding in Python, C/C++ and Java
  • Multiple types of Publishing - state/variable/tag based, context based
  • Multiple types of subscription – state/variable/tag based, logical Id based, context based
  • Sequence independent publisher-subscribers
  • Leverages OVS-DPDK based networking for real-time data sharing
  • SDN controlled virtual bus for distributed deployment – Pairing publisher subscribers for unicast/multicast data sharing
  • Compatible with multiple VIMs

Desired target environment

The SDK can handle diverse underlying networking mechanism. But it can give tangible benefits in a virtualized environment. Using OpenStack as VIM and VMs/containers to deploy the network functions or s/w components, the SDK provides a robust infrastructure to share data/states among the VMs/containers.

The SDK APIs are integrated in the application code and packaged along with the applications. Thus, the publishing and subscribing of data is triggered automatically from the functional flow of the applications from the VMs/containers running them.

The diagram below shows one deployment scenario where the SDK has been used to share data among applications running in context of OpenStack VIM based network.

Dependencies

Though the SDK itself is modular enough to run over any networking infrastructure, but to attain real-time data sharing in a virtualized environment (as depicted in the figure above), following requirements exist:

  • OpenVswitch
  • DPDK vhost user interfaces
  • High speed DPDK NIC cards

Practical Applications

The aforesaid accelerator solution can be applied in the following use-cases:

  1. Data sharing between instances of stateful MEC applications
  2. Data sharing in chained micro-services based applications
  3. Data relaying (sensor updates, alarms etc.) from sensors in Industrial IoT