In a large, distributed computer system connected by a network, management personnel and resources typically manage the system from a system console using a command line interface (CLI) or a graphic user interface (GUI). These interfaces directly, or indirectly, control various data management services, such as data replication, imaging, caching and remote notification services. One embodiment of such a system has three tiers. The upper tier comprises the GUI and CLI presentation programs. The middle tier comprises one or more federated Java beans that communicate with each other and the presentation programs. The lowest tier comprises management facades that control kernel routines that actually implement the data services.
The federated beans can use a distributed management framework that implements the FMA specification for distributed management of data services. This framework is called the Jiro™ framework (trademark of Sun Microsystems, Inc.) and is developed by Sun Microsystems, Inc. Those skilled in the art would realize that other similar distributed frameworks could also be used. The Jiro™ framework uses the concept of a management domain to provide services. A management domain is a portion of a network with attached managed resources and available management services used to manage those resources. Within a management domain, the framework provides for base and dynamic services. The base services include, a controller service, an event service, a logging service, a scheduling service and a transaction service. Dynamic services are provided by the federated Java beans of the middle tier. Dynamic services require a hosting entity called a “station”, which is a mechanism to allow many services to run within a single Java Virtual Machine. Every management domain contains one or more general-purpose shared stations.
Jiro™ technology provides an event service that is used by software components to receive notifications of selected events generated by other components. Each management domain has a single (possibly replicated) logical event service for the domain. This event service is registered at a well-known location with the lookup service for a particular management domain and implements a predetermined interface.
The Jiro™ technology event service is a collection of “topics” to which event sources can post events and from which event service “subscribers” can receive events. A topic is a string field in an Event class that contains the name of the topic. The topics of the event service are organized into a hierarchy where each topic has a single parent topic and all topics ultimately descend from the root topic of the event service. Each topic is uniquely identified by appending the name of the topic to the name of its parent topic using a “.” (dot) as a delimiter to form a topic path. The root topic is special and is denoted by “.”. The topic path for a child of the root topic is the topic name with a single prepended “.”. For example, the topic path of the top-level topic of error is .error.
Each topic of the event service accepts events from event sources and forwards those events to event subscribers who have indicated an interest in the topic by subscribing as listeners to the topic. An event subscriber is a software component that is registered to have an interest in the event that is forwarded to it. Each topic implies a specific class of event that it will accept and deliver, but there is no runtime maintenance or checking of this mapping. The topic simply copies events between the source and listener.
A Jiro™ “event” is an object that contains information about some external state change in which a software component may be interested. For example, an event can be generated when a disk completes a task of reading or writing or when a program completes execution.
The Jiro™ framework also provides for logging transactions in a variety of categories including audit, debug, warning, info, error and trace categories. The log service can store log objects that store certain decisions made, operations that have been requested or other information. Each stored log object contains a message, a category and possibly error information. Methods are provided by the log service to search for selected log objects, to find log objects and to maintain the log object storage area. Details of the Jiro™ framework and its event and logging services are available in the “Jiro™ Technology SDK Programmer's Reference Manual” available at http://www.jiro.com, which manual is incorporated by reference in its entirety.
Because the data services are distributed, administrative personnel may be located in a completely different area from where the services are actually implemented. In order to avoid having to continually monitor remote services in addition to local services, it would be convenient for administrative personnel if they could automatically be notified when selected events occur both in local and remote services for which they are responsible. The Jiro™ event service provides notification to program objects. Consequently, it would still be necessary for administrative personnel to periodically monitor programs that display the Jiro™ notifications.