Management event notification system using event notification messages written using a markup language6167448Abstract An event notification system for a network including a managed device that includes one or more management agents that detect one or more management events of a plurality of possible management events. The managed device further includes event notification logic that generates an event notification message (ENM) which includes event related information. The ENM is written using a markup language, such as XML, to encode the event related information based on the management event. The ENM may include executable code written in a scripting language or the like, that when executed, causes at least one action to be performed. A management server is provided that includes an event processor that executes the code to perform the desired actions in response to the particular management event. The event related information may further include a URL to locate one or more information files in the network that provides further information about the management event. The event notification logic transmits the ENM to the management server using an HTTP post transaction to ensure delivery. Claims We claim: Description FIELD OF THE INVENTION
TABLE 1
______________________________________
Management Layers and Corresponding Typical Management Data
Managed Layer Examples of managed data at each layer
______________________________________
Applications (highest layer)
Transactions per second
(Vertical, specialized
Application specific data, such as status of
applications) batch processing activities
Databases, web servers,
Table space used
So-called "Horizontal"
Number of locks set
applications Resources used - percent of system work
areas, etc.
Operating System
Number of processes
Interrupts per second being serviced
Per cent of CPU time spent in user state
Names of processes
Hardware (lowest layer)
Configuration: serial number of disk drive,
bytes of RAM installed, etc.
Operational: number of bytes sent by
Ethernet controller, number of packet
collisions on Ethernet, temperature of CPU
cabinet, etc.
______________________________________
Referring now to FIG. 2, a block diagram is shown of a network system 200 including an event notification system according to the present invention. A managed device 202 and a management server 220 are coupled to a network 250. The managed device 202 may be implemented in a similar manner as any of the managed devices previously described, including the HMMDs 110 or the legacy devices 112, and may comprise any type of computer with one or more NICs, such as a server, desktop, portable, PC, workstation etc., or any type of system device or any type of network device, such as a router, switch, repeater, hub, etc. The management server 220 may be implemented in any desired manner and may be similar to the management server 102 previously described, and also may comprise any type of computer with one or more NICs, such as a server, desktop, portable, PC, workstation etc., or any type of system device or any type of network device, such as a router, switch, repeater, hub, etc. The managed device 202 and the management server 220 are communicatively coupled to the network 250 in any desired manner depending upon the type of media and architecture or technology, such as Ethernet.RTM., ATM, Token Ring, etc. Wireless network communication is also contemplated. The network system 200 preferably supports the World Wide Web (WWW) and TCP/IP services including HTML, HTTP, etc. The network system 200 may be implemented according to any type of network or network topology such as a separate intranet, part of the Internet itself, an intranet with access via a gateway or firewall to the Internet, etc. The managed device 202 includes communication logic 203 communicatively coupled to the network 250 for sending and receiving information according to any desired format or protocol, such as IP packets or the like, via the network 250. The communication logic 203 may be implemented according to TCP/IP, for example, and thus may comprise a TCP/IP protocol stack for sending and receiving IP packets according to HTTP or the like. The communication logic 203 is coupled to an event notification module 204, which is further coupled to one or more management agents (MA) 205 and a memory 206. The event notification module 204 assembles an event notification message (ENM) 207 in response to one or more management events indicated by any one or more of the management agents 205, and transports the ENM 207, via the communication logic 203, to a device on the network 250, such as the management server 220. The management agents 205 are implemented to detect any one or more of a plurality of management events that may occur on the managed device 202, including asynchronous management events. Each management agent 205 may include, for example, instrumentation code and a management communication layer (not shown). The management communication layer is responsible for understanding a management protocol, such as any one of the traditional protocols including SNMP, DMI, etc., or any other management protocol including HTTP-based communication as described herein. The management communication layer calls the instrumentation code to acquire data or to perform management control operations. The function and implementation of instrumentation code varies widely depending the hardware and software environment and on the level of management data. Several levels of management data are described in Table 1 above, including, but not limited to, hardware, the operating system (OS), software applications, etc. As an example of acquiring hardware management data, a hardware management agent 205 includes instrumentation code that is used to execute input and output instructions in order to acquire information that describes the physical memory modules installed on a system board of a computer system. As an example of acquiring operating system management data, an OS management agent 205 includes instrumentation code that is used to execute instructions to access Windows NT's perfmon (performance monitor) counters to determine how many interrupts per second are being serviced by a CPU. Another role performed by instrumentation code of a management agent 205 is to execute control operations to effect management operations. An example of a control operation is to reboot a system or terminate a failed process. Although the management agents 205 may be implemented as code modules comprising software in a given implementation, the present invention is not limited to any particular implementation of management data collection system, and may comprise hardware, firmware, software, or any combination thereof. The management server includes a server interface (I/F) 221 that is communicatively coupled to the network 250 for sending and receiving information according to any desired format or protocol, such as IP packets or the like, via the network 250. The server I/F 221 may be implemented according to TCP/IP, for example, and may comprise a web server. The communication logic 203 communicates with the server I/F 221 in any desired manner, such as according to the HTTP protocol or the like. For HTTP, which is an extendible, general protocol that is layered on top of the TCP protocol layer, the communication logic 203 operates as an HTTP client and the server I/F 220 comprises a web server that supports the HTTP protocol. Event processor logic 222 is coupled to the server I/F 221. A memory 223 and an action device 224 are each coupled to the event processor logic 222. The event processor logic 222 may be implemented as a web server back end process such as the Common Gateway Interface (CGI), the Internet Server Application Programming Interface (ISAPI) standard, the Netscape Server API (NSAPI) or any other suitable back end process. As a result, the communication is platform independent. The event processor logic 222 receives and processes the ENM 207 sent by the managed device 202 via the network 250. The ENM 207 may include executable code executed by the event processor logic 222 to perform one or more functions or to take one or more actions. One such action may involve the action device 224, which may comprise a software module, a hardware module or a combination of both to perform an action in response to the event indicated by the ENM 207. For example, the action device 224 may be implemented to make a phone call or send a page to a system administrator to inform the system administrator of a management event indicated by the ENM 207. The ENM 207 may also include a location pointer to a file located at the management server 220 or anywhere on the network 250. An information device 230, such as any type of computer system or the like, may further be included in the network system 200 and communicatively coupled to the network 250. The information device 230 also includes communication logic 231 for communicating on the network 250 and a memory 232 coupled to the communication logic 231. The memory 232 includes one or more information files 233 that are identified and/or located using the location pointer. The information files 233 may be written in any compatible manner for retrieval by the management server 220, such as HTML files or the like. For example, the location pointer may comprise a URL that enables the management server 220 to locate and retrieve one or more of the information files 233 from the information device 230. Each of the information files 233 includes further information associated with the particular event indicated by the ENM 207 from the managed device 202. In this manner, the event notification module 204 provides notification of one or more management events and specifies the appropriate actions that should be taken when the management event(s) occur. Such management events are often asynchronous in that they may not occur at specific periods or times. The event notification module 204 delivers notification of the asynchronous management event to an appropriate device, such as the management server 220. The basic delivery mechanism used for event notification may be according to any appropriate protocol, such as the HTTP protocol. In one embodiment, an HTTP post transaction is utilized for delivery of an event notification message. The Event Notification Message, or ENM 207, contains information that describes the management event and any actions required by the event. The ENM 207 is formulated based upon the particular event that occurred as reported by any one of the MAs 205. The memory 206 may include one or more data files 209 that are used to formulate the contents of the particular ENM 207 based upon the particular management event. In one embodiment, the ENM 207 is encoded in the extensible Markup Language (XML), which is a dialect of the Standardized General Markup Language (SGML). XML provides a meta language to define markup languages for specific applications. XML is an open standard in the computing industry and may be used to define Channel Definition Format (CDF) files and Open Software Description (OSD) files. A Document Type Declaration (DTD) may be used to describe the structure of an XML document. The memory 206 may include a DTD 208, which is used by the event notification module 204 to formulate the ENM 207. The memory 223 of the management server 220 may include a corresponding DTD 225 to interpret the ENM 207 including an XML document. Preferably, any XML documents used in the ENM 207 should be "well formed" and may even be "valid", where the terms "well formed" and "valid" are XML specific terminology. A valid XML document is one that has been validated by parsing the XML document and comparing it with the DTD 225. A well formed XML document is one that follows the standard XML syntax but has not been compared to a DTD, or a DTD may not exist. The DTD 208, 225 allows a user of XML to optionally constrain the contents and structure of an XML document. In the well formed case, additional tags may be included to add information that was not anticipated when the initial set of XML tags was devised for an application that is using XML. An exemplary DTD is as follows, where it is understood that the DTD, if used, may be defined in any manner depending upon the particular implementation:
______________________________________
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (EVENT)+>
<!ELEMENT EVENT (DEVICEID, IPADDRESS, EVENTSEV,
EVENTTIME, EVENTCODE, DEVICENAME, DESCRIPTION?,
TRANSACTION.sub.-- NO, EVENTACTIONSCRIPT?,
EVENTURL?)>
<!ELEMENT DEVICEID (#PCDATA)>
<!ELEMENT IPADDRESS (#PCDATA)>
<!ELEMENT EVENTSEV (#PCDATA)>
<!ELEMENT EVENTTIME (#PCDATA)>
<!ELEMENT EVENTCODE (#PCDATA)>
<!ELEMENT DEVICENAME (#PCDATA)>
<!ELEMENT DESCRIPTION (#PCDATA)>
<!ELEMENT TRANSACTION.sub.-- NO (#PCDATA)>
<!ELEMENT EVENTACTIONSCRIPT (#PCDATA)>
<!ELEMENT EVENTURL (#PCDATA)>
]>
______________________________________
where DEVICEID is a unique identifier of the managed device 202, such as a Universally Unique Identifier (UUID) or the like, IPADDRESS is an Internet Protocol (IP) address of the managed device 202, EVENTSEV is an indication of the severity of the managed event, EVENTTIME identifies the time at which the management event occurred, EVENTCODE defines a code that specifies the particular event, DEVICENAME is a name of the managed device 202, DESCRIPTION comprises a prose description of the event, TRANSACTION.sub.-- NO is a sequence number assigned to the management event by the managed device 202, EVENTACTIONSCRIPT comprises executable code, such as, for example, executable script written in a scripting language, and EVENTURL is a field that specifies a URL that may be accessed to view additional information about the management event. The executable script may comprise any type of code or script language, such as JavaScript, VBScript, Perl, etc. or any other type of code or interpretive script language that is interpreted or executed by the event processor logic 222 of the management server 220 to perform whatever action that may be desired upon receipt of the ENM 207. FIG. 3 is a block diagram illustrating an exemplary ENM 207 formulated by the managed device 202 for sending to the management server 220 via the network 250. The ENM 207 may include a header 301 for the particular type of communication packet sent on the network 250, such as an HTTP header. The ENM 207 may include a definitions section 302 for describing the host, such as the management server 220, the type of language included in the packet, the character set used, the content type included, such as XML or the like, the content length of the packet, etc. The ENM 207 may also include an ENM document 303 for including more specific information about the managed device in which the management event occurred, and information about the management event itself. The ENM document 303 includes, for example, an identifier section 310 of the managed device 202, an event specific information section 311, executable code 312 that includes executable code or scripting language for execution by the event processor logic 222 of the management server 220, and an event file locator 313, such as a URL or the like, to locate an information file in the network 200 that provides more information about the particular management event. An exemplary ENM 207 that may be transmitted to the management server 220 in an HTTP post transaction is as follows:
______________________________________
POST POST /EventListener HTTP/1.0<cr><ln> Start of
HTTP POST transaction
Host: ManagementServer.domain.com
(the management server 220, for example)
Accept-Language: en<cr><ln>
Accept-Charset: iso-8859-1, *, utf-8<cr><ln>
Content-Type: x-event/XML <cr><ln>
Content-length: nnn<cr><ln>
<cr><ln>
<?XML version = "1.0"?> First line of the XML document
<DOCUMENT>
<EVENT (the ENM document)
<DEVICEID>UUID</DEVICEID>
<IPADDRESS>255.255.255.255</IPADDRESS>
<EVENTSEV>CRITICAL</EVENTSEV>
<EVENTTIME>Tue, 21 Jan 1998 08:21:32 GMT</EVENTTIME>
<EVENTCODE>234</EVENTCODE>
<DEVICENAME>BIGSERVER</DEVICENAME>
<DESCRIPTION>Processor thermal event</DESCRIPTION>
<TRANSACTION_NO>11111 </TRANSACTION.sub.-- NO>
<EVENTACTIONSCRIPT></EVENTACTIONSCRIPT>
<EVENTURL></EVENTURL>
</EVENT>
</DOCUMENT>
______________________________________
where the HTTP post transaction includes an ENM document including the same or similar parameters as the DTD described above and which are defined in a similar manner: DEVICEID, IPADDRESS, EVENTSEV, EVENTTIME, EVENTCODE, DEVICENAME, TRANSACTION.sub.-- NO, EVENTACTION-SCRIPT and EVENTURL. In the above exemplary case, the management event is a processor thermal event (DESCRIPTION), such as a processor or CPU of the managed device 202 reaching a predetermined high temperature, which is considered a critical event (EVENTSEV=CRITICAL). It is noted that the any of the fields may be null if they are not used in the event. The DTD for the ENM may specify that any one or more of the fields are optional. The executable code 312 may include an Event Action Script (EAS), which is an executable script that is to be executed by the target of the ENM 207, such as the management server 220. The data file(s) 209, for example, may include a plurality of EAS files 210, each corresponding to one or more of a plurality of possible management events that may occur on the managed device 202. Each EAS file 210 defines one or more actions, encoded in a scripting language such as Jscript, VBScript, Perl, or other scripting language, that should be taken in response to a corresponding management event. An EAS allows the event originator to specify the actions that should be taken by the target of the ENM. An exemplary EAS written in JavaScript for sending an alphanumeric page to a system administrator, for example, is as follows:
__________________________________________________________________________
<SCRIPT LANGUAGE="JavaScript">
>!-
// Send an alphnumeric page
// This code assumes that this script is executing in an environment in
which
// the event XML object has been parsed and the constituent tagged fields
can be
// accessed
var eventdoc = new object(xml);
// gain access to fields this function call creates a new object that can
be
used to access the parsed
// contents of the fields of this ENM
var msg = "At time" + eventdoc.EVENTTIME
msg = msg + "server LONGHOUSE is shutting down due to a processor thermal
event";
// send the page
SendAlphaPage(msg);
//-->
</SCRIPT>
__________________________________________________________________________
It is appreciated that the EAS is a very general and powerful facility. It allows the originator of the ENM, such as the managed device 202 to direct the receiving agent, such as an agent on the management server 220, to perform a wide variety of tasks. In effect, it allows the originator of the management event to send executable code that is to be executed by the receiver of the event. The receiver preferably includes the means to carry out the actions defined by the EAS. For example, the management server 220 includes the event processor logic 222 that instructs the action device 224 to carry out any one or more actions that are specified. Of course, any number of action devices or modules may be included to carry out any possible actions desired to be taken in response to the plurality of possible management events that could occur on the managed device 202. An example of an EAS that is embedded in an ENM is as follows:
__________________________________________________________________________
POST POST /EventListener Start of HTTP POST transaction
Host: ManagementServer.domain.com
Accept-Language: en<cr><in>
Accept-Charset: iso-8859-1, *, utf-8<cr><ln>
Content-Type: x-event/XML<cr><in>
Content-length: nnn<cr><in>
<cr><in>
<?XML version = "1.0"?> First line of the XML document
<DOCUMENT>
<EVENT
<DEVICEID>UUID</DEVICEID>
<IPADDRESS>255.255.255.255</IPADDRESS>
<EVENTSEV>CRITICAL</EVENTSEV>
<EVENTTIME>Tue, 21 Jan 1998 08:21:32 GMT</EVENTTIME>
<EVENTCODE>234</EVENTCODE>
<DEVICENAME>LONGHOUSE</DEVICENAME>
<DESCRIPTION>Processor thermal event</DESCRIPTION>
<TRANSACTION.sub.-- NO>22222</TRANSACTION.sub.-- NO>
<EVENTACTIONSCRIPT>
<SCRIPT LANGUAGE = "JavaScript">
<!-
// Send an alphnumeric page
// This code assumes that this script is executing in an environment in
which
// the event XML object has been parsed and the constituent tagged fields
can be
// accessed
var eventdoc = new object(xml); // gain access to fields
var msg = "At time" + eventdoc.EVENTTIME
msg = msg + "server LONGHOUSE is shutting down due to a processor thermal
event";
// send the page
SendAlphaPage(msg);
//->
</SCRIPT>
</EVENTACTIONSCRIPT>
<EVENTURL></EVENTURL>
</EVENT>
</DOCUMENT>
__________________________________________________________________________
The file locator 313 is provided to locate any file in the network 250 that includes further information about the particular management event the occurred on the managed device 202. A plurality of such files may be provided, such as the information files 233, each corresponding to one or more of the possible management events. An exemplary HTTP post transaction including the EVENTURL field is as follows:
__________________________________________________________________________
POST POST /EventListener Start of HTTP POST transaction
Host: ManagementServer.domain.com
Accept-Language: en<cr><in>
Accept-Charset: iso-8859-1, *, utf-8<cr><ln>
Content-Type: x-event/XML<cr><in>
Content-length: nnn<cr><in>
<cr><in>
<?XML version = "1.0"?> First line of the XML document
<DOCUMENT>
<EVENT
<DEVICEID>UUID</DEVICEID>
<IPADDRESS>255.255.255.255</IPADDRESS>
<EVENTSEV>CRITICAL</EVENTSEV>
<EVENTTIME>Tue, 21 Jan 1998 08:21:32 GMT</EVENTTIME>
<EVENTCODE>234</EVENTCODE>
<DEVICENAME>ACCTSERVER</DEVICENAME>
<DESCRIPTION>System degraded</DESCRIPTION>
<TRANSACTION.sub.-- NO>33333</TRANSACTION.sub.-- NO>
<EVENTURL>acctserver.acme.com/disksubsys:2301 </EVENTURL>
</EVENT>
</DOCUMENT>
__________________________________________________________________________
where the receiver of the event is supplied with a URL "acctserver.acme.com/disksubsys:2301" that is used to access additional information about the event, such as any of the information files 233. Typically, the URL would be displayed by the management server 220 along with other event information so that the person accessing the event information could use a browser, such as the web browser 106, to access the additional event information. The event processor logic 222 performs several functions, including waiting for an ENM 207, parsing the ENM 207 when received, storing the various objects or elements of the ENM 207, executing any executable code in the ENM 207, if supplied, or retrieving a document using a file location pointer or URL, if supplied. Parsing may comprise parsing the ENM 207 packet into an object tree representation to enable access to the various elements of an included XML object. Optionally, the ENM 207 may be compressed using any one or more of a number of different compression algorithms. This may be accomplished in a flexible manner in an HTTP message body described by use of a Multipurpose Internet Mail Extension (MIME)-type tag or descriptor. For example, the content-type may specify a compression method: x-event/compressed-method-1. Also, the ENM 207 may be encrypted using any one or more of a number of different encryption algorithms. Here again, this is accomplished in a flexible manner in an HTTP message body containing the ENM that is described by use of a MIME-type tag. For example, the content-type may specify an encryption method: Content-type: x-event/encrypted-method-1. It is now appreciated that an event notification system according to the present invention provides an improved and enhanced ability to deliver event-related information of a managed device to a management device on a network, such as a management server. The use of a markup language, such as XML, for example, provides a flexible scheme for encoding management information in response to a management event. A managed device includes event notification logic that formulates an event notification message (ENM) in response to one of a plurality of management events. The content of the ENM is very flexible depending upon the particular management event that occurred. For example, executable code may be inserted into the ENM. When the code is executed by an event processor of the management server, the code instructs the management server to take one or more appropriate actions in response to the management event. A plurality of predefined executable code modules may be written, each corresponding to one or more of the possible management events that may occur. Also, a file locator or pointer may be inserted into the ENM to enable the management server to locate more information related to the management event. Again, a plurality of information files may be provided, each corresponding to one or more of the possible management events that may occur. The ENM may be sent across the network according to any particular protocol that is supported by the network architecture. In one embodiment, the network supports TCP/IP and HTTP, where the ENM may be formulated into an HTTP post transaction. The use of HTTP provides for guaranteed delivery of the ENM. Although the system and method of the present invention has been described in connection with the preferred embodiment, it is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the invention as defined by the appended.
|
Same subclass Same class Consider this |
||||||||||
