Distributed Network Manager
Requirements Specification
for
Prototype II
Version 1.0
B. Waiters, 15 May, 1996
0. Introduction
This document describes the minimum requirements
for Prototype II of the Distributed Network Manager (DNM). These
minimum requirements where established on May 14th, 1996 as the
result of a class meeting during lab period. At this meeting it
was decided to concentrate on a limited set of functionality in
order to have a simple, working prototype ready for demonstration
at the end of week 10. This specification is an extremely small
subset of the Distributed Network Manager Functional Specification
Version 1.0 by S. Ron Oliver. Any variation from Version 1.0 will
be made only for the sake of having a working prototype by the
established milestone date of June 6, 1996. Any such variation
will be duly noted in this document.
0.1 Prototype II Description
Prototype II will demonstrate the use of OSF/DCE
to communicate between the privileged user interface (UI), the
stats module, and the node-discovery module. All messages between
the UI and stats will be encrypted. The stats module will eventually
become part of the limited user-interface for a distributed process
component. The stats module will receive the request from the
UI for statistics from a user-chosen node. Stats will then read
any raw data for the given node from the stats-database and use
this information to compute the requested statistics for that
node. For this prototype the node will be cobra, and the requested
statistic will be link utilization. The protocol module for this
prototype will be an SNMP module. It will read from a configuration
file to determine which SNMP agents to poll and record information
to the stats-database. A rudimentary node discovery module will
also be part of prototype II.
0.2 Notes on expandability
Since prototype II is a very limited subset of the
overall functional specifications, and because we know exactly
what statistic and node we will be working with, it is tempting
to design and code prototype II with these two parameters "hardwired"
into the prototype. This would be a serious mistake, and would
hinder the classes that follow us in the production of future
prototypes and the final product. Therefore, it is required that
all design and code be easily expandable and reusable. All functions
should be written in such a way as to keep these "known"
parameters as variable and avoid the hardwired issue. This will
result in a much easier transition between classes, and adds very
little extra work for our class.
0.2.1 Requirement
- All code and design for prototype II shall have high cohesion,
low coupling.
1.0 User Interface (UI) Module
1.1 Functional Description
For prototype II, the user interface will be
a simple, character-based interface. It will be menu driven and
contain only a limited subset of the specifications laid out in
the DNM functional specifications.
The UI will communicate to a process component
via DCE. For prototype II the process component will be the stats
module. One specification of major importance is security, and
as a result, it is imperative that all communications be secure
from outside influences. The encryption of all communications
will alleviate much of this problem.
For prototype II, the information available to
the UI will be severely limited. In the prototype the only statistic
which will be requested will be utilization. This utilization
will only be requested for Cobra.
One other report will be available in prototype II. The UI will
be able to give a list of nodes discovered via the node discovery
module.
1.2 Requirements
The UI shall:
- be a character-based, menu-driven interface.
- be the sole interface for the privileged user.
- authenticate the privileged user
- at the UI initilization
- after each request to the statistics module
- using the security module.
- communicate with the statistics module
- via OSF/DCE's Remote Procedure Calls
- by encrypting all communication to the statistics module
- by decrypting all communication from statistics module
- using the security module.
- request the utilization of the cobra cluster from the statistics
module
- print the utilization of the cobra cluster upon request to
the screen.
- communicate with the node-discovery module
- via OSF/DCE's Remote Procedure Calls
- by encrypting all communication to the statistics module
- by decrypting all communication from statistics module
- using the security module.
- request a list of nodes discovered from the node-discovery
module
- print the list of nodes upon request to the screen.
2.0 Protocol Module (Data Collection - SNMP)
2.1 Functional Description
The protocol module shall take up the task of
data collection using whatever data management protocol is native
to the network. The protocol that will be used for prototype II
shall be SNMP. This prototype uses both a protocol module configuration
file and a statistics database. For prototype II, the statistics
database is the link between the protocol module and the statistics
module.
Future prototypes may have the protocol module
send information directly to the statistics module or have a shared
file system for the database file. This is also true for the protocol
module configuration file, which should be writtable from the
process component. Future prototypes should also include direct
communication from the process component for dynamic data reporting
of nodes not listed in the protocol module configuration file
as requested by the privileged user.
2.2 Requirements
The protocol module shall:
- read from the protocol module configuration file
- The configuration file shall contain the name
or IP address of the node to monitor,
- the frequency of the monitoring, and
- what statistics to gather from the given machine.
- gather raw data from the given node by polling
the agents listed in the protocol module configuration file.
- only gather statistics from the machines in the
cobra cluster in the Computer Science Lab.
- communicate with the statistics database
- by first opening the statistics database file,
- writing the raw data to the database file,
- and then closing the file so that the statistics
module can retrieve information as requested.
- check to make sure the statistics database file
is not being read by the statistics module before attempting to
open the file for writing raw data to the database file.
3.0 Statistics Module
3.1 Functional Description
The statistics module for prototype II will function
as a pseudo-process component. In future implementations the statistics
module and the process component will exist as separate components
and may in fact reside at different nodes. For prototype II the
statistics module will have, as is the case for all components,
an extremely small subset of the functions specified in the DMA
requirements.
3.2 Requirements
The statistics module shall:
- communicate with the privileged user interface (UI)
- via a OSF/DCE Remote Procedure Call
- by decrypting request messages from the UI and
- by encrypting messages to the UI
- via the security module.
- only handle requests for cobra utilization,
- but treat these request parameters as variables (for future
prototype's sake).
- check if the statistics database file is available and
- read the raw data for the requested statistic from the database
file only if the database file is available.
- create the requested statistic based upon the raw data and
- send the statistic back to the UI.
4.0 Node Discovery Module
4.1 Functional Description
Node discovery for prototype II will be limited and will not
be automatic. For prototype II, the node discovery module will
reside on the same machine as the privileged user interface (UI).
The UI will send a request via a OSF/DCE's RPC to the node discovery
module asking it to search the network for undiscovered nodes.
The use of a OSF/DCE's RPC as a communication medium will allow
future implementations to be distributed on other nodes. Since
a OSF/DCE's RPC will be used, the communication must go through
the encryption/decryption process. Therefore, the node discovery
module must interface with the security module for encryption/decryption
services. Once the request for node discovery is received the
node discovery module will begin searching for undiscovered nodes
on the network. Once the information is gathered, it will be sent
back to the UI in an encrypted form via a OSF/DCE's RPC.
Future implementations will automatically search the network
for undiscovered nodes at specified intervals and send the information
back to the UI or to a process component via a OSF/DCE's RPC.
4.3 Requirements
The node discovery module shall:
- reside on the same machine as the privileged user interface
(UI).
- shall communicate with the privileged user interface (UI)
- via a OSF/DCE Remote Procedure Call
- by decrypting request messages from the UI and
- by encrypting messages to the UI
- via the security module.
- receive request messages from the UI and then
- search for undiscovered nodes using an SNMP agent to query
the other SNMP agents on the cobra cluster.
- shall discover all nodes within the cobra cluster
- shall record all found cobra cluster nodes in the node-discovery
configuration file.
- shall report all found cobra cluster nodes to the UI upon
request
5.0 Distribution Control
5.1 Functional Description
The distribution control for prototype II is very simple.
OSF/DCE is used for the inter-process communications. In this
prototype the communications are very simple, consisting of simple
message passing containing data types sent back and forth between
the UI and the statistics module, as well as between the UI and
the node discovery module. Of course, for security reasons, all
messages are in an encrypted form. But this has no impact on the
form of the DCE communication scheme.
5.2 Requirements
- OSF/DCE Remote Procedure Calls shall maintain Distribution
Control for this prototype.
- Distribution Control shall currently only function on the cobra cluster.
6.0 Security Module
6.1 Functional Specification
The security module must contain almost all of the functionality
for the security module spelled out in the full DMA functional
specifications. For prototype II security modules must reside
at both the location of the privileged user interface (UI)/node
discovery modules and at the location of the statistics module.
It must be able to encrypt/decrypt messages between the UI and
statistics modules and between the UI and node discovery modules.
And, of course, for prototype II some form of user authentication
must be present as well as authentication of messages sent via
DCE.
6.2 Requirements
The security module shall:
- authenticate the privileged user
- at UI initialization and
- after any request for information from the privileged user
interface (UI).
- encrypt messages and data sent across any unsecured medium
by the UI, the statistics module, or the node-discovery module.
- ensure that no unauthorized person(s) can gain access to the
messages or data being passed between process components.
- decrypt messages or data received by the UI, the statistics
module, or the node-discovery module.
- authenticate messages or data receive by the UI, the statistics
module, or the node-discovery module.