Every line of source code you write instantly becomes obsolete. The march of technology ensures that this is so; each line produced is frozen in time. It's noteworthy that the vast bulk of software in use today was written in COBOL! As the software sector becomes increasingly an established industry (similar to building construction), it's important to try to preserve and enhance the successes of yesterday. Although this has certainly been the case for operating systems, there is room for improvement at the application level. A happy marriage between old and new code helps to reduce the cost of development.
This article discusses the way in which mixed language techniques and software design patterns can help to ease the inevitable migration of source code. Using an example from network management, we see how complex legacy code can be used without modification to save that most precious resource: time. A convenient framework for this discussion is the well-known façade pattern.
Network Management = Making Complexity Simple
At its heart, the field of network management seeks to simplify the construction and operation of the increasingly complex networks we all take for granted. It applies equally to enterprises as well as the largest global telecom service providers. Even as you read these words, you're making use of technology that would seem like magic to someone plucked out of the 1980s! The invisible machinery that facilitates this is a mixture of networking and management technology.
The field of network management is vast, but has as its main projects the reduction of complexity and cost. An analogy may help to illustrate this. Think of two of the major services you use in your home: heating and cooling. These services are handled by expensive, sophisticated machinery. The main inputs you supply are (among others) power, timer settings, and scheduled maintenance. These inputs can be seen as the network management of these essential services and are conceptually similar to those required for managing networks of computer and telecom equipment. In the latter, the manager is tasked with configuring hardware and software, monitoring operation, updating device settings, and so on. Just as successful home maintenance enhances your quality of life, well-managed networks help to serve end users and operators alike!
A key element of managing network devices is what I call the characterization of network device interfaces. Interfaces are device elements that send and receive network trafficthey are said to "face into" the network and provide much of the sophisticated network action that we all take for granted. Later on, we'll look at the facilities that Visual C++ provides for determining the network interfaces on a host machine. These tools provide access to the underlying SNMP service, and this is where we'll see the use of the façade pattern in the code example.