U.S. patent application number 11/999580 was filed with the patent office on 2008-04-17 for method and system for multi-tiered data access.
This patent application is currently assigned to SBC Knowledge Ventures, L.P.. Invention is credited to Andre Fuetsch, Baofeng Jiang, Jerold Osato, Mengfeng Tsai, Xidong Wu.
Application Number | 20080091914 11/999580 |
Document ID | / |
Family ID | 37856653 |
Filed Date | 2008-04-17 |
United States Patent
Application |
20080091914 |
Kind Code |
A1 |
Fuetsch; Andre ; et
al. |
April 17, 2008 |
Method and system for multi-tiered data access
Abstract
A system and method include receiving a telephone number
corresponding to a unique pair of first and second parameters in
which the first parameter corresponds to a device having a
plurality of ports and the second parameter corresponds to one of
the ports of the device. A storage includes units respectively
corresponding to different first parameters with each unit
respectively having a physical location in the storage. Each unit
has members respectively corresponding to different second
parameters with each of the second parameters respectively
corresponding to a member of each unit. The parameters are
determined using the telephone number. A physical location in
storage of a unit corresponding to the first parameter is
determined. The member corresponding to the second parameter of the
unit which corresponds to the first parameter is then
identified.
Inventors: |
Fuetsch; Andre; (San
Antonio, TX) ; Jiang; Baofeng; (Pleasanton, CA)
; Osato; Jerold; (Pinole, CA) ; Tsai;
Mengfeng; (Fremont, CA) ; Wu; Xidong;
(Livermore, CA) |
Correspondence
Address: |
BROOKS KUSHMAN P.C.
1000 TOWN CENTER
TWENTY-SECOND FLOOR
SOUTHFIELD
MI
48075
US
|
Assignee: |
SBC Knowledge Ventures,
L.P.
Reno
NV
89502
|
Family ID: |
37856653 |
Appl. No.: |
11/999580 |
Filed: |
December 6, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11227053 |
Sep 15, 2005 |
|
|
|
11999580 |
Dec 6, 2007 |
|
|
|
Current U.S.
Class: |
711/202 ;
711/200; 711/E12.078 |
Current CPC
Class: |
G06F 16/25 20190101;
H04L 41/12 20130101 |
Class at
Publication: |
711/202 ;
711/200; 711/E12.078 |
International
Class: |
G06F 12/06 20060101
G06F012/06 |
Claims
1. A method comprising: receiving a telephone number corresponding
to a unique pair of first and second parameters, wherein the first
parameter corresponds to a device having a plurality of ports and
the second parameter corresponds to one of the ports of the device;
determining the parameters using the telephone number; determining
a physical location in storage of a unit corresponding to the first
parameter, wherein the storage includes units respectively
corresponding to different first parameters with each unit
respectively having a physical location in the storage, wherein
each unit has members respectively corresponding to different
second parameters with each of the second parameters respectively
corresponding to a member of each unit; and identifying the member
corresponding to the second parameter of the unit which corresponds
to the first parameter.
2. The method of claim 1 wherein: the different first parameters
respectively correspond to different devices each having a
plurality of ports such that each unit respectively corresponds to
one of the devices.
3. The method of claim 2 wherein: each member of each unit includes
data relating to an object coupled to one of the ports of the
device which corresponds to the unit.
4. The method of claim 3 wherein: each device is a Digital
Subscriber Line Access Multiplexer.
5. The method of claim 3 wherein: the identified member includes
data relating to the object coupled to the port corresponding to
the second parameter of the device corresponding to the first
parameter.
6. The method of claim 2 wherein: each device has a unique name and
each of the first parameters includes the unique name of the device
corresponding to the first parameter.
7. The method of claim 6 wherein: each unit has a unique name which
includes the unique name of the device corresponding to the first
parameter which corresponds to the unit.
8. The method of claim 1 wherein: the device is one of an
Asymmetric Digital Subscriber Line, an Asynchronous Transfer Mode
Switch, and a DSL Access Multiplexer.
9. The method of claim 1 wherein: each first parameter resolves
directly into the physical location of the corresponding unit.
10. The method of claim 1 wherein: determining the parameters using
the telephone number includes using one of a hash function and a
table.
11. A system comprising: a storage having units respectively
corresponding to different first parameters with each unit
respectively having a physical location in the storage, wherein
each unit has members respectively corresponding to different
second parameters with each of the second parameters respectively
corresponding to a member of each unit, wherein the first
parameters respectively correspond to devices each having a
plurality of ports and the second parameters respectively
correspond to the ports; a logical mapping apparatus for
determining a pair of first and second parameters which uniquely
correspond to a telephone number; and a physical mapping apparatus
for receiving the parameters from the logical mapping apparatus,
determining a physical location in the storage of a unit
corresponding to the first parameter, and identifying the member
corresponding to the second parameter of the unit which corresponds
to the first parameter.
12. The system of claim 11 wherein: the different first parameters
respectively correspond to different devices each having a
plurality of ports such that each unit respectively corresponds to
one of the devices.
13. The system of claim 12 wherein: each member of each unit
includes data relating to an object coupled to one of the ports of
the device which corresponds to the unit.
14. The system of claim 13 wherein: each device is a Digital
Subscriber Line Access Multiplexer.
15. The system of claim 13 wherein: the identified member includes
data relating to the object coupled to the port corresponding to
the second parameter of the device corresponding to the first
parameter.
16. The system of claim 12 wherein: each device has a unique name
and each of the first parameters includes the unique name of the
device corresponding to the first parameter; wherein each unit has
a unique name which includes the unique name of the device
corresponding to the first parameter which corresponds to the
unit.
17. The system of claim 11 wherein: the device is one of an
Asymmetric Digital Subscriber Line, an Asynchronous Transfer Mode
Switch, and a DSL Access Multiplexer.
18. The system of claim 11 wherein: each first parameter resolves
directly into the physical location of the corresponding unit.
19. The system of claim 11 wherein: the logical mapping apparatus
determines the parameters using the telephone number includes using
one of a hash function and a table.
20. A method comprising: receiving an identifier corresponding to a
unique pair of first and second parameters, wherein the first
parameter corresponds to a switch having a plurality of ports and
the second parameter corresponds to one of the ports of the switch;
determining the parameters using the identifier; determining a
physical location in storage of a unit corresponding to the first
parameter, wherein the storage includes units respectively
corresponding to different first parameters with each unit
respectively having a physical location in the storage, wherein
each unit has members respectively corresponding to different
second parameters with each of the second parameters respectively
corresponding to a member of each unit; and identifying the member
corresponding to the second parameter of the unit which corresponds
to the first parameter.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. application Ser.
No. 11/227,053, filed Sep. 15, 2005, now U.S. Pat. No. ______,
which is hereby incorporated by reference in its entirety.
BACKGROUND OF THE DISCLOSURE
[0002] 1. Field of the Disclosure
[0003] This disclosure relates generally to multi-tiered data
access.
[0004] 2. Background Art
[0005] As the volume of stored data increases, conventional (i.e.,
single tiered) data systems become increasingly inefficient. Some
conventional data systems attempt to address the inefficiencies by
optimizing the system for either data storage or data retrieval.
For example, conventional data systems may maintain a large index
corresponding to the stored data. Such indexing may provide
improved data retrieval speeds but generally decreases the speed of
data loading (i.e., the addition of new data, data storage) and
consumes system resources. Conversely, conventional data systems
using minimal data indexing generally provide improved data loading
speeds but decreased data retrieval speeds. Such data
retrieval/data loading tradeoffs may be problematic in systems
where real time applications, such as Internet WEB applications,
require the ability to rapidly retrieve data while system data is
being updated and/or loaded.
[0006] In addition, data corruption in conventional data systems
may propagate rapidly, causing data loss and requiring
reinstallation of a large quantity of data from a backup. The
reinstallation process may further subject the system to an
additional risk of data loss.
[0007] Conventional data systems may also require extensive
modification to add additional forms of data, especially forms of
data having a format that differs from the data formats previously
stored by the data system.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The present disclosure, both as to its organization and
manner of operation, together with further objects and advantages
thereof, may be best. understood with reference to the following
description, taken in connection with the accompanied drawings in
which:
[0009] FIG. 1 is a block diagram of a system for multi-tiered data
access according to an embodiment of the present disclosure;
[0010] FIG. 2 is a flow diagram of a method for multi-tiered data
access according to an embodiment of the present disclosure;
[0011] FIG. 3 is a block diagram of an exemplary embodiment of the
present disclosure; and
[0012] FIG. 4 is a diagrammatic representation of a machine in the
form of a computer system according to an embodiment of the present
disclosure.
DETAILED DESCRIPTION
[0013] The present disclosure generally provides a system, method
and computer readable medium for multi-tiered data access. One
embodiment of the present disclosure may provide increased data
storage and/or data retrieval rates. Another embodiment may impede
data corruption propagation such that data loss and/or
reinstallation of data from a backup may be reduced. Another
embodiment may provide increased data retrieval rates while
reducing the data storage requirement of a system. Yet another
embodiment may provide increased data storage and/or retrieval
efficiency in multi-processor machines. Still yet another
embodiment may reduce the amount of modification required to add
additional forms of data to the system. It should be understood
that other embodiments of the disclosure may provide yet additional
and/or alternative benefits.
[0014] The present disclosure discloses an embodiment of a method
which includes receiving a telephone number (i.e., an identifier)
corresponding to a unique pair of first and second parameters. The
first parameter corresponds to a device (e.g., a switch) having a
plurality of ports and the second parameter corresponds to one of
the ports of the device. The method further includes determining
the parameters using the telephone number and then determining a
physical location in storage of a unit corresponding to the first
parameter. The storage includes units respectively corresponding to
different first parameters with each unit respectively having a
physical location in the storage. Each unit has members
respectively corresponding to different second parameters with each
of the second parameters respectively corresponding to a member of
each unit. The method further includes identifying the member
corresponding to the second parameter of the unit which corresponds
to the first parameter.
[0015] The present disclosure discloses an embodiment of a system
which includes a storage, a logical mapping apparatus, and a
physical mapping apparatus. The storage includes units respectively
corresponding to different first parameters with each unit
respectively having a physical location in the storage. Each unit
has members respectively corresponding to different second
parameters with each of the second parameters respectively
corresponding to a member of each unit. The first parameters
respectively correspond to devices each having a plurality of ports
and the second parameters respectively correspond to the ports. The
logical mapping apparatus determines a pair of first and second
parameters which uniquely correspond to a telephone number. The
physical mapping apparatus receives the parameters from the logical
mapping apparatus, determines a physical location in the storage of
a unit corresponding to the first parameter, and identifies the
member corresponding to the second parameter of the unit which
corresponds to the first parameter.
[0016] It is to be understood that the previous and subsequently
disclosed embodiments are merely exemplary. The figures are not
necessarily to scale, and some features may be exaggerated or
minimized to show details of particular components. Therefore,
specific functional details disclosed herein are not to be
interpreted as limiting, but merely as a representative basis for
the claims and/or as a representative basis for teaching one
skilled in the art to variously employ the present disclosure. In
the figures and in the discussion that follows, like reference
numbers indicate like elements.
[0017] Referring to FIG. 1, a system 100 for multi-tiered data
access according to an embodiment of the present disclosure is
shown. System 100 may comprise an operator interface (i.e.,
operator interface device) 102, a logical mapping apparatus 104, a
physical mapping apparatus 106 and a physical data storage device
108.
[0018] Operator interface 102 may be any appropriate interface
device, such as a keyboard, a touchscreen, a mouse, a display, a
voice recognition device, a light pen, a speaker and the like, for
electronically coupling to the logical mapping apparatus 104,
transmitting an operator initiated command (i.e., operator command)
(e.g., a data request) to logical mapping apparatus 104 and/or
conveying information (e.g., data) to an operator.
[0019] Logical mapping apparatus 104 may be electronically coupled
to operator interface 102 for receiving the operator command. In at
least one embodiment, logical mapping apparatus 104 may be a
computer or other logical device, such as an Application Specific
Integrated Circuit, which executes software application programs
and/or which performs other logical exercises. However, logical
mapping apparatus 104 may include any type of unit or entity which
can determine one or more search parameters (e.g., first search
parameter, second search parameter, etc.) corresponding to the
operator command.
[0020] In one embodiment, logical mapping apparatus 104 may use a
table 130 for determining a search parameter corresponding to the
operator command. Furthermore, in at least one embodiment, table
130 may reside in a memory 120, such as a solid state memory, a
read-only memory, a random access memory, an EPROM, an EEPROM and
the like, and/or a database 124 electronically coupled to logical
mapping apparatus 104. Optionally, logical mapping apparatus 104
may use a hash function (not shown) for determining a search
parameter. However, logical mapping apparatus 104 may use any
appropriate algorithm and/or look-up device to determine the one or
more search parameters corresponding to the operator command.
[0021] Logical mapping apparatus 104 is generally electronically
coupled to physical mapping apparatus 106 and presents the one or
more search parameters to physical mapping apparatus 106.
[0022] Physical mapping apparatus 106 may be electronically coupled
to one or more physical data storage devices 108, such as a
magnetic media, an optical media, a hard drive, a memory device,
and/or the like. Each of data storage devices 108 may comprise one
or more physical and/or logical data units 150, such as a file, a
table, and the like. Each data unit 150 generally corresponds to a
set of related data (i.e., a data set), such as data corresponding
to a business group, a network, a device, and the like.
[0023] Similarly, each data unit 150 may comprise one or more data
members 160. Each data member 160 generally corresponds to a
related sub-set of the data unit 150, such as data corresponding to
an individual department within a business group, an individual
network device, an individual device user, and the like. In at
least one embodiment, a data member 160 may represent the smallest
sub-set of data that may be retrieved in response to the operator
command. However, implementation having additional levels (i.e.,
tiers) is contemplated within the spirit and scope of the present
disclosure. Accordingly, additional sub-groupings (not shown) of
data within a data member 160 are contemplated by the present
disclosure.
[0024] Physical mapping apparatus 106 is generally a computer or
other logical device, such as an Application Specific Integrated
Circuit, which executes software application programs and/or which
performs other logical exercises. In at least one embodiment, the
functionality of physical mapping apparatus 106 may be implemented
in the same device as logical mapping apparatus 104.
[0025] In particular, physical mapping apparatus 106 generally
receives the one or more search parameters from logical mapping
apparatus 104 and determines a physical location of a data unit 150
corresponding to a first search parameter. In at least one
embodiment, the first search parameter may represent (i. e.,
correspond to) a device such as an Asymmetric Digital Subscriber
Line, an Asynchronous Transfer Mode Switch, a Digital Subscriber
Line Access Multiplexer, etc. and the corresponding data unit 150
may include data relating to the physical device.
[0026] In general, the physical location may be any appropriate
address (i.e., location) on any appropriate storage device 108,
such as a location on a magnetic media, a location on an optical
media, a location on a hard drive, a memory address, and the like.
In at least one embodiment, the first search parameter may resolve
(i.e., map) directly into the address of data unit 150. For
example, the first parameter may form all or part of a file name
that resolves into the address of a data unit 150 stored on a
storage device 108 via a file directory. Similarly, in another
embodiment, the first parameter may form all or part of the name of
a table stored in memory.
[0027] Physical mapping apparatus 106 may also identify a data
member 160 (i.e., a data member 160 of data unit 150 corresponding
to the first search parameter) corresponding to the second search
parameter. In one embodiment, the second search parameter may
represent (i. e., correspond to) a port on a device such as an
Asymmetric Digital Subscriber Line, an Asynchronous Transfer Mode
Switch, a Digital Subscriber Line Access Multiplexer, etc. and the
corresponding data member 160 may include data relating to an
object coupled to the port. In addition, at least one embodiment
may include one or more data member 160 stored in a compressed
state (i.e., compressed data object) and/or as a Binary Large
Object (i.e., BLOG).
[0028] Physical mapping apparatus 106 may output data member 160 to
the operator. In at least one embodiment, physical mapping
apparatus 106 may output data member 160 to the operator using
operator interface 102.
[0029] Referring to FIG. 2, a flow diagram of a method 200 for
multi-tiered data access according to an embodiment of the present
disclosure is shown. Method 200 may be advantageously implemented
in connection with any appropriate system to meet the design
criteria of a particular application, such as system 100 described
previously in connection with FIG. 1. In particular all or parts of
method 200 may be performed by one or more logical devices, such as
logical mapping apparatus 104 and/or physical mapping apparatus
106. Method 200 generally includes a plurality of blocks or steps
that may be performed serially. As will be appreciated by one of
ordinary skill in the art, the order of the block/steps shown in
FIG. 2 is exemplary and the order of one or more block/steps may be
modified within the spirit and scope of the present disclosure. In
addition, the blocks/steps of method 200 may be performed in at
least one non-serial (or non-sequential) order, and one or more
blocks/steps may be omitted to meet the design criteria of a
particular application. Similarly, two or more of the blocks/steps
of method 200 may be performed in parallel. Block 202 represents an
entry point into method 200.
[0030] Decision block 204 generally determines when a new data unit
(e.g., data unit 150) is required. In general, the addition of a
new data unit is required to expand the system (e.g., system 100)
to include data not represented by an existing data unit. For
example, in one embodiment, each data unit may correspond to an
element of a network (not shown). When a new device (i.e., element)
is added to the network, a new data unit is generally required to
represent data associated with the new device. Method 200 generally
proceeds to step 206 when a new data unit is required (i.e., the
YES leg of decision block 204). Otherwise, method 200 may fall
through to step 212 (i.e. the NO leg of decision block 204).
[0031] At step 206, a new data unit may be generated.
[0032] At step 208, a unique identifier may be generated. In at
least one embodiment, such as the exemplary embodiment described in
connection with decision block 204, the unique identifier may
correspond to the name of a new device.
[0033] At step 210, the unique identifier may be mapped to the new
data unit. From step 210, method 200 may return to decision block
204.
[0034] Decision block 212 generally determines when an operator
initiated command (i.e., operator command) has been received.
Method 200 may proceed to step 214 when an operator command is
received (i.e., the YES leg of decision block 212). Otherwise,
method 200 generally return to decision block 204 (i. e. the NO leg
of decision block 212).
[0035] At step 214, a first search parameter may be determined
based at least in part on the operator initiated command.
[0036] At step 216, a second search parameter may be determined
based at least in part on the operator initiated command.
[0037] At step 218, a physical location of a data unit
corresponding to the first search parameter may be determined.
[0038] At step 220, a data member (e.g., data member 160)
corresponding to the second search parameter may be identified. In
general, the data member corresponds to a sub-set of data within a
corresponding data unit (e.g., data unit 150).
[0039] At step 222, the data member may be outputted to any
appropriate device such as an operator interface device (e.g.,
102). From step 222, method 200 may return to decision block
204.
[0040] Referring now to FIG. 3, a block diagram of an exemplary
embodiment of the present disclosure is illustrated. The exemplary
embodiment of FIG. 3 is provided to further instruct one skilled in
the art to variously employ the present disclosure. Accordingly, it
should be understood that the exemplary embodiment is non-limiting
and many other embodiments within the spirit and scope of the
present disclosure are contemplated by the present disclosure. The
exemplary embodiment is generally provided in the context of a
Digital Subscriber Line (i.e., DSL) system 300. System 300 may be
implemented similarly to system 100 of FIG. 1 and may implement one
or more steps of method 200 previously described in connection with
FIG. 2.
[0041] In the exemplary embodiment of FIG. 3, DSL system (i.e.,
network) 300 is illustrated as having ten thousand DSL Access
Multiplexers (i.e., DSLAMs) with each DSLAM coupling four hundred
DSL subscribers (i.e., users) to DSL system 300 via four hundred
corresponding ports. System 300 is further illustrated as storing
three thousand data points (i.e., data values) for each subscriber.
While particular quantities of DSLAMs, subscribers, ports, and data
points are provided for clarity, it should be understood that
system 300 may be implemented using any appropriate number of
DSLAMs coupled to any appropriate number of subscribers via any
appropriate number of ports and recording any appropriate number of
data points to satisfy the requirements of a particular
application.
[0042] When a user (i.e., subscriber) seeks technical support, the
user generally provides a technical support person (i.e., system
operator) with a user identifier, such as a DSL telephone number
corresponding to the user. For purposes of illustration, the user
identifier may be 555-555-0002. The system operator may then
generate an operator command (i.e., signal, operator initiated
command, etc.) corresponding to the user identifier via operator
interface 102. The operator command is generally presented by
operator interface 102 to logical mapping apparatus 104.
[0043] Logical mapping apparatus 104 may receive the operator
command and may determine a first search parameter and a second
search parameter corresponding to the operator command. In the
exemplary embodiment of FIG. 3, logical mapping apparatus 104 may
determine the first and second search parameters using a table 130
in electronic communication with logical mapping apparatus 104.
However, as previously discussed in connection with system 100, the
search parameters may be determined using any appropriate process
(e.g., an algorithm, a hash function, a database, an index file,
etc.) to meet the design criteria of a particular application. By
referencing the user identifier (i.e., 555-555-0002) to table 130,
the first search parameter may be determined by logical mapping
apparatus 104 to correspond to the switch (e.g., DSLAM2) coupling
the user to DSL system 300. Similarly, the second search parameter
may be determined by logical mapping apparatus 104 to correspond to
the port coupling the user to the switch (e.g., port 3). The
logical mapping apparatus may then present the first and second
search parameters to physical mapping apparatus 106.
[0044] Optionally, logical mapping apparatus 104 may further
generate a new data unit 150, generate a unique identifier for the
new data unit (i.e., previously unidentified data unit) 150, and/or
map the unique identifier to new data unit 150 in response to a new
DSLAM being added to system 300.
[0045] Physical mapping apparatus 106 generally receives the first
and second search parameters (e.g., DSLAM2 and port 3) and
determines a physical location of a data unit 150 corresponding to
the first search parameter. In the exemplary embodiment of FIG. 3,
physical mapping apparatus 106 locates a table corresponding to the
first search parameter on physical device 108 using any appropriate
mapping technique such as a file directory. As illustrated in the
exemplary embodiment, system efficiency may be increased by
implementing data units 150 having names (i.e., identifiers) that
utilize all or part of the first search parameter (e.g., first
search parameter="DSLAM2" and the data unit name="USER_DSLAM2").
That is, implementing data units 150 having names that utilize all
or part of the first search parameter may provide for the physical
location of data unit 150 to be determined with reduced mapping
and/or search steps (i. e, functions).
[0046] Physical mapping apparatus 106 may also identify a data
member 160 from the data stored within data unit 150 based at least
in part on the second search parameter. In the exemplary
embodiment, physical mapping apparatus 106 may identify member 160
corresponding to port 3. Data member 160 (i.e., user data values in
the row corresponding to port 3) may be output (i.e., transmitted)
to the system operator. In such a manner, the system operator may
retrieve the user data corresponding to the subscriber. In at least
one embodiment, the user parameters (e.g., user data 1, user data
2, etc.) for each port may be stored in a compressed state and/or
as a Binary Large Object (BLOB) to increase efficiency and/or
reduce data storage requirements.
[0047] In the exemplary two-tiered data system 300 of FIG. 3, a
system operator may retrieve data corresponding to a subscriber
from among 12,000,000,000 (i.e., 10,000*400*3000) potential data
points. At logical mapping apparatus 104, the system operator
performs a search of ten thousand records corresponding to the
total number of DSLAMs in system 300. At physical mapping apparatus
106, the system operator performs a search of four hundred records
corresponding to the number of ports on a DSLAM. Accordingly,
exemplary system 300 may provide increased data retrieval rates, as
compared with a conventional data storage system requiring a search
of the entire 12,000,000,000 data points, by implementing two or
more searches on sub-sets of the 12,000,000,000 data points.
[0048] Furthermore, grouping data points into data units 150 may
provide for updating of a first data unit 150 with little or no
affect on a search being performed on a second data unit 150 and
vice versa, may impede data corruption propagation, may provide
increased data storage and/or retrieval efficiency in
multi-processor machines, and/or may reduce the amount of
modification required to add additional forms of data to the
system. Similarly, compressing data points within a data unit 150
may reduce the data storage requirement of system 300.
[0049] While the forgoing disclosure and FIGS. generally disclose a
two-tiered data system, it should be understood that additional
tiers may be implemented within the spirit and scope of the present
disclosure.
[0050] FIG. 4 is a diagrammatic representation of a machine in the
form of a computer system 400 within which a set of instructions,
when executed, may cause the machine to perform any one or more of
the methodologies discussed herein. In some embodiments, the
machine operates as a standalone device. In some embodiments, the
machine may be connected (e.g., using a network) to other machines.
In a networked deployment, the machine may operate in the capacity
of a server or a client user machine in server-client user network
environment, or as a peer machine in a peer-to-peer (or
distributed) network environment. The machine may comprise a server
computer, a client user computer, a personal computer (PC), a
tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA),
a cellular telephone, a mobile device, a palmtop computer, a laptop
computer, a desktop computer, a personal digital assistant, a
communications device, a wireless telephone, a land-line telephone,
a control system, a camera, a scanner, a facsimile machine, a
printer, a pager, a personal trusted device, a web appliance, a
network router, switch or bridge, or any machine capable of
executing a set of instructions (sequential or otherwise) that
specify actions to be taken by that machine. It will be understood
that a device of the present disclosure includes broadly any
electronic device that provides voice, video or data communication.
Further, while a single machine is illustrated, the term "machine"
shall also be taken to include any collection of machines that
individually or jointly execute a set (or multiple sets) of
instructions to perform any one or more of the methodologies
discussed herein.
[0051] Computer system 400 may include a processor 402 (e.g., a
central processing unit (CPU), a graphics processing unit (GPU), or
both), a main memory 404 and a static memory 406, which communicate
with each other via a bus 408. Computer system 400 may further
include a video display unit 410 (e.g., a liquid crystal display
(LCD), a flat panel, a solid state display, or a cathode ray tube
(CRT)). Computer system 400 may include an input device 412 (e. g.,
a keyboard), a cursor control device 414 (e.g., a mouse), a disk
drive unit 416, a signal generation device 418 (e.g., a speaker or
remote control) and a network interface device 420.
[0052] Disk drive unit 416 may include a machine-readable medium
422 on which is stored one or more sets of instructions (e.g.,
software 424) embodying any one or more of the methodologies or
functions described herein, including those methods illustrated in
herein above. Instructions 424 may also reside, completely or at
least partially, within main memory 404, static memory 406, and/or
within processor 402 during execution thereof by computer system
400. Main memory 404 and processor 402 also may constitute
machine-readable media. Dedicated hardware implementations
including, but not limited to, application specific integrated
circuits, programmable logic arrays and other hardware devices can
likewise be constructed to implement the methods described herein.
Applications that may include the apparatus and systems of various
embodiments broadly include a variety of electronic and computer
systems. Some embodiments implement functions in two or more
specific interconnected hardware modules or devices with related
control and data signals communicated between and through the
modules, or as portions of an application-specific integrated
circuit. Thus, the example system is applicable to software,
firmware, and hardware implementations.
[0053] In accordance with various embodiments of the present
disclosure, the methods described herein are intended for operation
as software programs running on a computer processor. Furthermore,
software implementations can include, but not limited to,
distributed processing or component/object distributed processing,
parallel processing, or virtual machine processing can also be
constructed to implement the methods described herein.
[0054] The present disclosure contemplates a machine readable
medium containing instructions 424, or that which receives and
executes instructions 424 from a propagated signal so that a device
connected to a network environment 426 can send or receive voice,
video or data, and to communicate over network 426 using
instructions 424. Instructions 424 may further be transmitted or
received over a network 426 via network interface device 420.
[0055] While machine-readable medium 422 is shown in an example
embodiment to be a single medium, the term "machine-readable
medium" should be taken to include a single medium or multiple
media (e.g. a centralized or distributed database, and/or
associated caches and servers) that store the one or more sets of
instructions. The term "machine-readable medium" shall also be
taken to include any medium that is capable of storing, encoding or
carrying a set of instructions for execution by the machine and
that cause the machine to perform any one or more of the
methodologies of the present disclosure. The term "machine-readable
medium" shall accordingly be taken to include, but not be limited
to: solid-state memories such as a memory card or other package
that houses one or more read-only (non-volatile) memories, random
access memories, or other re-writable (volatile) memories;
magneto-optical or optical medium such as a disk or tape; and
carrier wave signals such as a signal embodying computer
instructions in a transmission medium; and/or a digital file
attachment to e-mail or other self-contained information archive or
set of archives is considered a distribution medium equivalent to a
tangible storage medium. Accordingly, the present disclosure is
considered to include any one or more of a machine-readable medium
or a distribution medium, as listed herein and including
art-recognized equivalents and successor media, in which the
software implementations herein are stored.
[0056] Although the present disclosure describes components and
functions implemented in the embodiments with reference to
particular standards and protocols, the present disclosure is not
limited to such standards and protocols. Each of the standards for
Internet and other packet switched network transmission (e.g.,
TCP/IP, UDP/IP, HTML, HTTP) represent examples of the state of the
art. Such standards are periodically superseded by faster or more
efficient equivalents having essentially the same functions.
Accordingly, replacement standards and protocols having the same
functions are considered equivalents.
[0057] The illustrations of embodiments described herein are
intended to provide a general understanding of the structure of
various embodiments, and they are not intended to serve as a
complete description of all the elements and features of apparatus
and systems that might make use of the structures described herein.
Many other embodiments will be apparent to those of skill in the
art upon reviewing the above description. Other embodiments may be
utilized and derived therefrom, such that structural and logical
substitutions and changes may be made without departing from the
scope of this disclosure. Figures are merely representational and
may not be drawn to scale. Certain proportions thereof may be
exaggerated, while others may be minimized. Accordingly, the
specification and drawings are to be regarded in an illustrative
rather than a restrictive sense.
[0058] Such embodiments of the inventive subject matter may be
referred to herein, individually and/or collectively, by the term
"invention" merely for convenience and without intending to
voluntarily limit the scope of this application to any single
invention or inventive concept if more than one is in fact
disclosed. Thus, although specific embodiments have been
illustrated and described herein, it should be appreciated that any
arrangement calculated to achieve the same purpose may be
substituted for the specific embodiments shown. This disclosure is
intended to cover any and all adaptations or variations of various
embodiments. Combinations of the above embodiments, and other
embodiments not specifically described herein, will be apparent to
those of skill in the art upon reviewing the above description.
[0059] The Abstract of the Disclosure is provided to comply with 37
C.F.R. .sctn.1.72(b), requiring an abstract that will allow the
reader to quickly ascertain the nature of the technical disclosure.
It is submitted with the understanding that it will not be used to
interpret or limit the scope or meaning of the claims. In addition,
in the foregoing Detailed Description, it can be seen that various
features are grouped together in a single embodiment for the
purpose of streamlining the disclosure. This method of disclosure
is not to be interpreted as reflecting an intention that the
claimed embodiments require more features than are expressly
recited in each claim. Rather, as the following claims reflect,
inventive subject matter lies in less than all features of a single
disclosed embodiment. Thus the following claims are hereby
incorporated into the Detailed Description, with each claim
standing on its own as a separate embodiment.
* * * * *