- Bringing the Managed Data to the Code
- Scalability: Today's Network Is Tomorrow's NE
- MIB Note: Scalability
- Light Reading Trials
- Large NEs
- Expensive (and Scarce) Development Skill Sets
- Linked Overviews
- Elements of NMS Development
- Expensive (and Scarce) Operational Skill SetsElements of NMS Development
- MPLS: Second Chunk
- MPLS and Scalability
- Summary
Linked Overviews
An increasingly common problem faced by NMS software developers is implementing network management support for new NE features, such as MPLS. The following four steps provide a linked overview of the management aspects of an NE feature:
-
Acquire a basic understanding of the managed technology—what it does, how it operates, and so on. For MPLS, the basic purpose is to carry traffic across an MPLS core, so connections (LSPs and tunnels) are important. These tunnels can be traffic-engineered and can also support QoS, so path and resource blocks (more on these later in the chapter) are needed.
-
Use the EMS to get an understanding of how the NE provides the feature; for example, for MPLS, the user can separately create objects like paths and resource blocks. Then, these can be combined to create MPLS LSPs or tunnels. User manuals are often very useful during this process.
-
View the relevant MIBs using a MIB browser.
-
Write simple test code (e.g., in Java or C++) to view and modify the MIB objects.
Step 4 essentially automates the actions in steps 2 and 3. The software produced in step 4 can then form the basis of Java classes that can eventually be imported into the finished NMS. The final stage in development is then adding code to the NMS to implement the overall MPLS management feature (i.e., FCAPS). An important observation about the above is that it depicts NMS development as a type of reverse engineering. If network management is provided at the end of NE development, then it has a reverse engineering flavor. If the two occur in parallel, then no real reverse engineering effort is required. We therefore view a linked overview as the resulting knowledge emanating from following the above four steps.
Some vendors provide simultaneous releases of both NE firmware and NMS software. In other words, NE and NMS development are inextricably interwoven.
Step 1 can be assisted using the RFCs on the IETF Web site [IETFWeb]. The other steps are carried out in conjunction with the NEs themselves. Some examples of linked overviews now follow.
Developer Note: An ATM Linked Overview
Many technologies can seem extremely complex at first, and then, as the learning curve progresses, the essential patterns begin to emerge. ATM [Tanenbaum1996], [ATMObjects] is a good example. Stripped down to its bare (linked overview) essentials:
-
ATM is a layer 2 protocol suitable for deployment in a range of operational environments (in VLANs and ELANs, in the WAN, and also in SP networks).
-
ATM offers a number of different categories and classes of service. The required service level is enforced by switches using policing (traffic cop function), shaping (modifying the traffic interarrival time), marking (for subsequent processing), and dropping.
-
Traffic is presented to an ATM switch and converted into a stream of 53-byte ATM cells.
-
The stream of cells is transmitted through an ATM cloud.
-
A preconfigured virtual circuit dictates the route taken by the cell stream. Virtual circuits can be created either manually or using a signaling protocol. If no virtual circuit is present then PNNI can signal switched virtual circuits (SVCs).
-
The virtual circuit route passes through intermediate node interfaces and uses a label-based addressing scheme.
-
Bandwidth can be reserved along the path of this virtual circuit in what is called a contract.
-
Various traffic engineering capabilities are available, such as dictating the route for a virtual circuit.
This list provides an overview of ATM technology. It joins (or links) the principal components needed for managing ATM. From this list, the essential ATM managed objects can be derived:
-
ATM nodes
-
A virtual circuit (switched, permanent, or soft) spanning one or more nodes
-
A set of interfaces and links
-
A set of locally significant labels used for addressing
-
An optional route or designated transit list
-
A bandwidth contract
-
Traffic engineering settings
-
QoS details
This is a good start on the road to defining managed objects for the support of ATM. It points to the merit of studying documents from the ATM Forum and ITU-T Broadband ISDN. The next stage (step 2) would be to experiment with the EMS of an ATM switch and see the above objects in practice, e.g., creating PVCs and SPVCs. Next, we would examine the MIB objects (step 3) [ATMObjects] involved in step 2, and then produce software (step 4) to read and write instances of those objects.
Developer Note: An IP Linked Overview
The convergence of layers 2 and 3 (e.g., connection-oriented operation of layer 3 networks) has forced the need for knowledge about IP onto practically everyone's agenda. IP is often used as an abbreviated form of TCP/IP, and this is the way it is used in this book. Like UNIX and Ethernet, IP is one of the great software engineering feats of the 20th century. Both are in widespread use (although UNIX, unlike DOS or Windows, has no single standard implementation) and have withstood the test of time. IP has a steep learning curve, but it can be summarized into a linked overview as follows:
-
IP is packet-based—IP nodes make forwarding decisions with every packet.
-
IP is not connection-oriented.
-
IP provides a single class of service: best effort.
-
IP does not provide traffic engineering capabilities.
-
IP packets have two main sections: header and data.
-
IP header lookups are required at each hop (with the present line-rate technology, lookups are no longer such a big issue. Routing protocol convergence may cause more problems).
-
IP devices are either hosts or routers (often called gateways).
-
Hosts do not forward IP packets—routers do.
-
IP devices have routing tables.
-
IP operates in conjunction with other protocols, such as OSPF, IS-IS, Border Gateway Protocol 4 (BGP4), and Internet Control Message Protocol (ICMP).
-
Large IP networks can be structured as autonomous systems made up of smaller interior areas or levels.
So, the essential managed objects of IP are:
-
IP nodes (routers, hosts, clients, servers)
-
IP interfaces
-
IP subnets
-
IP protocols (routed protocols such as TCP/IP and routing protocols such as OSPF and IS-IS)
-
Interior Gateway Protocol (IGP) areas (OSPF) or levels (IS-IS)
-
Exterior Gateway Protocol (EGP) autonomous systems
The next stage (step 2) would be to experiment with the EMS of an IP router (or an IP/MPLS switch) and see the above objects in practice, for example, creating IP interfaces and subnets, and configuring routing protocols. Next, we would examine the MIB objects (step 3) involved in step 2 and then produce software (step 4) to read and write instances of those objects.
Embracing Short Development Cycles
The need for immediate ROI is prompting a demand for innovative management system solutions. Enterprises must be able to leverage their investments for both productivity (easier operation of networks) and financial gains (smoother business processes). This can result in shorter NMS software development cycles, which in turn requires a modified approach to producing NMS:
-
Reduced feature sets in more frequent releases
-
Foundation releases
-
Good upgrade paths
-
Getting good operational feedback from end users
If a management system release occurs every four or five months, then it is no longer necessary for every single requirement to be fulfilled. Instead, requirements can and probably should be prioritized over a range of releases. When a new technology is adopted and implemented on a range of NEs (such as VoIP or FR interworking), then only the mandatory management facilities should be implemented first. The rest can follow later. The first release becomes a foundation for the later ones. In time, the initial reduced feature set grows steadily to become part of a sophisticated end-user solution. Not all users would necessarily upgrade—just the ones who need the new foundation release features. The developers would carry out the bulk of the testing. As the releases occur, the user's data has to be carefully protected and upgraded as necessary. So, upgrade issues (such as scalability-related database schema changes) increasingly have to become part of the bread-and-butter of development.
Implicit in all this is the end user becoming a development partner providing valuable operational feedback. The user receives regular, reliable releases, and the vendor sees fast return on development investment. Another benefit is that developers gain experience and expertise with each of the minor releases.
Minimizing Code Changes
Perhaps one of the most difficult software development skills to acquire is the ability to resist changing code. This applies to good and bad code, old and new. A crucial skill for developing NMS software is the ability to make small, focused fixes for specific problems without introducing new bugs. It can be extremely difficult to resist making simultaneous changes to neighboring code, but it is a vital discipline. Unnecessary code changes introduce bugs and increase the need for testing. Every code change should be fully tested as part of a mandatory change control process.