U.S. patent application number 14/847312 was filed with the patent office on 2015-12-31 for maintaining a data structure with data set names and pointers to a plurality of catalogs.
The applicant listed for this patent is International Business Machines Corporation. Invention is credited to Douglas L. Lehr, Franklin E. McCune, David C. Reed, Max D. Smith.
Application Number | 20150379067 14/847312 |
Document ID | / |
Family ID | 42337801 |
Filed Date | 2015-12-31 |
![](/patent/app/20150379067/US20150379067A1-20151231-D00000.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00001.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00002.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00003.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00004.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00005.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00006.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00007.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00008.png)
![](/patent/app/20150379067/US20150379067A1-20151231-D00009.png)
United States Patent
Application |
20150379067 |
Kind Code |
A1 |
Lehr; Douglas L. ; et
al. |
December 31, 2015 |
MAINTAINING A DATA STRUCTURE WITH DATA SET NAMES AND POINTERS TO A
PLURALITY OF CATALOGS
Abstract
A plurality of catalogs are maintained, and wherein each catalog
of the plurality of catalogs includes data sets and attributes of
the data sets. An indication that a new data set is to be defined
is received. A selected catalog is determined from the plurality of
catalogs, wherein the selected catalog is suitable for including
the new data set and attributes of the new data set. An entry that
indicates a data set name corresponding to the new data set and an
index to the selected catalog is inserted in a group table.
Inventors: |
Lehr; Douglas L.; (Austin,
TX) ; McCune; Franklin E.; (Tucson, AZ) ;
Reed; David C.; (Tucson, AZ) ; Smith; Max D.;
(Tucson, AZ) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
International Business Machines Corporation |
Armonk |
NY |
US |
|
|
Family ID: |
42337801 |
Appl. No.: |
14/847312 |
Filed: |
September 8, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13926898 |
Jun 25, 2013 |
9165022 |
|
|
14847312 |
|
|
|
|
13448979 |
Apr 17, 2012 |
8495029 |
|
|
13926898 |
|
|
|
|
12358177 |
Jan 22, 2009 |
8234242 |
|
|
13448979 |
|
|
|
|
Current U.S.
Class: |
707/740 |
Current CPC
Class: |
G06F 16/182 20190101;
G06F 16/215 20190101; G06F 16/93 20190101; G06F 16/13 20190101;
G06F 16/2291 20190101; G06F 16/22 20190101; G06F 16/2365 20190101;
G06F 16/285 20190101 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A method, comprising determining, via a processor, a user
catalog that has a greater amount of available space in comparison
to other user catalogs of a plurality of user catalogs, wherein
there is a lesser amount of contention among a plurality of threads
or processes to access the determined user catalog in comparison to
the other user catalogs, and wherein the user catalog is used to
store a new data set; subsequent to determining the user catalog,
inserting in a group table, an entry that indicates a data set name
corresponding to the new data set and an index to the determined
user catalog; directing requests for any data sets to the group
table; and moving the new data set to another user catalog, in
response to an error caused by the determined user catalog.
2. The method of claim 1, the method further comprising:
determining that a selected data set is to be deleted.
3. The method of claim 2, the method further comprising: deleting,
in the group table, via a directing by a catalog alias of a single
master catalog, a selected entry corresponding to the selected data
set.
4. The method of claim 1, wherein access by a plurality of threads
or processes of one user catalog causes contention among the
plurality or threads or processes that access the one user
catalog.
5. A system, comprising: a memory; and a processor coupled to the
memory, wherein the processor executes operations, the operations
comprising: determining a user catalog that has a greater amount of
available space in comparison to other user catalogs of a plurality
of user catalogs, wherein there is a lesser amount of contention
among a plurality of threads or processes to access the determined
user catalog in comparison to the other user catalogs, and wherein
the user catalog is used to store a new data set; subsequent to
determining the user catalog, inserting in a group table, an entry
that indicates a data set name corresponding to the new data set
and an index to the determined user catalog; directing requests for
any data sets to the group table; and moving the new data set to
another user catalog, in response to an error caused by the
determined user catalog.
6. The system of claim 5, the operations further comprising:
determining that a selected data set is to be deleted.
7. The system of claim 6, the operations further comprising:
deleting, in the group table, via a directing by a catalog alias of
a single master catalog, a selected entry corresponding to the
selected data set.
8. The system of claim 5, wherein access by a plurality of threads
or processes of one user catalog causes contention among the
plurality or threads or processes that access the one user
catalog.
9. A computer readable storage medium, wherein code stored in the
computer readable storage medium when executed by a processor
causes operations, the operations comprising: determining a user
catalog that has a greater amount of available space in comparison
to other user catalogs of a plurality of user catalogs, wherein
there is a lesser amount of contention among a plurality of threads
or processes to access the determined user catalog in comparison to
the other user catalogs, and wherein the user catalog is used to
store a new data set; subsequent to determining the user catalog,
inserting in a group table, an entry that indicates a data set name
corresponding to the new data set and an index to the determined
user catalog; directing requests for any data sets to the group
table; and moving the new data set to another user catalog, in
response to an error caused by the determined user catalog.
10. The computer readable storage medium of claim 9, the operations
further comprising: determining that a selected data set is to be
deleted.
11. The computer readable storage medium of claim 10, the
operations further comprising: deleting, in the group table, via a
directing by a catalog alias of a single master catalog, a selected
entry corresponding to the selected data set.
12. The computer readable storage medium of claim 9, wherein access
by a plurality of threads or processes of one user catalog causes
contention among the plurality or threads or processes that access
the one user catalog.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of application Ser. No.
13/926,898 filed Jun. 25, 2013, wherein application Ser. No.
13/926,898 is a continuation of application Ser. No. 13/448,979
filed Apr. 17, 2012, wherein application Ser. No. 13/448,979 is a
continuation of application Ser. No. 12/358,177 filed on Jan. 22,
2009, wherein application Ser. No. 13/926,898, application Ser. No.
13/448,979 and application Ser. No. 13/448,979 are incorporated
herein by reference in their entirety.
BACKGROUND
[0002] 1. Field
[0003] The disclosure relates to a method, a system, and an article
of manufacture for maintaining a data structure with data set names
and pointers to a plurality of catalogs.
[0004] 2. Background
[0005] A data set is a logical representation of data that is
stored in a computational system. For example, a file is data set
that is maintained in certain operating systems. Certain operating
system maintain a plurality of user catalogs, wherein each user
catalog stores directly or indirectly a plurality of data sets and
also stores attributes of the plurality of data sets.
[0006] A master catalog may be maintained in certain operating
systems, wherein a catalog alias may provide a means for directing
search requests for data sets to a single user catalog based on the
high level qualifier corresponding to a data set entry.
SUMMARY OF THE PREFERRED EMBODIMENTS
[0007] Provided are a method, a system, an article of manufacture,
and a method for deploying computing infrastructure, wherein a
plurality of catalogs are maintained, and wherein each catalog of
the plurality of catalogs includes data sets and attributes of the
data sets. An indication that a new data set is to be defined is
received. A selected catalog is determined from the plurality of
catalogs, wherein the selected catalog is suitable for including
the new data set and attributes of the new data set. An entry that
indicates a data set name corresponding to the new data set and an
index to the selected catalog is inserted in a group table.
[0008] In additional embodiments, a determination is made that a
selected data set is to be deleted. A selected entry corresponding
to the selected data set is deleted in the group table.
[0009] In yet additional embodiments, a determination is made that
an attribute of a selected data set is to be modified. A selected
catalog of the plurality of catalogs is updated with modifications
to the attribute, wherein the selected catalog includes the
selected data set, and wherein any change to the group table is
avoided.
[0010] In further embodiments, a determination is made that an
error occurs while performing at least one of an update to a data
set and a read access on the data set. A further determination is
made as to which catalog causes the error. A suitable catalog to
which the data set should be moved is determined. One or more
entries of the group table are updated, in response to moving the
data set to the determined suitable catalog.
[0011] In still further embodiments, determining a selected catalog
from the plurality of catalogs is based on: an amount of available
space on each of the plurality of catalogs, wherein those catalogs
that have greater available space are preferred as the selected
catalog over those catalogs that have lesser available space; and
an amount of contention activity on each of the plurality of
catalogs, wherein those catalogs that have lesser contention
activity are preferred as the selected catalog over those catalogs
that have greater contention activity, wherein access by a
plurality of threads or processes of one catalog causes contention
among the plurality or threads or processes that access the one
catalog.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Referring now to the drawings in which like reference
numbers represent corresponding parts throughout:
[0013] FIG. 1 illustrates a block diagram of a first computational
device included in a first computing environment, in accordance
with certain embodiments;
[0014] FIG. 2 illustrates a block diagram of a second computational
device included in a second computing environment, in accordance
with certain embodiments;
[0015] FIG. 3 illustrates a flowchart that shows operations
performed in response to definition of new data sets, deletion of
data sets, and changes in attributes of data sets, in accordance
with certain embodiments;
[0016] FIG. 4 illustrates a block diagram of a mapper data
structure, in accordance with certain embodiments;
[0017] FIG. 5 illustrates a flowchart that shows operations for
reorganizing entries of a group table in response to errors
associated with a catalog, in accordance with certain
embodiments;
[0018] FIG. 6 illustrates a flowchart that shows operations for
insertion of entries in a group table, in accordance with certain
embodiments;
[0019] FIG. 7 illustrates a flowchart that shows operations for
deletion of entries in a group table and for updating attributes of
a data set in accordance with certain embodiments;
[0020] FIG. 8 illustrates a flowchart that shows operations
performed in response to an error in a catalog, in accordance with
certain embodiments; and
[0021] FIG. 9 illustrates a block diagram that shows certain
elements that may be included in the computational device of FIG.
2, in accordance with certain embodiments.
DETAILED DESCRIPTION
[0022] In the following description, reference is made to the
accompanying drawings which form a part hereof and which illustrate
several embodiments. It is understood that other embodiments may be
utilized and structural and operational changes may be made.
[0023] Master Catalog, User Catalogs, and Group Table
[0024] FIG. 1 illustrates a block diagram of a first computing
environment 100 that includes a first computational device 102, in
accordance with certain embodiments. The computational device 100
may include an operating system 104, applications 106 that may
execute in a plurality of threads, and data sets 108. A single
master catalog 110 that includes a catalog alias 112 that directs
(reference numeral 114) requests for data sets to user catalogs
116a . . . 116p is also included in the first computational device
102, wherein the user catalogs 116a . . . 116p are also referred to
as catalogs.
[0025] The master catalog 110 is one of the users of shared
resources and the maser catalog 110 maintains the plurality of
catalogs 116a . . . 116p. A catalog, such as any of the catalogs
116a . . . 116n, also represents one of the main bottlenecks
affecting the applications 106 since the applications 106 are
reliant on the catalog to locate data sets that are needed. When an
application executes in multiple threads, parallel requests to a
single catalog where all of the application's data resides may lead
to contention. The ability to reduce some of this contention may
benefit overall performance.
[0026] Certain embodiments provide a mechanism in which a catalog
alias points to a set of catalogs rather than to a single catalog.
Aliases provide a means to direct search requests to a single user
catalog based on a high level qualifier of a data set entry.
Allowing the Alias to resolve to a group of catalogs may relieve
contention as requests to update/read entries under this alias may
be spread out among a plurality of catalogs. In addition to
contention relief, certain embodiments also allow for a recovery
from catalog error. If one of the catalogs in a catalog group
ceases to function properly, entries from this catalog are moved to
other catalogs in the group.
[0027] In certain embodiments, a group table is maintained in cache
for each catalog group. The group table stores each data set name
appended with an index corresponding to the catalog in the group
that contains the actual data set entry. In certain embodiments,
incoming define activity of new entries may proceed to the catalog
within the group with the most available space and least contention
activity and a corresponding entry may be inserted in the group
table. Contention is not significant in the group table, since the
group table is only updated when a new dataset is defined or when
an existing data set is deleted. The group table is not updated
when attributes (e.g., extent information) of a data set change.
The information related to the attributes is kept in the user
catalogs. Therefore, the majority of operations on the group table
may be read activity which may be suitable for a cache that stores
the group table.
[0028] Recovery from catalog error may be invoked by monitoring
internal catalog errors. If update/read access operations encounter
an error, certain embodiments invoke a sequential read of the
problem catalog in an attempt to salvage all possible entries that
correspond to the problem catalog. As each entry is encountered, an
operation may be invoked for selecting the best catalog in the
group to substitute the problem catalog in the entries that point
to the problem catalog.
[0029] Certain embodiments assign data sets to existing or new user
catalogs regardless of the name of the new user catalogs. The name,
alias, and user catalog are not tied together. This additional
flexibility allows a better balancing of data sets across large
pools of user catalogs, as existing catalogs fill up or exhibit
performance degradation.
Exemplary Embodiments
[0030] FIG. 2 illustrates a block diagram of a second computing
environment 200 that includes a second computational device 202, in
accordance with certain embodiments. The computational device 202
may include an operating system 204, applications 206 that may
execute in a plurality of threads, data sets 208, and a catalog
management application 210. The computational device also includes
a single master catalog 212 that includes a catalog alias 214 to
direct requests for data sets to a group table 216 that includes
entries with data sets names 218a, 218r and associated indexes 220a
. . . 220r, wherein the indexes 220a . . . 220r point to user
catalogs 222a . . . 222n.
[0031] The computational device 202 may comprise any suitable
computational device known in the art, including a mainframe
computer, a mini computer, a personal computer, a server, a client,
a host, a telephony device, a storage controller, etc. The catalog
management application 210 is an application that may be
implemented in hardware, firmware, software or any combination
thereof. In certain embodiments, the catalog management application
210 may be included as part of the operating system 204.
[0032] The group table 216 is a data structure that may be
implemented in a cache of the computation device 202. The group
table 216 may be implemented as a table, a list, a set of pointers
or references, or as any other suitable data structure.
Corresponding to each data set name there is an index in the group
table 216. For example, data set name 218a has a corresponding
index 220a, and data set name 218r has a corresponding index 220r.
Each index points to a user catalog of the plurality of user
catalogs. For example, index 220a may point to user catalog 222a if
the user catalog 222a includes the data set and the attributes
corresponding to the data set name 218a. The group table 216 is
relatively small is size in comparison to the catalogs 222a . . .
222n and can be readily updated or accessed. In alternative
embodiments there may be a plurality of group tables.
[0033] FIG. 3 illustrates a flowchart that shows operations
performed in response to definition of new data sets, deletion of
data sets, and changes in attributes of data sets, in accordance
with certain embodiments. The operations shown in FIG. 3 may be
performed by the catalog management application 210 implemented in
the computational device 202 of the computing environment 200.
[0034] Control starts (at block 300) and the catalog management
application 210 makes a determination (at block 302) as to whether
an operation is a data set related operation. If so, control may
proceed in parallel to blocks 304, 306, 308. If not, control
returns to block 300.
[0035] At block 304, the catalog management application 210
determines whether a new data set is to be defined. If so, then the
catalog management application 210 determines (at block 310) a user
catalog from the plurality of user catalogs 222a . . . 222n based
on the following factors:
(1) amount of available space in each of the user catalogs 222a . .
. 222n, wherein the more space a user catalog has the better is the
user catalog for storing the new data set and the attributes of the
new data set; and (2) the amount of contention activity in each of
the user catalogs 222a . . . 222n, wherein the less contention
activity a user catalog has the better is the user catalog for
storing the new data set and the attributes of the new data
set.
[0036] From block 310, control proceeds to block 312 in which the
catalog management application 210 defines, i.e., inserts, a new
entry in the group table 216 corresponding to the new data set name
and an associated index that points to the determined user catalog
in block 310. From block 312 control proceeds to block 314 where
the process stops. If no new data set is to be defined at block 304
then control also proceeds to block 314 where the process
stops.
[0037] At block 306, the catalog management application 210
determines whether an existing data set is to be deleted. If so,
the catalog management application 210 deletes (at block 316) in
the group table 216 the data set name and the associated index
corresponding to the existing data set, and control proceeds to
block 314 where the process stops. If at block 306, the catalog
management application 210 determines that an existing data set is
not be deleted control proceeds to block 314 where the process
stops.
[0038] At block 308, the catalog management application 210
determines if there is a change in attributes of a data set. If so,
no changes have to be made to the group table 216 but the user
catalog selected from the user catalogs 222a . . . 222n that stores
the attributes of the data set is modified (at block 318) to change
the attributes, and the process stops (at block 314). If at block
308, the catalog management application 210 determines if there is
no change in attributes of a data set then control proceeds to
block 314 where the process stops.
[0039] Therefore, FIG. 3 illustrates certain embodiments in which
the group table 216 is modified in response to definitions of new
data sets and deletions of existing data sets.
[0040] FIG. 4 illustrates a block diagram of a mapper data
structure 400, in accordance with certain embodiments. The mapper
data structure 400 includes a plurality of qualifiers 402a, 402b, .
. . , 402s, wherein 402a is the highest level qualifier and 402s is
the lowest level qualifier. Each qualifier may be a sequence of
bits or bytes. However, the qualifiers may also be represented via
other mechanisms. One or more qualifiers that correspond to an
exemplary data set 404 are mapped to determine the user catalog
corresponding to the data set 404. For example, in certain
embodiments, the resolution of qualifiers (shown by reference
numeral 406) is based on resolution of the highest level qualifier
402a to determine (reference numeral 408) the user catalog
corresponding to the data set 404.
[0041] FIG. 5 illustrates a flowchart that shows operations for
reorganizing entries of a group table in response to errors
associated with a catalog, in accordance with certain embodiments.
The operations shown in FIG. 5 may be performed by the catalog
management application 210 implemented in the computational device
202 of the computing environment 200.
[0042] Control starts (at block 500) and proceeds to block 502 in
which the catalog management application 210 determines whether an
error occurs while performing updates to a data set or while
performing read access on a data set. If so, the catalog management
application determines (at block 504) the user catalog (e.g., one
of the user catalogs 222a . . . 222n) that is causing the error and
then invokes (at block 506) a sequential read on the determined
catalog that is causing the error. For each entry of the determined
user catalog that is causing the error, the catalog management
application 210 determines (at block 508) a suitable catalog
(according to some optimality criteria) to which the data set
should be moved and then updates the group table 216 accordingly,
and subsequently the process stops (at block 510). The process also
stops (at block 510) if the catalog management application 210
determines (at block 502) that no error occurs while performing
updates to a data set or while performing read access on a data
set.
[0043] FIG. 6 illustrates a flowchart that shows operations for
insertion of entries in a group table, in accordance with certain
embodiments. The operations shown in FIG. 6 may be performed by the
catalog management application 210 implemented in the computational
device 202 of the computing environment 200.
[0044] Control starts at block 600 in which the catalog management
application 210 maintains a plurality of catalogs 222a . . . 222n,
and wherein each catalog of the plurality of catalogs 222a . . .
222n includes data sets and attributes of the data sets. The
catalog management application 210 receives (at block 602) an
indication that a new data set is to be defined.
[0045] Control proceeds to block 604, where that catalog management
application 210 determines a selected catalog from the plurality of
catalogs 222a . . . 222n, wherein the selected catalog is suitable
for including the new data set and attributes of the new data set.
The determining of the selected catalog from the plurality of
catalogs is based on:
(i) an amount of available space on each of the plurality of
catalogs 222a . . . 222n, wherein those catalogs that have greater
available space are preferred as the selected catalog over those
catalogs that have lesser available space; and (ii) an amount of
contention activity on each of the plurality of catalogs 222a . . .
222n, wherein those catalogs that have lesser contention activity
are preferred as the selected catalog over those catalogs that have
greater contention activity, wherein access by a plurality of
threads or processes of one catalog causes contention among the
plurality or threads or processes that access the one catalog.
[0046] From block 604 control proceeds to block 606 where the
catalog management application inserts an entry that indicates a
data set name corresponding to the new data set and an index in the
group table 216.
[0047] Therefore, FIG. 6 illustrates certain embodiments in which a
new data set is defined by inserting an entry having a data set
name and an index into the group table 216.
[0048] FIG. 7 illustrates a flowchart that shows operations for
deletion of entries in a group table and for updating attributes of
a data set in accordance with certain embodiments. The operations
shown in FIG. 7 may be performed by the catalog management
application 210 implemented in the computational device 202 of the
computing environment 200.
[0049] Control starts at block 700 and proceeds in parallel to
blocks 702 and 704. At block 702 the catalog management application
210 determines that that a selected data set is to be deleted. The
catalog management application 210 deletes (at block 706) a
selected entry corresponding to the selected data in the group
table 216, and the process stops (at block 708).
[0050] At block 704, the catalog management application 210
determines that an attribute of a selected data set is to be
modified. The catalog management application 210 updates (at block
710) a selected catalog of the plurality of catalogs 222a . . .
222n with modifications to the attribute, wherein the selected
catalog includes the selected data set, and wherein any change to
the group table 216 is avoided.
[0051] Therefore, FIG. 7 illustrates certain embodiments in which
data sets are deleted by updating the group table 216 and
attributes of data sets are updated by updating the appropriate
user catalog 222a . . . 222n.
[0052] FIG. 8 illustrates a flowchart that shows operations
performed in response to an error in a catalog, in accordance with
certain embodiments. The operations shown in FIG. 8 may be
performed by the catalog management application 210 implemented in
the computational device 202 of the computing environment 200.
[0053] Control starts at block 800 where the catalog management
application 210 determines that an error has occurred while
performing at least one of an update to a data set and a read
access on the data set. The catalog management application 210
determines (at block 802) which catalog has caused the error. Then
the catalog management application 210 determines (at block 804) a
suitable catalog to which the data set should be moved. The catalog
management application 210 updates (at block 806) one or more
entries of the group table 216, in response to moving the data set
to the determined suitable catalog.
[0054] Therefore, FIG. 8 illustrates certain embodiments in which
the catalog management application 210 updates the group table 216
in response to an error generated in a catalog that includes a data
set.
[0055] Certain embodiments described in FIGS. 1-8 maintain a group
table 216 in cache, wherein the group table 216 is used to direct
requests to an appropriate user catalog for a data set. Updates the
group table 216 are relatively less time consuming in comparison to
updates to the user catalogs. Additionally, the size of the group
table 216 is smaller in comparison to the user catalogs because the
group table stores only data set names and corresponding indexes to
the user catalogs. Furthermore, in response to a catalog error,
alternative catalogs may be used and the group table 216 may be
updated accordingly.
[0056] In certain alternative embodiments, there may be one or more
additional group tables beyond the exemplary group table 216 shown
in FIG. 2, i.e., there may be a plurality of group tables
implemented in the computational device 202. In such embodiments,
the alias structure may direct the data set entry to a specific
group table of the plurality of group tables. For example, the
alias structure may direct a data set entry to the exemplary group
table 216. The exemplary group table 216 may then direct the data
set entry into a specific user catalog selected from the user
catalogs 222a . . . 222n.
Additional Embodiment Details
[0057] The described techniques may be implemented as a method,
apparatus or article of manufacture involving software, firmware,
micro-code, hardware and/or any combination thereof. The term
"article of manufacture" as used herein refers to code or logic
implemented in a medium, where such medium may comprise hardware
logic [e.g., an integrated circuit chip, Programmable Gate Array
(PGA), Application Specific Integrated Circuit (ASIC), etc.] or a
computer readable storage medium, such as magnetic storage medium
(e.g., hard disk drives, floppy disks, tape, etc.), optical storage
(CD-ROMs, optical disks, etc.), volatile and non-volatile memory
devices [e.g., Electrically Erasable Programmable Read Only Memory
(EEPROM), Read Only Memory (ROM), Programmable Read Only Memory
(PROM), Random Access Memory (RAM), Dynamic Random Access Memory
(DRAM), Static Random Access Memory (SRAM), flash, firmware,
programmable logic, etc.]. Code in the computer readable storage
medium is accessed and executed by a processor. The medium in which
the code or logic is encoded may also comprise transmission signals
propagating through space or a transmission media, such as an
optical fiber, copper wire, etc. The transmission signal in which
the code or logic is encoded may further comprise a wireless
signal, satellite transmission, radio waves, infrared signals,
Bluetooth, etc. The transmission signal in which the code or logic
is encoded is capable of being transmitted by a transmitting
station and received by a receiving station, where the code or
logic encoded in the transmission signal may be decoded and stored
in hardware or a computer readable medium at the receiving and
transmitting stations or devices. Additionally, the "article of
manufacture" may comprise a combination of hardware and software
components in which the code is embodied, processed, and executed.
Of course, those skilled in the art will recognize that many
modifications may be made without departing from the scope of
embodiments, and that the article of manufacture may comprise any
information bearing medium. For example, the article of manufacture
comprises a storage medium having stored therein instructions that
when executed by a machine results in operations being
performed.
[0058] Certain embodiments can take the form of an entirely
hardware embodiment, an entirely software embodiment or an
embodiment containing both hardware and software elements. In a
preferred embodiment, the invention is implemented in software,
which includes but is not limited to firmware, resident software,
microcode, etc.
[0059] Furthermore, certain embodiments can take the form of a
computer program product accessible from a computer usable or
computer readable medium providing program code for use by or in
connection with a computer or any instruction execution system. For
the purposes of this description, a computer usable or computer
readable medium can be any apparatus that can contain, store,
communicate, propagate, or transport the program for use by or in
connection with the instruction execution system, apparatus, or
device. The medium can be an electronic, magnetic, optical,
electromagnetic, infrared, or semiconductor system (or apparatus or
device) or a propagation medium. Examples of a computer-readable
medium include a semiconductor or solid state memory, magnetic
tape, a removable computer diskette, a random access memory (RAM),
a read-only memory (ROM), a rigid magnetic disk and an optical
disk. Current examples of optical disks include compact disk-read
only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
[0060] The terms "certain embodiments", "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 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.
[0061] 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. Additionally, 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.
[0062] 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, in parallel, or concurrently.
[0063] When a single device or article is described herein, it will
be 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 apparent that a
single device/article may be used in place of the more than one
device or article. 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 need not include
the device itself.
[0064] FIG. 9 illustrates a block diagram that shows certain
elements that may be included in the computational device 202 of
FIG. 2, in accordance with certain embodiments. One or more of the
computational devices 202 either individually or collectively may
also be referred to as a system 900, and may include a circuitry
902 that may in certain embodiments include a processor 904. The
system 900 may also include a memory 906 (e.g., a volatile memory
device), and storage 908. The storage 908 may include a
non-volatile memory device (e.g., EEPROM, ROM, PROM, RAM, DRAM,
SRAM, flash, firmware, programmable logic, etc.), magnetic disk
drive, optical disk drive, tape drive, etc. The storage 908 may
comprise an internal storage device, an attached storage device
and/or a network accessible storage device. The system 900 may
include a program logic 910 including code 912 that may be loaded
into the memory 906 and executed by the processor 904 or circuitry
902. In certain embodiments, the program logic 910 including code
912 may be stored in the storage 908. In certain other embodiments,
the program logic 910 may be implemented in the circuitry 902.
Therefore, while FIG. 9 shows the program logic 910 separately from
the other elements, the program logic 910 may be implemented in the
memory 906 and/or the circuitry 902.
[0065] Certain embodiments may be directed to a method for
deploying computing instruction by a person or automated processing
integrating computer-readable code into a computing system, wherein
the code in combination with the computing system is enabled to
perform the operations of the described embodiments.
[0066] At least certain of the operations illustrated in FIGS. 1-9
may be performed in parallel as well as sequentially. In
alternative embodiments, certain of the operations may be performed
in a different order, modified or removed.
[0067] Furthermore, many of the software and hardware components
have been described in separate modules for purposes of
illustration. Such components may be integrated into a fewer number
of components or divided into a larger number of components.
Additionally, certain operations described as performed by a
specific component may be performed by other components.
[0068] The data structures and components shown or referred to in
FIGS. 1-9 are described as having specific types of information. In
alternative embodiments, the data structures and components may be
structured differently and have fewer, more or different fields or
different functions than those shown or referred to in the figures.
Therefore, the foregoing description of the embodiments has been
presented for the purposes of illustration and description. It is
not intended to be exhaustive or to limit the embodiments to the
precise form disclosed. Many modifications and variations are
possible in light of the above teaching.
* * * * *