An LSP is Born
Our object LSP123 is now sitting in the NMS database. The next step is to create it in the network. This process can be simply a case of requesting that the edge router (R2, in this case) signal the LSP based on the set of supplied constraints (that is, the path and the preference). For some devices, this process might involve specific device protocols, such as SNMP, RSVP-TE, and so on. On other devices, you might have to access proprietary protocols. In either case, the NMS makes a request for the LSP to be created, and let’s assume that all goes well. So, we now have the situation depicted in Figure 1—with LSP123 forwarding traffic as required.
If this brief detour into the world of networking hasn’t put you to sleep, you might have noticed that I included creational capability in the LspConnection class. In other words, the constructor creates the object of the class. What I’m hinting at here is that it would be possible to use a command pattern for LSP creation. I don’t think it’s necessary, but it is possible. The reason why I like to use the constructor is that it’s a natural use of the object-oriented model. The language supports it so why not use it!
After the LSP entity is created, there is a fairly rich mix of operations that can be performed on it, as you’ll soon see. There is merit in separating this latter operation set from the LspConnection class. Let’s now see how to create a Command class for just this purpose.