UCL
I was a Senior Research Fellow in the communications and distributed systems research group. I worked on research projects Responsible for writing proposals, co-ordinating projects and liaising with funding organisations and project partners. Developed numerous software prototypes in C++ and latterly in Java. I worked in two main research areas.
Protocol stack management
I developed an end to end bandwidth control system that provided a brute force way of controlling Internet congestion.
The Internet has a connection less network architecture; this means that it is very robust in that if one router goes down, packets will be routed to another router and communications will not be disrupted. The drawback is that there is no end to end resource reservation. There are techniques within routers to control traffic flows but there is no mechanism for stopping traffic entering the system.
The TCP-IP protocol has built in adaptive congestion control algorithms (slow start) but there is no brute force way of stopping traffic flows emanating from hosts. The purpose of the end to end bandwidth control system was to allow network managers to suppress and control traffic flows at source.
At the lowest layers of the system, monitoring and control hooks were inserted into the TCP-IP protocol stack; a management socket gathered statistics and allowed rate controls to applied to any socket.
At the higher layers of the system, a network management system was developed in Java using a CORBA distributed system (Iona Technologies? OrbixWeb), and multicast sockets; Java?s JDBC classes were used to build an interface with a SQL relational database that stored monitoring information; a GUI was written in Java Swing.
Network management
I worked on various EEC RACE projects (Research Into Advanced Communications in Europe), managed by Cray Communications, IBM and KTAS, the Danish Telecommunications company.
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).
I wrote 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 the attached technical specification below.
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.
Developed an experimental SNMP toolkit similar to the OSI management system described above. The tool-kit automates the construction of C++ SNMP agents.