Network management

During my time at UCL, I worked on various EEC RACE projects (Research Into Advanced Communications in Europe), managed by Cray Communications, IBM and KTAS, the Danish Telecommunications company.

During the projects, UCL developed an OSI network management research platform called OSIMIS, which was licensed to a number of network management companies. OSIMIS provides a generic object oriented environment implemented in C++ on Unix machines that makes possible the rapid prototyping of CMIS/P agents and management applications (see http://www.cs.ucl.ac.uk/research/osimis for more details).

One of the most enjoyable pieces of software that I have written was a compiler for the OSI GDMO (Guidelines for the Definition of Managed Objects) language which is used to specify Managed Object classes; a GDMO compiler is akin to a CORBA IDL compiler. The compiler's code generation is controlled by an interpreted script language that provides a flexible environment for incorporating hand-written code and generating code for different platforms. For more details see GDMO.

I also developed a generic X-Windows GUI CMIS "browser" that enables network managers to read and change MOs in any CMIS agent; the software has no pre-compiled knowledge of an agent's structure and instead exploits various features of CMIP and ASN.1 to make it generic.

The big problem with OSI network management is that CMIP is big and hard to implement and so is rarely to be found outside a telecommunications environment; the Internet's Simple Network Management Protocol (SNMP) has become the de facto standard for Internet devices. I developed a SNMP toolkit similar to the OSI management system described above. The tool-kit automates the construction of C++ SNMP agents.