BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to a method, system, and article of manufacture for generating information on application tasks for component objects grouped in a composite object.
2. Description of the Related Art
A composite object appears as a single entity and may contain one or more component objects. For example, a ZIP file, which is a file in a lossless data compression and archival format, appears to be a single entity, and can be treated as a single file for file management purposes, but may contain several other objects of different types. The objects in a ZIP file may be diverse in nature or related. When looked at individually, the contained objects could be bound to other related objects or to applications that operate on the component object. For example, a .jpg file (Joint Photographic Experts Group file format), could be bound to other image objects (i.e. other .jpg, .bmp (bitmap) or .gif (Graphics Interchange Format) files), or to tasks (such as a picture viewer, Internet browser, etc.)
When presented with a composite object, user interfaces present tasks that may be performed with respect to the composite object, but not for the component objects within the composite object. A user typically must expand a composite object (e.g., a ZIP file) before being presented with a list of targets or tasks that could be bound to one or more of the component objects.FIG. 1 illustrates a prior art graphical user interface (GUI)2 displaying a context menu4 for a selected ZIP file that shows tasks to operate on the ZIP file6.FIG. 2 illustrates a prior art implementation of aGUI20 displayed for a composite object comprising a metric group having common component metrics comprising measurements of system output, such as performance, utilization, etc. Acontext menu24 displays application tasks relevant to a composite object of metrics, such as “Common Metrics”22.
There is a need in the art for an improved technique for providing information on a composite object and its component objects and utilizing such information when managing a composite object and component objects grouped therein.
SUMMARYProvided are a method, system, and article of manufacture for generating information on application tasks for component objects grouped in a composite object. A composite object in a computer readable medium is comprised of component objects, wherein different application tasks are used to process the component objects. Metadata associates the application tasks for the component objects grouped in the composite object with the composite object. An operation is performed on the composite object by processing the metadata indicating the application tasks for the component objects grouped in the composite object on which the operation is performed.
BRIEF DESCRIPTION OF THE DRAWINGSFIGS. 1 and 2 illustrate prior art implementations of graphical user interfaces for rendering information on composite objects.
FIG. 3 illustrates an embodiment of a computing environment.
FIG. 4 illustrates an embodiment of composite object metadata.
FIGS. 5 and 6 illustrate embodiments of graphical user interfaces for rendering information on composite objects and the application tasks associated with component objects grouped in the composite object.
FIG. 7 illustrates an embodiment of operations to generate composite object metadata.
FIG. 8 illustrates an embodiment of operations to generate a user interface for a composite object.
FIG. 9 illustrates an embodiment of operations to filter composite objects.
FIG. 10 illustrates an embodiment of metric metadata for a metric related composite object.
FIG. 11 illustrates an embodiment of operations to generate a metric within a composite object.
DETAILED DESCRIPTIONFIG. 3 illustrates a computing environment in which aspects of the invention are implemented. Acomputer100 includes one ormore processors102 and a computerreadable memory104 in which programs and data are loaded for execution by theprocessor102. Thememory104 includes one or morecomposite objects106, where a composite object includes one or more component objects108 andcomposite object metadata110 providing information on one ormore application tasks112 associated with each component object108. Thecomposite object metadata110 may be maintained within thecomposite object106 or external thereto. Eachapplication task112 associated with a component object108 is executed by theprocessor102 to perform an operation with respect to the component object108. Further, there may be one ormore application tasks112 that perform operations with respect to onecomposite object106, such as add and delete component objects108 from thecomposite object106 or specify properties for thecomposite object106, such as a password, compression ratio, compression type, etc.
Acomposite object106 may comprise a file including the component objects108, which themselves comprise files contained within thecomposite object106, such as the case with a composite file including multiple objects, e.g., a ZIP file, database file, etc. Alternatively, thecomposite object106 may group metrics, wherein the component objects108 comprise metrics. Each component metric comprises a measurement of output of a computer system, such as the temperature, performance, utilization, etc. of components in the system, such as the processor, memory, storage drives, power supply, data interfaces, overall system, etc. Theapplication tasks112 associated with the component metrics generate the metrics and perform operations with respect to the metrics. Component objects108 may be stored within thecomposite object106 data structure. In an alternative embodiment, the component objects108 may be stored externally to thecomposite object106 and thecomposite object106 maintains information grouping the component objects108 associated with the composite object.
Auser interface program114, in response to user input received via an input device116 (e.g., a mouse, keyboard, pen stylus, microphone, touch screen, etc.), processes thecomposite metadata110 to provide information in a menu or other user interface graphical element onapplication tasks112 associated with the component objects108 of a selectedcomposite object106. Theuser interface program114 may render an interface to theapplication tasks112 associated with the component objects108 of aselected composite object106 on an output device118 (e.g., a computer monitor) to enable a user using theinput device116 to select anapplication task112 to invoke to process a component object108 shown in thecomposite object106.
Afilter program120 may be used to generate a filter identifying one ormore application tasks112 and process information on thecomposite objects106 to determine anycomposite objects106 that include component objects108 associated with application tasks identified in the filter. Thefilter program120 may present to the user thosecomposite objects106 having component objects108 associated with application tasks identified in the filter.
Acomposite object manager122 may generate thecomposite object metadata110 and perform operations in response to user input to createcomposite objects106, e.g., add and delete thecomponent objects106 grouped by thecomposite object106, and perform other composite object management related operations.
FIG. 4 illustrates an embodiment ofcomposite object metadata130 for acomposite object106, comprising an instance of thecomposite object metadata110 for onecomposite object106, including a composite object identifier (ID)132, indication ofcomponent objects134 grouped by thecomposite object132, and associatedapplication tasks136 associated with thecomponent objects134.
FIG. 5 illustrates an embodiment of a graphical user interface (GUI)150 rendered in theoutput device118 showing acomposite object152 comprising a ZIP file. Upon selection of thecomposite object152 with a user interface control, theuser interface program114 generates indication ofapplication tasks154 capable of processing component objects108 in theselected composite object152 andapplication tasks156 associated with thecomposite object152. In this way, theuser interface program114 provides the user information on allapplication tasks154,156 associated with component objects108 and thecomposite object106.
FIG. 6 illustrates an embodiment of aGUI160 showingcomposite objects160, wherein selection of one composite object called “Common Metrics”162 displays a user interface ofapplication tasks164 capable of processing component objects in thecomposite object162, such as the “Recording” task which records metrics over time, and performing operations with respect to thecomposite object162 itself, e.g., edit and delete metrics and configure properties for the composite object.
In the GUI examples ofFIGS. 5 and 6, the user is presented with a list of application tasks associated with the component objects108 of thecomposite object106, in addition to the application tasks associated with the composite object to determine and provide the capability to invoke application resources applicable to the composite object108.
FIG. 7 illustrates an embodiment of operations performed by acomposite object manager122 to generatecomposite object metadata110. Upon initiating (at block200) operations to generate thecomposite object metadata110, thecomposite object manager122 processes (at block202) acomposite object106 to determineapplication tasks112 associated with the component objects108 in thecomposite object106. Thecomposite object manager122 generates (at block204) metadata130 (FIG. 4) indicating an association of thecomponent objects134 in thecomposite object132 and theirassociated application tasks136. An application, such as thecomponent object manager122,user interface program114 andfilter program120 may perform (at block206) an operation on thecomposite object106 by processing themetadata130 indicating theapplication tasks136 for thecomponent objects134 grouped in thecomposite object132.
FIG. 8 illustrates an embodiment of operations performed by theuser interface program114 to render information on a selected composite object108. Upon initiating (at block250) operations to generate a user interface, such as shown inFIGS. 5 and 6, theuser interface program114 receives (at block252) user selection of one composite object108. Theuser interface program114 renders (at block254) a user interface (e.g., context menu) indicating theapplication tasks112 for the component objects108 in theselected composite object106 and at least oneapplication task112 to process thecomposite object106. Theuser interface program114 may further receive (at block256) user selection of one of theapplication tasks112 indicated in the user interface to process the selected component object108 orcomposite object106. Theselected application task112 may then be applied (at block258) to a selected component object108 orcomposite object106.
FIG. 9 illustrates an embodiment of operations performed by thefilter program120 to filtercomposite objects106 based onapplication tasks112. Upon initiating (at block300) an operation to filtercomposite objects106, thefilter program120 receives (at block302) a filter indicating at least oneapplication task112 for component objects. The filter program12 processes (at block304)metadata110 for a plurality of composite objects indicatingapplication tasks112 associated with the component objects grouped in the processed composite objects106. A determination is made (at block306) ofcomposite objects106 whosemetadata110 indicates at least one of the at least one application task indicated in the filter. Thefilter program120 renders (at block308) information on the determinedcomposite objects106. Thosecomposite objects106 not having one of the application tasks indicated in the filter may be hidden from the list of rendered component objects in the user interface.
Thefilter program114 may further receive (at block310) user selection of one of the determined composite objects from the rendered information and determine (at block312) component objects108 grouped in the selectedcomposite object106 that are associated with the at least one application task indicated in the filter. Information on the determined component objects108 in the selected composite object108 may then be rendered (at block314) in a user interface on theoutput device118.
FIG. 10 illustrates an embodiment ofmetric metadata350 having priority information forapplication tasks112 to use to process the metric if there are multiple application tasks356 (FIG. 10) for the component objects108 in thecomposite object106. Themetric metadata350 identifies the metric352 (i.e., component object), indicates theapplication tasks354 associated with that metric354 and thepriority356 in which theapplication tasks354 are invoked to process the metric352.
FIG. 11 illustrates an embodiment of operations performed by thecomposite object manager122 to generate metrics, i.e., the component objects108, in acomposite object106. Upon initiating (at block400) the operation to generate a metric presented in acomposite object106 comprised of metrics, thecomposite object manager122 determines (at block402) whether themetric metadata350 for a metric to generate indicates in field354 (FIG. 10) a plurality ofapplication tasks112. If not, then thesingle application task112, indicated infield354, associated with the metric is invoked (at block404) to generate the metric in thecomposite object106. If (at block402) there are a plurality ofapplication tasks112 for the metric108, indicated infield354, then thecomposite object manager122 processes (at block406) themetric priority information356 to determine a highest priorityavailable application task112 to generate the metric. The metric, such as the temperature, performance information, utilization information, etc., is generated (at block408). Information on the generated metric is rendered (at block410). Further, for metrics associated withmultiple application tasks112, thecomposite object manager122 may render (at block410) information on the application tasks not used to generate the metric, such as indicate the application tasks not used, indicate the value they produce, etc.
Described embodiments provide techniques to determine and render information on application tasks associated with component objects grouped by a composite object to allow the user to perform operations with respect to the component objects, such as filter the object, render information on the application tasks for component object in a user interface for selection, etc. Further embodiments, allow the assignment of a priority to each of multiple application tasks that may be used to process or generate a component object, such that a highest priority available application task may be used to generate the component object in the composite object, such as to generate metrics within a composite object that groups metrics.
Additional Embodiment DetailsThe described operations may be implemented as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The described operations may be implemented as code maintained in a “computer readable storage medium”, where a processor may read and execute the code from the computer storage readable medium. A computer readable storage medium may comprise storage media such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc. The code implementing the described operations may further be implemented in hardware logic implemented in a hardware device (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.). Still further, the code implementing the described operations may be implemented in “transmission signals”, where transmission signals may propagate through space or through a transmission media, such as an optical fiber, copper wire, etc. The transmission signals in which the code or logic is encoded may further comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. The “article of manufacture” may comprise a transmitting station and/or a receiving station for transmitting and receiving transmission signals in which the code or logic is encoded, where the code or logic encoded in the transmission signal may be decoded and stored in hardware or a computer readable storage medium at the receiving and transmitting stations or devices. An “article of manufacture” comprises a device, such as a computer readable storage medium, hardware device, and/or transmission transmitters or receivers in which code or logic may be implemented. Those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise suitable information bearing medium known in the art.
In the described embodiments, the access parameters are changed for process accesses to memory addresses in a shared memory. In an alternative embodiment, access patterns may be monitored for computer resources other than memory addresses, such as addresses in a storage device and other computer resources.
The terms “an embodiment”, “embodiment”, “embodiments”, “the embodiment”, “the embodiments”, “one or more embodiments”, “some embodiments”, and “one embodiment” mean “one or more (but not all) embodiments of the present invention(s)” unless expressly specified otherwise.
The terms “including”, “comprising”, “having” and variations thereof mean “including but not limited to”, unless expressly specified otherwise.
The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise.
The terms “a”, “an” and “the” mean “one or more”, unless expressly specified otherwise.
Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries.
A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the present invention.
Further, although process steps, method steps, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. In other words, any sequence or order of steps that may be described does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order practical. Further, some steps may be performed simultaneously.
When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the present invention need not include the device itself.
The illustrated operations ofFIGS. 7,8,9, and11 show certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified or removed. Moreover, steps may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units.
The foregoing description of various embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.