U.S. patent application number 12/131020 was filed with the patent office on 2009-12-03 for methods and systems for dynamic grouping of enterprise assets.
Invention is credited to Joseph Robert MARQUES.
Application Number | 20090300181 12/131020 |
Document ID | / |
Family ID | 41381174 |
Filed Date | 2009-12-03 |
United States Patent
Application |
20090300181 |
Kind Code |
A1 |
MARQUES; Joseph Robert |
December 3, 2009 |
METHODS AND SYSTEMS FOR DYNAMIC GROUPING OF ENTERPRISE ASSETS
Abstract
Embodiments relate to systems and methods for dynamic grouping
of enterprise assets. A management engine can receive a query to
interrogate a set of enterprise resources, such as servers deployed
on a network. A user can transmit a query to the management engine,
including a specification of attributes by which to group targeted
machines to include in the query. The query can include at least a
simple group query and a pivoted group query. A simple group query
can include an identifier as a simple group expression, and the
target can include attributes to match with resources. A pivoted
group query can include compound terms or attributes to be used to
group resources in the query, such as resources having a
parent/child relationship or other hierarchical relationship. The
processes of construction of queries and aggregation of resources
identified by those queries can all be integrated by the management
engine.
Inventors: |
MARQUES; Joseph Robert;
(Kearny, NJ) |
Correspondence
Address: |
MH2 TECHNOLOGY LAW GROUP (Cust. No. w/Red Hat)
1951 KIDWELL DRIVE, SUITE 550
TYSONS CORNER
VA
22182
US
|
Family ID: |
41381174 |
Appl. No.: |
12/131020 |
Filed: |
May 30, 2008 |
Current U.S.
Class: |
709/226 |
Current CPC
Class: |
G06F 9/5061
20130101 |
Class at
Publication: |
709/226 |
International
Class: |
G06F 15/173 20060101
G06F015/173 |
Claims
1. A method of managing a system comprising: receiving a request to
extract a group of resources, from an inventory of resources, based
on attributes of the resources, the inventory of resources
comprises hardware resources, software resources, and service
resources; generating a query for identifying the resources
matching the request, wherein the query comprises a format
compatible with the resources from the inventory; receiving the
identified resources; and creating the group of resources
containing the identified resources.
2. The method of claim 1, further comprising: creating an
individual group for identified resource; and populating the
individual group with secondary resources associated with the
identified resource.
3. The method of claim 1, further comprising: assigning a unique
identifier to the group.
4. The method of claim 1, further comprising: receiving a request
for a management process, the management process comprising the
group identifier; and performing the management process on
resources of the group associated with the unique identifier.
5. The method of claim 1, wherein the request comprises a common
format.
6. The method of claim 1, wherein the receiving the request
comprises: receiving multiple requests the group of the resources,
from the inventory of resources, based on the attributes of the
resources; and combining the multiple requests in order to generate
the group.
7. A system for providing management processes, comprising: a
network interface coupled to at least one network; and a management
tool, communicating with the network interface, the management tool
being configured to receive a request to extract a group of
resources, from an inventory of resources, based on attributes of
the resources, the inventory of resources comprises hardware
resources, software resources, and service resources; generate a
query for identifying the resources matching the request, wherein
the query comprises a format compatible with the resources from the
inventory; receive the identified resources; and create the group
of resources containing the identified resources.
8. The system of claim 7, the management tool being further
configured to-- create an individual group for identified resource;
and populate the individual group with secondary resources
associated with the identified resource.
9. The system of claim 7, the management tool being further
configured to-- assign a unique identifier to the group.
10. The system of claim 7, the management tool being further
configured to-- receive a request for a management process, the
management process comprising the group identifier; and perform the
management process on resources of the group associated with the
unique identifier.
11. The system of claim 7, wherein the request comprises a common
format.
12. The system of claim 7, wherein the receiving the request
comprises: receiving multiple requests the group of the resources,
from the inventory of resources, based on the attributes of the
resources; and combining the multiple requests in order to generate
the group.
13. A management tool, embodied in a computer readable medium and
configured to cause a computer to perform the method, comprising:
receiving a request to extract a group of resources, from an
inventory of resources, based on attributes of the resources, the
inventory of resources comprises hardware resources, software
resources, and service resources; generating a query for
identifying the resources matching the request, wherein the query
comprises a format compatible with the resources from the
inventory; receiving the identified resources; and creating the
group of resources containing the identified resources.
14. The management tool of claim 13, farther comprising: creating
an individual group for identified resource; and populating the
individual group with secondary resources associated with the
identified resource.
15. The management tool of claim 13, further comprising: assigning
a unique identifier to the group.
16. The management tool of claim 13, further comprising: receiving
a request for a management process, the management process
comprising the group identifier; and performing the management
process on resources of the group associated with the unique
identifier.
17. The management tool of claim 13, wherein the request comprises
a common format.
18. The management tool of claim 13, wherein the receiving the
request comprises: receiving multiple requests the group of the
resources, from the inventory of resources, based on the attributes
of the resources; and combining the multiple requests in order to
generate the group.
Description
FIELD
[0001] This invention relates generally to network systems, more
particularly, to systems and methods for managing networked
systems.
DESCRIPTION OF THE RELATED ART
[0002] Enterprise systems provide a technology platform to help
organizations operate their business methods. Server resources are
a valuable part of an enterprise system. The server resources
typically include physical components, as well as operating
systems, applications, and anything else run on the physical
components to help the enterprise system function. The more
extensive the enterprise system, the more server resources are
required to execute and maintain the system. Clustering and
grouping are methods used to run applications on several different
server resources. This way, if any of the servers fail, the
application is still accessible via the other server resources.
[0003] The more server resources there are in an enterprise system,
the more time consuming it is to update and maintain all of the
groups or clusters present across the resources. In addition,
server resources are frequently upgraded to accommodate new
technologies or replace old resources. Further, server resources in
a testing environment are frequently changed and restarted. New
groups and clusters among the server resources need to be created
upon any change to the resources. Manually creating groups across
the resources is very tedious and time consuming, especially if the
enterprise system includes a large number of server resources.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Various features of the embodiments can be more fully
appreciated, as the same become better understood with reference to
the following detailed description of the embodiments when
considered in connection with the accompanying figures, in
which:
[0005] FIG. 1 illustrates an overall system architecture in which
various embodiments of the present teachings can be practiced;
[0006] FIG. 2 illustrates an enterprise management tool, according
to various embodiments;
[0007] FIG. 3 illustrates a management system, according to various
embodiments;
[0008] FIG. 4 illustrates an overall management process, according
to various embodiments.
DETAILED DESCRIPTION OF EMBODIMENTS
[0009] For simplicity and illustrative purposes, the principles of
the present invention are described by referring mainly to
exemplary embodiments thereof. However, one of ordinary skill in
the art would readily recognize that the same principles are
equally applicable to, and can be implemented in, all types of
information and service portals, and that any such variations do
not depart from the true spirit and scope of the present invention.
Moreover, in the following detailed description, references are
made to the accompanying figures, which illustrate specific
embodiments. Electrical, mechanical, logical and structural changes
may be made to the embodiments without departing from the spirit
and scope of the present invention. The following detailed
description is, therefore, not to be taken in a limiting sense and
the scope of the present invention is defined by the appended
claims and their equivalents.
[0010] Embodiments of the present disclosure are directed towards a
system, a method, and an apparatus for monitoring and managing
enterprise assets. The system, the method, and the apparatus allow
for less burdensome and more efficient enterprise monitoring and
management. The enterprise monitoring and management system allows
a user to automatically aggregate, interrogate and manage system
resources across the system's entire resource inventory. The
aggregation can be based on logical associations of the resources
in the inventory based on type, regardless of the whether the
resource represents hardware, software, or services. The system
allows a user to perform a search across the inventory to obtain
group results with the queried parameters. The user can also
perform compound searches, wherein multiple parameters are matched
across the complete inventory.
[0011] FIG. 1 illustrates an exemplary enterprise system 100 in
accordance with embodiments. Enterprise system 100 is configured to
combine computing resources to deliver services and functionality
to and for an entity, such as a business, corporation, government
entity, and the like. It should be readily apparent to those of
ordinary skill in the art that system 100 depicted in FIG. 1
represents a generalized schematic illustration and that other
components may be added or existing components may be removed or
modified. Moreover, system 100 may be implemented using software
components, hardware components, or combinations thereof.
[0012] As shown in FIG. 1, system 100 includes a management system
102, and enterprise platforms 104. The management system 102 and
enterprise platforms 104 are coupled to a network 106. The network
106 can be a combination of wide area and local area networks such
as the Internet, or other public or private networks. The network
106 can be configured to provide a communication channel between
the management system 102 and enterprise platforms 104. The network
106 can implement a variety of network protocols to provide the
communication channel such as Internet Protocol ("IP") v4/v6, ATM,
SONET, or other similar network protocols.
[0013] The enterprise platforms 104 can be computing platforms
configured to deliver or support the services and functionality of
the enterprise system 100. The enterprise platforms 104 can include
various types of computing platforms such as servers, personal
computers, personal mobile devices, workstations, virtual machines,
or other networked computing platforms. While FIG. 1 illustrates
several enterprise platforms 104, the enterprise system 100 can
include any number of enterprise platforms 108.
[0014] Each of the enterprise platforms 104 can implement one or
more applications or processes 108 to provide, to integrate, and to
support the services and functionality of the enterprise system
100. The applications or processes 108 can include electronic mail
(E-mail) server and client applications, application servers,
network hosting applications, content management applications,
financial services applications, content delivery servers and
applications, and the like.
[0015] In the enterprise system 100, the enterprise platforms 104,
applications and processes 108, and the overall service provided by
an enterprise platform 104 make up the resources of the enterprise
system 100. The combination of all the resources makes up the
inventory 110 of the resources for the enterprise system 100.
[0016] The management system 102 is configured to manage the
inventory of resources 110 including the enterprise platforms 104,
applications and processes 108, and overall services provided by an
enterprise platform 104. To achieve this, the management system 102
can be configured to include a management tool 112. The management
tool 112 is configured to deliver management process to the
enterprise system 100. The management processes can include adding
and removing the enterprise platforms 104, configuring the
enterprise platforms 104, monitoring the enterprise platforms 104,
upgrading and updating the enterprise platforms 104, adding and
removing the applications and processes 108, configuring the
applications and processes 108, monitoring the applications and
processes 108, upgrading and updating the applications and
processes 108, managing the overall services provided by an
enterprise platform 104, and the like.
[0017] In embodiments, to deliver the management processes, the
management tool 112 can be configured to dynamically group the
resources in the inventory 110. A group of resources consists of an
association of resources based on a common attribute or attributes
of the resources. The attributes can include a unique identifier of
the resource, a name of the resource, a version of the resource, an
association of the resource (parent-resource,
grand-parent-resource, child-resource), the type of the resource
such as plugin, type name or category (platform, server, service,
etc.), configuration of the resource, a location or domain of the
resource, and traits of the resource such as measurements.
[0018] In embodiments, in order to dynamically group resource and
deliver the management process, the management tool 112 can be
configured to support simplified queries. The simplified queries
are configured to be a compact, user friendly mechanism to request
management process from the management tool 112. The simplified
queries are constructed in a format familiar to users of the
management tool 112 and straightforward to manipulate.
[0019] In embodiments, the simplified queries can include queries
directed to the management process, along with an identification of
the resource or group of resources associated with the management
process. In particular, the simplified queries include two parts:
one or more expressions defining the management process and a
target of the expression. The expressions can define management
processes such as dynamically grouping, starting, stopping,
updating, measuring, and the like. The target can be a particular
resource or group of resources and attributes of the resources.
[0020] In embodiments, for grouping queries, the management tool
112 can be configured to support at least two types of expressions:
a simple group expression and a pivoted group expression. The
simple group expression can be configured to produce one group
associated with the target and populate that group with any
resource that matches the target. The pivoted group expression can
be configured to produce multiple groups associated with the
target, and populate the groups based on a membership rule of the
target.
[0021] In embodiments, for simple group queries, the simple group
expression can include an identifier as a simple group expression,
and the target can include one or more attributes to match with
resources. For example, in a simple group query, a simple group
expression can specify a simple query of resources and the
attributes can include parent, type, and category, and the target
can specify a platform as the attribute to match to resources. In
such an example, the management tool 112 can be configured to
search the entire inventory and find any resources that have a
parent which is also a platform. As such, the management tool 112
can be configured to create one group including all the found
resources.
[0022] In embodiments, for pivoted group queries, the pivoted group
expression can include an identifier as a pivoted group expression
and the target can include one or more attributes on which to
perform the pivoted grouping. The attributes of the target define
both the subject of the multiple groups and the membership of
resources for the groups. For example, in a pivoted group query, a
pivoted group expression can specify a pivoted query, and the
target can specify resources, parent, and name. In such an example,
the management tool 112 can be configured to search the entire
inventory and find any resources that can be classified as a parent
(i.e., any resource that has a child). As such, the management tool
112 can be configured to create a group for each resource that can
be classified as a parent and populate the group with resources
that are children of the parent.
[0023] For both the simple group expression and pivoted group
expression, the management tool 112 can be configured to assign a
unique identifier to each group. The unique identifier can be
utilized in the simplified queries to specify a particular group.
Additionally, the management tool 112 can be configured to maintain
a repository of created groups associated with the unique
identifiers. As such, when the management tool 112 receives a
simplified query identifying a unique group identifier, the
management tool 112 can be configured to retrieve all resources
associated with the group.
[0024] In embodiments, the management tool 112 can be configured to
process multiple group queries together. The management tool 112
can be configured to combine the multiple queries to perform an
overall grouping process based on the combination of queries. The
multiple group queries can be both simplified group queries and
pivoted group queries.
[0025] In embodiments, the management tool 112 can be configured to
receive request for a simplified query for a management process.
The management tool 112 can be configured to parse the simplified
query to extract the query expression and target. Once extracted,
the management tool 112 can be configured to match the query
expression with a management process and network query for
performing the process. The management tool 112 can construct the
network query with the extracted target and transmit the query to
the resources in the inventory in order to perform the management
process. The network query can be constructed in a network query
language compatible with the resources receiving the network query
regardless of the type or configuration of the resource.
[0026] Once the query is transmitted, the management tool 112 can
be configured to receive a response from the inventory 110 and
extract the results of the management process. The management tool
112 can be configured to process the results of the management
process performed on the resources. In the case of group queries,
the management tool 112 can be configured to populate the created
groups with the results received from the inventory 110.
[0027] FIG. 2 depicts a more detailed block diagram of the
management tool 112 that can be utilized to provide management
process for the enterprise environment 100, in accordance with
embodiments. In embodiments, the management tool 112 can be
configured to provide the management processes to a user 200. It
should be readily apparent to those of ordinary skill in the art
that the management tool 112 depicted in FIG. 2 represents a
generalized schematic illustration and that other components may be
added or existing components may be removed or modified.
[0028] As shown in FIG. 2, the management tool 112 can comprise a
translation engine 205, an application programming interface
("API") 210, a parser module 215, a search engine 220, a repository
225, and a network interface 230. It should be readily obvious to
one of ordinary skill in the art that the modules 205-230 can be
implemented as software applications (programmed in C, C++, JAVA,
PHP, etc.), hardware components (EEPROM, application specific
integrated circuit, microprocessor, etc.) or combinations
thereof.
[0029] The management engine 205 can be configured to manage and
interface with the other modules 210-230 to provide the
functionality of the the management tool 112 as described above and
further described herein below.
[0030] The management tool 112 is configured to deliver management
process to the enterprise system 100. The management processes can
include adding and removing the enterprise platforms 104,
configuring the enterprise platforms 104, monitoring the enterprise
platforms 104, upgrading and updating the enterprise platforms 104,
adding and removing the applications and processes 108, configuring
the applications and processes 108, monitoring the applications and
processes 108, upgrading and updating the applications and
processes 108, managing the overall services provided by an
enterprise platform 104, and the like.
[0031] To initiate management, the management tool 112 can be
configured to interact with a user 200. In particular, the
translation engine 205 can be configured to communicate with the
user 200 via API 210. API 210 can be configured to generate GUIs,
e.g. dialog boxes, web pages, as required by the translation engine
205 and to provide an interface for requesting management process
and receiving results from the management processes.
[0032] In embodiments, to deliver the management processes, the
management tool 112 can be configured to dynamically group the
resources in the inventory 110. The management tool 112 can be
configured to dynamically group the resources in response to a
request group the resources. In particular, the management engine
205 can be configured to receive simplified queries for grouping
via API 210.
[0033] In embodiments, for grouping queries, the management tool
112 can be configured to support at least two types of expressions:
a simple group expression and a pivoted group expression. In order
to process the queries, the management engine 205 can be configure
to pass the queries to parser 215. Parser 215 can be configured to
extract the expression and the target from the query, and pass the
extracted expression and target back to management engine 205.
[0034] For example, a simple group query can take the from of
"<expression>=<target>," e.g.
"resource.parent.type.category=Platform" In this example, the
parser module 215 can be configure to identify and extract
"resource.parent.type.category" as the the expression, and
"Platform" as the target.
[0035] Once extracted, the management tool 112 can be configured to
match the extracted expression with a management process. In
particular, management engine 205 can be configured to maintain a
repository 225. Repository 225 can be configured to store a
translation table 235. Translation table 235 can include the
various extracted expressions with the associated management
process and network query to be utilized in communicating with the
resources, according to the management process.
[0036] To retrieve the network query, the management engine 205 can
be configured to pass the expression to search engine 220. Search
engine 220 can be configured to search translation table 235 to
match the expression to an associated management process and
network query. Search engine 220 can be configured to return the
results to management engine 205.
[0037] Once results are returned, the management engine 205 can be
configured to combine the network query with the extracted target.
Once combined, the management engine 205 can be configured to
transmit the network query to the resources via network
interface.
[0038] The management tool 112 can be configured to receive a
response from the inventory 110 and extract the results of the
management process. If available, the management engine 205 can be
configured to receive the results from the repository 225 if the
repository 225 contains the results. Otherwise, the management
engine 205 can be configured receive the results via network
interface 230. The management engine 205 can be configured to
process the results of the management process. The processing can
include providing the results to the user 200 via API 210.
[0039] In the case of group queries, the management engine 205 can
be configured to create groups 240 for the results and to populate
the created groups with the results received from the inventory
110. The management engine 205 can be configured to store the
results in the repository 240.
[0040] For example, in a simple group query, a simple group query
can take the from of "<expression>=<target>," e.g.
"resource.parent.type.category=Platform". In such an example, the
management engine 205 generates a network query to search the
inventory 110 for resources for any resources with a parent which
is a platform. When the results are received, the management engine
205 can be configured to create one group labeled platform and
populate the group with all the found resources.
[0041] For pivoted group queries, the pivoted group query can take
the form "groupby <expression>" e.g. "groupby
<resource.parent.name>". In the query, the "groupby"
indicates a pivoted expression and
<resouce.parent.name>identifies the target. In such an
example, the management engine 205 can be configured to generate a
network query to search the entire inventory 110 and find all
unique "resouce.parent.name" results. As such, the management
engine 205 can be configured to create a group for each resource
that can be classified as a parent and populate the group with
resources that are children of the parent.
[0042] For groups, the management engine 205 can be configured to
assign a unique identifier to each group. The unique identifier can
be utilized in the simplified queries to specify a particular
group. Additionally, the management engine 205 can be configured to
maintain a repository of created groups associated with the unique
identifiers. As such, when the management engine 205 receives a
simplified query identifying a unique group identifier, the
management engine 205 can be configured to retrieve all resources
associated with the group by requesting search engine 220 retrieve
the resources matching the unique identifier with groups stored in
groups list 240.
[0043] In embodiments, the management engine 205 can be configured
to process multiple queries including multiple group queries
together. The management engine 205 can be configured to combine
the multiple queries to perform an overall grouping process based
on the combination of queries. The multiple group queries can be
both simplified group queries and pivoted group queries. For the
multiple group queries, the management engine 205 can be configured
to process each query in order to provide a more narrowed grouping
of the resources.
[0044] FIG. 3 illustrates an exemplary diagram of hardware and
other resources that can be incorporated in the management system
102 that configured to include or cooperate with the management
tool 112, according to embodiments. In embodiments as shown, the
management system 102 can comprise a processor 300 communicating
with memory 305, such as electronic random access memory, operating
under control of or in conjunction with operating system 315.
Operating system 315 can be, for example, a distribution of the
Linux.TM. operating system, the Unix.TM. operating system, or other
open-source or proprietary operating system or platform. Processor
300 further communicates with network interface 310, such as an
Ethernet or wireless data connection, which in turn communicates
with one or more networks 106, such as the Internet or other public
or private networks. Processor 300 also communicates with the
management tool 112, to execute control logic and control the
operation of the management tool 112 described above and below.
Other configurations of the management system 102, associated
network connections, and other hardware and software resources are
possible.
[0045] FIG. 4 illustrates a flow diagram of overall management
processes, according to embodiments of the present teachings. In
402, processing can begin. In 404, the management tool 112 can
receive a request to aggregate resources in an inventory of an
enterprise system. In 406, the management tool 112 can translate
the query into a network query.
[0046] After translation, in 408, the management tool 112 can
transmit the network query to the resources in the inventory. In
410, the management tool 112 can receive the results of the network
query from the inventory.
[0047] Once received, in 412, the management tool 112 can generate
groups based on the aggregate query. Then, in 414, the management
tool 112 can populate the groups with the results of the network
query. In 416, the process can end, or return to any point and
repeat.
[0048] In the foregoing and other embodiments, the user making
request for management processes can be a person, customer,
subscriber, corporation, organization, or other entity.
[0049] While the invention has been described with reference to the
exemplary embodiments thereof, those skilled in the art will be
able to make various modifications to the described embodiments
without departing from the true spirit and scope. The terms and
descriptions used herein are set forth by way of illustration only
and are not meant as limitations. In particular, although the
method has been described by examples, the steps of the method may
be performed in a different order than illustrated or
simultaneously. Those skilled in the art will recognize that these
and other variations are possible within the spirit and scope as
defied in the following claims and their equivalents.
* * * * *