Home | Music |Resume
Octave (Object Centered Test Automation and Verification Environment)
Octave is the most interesting project of my career so far. I designed the Octave database and led the development team that wrote the database interface code.
Octave is a system for managing access to test DMS switches in Nortel labs. We had to provide access for a large number of programmers and ensure that these programmers were not trying to run code on the same switch concurrently with others. In addition to designing the database, I led the development for three major components of the Octave system.
The Resource Manager
The resource manager is a C library which is called to reserve switches for testing. A program calls the library to request a resource. A resource is a piece of hardware somewhere that a programmer needs to use to test some switch code. The program sends the resource manager a list of attributes that are required and the resource manger checks to see if that user has already reserved a resource that matches those attributes. If it doesn't find one already reserved, it searches the database for one. Once a resource is found, the resource manager sends back to the requestor the complete list of all the attributes of the resource selected and marks the resource as being unavailable. Of the attributes sent back, one is the IP address which the program then uses to send its test code. Once the test is complete the program sends a release message to tell the Resource Manager to make that resource available once again.
Oct_forms is the GUI interface to the OCTAVE database. It is used to query or change resource attributes, check which resources are currently in use or reserved, reserve resources for future use, and to query and update the data manager tables.
The Data Manager
The programmers need tables of data which are not resource-specific. They may also need more tables that cannot be anticipated in advance, so they must be able to create table definitions on the fly. To accomplish this, I designed the data manager. The data managed by the data manager resides in the same database as the resource data. It uses three tables: table_definitions, column_definitions, and table_data. I hope to someday expand on this idea and design a full-blown database-on-top-of-a-database.