Developing Network Modeling Applications: Aria SDK vs iVNT/iCustomise

Posted on: 17th April 2020

Over the last 10 years Aria’s primary offering has been the iVNT (Intelligent Virtual Network Topology) application. This provides a range of off-the-shelf functions for end-users to perform network capacity planning and scenario modelling. iVNT’s features can be customised and extended by end-users via the iCustomise environment and function library.

In 2019, we introduced the Solutions Development Kit (SDK). Version 2.0 was released in early 2020. The SDK enables third party software developers (either in-house teams or systems integrators) to leverage core Aria technologies to accelerate or de-risk solution development – such as using AI to build prediction models, or to route complex services according to multiple constraints.

Both iCustomise and the SDK allow third parties to build new features. Both leverage core Aria technology. But there are some important distinctions between the two that it is useful to be aware of in order to understand which is the most appropriate to use, when.

iCustomise

iVNT defines the context for iCustomise. That is, iCustomise was created as a way to rapidly construct new (typically variations of or combinations of) iVNT features. iCustomise is a JavaScript-based scripting language and set of functions, aimed at enabling an iVNT administrator/DBA-type of skill set.

For example, using iCustomise, an iVNT administrator can write user-facing functions to:

  • Load network data into iVNT from a file
  • Add/remove/change network elements (nodes, links, services)
  • Create reports to perform useful analysis (such as worst-case failure, or maximum hop counts)
  • Present network and service data to a user
  • Highlight paths and navigate the network
  • Create and run optimisation or “what-if” analyses

iCustomise functions are “high level” in the sense that they offer very specific capabilities and hide the underlying complexity of core Aria software.

iCustomise functions also reflect the specific network model built into iVNT.

Finally, the iCustomise scripting environment is built into iVNT. Knowledgeable users can create, test, run and install new iCustomise scripts all from within the iVNT GUI.

Aria SDK

The Aria Solution Development Kit (SDK) is a Python library of software functions that reduce the time and risk of developing sophisticated applications for service fulfilment, network & service assurance, capacity planning and network optimisation.

Unlike iCustomise, the SDK does not include its own development environment. Instead it is a library of lower-level functions that can be incorporated into another piece of software.

The SDK was created without a specific GUI in mind (unlike iCustomise, where iVNT is the GUI). The SDK therefore provides more flexibility for incorporating Aria technology into other solutions – including solutions with little or no UI, such as an SDN controller or Path Computation Engine.

As such, while some concepts are shared with iCustomise (such as the ability to create and manipulate a network model, or to report the effect of a link or node failure on utilisation), the way these are interacted with is at a software application (rather than end-user) level.

The SDK is aimed at in-house software developers or systems integrator teams who have the expertise and supporting infrastructure to develop, test and integrate whole new software applications.

Finally, the SDK reflects an enhanced network model compared to iCustomise/iVNT – designed to support a wider, less narrowly-defined range of third-party application use cases.

Summary

iCustomise and the SDK represent two quite different ways to leverage underlying Aria core technology, for two quite different contexts and types of users. They should be regarded as complementary, rather than competing products.

For iVNT power-users, iCustomise represents an effective and relatively easy-to-use way to extend iVNT functionality. For application developers, the SDK represents a way to tap into powerful, sophisticated capabilities within larger applications.

iVNT/iCustomise

  • JavaScript-based
  • Non-object-oriented design
  • Installed as part of iVNT
  • Runs in JavaScript engine within iVNT
  • Limited access to iVNT GUI
  • Uses iVNT Network Model

Aria SDK 

  • Python3 based
  • Object-oriented design
  • Python packages installed separately
  • Packages can be accessed within any Python script/environment
  • No GUI
  • Uses enhanced Aria SDK Network Model

Further Information

iCustomise and the Aria SDK are licensed separately for use within development/test environments, and for operational use within larger applications.

For further information on the Aria SDK, see here.