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.
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.
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.
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.
- Non-object-oriented design
- Installed as part of iVNT
- Limited access to iVNT GUI
- Uses iVNT Network Model
- 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
iCustomise and the Aria SDK are licensed separately for use within development/test environments, and for operational use within larger applications.