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
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:
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.

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.

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.

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).

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.

| 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. |
| 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. |
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. |
| 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 Servers | NCSA | Apache | W3C | Netscape |
|---|---|---|---|---|
| AccessConfig | X | X | ||
| AccessFilename | X | X | X | |
| AddDescription | X | X | ObjectType | |
| AddEncoding | X | X | X | ObjectType |
| AddIcon | X | X | AddIcon, AddIconToSTD | cindex-init |
| AddIconByEncoding | X | X | ||
| AddIconByType | X | X | ||
| AddLanguage | X | X | X | |
| AddType | X | X | X | ObjectType |
| AgentLog | X | X | Addlog (record-useragent) | |
| Alias | X | Map | NameTrans | |
| AllowOverride | X | X | ||
| AlwaysWelcome | X | |||
| AuthDBMGroupFile | X | |||
| AuthDBMUserFile | X | |||
| AuthGroupFile | X | X | Authtrans(grpfile) | |
| AuthName | X | X | ||
| AuthTrans | X | |||
| AuthType | X | X | Authtrans(auth-type) | |
| AuthUserFile | X | X | Authtrans(userfile) | |
| BindAddress | X | X | ||
| Chroot | X | |||
| CookieLog | X | |||
| DefaultIcon | X | X | ||
| DefaultType | X | X | ||
| DefProt | X | |||
| DELETE-script | X | |||
| DidAddHref | X | |||
| Directory | X | X | Protect, DirAccess | X |
| DirectoryIndex | X | X | ||
| DirReadme | X | |||
| Disable | X | |||
| DNSLookup | X | DNS | ||
| DocumentRoot | X | X | Document-root(root) | |
| Enable | X | |||
| ErrorDocument | X | X | Error | |
| ErrorLog | X | X | X | X |
| Fail | X | |||
| FancyIndexing | X | X | DirShowIcons, DirShowBrackets, etc. | cindex-init |
| Group | X | X | GroupId | |
| HeaderName | X | X | ||
| IconPath | X | |||
| IdentityCheck | X | X | X | |
| IndexIgnore | X | X | ||
| IndexOptions | X | X | ||
| Init | X | |||
| LanguagePriority | X | |||
| Limit | X | X | ||
| LoadObjects | X | |||
| LogFileDateExt | X | |||
| LogFormat | <User Specified> | <CLF or Older>, LogTime, NoLog | init-clf | |
| MaxContentLenghtBuffer | X | |||
| MaxRequestsPerChild | X | ProcessLife | ||
| MaxServers | X | MaxClients | MaxProcs | |
| MaxSpareServers | X | |||
| Meta-Dir | X | |||
| MetaSuffix | X | |||
| MinSpareServers | X | MinProcs | ||
| OnDeny | X | |||
| Options | X | X | ||
| OutputTimeOut | X | |||
| ParentGroupId | X | |||
| ParentUserId | X | |||
| Pass | X | |||
| PathCheck | X | |||
| PidFile | X | X | X | PidLog |
| Port | X | X | X | X |
| POST-script | X | |||
| PUT-script | X | |||
| ReadmeName | X | X | ||
| Redirect | X | X | ||
| RefererIgnore | X | X | ||
| RefererLog | X | X | ||
| ResourceConfig | X | X | ||
| RootObject | X | |||
| ScriptAlias | X | Exec | service(CGI) | |
| ScriptTimeOut | X | |||
| Search | X | |||
| ServerAdmin | X | X | ||
| ServerName | X | X | HostName | X |
| ServerRoot | X | X | X | |
| ServerType | X | X | X | |
| Service | X | |||
| StartServers | X | X | ||
| SuffixCaseSence | X | |||
| TimeOut | X | X | InputTimeOut | |
| TransferLog | X | X | AccessLog | Addlog(server-log) |
| TypesConfig | X | X | ||
| User | X | X | UserId | X |
| UserDir | X | X | X | unix-home, init-uhome |
| VirtualHost | X | X | ||
| Welcome | X |
| Proxy Servers | W3C | Netscape |
|---|---|---|
| Cache AccessLog | X | init-clf |
| CacheClean | X | |
| CacheDefaultExpiry | X | |
| CacheExpiryCheck | X | |
| CacheLastModifiedFactor | X | lm-factor |
| CacheLockTimeout | X | lock-timeout |
| CacheNoConnect | X | connect-mode |
| CacheOnly | X | cache-mode |
| cache-protocols | X | |
| CacheRefreshinterval | X | |
| CacheTimeMargin | X | |
| CacheUnused | X | |
| CachLimit _1 & 2 | X | |
| CasheRoot | X | cache-root |
| CasheSize | X | cache-size |
| Cashing | X | init-cache |
| CollectGcMemoryUsage | X | |
| ftp_proxy | X | |
| Gc (garbage collection) | X | |
| GcDailyGc | X | gc-times |
| gopher_proxy | X | |
| http_proxy | X | |
| init-proxy(log-format) | X | |
| init-proxy(timeout) | X | |
| KeepExpired | X | |
| no_proxy | X | supress |
| NoCaching | X | cache-mode |
| top-dirs | X | |
| wais_proxy | X |
| 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. |
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. |
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. |
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. |
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. |
<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. |
<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. |
| 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). |
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. |
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 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.


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].

| 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. |
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 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 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:
Other differences between the two MIBs are the following:
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 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. |
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). |
| 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. |
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:

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 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.

Figure X illustrates the managed objects reflecting the architecture of an Information Service.
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 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 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 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 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 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:
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:
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 groups | WWW-MIB | IS-NODE-MIB |
| system |
|
|
| protocol statistics |
|
|
| errors and faults | yet, TBD |
|
| delivered service to users | will be part of the APPLICATION-MIB |
|
| authentication and security | will be part of the APPLICATION-MIB |
|
| cache | implicitly embedded |
|
| dependent application | - |
|
| configuration | will be part of the APPLICATION-MIB |
|
| provided information |
|
|
| user tracking | no (privacy reasons) |
|
| external or relationship objects |
|
|
(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).

(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:

(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:
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:



| 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:
Example:
|
||||||||||||||||||||||||||||||||||||
| 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. |
||||||||||||||||||||||||||||||||||||
| 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:
Example:
|
||||||||||||||||||||||||||||||||||||
| 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. |
||||||||||||||||||||||||||||||||||||
| 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
|
||||||||||||
| 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. |
||||||||||||
| 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:
|
||||||||||||
| 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.
|
||||||||||||
| 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
|
||||||||||||
| 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 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. | |
| 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. |
| 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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
( |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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:
Both the SMs and DMs co-operate in the calculation of this metric and the construction of the diagrams in the first case.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Units: | percentage (0-100%), or graphical gauge or other GUI element ( 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:
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). |
| 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] |
| 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:
|
| 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: ![]() 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: | - |
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
| 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. |
| 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. |
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.
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:
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 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:
| HTTP Servers | NCSA | Apache | W3C | Netscape |
|---|---|---|---|---|
| AccessConfig | X | X | ||
| AccessFilename | X | X | X | |
| AddDescription | X | X | ObjectType | |
| AddEncoding | X | X | X | ObjectType |
| AddIcon | X | X | AddIcon, AddIconToSTD | cindex-init |
| AddIconByEncoding | X | X | ||
| AddIconByType | X | X | ||
| AddLanguage | X | X | X | |
| AddType | X | X | X | ObjectType |
| AgentLog | X | X | Addlog (record-useragent) | |
| Alias | X | Map | NameTrans | |
| AllowOverride | X | X | ||
| AlwaysWelcome | X | |||
| AuthDBMGroupFile | X | |||
| AuthDBMUserFile | X | |||
| AuthGroupFile | X | X | Authtrans(grpfile) | |
| AuthName | X | X | ||
| AuthTrans | X | |||
| AuthType | X | X | Authtrans(auth-type) | |
| AuthUserFile | X | X | Authtrans(userfile) | |
| BindAddress | X | X | ||
| Chroot | X | |||
| CookieLog | X | |||
| DefaultIcon | X | X | ||
| DefaultType | X | X | ||
| DefProt | X | |||
| DELETE-script | X | |||
| DidAddHref | X | |||
| Directory | X | X | Protect, DirAccess | X |
| DirectoryIndex | X | X | ||
| DirReadme | X | |||
| Disable | X | |||
| DNSLookup | X | DNS | ||
| DocumentRoot | X | X | Document-root(root) | |
| Enable | X | |||
| ErrorDocument | X | X | Error | |
| ErrorLog | X | X | X | X |
| Fail | X | |||
| FancyIndexing | X | X | DirShowIcons, DirShowBrackets, etc. | cindex-init |
| Group | X | X | GroupId | |
| HeaderName | X | X | ||
| IconPath | X | |||
| IdentityCheck | X | X | X | |
| IndexIgnore | X | X | ||
| IndexOptions | X | X | ||
| Init | X | |||
| LanguagePriority | X | |||
| Limit | X | X | ||
| LoadObjects | X | |||
| LogFileDateExt | X | |||
| LogFormat | <User Specified> | <CLF or Older>, LogTime, NoLog | init-clf | |
| MaxContentLenghtBuffer | X | |||
| MaxRequestsPerChild | X | ProcessLife | ||
| MaxServers | X | MaxClients | MaxProcs | |
| MaxSpareServers | X | |||
| Meta-Dir | X | |||
| MetaSuffix | X | |||
| MinSpareServers | X | MinProcs | ||
| OnDeny | X | |||
| Options | X | X | ||
| OutputTimeOut | X | |||
| ParentGroupId | X | |||
| ParentUserId | X | |||
| Pass | X | |||
| PathCheck | X | |||
| PidFile | X | X | X | PidLog |
| Port | X | X | X | X |
| POST-script | X | |||
| PUT-script | X | |||
| ReadmeName | X | X | ||
| Redirect | X | X | ||
| RefererIgnore | X | X | ||
| RefererLog | X | X | ||
| ResourceConfig | X | X | ||
| RootObject | X | |||
| ScriptAlias | X | Exec | service(CGI) | |
| ScriptTimeOut | X | |||
| Search | X | |||
| ServerAdmin | X | X | ||
| ServerName | X | X | HostName | X |
| ServerRoot | X | X | X | |
| ServerType | X | X | X | |
| Service | X | |||
| StartServers | X | X | ||
| SuffixCaseSence | X | |||
| TimeOut | X | X | InputTimeOut | |
| TransferLog | X | X | AccessLog | Addlog(server-log) |
| TypesConfig | X | X | ||
| User | X | X | UserId | X |
| UserDir | X | X | X | unix-home, init-uhome |
| VirtualHost | X | X | ||
| Welcome | X |
| Proxy Servers | W3C | Netscape |
|---|---|---|
| Cache AccessLog | X | init-clf |
| CacheClean | X | |
| CacheDefaultExpiry | X | |
| CacheExpiryCheck | X | |
| CacheLastModifiedFactor | X | lm-factor |
| CacheLockTimeout | X | lock-timeout |
| CacheNoConnect | X | connect-mode |
| CacheOnly | X | cache-mode |
| cache-protocols | X | |
| CacheRefreshinterval | X | |
| CacheTimeMargin | X | |
| CacheUnused | X | |
| CachLimit _1 & 2 | X | |
| CasheRoot | X | cache-root |
| CasheSize | X | cache-size |
| Cashing | X | init-cache |
| CollectGcMemoryUsage | X | |
| ftp_proxy | X | |
| Gc (garbage collection) | X | |
| GcDailyGc | X | gc-times |
| gopher_proxy | X | |
| http_proxy | X | |
| init-proxy(log-format) | X | |
| init-proxy(timeout) | X | |
| KeepExpired | X | |
| no_proxy | X | supress |
| NoCaching | X | cache-mode |
| top-dirs | X | |
| wais_proxy | X |
| 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. |
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.
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:
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.
viewext: <extension> <gopher type> <path prefix> <Gopher+ type>
The second argument defines the Gopher type with one character (e.g. 0-9, s, I, etc.) for the extension stated in the first argument. The next argument is the server selector string, a single character used by server to quickly parse client requests (usually two values, 0 for text and 9 for binary files). The last argument is the Gopher+ type for the document and it is used by the client to determine the viewing application required to launch for the document.
The most important configuration command line options of Gopher are:

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.

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:

We present some additional guidelines for MIB authoring.
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