The Data Source
Figure 1 illustrates the network of interest reproduced from the earlier article. Briefly, this network is a simplified picture of a group of service providers linking a number of remote sites within the same organization to form an intranet. The scheme can also be extended to include sites external to the host organization, thereby forming an extranet (clearly, the latter design requires careful deployment of security).
Figure 1 Service provider network linking enterprise sites.
The previous article pointed out the importance of the ingress device in Figure 1, labeled "LER A." This is typically a high-performance router and has a number of associated attributes, such as its name, contact details, technology capabilities, etc. Such a device would generally have dozens of additional attributes, but we take a subset and record them in XML format as illustrated in Listing 1 (this data also comes from the previous article).
Listing 1 Network management information encoded as XML data
<?xml version="1.0" encoding="UTF-8"?> <nodedata> <contact>Stephen Morris</contact> <email>firstname.lastname@example.org</email> <telephone>1800 512 9999</telephone> <sysnname>LER A</sysnname> <IP-capable>Yes</IP-capable> <MPLS-capable>Yes</MPLS-capable> <LastDiscovery>1 January 2005</LastDiscovery> <Location>Europe</Location> </nodedata>
As Listing 1 shows, the data elements are nested; for example, the contact name is delimited by <contact>...</contact> with the text Stephen Morris between the opening and closing tags. Likewise, all the data elements in Listing 1 are delimited by the <nodedata>...</nodedata> pair. This illustrates the way that XML uses a tree-structured, hierarchical representation.
That's our XML data source. Now let's get into the nitty-gritty of the problem we want to solve.