Introduction
ORCHESTRA™ Element Manager is a custom SNMP-based network management application for managing EGT’s MPEG A/V encoders in a networked environment. Element Manager is designed to allow operators to monitor and configure the encoders collectively in groups or as a whole rather than singly with each encoder’s configuration web pages.
Architecture
Element Manager is built around the Castle Rock SNMPc product, which provides:
- A multi-user client/server platform.
- Database support for maps and other information that is shared among clients.
- SNMP and MIB support.
- The ability to extend the application through a C language Application Programming Interface.
- Event trapping and logging.
Element Manager is a managed Windows application written in C# under the Microsoft .NET framework. Interop classes were written to encapsulate the SNMPc C language API to facilitate calls from the Element Manager C# code. These interop classes also contained code to check for error conditions that would otherwise cause the SNMPc calls to fail, such as attempting to access unlocked classes or invalid objects.
The SNMPc menu structure was modified to add menus for the new Element Manager functionality. These menu items mostly run Element Manager executables which link with the interop classes.
To hold configuration and other data for the encoders, I devised a sort of file system under the general SNMPc database I called “DBFS.” DBFS is a flat, directory-less file system that may contain an arbitrary number of files of arbitrary length. Each file has a name (up to 31 characters) and a type. DBFS supports the usual file system functions Open, Close, Read, Write, Delete, Rename. A generalized DBFS Common File Dialog class in included which is similar to the Windows Common File Dialog. Most of the commands dealing with DBFS files use this common dialog.
All of the encoder (and other device) properties and types that are available for display or edit are described in XML files. This allows for keeping Element Manager in sync with encoder changes and updates by modifying the XML files and not C# code. In fact, the encoders and other devices themselves are described in XML files to allow for new devices to be supported in Element Manager without having to make code changes. This design was in fact validated after the first deliverable as EGT was able to edit the XML files on their own to produce a Service Pack to support new encoder features.
Development
Created Windows Forms applications to be called from the Castle Rock SNMPc menus, which provided the following functions:
- Background polling of encoders to detect configuration changes and automatically update the DBFS copy.
- Editing and management of encoder configuration data.
- Running parameter queries for multiple selected encoders, and displaying the results in a grid window.
- Managing the map of encoders in the main application.
- Performing multiple simultaneous encoders software upgrades.
The SNMPc on-line help system was enhanced with additional topics for these commands.
Some of the functions used multithreading to provide a smooth and efficient user interface.
Microsoft Visual Studio 2005 was the development platform used. Perforce was used as the project’s source code control system.
Modified the MIB files and the encoder’s embedded Linux software to add SNMP objects for new encoder features.
Technologies
- Visual Studio .NET 2005
- Visual C# .NET
- Windows forms
- SNMP and MIBs
- Castle Rock SNMPc customization and use of the database APIs.
Conclusion
The project included over 44,000 lines of Visual C# .NET code, 5,100 lines of XML, 22 icons, and 11 bitmaps.