The invention now will be described more fully hereinafter with reference to the accompanying drawings, in which illustrative embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements tliroughout. As used herein, the temm “and/or” includes any and all combinations of one or more of the associated listed items.
The tenninology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and this specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
As will be appreciated by one of skill in the art, the present invention may be embodied as a method, data processing system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects all generally referred to herein as a “circuit” or “module.” Furthermore, the present invention may take the form of a computer program product on a computer usable storage medium having computer-usable program code means embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, CD-ROMs, optical storage devices, a transmission media such as those supporting the Internet or an intranet, or magnetic storage devices.
Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java® or C++. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or assembly language. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer. In the latter scenario, the remote computer may be connected to the user's computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the acts specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the acts specified in the flowchart and/or block diagram block or blocks.
Associations may be viewed syntactically as objects with references to two associated objects and those associated objects are not affected by the existence of associations that refer to them. In other words, multiple associations can be defined for different semantics while utilizing the same pair of associates. As associations are being defined, the same object may play different roles in different semantic scenarios.
As common information models become semantically rich, clients, such as humans or computer programs, of common information models, may need a generic and efficient query mechanism to retrieve objects in a single given semantic scenario or multiple semantics scenarios. For example, in a common information model, a computer object can be associated with an aggregate function/service object playing the semantic role of “computer used in service”. The same computer can be associated with a geographical group object playing the semantic role of “computer located in a geographical location.” A client of the common information model must typically be able to retrieve computer objects by specifying either or both of the semantic scenarios. That is, a client must typically be able to retrieve computers by specifying an aggregate function object and the “computer used in service” association, and a client must typically be able to retrieve computers by specifying a geographical group object and the “computer located in a geographical location” association. Furthermore, a client must typically be able to retrieve computers by specifying an aggregate function object and the “computer used in service” association and a geographical location object and the “computer located in a geographical location” association.
Some embodiments of the present invention provide methods, systems and computer program products that may allow management products to truly and fully utilize the rich management semantics of the information models. In particular, in some embodiments of the present invention provide a query language, for example, using NetIQ Query Language (NQL), that is based on the concept of associative memory retrieval. In the associative memory retrieval paradigm, one recalls, recollects and remembers a set of objects when given one or more clues, hints or suggestions. The more vague the suggestions, the less specific the objects recollected. The more clear the suggestions, the more specific the objects recollected. Based on this paradigm, NQL allows common information model clients to define queries by specifying one or more associative clues that lead to the recollection of instances of a target object class. Each associative clue consists of a single object instance or a set of object instances (the clue objects), and an association with associates as the clue objects and the instances of the target class. Based on an associative clue, a subset of the instances of the target object class is retrieved by traversing the association. The result of a query with multiple associative clues is the intersection of those subsets. For example, the following query finds all computers that belong to the Texas location and used by some organization units.
In this example, the “IQAM_Computer” is the target object class and there are two associative clues. One specifies all management groups under the Texas management group as clue objects, and the other specifies all organization units as clue objects, and both associative clues use the IQCIM_Belong association. A sample output of this query is a two dimensional table as illustrated in Table 1 set out below.
The information provided in Table 1 may be useful, for example, in answering questions such as:
Accordingly, unlike CQL, which relies on the instance projection and complex object joining paradigm as in relational database queries, queries according to some embodiments of the present invention may be more intuitive to humans and easier to write. Instead of thinking in concepts of relational projections and joins, a human constructs queries according to some embodiments of the present invention by, for example, following threads of thoughts represented by associations. Furthermore, multiple associative clues may serve as multiple dynamic “indexes” to the target object class, and may enable efficient selection of instances of the target object classes without visiting each of those instances. This advantage may become significant when a common information model represents a large number of object instances. It will be understood that queries according to some embodiments of the present invention can involve single and/or multiple association chains without departing from the scope of the present invention.
Accordingly, as common information models play more important roles in management products, methods, systems and computer program products according to some embodiments of the present invention may provide intuitive ways for users to define queries without writing procedural code or having to learn the instance projection and complex object joining techniques. Thus, management products that incorporate the teachings of some embodiments of the present invention may use common information models and allow a user to define queries traversing multiple associations without using the concepts of instance projection and complex object joining.
Some embodiments of the present invention will now be described with respect to
Referring first to
As will be understood by those having skill in the art, a communications network 12 may include of a plurality of separate linked physical communication networks, which, using a protocol such as the Internet protocol (IP), may appear to be a single seamless communications network to user application programs. For example, as illustrated in
It is further to be understood that, while for illustration purposes in
Console node 20, or other means for retrieving management information for the computer network may obtain user input, for example, by keyed input to a computer terminal or tlrough a passive monitor, to request and/or provide an information query and may be configured to provide operations as more fully described later herein. The console node 20 is shown as directly coupled to the management information database 21 containing information about managed resources. However, the console device 20 may be coupled to the management information database 21, for example, over the communications network 12.
As shown in
It will be understood that
As illustrated in the embodiments of
The data 356 illustrated in the embodiments of
Referring again to the application programs 354, the retrieval module 361 is configured to retrieve instances of a target resource class identified by instances of a selected one or more of the association classes responsive to a received query for retrieval of management information. Thus, a received query may include one of the resource classes as a target class and one or more of the resource classes as class instances. The retrieval module 361 may be configured to retrieve instances of the target class identified by instances of the selected one or more of the association classes that also identify the clue class instance or instances, depending upon the query received from a user. The report module 365 is configured to provide an identification of the retrieved instances of the target class to a requesting user.
Operations for providing invariant representations according to some embodiments of the present invention will now be further described with reference to the flowchart illustrations of
A query for retrieval of management information is received from a user (block 410). The query may include an identification of a first one of the resource classes and a second one of the resource classes and a selected one of the association classes. For example, the first one of the resources classes may be a target class and the second one of the resource classes may be a clue class instance. Thus, for example, the target class may comprise a computer network hardware class, instances of which correspond to physical devices, and the clue class instance(s) may comprise instance(s) of a second resource class defining a computer logical unit class, instances of which correspond to a logical unit defined for the computer network (geographical location, organization unit, particular service and/or the like).
Instances of the target class are retrieved that are identified by instances of the selected one of the association classes responsive to the received query (block 415). In some embodiments, retrieving instances at block 415 may include retrieving instances of a designated target class identified by instances of a selected one of the association classes that also identify the clue class instance. It will be understood that a received query at block 410 may include an identification of a plurality of clue class instances and/or an identification of a plurality of different selected ones of the association classes and operations at block 415 may include retrieving instances of the target class based on the identified plurality of clue class instances and/or selected ones of the association classes. In some embodiments, operations for retrieving instances of the target class at block 415 may include identifying a subset of instances of the target class for each of the plurality of clue class instances and retrieving instances of the target class corresponding to an intersection of the subsets of instances of the target class. Where a plurality of associations are provided, operations in retrieving instances of the target class at block 415 may include retrieving instances of the target class based on the plurality of clue class instances and their respective ones of the different selected ones of the clue class instances.
Where multiple clue class instances are provided, retrieving instances of the target class may include retrieving instances of the target class identified both by instances of the selected association class or classes that also identify the first clue class instance and by instances of respective ones of the association classes that also identify the second clue class instance. Note that the association class for each of the clue class instances may be the same or different and/or the clue class instances may similarly be instances of the same and/or different resource class.
In some embodiments of the present invention, the designated selected one of the association classes for a query includes a relational operation coupling first and second ones of the selected ones of the association classes in a more complex query. As such, in some embodiments of the present invention, retrieving instances of the target class identified by instances of the both a first one of the selected association classes and a second one of the association classes responsive to a received query when the relation operation comprises an AND. Instances of the target class identified by instances of either the first one of the association classes or the second one of the association classes are retrieved responsive to the received query when the relational operation comprises an OR. Thus, Boolean logic may be used in structuring queries linking clue instances by respective association classes. As a result, instances of a target class may be retrieved based on a plurality of different clue class instances and respective corresponding ones of the selected association classes.
Further embodiments of the present invention will now be described with reference to the flowchart illustration of
Referring now to
As described above, some embodiments of the present invention provide for associative retrieval of management information that may be implemented without the use of a complex object joining. In particular, associative retrieval in accordance with some embodiments of the present invention requires no assumptions about relationships and attributes of predefined resource classes in construction of searches as associations may be defined after the classes have been established. Furthermore, the association definitions, in some embodiments, may further be defined and developed dynamically during use. In addition, the search query structures, rather than being worded based on terminology associated with predefined attributes of particular resource classes, may be structured in a more intuitive relationship based format, where association classes may be defined corresponding to such intuitive relationships. For example, a user may wish to get a list of computers used in a Houston office. Both computer and location may be defined resource classes under the common information model and a learned association may be provided as an instance of an association class “located at.”
It will be understood that the block diagrams of
Accordingly, blocks of the block diagrams of
The foregoing is illustrative of the present invention and is not to be construed as limiting thereof. Although a few exemplary embodiments of this invention have been described, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention as defined in the claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents but also equivalent structures. Therefore, it is to be understood that the foregoing is illustrative of the present invention and is not to be construed as limited to the specific embodiments disclosed, and that modifications to the disclosed embodiments, as well as other embodiments, are intended to be included within the scope of the appended claims. The invention is defined by the following claims, with equivalents of the claims to be included therein.
This application claims the benefit of and priority to U.S. Provisional Patent Application No. 60/799,540, entitled “METHODS, SYSTEMS AND COMPUTER PROGRAM PRODUCTS FOR MANAGING INFORMATION TECHNOLOGY(IT) RESOURCES,” fired May 11, 2006, the disclosure of which is hereby incorporated herein by reference as if set forth in its entirety.
Number | Date | Country | |
---|---|---|---|
60799540 | May 2006 | US |