CLI API Architecture Overview

 

The AdventNet CLI API is a set of Java libraries for network management developers for managing the Command Line Interface-based devices. It provides a good base to build network management products and solutions for CLI device management. Using AdventNet CLI API , you can quickly build device and/or element and/or network management applications performing functions such as :

The AdventNet CLI API architecture is layered following the best practices of protocol stack development. Picture below depicts the CLI architecture and its components.

The following figure illustrates different modules in the AdventNet CLI API :

 

 

CLI Core Package

 

AdventNet CLI API core package forms the core of the product providing first level of interface to user applications for constructing CLI messages, sending them to the CLI devices and receiving response messages. It provides useful set of methods for callback registration, connection resource pooling, setting up communication mechanism, and protocol options, and others. Also, CLI API allows simultaneous communication with multiple devices through session management. For more information on CLI API package, please refer to CLI Core API available in Developer guide.

 

CLI Transport Provider

 

Network devices use different transport protocols to carry management information back and forth. AdventNet CLI API is designed to be protocol-neutral accommodating transport protocols as plug-ins. This way the core APIs do not perform operations specific to any particular protocol and the higher layer CLI messages can use any transport protocol for communicating with the device. AdventNet CLI API provides Telnet or SSH over TCP/IP and Serial (RS232) as a default protocol implementations.

 

The CLI Transport Provider acts as a bridge between the core API and the transport protocol implementation. Essentially, the CLI Transport Provider provides a framework for communication between the manager application and the devices. The CLI API interact with the Transport Provider unaware of the details of the protocol and use the implementation of the protocol that is registered with the Transport Provider. For more information on communication mechanism, please refer to CLI Transport Provider available in Developer guide.

 

CLI Parser

 

AdventNet CLI Parser is rules driven. Based on the rule sets defined in XML, responses from the network elements are parsed. Rules engine is customizable and extensible. By default, Table , Scalar, and String Search parsing are supported. Rules are simple and easy to understand. For illustrative examples and other details, please refer to CLI Parser available in Developer guide.

 

Script Handling

 

Scripting is emerging as a powerful way to automate tasks that are repeated routinely. Most network administrators use scripts to run routine configuration and data collection tasks. It is important that any Manager application built should be able to reuse this potential feature. AdventNet CLI API offers facility to launch scripts from applications. By default, Python and BeanShell scripts are supported. Scripting framework available in CLI API is extensible and customizable. For detailed information, please refer to Scripting support available in Developer guide.

 

Terminal IO Handling

 

Terminal IO Handler is a standalone utility module of AdventNet CLI API that can handle translation and transformation of terminal Input/Output data. Module is developed as a framework into which your own translation and transformation alogorithms can be plugged-in. Product packages , as a sample implementation, IBM 3101-to-vt100 terminal i/o translation & tranformation for selective terminal codes. This implementation is XML driven and can be customized and extended to suit user's specific needs. For more information, please refer to Terminal IO Handling available in Developer guide.

 

Config API

 

The configuration of network devices is one of the complex tasks in network management. Considering this fact, AdventNet CLI API is providing a comprehensive Config API package, which makes the development of configuration applications hassle-free. Config API is a utility module developed on top of CLI core package, which internally uses the CLI API functions. For more information, please refer to Config API available in Developer guide.

 

RMI API

 

Using Remote Method Invocation ( RMI ), AdventNet CLI API-based applications can be deployed in a distributed environment. CLI API is started as a RMI Server to which user applications acting as RMI clients can connect and carry out CLI requests. For more information, please refer to Distributed API available in Developer Guide.

 

CLI Browser

 

AdventNet CLI Browser is GUI-based Craft Interface that supports command line interface and can be used for managing CLI devices.  It has the capability to load and use Command Set and Data Set having different set of input commands, configuration settings, and others. CLI Browser can be used to launching scripts written in Python and BeanShell and for Terminal Transformation. For detailed information, please refer to CLI Browser available in CLI Tools.

 

Telnet Window

 

AdventNet Telnet Window is a reference application that can be used as a Telnet client to communicate with remote network devices. For detailed information, please refer to Telnet Application available in CLI Tools.