Executive summary

The work documented in this report was developed to fulfil partial requirements defined under package 7 (QoS-MUSIQ) of the EU funded project DESIRE. The objective of MUSIQ is the formulation of an integrated framework and the implementation of tools for the management of distributed information services and resources. To this end, we have defined a set of Quality of Service (QoS) parameters that are implemented through ad-hoc management functions in a distributed, hierarchical management architecture. In order to provide the means for implementing these high-level parameters, we have defined a specialised information services SNMP Management Information Base (isnMIB) module mapping the status of the low-level management objects associated with the Information System.

The main output of this work are (1) the specification of the required isnMIB structure & objects, (2) the definition of QoS metrics & the related management functions. These outputs were complemented by an advance overview of the encompassing management architecture, chosen from a set of possible scenarios, which provided an input to the specifications for the design of the MUSIQ management tools during the follow-on work-packages.

Design and specification procedures for the isnMIB and QoS parameters were guided by the results of three sub-tasks: (a) the study of user requirements (b) the analysis of information service (IS) systems and (c) the study of related MIB functionality.

The analysis of the survey on user requirements, performed within MUSIQ, provided insight and specific information on the need for management tools expressed by three IS target groups: end-users, managers and developers. The analysis of IS engines and systems (0) has provided an insight on the objects that can influence the operational status and performance of Information System components and that should consequently be monitored.

Significant standardisation activities were undertaken within the project (section 8), participating and contributing to the relevant IETF working groups activities (in meetings or through e-mailing lists). The definition of the Management Information Base was preceded by a survey on related MIBs: different MIBs relating to application management were surveyed, their contents analyzed and cross-MIB overlaps and relationships identified. It is worth noting that this is an issue that has been worrying the IETF itself and has excluded developers from an implementation. The outcome of this work has been submitted to the IETF-community in the form of an internet-draft, [38]. Input from this task has ensured that during the isnMIB definition we have conformed to international standardisation guidelines and practices, made use of the existing management object space, and making it easier to migrate to a fully standards compliant solution once (if) the appropriate standards will be available and of cost-effective implementation.

Driven by the results of the analysis tasks, we have formulated a set of metrics that would be used to compute quality of service parameters, making use of the objects defined in the isnMIB. Both the isnMIB and the QoS metrics were then reviewed under the light of a discussion around the possible management scenarios to be used in the project. The distributed nature of Internet based Information Services dictated the adoption of a distributed and hierarchical architecture based on two levels of manager components (1): The Site Managers (SM), interacting with local agents implementing the isnMIB and the Domain Managers (DM), higher level repositories of management data.

TABLE OF CONTENTS

EXECUTIVE SUMMARY
TABLE OF CONTENTS
Table of Figures
INTRODUCTION
Document Road Map
Management Requirements and MIB definition
1 Information Service architecture
2 Information Service Implementations
3 Management of Information Systems
4 Existing MIBs
5 Synopsis - Management Requirements
6 The management functions
7 MIB Structure
8 Standardization Activities
QoS Metrics Definition
1 Management Scenarios
2 QoS Management
3 QoS Indicators
4 QoS Metrics
Conclusions
References - Bibliography
APPENDIX A: Configuration of Information Services
APPENDIX B: The full SNMP-based approach
1 Introduction
2 Architectural Overview
3 The IS Manager MIB
APPENDIX C: ASN.1 Authoring
1 Introduction
2 Authoring Guidelines
3 Textual Conventions
4 Tools Used
APPENDIX D: MIB ASN.1 Description
1 The IS Node MIB (isnMIB)
2 The IS Manager MIB (ismMIB)

Table of Figures

Figure 1: The Information Service components
Figure 2: A simple IS System
Figure 4: (a) Centralized manager and (b) Platform approach
Figure 5: Distributed (peer-manager) architecture
Figure 6: Hierarchical architecture
Figure 7: Network architecture
Figure 8: The full SNMP-based approach
Figure 9: The hybrid approach
Figure 10: The architecture - MIBs and agents
Figure 11: Architecture overview - an example
Figure 12: Adopted MIB structure

Introduction

The DESIRE project is a European wide initiative, for the provision of distributed information systems for the Research and Education Community in Europe. DESIRE will integrate geographically dispersed heterogeneous information services into a coherent whole. The objective of MUSIQ is the design and implementation of a coherent framework for the managing distributed information resources. Such a management framework will ensure an early diagnosis of faults or lack of performance of information services in a distributed network of providers, by monitoring service reliability, performance and Quality of Service (QoS) parameters in general. The management system should also allow for the collection of information related to the usage of various resources for improved planning and security and, up to some extend the implementation of accounting facilities. With this information, management functions are defined within a distributed management architecture, by computing the necessary information retrieved from Management Information Base (MIB) structures designed to address the semantics of management information retrieval.

The main output of this work are (1) the specification of the necessary isnMIB structure & objects, (2) the definition of QoS metrics & the related management functions. These outputs were complemented by an advance overview of the encompassing management architecture, chosen from a set of possible scenarios, which provided an input to the specifications for the design of the MUSIQ the management tools during the follow-on work-packages. The SNMP-management framework was selected as one of the foundations to our work, due to wide implementation and the fact that it is a de facto standard for management of TCP/IP networks.

The following methodology was adopted, leading to the definition of a consistent set of management parameters and QoS metrics:

Document Road Map

This document is organized in the following way:

Management Requirements and MIB definition

Information Service architecture

This section attempts to provide an overview of the architecture and configurations of information services. Also some commonly used IS engines and servers, emphasizing on configuration parameters, logging facilities and a few hints on performance issues are given. The goal of this analysis is to supply some intuition on identifying a common set of configuration parameters and monitoring objects that should be included in the Manage Information Base (MIB). Furthermore, it aims to assist in the design of the instrumentation of the agent by pointing out any management (configuration, logging, etc.) hooks and the common parameters that are already implemented by the engines that will be easier to instrument. Throughout this section conclusions are inserted in the form of notes, indicated by the bold face and a single borderline.

Generic Information Service architecture

To assist the identification of the management requirements and the definition of management objects, a generic IS architecture is now presented. Other architectural decompositions are possible as well as other approaches to reach the results.

A typical Information Service (IS) system consists of multiple components. The major components with which an IS is built are the IS system and the connecting network (WAN/LAN). To allow users retrieving information from the server they must be in possession of a client system connected to the network. This situation is illustrated in figure 1.

The Information Service Components
Figure 1: The Information Service components

Even though the DESIRE project is focused on WWW services, other information services like FTP, WAIS and gopher are considered since it is common practice to inter-link such servers for flexibility and organizational or performance reasons. Therefore, a decomposition of the building blocks for an Information Service is defined.

A simple IS System
Figure 2: A simple IS System

Figure 2 illustrates the functional decomposition of an information system. Although, the client is also drawn, this document addresses only the server side of the information system. The server has four components which are generic elements in an information service: (1) the TCP-protocol stack, (2) the information transport protocol entity, (3) the information application and (4) the local data.

The TCP protocol stack

The TCP-protocol stack provides a reliable data transport and flow control service between applications, being the ground for Internet based communications. TCP is an open de facto standard, freely available and with excellent interoperability levels across different vendors implementations.

The Information Transport Protocol Entity

The information transport protocol entity (ITPE) implements the information transport protocol used by Information Services. Since several information transport protocols exist - such as HTTP, FTP, Gopher and WAIS - an abstraction of the existing protocols is made. The abstraction from the implemented protocol allows treating all protocols in a similar way, since they are all based on the request/response paradigm, also referred to as a client/server model. This paradigm implements a certain scheme of protocol data unit exchange between entities: a user issues a message with his particular request to a server-system (in this deliverable the Information Service) and the IS reacts with the appropriate response (which can be one or more response messages). The figure below illustrates two examples of messages exchanging with different protocols.

A PDU exchange using two different protocols
Figure 3: A PDU exchange using two different protocols.

The ITPE PDUs of the protocols are sometimes not directly exchanging the information (data), but also guide the information exchange (parameters of the transfer) or authorize the users accessing the Information Service. This difference is illustrated in the above figure 3 where an HTTP and an FTP example are shown. Both are seen from the application as one request/response cycle, although the FTP exchange does it in multiple return PDUs.

The information engine application

The server information engine application interprets the request messages issued by the client application and performs the actual action needed to exchange the information. Upon success or failure of the availability of the requested information the server responds in the appropriate manner towards the client: it will send the requested information or a message indicating the cause for the failure.

The local data

The local data is an abstraction of the actual information. This element can be implemented in different ways (e.g., a file system or a database).

Configurations of Information Service

An IS system may grow to include peripheral applications and servers, dependent on the information server engine. In addition, multiple information server entities may be included in an IS system, residing in the same or separate machines, responsible for different information domains or information protocol interfaces (Figure 2).

An IS system consisting of multiple components
Figure 4: An IS System consisting of multiple components

For example (Figure 4), an IS system consists of two information entities: an HTTP server and FTP server. The HTTP server uses the HTTP protocol to publish static information through a set of HTML files while dynamic data are offered to the end-user through the server's connection with other applications/ servers. The FTP server provides access to a file archive through the FTP protocol. Through HTML documents and CGI or Java scripts the HTTP client application has access to an RDBMS, a text database with full text retrieval functionality and a search engine for searching the FTP archive or the HTML file space.

Example of an IS system
Figure 5: Example of an IS System

In order to effectively manage an IS system, it is required to rely on a set of management objects, mapping the functional behavior of the components identified in section 1.1 above. In addition to the IS specific management objects, we will need to rely on management objects that would mirror both the behavior of the system(s) on which the IS is running and the underlying network infrastructure.

Information Service Implementations

Even though the DESIRE project is focused on WWW services, other information services like FTP, WAIS and gopher are considered since it is common practice to inter-link such servers for flexibility and organizational or performance reasons. Three aspects are examined:

An important issue is whether all Information Services (HTTP, FTP, WAIS and Gopher) will be treated together as generic information services or as different cases in the configuration and logging related MIB objects. A uniform approach should be adopted in the MIB. However, in cases where no common ground is identified, service specific tables and objects may be defined. The main advantage of common, generic object groups is that new services can be added without changing the semantics of the MIB.

Configuration

This section describes the main results of a survey for common parameters useful for configuration management of Information Services. The most important and common parameters are: the choice of the runtime behavior of the server and the service access point. For detailed survey of the entire configuration options of Information Services the reader is referred to Appendix A.

Standalone vs. inetd-started servers

An important parameter of the configuration for Information Services is the choice between a stand-alone server or an inetd-started server. This has not only implications for the configuration and configuration change, but also for the performance of the Information Service. In this section only the configuration aspects are described.

Servers started by the inetd super-server have the advantage of reading their configuration files each time a client attempts to access their information (since inetd restarts them whenever they are needed). This allows changes in configuration files to take effect immediately. Standalone servers, on the other hand, require explicit restarting for configuration changes to take effect. Furthermore, a crashed standalone server will probably stay unnoticed and the service will become unavailable, whereas, in the inetd case fresh copies will be spawned on demand.

The type of server (standalone or inetd-started) is important to know for implementing remote configuration and maintenance. The existence of a MIB variable identifying the server type is essential. In addition, configuration changes made remotely to a standalone server should be followed by a server daemon restart (initiated by the agent). Restarting should be offered by the agent as an automated feature for remote configuration and as an option for resetting crashed servers, etc. However, restarting the server after each single SET operation on configuration MIB variables seems inefficient; time-out/grace period techniques could be used instead: the agent restarts the server when a grace period expires after a set of configuration changes. Restarting on demand could also be implemented through SETting specific MIB variables; this operation should, of course, be restricted to trusted entities.

WWW Servers
The configuration options, files and parameters of four http server implementations are surveyed to find common configuration parameters. These common parameters are investigated on the importance for the Information Service in order to define managed objects useful for configuration management. Additional parameters are given in two cases of servers that may be configured to act as http proxy servers. The goal is to identify common functionality / parameters and management hooks for http servers and http proxy servers.

Objects associated with the remote configuration of http entities (with an emphasis on servers/proxies) will be defined in the MIB. Only generic parameters that are supported by all major servers will be considered. Implementation-specific parameters and options will only be included as variables only if they are considered extremely useful and expected to be supported by all vendors in the near future. All these should be generalized for the other information service entities that will be supported by the proposed management framework, i.e. ftp, wais, gopher.

Note, also, that the analysis of configuration and logging mechanisms that is presented in this section will not only provide objects and requirements for the MIB design, but will also assist the instrumentation design phase of the agent implementation.

The following table summarizes and compares all the configuration variables for the HTTP servers mentioned above. In the case of the Netscape server the column of the table represents functionality, although the configuration and initiation of the processes takes place in a different way than the rest of the servers.

HTTP ServersNCSAApacheW3CNetscape
AccessConfigXX   
AccessFilenameXX  X
AddDescriptionXX  ObjectType
AddEncodingXX XObjectType
AddIconXX AddIcon, AddIconToSTDcindex-init
AddIconByEncodingXX   
AddIconByTypeXX   
AddLanguageXX X 
AddTypeXX XObjectType
AgentLogXX  Addlog (record-useragent)
AliasX  MapNameTrans
AllowOverrideXX   
AlwaysWelcome   X 
AuthDBMGroupFile X   
AuthDBMUserFile X   
AuthGroupFileXX  Authtrans(grpfile)
AuthNameXX   
AuthTrans    X
AuthTypeXX  Authtrans(auth-type)
AuthUserFileXX  Authtrans(userfile)
BindAddressXX   
Chroot    X
CookieLog X   
DefaultIconXX   
DefaultTypeXX   
DefProt  X  
DELETE-script  X  
DidAddHref  X  
DirectoryXX Protect, DirAccessX
DirectoryIndexXX   
DirReadme  X  
Disable  X  
DNSLookup  X DNS
DocumentRootXX  Document-root(root)
Enable  X  
ErrorDocumentXX  Error
ErrorLogXX XX
Fail  X  
FancyIndexingXX DirShowIcons, DirShowBrackets, etc. cindex-init
GroupXX GroupId 
HeaderNameXX   
IconPath  X  
IdentityCheckXX X 
IndexIgnoreXX   
IndexOptionsXX   
Init    X
LanguagePriority X   
LimitXX   
LoadObjects    X
LogFileDateExt  X  
LogFormat <User Specified> <CLF or Older>, LogTime, NoLog init-clf
MaxContentLenghtBuffer   X 
MaxRequestsPerChild X  ProcessLife
MaxServersXMaxClients  MaxProcs
MaxSpareServers X   
Meta-Dir  X  
MetaSuffix  X  
MinSpareServers X  MinProcs
OnDenyX    
OptionsXX   
OutputTimeOut  X  
ParentGroupId  X  
ParentUserId  X  
Pass  X  
PathCheck    X
PidFileXX XPidLog
PortXX XX
POST-script  X  
PUT-script  X  
ReadmeNameXX   
RedirectX  X 
RefererIgnoreXX   
RefererLogXX   
ResourceConfigXX   
RootObject    X
ScriptAliasX  Execservice(CGI)
ScriptTimeOut   X 
Search  X  
ServerAdminXX   
ServerNameXX HostNameX
ServerRootXX X 
ServerTypeXX X 
Service    X
StartServersXX   
SuffixCaseSence   X 
TimeOutXX InputTimeOut 
TransferLogXX AccessLogAddlog(server-log)
TypesConfigXX   
UserXX UserIdX
UserDirXX Xunix-home, init-uhome
VirtualHostXX   
Welcome  X  

Proxy ServersW3CNetscape
Cache AccessLogX init-clf
CacheCleanX 
CacheDefaultExpiryX 
CacheExpiryCheckX 
CacheLastModifiedFactorX lm-factor
CacheLockTimeoutX lock-timeout
CacheNoConnectX connect-mode
CacheOnlyXcache-mode
cache-protocols X
CacheRefreshintervalX 
CacheTimeMarginX 
CacheUnusedX 
CachLimit _1 & 2X 
CasheRootXcache-root
CasheSizeXcache-size
CashingXinit-cache
CollectGcMemoryUsageX 
ftp_proxyX 
Gc (garbage collection)X 
GcDailyGcXgc-times
gopher_proxyX 
http_proxyX 
init-proxy(log-format) X
init-proxy(timeout) X
KeepExpiredX 
no_proxyXsupress
NoCachingXcache-mode
top-dirs X
wais_proxyX 

Most configuration variables supported by the majority of the http servers should be included in the MIB and / or used in the instrumentation of the agent implementation. For example parameters of importance that should be used: log file location (error log, access log), server PID file, user and group id, server name, server port number, document root directory, server type (standalone or not), maximum server processes/connections, caching parameters, etc.

Service access points

The Internet uses a common addressing scheme, consisting of an Internet Protocol (IP) address part and a port number defining a sub-address within the system. Associated with the IP address is the system canonical name, mapped through a name service such as the DNS. The port-number specifying the sub-address in a system is often protocol specific.

Exceptions to the addressing scheme above do exist, and many Information Services implement the exception. The current IP address space is becoming saturated, and `virtual' naming techniques have been implemented and are currently in use, leading to the virtual host concept, where a system may have multiple hostnames with the same IP-address. In such a system, various information transfer protocols can co-exist across different hostnames (virtual hosts) in the same physical networked machine (same IP address). As a result, the combination of IP-address and port-number is no longer uniquely identifying an Information Service.

Within the MIB definition a clear distinction should be provided on which the use of virtual host can be based. Combinations with IP-address, port-number and a hostname are possible. The MIB should reflect the concept of a virtual host through which information services are made accessible.

Logging

The Common Logfile Format (CLF)

Each log entry following the CLF has the following form:

remotehost user authuser [date] "request" status bytes
where:

As it is reported in the following paragraphs, some information servers optionally use the CLF in their log files, while others use similar formats.

It is desirable to use a CLF compliant format for log-tables in the MIBs designed.

HTTP

NCSA server
The NCSA server maintains the following log files:
Apache server
Nearly identical logs files to the ones used by NCSA: transfer_log (identical to the NCSA access_log), agent_log, error_log, referer_log. In addition to them an experimental log for logging cookies is maintained (CookieLog).
CERN server
The CERN server maintains the following logs:

The log format can be chosen between the Common Log Format and an older CERN format. Other configuration options give the opportunity to specify GMT or local time in the log files, a time and date log filename extension and whether logging will be suppressed for certain hosts or domains.

Netscape server
Logs exist for recording Requests for the server's documents, Client software names and Errors and all the information is kept either in the Common Log Format or other, user specified format.

The Netscape Proxy Server logs Accesses, Errors and SOCKS requests. The logs are kept in a common log file or sent to the UNIX SYSLOG facility. The format of the logs can be either in the Common Log Format, or another, user specified format.

The http servers' log data can be processed off- or on-line to produce statistics for accesses on a per document or client/domain basis. Such statistics should be included in the MIB and generated by agent on demand, if the required processing permits, otherwise should be kept in memory and updated incrementally. Scripts (in Perl or UNIX shell scritps) that provide this functionality are included in most http server distributions and various such custom tools are available as freeware / shareware. It would, also, be useful to provide an SNMP interface to the actual logs through the MIB, i.e. the actual logs are offered to the manager as tables and the agent responds to the requests of table entries by retrieving the appropriate lines from the log files. Indexing and caching can be used to improve performance without imposing high storage and processing power requirements on the agent.

FTP

Plain vanilla ftp servers provide limited logging capabilities. Common functionality includes logging through the UNIX SYSLOG facility of anonymous users connecting to the archive (date & time of connection, origin ip address and reported username in the password field of the anonymous login) and the commands issued by the anonymous user (date & time, command and operands).

The WU Archive FTP daemon provides enhanced logging capabilities including:

<date & time> <transfer duration in sec> <client ip address>
  <transfer size in bytes> <file path / original filename>
  <ASCII/BINARY mode> <on the fly Compression, Taring, both or none>
  <Ingoing/Outgoing> <Anonymous/Guest/Real user> <Authentication
  type: 0-none 1-RFC 931> <authenticated user: *-if no
  authentication userID-authentication used>
The log data can be used to compile or sorts of statistics, like the top most-downloaded files, counters of total bytes transferred, the most busy hours of the day, average transfer delays and throughput, etc. The WU ftp distribution includes a Perl script which provides such functionality.

WAIS

As it was mentioned in the configuration analysis of the WAIS server above, only one log file is maintained and the information kept in the log depends on the log level defined by the "-l" option. The server messages are categorized in levels of priority and logged according to the defined log level. There are messages of high priority (logged in levels 1 and 10) like errors and warnings and of medium priority (logged in levels 5 and 10) like client connect and search information. The server log format is as follows:
<server PID>: <sequence number>: <date & time>: <code>: <message>
The WAIS log file can be processed to extract access information (top hosts & domains), access load and other statistics.

Gopher

The Gopher log file has the following format:
<date & time> <server PID> <client site> <client action>

A client action may be an retrieval of a document, an error, etc. Common values are:

The Gopher log file can be processed to extract access information (top hosts & domains), access load and other protocol statistics (percentage of search/read/browse/ftp requests.

Security Wrappers

TCP/IP wrapper daemon packages can be used in conjunction with inetd started server for achieving better access control and enhanced logging. Such packages, like the shareware tcp_wrappers, provide tiny daemon wrapper programs that can be installed without any changes to existing software or to existing configuration files. The wrappers report the name of the client host and of the requested service; they can be configured to log these accesses and/or perform sophisticated access control on a per service basis. The wrappers do not exchange information with the client or server applications, and impose no overhead on the actual conversation between the client and server applications.

Such wrapper programs can be used in the agent/MIB implementation for collecting access and/or limited protocol statistics, perform access control and/or logging on behalf of servers that do not support such functionality.

Furthermore, since most IS nodes use wrappers for security, the MIB should include objects for monitoring (or even configuring) their settings (service access restrictions at the system level).

Performance Issues

Standalone vs. inetd-started servers

Selecting between running a server standalone or through inetd is mostly related to the traffic that the server is expected to handle. For busy services, receiving high numbers of concurrent user connections, inetd starts to get inefficient. It requires a non-negligible period of time for inetd to start server process and for the server to read its configuration time and initialize every time it comes up. Re-reading the configuration parameters may be useful when the administrator changes the configuration frequently, but under heavy loads the extra delay may prove extremely inefficient. This causes higher delays to the end user, and will eventually push inetd to its limits up to point that no more connections can be initialized (inetd complains with cryptic messages like "loop detected shutting down"). Thus, the standalone option should be preferred for high accessed information servers.

On the other hand running server's standalone is not always optimal, especially for low access statistics. Having a server running as a standalone daemon, with usually more than one processes spawned even when idle, consumes valuable resources for just waiting client requests. When the load is low the overhead of inetd starting a server process can be considered insignificant and overall performance is improved. Another disadvantage of standalone servers is that crashed processes are not automatically detected and the service becomes unavailable, whereas the inetd started server will spawn fresh copies at every request.

Access limits

Even when using standalone servers when the access statistics are high, there exists a natural upper limit in load that the specific system and server can handle. If this limit is surpassed the system and all its processes (including the information server running on it) provide extremely low quality (mostly in terms of response delays) and services may become unavailable or even misbehave. That is why most information servers allow the configuration of upper limits in concurrent connections that are enforced in order to safeguard overall service quality, availability and system integrity. This limit is obviously dependent on the system and software characteristics. Sensitive parameters are the server host memory size and CPU power, as well as the operating system efficiency in handling multiple concurrent processes and threads and, evidently, running multiple information server on a single host multiplies the system requirements.

Bandwidth

Available network bandwidth may prove more critical than system resources for the availability of the service and the quality offered to the end-user. This applies not only to the site WAN connection, but also to all intermediate connections. Thus, when designing and/or managing an international, distributed information services system spanning on a wide area, network planning and monitoring becomes essential to the quality delivered.

Objects allowing the monitoring of system resources and their usage should be included in the MIB. Objects that present the running status of servers (standalone/inetd running server, number of current processes, etc.) and allow remote configuration, are useful for determining offered quality and server potential to adapt to higher loads.

Since the system to be managed (a international web of information servers) is characterized of a high distributed nature the MIB in design and the associated architecture should support distributed and hierarchical management for achieving consistent monitoring, planning and control in various levels and wide-area scale.

Management of Information Systems

This chapter attempts to provide a brief overview of management frameworks and architectures relevant to Information System Management.

The target system we aim to manage is quite distributed in various levels. First, at the system level we have more than one, usually heterogeneous, information server daemons, associated and linked in various ways and directions. Then, in the network view, there exist a multitude of such "information nodes" with different degrees of offered quality, various information sizes, types (static, active, temporal, etc.) and topics. Managing such a highly distributed system is quite a challenge that could not be met successfully in a local scale. In the following paragraphs, we present an overview of management architectures in an attempt to identify the most suitable one for our target system.

Different approaches and architectures for management systems are currently being used or proposed. Three approaches seem to prevail [[15],[25]]: (a) the centralized, (b) the distributed (peer systems) and (c) the hierarchical architectures. A fourth architecture, the network of managers, combines features from (b) and (c). The systems mainly differ in the number of managers used and their degree of interaction and independence.

Centralized approach

The centralized architecture [[10],[34]] is the most commonly used one and consists of a single manager responsible for the management of the whole network. The manager handles the communication with the agents of the managed network elements, provides centralized decision support and control and maintains a manager repository. Such an approach exhibits all the advantages and disadvantages of a centralized system. The main deficiency is the inability to easily scale up when the network expands in size or complexity. However, in many cases centralized control is preferred. The architecture is outlined in Figure 4(a).

(a) Centralized manager and (b) Platform approach
Figure 4: (a) Centralized manager and (b) Platform approach

A variation of the centralized architecture is the platform approach [15] (figure 4(b)). The single manager splits into two parts: the management platform and the management applications. The platform offers a first stage of processing of the management data, being concerned mainly with information collection, provides key management services like monitoring and control, throughput calculation etc., and hides the underlying management protocols offering an abstract view to the applications. The applications operate in the second data processing level, handling decision support and higher functions than information gathering and simple calculations. The two parts communicate through a common application programming interface (API). This architecture offers easier maintenance and expandability and simplifies development of integrated applications in heterogeneous, multi-vendor, multi-(management)protocol environments. Heterogeneity and protocol complexity is handled once in the platform level, not in every application. However, the limited scalability is inherent in the centralized structure. In addition, the platform proves to be a serious bottleneck when the number of applications increases.

Distributed approach

The distributed approach [25] is associated with the management domain concept [20] and utilizes more than one-peer managers. It is well suited for multiple domain networks since it is based on a manager per domain philosophy (different domains are defined for geographical, organizational, or other reasons). When information for another domain is needed, the manager communicates with its peer systems to retrieve it. Scalability is the main advantage of this approach. Creating more domains and adding a respective number of managers satisfies higher performance requirements or possible expansions of the managed network. The architecture is sketched in Figure 5.

Distributed (peer-manager) architecture
Figure 5: Distributed (peer-manager) architecture

Hierarchical approach

The hierarchical architecture (Figure 6) [15],[32],[25] also applies the manager per domain paradigm, and further introduces the concept "manager of managers" (MOM). Each domain manager is solely responsible for the management of its domain and is unaware of the rest of the network. The MOM operates on a higher hierarchical level, requesting information from the domain managers. Unlike the previous architecture, the domain managers do not communicate. The architecture can easily scale up and more than one MOMs can be added. MOMs for MOMs can be introduced building a multiple level hierarchical scheme. This architecture offers easier development of integrated applications that retrieve information from multiple (possibly heterogeneous) domains.

Hierarchical architecture
Figure 6: Hierarchical architecture

A combination of the distributed and hierarchical architectures, the network architecture [15] is sketched in Figure 7. Both the manager per domain (element managers) and manager of managers (integrated managers) concepts are applied. Instead of a purely peer-systems or hierarchical structure, the managers are organized in network scheme. This approach combines features and advantages from both architectures, preserves the scalability and exhibits better functionality and adaptation in diverse, non-canonical environments. An extension of the network architecture that integrates the platform approach at the manager level in a scaleable way is presented at [40].

Network architecture
Figure 7: Network architecture

The advantages of distributed management architectures provide attractive alternatives for managing the distributed network of information servers introduced by the DESIRE project. The proposed architecture must have a distributed, hierarchical nature that will allow efficient monitoring, planning and control in different levels of abstraction and geographical areas. Minimizing WAN management traffic and manager response should be an important factor in selecting an architecture model.

Existing MIBs

This chapter studies in detail most of the existing MIBs, that are relevant to a future standard MIB for the management of distributed information services. Such MIBs are the CEO HTTP MIB, the CEO Retrieval Service MIB and the CEO Information Store MIB, the XXX-MIB, the System Application MIB, the Host Resources MIB and other ones, that are developed either through the IETF standardization process or via research work within research institutes and universities.

The aim of this chapter is to report on the applicability of the existing standards track MIBs, to find how all of them can be brought together if possible, to search their pros and cons, to avoid overlap of managed objects, to propose additional objects that are needed to meet the requirements and guarantee that effective management of the Information Systems will be approachable.

The CEO Project MIBs

The Centre of Earth Observation (CEO) is a European Commission program intended to promote earth observation activities in Europe. The WWW is the preferred mechanism for making large amounts of earth observation data available over the Internet. During the project three dedicated MIBs were defined for the management of the WWW services. The design and implementation of tools that would allow status and utilization monitoring of networks and distributed information servers was the motivation for this work.

The following three MIBs were produced:

The idea behind the three MIBs was to decouple the details of the communication protocol from retrieval services (that could be applied to any other underneath information communication protocol) and the way information is organized. In this way, a modular system is specified, where ftp or other can replace http.

The CEO HTTP MIB

The CEO HTTP-MIB [15] is a module that contains detailed network management information concerning HTTP and may be used for managing HTTP servers and clients. The main purpose of the HTTP-MIB is to maintain network management information of HTTP entities and their associated HTTP network traffic. This MIB has been produced in strong collaboration with the work developed at the http-MIB mailing list. The HTTP-MIB is basically the same with the XXX-MIB developed at the http-MIB mailing list. Minor differences between the two MIBs are described below (see section 4.2.1). The HTTP MIB is consisting of three groups, the httpSystem group, the httpStatistics group and the httpTimeOuts group.

The httpSystem group contains generic management information and configuration information about the http protocol entities of a system. These entities exchange HTTP messages (PDUs) between each other in order to transport information. The httpSystem group contains the httpEntitytable maintaining generic administrative information about the http Servers and Clients present on the system. Such information is a unique identifier of the Server or Client, the protocol implemented by the entity, a textual description of the http Server or Client, a textual identification of the contact person, a textual description of the protocol version implemented, a textual description of the protocol implementor, a textual description of the implementation version, an authoritative identification for the private MIB of the particular http Entity, the DNS address of the http Entity, the TCP port at which the http Entity listens, the IP address at which the http Entity listens, the value of sysUpTime at the time the http Entity was last initialized and an identification of the role of the http Entity as server, client, proxy or cachingProxy.

Generic administrative information, such as implemented protocol, engine description, contact name, etc. and configuration information such as IP address, the port in use, role of the entity (server, client, proxy, cachingProxy) etc. are desirable for management of Distributed Information Systems. The centralized configuration management of distributed information servers is a major requirement of IS managers.

The httpStatistics group contains management information concerning the utilization of the http protocol entity. This group contains three tables: the httpSummarytable, the httpRequesttable and the httpResponsetable.

The httpSummarytable provides overview statistics for the http protocol entities of the specific system. Such statistics are the total number of requests generated or received, the total number of request errors detected, the total number of requests discarded, the total number of responses generated or received, the total number of response errors detected, the total number of responses discarded, the total number of unknown messages received, the total number of bytes received and generated and the total number of time-outs for each http entity of a particular system.

The httpRequesttable provides detailed request statistics for the http protocol entities. This table keeps the number of requests received/generated and the time the last request was received/generated for each request method and http protocol entity of a particular system.

The httpResponsetable provides detailed response statistics for the http protocol entities on the particular system. This table keeps the number of responses received/generated and the time the last response was received/generated for each type of response received/generated by http protocol entities of a particular system.

Statistics on the network traffic transmitted and/or received by HTTP entities are useful for the estimation of the quality of service the information server is providing or the client is receiving.

The httpTimeOuts group contains management information about the time-outs occurred with the protocol entity. This group contains a scalar object, the httpTimeouttableSize with the number of entries in the httpTimeouttable, and the httpTimeouttable providing detailed time-out statistics for the http protocol entities of the particular system. This table keeps the time when the time-out occurred with a remote entity and the address of the remote entity for all the entities of the system. Through the scalar object the table may be resized by the Network Management System.

Statistics on the number of time-outs occurred with remote HTTP entities are also useful for the estimation of the quality of service the information server is providing.

The CEO Retrieval Service MIB

The CEO Retrieval Service MIB [16] is a module for the management of the retrieval service. The concept of the retrieval service is used for the capability of information transport via the network. This MIB provides management information about an information transport, describing what the transport provider is doing for the user, without showing detailed information from inside the transport provider (about the HTTP protocol). The Retrieval Service MIB is composed of two groups, the rsStatistics group and the rsQoS group.

The rsStatistics group, contains management information about the service primitives that are executed on the HTTP Service Provider. The rsStatistics group is composed of four scalar objects the rsTotalRequests, which is the total number of request service primitives that have been executed on the HTTP service provider, the rsTotalIndications, which is the total number of indication service primitives that have been executed on the HTTP service provider, the rsTotalResponses, which is the total number of response service primitives that have been executed on the HTTP service provider and the rsTotalConfirmations, which is the total number of confirmation service primitives that have been executed on the HTTP service provider.

The rsQoS group, contains management information about the provided QoS of the HTTP Service Providers. This management information represents the performance of the underlying network. The QoS parameters that are provided are: the transport delay, the number of errors, the number of time-outs and the throughput. The rsQoS group is composed of two tables, the rsDelaytable and the rsThroughputtable and two scalar objects, the rsNumberOfErrors and the rsNumberOfTimeouts. The rsDelaytable keeps track of the delays, which occurred, during transport of information, between a source and a destination. The rsNumberOfErrors gives us the total number of errors that have occurred. The rsNumberOfTimeouts gives us the total number of time-outs that have occurred. The rsThroughputtable keeps track of the data throughput with a certain client.

All objects included in this MIB are essential towards the effective management of distributed information services.

The concept of the CEO Retrieval Service MIB is similar to the Network Services Monitoring MIB (see section 4.9.1) containing elements common to the monitoring of any network service application.

A combination of the two MIBs is necessary for the complete monitoring of network service applications.

The CEO Information Store MIB

The CEO Information Store MIB [17] is a module for the management of the Information Store, which represents the information part of a WWW application. The concept of the Information Store is used for the application from which the information is retrieved.

The IS MIB module is composed of four groups, the isGeneral group, the isAccess group, the isErrors group and the isDocuments group.

The isGeneral group. This group contains overall administrative data. There are static data, uniquely identifying the IS data, and two tables, the isApplDependancytable and the isTopictable. Such static data are an administratively-assigned name for the Information Store, a textual identification of the responsible organization for the IS server, a textual identification of the contact person, the last initialization of the IS server and an indication of the set of media types that the IS server primarily offers. The isApplDependancytable contains managed objects, which apply to all different kinds of applications provided by the IS. Such managed objects are a distinguished name of the host on which the application is running and the application name, the process name of the application, the version of the application software, the last initialization of the application, the operational status of the network service application, the time that the application entered its current operational state, the time that this application last performed some activity and the total number of activities where the application has failed. The isTopictable contains textual description of the topics provided by the IS server.

A table keeping information about all background processes is attractive for the management of information services. Information servers often use several background processes in order to provide some services. Because of this dependencies develop among processes. These dependencies become critical when a particular process needs to be stopped, restarted or reconfigured. These dependencies need to be defined within a MIB, so that management applications can operate correctly with consistent and complete information.

The isAccess group, which provides general access information and access information organized by domain, day, most recent users, most frequent users. In this group, there are various scalar managed objects and four tables, the isDomaintable, the isAccessOfLastNDaystable, the isMostFrequentNUsertable and the isMostRecentNUsertable. Such scalar objects are the total number of accesses done at the IS, the total number of bytes transferred and received by the IS, the number of entries which is contained in the accessOfLastNDaystable, the number of entries which is contained in the isMostFrequentNUsertable, a field with which a new "most frequent N user table" can be made, the universal date and time for the last time, that the isMostFrequentNUsertable was refreshed, the number of entries which is contained in the isMostRecentNUsertable. The isDomaintable keeps track of the number of accesses done from a specific domain. The isAccessOfLastNDaystable is a Top N table of the number of accesses, on a day to day basis, that have been done in the past. The isMostFrequentNUserTable is a Top N table of the number of accesses, that have been done in the past, from a specific user. The isMostRecentNUsertable is a Top N table with the N most recently accessed documents.

The isErrors group, which contains management information about the errors that occurred in the Information Store. In this group, there is a single table, the isErrortable. This table keeps track of the description of the errors, which occurred during accesses of the IS, the number of occurrences of particular errors and the time at which the error last occurred.

The isDocuments group, that contains management information about currently available documents on the Information Store server. The information is kept in the isDocumenttable containing the name of the document, the number of accesses, the access rights, the document size, the document type, the date and time of the last update and the number of accesses since the last update, the date and time of the last access and any associated errors.

The HTTP-interest group

The HTTP-interest group is an initiave of some indicidual who are interested in HTTP-management with the SNMP-framework. The group has defined a MIB containing a set of managed objects for the management of xxx servers and clients. The xxx in the module name is intended to cover a family of Networked Information Retrieval protocols such as HTTP, NNTP, FTP, gopher and so on. Although the primary focus of this effort is a HTTP MIB, a number of other Networked Information Retrieval services may able to be fit into a common MIB.

This MIB consists of two groups, the xxxSystem group and the xxxStatistics group. The xxxSystem group, which contains management information about the xxx protocol entity. In the xxxSystem group, there is a table, the xxxEntitytable, containing details about the xxx Servers and Clients present in the system. Such details are a textual description of the xxx Server or Client, an authoritative identification for the entity, a textual identification of the contact person, an identification of the primary protocol in use, a textual description of the version of the implemented protocol, the fully qualified domain name by which this entity is known, the transport address at which the xxx entity listens for requests or responses, the primary port used to communicate with this entity and an identification of the role of the xxx entity as server, client, proxy or caching proxy.

The xxxStatistics group, which contains management information concerning the utilization of the xxx protocol entity. The xxxStatistics group contains the following four tables and a few scalars objects:

Differences between the CEO HTTP-MIB and the XXX-MIB

The major difference between the CEO HTTP-MIB and the XXX-MIB is the index of the tables. All the tables in the CEO HTTP-MIB are indexed with a unique number specifying the entity, the httpEntityIndex. The HTTP MIB augments the appltable of RFC-1565 (Network Services Monitoring MIB). The AUGMENTS clause is used to define extensions to an existing table, when the new table is a logical extension of the existing table. Because of this, for each row which is instantiated in the primary table, a corresponding row must be instantiated in the secondary table.

Other differences between the two MIBs are the following:

MIB-II

MIB-II [[27]] defines the managed objects which should be contained within TCP/IP based equipment. This MIB is divided into the following groups.

The SysAppl MIB

The SysAppl MIB [35] module describes a basic set of managed objects for fault, configuration and performance management of some of the basic attributes of application software. These applications are defined as one or more units of executable code and other resources, installed on a single host system. The managed objects in the SysAppl MIB are arranged into two groups, the system application installed group and the system application run group.

The system application installed group provides information about packages and all of their component elements such as executable and configuration files found on a system. This group consists of two tables, the sysApplInstalledtable and the sysApplCfgElmtable.

The sysApplInstalledtable provides information on installed applications. Such information is the manufacturer of the software application, the software application name, the version, the serial number, the date and time of the installation and the path name where the executables are stored for the application. The sysApplCfgElmtable provides information regarding the executables and non executable files which collectively compose the application. This information is discoverable provided that certain conventions are followed by administrators during the installation of host application software.

The sysApplCfgElmtable contains information such as, the name of the elements, the type of the element (executable, nonexecutable), the date and time of the installation, the full path name of the file, the size of the file in Kbytes, the role of the element (executable, exclusive, interesting, required, dependent).

The system application run group contains information about applications, which are currently running or have run in the past. This group consists of two pair of tables (four tables), the sysApplRuntable and the sysApplPastRuntable, the sysApplElmtRuntable and the sysApplElmtPastRuntable, and seven scalars managed objects.

The sysApplRuntable contains the host applications which are currently running. An entry is created in this table for each instance of an application which is running (when the application started). This table contains information such as a pointer to the installed application table, the date and time that the application was last started and the current state of the running application (running, runnable, waiting, exiting).

The sysApplPastRuntable contains the host applications which have run in the recent past. An entry is created in this table for each instance of an application which has been run (when the application terminated). This table contains management information such as a pointer to the installed application table, the date and time that the application was started, the exit state of the application (complete, failed), the date and time that the application exited. table rows are removed from the sysApplPastRuntable according to the values set in two scalars, the sysApplPastRuntableSizeLimit, which is the maximum table size, and the sysApplPastRuntableTimeLimit, which the maximum age of the table entries. These two scalar objects are included in order to allow user control of the size and resources consumed.

The sysApplElmtRuntable contains entries of applications that execute one of their elements. It is possible to have multiple entries in this table for each application. Entries in this table are tied to entries in the sysApplRuntable so that an administrator can determine which elements are running with each instance of application execution. This table contains information such as the time the process was started, the time the process ended, the state of the running process (running, runnable, waiting, exiting), the full path name of the process, the starting parameters for the process, the type of the executable (unknown, operatingSystem, deviceDriver, application), the total CPU time of the running process, the average memory in Kbytes used by this process, the number of transport connections used by the process, and the number of files open by the element.

The sysApplElmtPastRuntable contains table rows corresponding to instances of processes which have previously executed on the host. Entries to this table are made when the process has terminated. This table contains information such as, the time the process was started, the time the process ended, the state of ending (completed, failed), the full path name of the process, the starting parameters for the process, the type of the executable (unknown, operatingSystem, deviceDriver, application), the total CPU time of the running process, the average memory in Kbytes used by this process, the number of transport connections used by the process, and the number of files open by the element. table rows are removed from the sysApplElmtPastRuntable according to the values set in two scalars, the sysApplElmtPastRuntableSizeLimit, which is the maximum table size, and the sysApplElmtPastRuntableTimeLimit, which the maximum age of the table entries. These two scalar objects are included in order to allow user control of the size and resources consumed.

There are three additional scalar managed objects. The sysApplPastRun-tableItemsRem, which is a counter of entries removed by the agent during its lifetime from the sysApplPastRuntable because of the table size limitations as set in the sysApplPastRuntableSizeLimit. The sysApplElemPastRuntableItemsRem, which is a counter of entries removed by the agent during its lifetime from the sysAppl-ElemPastRuntable because of the table size limitations as set in the sysAppl-ElemPastRuntableSizeLimit. The sysApplAgentPollInterval, which is the minimum time in seconds that an agent will poll the status of the managed resources.

The University of Lisbon WWW MIB

The aim of this work [28] is the provision of remote management facilities to WWW servers by using the SNMP management protocol.

The proposed MIB consists of three groups: the general group, the client group and the document group.

The Host Resources MIB

The Host Resources MIB [14] defines a uniform set of objects useful for the management of host computers. Host computers are independent of the operating system, network services, or any software application. The Host Resources MIB defines objects which are common across many computer system architectures. In addition, there are objects in MIB-II, which also provide host management functionality. Implementation of the system and interfaces groups is mandatory for implementors of the Host Resources MIB.

The Host Resources MIB consists of the following six groups:

The Host Resources MIB provides many types of functions [41], primarily in the fault management, configuration management, and, performance management areas.

The Host Resources MIB helps a number of system management jobs that a network manager might face. With this MIB module, a network manager is able to download an inventory of all equipment on various LANs across an organization, without regard to what types of systems the equipment is attached to. In addition to determining how much memory and disk is installed in each computer, the types and versions of other hardware and software components can be retrieved. Obsolete versions of software or hardware can be flagged and incompatibilities between various hardware and software components can be detected. Disk drives can be monitored to make sure that routine backup procedures are being followed and that the disks are not running out of space.

Textual information on a system, such as that found in file names, is returned in a format that allows any international language or character set. This allows the MIB module to monitor systems that have been internationalized, and (again) shows that SNMP is suited for this task.

The FTP MIB

The only MIB provided for the management of the FTP services is found in [7]. This paper defines a scheme for the application protocol management, and in particular, for the management of FTP services. This scheme includes the network division on hierarchical and federative domains, where each domain is composed of some agents under the same manager's administration. Authors support that the application protocol management, like the FTP management, can be done in both hierarchical and federative domains. Each managed system that supports management of FTP is subordinated to one or more managers. These managers maintain the information about the FTP operations of their subordinate systems. The manager's MIB is accessed by higher level managers, up to the highest hierarchy level.

Hierarchical management of information services seems appealing since it permits statistics collection on the information flow in each domain and among domains. It is possible to control the information flow in regional, national or international level and unify the administration of homogeneous (in terms of content, configuration or target user group) groups of information servers.

In order to manage the FTP and file servers that are accessible through this protocol, a ftp object group is defined. This object group is composed of four sub-groups: the general, manager, server and an extra sub-group.

The general sub-group, which is installed in every managed system that supports FTP, contains management information about the software used for file transfers, the number of sent and received messages, the number of opened connections (FTP commands and data transfers), the duration of the connections and the number of errors (addressing or connection errors and bad access authorizations).

The manager specific sub-group, which is installed in every system which supports an FTP manager software, contains management information about the manager (description), the connections and the FTP messages that leave the manager's domain, the status and address of the FTP servers that stay in the manager domain. These objects are similar to the General Base objects.

The server specific sub-group, which is installed in every managed file server, contains management information about the file servers (description), the number of FTP connections besides the sent or received messages, including error messages and the server's files. The table that describes the server's files contains information about the type and size of the files, the access permissions, the date that they were saved and their version.

The extra sub-group contains managed objects for the control of the information flow between two specific systems. It contains obtains that describe the systems and the FTP connections and messages between the systems.

The Relational Database Management System MIB

The Relational Database management System MIB (RDBMS-MIB) [6] contains objects that may be used to manage relational database implementations. Specifically, it contains information on installed databases, servers, and on the relation of databases and servers. A database is a collection of interrelated data organized according a relational schema. To have access to the database an entity is added, mostly the entity is called a database server. The database server may exist independently of the database, but is not necessary. The server can be seen as an extra layer with a well defined API with which the data can be accessed. The number of servers and database may vary, but at least one of both is necessary.

The structure of the RDBMS-MIB reflects the separation of the database and the access mechanism. The RDBMS-MIB generally contains four tables describing the database, four tables describing the server and another table providing the relationship between described database servers and databases.

The group database tables

This group provides meaningful information for the databases installed on the system.

The group consists of: the installed database table (rdbmsDbtable) describing the general management data of the database, the database information table (rdbmsDbInfotable) describing information about the presence on a host which is information needed when the database is opened for use, the database parameter table (rdbmsDbParamTable) describing the parameter for the configuration of the database (This table describes on a per entry basis for each parameter), and the database resource limits table (rdbmsDbLimitedResourceTable) providing per database the limitations in resources (The provision of this information may only be done if the database is in operation).

The database server group

This group provides more detailed information about the database servers used for access of the databases. The group consists of: the database server table (rdbmsSrvTable) providing general information of running or installed database servers on a system, the database server information table (rdbmsSrvInfoTable) having additional information, the database server parameter table (rdbmsSrvParamTable) describing the configuration parameters of the database server, and the database server resource limitations table (rdbmsSrvLimitedResourceTable) providing the limitations of resources used by the database server.

The relations group

The relationships between database servers and databases are defined by the relations table (rdbmsRelTable). Each entry of this table is indexed by the database identifying index of the database table (rdbmsDbIndex) and the database server identifying index of the database server table applIndex.

Traps

The RDBMS MIB defines two traps to inform the manager of urgent matters. The traps generated by this MIB are: rdbmsStateChange (a state change of a relationship between a database server and a database has changed and makes it less accessible for use), and rdbmsOutOfSpace (one of the databases is unable to allocate more space for its operation).

The definition of a few very important traps may be useful towards the effective management of distributed information services.

Mail and Directory Management

The MADMAN (Message and Directory Management) Working Group has produced three documents for mail and directory management. The Network Services Monitoring MIB defines a set of general purpose attributes, which would be appropriate for a range of applications that provide network services. The other three MIBs, the Mail Monitoring MIB, the X.500 Directory MIB and the Mail and Directory Alarms MIB are not relevant to the management of information services. They do, however, demonstrate how to extend the Network Services Monitoring MIB for a specific set of applications.

The Network Services Monitoring MIB

The Network Services Monitoring MIB [23] contains elements common to the monitoring of any network service application. This information includes a table of all monitor-able network service application, a count of the associations (connections) to each application, and basic information about the parameters and status of each application-related association. The MIB defines a set of general purpose attributes, which would be appropriate for a range of applications that provide network services. Both OSI and non-OSI services can be accommodated.

This MIB may be used on its own for any application. This MIB is also designed to serve as a building block which can be used in conjunction with application-specific monitoring and management. Two examples of this are MIBs defining additional variables for monitoring a Message Transfer Agent (MTA) service or a Directory Service Agent (DSA) service.

A table, called applTable, is defined which will have one row for each network service application running on the system. It keeps statistics of the current number of active associations and the total number of associations since application initialization. The assocTable augments the information in the applTable with more detailed information about active associations.

The Mail Monitoring MIB

The Mail Monitoring MIB [24] extends the Network Services MIB to allow monitoring of Message Transfer Agents (MTAs). It may also be used to monitor MTA components within gateways.

The MIB is composed of a basic table, the mtaTable, holding information specific to a MTA, the mtaGroupTable, holding information specific to each MTA group, and the mtaGroupAssociationTable, holding information regarding the associations for each MTA group.

The X.500 MIB

The X.500 MIB [26] contains objects for monitoring Directory System Agents (DSAs), a component of the OSI directory. This MIB may be used in conjunction with the Application MIB for monitoring DSAs. The X.500 MIB covers the portion which is specific to the DSA-application. The network service related part of the MIB, and the host resources related part of the MIB, as well as other parts are covered in the analogous MIBs.

The managed objects included in this MIB are divided into three tables: the dsaOpsTable, the dsaEntryTable and the dsaIntTable. The dsaOpsTable provides summary statistics on the accesses, operations and errors. The dsaEntriesTable provides summary statistics on the entries held by the DSA and on cache performance. The dsaIntTable provides some useful information on the interaction of the monitored DSA with peer DSAs. The dsaIntTable provides a useful insight into the effect of neighbors on the DSA performance. The table keeps track of the last "N" DSAs with which the monitored DSAs has interacted (attempted to interact), where "N" is a locally-defined constant.

A MIB aiming to the management of information services should include objects (number of entries cached, cache hits, etc.) about the performance of caching mechanisms used. This could be done as for example in the X.500 MIB (dsaEntriesTable).

The Mail and Directory Alarms MIB

The Mail and Directory Alarms MIB [21] defines alarms for Mail and Directory usage. It has to be used in conjunction with the Mail and Directory Management (MADMAN) RFCs. Alarms are notifications of abnormalities associated with an MTA or a message processed by an MTA. Alarms are generated by a Management Console. Two facilities aid the Management Console in the generation of alarms. The first facility is the trap, which is an unsolicited event initiated by an agent and directed to the Management Console. Traps generated by an agent may optionally convey the values of MIB variables inside them. The Management Console interprets the traps and generates alarms as it determines appropriate. The second facility consists of variables that can be polled by the Management Console. If the Management Console detects a variable value which indicates that a threshold has been reached, or some other event has occurred, it generates an alarm as it determines appropriate. It is expected that when an abnormality occurs, a trap will be generated indicating the specific cause of the problem. If the trap is lost or discarded by the network, the console may still detect the abnormality on its next regular polling cycle through inspection of the MIB variables. This combination of mechanisms provides a flexible alarm functionality that is either event-driven, polling-driven, or both.

An equivalent alarm mechanism or set of alarm mechanisms may be used in order to support a hierarchical structure of managers. Intermediate managers will generate alarms towards other higher-level managers, when abnormal events occur.

Netscape MIB

Netscape Enterprise Server 2.0 supports SNMP versions 1 and 2 for standards-based, remote monitoring capabilities, enabling seamless integration with SNMP management stations. The Netscape MIB has an object identifier of 1.3.6.1.4.1.1450. Using the Netscape MIB, you can monitor the Netscape server by using network management software.

By using the Netscape MIB, one can see administrative information about the Netscape server and monitor the server in real-time. There are three tables providing this information the httpEntityTable, the httpStatisticsTable and another httpStatisticsTable providing NT specific statistics on the Netscape server.

The httpEntity table provides several static information on the Netscape server (a description of the server, the HTTP version number, the server software version number, the methods supported by the server, the maximum and the minimum number of active processes on the server, the maximum and the minimum number of active threads on the server, etc.).

The httpStatisticsTable provides several statistics on the Netscape server (the status of the server, the number of server's idle threads, the number of server's threads that are processing requests, the total number of requests received/generated, the total number of request errors detected, etc.).

The MIB from Netscape provides several static and statistics information on the Netscape server. All MIB variables are read-only and the network manager is not able to configure the server through SNMP. Static variables are the ones included in most of the http MIBs found in the literature (CEO HTTP-MIB, XXX-MIB, WWW-MIB, ISN-MIB).

The following diagram illustrates how Netscape implements basic SNMP managemnt functionality in their product:

The Netscape MIB implementations
Figure : The Netscape MIB implementations

Concluding, the MIB from Netscape provides several static and statistics information on the Netscape server. All MIB variables are read-only and the network manager is not able to configure the server through SNMP. Static variables are the ones included in most of the http MIBs found in the literature (CEO HTTP-MIB, XXX-MIB, WWW-MIB, ISN-MIB).

Microsoft Internet Information Server MIB

Microsoft Internet Information Server MIB Microsoft Internet Information Server exposes a rich set of service activity metrics through Performance Monitor and SNMP. These metrics (referred to as counters for Performance Monitor and as MIB variables for SNMP) show current configuration information, current activity, activity high-water marks (the largest recorded values for current activities), and total or cumulative counts of operations. Cumulative and high-water mark counters are always measured since service startup.

The MIB of the Microsoft Internet Information Server includes managed objects for all information services (FTP server, Gopher server, and HTTP server). In this MIB there are several objects monitoring cache (Cache Hits, Cache Hits %, Cache Misses, Cache Size, Cache Used, Cached File Handles, etc.). Concerning HTTP MIB, there are mainly objects collecting statistics. Counters are organized into sections for the service measured.

Generic counter are providing information on total cache hits since service startup, ratio of cache hits to all cache requests, total cache misses since service startup, the configured maximum size of the shared HTTP, FTP, and Gopher memory cache, the current number of bytes containing cached data in the shared memory cache, etc. As far it concerns the FTP server, several counters are providing information on the rate at which data bytes are received and sent by the FTP server, the total number of connection attempts that have been made to the FTP Server, the current Number of anonymous users currently connected to the FTP server, the total files uploaded to and downloaded from the FTP server since service startup, the largest number of anonymous users simultaneously connected to the FTP server, etc.

As far it concerns the Gopher server, several counter are providing information on the following. The total number of connections aborted due to error or over-the-limit requests made to the Gopher server, the rate at which data bytes are received and sent by the Gopher server, the total number of directory listings sent by the Gopher server since service startup, the total number of logon attempts made by the Gopher server since service startup, the total number of searches performed by the Gopher server since service startup, etc.

As far as concerns the HTTP server, information is provided on the rate at which data bytes are received and sent by the HTTP server, the total number of CGI requests executed since service startup, the rate at which HTTP requests are currently being handled, the current number of connections to the HTTP server, the number of requests that couldn't be satisfied by the server because the requested document could not be found, the number of HTTP requests using the POST method, etc.

Concluding, the MIB from the Microsoft Internet Information Server includes managed objects for all information services (FTP server, Gopher server, HTTP server). In this MIB there are several objects monitoring cache (Cache Hits, Cache Hits %, Cache Misses, Cache Size, Cache Used, Cached File Handles, etc.). Concerning HTTP MIB, there are mainly objects collecting statistics.

Synopsis - Management Requirements

We have analyzed the configuration and logging mechanisms of major information servers, examined the HTTP protocol description and reviewed the various management architectures. The main conclusions are summarized below:

Several MIBs are defined in the literature that are relevant to the management of information services. The review of these MIBs provides us with several points that should be considered in the design of the proposed management framework and the MIB:

The management functions

This chapter provides an outline of the requirement for the MIB structure, without presenting formal syntax information, and describes the encompassing management architecture. The management function areas are defined from a user, a performance/implementation, and an architecture perspective which provide the starting point for designing the framework.

User requirements

Driven by the user requirements survey, the analysis of information engines and related management efforts, we identify the following interaction classes:

The management of Information Services can not be realized without the manipulating of the two main actors: the information server and the information client. This fact identifies the two actors as potential locations for installing MIBs and agents that maintain and provide management information to the managers. Since it is not feasible to install agents to every node running clients the proposed agent and MIB modules aim at information server and offered services management. However, minimal client support is included and could be instrumented in the agent implementation.

Performance Requirements

An important requirement is that the agent is as much light-weighted as possible and does not impose high processing or storage requirements on the managed system. This requirement imposes restrictions on the implementation methods adopted: small number of processes, minimal storage and processing requirements, avoidance of busy waiting techniques, etc. The way object instances are maintained and updated is also a very important performance factor. The majority of the MIB objects should be evaluated on demand and if possible derived by other system resources and not stored in the agent's memory or permanent storage. Data that need to be stored separately should require minimal processing and calculated on demand and/or incrementally, wherever possible.

Minimizing overall management traffic generated by the SNMP entities for manager-to-agent or manager-to-manager interaction is also a requirement, especially important at the WAN level. This is met, at least to an extent, by introducing a hierarchical, distributed model and by providing asynchronous notification functionality. The management applications (the core of the managers) that will be built to take advantage of the model, should rely as much as possible on these two features in order to minimize unneeded polling procedures, or limit them in local scope where more bandwidth is available.

Some groups of objects in the proposed MIB modules are involved with system and network security in a twofold way: they provide information on information engine access control and at the same time allow remote configuration of these security mechanisms. It is obvious that supporting configuration functionality may compromise system security unless the management protocol (in our design SNMPv2) provides a solid security model. Since SNMP security is not a resolved matter yet, the implementation of such functionality is left to be decided in the implementation or configuration of the agent, depending on whether the protocol security requirements are met. We expect that it will soon be resolved, since work is in progress and it is highly needed by the management community.

Architectural Requirements

The architectural design of an Information Service has also direct influence on the structure and contents of the MIB. Therefore, the generic IS architecture analysed and described in chapter 1 will be assumed as an input for the definition of the managed objects.

The generic IS System with the managed objects
Figure 3: The generic IS System with the managed objects

Figure X illustrates the managed objects reflecting the architecture of an Information Service.

MIB Structure

The this chapter attempts to present an overview of the MIB structure and present the main functionality provided by the managed objects. The definition of these managed objects are driven by the management functions of the previous chapter. An emphasis is given to semantics and structure, but not syntax (see Appendix C for the actual MIB-definition).

The isnSystem group

The isnSystem group maintains a table with information on the information entities running on the system and a few parameters of the system (system MIPS, local network bandwidth and Internet connection bandwidth of the site that the system belongs to).

The most important part of the group is the isnentityTable that maintains basic information on all the information entities running on the system that are being monitored by the agent. Apart from these parameters, the table provides the index for all tables with statistics and other management data on the entities. Each isnentityEntryprovides the following information:

The isnProtocol group

The isnprotocol group maintains statistical data associated to the information protocols supported by the system entities. It includes three tables that provide mostly statistics at the protocol PDU or byte stream level.

The isnSummaryTable provides protocol summary statistics for the entities of the particular system. Each entry of the isnSummaryTable consists of the following objects:

The isnRequestTable provides detailed request statistics for the entities on this system. Each entry of this table consists of the following objects:

The table is indexed by the entity index, the request type and the protocol version. This means that the entries are ordered in the table by entity and sorted by request type and protocol, for example a table may look like this:

isnRequestEntry.1.httpGET.1.1.0.0 [entity with index 1, http get, version 1.1]

isnRequestEntry.1.httpGET.1.0.0.0 [entity with index 1, http get, version 1.0]

isnRequestEntry.2.httpGET.1.1.0.0 [entity with index 2, http get, version 1.1]

The isnResponseTable is similar to the isnRequestTable, providing detailed response statistics for all entities. The table is again indexed by the entity (applIndex), the response type and the protocol version. Each entry of this table consists of the following objects:

The isnMonitor group

The monitor group maintains state and statistical information for the managed information entities including generic error counters, client domain access and performance statistics, authentication mechanism statistics, cache usage statistics and dependency information and states of all applications involved in an Information System (information entity and dependent applications/entities).

The isnerrorErrorCountTable maintains an error counter for each entity. The counter is reset every time the manager reads it or when the agent is reset. Each entry of this table consists of the following objects:

The isnServiceTable maintains client domain access & performance statistics: the agent extracts the domain name (or address) from every client address and counts total accesses, bytes and service time in a per domain fashion. Furthermore, the table includes gauges for the average delay and packet loss to the client domain. Notice that an entry for a specific domain is included in the table only if at least one client from this domain accessed an entity in the system in the near past. To reduce the explosion in size of the table the agent deletes a domain entry after a pre-established time period without accesses from the domain. The table is indexed by the entity index and the domain name. Each entry of this table consists of the following objects:

The isnAuthTable maintains statistical information on successful and failed authentication operations. The table is indexed by the entity index and the authentication type; for each entity and supported authentication mechanism a entry is kept with counters for successfully authenticated (isnAuthSuccessCount) and failed accesses (isnAuthFailureCount).

The isnCacheTable provides statistical information on cache status and usage. The table is indexed by the entity index (applIndex) and entries are ofcourse included only for entities with caching mechanisms (proxies, etc.). The table includes a gauge for current entries in the cache, counters for total requests served by the cache and for total hits, and the average time an item remains in the cache.

The isnDependencyTable maintains dependency and inter-accessibility information for the components of the managed Information Systems (entity and dependent entities/applications). The table is indexed by the entity (applIndex) and the associated entity (the address and port number is used for identifying it). The association / dependency is tagged with a textual description and a set of four parameters collect performance and accessibility information for the dependency:

The isnConfig group

The isnconfig group provides an SNMP interface to the configuration parameters of the entities. It consists of a generic configuration table and two sub-groups: one associated with the configuration of proxies & mirroring and one for security configuration.

The isnConfigTable includes a set of generic configuration parameters, common to all information entities handled by the agent and the isnMIB. The manager may retrieve or modify these parameters for monitoring the settings or for performing remote configuration. The table is indexed by the entity table index (applIndex) and each entry of the table includes the following objects / configuration hooks:

The isnProxyMirror subgroup
This subgroup maintains information associated with caching-proxy and mirroring functionality configuration.

The isnproxyConfigTable maintains some of the proxy server configuration parameters and allows their modification by the manager. These include:

The isnproxyNonCachedTable allows the manager to define URLs that should not be cached by the caching proxy server. The table contains entries with two objects: the "non-cacheable" URL and the caching proxy entity (the applIndex is used).

The isnmirrorConfigTable allows the manager to configure the mirroring functionality. Each entry in the table identifies a mirrored package. The following parameters are hooked to entry objects:

The isnSecurity subgroup
This subgroup provides information associated with the security & access control mechanisms configuration.

The isnSecurityTable maintains security restriction information and allows the configuration of access control mechanisms for all entities that support them. Four types of restriction mechanisms are supported:

  1. based on denial of service (allow/deny) to specific domains. For ftp it corresponds to the 'deny' directories; for wais to the server access token. It can also be used to support system-level security wrappers.
  2. based on usernames (for the IS entities that support them). For http this table controls which directories are protected by the .htaccess mechanism. For ftp this accounts to the sublogins mechanism. This type is not applicable for wais and gopher.
  3. based on restricting access methods per domain or user class. This type is not applicable for http. For ftp corresponds to domain classes and permissions. For wais this is the database access control mechanism. For gopher this corresponds to the 'access' token.
  4. based on concurrent connection restrictions per client domain/class. For ftp it is defined per class (ftpaccess/limit token). For http and wais it is not applicable. For gopher it corresponds to the access token (domain based).

Restricting mechanisms can be set up and configured by creating / modifying rows in the table. Each row identifies a security restriction mechanism for a specific entity. The limit, subject and object of the restriction is also included in the table entry and their meaning depends on the restriction type (there are four types as described above).

The isnContent group

The isncontent group maintains information on the information content offered by the system's entities.

The scalar object isnInfoSize provides the total size (in MBs) of the information published by all the managed entities in the system.

The isntopicTable maintains a description of all topic areas published by each entity. Each table entry is indexed by the entity index and a unique table index, and includes a textual description of the topic area.

The isndocumentTable provides information and access statistics on the actual documents published by the managed entities. The table size is restricted to a maximum preset size (writTable by the manager). The table is indexed by the entity index (applIndex) and a TimeFilter variable. For each document in the table the following information is included in the entry: the document URI & resource URL, the document type (static, dynamic, mirror image), document size in bytes, the content coding method, the time of last update and total number of accesses since last reset. The Timefilter mechanism resets the counters each time the manager accesses the table.

The isnlog group

The isnLog group contains two tables, one for controlling the entity log files size and one for logging the most recent users accessing each entity.

The isnLogFileTable maintains an entry for every information entity log file. Each entry has three attributes: the log type (access, error or other log), a counter of the log file size in text lines and an object for clearing the actual log file (if the manager sets this object to TRUE then the respective log file is emptied). The table is indexed by the entity index (applIndex) and the log type. The manager uses this table for checking on the size of the entity log files and for remotely clearing the logs.

The isnRecentUserTable logs users that have recently connected to the entity, separately for each entity, up to a maximum number (per entity) set by the manager. Each row corresponds to a user accessing a specific information entity; thus the same user may appear in multiple entries corresponding to different information entities. The entry records the user identification (in the form user@address, where either "user" or "address" may not be available), the total number of accesses to the entity since the user entered the table and the last document accessed by the user in the specific entity. The table uses the RMON time filter mechanism and every time an entry is changed a "Time Mark" object is updated. The table is index by the entity index and time filter object.

Standardization Activities

The Internet Engineering Task Force (IETF) places significant effort in the definition of standards with relevance to the work undertaken in MUSIQ. The MUSIQ workpackage has therefore surveyed relevant RFCs and participated in relevant Working Group (WG) activities, monitoring their strategic directions and contributing to the work undertaken. Relevant final or interim results were integrated into MUSIQ specific activities, leading to a result in line with the key directions of standardization bodies and guaranteeing an easier compliance with standards once they become defined and recognized cost-effective implemenTable and useable. From all of the IETF activities, one WG work was paid special attention during the MIB definition phase in the MUSIQ workpackage: the SYSAPPL-MIB WG whose mandate is to define a set of managed objects for management of applications and the WWW. Collaboration and contributions were made to the work developed by this WG.

The monitored Working Groups

The HTTP WG

The HyperText Transfer Protocol Working Group defines the specification of the application protocol HTTP. After the first version - HTTP/1.0 - a number of issues were still not completely solved. The experience gained on hands-on after implementation and road testing also led to a protocol upgrading.

The use of proxies, persistent connection and virtual hosts related issues needed extra attention and further specification. A lot of these efforts should be resolved in HTTP/1.1, but extra functionality also unveiled other problems, such as those associated with hit-metering. Hit-metering is a mechanism that aims providing the original document with the number of hits the document had at a proxy. This mechanism let information manager/providers know more exactly how many times the information was requested.

The DISMAN WG

The DIStributed MANagement Working Group defines an initial set of managed objects for distributed network management applications and a framework where these applications can be consistently developed and deployed. The distributed network manager monitors and controls the delegated SNMP-agents and, at present, the hierarchical framework will be based only on the SNMP protocol, at all levels.

DISMAN provides a framework that could be used in MUSIQ to delegate management tasks. However, there is still to much open issues to be discussed under DISMAN, and the proposed framework has still to be proven solid and implementation cost-effective. MUSIQ framework architecture will be simpler and use a hybrid (not only SNMP) management framework, being worth noting that DISMAN future activities of the WG will maybe support hybrid management approaches.

The contributions to IETF Working Groups

MUSIQ has also made contributions to the associated working groups within the IETF, namelly to the Mail And Directory MANagement WG (MADMAN-WG) and the SYStem APPLication WG (SYSAPPL-MIB WG). The major contributions were made to the SYSAPPL-MIB addressing application management management of WWW servers..

application MIB contents, relationships and overlaps

In MUSIQ, different MIBs relating with application management were surveyed, their contents analyzed and cross-MIB overlaps and relationships identified. It is worth noting that this is an issue that has been worrying the IETF itself and has excluded many developers from an implementation. The outcome of this investigation is contributed to the IETF-community in the form of an internet-draft, "Survey of Defined Managed Objects for Applications Management". This draft has investigate both generic application and specific application MIBs, namely: The major conclusions of this survey were:
  1. Both the SYSAPPL-MIB and NSM-MIB claim to be generic for applications management (the SYSAPPL-MIB under an OS/host perspective and the NSM-MIB under a networked/distributed perspective).
  2. Many overlapping and duplicated objects are contained in the surveyed MIBs. For example, the software groups of the HR-MIB can be replaced with the recently defined SYSAPPL-MIB. Other overlaps or duplications consist mainly in objects providing a greater level of detail.
  3. Indexes defined in other MIBs may cause implementation problems when the referred MIBs are not implemented. The current SNMP framework gives no rules or hints on how to handle this situation. If an agent developer will not implement the referred MIB, he has to choose his own index values in a way that no conflicts will occur.
  4. Due to difference in definition of an application in the SYSAPPL-MIB and the NSM-MIB there is no unique relationship between the entries of both MIBs.

Mail And Directory MANagement Working Group

The MADMAN WG was reactivated to review the original documents produced by the WG. The original documents were RFC1565, RFC1566 and RFC1567, defining a set of management objects used for networked and distributed applications.

MUSIQ has contributed to this task, trying to make the NSM-MIB more consistent in its definition and getting support for the definition of objects that would enable the computation of QoS parameters (ref).

SYStem APPLication MIB Working Group

This working group addresses the need for instrumentation in applications management. The WG is chartered to define a set of managed objects for the monitoring and control of distributed application. The working group executes its work in two phases:

During the start of the definition phase of the MUSIQ MIBs - IS-NODE-MIB and IS-MANAGER-MIB (7,0) - the SYSAPPL-MIB WG and the HTTP-MIB interest group were work was closely monitored, and MUSIQ also contributed to the discussions held at the IETF meetings in Montreal and San Jose [43].

WWW-MIB versus IS-NODE-MIB

The goals for the IS-NODE-MIB defined under MUSIQ are similar to those of the WWW-MIB currently defined under the SYSAPPL-MIB WG of the IETF. The WWW-MIB originally started its definition in 1995 where a small group of people interested in network management of WWW (including the current MUSIQ team) setup a mailing list and made a presentation in a Birds of Feather (BoF) at the 36th IETF meeting in Los Angeles. The work of this interest group was officially adopted at the 38th IETF meeting in San Jose. At this last IETF meeting, input of related WGs such as the HTTP-WG was also requested.

The scope of the WWW-MIB is to manage Document Transfer Protocol (DTP) entities. The DTP is an abstraction of the actual protocol used for document retrieval and based on the request/response paradigm. The WWW-MIB not only defines objects for management of the DTP-entities, it also defines objects for hooking the MIB in the management framework as defined by the SYSAPPL-MIB and the MADMAN WGs..

The approach used in MUSIQ had to be more pragmatic, and we add to define a coherent MIB for Information Services that would enable the management applications to unambiguously retrieve all of the necessary information necessary to compute the Quality parameters defined under WP73 and the requirements identified under WP71. If the Information Service concept in MUSIQ is based on the same fundamentals as the WWW-MIB, the MUSIQ IS-NODE-MIB tries to be stand-alone not duplicating information ubiquitously defined in other MIBs. This approach was taken for the sake of consistency with IETF defined MIBs.

The Table below depicts the main differences between the WWW-MIB and the IS-NODE-MIB

object groupsWWW-MIB IS-NODE-MIB
system
  • entity table
  • entity table
  • network bandwidth objects
protocol statistics
  • summary table
  • received requests table
  • transmitted request table
  • received responses table
  • transmitted responses table
  • summary table
  • request table
  • response table
errors and faultsyet, TBD
  • error table counting the only the number of errors
delivered service to users will be part of the APPLICATION-MIB
  • service table in which some delivered QoS parameter per domain are monitored
authentication and security will be part of the APPLICATION-MIB
  • authenticate table counting the success and failures
  • security table for setting the access modes
cacheimplicitly embedded
  • cache table
dependent application-
  • dependency table
configuration will be part of the APPLICATION-MIB
  • configuration table
  • proxy configuration table
  • mirror configuration table
  • logfile table
provided information
  • document name table
  • document filter table
  • document table
  • topic table
  • document table
user trackingno (privacy reasons)
  • user table
external or relationship objects
  • relationship tables towards
    SYSAPPL-MIB
    APPLICATION-MIB
    NSM-MIB
  • NSM-MIB
    applGroup
    assocGroup
  • HR-MIB
    hrSystemGroup,
    hrStorageGroup,
    hrSWRunPerf

Table1: WWW-MIB versus IS-NODE-MIB
As seen from the table above, the MUSIQ IS-NODE-MIB is a superset of the WWW-MIB and all of the required objects are either defined within the IS-NODE-MIB or are mandatory for implementation, if already defined in other existing MIBs. The WWW-MIB doesn't define certain objects groups due to its more generic goal; hopefully these missing objects will be defined in the APPLICATION-MIB.

QoS Metrics Definition

This section presents a set of quality of service (QoS) metrics organized in groups according to their target group (manager only or end-user and manager). These QoS parameters are monitored by the MUSIQ management applications, while the MUSIQ agent provides the necessary objects (isnMIB) for implementing them. The following methodology was adopted in order to define the metrics:

Management Scenarios

General Requirements

The goal of MUSIQ is to produce a framework for the efficient management of distributed information servers that provide information organized hierarchically in a pan-European scale. Consequently, a distributed, hierarchical scheme is adopted for the MUSIQ management architecture, since it was considered the most suitable solution for satisfying the following efficiency and organizational requirements (not in order of significance):

Components & Interaction Semantics

It was early identified that a layered and distributed management framework should be adopted in order to effectively monitor and manage the heterogeneous and distributed web of information entities that the DESIRE project aims to organize. Another strategic decision was the adoption of the SNMP protocol for collecting the low-level management data. Two distributed architectures are presented below, both based on the SNMP MIB concept for low level monitoring and data collection, differing mainly in the way the various higher-level components (managers & management applications) communicate with each other, and in the semantics of their operation.

(a) A Full SNMP-based Approach

The overall architecture is organized in at least three levels of hierarchy, that may be generalized and expanded horizontally (add more planes with three levels that may intermix or not) or vertically (add more levels of hierarchy). The generic architecture exhibits a tree-like topology that may changes to a mesh if expanded, i.e. three core components are identified.

More levels of DM/RMMAs may be inserted between the MS and level 1, thus expanding the hierarchy vertically and generalizing the concept of the domain (include other managers in the domain of authority of a DM/RMMA). Multiple MSs may be introduced at the top level (horizontal expansion of the model) for satisfying redundancy requirements or for separating functionality at the top level, e.g. an MS is responsible for planning and global access statistical analysis, another is responsible for fault handling and trouble ticket generation, etc.

In this approach all interaction between the components is performed through the SNMP management protocol. The choice of SNMP mandates the use and installation of Management Information Bases (MIBs) on every component that interacts with entities at higher levels.

At level 1, the SNMP agents maintain the Information Service Node MIB (isnMIB) as it was defined in WP-7.2. The manager components access the isnMIB to retrieve low level management and implement their functions based on these MIB objects. The DM/RMMA components maintain the Information Service Manager MIB (ismMIB) as it was defined in WP-7.2. The ismMIB provides an SNMP interface to the functions that the DM/RMMA implements and supports the interaction with the MS components and generally with the higher level manager components.

This is a full SNMP-based approach throughout the hierarchy. It has the advantage of using a standard protocol and framework (de facto standard for TCP/IP based networks management) and it pertains to the IETF Distributed Management Working Group work.

The formal mapping of management functions on SNMP MIB objects provides a clean, standardized interface, but also requires a significant effort to implement and maintain (e.g. introduction of additional functions conveyed through MIB structures).

The full SNMP-based approach
Figure 8: The full SNMP-based approach

(b) Hybrid Approach

This approach relies on SNMP only for the collection of low-level managemnt data from the agents, i.e. requires a MIB implementation at level 1 only. The inter-manager component interaction is performed through other protocols. An outline of this approach is given in the following paragraphs and the detailed design will be produced within WP-7.5.

This is also a distributed hierarchical management architecture with the same SNMP agents at level 1, maintaining the isnMIB and multiple manager components at the higher levels:

The hybrid approach
Figure 9: The hybrid approach

(c) MUSIQ Implementation

Even though a MIB for the manager components (the ismMIB) was defined, the hybrid approach is considered by the MUSIQ consortium more feasible and appropriate for implemention within the DESIRE Project. Consequently, the design and implementation of the pilot agents and manager components will be based on this approach. Detailed architecture and design issues will be presented at the agent and management application documents (wp74 and wp75).

QoS Management

There are five actors involved in monitoring the quality of service offered by an IS:

This section identifies the functionality of these actors that is required in order to monitor & control the quality of service. This includes the QoS management procedures that the IS manager should perform through specific management functions implemented by the manager components and the end-user interaction with the management architecture (mostly for querying on the delivered QoS).

QoS Procedures

QoS Procedures are identified and classified into two groups: Generic and Direct QoS procedures. This is a first approach towards identifying the specific functional requirements of the management applications.

Generic QoS Procedures

These are not directly associated with QoS management, but act in an assisting way; they provide the means for implementing a QoS management framework:
  1. Graphical presentation of the managed domain architecture/synthesis (host & IS entities), faults and configuration changes, performance information, various statistics, etc. A graphical interface infrastructure that all QoS management procedures use to convey information to the human operator.
  2. An application interface to selected management functions, offered to remote managers in order to realize the distributed, hierarchical QoS management scheme described above.

Direct QoS Procedures

These are procedures directly associated with QoS management:

  1. Performance and resource utilization monitoring: monitoring of performance specific parameters that will provide the an picture of current QoS provided to users and will assist fault management and planning.
  2. Fault monitoring and reporting: alarm setting and reporting, identification of configuration problems and faulty configuration changes, error handling and diagnosis, error rate monitoring, and other fault management functions associated with the information service & entity.
  3. Security parameter configuration and monitoring: remote configuration of the information entity security mechanisms, handling of security events, monitoring of security status and generation of security alarm tickets.
  4. Planning and resource allocation: analysis of performance and fault historical data (system and entity resource utilization / access statistics / errors) for planning allocation of resources, upgrades, distribution of information, caching techniques, etc. aiming to sustained the desired QoS level or improve it.
  5. Remote configuration: remote configuration of entity parameters for tuning and improving the quality of service offered. This remote procedure is useful for minor adjustments that need to be completed quickly and remotely, or for small changes in configuration that need to be applied in parallel to multiple IS entities (possibly within the same domain or in different geographical or organizational groups).
  6. Content statistics: published information management. This includes: access statistics per resource/domain, error statistics per resource/domain, topics offered and other statistics that can assist planning decisions like caching configuration, mirroring, etc.

End-User Queries

There are three types of end-user queries:

QoS Indicators & Metrics

Contrary to the abstract QoS management procedures and generic requirements, the QoS indicators & metrics are identifiable parameters that are tightly connected to visualization and user perception. In order to implement the QoS management procedures mentioned above, a variety of QoS indicators is needed. QoS indicators are parameters directly associated to the MIB objects and they provide a mostly quantitative view of the status and behaviour of the IS entities. Because of their "low-level" nature, these indicators should not be accessible directly by the end-user. Instead, higher level parameters, the QoS metrics, that derive from one or multiple indicators should provide the end-user with the QoS view.

QoS indicators & metrics have qualitative differences in addition to differences in the way they are presented to the user. So, before presenting the defined parameters we first identify the different types of QoS indicators & metrics according to their semantics & visualization. Then the actual QoS indicators are presented, organized in functional areas. Finally, the QoS metrics, derived from indicators, are presented in groups classified according to functional areas and target group (end-user & manager or manager only).

The indicator description consists of:

QoS Indicator & Metric Types

The indicators are offered to the human operator (end-user or manager) through a friendly graphical interface in the following forms:

QoS Indicators

IS Entity Health & Performance QoS Indicators

These are parameters indicating the health and performance of the IS entity. Most of them are used to calculate similar QoS metrics and they are directly useful (viewed as is) mostly by the IS manager through accessing the manager components (SMs or DMs). They include indicators focused in four levels: LAN, WAN, host and IS Entity. LAN connectivity, health & performance
Site LAN bandwidth
Description: The bandwidth of the IS entity LAN.
QoS management procedure: Configuration management - domain topology/synthesis monitoring
Planning & resource allocation
MIB Objects: isnSysBandwidth from the isnMIB.
Type/Formula:This is a single value parameter.
Historical data:N/A
Hierarchy level: Retrieved by the SM.
Site LAN health & performance indicator
Description: Packet loss and delays between the IS entity and the dependent applications, that indicate the "health & performance" of the site LAN.
QoS management procedure: Performance and resource utilization monitoring
 Planning and resource allocation
MIB Objects: isnDependencyDelay, isnDependencyPacketLoss from the isnMIB.
Type/Formula: A 2-dimensional table with:
# rows = # IS entities
# columns = # of dependent applications
each cell contains two numbers: delay and loss to the host of the dependent application from the IS entity of the table row.
Example:
IS entity RDBMS WAIS server Weather Sensors Search engine
Web server10ms0.1%12ms0.0%   10ms0.0%
Gopher server     27ms0.0%14ms0.0%
FTP server       20ms0.0%
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The table is constructed and maintained at the SM.
The historical and ensemble average diagrams are maintained at the DM.

WAN connectivity, health & performance

Site WAN bandwidth
Description: The bandwidth of the site Internet connection.
QoS management procedure: Configuration management - domain topology/synthesis monitoring
Planning & resource allocation
MIB Objects: isnNetBandwidth from the isnMIB..
Type/Formula: This is a single value metric.
Historical data: N/A.
Hierarchy level: Retrieved by the SM.
WAN connection health & performance indicator
Description: Delay and packet loss from the IS entities of the site to all recent (defined by the isnServiceDeletePeriod object of the isnMIB) client domains.
QoS management procedure: Performance and resource utilization monitoring
Planning and resource allocation
MIB Objects: isnServiceDelay, isnServicePacketLoss from the isnMIB.
Type/Formula: A 2-dimensional table with:
# rows = # of IS entities
# columns = # of client domains
each cell contains two numbers: delay and loss to the host of the dependent application from the IS entity of the table row.
Example:
IS entity ntua.gr jrc.it umd.edu ...
Web server10ms0.1%12ms0.1% 200ms10%160ms45.5%
Gopher server15ms0.3%14ms0.1%   140ms41.7%
FTP server10ms0.0%11ms0.1% 260ms11%170ms42%
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The table is constructed and maintained at the SM.
The historical and ensemble average diagrams are maintained at the DM.

Host resources

Machine load indicator
Description: This indicator is intended to provide an estimation of the current server machine load through CPU, disk and the memory utilization.
QoS management procedure: Performance monitoring & statistics (the single value metric)
Planning & resource allocation (the meta-metrics)
MIB Objects: CPU utilization is provided by the hrProcessorLoad (if multiple processors are present, then take the average of all these objects) managed object of the HR MIB and memory utilization will be calculated through the hrStorageUsed, hrStorageDescr and the hrStorageSize managed objects. The hrStorageAllocationUnits object is used for converting the storage device size to KBs.
Type/Formula: This QoS indicator consists of the following three parameters:
ProcessorLoad(%) = Average[hrProcessorLoad] for all processors
DiskUtil(%) = hrStorageUsed / hrStorageSize*100 for every file system (disk partitions except swap space that is considered in MemoryUtil). A table is provided with all
Description Size (KB) Usage
/ 1024 54%
/usr 2000 56%
/www 4096 76%
MemoryUtil(%) = Average[hrStorageUsed / hrStorageSize]*100 for main & swap memory
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicators are polled at the SM. The historical and ensemble average diagrams are maintained at the DM.
Current number of processes for the system
Description: The number of processes currently loaded or running on the system that hosts the IS entity.
QoS management procedure: Performance and resource utilization monitoring
Planning & resource allocation (the diagram meta-metrics)
MIB Objects: The hrSystemProcesses managed object of the HR MIB.
Type/Formula: This is a single value parameter.
Historical data: None.
Hierarchy level: Polled at the SM.
System process load
Description: The number of processes currently loaded or running on the system divided by the maximum number of processes. According to the author of the HR MIB, on systems that have a fixed maximum number of processes, this metric can help diagnose failures that occur when this maximum is reached.
QoS management procedure: Performance and resource utilization monitoring
Planning & resource allocation (the diagram meta-metrics)
MIB Objects: The hrSystemProcesses and hrSystemMaxProcesses managed objects of the HR MIB.
Type/Formula: This is a single value parameter. System process load (%) = (hrSystemProcesses / hrSystemMaxProcesses)*100
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical and ensemble average diagrams are maintained at the DM.

IS Entity & Components

Number of connections for an IS entity
Description: Number of the current connections for the IS entity.
QoS management procedure: Performance monitoring & statistics (the single value metric & meta-metric)
Planning & resource allocation (the diagram meta-metrics)
MIB Objects: applInboundAssociations, applOutboundAssociations from the NSM MIB.
Type/Formula: This is a single value parameter calculated via the following formula: applInboundAssociations + applOutboundAssociations.
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: Calculated by the SM.
IS component load
Description: The number of the current connections divided by the maximum number of connections allowed for the IS component (IS entity or dependent IS entity). For the components that do not have an entry in the isnMIB entity table (they are not IS entities), this indicator cannot be defined since there is no MaxConnections parameter available.
QoS management procedure: Performance monitoring & statistics (the single value metric & meta-metric)
Planning & resource allocation (the diagram meta-metrics)
MIB Objects: applInboundAssociations, applOutboundAssociations from the NSM MIB. The maximum number of connections (used for the single value meta-metric) can be retrieved by the isnMIB (isnConfigMaxConnections).
Type/Formula: This is a single value parameter calculated via the following formula: (applInboundAssociations + applOutboundAssociations)/ isnConfigMaxConnections.
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical and ensemble average diagrams are maintained at the DM.
IS Entity Status indicator
Description: Indicates the current status of an IS entity. This is useful to both the manager and the end-user. When requested the manager will poll the NSM MIB to get the entity status. Alternatively, a dummy request through the protocol supported could be used (dummy requests generated by DM to access a specific URI). Possible values (taken from the NSM MIB) are: up(1), down(2), halted(3), congested(4), restarting(5), quiescing(6), unknown(7).
QoS management procedure: Fault monitoring & reporting
MIB Objects: applOperStatus from the NSM MIB.
Type/Formula: This is a single value metric.
Historical data: N/A.
Hierarchy level: Calculated by the SM.
IS System Component Status indicator
Description: "Health" metric on the IS system (master IS entity and dependent components). This indicator includes:
  1. percentage of operational components,
  2. current status (the IS Entity Status indicator - see above) for every component
QoS management procedure: Fault monitoring & reporting
MIB Objects: applOperStatus from the NSM MIB, isnDependencyTable (isnDependencyDescr, isnDependencyLatency) from the isnMIB.
Type/Formula: This is a set of values / Table indicator.
  1. percentage of operational components
    oper=0; appls=0;
    while (applIndex)
            {
            appls++;
            if (applOperStatus=="up") oper++;
            }
    percentage of operational components = (oper/appls)*100
    		 
  2. two parameters (applOperStatus, isnDependencyAccessibility) indicating the current status for each component:
applicationapplOperStatusisnDependencyLatency
master entityup-
appl 1up10ms
appl 2restarting12ms
Historical data: N/A.
Hierarchy level: Calculated by the SM.
Service Availability / Downtime indicator
Description: Downtime in minutes per week (or month). This is an indicator for service availability. Downtime is duration of service unavailability due to system (machine) or IS entity faults.QoS management
procedure: Fault monitoring & reporting (the single value parameter)
Planning & resource allocation (the diagram)
MIB Objects: applOperStatus and applLastChange from the NSM MIB and the sysUpTime from MIB-II.
Type/Formula: This is a single value parameter. The SM must periodically poll to check that the IS entity is up and running (accessible). If the MIB is accessible (the host is up) then (sysUpTime - applLastChange) provides the time periods for every state.
While the host is down (not accessible) the period is added to the downtime since the service is not available, regardless the reason.
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical diagram is maintained at the DM.
Fault frequency indicator
Description: Number of errors per day (or weekly, monthly, annually - configurable). This is QoS indicator of the IS entity faulty behaviour.
QoS management procedure: Fault monitoring & reporting (the single value parameter)
Planning & resource allocation (the diagram)
MIB Objects: isnErrorCountNum and isnErrorCountSince from the isnMIB.
Type/Formula: This is a single value parameter:
Fault frequency = isnErrorCountNum / (sysUpTime - isnErrorCountSince) *24*3600*100 errors per day.
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with daily resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical diagram is maintained at the DM.
Reliability indicator
Description: Number of errors per total number of requests and responses generated or received by the IS entity. This is QoS metric of the IS entity reliability.
QoS management procedure: Fault monitoring & reporting (the single value parameter)
Planning & resource allocation (the diagram)
MIB Objects: isnSummaryRequestErrors, isnSummaryResponseErrors, isnSummaryResponses, and isnSummaryRequests from the isnMIB.
Type/Formula: This is a single value (percentage) metric. Polling is required at the manager level for calculating the following simple formula:
(isnSummaryRequestErrors + isnSummaryResponseErrors) / (isnSummaryRequests + isnSummaryResponses).
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical diagram is maintained at the DM.
IS entity error table
Description: A table with counters for request & response errors, discards and unknown messages handled by the IS entity.
QoS management procedure: Fault monitoring & reporting (the single value parameters)
Planning & resource allocation (the diagram)
MIB Objects: isnSummaryRequestErrors, isnSummaryRequestDiscards, isnSummaryResponseErrors, isnSummaryResponseDiscards, isnSummaryInUnknowns managed objects of the isnMIB.
Type/Formula: A table (vector) indicator with five counters (see objects above).
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical diagram is maintained at the DM.
IS entity error table
Description: A table with throughput values for request & response errors, discards and unknown messages handled by the IS entity.
QoS management procedure: Fault monitoring & reporting (the single value parameters)
Planning & resource allocation (the diagram)
MIB Objects: isnSummaryRequestErrors, isnSummaryRequestDiscards, isnSummaryResponseErrors, isnSummaryResponseDiscards, isnSummaryInUnknowns managed objects of the isnMIB and the sysUpTime from MIB-II.
Type/Formula: A table (vector) indicator with five throughput parameters (corresponding to the objects above). Polling is used to collect values, calculate the vector and update the diagram. Throughput is calculated through a sliding-window mechanism: Average of N throughput values X(t), X(t+s), ... , X(t+N*s), where X(t) = [V(t) - V(t-s)] / s, V = MIB counter, s = sampling period.
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical diagram is maintained at the DM.
Requests served per IS entity
Description: Total requests & the percentage of successfully served requests. Unsuccessfully serviced requests are errors (both request and response) and discards.
QoS management procedure: Performance and resource utilization monitoring
Fault monitoring and reporting
MIB Objects: isnSummaryRequests, isnSummaryResponses, isnSummaryRequestDiscards, isnSummaryResponseDiscards, isnSummaryRequestErrors and isnSummaryResponseErrors from the isnMIB.
Type/Formula: A dual-value service indicator. The number of total requests is updated by polling the respective isnSummaryRequests object. The percentage is calculated as follows: (total_responses - total_errors - total_discards) / total_requests, where
total_responses =isnSummaryResponses,
total_errors =isnSummaryRequestErrors +
isnSummaryResponseErrors,
total_discards =isnSummaryRequestDiscards +
isnSummaryResponseDiscards
total_requests =isnSummaryRequests.
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The table is constructed and maintained at the SM.
The historical and ensemble average diagrams are maintained at the DM.
Requests served throughput per IS entity
Description: Total request throughput & the successfully served request throughput.
QoS management procedure: Performance and resource utilization monitoring
Fault monitoring and reporting
MIB Objects: isnSummaryRequests, isnSummaryResponses, isnSummaryRequestDiscards, isnSummaryResponseDiscards, isnSummaryRequestErrors and isnSummaryResponseErrors from the isnMIB.
Type/Formula: A dual-value service metric. The two throughput parameters are calculated using a sliding window mechanism (described earlier in the text) for the parameters of the "Requests served per IS entity" indicator (total requests & percentage of request served).
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The table is constructed and maintained at the SM.
The historical and ensemble average diagrams are maintained at the DM.
Total handled (transferred) bytes
Description: Total transferred bytes (in and out) by the particular information entity. It provides an indicator of the bytes directed to and generated from an IS entity, i.e. an indicator of the network (& partly system) load associated to the entity in terms of raw bytes.
QoS management procedure: Performance and resource utilization monitoring
Planning and resource allocation (diagram)
MIB Objects: isnSummaryInBytes and isnSummaryOutBytes from the isnMIB.
Type/Formula: Single value parameter: Total bytes in + total bytes out.
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical diagram is maintained at the DM.
Entity service throughput (bytes/sec)
Description: The entity service throughput in bytes per second, per remote client domain.
QoS management procedure: Performance and resource utilization monitoring
Planning and resource allocation (diagram)
MIB Objects: isnServiceDomain, isnServiceThroughput, isnServiceMeasureInterval and isnServiceRefreshPeriod of the isnMIB.
Type/Formula: A table/vector with throughput values for every client domain in the isnServiceTable of the isnMIB. The client domain is given by the isnServiceDomain object and the respective throughput is maintained by the isnServiceThroughput object.
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The table is constructed and maintained at the SM.
The historical and ensemble average diagrams are maintained at the DM.

Cache Efficiency Indicators

These are parameters that provide information on the caching system efficiency. They are useful for calculating the cache-specific QoS metrics and they may be directly accessed only by the IS manager.
Cache access & performance
Description: An indicator of cache access and performance: total cache requests (not necessarily equal to the total entity requests), and cache hit ratio in percentage of requests and bytes.
QoS management procedure: Performance and resource utilization monitoring
Planning and resource allocation
MIB Objects: isnCacheRequests, isnCacheHits, isnCacheDataFound, isnCacheDataNotFound from the isnMIB.
Type/Formula: A three value vector indicator:
total number of cache requests = isnCacheRequests
cache hit ratio (%) in requests = [(isnCacheHits * 100) / isnCacheRequests]
cache hit ratio (%) in bytes = [(isnCacheDataFound * 100) / (isnCacheDataFound + isnCacheDataNotFound)].
Historical data: Both historical and ensemble average diagrams are collected for the cache hit ratio. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The vector is constructed and maintained at the SM.
The historical and ensemble average diagrams are maintained at the DM.
Cache usage indicator
Description: Current number of entries cached (in the cache right now).
QoS management procedure: Planning and resource allocation
MIB Objects: isnCacheEntries from the isnMIB.
Type/Formula: Single value indicator. Directly retrieved from the isnMIB.
Historical data: Both historical and ensemble average diagrams are collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator at the SM.
The historical and ensemble average diagrams are maintained at the DM.
Cache entry TTL indicator
Description: Average time an entry stays in the cache.
QoS management procedure: Planning and resource allocation
MIB Objects: isnCacheAvgTTL from the isnMIB.
Type/Formula: Single value entry. Just poll the isnMIB
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The single value indicator is polled at the SM.
The historical diagram is maintained at the DM.
NOTE: This is a difficult to implement indicator/MIB object. Since it is very useful for resource allocation and planning of caching parameters and policies, it is included in the QoS parameter description and the MIB specification. However its feasibility to implement will be investigated in the agent instrumentation design.

Content Indicators

These parameters provide information on the IS entity content and they are used for calculating any content quality metrics. Direct access to these indicators may be useful only to the IS manager.
Document last access statistics
Description: An average time and variance between subsequent accesses for a document of an IS entity. These two parameters indicate the frequency documents are accessed for a specific IS entity and the diversity of frequently and infrequently accessed documents.
QoS management procedure: Content statistics
Planning and resource allocation
MIB Objects: isnDocumentLastAccess from the isnMIB.
Type/Formula: A dual value indicator, calculated as follows:
Average[TimeDifference(current DateAndTime, isnDocumentLastAccess)],
Variance[TimeDifference(current DateAndTime, isnDocumentLastAccess)],
where TimeDifference(t1, t2) = days from t2 to t1, t1>t2.
Historical data: A historical diagram for both is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The dual value indicator is polled at the SM.
The historical diagram is maintained at the DM.
Expired documents
Description: Current expired documents and average time and variance since expiration, for the IS entity.
QoS management procedure: Content statistics
Planning and resource allocation
MIB Objects: isnDocumentExpires from the isnMIB.
Type/Formula: A four-value indicator:
expired = 0
total = 0
average = 0
variance = 0
for all documents in the IS Entity
{
    total ++
    if (isnDocumentExpires < current DateAndTime)
    {
           expired ++
           average += (current DateAndTime - isnDocumentExpires)
           variance += average^2
    }
}
average = average / expired
variance = variance / expired - average^2
total number of expired documents = expired
expired documents percentage = expired * 100 / total
average time since expiration = average
variance of time since expiration = variance
Historical data: A historical diagram for the expired documents percentage is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The four value indicator is calculated at the SM.
The historical diagram is maintained at the DM.
Document Age
Description: The average time and variance since document last update.
QoS management procedure: Content statistics
Planning and resource allocation
MIB Objects: isnDocumentLastUpdate from the isnMIB
Type/Formula: A dual value indicator:
Average[TimeDifference(current DateAndTime, isnDocumentLastUpdate)], Variance[TimeDifference(current DateAndTime, isnDocumentLastUpdate)],
where TimeDifference(t1, t2) = days from t2 to t1, t1>t2.
Historical data: A historical diagram for both is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The dual value indicator is polled at the SM.
The historical diagram is maintained at the DM.
Number of topics for the entity
Description: The number of topics the IS entity offers.
QoS management procedure: Content statistics
MIB Objects: isnTopicTable, isnTopicIndex from the isnMIB
Type/Formula: A single value indicator:
topics = 0
for all entries in isnTopicTable
    topics ++

total number of topics = topics
Historical data: N/A
Hierarchy level: The indicator is calculated at the SM.

Access Statistics

Document accesses
Description: Total number of accesses per document and number of accesses since last update for top N documents. N is defined at the manager that constructs the table.
QoS management procedure: Content Statistics
Planning and resource allocation
MIB Objects: isnDocumentTable objects from the isnMIB: isnDocumentAccesses, isnDocumentAccLastUpdate, isnDocumentLastAccess.
Type/Formula: A table indicator. For example the table may look like:
Document Total Accesses Since Last Update Last Access
/doc1.html 1250345 12098 12/1/97 18:31
/dir/doc3.html 980945 1900045 04/6/96 14:22
/doc8.html 780458 8956 17/1/97 09:34
... ... ... ...
The values are directly polled from the isnMIB.
Historical data: N/A
Hierarchy level: The table is constructed and maintained at the SM.
User/domain accesses
Description: Statistics on N recent users & domains accessing the IS entity and top N users & domains with a configurable N.
QoS management procedure: Performance and resource utilization monitoring
MIB Objects: isnRecentUserTable objects (isnRecentUserAddress, isnRecentUserName, isnRecentUserAccesses, isnRecentUserLastAccess) from the isnMIB.
Type/Formula: Four tables: recent users, recent domains, top users, top domains. The SM periodically polls and empties the isnRecentTable from the isnMIB, storing the information at the SM storage system. Top N users and domains are easily calculated and stored in separate tables. The recent user/domain tables are easily constructed by sorting the users/domains on the last access field and storing in the "recent" tables the first N rows. The domain that each user belongs to, must be identified and aggregated counters and variables are be updated.
The tables would look like:
Recent N users
User AddressUser NameLast Access Total Accesses
147.102.13.10N/A 03/02/97 12:23125
193.125.12.5N/A 02/02/97 10:234598
...... ......
Recent N domains
Domain NameLast Access Total Accesses
jrc.it 03/02/97 12:23 50345
ntua.gr 01/02/97 18:05 179865
... ... ...
Top N users
User AddressUser Name Total AccessesLast Access
147.102.13.10N/A 25023403/02/97 12:23
147.102.13.7N/A 25008730/01/97 19:03
...... ......
Top N domains
Domain NameTotal Accesses Last Access
ntua.gr 1567034 01/02/97 18:05
ul.pt 805675 23/01/97 20:23
... ... ...
Historical data: N/A
Hierarchy level: Calculated at the SM. All raw data from the isnRecentTable are stored and the SM, while the top & recent N user/domain tables are periodically pushed to the DM.
Authentication statistics
Description: Authentication failures and successfully authenticated accesses.
QoS management procedure: Security parameter configuration and monitoring
MIB Objects: isnAuthType, isnAuthSuccessCount, isnAuthFailureCount from the isnMIB.
Type/Formula: A table with a row with success and failure counter for every authentication type. The values are directly polled from the isnMIB. For example:
Authentication Type Successes Failures
loginBased 20456 324
restrictedResourceBased 503453 1409
other 0 0
Historical data: A historical diagram is collected. The time period is configurable by the manager, e.g. construct a historical diagram with hourly resolution, etc.
Hierarchy level: The table is constructed at the SM.
The historical diagram is maintained at the DM.

QoS Metrics

The following QoS metrics are defined by using the QoS indicators discussed earlier in the text. These are parameters that are more abstract than the indicators and are directed mostly towards the end-user since they are easier to represent in a friendly, visualized way.

Network Metrics

Metric name:LAN status
Description: A metric on the qualitative status of the LAN (for a given IS entity) considering the intra-LAN delay and packet loss.
Units: percentage (0-100%), or graphical gauge or other GUI element ( - ), or textual characterisation (excellent, good, sufficient, poor, unacceptable).
Historical data: Historical and ensemble average diagrams. The end-user may request the actual metric or any of the two (or both) diagrams.
Indicators: Site LAN health & performance indicator
Formula: The metric is calculated according to:
  1. the profile of all sites within the domain,
  2. the local historical profile (in the SM perspective),
  3. pre-established thresholds (by the manager),

Both the SMs and DMs co-operate in the calculation of this metric and the construction of the diagrams in the first case.

  1. Each SM polls the agents in its site and retrieves the "Site LAN health & performance indicator". Then all delay and packet loss parameters are forwarded to the DM that the SM belongs to.
  2. The DM periodically collects the Site LAN health indicator instances from all the SMs in its domain and calculates the cumulative frequency for the delay and packet loss in the domain. For example, consider a domain with three sites (three SMs). The DM collects the following data:
    Delay (ms)
    site 11012 99,5    
    site 25048 515560   
    site 398,5 7,988,6 9,59
    Packet (%)
    site 110 10    
    site 212 101   
    site 300 010 01

    and produces the following cumulative frequencies:

    Delay Cumulative Frequency
    Packet Loss Cumulative Frequency

    Note that these distributions are stored at the DM and updated with every time new data are retrieved by the SMs.

    When a user inquires for the LAN status of a specific IS entity the DM retrieves the "Site LAN health & performance indicator" from the responsible SM and compares the delay and packet loss parameters to the two distributions it maintains for its domain. The result is a percentage calculated as follows:

    if ( delay < min_delay )
         F1(delay) = F1(min_delay)
    if ( delay > max_delay )
         F1(delay) = 1
    if ( loss < min_loss )
         F2(loss) = F2(min_loss)
    if ( loss > max_loss )
         F2(loss) = 1
    metric = [{F1(delay) - F1(min_delay)} / {1 - F1(min_delay)} * 50 +
              {F2(loss) - F2(min_loss)} / {1 - F2(min_loss)} * 50] %
    		 
    where F1(x) is the delay cumulative frequency, F2(x) is the packet loss cumulative frequency, min_delay / min_loss are the minima of the two distributions and max_delay / max_loss are the maxima of the two distributions. This metric may be presented to the end-user (or manager) as a percentage, a graphical gauge/bar or as a textual characterisation by introducing the following scale:
    unacceptable poor sufficient good excellent
    0-20 % 20 - 45 %45 - 75 % 75 - 95 %95 - 100 %
    For example, for a site reporting a delay of 10ms and a packet loss of 1%, given the above example distributions, the LAN status metric will be calculated as:
    metric =   [{0.625 - 0.0625} / {1 - 0.0625} * 50 +
                {0.938 - 0.5} / {1 - 0.5} * 50] %
           = 73.8%, or
    		 = "sufficient", or
    		 = 
    		 
    Alternatively, the SM may calculate the metric according to a similar distribution, stored at the SM, that characterizes the historical profile of the site. Finally, the metric may be identified according to pre-established thresholds set by the manager.
Metric name: WAN connection status & performance
Description: Similar in concept and presentation to the LAN status metric, but for the WAN level (WAN connection). This metric takes into consideration the:
  • Whether the WAN connection of the site to the Internet is operational (the site in question is currently connected to the Internet, not necessarily accessible from the end-user).
  • The delay and packet loss parameters from the site in question to the client domain (end-user inquiring).
Units: percentage (0-100%), or
graphical gauge or other GUI element ( - ), or
textual characterisation (excellent, good, sufficient, poor, unacceptable).
Historical data: Historical and ensemble average diagrams. The end-user may request the actual metric or any of the two (or both) diagrams.
Indicators: WAN connection health & performance indicator
Formula: Like in the calculation of the LAN status metric, this metric may be calculated in a DM, SM or threshold based manner.

For the SM-relative and the pre-established threshold cases the metric is calculated in the local SM. For the domain-relative case both the SMs and the DM participate in constructing this metric and the historical & ensemble average diagrams:

  1. Each SM polls the agents in its site and retrieves the "WAN connection health & performance" indicator. Then all delay and packet loss per client domain parameters are forwarded to the DM that the SM belongs to.
  2. The DM periodically collects the WAN health indicator instances (delay and packet loss) from all the SMs in its domain and calculates the cumulative frequency for the delay and packet loss per client domain. This is done as in the LAN status metric described above, but here the DM maintains multiple cumulative frequencies, since there is one for every client domain. The number of recent domains stored should be configurable.

When the end-user inquires the DM for the WAN connection metric of a specific IS entity/system, the DM requests the current "WAN connection health & performance" indicator from the SM responsible for the entity and then compares the packet loss and delay for the end-user domain to the respective distribution. The metric (as a percentage) is calculated with the same formula presented for the LAN status metric:

if ( delay < min_delay )
     F1(delay) = F1(min_delay)
if ( delay > max_delay )
     F1(delay) = 1
if ( loss < min_loss )
     F2(loss) = F2(min_loss)
if ( loss > max_loss )
     F2(loss) = 1
metric = [{F1(delay) - F1(min_delay)} / {1 - F1(min_delay)} * 50 +
          {F2(loss) - F2(min_loss)} / {1 - F2(min_loss)} * 50] %
	 
where F1(x) is the delay cumulative frequency, F2(x) is the packet loss cumulative frequency, min_delay / min_loss are the minima of the two distributions and max_delay / max_loss are the maxima of the two distributions (for the specific client domain). This percentage may be translated to a textual characterisation using the same scale discussed in the LAN metric above.

Note that the end-user domain may not be present in the SMs (simply because none from this domain accessed the site recently), thus no distribution will exist in the DM for the specific client domain. In this case, the DM should use overall statistics and present to the user an aggregated metric for all other client domains (the same formulas will be used to calculate the metric and then an average will be taken).

System Metrics

Metric name:Machine load
Description: This metric provides an estimate of the system load of the machines hosting an IS system (IS entity and dependent components). For simple IS systems (e.g. consisting of a single IS entity, or a single machine hosting all components), this metric will represent the system load of a single machine, otherwise, it is an average estimate for multiple hosts.
Units: percentage (0 - 100%), or graphical element like a gauge or bar.
Historical data: Historical and ensemble average diagrams. The end-user may request the actual metric or any of the two (or both) diagrams.
Indicators: Machine load, system process load.
Formula:
metrichost = MemoryUtil*0.5 + ProcessorLoad*0.25 +
            SystemProcessLoad*0.25
metric = 0.5*metricIS_Entity_host + 0.5*Average[metriccomponent_host]

IS Entity / Application Metrics

Metric name: IS system availability
Description: Availability (percentage of time that the system is operational, not down) of the IS system, taking into account all IS system components (IS entity & dependent applications).
Units: Percentage (0-100%).
Historical data: This metric is historical by nature. A historical diagram has no meaning.
Indicators: Service availability / downtime indicator
Formula:
Availabilityi = [1 - (downtime / total_time)] * 100 %
Availability = 0.5 * AvailabilityIS_entity +
               0.5 * Average[Availabilitycomponent_i]
(total_time is the period that downtime is calculated for, e.g. day)
Metric name: IS system load
Description: The current load of an IS system (main IS entity and dependent entities) by taking into account the current number of connections and maximum allowed connections.
Units: Percentage (0 - 100%), or graphical element like a gauge or bar.
Historical data: Historical and ensemble average diagrams. The end-user may request the actual metric or any of the two (or both) diagrams.
Indicators: IS component load
Formula:
Load = 0.5 * LoadIS_entity + 0.5 * Average[Loadcomponent_i]
Metric name: IS system & component health
Description: Current operational status of the complete IS system and every component.
Units: Percentage (0 - 100%), or graphical element like a gauge or bar.
Historical data: Historical and ensemble diagram for both the system and the component metrics. The end-user may request the actual metric or the diagram (or both).
Indicators: IS system component status indicator (table).
Formula:
switch (applOperStatus) {
       case "up":
               Healthcomponent_i = 100
       case "congested" :
               Healthcomponent_i = 50
       default:
               Healthcomponent_i = 0
       }
Health = 0.5 * HealthIS_entity + 0.5 * Average[Healthcomponent_i] %
Metric name: IS component MTTF and reliability
Description: Mean Time To Failure (MTTF) and component reliability (expected lifespan) for all IS system components: IS entity and dependent components.
Units: MTTF: number or graphical element indicating days,
Component reliability: percentage or graphical element (bar, etc.).
Historical data: Historical diagram for the component reliability metric.
Indicators: IS system component status indicator (table).
Formula: The MTTF is calculated by monitoring the IS system component status indicator table as Average[time period between subsequent failures]. Component reliability is calculated as:

100*e EXP{-((1/MMTF_i)t_i)}, where MTTFi is the mean time to failure of componenti and ti is the time since the componenti was last initialized. Both should be in the same unit (e.g. days, minutes, etc.). Notice that a high MTTF will tend to produce a very low percentage, while the percentage for low MTTF values approaches 100% exponentially.

Metric name: Current throughput
Description: The current total throughput of the IS entity in bytes/sec and a percentage (compared to all other sites in the domain).
Units: bytes/sec (throughput) -
percentage / textual characterisation (comparison to other sites in the domain).
Historical data: Historical and ensemble average diagrams. The end-user may request the actual metric or any of the two (or both) diagrams.
Historical diagram example:
Historical diagram example

Ensemble average diagram:

Ensemble average diagram
Indicators: Total handled bytes indicator.
Formula: The SM calculates current throughput from the indicator (using a sliding window mechanism). Throughput values and historical data are forwarded to the DM. The DM provides to the end-user the actual throughput in bytes/sec, and maintains the cumulative frequency for the domain. On the end-user inquiry, the DM compares the current throughput to the distribution and derives a percentage/textual characterisation using the formulas described earlier.
Metric name: Current throughput for the client domain
Description: Similar to the previous metric. Two parameters: throughput in bytes/sec and percentage/textual characterisation, but for the client (end-user) domain.
Units: bytes/sec (throughput) - percentage/textual characterisation (comparison to other sites in the domain).
Historical data: Historical and ensemble average diagrams. The end-user may request the actual metric or any of the two (or both) diagrams.
Indicators: Entity service throughput indicator (table).
Formula: The SM calculates the indicator. The throughput table is forwarded to the DM. The DM provides to the end-user the current throughput in bytes/sec, and maintains the cumulative frequency diagrams for all the client domains. On the end-user inquiry, the DM compares the current throughput to the distribution and derives a percentage/textual characterisation using the formulas described earlier.
Metric name: Average throughput
Description: The average total throughput of the IS entity.
Units: bytes/sec.
Historical data: none.
Associated metric: Current throughput metric (see above).
Formula: The DM calculates the average throughput from the distribution it maintains.
Metric name: Average throughput for the client domain
Description: The average throughput of the IS entity for a specific client (end-user) domain.
Units: bytes/sec.
Historical data: none.
Associated metric: Current throughput for the client domain metric (see above).
Formula: The DM calculates the average throughput from the distribution it maintains.
Metric name: Content age
Description: Average age of documents of an IS entity (since last update).
Units: days
Historical data: none
Indicators: Document age indicator
Formula: The DM extracts from the indicator the average time part for presentation to the user.
Metric name: Top documents
Description: A subset of the "Document accesses" indicator
Units: table {document URL with link, total accesses}
Historical data: none
Indicators: Document accesses indicator
Formula: The DM retrieves the indicator from the SM and derives the described table for presentation to the end-user.
Metric name: Top domains
Description: A subset of the "User/domain accesses" indicator
Units: Table {domain name, total accesses}
Historical data: none
Indicators: User/domain accesses indicator
Formula: The DM retrieves the indicator from the SM and derives the described table for presentation to the end-user.
Metric name: Cache efficiency
Description: Identical to the "Cache access & performance" indicator.
Units: percentage
Historical data: none
Indicators: Cache access & performance indicator
Formula: -

Conclusions

With the work reported in this document we have successfully accomplished the objectives initially envisaged for work-packages 72 and 73 of the MUSIQ/DESIRE project, namely:

From (a) the analysis of end-user & IS manager requirements, (b) the study of the IS engines and (c) the survey of related research in the area, we have concluded that the requirements for management of information systems is focused mainly on monitoring (of operation, access, resource usage, etc.) with less emphasis on remote configuration and security. This has been mapped on our results, from the MIB objects to the management functions and QoS metrics & indicators that were defined.

The distributed nature of Internet Information Services has dictated the adoption of a distributed layered management framework. In order to achieve a better organizational structure and accomplishing an efficient manipulation of large volumes of monitoring data, a hierarchical management framework was the adopted solution. The MUSIQ management framework will be based on a three level hierarchy of management components: (1) the agent, maintaining low-level information at the isnMIB. (2) The Site Manager (SM), responsible for collecting local detailed management information from the agents and store it over short time periods, aims mostly at operational management. (3) the Domain Manager (DM) storing higher level pre-processed management data over large time periods aiming at the computation of global utilization statistics, reliability and performance indicators.

Based on the rich set of management objects defined and the framework chosen, we have finally defined a set of QoS metrics and indicators, aiming at the management of Information Services as such and not as a set of individual disparate components (networks, systems, applications). With this in mind, we believe that we will be closer to the user perception regarding the assessment of Quality of Services levels once we have implemented the assessment techniques drafted in this document.

References - Bibliography

F. Anklesaria, M. McCahill, P. Lindner, D. Johnson, D. Torrey, and B. Alberti. "The Internet Gopher Protocol: A distributed document search and retrieval protocol." RFC 1436, University of Minnesota, March 1993.
T. Berners-Lee. "Universal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web." RFC 1630, CERN, June 1994.
T.Berners-Lee, R.Fielding, H.Frysryk, "Hypertext Transfer Protocol - HTTP/1.0", Internet Draft, IETF HTTP Working Group, February 1996.
T. Berners-Lee, L. Masinter, and M. McCahill. "Uniform Resource Locators (URL)." RFC 1738, CERN, Xerox PARC, University of Minnesota, December 1994.
N. Borenstein and N. Freed. "MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies." RFC 1521, Bellcore, Innosoft, September 1993.
D.Brower, B.Purvy, A.Daniel, M.Sinykin, "Relational Database Management System (RDBMS) Management Information Base (MIB) using SMIv2", RFC 1697, August 1994.
J.A.Carrilho, E.R.M.Madeira, "A Scheme for FTP Management," in Proc. of INET '94, JENC5.
J.Case, K.McCloghrie, M.Rose, S.Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)," SNMP Research, Cisco Systems, Dover Beach Consulting, International Network Services, RFC1902, January 1996.
J.Case, K.McCloghrie, M.Rose, S.Waldbusser, "Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2), SNMP Research, Cisco Systems, Dover Beach Consulting, International Network Services, RFC1902, January 1996.
L.N.Cassel, G.Patridge, and J.Westcott. "Network Management Architectures and Protocols: Problems and Approaches", IEEE JSAC, Vol. 7, no. 7, Sept. 89.
D. H. Crocker. "Standard for the Format of ARPA Internet Text Messages." STD 11, RFC 822, UDEL, August 1982.
F. Davis, B. Kahle, H. Morris, J. Salem, T. Shen, R. Wang, J. Sui, and M. Grinbaum. "WAIS Interface Protocol Prototype Functional Specification." (v1.5), Thinking Machines Corporation, April 1990.
R.Fielding, H.Frystyk, T.Berners-Lee, J.Gettys, J.C.Mogul, "Hypertext Transfer Protocol - HTTP/1.1", Internet Draft, IETF HTTP Working Group, April. 1996.
P. Grillo, S. Waldbusser, "Host Resources MIB," RFC1514, September 1993.
H. Hazewinkel, E. van Hengstum, A. Pras, "Definitions of Managed Objects for HTTP", draft-hazewinkel-httpmib-00.txt, April 1996.
H. Hazewinkel, E. van Hengstum, A. Pras, "Definitions of Managed Objects for an Information Retrieval Service", draft-hazewinkel-rsmib-00.txt, April 1996.
H. Hazewinkel, E. van Hengstum, A. Pras, "Definitions of Managed Objects for an Information Store", draft-hazewinkel-ismib-00.txt, April 1996.
J.Herman, "Enterprise Manage-ment Vendors Shoot It Out", Data Communications International, November 1990.
Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization. International Standard 8824, December 1987.
Information processing systems - Open Systems Interconnection - Systems Management Overview - International Organization for Standardization - International Standard 10040 - November 1992.
G.B. Jones, N. Jain, G. Mansfiled, "Mail and Directory Alarms," draft-ietf-madman-alarmmib-00.txt, March 1996.
B. Kantor and P. Lapsley. "Network News Transfer Protocol: A Proposed Standard for the Stream-Based Transmission of News." RFC 977, UC San Diego, UC Berkeley, February 1986.
S. Kille, N. Freed, "Network Services Monitoring MIB", RFC1565, January 1994.
S.Kille, N.Freed, "Mail Monitoring MIB," RFC1566, January 1994.
A.Leinwand, K.Fang. "Network Management: A Practical Perspective", Addison Wesley, 1993.
G. Mansfield, S. Kille, "X.500 Directory Monitoring MIB, RFC1567, January 1994.
K.McCloghrie, M.Rose, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II," STD 17, RFC1213, Hughes LAN Systems, Performance Systems International, March 1991.
C. Picoto, P. Veiga, "Management of a WWW Server using SNMP," JENC6.
J. Postel. "Simple Mail Transfer Protocol." STD 10, RFC 821, USC/ISI, August 1982.
J. Postel and J. K. Reynolds. "File Transfer Protocol (FTP)." STD 9, RFC 959, USC/ISI, October 1985.
J. Postel. "Media Type Registration Procedure." RFC 1590, USC/ISI, March 1994.
S.Rabie. "Integrated Network Management: Technologies and Implementation Experience", Infocom '92, IEEE, 1992.
J. Reynolds and J. Postel. "Assigned Numbers." STD 2, RFC 1700, USC/ISI, October 1994.
M.T.Rose, "The Simple Book: An Introduction Internet Management", 2nd edition, Prentice-Hall, 1994.
J. Saperia, C. Krupczak, R. Sturm, J. Weinstock, "Definitions of Managed Objects for Applications", draft-ietf-applmib-sysapplmib-06.txt, November 1996.
C. Kalbfleisch, C. Krupczak, R. Presuhn, J. Saperia, "Application Management MIB", draft-ietf-sysapplmib-applmib-02.txt, March 1997.
C. Kalbfleisch, H. Hazewinkel, J. Schoenwaelder, "Definitions of Managed Objects for WWW Servers", draft-ietf-sysapplmib-wwwmib-02.txt, March 1997.
H. Hazewinkel, "Survey of Defined Managed Objects for Application Management", draft-hazewinkel-appl-mib-00.txt, January 1997.
K. Sollins and L. Masinter. "Functional Requirements for Uniform Resource Names." RFC 1737, MIT/LCS, Xerox Corporation, December 1994.
F.Stamatelopoulos, T.Chiotis, B.Maglaris, "A Scaleable, Platform-Based Architecture for Multiple Domain Network Management", IEEE International Conference on Communications '95, June 1995.
S.L. Waldbusser, "A Look at the Host Resources MIB", The Simple Times, The Bi-Monthly Newsletter of SNMP Technology, Comment, and Events, Vol. 2, No. 3, May/June, 1993.
T. Chiotis, T. Karounos, M. Grammatikou, C. Stathis, B. Maglaris, R. Meneses, H. Hazewinkel, "Requirements Survey for Quality of Service in Distributed Information Systems"; MUSIQ/DERIRE project deliverable D71, June 1996 http://www.netmode.ntua.gr/musiq/wp71_survey/
R. Meneses - MUSIQ/DESIRE WP7 monthly progress reports (Internal)

APPENDIX A: Configuration of Information Services

This appendix provides a detailed overview of all the possible configuration parameters and options to configure existing information services. Therefore, several well-known application packages are surveyed in order to fin common options/parameters for configuration.

Standalone vs. inetd-started servers

Servers started by the inetd super-server have the advantage of reading their configuration files each time a client attempts to access their information (since inetd restarts them whenever they are needed). This allows changes in configuration files to take effect immediately. Standalone servers, on the other hand, require explicit restarting for configuration changes to take effect. Furthermore, a crashed standalone server will probably stay unnoticed and the service will become unavailable, whereas, in the inetd case fresh copies will be spawned on demand.

The type of server (standalone or inetd-started) is important to know for implementing remote configuration and maintenance. The existence of a MIB variable identifying the server type is essential. In addition, configuration changes made remotely to a standalone server should be followed by a server daemon restart (initiated by the agent). Restarting should be offered by the agent as an automated feature for remote configuration and as an option for resetting crashed servers, etc. However, restarting the server after each single SET operation on configuration MIB variables seems inefficient; time-out/grace period techniques could be used instead: the agent restarts the server when a grace period expires after a set of configuration changes. Restarting on demand could also be implemented through SETting specific MIB variables; this operation should, of course, be restricted to trusted entities.

WWW Servers

The configuration options, files and parameters of four http server implementations are briefly described below. Additional parameters are given in two cases of servers that may be configured to act as http proxy servers. The goal is to identify common functionality / parameters and management hooks for http servers and http proxy servers.

Objects associated with the remote configuration of http entities (with an emphasis on servers/proxies) will be defined in the MIB. Only generic parameters that are supported by all major servers will be considered. Implementation-specific parameters and options will only be included as variables only if they are considered extremely useful and expected to be supported by all vendors in the near future. All these should be generalized for the other information service entities that will be supported by the proposed management framework, i.e. ftp, wais, gopher.

Note, also, that the analysis of configuration and logging mechanisms that is presented in this section will not only provide objects and requirements for the MIB design, but will also assist the instrumentation design phase of the agent implementation.

The NCSA HTTP server

Developed by the NCSA httpd Development Team (http://hoohoo.ncsa.uiuc.edu/) which is part of the Software Development Group of the National Center for Supercomputing Applications at the University of Illinois at Urbana - Champaign , IL, USA.

During startup, the server reads a number of configuration files, that customize various aspects of its behavior. Configuration modifications require restarting of the server daemon for taking effect (unless the server is started by inetd). There are four text configuration files: httpd.conf, srm.conf, access.conf and localhost_srm.conf. Every file contains a set a variable/value pairs. A description of the v1.4 configuration files follows.

  1. httpd.conf: This is the main configuration file. Its variables are described below:
  2. srm.conf: Controls how the httpd server accesses documents and scripts in the system and how the namespace that the client views translates to the filesystem.
  3. access.conf: This configuration file defines access restrictions to Web browsers (access rights and directories). The variable are:
  4. localhost_srm.conf: This file defines the name space that the clients view if they access the server from localhost. Its directives are the same as in srm.conf.

The Apache HTTP server

Developed by the Apache HTTP Server Project. This HTTP server is based on the NCSA server. It uses exactly the same configuration files and an enhanced subset of the configuration variables of NCSA v1.4. The following variables / directives of NCSA are used in the Apache configuration files (with the same semantics):

AccessConfig, AccessFileName, AddDescription, AddEncoding, AddIcon, AddIconByEncoding, AddIconByType, AddLanguage, AddType, AgentLog, allow, AllowOverride, AuthGroupFile, AuthUserFile, AuthName, AuthType, BindAdress, DefaultIcon, DefaultType, deny, Directory, DirectoryIndex, DocumentRoot, ErrorDocument, ErrorLog, FancyIndexing, Group, HeaderName, IdentityCheck, IndexIgnore, IndexOptions, Limit, Options, order, PidFile, Port, ReadmeName, RefererIgnore, RefererLog, require, ResourceConfig, ServerAdmin, ServerName, ServerRoot, ServerType, StartServers, TimeOut, TransferLog, TypesConfig, User, UserDir, VirtualHost. The following variables are introduced only in Apache:

CERN (W3C) HTTP Server

Developed at CERN (http://www.w3.org/hypertext/WWW/Daemon/). The default configuration file is /etc/httpd.conf. Configuration variables identical to the ones used by the NCSA server are: ServerRoot, Port, ServerType, PidFile, UserDir, Redirect, AddType, AddEncoding, AddLanguage, AddIcon, ErrorLog. Variables with different names, but similar semantics, are:

The rest of the variables are:

CERN provides also an HTTP proxy server. In that case the following additional variables define the proxy's behavior:

In the case that there is a need to make an (inner) proxy connect to the outside world via another (outer) proxy server the are the additional directives:

The Netscape HTTP Server

This server is developed by Netscape Corporation (http://www.netscape.com/ comprod/server_central/). The Netscape uses four configuration files: admin.conf, magnus.conf, ns-admin.conf and obj.conf. Some configuration parameters used in the NCSA and Apache servers are used by Netscape (mostly under different names). Note that the manager configures the server through an HTML (with a browser) interface rather than editing the configuration files with a text editor.

The file magnus.conf plays the same role as http.conf and srm.conf. The file obj.conf defines and uses objects to control how the server handles documents and other data objects published by the server on the web (html files, CGI programs, images, etc.). In magnus.conf

The various directives in the two files are as follows: magnus.conf

obj.conf

Object definition and description is done by subsectioning through the object directive. In these subsections the following directives are used:

Netscape also provides an HTTP proxy server. In this case the configuration files are mainly the same, but there also is one additional configuration file, sockd.conf, that controls access through the possibly existent firewall and is mainly a list of deny/permit entries for hosts and users.

Also in magnus.conf file the init directive defines different functions, as follows:

Common configuration variables

The following table summarizes and compares all the configuration variables for the HTTP servers mentioned above. In the case of the Netscape server the column of the table represents functionality, although the configuration and initiation of the processes takes place in a different way than the rest of the servers.
HTTP ServersNCSAApacheW3C Netscape
AccessConfigXX   
AccessFilenameXX  X
AddDescriptionXX  ObjectType
AddEncodingXX XObjectType
AddIconXX AddIcon, AddIconToSTDcindex-init
AddIconByEncodingXX   
AddIconByTypeXX   
AddLanguageXX X 
AddTypeXX XObjectType
AgentLogXX  Addlog (record-useragent)
AliasX  MapNameTrans
AllowOverrideXX   
AlwaysWelcome   X 
AuthDBMGroupFile X   
AuthDBMUserFile X   
AuthGroupFileXX  Authtrans(grpfile)
AuthNameXX   
AuthTrans    X
AuthTypeXX  Authtrans(auth-type)
AuthUserFileXX  Authtrans(userfile)
BindAddressXX   
Chroot    X
CookieLog X   
DefaultIconXX   
DefaultTypeXX   
DefProt   X 
DELETE-script   X 
DidAddHref   X 
DirectoryXX Protect, DirAccessX
DirectoryIndexXX   
DirReadme   X 
Disable   X 
DNSLookup   XDNS
DocumentRootXX  Document-root(root)
Enable   X 
ErrorDocumentXX  Error
ErrorLogXX XX
Fail   X 
FancyIndexingXX DirShowIcons, DirShowBrackets, etc. cindex-init
GroupXX GroupId 
HeaderNameXX   
IconPath  X  
IdentityCheckXX X 
IndexIgnoreXX   
IndexOptionsXX   
Init    X
LanguagePriority X   
LimitXX   
LoadObjects    X
LogFileDateExt   X 
LogFormat  <User Specified> <CLF or Older>, LogTime, NoLog init-clf
MaxContentLenghtBuffer   X 
MaxRequestsPerChild X  ProcessLife
MaxServersXMaxClients  MaxProcs
MaxSpareServers X   
Meta-Dir   X 
MetaSuffix   X 
MinSpareServers X  MinProcs
OnDenyX    
OptionsXX   
OutputTimeOut   X 
ParentGroupId   X 
ParentUserId   X 
Pass   X 
PathCheck    X
PidFileXX XPidLog
PortXX XX
POST-script   X 
PUT-script   X 
ReadmeNameXX   
RedirectX  X 
RefererIgnoreXX   
RefererLogXX   
ResourceConfigXX   
RootObject    X
ScriptAliasX  Execservice(CGI)
ScriptTimeOut   X 
Search   X 
ServerAdminXX   
ServerNameXX HostNameX
ServerRootXX X 
ServerTypeXX X 
Service    X
StartServersXX   
SuffixCaseSence   X 
TimeOutXX InputTimeOut 
TransferLogXX AccessLogAddlog(server-log)
TypesConfigXX   
UserXX UserIdX
UserDirXX Xunix-home, init-uhome
VirtualHostXX   
Welcome   X 

Proxy ServersW3CNetscape
Cache AccessLogX init-clf
CacheCleanX 
CacheDefaultExpiryX 
CacheExpiryCheckX 
CacheLastModifiedFactorX lm-factor
CacheLockTimeoutX lock-timeout
CacheNoConnectX connect-mode
CacheOnlyXcache-mode
cache-protocols X
CacheRefreshintervalX 
CacheTimeMarginX 
CacheUnusedX 
CachLimit _1 & 2X 
CasheRootXcache-root
CasheSizeXcache-size
CashingXinit-cache
CollectGcMemoryUsageX 
ftp_proxyX 
Gc (garbage collection)X 
GcDailyGcXgc-times
gopher_proxyX 
http_proxyX 
init-proxy(log-format) X
init-proxy(timeout) X
KeepExpiredX 
no_proxyXsupress
NoCachingXcache-mode
top-dirs X
wais_proxyX 

Most configuration variables supported by the majority of the http servers should be included in the MIB and / or used in the instrumentation of the agent implementation. For example parameters of importance that should be used: log file location (error log, access log), server PID file, user and group id, server name, server port number, document root directory, server type (standalone or not), maximum server processes/connections, caching parameters, etc.

FTP

A description of the configuration parameters of ftp servers is presented together with information on setting up and maintaining an FTP archive. Only a single ftp server is considered (in contrast to the WWW case): the Washington University ftpd (version 2.4). This is one of the most popular ftp servers on the Internet and encompasses rich functionality and features.

The WU ftp daemon uses both command line options and various configuration files.

The command line options are:

There are also the following configuration files:

Configuring the ftpd daemon is only one step in the process of setting up and maintaining an ftp site. Other tasks are also needed, from simple ones, like setting up the user id for running the server to more complex procedures of maintaining the published information under a "clean" directory structure with searching support.

WAIS

The freeWAIS version 0.3 server is considered in this chapter. WAIS was originally developed at Thinking Machines and was made freely available on the Internet. Currently there are two versions of WAIS, the shareware freeWAIS maintained by CNIDR and the commercial WAIS produced by WAIS, Inc. The WAIS server and indexing mechanism provide a powerful searching tool that can be used as a standalone search engine accessing documents of different types or combined with other information servers (e.g. linked to http servers).

The configuration of the server is straightforward since nearly all configuration parameters are passed to the server executable through the command line syntax. Configuration files are used only for access control. Some server profile parameters are also set at the package building phase (editing of source header files). The command line parameters of the freeWAIS server that are associated with configuration are the following:

In addition to these parameters freeWAIS uses two configuration files for server and database access control, respectively. Both files are expected to live in the index file directory and their names are defined at compile time.

The server access control configuration file is used to limit access to the WAIS server to a particular set of hosts and its default filename is SERV_SEC. It should be readable by the user that the WAIS server runs as and writable only by authorized users (or just root). The file consists of entries in the following format:

   domain-name     [IP address]

The domain-name field specifies a host or a DNS zone that are allowed access to the server and potentially to all the resources brokered by the server. If the optional IP address field is supplied then the client can match either the domain name or the address. The WAIS server does not check if the two fields are the same.

The database security file controls access to individual sources offered by the server and its default file name is DATA_SEC. It has a similar form to the server access control file, using entries of the following format:

   source domain-name     [IP address]

Each line in the file grants access to the resource specified by the first field for a specific set of hosts defined by the next two fields in the same way as in the server security file; the source name may appear in multiple lines. Both files allow the use of wildcards for the domain-name and address fields.

The WAIS server offers to remote or local clients access to indexes and actual sources (files of various types) while the WAIS indexing application is responsible for creating and maintaining the search index files. Different kinds of index files are created according to the source file format and search that will be supported; WAIS understands more than 30 file types. Note that usually indexes are stored in different directories from the actual documents. Organizing a "clean" and secure structure is part of the WAIS configuration and maintenance task.

Gopher

The University of Minnesota gopherd is considered. Configuration and functional parameters descriptions given in this chapter are based on version 1.13, the last unlicensed version, which is widely used and available. An enhanced version, Gopher+, has been developed in 1994 and requires licensing fees for commercial use. The Gopher server preceded the http server in providing a uniform interface to remote information services over the Internet. However, Gopher is based on a text menu interface, does not allow text and images (or other media) to be mixed in one document and Gopher clients do not take advantage of graphical representation. It seems safe to predict that Gopher servers tend to be replaced by http servers. Nevertheless, you are considering Gopher in our IS analysis since there is a large installed based of Gopher server over the Internet.

As in the WAIS case, the Gopher server has many of its configuration parameters defined during compilation (requires editing of source header files). There is also a single all purpose configuration file that controls how the server works for the outside world. The gopherd.conf file (default file name) consists of lines with the "token:value" format. The most important tokens are the following:

access: <host-name or ip-address> <access control string(s)> <session limit>

By supplying domain (or host) names and ip addresses sets of hosts can be defined. The default keyword may be used for setting the default access control. Multiple access lines can be inserted in the file for defining permissions for different sets of machines. There are four access control strings:

browse (!browse): allows (prevents) browsing of directories but not reading of files.
read (!read): allows (prevents) actual viewing of files.
search (!search): controls searching.
ftp (!ftp): controls the use of the server as a Gopher-Ftp gateway.

A limit of concurrent sessions can also be set, e.g. access: default browse, !search 15, defines the default access control policy and allows browsing, prevents searches and limits sessions to 15.

The most important configuration command line options of Gopher are:

APPENDIX B: The full SNMP-based approach

Introduction

This Appendix discusses in more detail the "full SNMP approach" for the proposed management architecture that is presented in paragraph 1.2. The most important concept of this approach the IS Manager MIB (ismMIB) that provides the semantic interface for the interaction between the different manager components in the architecture. This Appendix discusses the structure and key features of the ismMIB, which is included in ASN.1 format in Appendix C.

Architectural Overview

Figure 10 presents the hierarchy of interfaces between the components of the full SNMP-based management architecture. At the lowest level, the agent provides a set of MIB objects, maintained at the isnMIB, that the manager components (mainly the DM/ RMMAs) use to implement specific management functions, QoS metrics and QoS indicators. The SNMP protocol is used for retrieving or remotely modifying the management data of the isnMIB. If the DM/ RMMA is located in the LAN of the agent then pure SNMP will be used; however, if a WAN path connects the two components then a tunneled form SNMP should be used since for performance or security reasons (most WAN routers filter out most UDP packets).

The architecture - MIBs and agents
Figure 10: The architecture - MIBs and agents

At the second level, the DM / RMMA component plays the dual role of the SNMP manager and agent: it acts as a manager from the isnMIB point of view by polling the MIB and implementing a set of management functions, while it behaves as an agent for higher level managers. The DM/ RMMA management functions produce a set of QoS parameters and other management objects that are mapped directly to the MIB objects of the ismMIB. These objects provide the semantics of the interaction between the manager components.

This three-level hierarchy may be generalized to include more levels by allowing a DM/ RMMA to be responsible for a domain of agents and other DM/ RMMAs. In this case, a hierarchical mesh of MIBs (isnMIBs and ismMIBs) is built with isnMIBs at the leaves and ismMIBs at the higher levels. Notice that a node may maintain both the isnMIB and the ismMIB if it hosts a DM/ RMMA and a managed IS entity. Figure 11 presents such an example.

Architecture overview - an example
Figure 11: Architecture overview - an example

The IS Manager MIB

The ismMIB consists of the following object groups:

ismSystem group

The ismSystem group includes tables that provide brief, "look-up" information on the managed IS systems of the DM/ RMMA's domain. The ism Managed-Information-Services table (ismMisTable) maintains information in a 'service oriented' manner in the sense that entries correspond to managed information services in the domain. Each entry may refer to multiple information entities (servers, proxies, etc.) but only to one type of information service. Through this table higher level managers may acquire an abstract view of the managed domain synthesis (types of services, count of managed entities).

The ism Managed-Application table (ismMappTable), on the other hand, maintains "look-up" information at the application level. For each IS entity the table maintains an entry with the host address, the isnMIB entity table index, the protocol role of the entity and the availability (up, down, unknown). Higher level managers may acquire through this table an overview of the entities of the domain and their current operational status; detailed information may be retrieved directly from the corresponding agent (isnMIB).

ismStatistics group

This table maintains QoS statistics objects at three levels of abstraction: system, entity and domain level.

The ismSystemQosTable maintains system level QoS statistics for all nodes hosting managed entities/applications. The table is indexed by the system ip address which the manager acquires by the ismMappTable. The table includes the system and memory utilization, as well as the average downtime. The refresh period for these data is settable by the manager.

The ismEntityQosTable provides QoS statistics for every entity in the managed domain. This information includes: the average entity downtime, the current number of connections, a load percentage, average daily number of connections, throughput in bytes/sec and error rate. Sampling and refresh periods are settable by the manager.

A set scalar objects included in the group provide overall (average or total) domain statistics: total domain connections for all entities, average raw throughput (in bytes/sec) and error rate.

ismSummary group

This group consists of objects that allow the definition of alarms and monitoring procedures. Each procedure may trigger an asynchronous notification that is sent to the higher level manager, or produce a "log" entry that is stored until the manager polls it later (more than one log entries, in a bulk-transfer fashion). In this way a higher level manager delegates to the DM/ RMMA the monitoring of the local domain and the collection of summary information that can be conveyed upwards through asynchronous notifications or bulk polling. This mechanism minimizes and confines polling at a local scale (usually LAN level).

The behaviour of each alarm/ monitoring procedure is specified in the ismSummaryEventTable. Each entry in the table defines an event that is triggered by the procedure. A triggered event fires a notification, creates a log entry (in the ismSummaryLogTable) or both.

Alarm procedures are defined by adding entries in the ismSummaryAlarmTable. Each entry corresponds to a different threshold alarm characterised by the following parameters:

Monitoring procedures are set by adding entries to a similar table, the ismSummaryMonitorTable. Each monitoring procedure (entry) includes the following parameters:

The ismSummaryLogTable provides the "log" to the triggered events for storing log entries (alarms or monitored values). Each entry corresponds to an activated alarm or event procedure and includes:

ismMIB notifications

Four types of notifications are defined in the ismMIB:

APPENDIX C: ASN.1 Authoring

Introduction

Management information can be viewed as a collection of managed objects, residing in a virtual information store, termed the Management Information Base (MIB). Collections of related managed objects are defined in MIB modules. These MIBs are written using an adapted subset of OSI's Abstract Syntax Notation One (ASN.1) [[19]]. This adapted subset is defined in a document called the Structure of Management Information [[8]].

Authoring Guidelines

According to the SNMPv2 Framework a MIB definition should include: module definition, object definitions, traps definitions, textual conventions and compliance statements. The following figure presents the adopted MIB structure.

Adopted MIB structure
Figure 12: Adopted MIB structure

We present some additional guidelines for MIB authoring.

  1. Objects should be put into logical groups. For detailed arrangements, hierarchical sub-grouping should be used.
  2. Aggregate objects should be defined as tables. One or more columns of the table are designated as the indices of the rows in the table. Tables can not defined within tables.
  3. Before a table that allow row creation and deletion, there is always an object (xNextEntry) that contains the index number of the first unassigned entry in the table. The RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of RFC1902). The status column has six defined values: `active', which indicates that the conceptual row is available for use by the managed device; `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device; `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device; `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row.
  4. A management station should create new entries in this table using the following algorithm: first, issue a management protocol retrieval operation to determine the value of xNextEntry; and, second, issue a management protocol set operation to create an instance of the xRowStatus object setting its value to createAndGo or createAndWait. If this latter operation succeeds, then the management station may continue modifying the instances corresponding to the newly created conceptual row, without fear of collision with other management stations.
  5. It is useful to define textualconventions.
  6. At the phase of the implementation the AGENT-CAPABILITIES macro should be used to convey the set of capabilities present in the entity acting in an agent role. The AGENT-CAPABILITIES macro allows an agent implementor to describe the precise level of support which an agent claims in regards to a MIB group.

Textual Conventions

When designing a MIB module, it is often useful to define new types similar to those defined in the SMI. In comparison to a type defined in the SMI, each of these new types has a different name, a similar syntax, but a more precise semantics. These newly defined types are termed textual conventions, and are used for the convenience of humans reading the MIB module. A initial set of textual conventions available to all MIB modules is defined in [[9]]. For all textual conventions defined in an information module, the name shall be unique and mnemonic, and shall not exceed 64 characters in length.

For the management of distributed information services the following textual conventions are defined or used as is:

TruthValue FROM SNMPv2-TC

TimeStamp FROM SNMPv2-TC

DisplayString FROM SNMPv2-TC

DateAndTime FROM SNMPv2-TC

Tools Used

The MIB developed will be verified using the SMICng MIB compiler. This is short for SNMP MIB Information Compiler the "next generation". SMICng is written in portable C code and is available on several hardware and operating system platforms including MS-DOS, OS/2, and UNIX. SMICng is designed for use by MIB developers, agent implementors, management station implementors, management station users, managed device vendors, and users of managed devices.

SMICng has the capability to check MIBs at varying levels of strictness. The checking level is controlled with command line switches, compiler directives, or with options specified in an environment variable. Output from SMICng is specified with command line switches and includes the following: internal data structures used for debugging or analysis by sophisticated MIB developers; an intermediate file to be used by other programs; MOSY version 7.1 output, both .defs and .tcl files (MOSY is a popular SNMP MIB compiler); a list of object name to object identifier assignments and a list of defined traps; a list of object identifier to name assignments, and an SNMPv1 MIB from an SNMPv2 MIB. Programs can be easily written to read one of the outputs from SMICng and then create a new output format. The README file contains information about the components of the SMICng package.

APPENDIX D: MIB ASN.1 Description