I worked in the IBM Rome Software Laboratory on a project for the Intel Corporation.
My goal was to migrate an SNMP server from OS/2 to Windows. The server application was intended to run on thousands of servers gathering information in real time about applications’ performance.
The software was part of the Tivoli Suite.
I had to write part of the SNMP protocol because the OS/2 implementation of it had more functionalities than the Windows one.
In fact, OS/2 allows an SNMP server to act as a server on behalf of other non-SNMP-enabled devices, while under Windows this is not possible.
The system was one with three levels with a main server gathering SNMP information from the second-level servers. These servers were gathering information about performance from computers running some applications.
When writing my code, I added a multi-threaded architecture improving performance in processing packets. Before, the system was losing a lot of packets.
I had to identify a couple of errors in Windows’ SNMP protocol and to find a workaround for them.
One more problem was the completely different architecture of the OS/2 implementation of the SNMP protocol. Under OS/2, the SNMP protocol is managed by an independent process, while, under Windows, it is managed by a DLL providing callback functions.
I rank this experience #1 because it has been very rewarding to build a program intended to run on thousands of servers and requiring a high-quality execution.