Method and system for managing storage devices over a network
Summary by NHIP
Network Storage Management System
The method builds a managed object representing storage device functions and associates display functions including attributes, relationships, and display methods. A graphical user interface communicates with these functions to show physical and logical views while remaining decoupled from the object's software code.
Claim Score by NHIP
Abstract
Disclosed is a method, apparatus and system for managing generic objects and storage device objects over a network. In one aspect of the invention, the management apparatus includes a management console having a graphical user interface for displaying a physical view and a logical view of a storage device. The management apparatus further includes a managed object of the storage device that is configured to communicate with the graphical user interface of the management console through a facet interface that is wrapped around the managed object. The facet interface is divided into a plurality of specific facets that communicate with the graphical user interface and enable the display of the physical view and the logical view of the storage device. In a further aspect of the present invention, the graphical user interface includes a plurality of generic views which are configured to communicate with associated ones of the plurality of specific facets of the facet interface. These aspects enable the facet interface of the managed object to be separate and de-coupled from a software code of the graphical user interface.

Term
Term ended
Expired 6 March 2018, 8.6 years ago.
- Priority and filed
- Granted
- Expired
- Today
7 claims: 3 independent, 4 dependent
- 1Broadest claimClaim Score 45, average(NHIP)A method for making a managed object that is in communication with a management console that is used for storage device management over a network, comprising:building an object having a data structure and a method for operating on the data structure, the object represents a set of basic functions of a storage device that is being managed over the network;identifying at least one display function of the managed object that will be used to display a view of the managed object through the management console, the at least one display function includes an attribute, a relationship, and a display method of the managed object;associating the at least one display function with the managed object so that the managed object can communicate with the management console through the at least one display function;generating a graphical user interface that is executed on the management console, the graphical user interface is configured to communicate with the at least one display function of the managed object;altering the data structure and the method of the managed object to create a new managed object;and modifying the at least one display function to enable code interaction between the modified data structure and the new managed object.
- 4A method for making a managed object that is in communication with a management console that is used for device management over a network, comprising:building an object having a data structure and a method for operating on the data structures the object represents a set of basic functions of a device that is being managed over the network;identifying at least one display function of the managed object that will be used to display a view of the managed object through the management console;associating the at least one display function with the managed object so that the managed object can communicate with the management console through the at least one display function;altering the data structure and the method of the managed object to create a new managed object;modifying the at least one display function to enable code interaction between the modified data structure and the new managed object;and generating a graphical user interface that is executed on the management console, the graphical user interface is configured to communicate with the at least one display function of the managed object;wherein the at least one display function is de-coupled from a graphical user interface of the management console, and the at least one display function forms a facet of the managed object.
- 6A method for making a managed object that is in communication with a management console that is used for storage device management over a network, comprising:building an object having a data structure and a method for operating on the data structure, the object represents a set of basic functions of a storage device that is being managed over the network;identifying at least one display function of the managed object that will be used to display a view of the managed object through the management console, the at least one display function includes an attribute, a relationship, and a display method of the managed object;associating the at least one display function with the managed object so that the managed object can communicate with the management console through the at least one display function;generating a graphical user interface that is executed on the management console, the graphical user interface is configured to communicate with the at least one display function of the managed object;altering the data structure and the method of the managed object to create a new managed object;and modifying the at least one display function to enable code interaction between the modified data structure and the new managed object;wherein the at least one display function forms a facet of the managed object.
Independent claims3
70 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to management software, and more particularly to methods and systems for efficiently interfacing existing management user interfaces with networked computer and computer peripheral storage product lines.
2. Description of the Related Art
In order to stay competitive in today's business environment, more and more computer systems, storage devices, and peripheral devices are being networked together. As is well known, this degree of networking is needed to provide users with shared access to data that is stored on the various networked devices. Although networking devices provides users with a high degree of flexibility and shared access to data stored in numerous storage devices, these shared devices must be managed to ensure compatibility issues are addressed, and to monitor their operational status.
To accomplish such management tasks, FIG. 1A shows a management system <b>100</b> in which various storage devices <b>104</b><i>a </i>through <b>104</b><i>d </i>are networked to a management console computer <b>106</b>. In this simplified example, the storage devices <b>104</b><i>a</i>-<b>104</b><i>d </i>are shown directly coupled to a network <b>102</b>, however, such storage devices are usually coupled to a networked computer via a host adapter. In conventional management systems <b>100</b>, the management console computer <b>106</b> runs a graphical user interface <b>112</b>, which is engineered to be compatible with the storage devices <b>104</b><i>a</i>-<b>104</b><i>d</i>. As such, the software designer of the graphical user interface <b>112</b> is required to integrate the relationships, attributes and methods of each of the storage devices <b>104</b><i>a</i>-<b>104</b><i>d</i>, so that the user of the management console computer <b>106</b> will actually be able to communicate (i.e., call) with and invoke the methods that control the storage devices <b>104</b><i>a</i>-<b>104</b><i>d. </i>
A problem with conventional management systems <b>100</b> is that the storage devices <b>104</b><i>a</i>-<b>104</b><i>d </i>are independently developed, tested and connected to a given network, which may produce compatibility issues. To avoid this, the software engineers that design the software (also known here as “the managed objects”) for the various storage devices have to coordinate the design and interoperability of such storage devices with the software engineer of the graphical user interface <b>112</b>. Although this works fine, this solution also creates a substantial amount of work for the software engineering team that programs the graphical user interface <b>112</b> for the management console computer <b>106</b> and slows down the release of new features.
For example, the software features that are integrated into the managed objects that are associated with each of the storage devices <b>104</b><i>a</i>-<b>104</b><i>b </i>are frequently updated, modified or completely replaced with new releases. In some cases, the managed objects are redesigned once or twice a year. Although one or two modifications to the graphical user interface software is not necessarily a large undertaking, a typical network may have up to 20 different types of storage devices, each having its unique managed object. As a result, the software engineering team that programs the graphical user interface <b>112</b> may be required to make up to 40 or more code modifications a year to the graphical user interface code, just to keep up with the changes being independently performed by the developers of the managed objects. Many times, the changes may not get implemented into the graphical user interface <b>112</b> software due to time constraints and testing requirements, which therefore, may hamper or sever functional communication between the management console computer <b>106</b> and the various storage devices.
FIG. 1B is a block diagram illustrating the conventional communication protocols <b>110</b> that are exchanged between a group of managed objects <b>118</b><i>a</i>-<b>118</b><i>c </i>and the graphical user interface <b>112</b>. In one example, assume that the managed object <b>118</b><i>c </i>of a given storage device was recently updated without performing the necessary software manipulations to a managed object interface <b>114</b> of the graphical user interface <b>112</b>. When this is the case, if the user of the management console computer <b>106</b> desires to print some data form a selected storage device, the managed object <b>118</b><i>c </i>will normally pass a data structure <b>116</b><i>c </i>to the managed object interface <b>114</b>.
Unfortunately, a screen manager of the management console computer <b>106</b> will not be able to invoke any of the methods of the managed object <b>118</b><i>c, </i>because the data structure <b>116</b><i>c </i>will typically only contain the necessary data and pointers to methods. However, because the graphical user interface <b>112</b> was not updated with the necessary code to handle the data structure pointers of data structure <b>116</b><i>c, </i>the management console computer <b>106</b> will not be able to adequately manage the appearance, attributes and methods of the new or updated managed object <b>118</b><i>c. </i>Even if the data structure <b>116</b><i>c </i>contained the necessary icon for the new or updated managed object <b>118</b><i>c, </i>when the user of the management console computer <b>106</b> clicked on that icon, nothing would happen because the graphical user interface <b>112</b> was not previously updated to handle the new managed object <b>118</b><i>c. </i>
In view of the foregoing, what is needed is a method and system for designing managed objects so that they are able to inherently communicate with an existing management graphical user interface without having to custom upgrade the graphical user interface code for each new revision of a managed object.
SUMMARY OF THE INVENTION
Broadly speaking, the present invention fills these needs by providing methods, apparatus and systems for integrating custom facets that contain attributes, relationships and methods directly into a managed object to avoid the continual redesign of management graphical user interface software. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for making a managed object that is in communication with a management console that is used for storage device management over a network is disclosed. The method includes building an object having a data structure and a method for operating on the data structure. The object represents a set of basic functions of a storage device that is being managed over the network. The method also includes identifying at least one display function of the managed object that will be used to display a view of the managed object through the management console. In this embodiment, the at least one display function includes an attribute, a relationship, and a display method of the managed object. The method further includes appending the at least one display function to the managed object so that the managed object can communicate with the management console through the at least one display function. In a preferred aspect of this embodiment, the method includes generating a graphical user interface that is executed on the management console, and the graphical user interface is configured to communicate with the at least one display function of the managed object.
In another embodiment, an apparatus for managing storage devices over a network is disclosed. The management apparatus includes a management console having a graphical user interface for displaying a physical view and a logical view of a storage device. The management apparatus further includes a managed object of the storage device that is configured to communicate with the graphical user interface of the management console through a facet interface that is wrapped around the managed object. The facet interface is divided into a plurality of specific facets that communicate with the graphical user interface and enable the display of the physical view and the logical view of the storage device. In a further aspect of this embodiment, the graphical user interface includes a plurality of generic views which are configured to communicate with associated ones of the plurality of specific facets of the facet interface.
In yet another embodiment, a system for managing storage means over a network is disclosed. The system includes a management console means that has a graphical user interface for displaying one of a physical view and a logical view of a storage means. The system also includes a managed object means of the storage means that is configured to communicate with the graphical user interface of the management console means through a facet interface means that is wrapped around the managed object means. The facet interface means is divided into a plurality of specific facets that communicate with the graphical user interface and enable the display of either the physical view or the logical view of the storage means. In this embodiment, the graphical user interface of the system also includes a plurality of generic views which are configured to communicate with associated ones of the plurality of specific facets of the facet interface means.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
FIG. 1A is a physical representation of a management architecture that is used to manage networked storage devices.
FIG. 1B is a block diagram illustrating the conventional communication protocols that may be exchanged between a group of managed objects and a graphical user interface.
FIGS. 2A-2B show a graphical user interfaces that is implemented to carry out storage management functions in accordance with one embodiment of the present invention.
FIGS. 2C-2D show graphical representations of the physical relationships of various managed objects that are connected to subsystems of a network in accordance with one embodiment of the present invention.
FIGS. 2E-2F graphically show logical representations of the managed objects that are managed via a graphical user interface in accordance with one embodiment of the present invention.
FIGS. 3A-3B show graphical representations of a managed object that is in communication with a graphical user interface in accordance with one embodiment of the present invention.
FIG. 4 shows a flowchart diagram of the method operations performed in generating a managed object having management facets for communicating with a graphical user interface that is used to manage storage devices over a network, in accordance with one embodiment of the present invention.
FIG. 5 shows the method operations performed in invoking a managed function of a given facet in accordance with one embodiment of the present invention.
FIG. 6 shows a graphical representation of a managed object having multiple facets for linking with particular views of a graphical user interface in accordance with one embodiment of the present invention.
FIG. 7 shows a managed object interrelationship diagram in accordance with one embodiment of the present invention.
FIG. 8 is a block diagram of an exemplary computer system for carrying out some of the processing according to the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
An invention is described for methods, apparatus and systems for integrating custom facets that contain attributes, relationships and methods directly into a managed object to avoid the continual redesign of management graphical user interface software. It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
FIG. 2A shows a graphical user interface <b>200</b> that is implemented to carry out storage management functions in accordance with one embodiment of the present invention. As shown, the graphical user interface <b>200</b> is representative of the look and feel that may be presented to the user of a management console computer that is used for managing storage devices that are networked throughout a particular managed network. In this example, a directory view <b>201</b> provides a list of various systems and subsystems <b>202</b> that are coupled to a network that is in communication with a management console computer.
For example, the directory view <b>201</b> shows that there is a Longmount IDIOM Directory Server <b>206</b>, an NTC IDIOM Directory Server <b>208</b>, an Irvine IDIOM Directory Server <b>224</b>, and a Milpitas IDIOM Directory Server <b>226</b>, which define the systems displayed in the directory view <b>201</b>. In general, a system is a single computing entity which hosts an operating system and manages some set of resources. There is also a couple of systems labeled ADPTEAST <b>210</b>, MGB <b>212</b>, and YETI <b>218</b>, which are physically connected to the system <b>208</b>. Further shown are a couple of adapter cards (i.e., subsystems) that are identified as AFA-<b>333</b><b>214</b> and <b>2940</b><b>216</b>, and which are connected to the MGB <b>212</b> system. In this example, subsystem <b>214</b> is a three-channel plug-in file system, and subsystem <b>216</b> is a SCSI card.
System YETI <b>218</b> also includes a subsystem <b>220</b> and a subsystem <b>222</b>. As used herein, a subsystem is a portion of the primary system that manages some subset of that system's online storage. An example of a subsystem is a disc controller card and its associated storage devices and enclosures.
In general, the software code programmed to control the graphical user interface <b>200</b> builds upon “inherent” and “injected” behaviors. An “inherent” behavior stems from the fact that the graphical user interface <b>200</b> of the management console must make some assumptions about the managed objects that may be connected to some of the subsystems identified in the directory view <b>201</b>. Some of these assumptions include that an IDIOM Directory Server (i.e., systems <b>206</b>, <b>208</b>, <b>224</b>, <b>226</b>, and the like), are connected to a given network that is being managed.
Accordingly, the IDIOM Directory Servers will contain a list of “known” systems that are running IDIOM-based services for one or more storage devices that are coupled to the subsystems <b>214</b>, <b>216</b>, <b>220</b>, and <b>222</b>. In this manner, the existence of a set of object classes, instances of which are discoverable from any given IDIOM subsystem, will be logically connected to the management console in some well defined fashion. By way of example, any one of the systems have subsystems which are connected to storage units via a given interface. Thus, the storage units may be potentially divided into one or more logical spaces which, may in turn be coalesced into one or more containers, etc.
On the other hand, “injected” behavior is that functionality that is presented to the end user through the management console framework, which does not come from the graphical user interface <b>200</b> itself, but alternatively, is integrated as part of a managed object. As will be described in greater detail below, the managed object will have a plurality of facets which contain a particular view's attributes, relationships, and methods, and are then communicated by the managed object to the graphical user interface <b>200</b>. Although there are many functionalities which may be integrated into a particular managed object, there are some essential functionalities which should be integrated into the managed object in accordance with one embodiment of the present invention.
For example, the managed objects will have its own code for graphically presenting itself to the graphical user interface <b>200</b>. In this manner, the graphical user interface <b>200</b> can represent that managed object in the appropriate physical and logical representations. These graphical representations range from simple icons used to represent the managed object, to complex representations provided by the managed object to represent some specific view of that managed object. The managed object will also have the ability to present an interface that has access to the functionalities (i.e., methods) that are provided by the managed object. Such interface may also include menus that interface with the methods that operate on the object's data, and panels that represent the properties of the managed object, and where needed, provide for interaction with those properties.
The graphical user interface <b>200</b> is therefore a multiple view application in which the user can manage the resources of a single server, a single subsystem, or a collection of resources from any number of systems/subsystems. In the directory view <b>201</b>, a simple tree control is provided, although other known presentation formats may also be used to represent the exemplary physical or logical views.
The directory view <b>201</b> also provides an aggregate function <b>204</b>. The aggregate function <b>204</b> when selected, may display the file system which is typically operating system (OS) dependent, and enables the presentation of available files resident in the management console or on devices over the network. In one embodiment, once the aggregate function <b>204</b> is selected, the window may be displayed via JFC's JFileChoose panel. As is well known to those skilled in the art, JFC is part of the Java programming language, which is available from Sun Microsystems, Inc., of Mountain View, Calif. For more information on Java programming and techniques for generating graphical user interfaces, reference may be made to a book entitled “Inside Java,” by Karanjit S. Siyan, Ph.D. and James L. Weaver, New Rider Publishing (1997). This book is hereby incorporated by reference.
FIG. 2B shows a physical view of system <b>218</b> YETI once it has been selected from the directory view <b>201</b> of FIG. <b>2</b>A. Because system <b>218</b> YETI has a plus sign “+”, a user may now click on the plus sign to expand the physical view of YETI <b>218</b>. As shown in FIG. 2C, the expanded view shows that subsystems <b>220</b> and <b>222</b> are physically connected to YETI <b>218</b>. Each of the subsystems <b>220</b> and <b>222</b> have a respective plus sign, which indicates that there is at least one managed object physically connected to those respective subsystems. Once the plus signs of the respective subsystems <b>220</b> and <b>222</b> are selected by the user of the graphical user interface <b>200</b>, an expanded view is shown in FIG. <b>2</b>D.
By way of example, subsystem <b>220</b> is shown having a bus <b>230</b> which is physically connected to managed objects <b>231</b><i>a </i>through <b>231</b><i>h</i>. A second bus <b>232</b> is also connected to subsystem <b>220</b>. The second bus <b>232</b> includes physical managed objects <b>233</b><i>a </i>through <b>233</b><i>f</i>. And finally, subsystem <b>222</b> has a bus <b>234</b> that is physically coupled to managed objects <b>235</b><i>a </i>through <b>235</b><i>f</i>. In this example, the managed objects are shown to be physical storage devices, but of course, they can actually be any device having an object that needs to be managed in some way.
In the physical view of FIG. 2D, managed object <b>231</b><i>a </i>is provided with a graphical task indicator <b>231</b><i>a</i>′, which indicates when a task is actually being executed on the exemplary managed object <b>231</b><i>a</i>. Although not shown, all other managed objects may also have their associated task indicators. As pictorially illustrated, the types of data storage devices and their associated managed objects are numerous, and may include hard drives, databases, scanner devices, tape drives, optical drives, etc.
FIG. 2E shows the graphical user interface <b>200</b> which identifies the logical view of the storage devices that may be coupled to a subsystem <b>220</b> in accordance with one embodiment of the present invention. It should be understood that a logical view illustrates the logical elements that are being managed through the system YETI <b>218</b>. By way of example, containers <b>242</b><i>a </i>through <b>242</b><i>f </i>illustrate data storage containers that may be made up of bits and pieces from several different physical storage devices. As shown in FIG. 2F, container <b>242</b><i>c</i>, which is identified as partition “H,” has 10 gigabytes (GB) of data logically stored therein. In this example, container <b>242</b><i>c </i>only logically contains portions from managed objects <b>231</b><i>a</i>, <b>231</b><i>b</i>, <b>231</b><i>d</i>, and <b>231</b><i>h. </i>
It should be understood that the icons provided to the graphical user interface <b>200</b> are actually obtained from the managed objects themselves. That is, the managed objects will provide the graphical user interface <b>200</b> with the associated icon data, labels, and displayable attributes. In addition, the logical containers will also include any associated methods for managing the data injected by those managed objects.
FIG. 3A shows a graphical representation of a managed object <b>302</b> that is in communication with a graphical user interface (GUI) <b>200</b> in accordance with one embodiment of the present invention. The managed object <b>302</b> preferably includes a plurality of facets, shown as F<sub>0 </sub><b>304</b>, F<sub>1 </sub><b>306</b>, F<sub>2 </sub><b>310</b>, and F<sub>3 </sub><b>308</b>. By way of example, facet F<sub>1 </sub><b>306</b> is used as an interface for selected views of the managed object <b>302</b>. Each facet is therefore configured to access attributes <b>320</b>, relationships <b>322</b>, and methods <b>324</b> for a particular view of the managed object <b>302</b>. Of course, different display relationships, and managed functions will be required for different types of objects, storage devices, and peripheral devices that may be networked and managed by a management console computer interface. In this example, the facet F<sub>1 </sub><b>306</b> is configured to communicate with a view<sub>1 </sub><b>316</b>, which is integrated and designed to be part of the graphical user interface <b>200</b>.
In general, the views that are integrated into the graphical user interface <b>200</b> are generic views, which are configured to communicate with the various facets of a managed object <b>302</b>. As such, a view<sub>0 </sub><b>314</b> will communicate with the facet F<sub>0 </sub><b>304</b>, a view<sub>2 </sub><b>318</b> will communicate with the facet F<sub>2 </sub><b>310</b>, and a view<sub>3 </sub><b>319</b> will communicate with the facet F<sub>3 </sub><b>308</b>. In this embodiment, the various views that are integrally programmed to be part of the graphical user interface <b>200</b> are generic views, which are configured to interface with associated facets of the various managed objects. In yet another embodiment, the views themselves may be injected to the GUI by the managed object, which will eliminate the need for the GUI to have a set of generic views.
Accordingly, the graphical user interface <b>200</b> will not include the various attributes, relationships, and methods for every possible managed object, but alternatively will be provided by each managed object to the graphical user interface <b>200</b>. As is well known, the graphical user interface <b>200</b> will also include GUI management code <b>317</b> for managing the various components of the generic graphical user interface <b>200</b>. As mentioned above, once a storage device which has its custom managed object software is connected to a particular subsystem in a networked environment, that managed object will present the attributes <b>320</b>, relationships <b>322</b> and methods <b>324</b> of the various facets to the graphical user interface <b>200</b>. In other embodiments, the graphical user interface will go out and seek the particular attributes, representations and methods of the networked objects via the object's facet interface.
Advantageously, if future developments, updates, or revisions are performed on the managed object in order to provide it with additional functionalities or amend an existing functionality, those changes need not be made to the graphical user interface <b>200</b>. Alternatively, the facets of the managed object will provide the changed attributes <b>320</b>, relationships <b>322</b> and methods <b>324</b> directly to the graphical user interface <b>200</b> via facet F<sub>1</sub>. Thus, the software development team that is in charge of maintaining a graphical user interface <b>200</b> will not have to continually update the code of the GUI each time a change is made to the various attributes, relationships or methods of the given managed objects that are being managed from GUI <b>200</b> (i.e., that is resident on a management console computer). As can be appreciated, the embodiments of the present invention provide a substantial savings in time, effort and resources that would be need to continuously update and test the inter-operability of the graphical user interface <b>200</b> with the various managed objects that may be connected to a particular networked system.
FIG. 4 shows a flowchart diagram <b>400</b> of the method operations performed in generating a managed object having management facets for communicating with a graphical user interface that is used to manage storage devices over a network. The method begins at an operation <b>402</b> where a managed object that is configured to be displayed and invoked through a graphical user interface is provided. By way of example, the managed object may be the software algorithms and data that represents the physical and logical aspects that control a storage device that is networked with a management console computer having the management graphical user interface.
The method now proceeds to an operation <b>404</b> where each managed function and display attribute of the managed object is identified. By way of example, a managed object may be displayed in many ways to illustrate its attributes through a graphical user interface. The managed object may also have several functional features (i.e., its associated methods) that may be executed by gaining control of that managed object through the graphical user interface. Once each of the managed functions and display attributes of the managed object are identified, the method proceeds to an operation <b>406</b>.
In operation <b>406</b>, a management facet that is capable of executing the managed functions is generated for each of the identified managed functions and display attributes. As shown in FIGS. 3A and 3B, a managed object <b>302</b> may have four facets F<sub>0 </sub>through F<sub>3 </sub>(or any number), which are associated with different respective views of the same managed object. In addition, each of the facets integrate respective attributes, relationships, and methods that may be called through its particular facet. Once the management facets are generated in operation <b>406</b>, the method proceeds to an operation <b>408</b>. In operation <b>408</b>, the management facets are appended to the managed object itself.
In this manner, each managed object will have one or more facets which integrate their various attributes, relationships and methods directly with the managed object, and are thereafter made available to the graphical user interface of a given management console. As mentioned above, because the management facets incorporate the unique attributes, relationships and methods of a particular managed object, the graphical user interface of the management console need not be repetitively updated to take into account the features that are integrated into the various facets of a managed object. Therefore, the various facets essentially form a wrapper interface defining a second level of methods around a managed object.
FIG. 5 shows the method operations performed in invoking a managed function of a given facet in accordance with one embodiment of the present invention. The method begins at an operation <b>502</b> where a view of the managed object is selected from the graphical user interface <b>200</b> of FIGS. 2A through 2E. For example, if view, <b>316</b> is selected by the user of the management console, the view, <b>316</b> of the graphical user interface <b>200</b> will communicate and make the particular calls to the methods of a corresponding facet F<sub>1 </sub><b>306</b>, of the managed object <b>302</b> in operation <b>504</b>. Once a link has been established with the appropriate facet of the selected view, the method will proceed to an operation <b>506</b>.
In operation <b>506</b>, a managed function (i.e., method) that is integrated into the corresponding facet may be executed. Of course, the calls that trigger the attributes, relationships, and methods of that particular facet will be controlled by the graphical user interface <b>200</b>, without having to integrate those code features into the graphical user interface itself. Once the managed function has been executed in operation <b>506</b>, the method of invoking a managed function will be done.
FIG. 6 shows a graphical representation of a managed object <b>602</b> having multiple facets <b>604</b> for linking with particular views of the graphical user interface <b>200</b>. In this example, a facet F<sub>N </sub><b>604</b><i>a </i>communicates via a link <b>609</b> to the associated view<sub>N </sub><b>612</b> that is contained within the graphical user interface <b>200</b>. The view<sub>N </sub><b>612</b> which is function-independent, is configured to display the view of that particular facet in a view frame <b>620</b>.
As mentioned above, the managed object <b>602</b> contains all of the semantics associated with the functions of the managed object and is also capable of communicating with subsystem managed objects <b>610</b>. The subsystem managed object <b>610</b> will also preferably have a wrapper of multiple facets that enable it to communicate with the graphical user interface independently. As shown, the managed object <b>602</b> is configured to manage the subsystem managed object <b>610</b> through a link <b>608</b>, and a facet <b>611</b> of the subsystem managed object <b>610</b> communicates with the view<sub>N </sub><b>612</b> via a link <b>607</b>.
The view<sub>N </sub><b>612</b> may also communicate with the view frame <b>620</b> to adequately call and invoke the attributes of the particular managed object or subsystem managed object. As mentioned above, the graphical user interface <b>200</b> may also include numerous other views, which are function-independent, view-sensitive, and can display methods, and may communicate and call the methods of unique facets of a given managed object.
FIG. 7 shows a managed object interrelationship diagram <b>700</b> in accordance with one embodiment of the present invention. For exemplary purposes, managed objects <b>702</b>, <b>704</b>, <b>706</b>, and <b>708</b> are illustrated having a variety of different facets for communicating with particular views of a graphical user interface <b>200</b>. In this example, many of the managed objects share the same or similar types of facets, and will therefore require access to the same view that is integrated into the graphical user interface <b>200</b>. As mentioned above, the particular views are function-independent, view sensitive, and display methods.
In the example shown, facet F<sub>0 </sub>in each of managed objects <b>702</b>, <b>704</b>, and <b>706</b> are virtually linked to the view<sub>0</sub>. In a like manner, view<sub>1</sub>, view<sub>2</sub>, view<sub>3</sub>, view<sub>4</sub>, view<sub>5</sub>, view<sub>6</sub>, and view<sub>7 </sub>each are capable of accessing (i.e., calling) their respective facets in the various managed objects that are accessed by the graphical user interface <b>200</b>. Accordingly, the design and management of the graphical user interface will be minimized because updates associated with each managed object will no longer have to be performed in the software code of the graphical user interface <b>200</b>. That is, the attributes, relationships and methods of each managed object are integrated in a wrapper of facets around each respective managed object and therefore, are de-coupled from the graphical user interface <b>200</b>.
The invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations. An exemplary structure for the invention is described below.
FIG. 8 is a block diagram of an exemplary computer system <b>800</b> for carrying out the processing according to the invention. The computer system <b>800</b> includes a digital computer <b>802</b>, a display screen (or monitor) <b>804</b>, a printer <b>806</b>, a floppy disk drive <b>808</b>, a hard disk drive <b>810</b>, a network interface <b>812</b>, and a keyboard <b>814</b>. The digital computer <b>802</b> includes a microprocessor <b>816</b>, a memory bus <b>818</b>, random access memory (RAM) <b>820</b>, read only memory (ROM) <b>822</b>, a peripheral bus <b>824</b>, and a keyboard controller <b>826</b>. The digital computer <b>800</b> can be a personal computer (such as an IBM compatible personal computer, a Macintosh computer or Macintosh compatible computer), a workstation computer (such as a Sun Microsystems or Hewlett-Packard workstation), or some other type of computer.
The microprocessor <b>816</b> is a general purpose digital processor which controls the operation of the computer system <b>800</b>. The microprocessor <b>816</b> can be a single-chip processor or can be implemented with multiple components. Using instructions retrieved from memory, the microprocessor <b>816</b> controls the reception and manipulation of input data and the output and display of data on output devices. According to the invention, a particular function of microprocessor <b>816</b> is to assist in the execution of the object-oriented code that is used to manage generic objects (i.e., that are not necessarily used for storage), and the objects of storage devices from a management console GUI.
The memory bus <b>818</b> is used by the microprocessor <b>816</b> to access the RAM <b>820</b> and the ROM <b>822</b>. The RAM <b>820</b> is used by the microprocessor <b>816</b> as a general storage area and as scratch-pad memory, and can also be used to store input data and processed data. The ROM <b>822</b> can be used to store instructions or program code followed by the microprocessor <b>816</b> as well as other data.
The peripheral bus <b>824</b> is used to access the input, output, and storage devices used by the digital computer <b>802</b>. In the described embodiment, these devices include the display screen <b>804</b>, the printer device <b>806</b>, the floppy disk drive <b>808</b>, the hard disk drive <b>810</b>, and the network interface <b>812</b>. The keyboard controller <b>826</b> is used to receive input from keyboard <b>814</b> and send decoded symbols for each pressed key to microprocessor <b>816</b> over bus <b>828</b>.
The display screen <b>804</b> is an output device that displays images of data provided by the microprocessor <b>816</b> via the peripheral bus <b>824</b> or provided by other components in the computer system <b>800</b>. The printer device <b>806</b> when operating as a printer provides an image on a sheet of paper or a similar surface. Other output devices such as a plotter, typesetter, etc. can be used in place of, or in addition to, the printer device <b>806</b>.
The floppy disk drive <b>808</b> and the hard disk drive <b>810</b> can be used to store various types of data. The floppy disk drive <b>808</b> facilitates transporting such data to other computer systems, and hard disk drive <b>810</b> permits fast access to large amounts of stored data.
The microprocessor <b>816</b> together with an operating system operate to execute computer code and produce and use data. The computer code and data may reside on the RAM <b>820</b>, the ROM <b>822</b>, or the hard disk drive <b>810</b>. The computer code and data could also reside on a removable program medium and loaded or installed onto the computer system <b>800</b> when needed. Removable program mediums include, for example, CD-ROM, PC-CARD, floppy disk and magnetic tape.
The network interface <b>812</b> is used to send and receive data over a network connected to other computer systems. An interface card or similar device and appropriate software implemented by the microprocessor <b>816</b> can be used to connect the computer system <b>800</b> to an existing network and transfer data according to standard protocols.
The keyboard <b>814</b> is used by a user to input commands and other instructions to the computer system <b>800</b>. Other types of user input devices can also be used in conjunction with the present invention. For example, pointing devices such as a computer mouse, a track ball, a stylus, or a tablet can be used to manipulate a pointer on a screen of a general-purpose computer.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can be thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, magnetic tape, optical data storage devices. The computer readable medium can also be distributed over a network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Contents4
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
Every citation, both waysCites: the store holds 27 of 28
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US6961813B2 | Cited by | United States of America | Applicant |
| US7725572B1 | Cited by | United States of America | Applicant |
| US9781058B1 | Cited by | United States of America | Applicant |
| US7082464B2 | Cited by | United States of America | Search report |
| US2003220991A1 | Cited by | United States of America | Pre-grant |
| US2010005240A1 | Cited by | United States of America | Pre-grant |
| US7627733B2 | Cited by | United States of America | Applicant |
| US2005039085A1 | Cited by | United States of America | Pre-grant |
| US8176248B2 | Cited by | United States of America | Applicant |
| US8370528B2 | Cited by | United States of America | Applicant |
| US8284664B1 | Cited by | United States of America | Applicant |
| US8051389B2 | Cited by | United States of America | Search report |
| US7127555B2 | Cited by | United States of America | Applicant |
| US2007067384A1 | Cited by | United States of America | Pre-grant |
| US8209482B2 | Cited by | United States of America | Applicant |
| US8407414B2 | Cited by | United States of America | Applicant |
| US7788226B2 | Cited by | United States of America | Applicant |
| US2008114887A1 | Cited by | United States of America | Pre-grant |
| US6661885B1 | Cited by | United States of America | Search report |
| US2003236952A1 | Cited by | United States of America | Pre-grant |
| US11228647B2 | Cited by | United States of America | Applicant |
| US7756968B1 | Cited by | United States of America | Applicant |
| US7523254B2 | Cited by | United States of America | Applicant |
| US7937527B2 | Cited by | United States of America | Applicant |
| US7457856B2 | Cited by | United States of America | Applicant |
| US7805564B2 | Cited by | United States of America | Search report |
| US7577731B2 | Cited by | United States of America | Applicant |
| US2005033914A1 | Cited by | United States of America | Pre-grant |
| US2007150597A1 | Cited by | United States of America | Pre-grant |
| US2005050471A1 | Cited by | United States of America | Pre-grant |
| US2003110262A1 | Cited by | United States of America | Pre-grant |
| US9769017B1 | Cited by | United States of America | Applicant |
| US6834301B1 | Cited by | United States of America | Search report |
| US11750441B1 | Cited by | United States of America | Applicant |
| US2007118624A1 | Cited by | United States of America | Pre-grant |
| US2011019550A1 | Cited by | United States of America | Pre-grant |
| US8006035B2 | Cited by | United States of America | Applicant |
| US2005216585A1 | Cited by | United States of America | Pre-grant |
| US2005223282A1 | Cited by | United States of America | Pre-grant |
| US8375168B2 | Cited by | United States of America | Applicant |
| US2003236953A1 | Cited by | United States of America | Pre-grant |
| US7310701B2 | Cited by | United States of America | Applicant |
| US6948036B2 | Cited by | United States of America | Applicant |
| US2005278478A1 | Cited by | United States of America | Pre-grant |
| US2004165206A1 | Cited by | United States of America | Pre-grant |
| US7200662B2 | Cited by | United States of America | Applicant |
| US10951506B1 | Cited by | United States of America | Applicant |
| US2005223283A1 | Cited by | United States of America | Pre-grant |
| US8266264B2 | Cited by | United States of America | Search report |
| US2007136727A1 | Cited by | United States of America | Pre-grant |
| US2002152297A1 | Cited by | United States of America | Pre-grant |
| US7822826B1 | Cited by | United States of America | Applicant |
| US2005010585A1 | Cited by | United States of America | Pre-grant |
| US10397085B1 | Cited by | United States of America | Applicant |
| US2008004991A1 | Cited by | United States of America | Pre-grant |
| US7313612B1 | Cited by | United States of America | Search report |
| US8051244B2 | Cited by | United States of America | Applicant |
| US7747837B2 | Cited by | United States of America | Applicant |
| US2007016736A1 | Cited by | United States of America | Pre-grant |
| US2004030768A1 | Cited by | United States of America | Pre-grant |
| US10374936B2 | Cited by | United States of America | Applicant |
| US7096315B2 | Cited by | United States of America | Applicant |
| US7721266B2 | Cited by | United States of America | Applicant |
| US7793068B2 | Cited by | United States of America | Applicant |
| US2005182831A1 | Cited by | United States of America | Pre-grant |
| US7181509B2 | Cited by | United States of America | Search report |
| US2003028624A1 | Cited by | United States of America | Pre-grant |
| US8209516B2 | Cited by | United States of America | Applicant |
| US2005160378A1 | Cited by | United States of America | Pre-grant |
| US2008098110A1 | Cited by | United States of America | Pre-grant |
| US2004237094A1 | Cited by | United States of America | Pre-grant |
| US8424002B2 | Cited by | United States of America | Search report |
| US7769978B2 | Cited by | United States of America | Applicant |
| US7526550B2 | Cited by | United States of America | Applicant |
| US2002054169A1 | Cited by | United States of America | Pre-grant |
| US10126959B2 | Cited by | United States of America | Applicant |
| US7146568B2 | Cited by | United States of America | Search report |
| US7370105B2 | Cited by | United States of America | Search report |
| US2005216510A1 | Cited by | United States of America | Pre-grant |
| US10055147B2 | Cited by | United States of America | Applicant |
| US9407526B1 | Cited by | United States of America | Applicant |
| US9083628B2 | Cited by | United States of America | Applicant |
| US2006149729A1 | Cited by | United States of America | Pre-grant |
| US7765328B2 | Cited by | United States of America | Applicant |
| US9104315B2 | Cited by | United States of America | Applicant |
| US7941521B1 | Cited by | United States of America | Applicant |
| US8954858B2 | Cited by | United States of America | Applicant |
| US5475845A | Cites | United States of America | Search report |
| US5491796A | Cites | United States of America | Search report |
| US5504906A | Cites | United States of America | Search report |
| US5555365A | Cites | United States of America | Search report |
| US5668992A | Cites | United States of America | Search report |
| US5751967A | Cites | United States of America | Search report |
| US5761656A | Cites | United States of America | Search report |
| US5822585A | Cites | United States of America | Search report |
| US5832298A | Cites | United States of America | Search report |
| US5848243A | Cites | United States of America | Search report |
| US5872973A | Cites | United States of America | Search report |
| US5893913A | Cites | United States of America | Search report |
| US5918016A | Cites | United States of America | Search report |
2 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 3661598 | United States of America | A | |
| US19980036615 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2002002606A1 | United States of America | A1 | |
| US6466973B2This record | United States of America | B2 |
14 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 6466973
- Publication, EPODOC
- US6466973
- Application
- 9036615
- Application, DOCDB
- 3661598
- Application, EPODOC
- US19980036615
Titles
- English
- Method and system for managing storage devices over a network
Classification
- CPC, 5
- H04L41/22
- G06F3/0601
- G06F3/0605
- G06F3/0644
- G06F3/067
- IPC, 2
- G06F3 06
- H04L12 24
- USPC, 3
- 709223000
- 715234000
- 719316000