U.S. patent application number 14/840005 was filed with the patent office on 2015-12-24 for mobile device peripherals management system and multi-data stream technology (mds).
The applicant listed for this patent is Christopher Bernard Johnson. Invention is credited to Christopher Bernard Johnson.
Application Number | 20150370730 14/840005 |
Document ID | / |
Family ID | 52133734 |
Filed Date | 2015-12-24 |
United States Patent
Application |
20150370730 |
Kind Code |
A1 |
Johnson; Christopher
Bernard |
December 24, 2015 |
Mobile Device Peripherals Management System and Multi-Data Stream
Technology (MdS)
Abstract
A device and system for management of and access to externally
connected peripheral devices by mobile devices. User and/or
application data on a mobile device is sent to externally connected
peripheral devices. External peripheral devices includes, but are
not limited to, printers, scanners, displays, audio interfaces,
speakers, network adapters, storage drives, hard drives, and the
like. An end user mobile device application interface is installed
as an application on a mobile device. Data may be sent directly to
a peripheral device, or to a peripherals aggregation device, which
may be active or passive.
Inventors: |
Johnson; Christopher Bernard;
(Spring Hill, TN) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Johnson; Christopher Bernard |
Spring Hill |
TN |
US |
|
|
Family ID: |
52133734 |
Appl. No.: |
14/840005 |
Filed: |
August 30, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14500368 |
Sep 29, 2014 |
9122847 |
|
|
14840005 |
|
|
|
|
13674045 |
Nov 11, 2012 |
8850610 |
|
|
14500368 |
|
|
|
|
61558155 |
Nov 10, 2011 |
|
|
|
61674888 |
Jul 24, 2012 |
|
|
|
Current U.S.
Class: |
710/8 |
Current CPC
Class: |
G06F 13/102 20130101;
G06F 13/128 20130101; G06F 21/6236 20130101; G06F 21/44 20130101;
G06F 21/305 20130101; G06F 2221/2129 20130101; G06F 21/70
20130101 |
International
Class: |
G06F 13/10 20060101
G06F013/10; G06F 13/12 20060101 G06F013/12 |
Claims
1. A system for improved transmission of application data from a
mobile computing device to a peripheral device without using a
personal computer, comprising: at least one mobile computing device
with a first processor or microprocessor, wherein said first
processor or microprocessor is programmed to run a peripheral
device application to access peripheral device drivers or operation
files stored in a database on the mobile device, and transmit
selected application data over a connectivity link; a peripherals
aggregation device with a second processor or microprocessor,
wherein said second processor or microprocessor is programmed to
receive said transmitted selected application data over said
connectivity link, and direct said selected application data to one
or more selected peripheral devices; wherein the one or more
peripheral devices are not connected to a personal computer; and
further wherein said second processor or microprocessor is
programmed to receive data from said one or more selected
peripheral devices, and transmit said data to said at least one
mobile computing device.
2. The system of claim 1, wherein the one or more peripheral
devices are not connected to a network.
3. The system of claim 1, wherein the peripheral device application
provides a multi-data stream interface on said at least one mobile
computing device.
4. The system of claim 1, wherein said connectivity link is
wireless.
5. The system of claim 1, wherein the peripherals aggregation
device is passive.
6. The system of claim 1, wherein the peripherals aggregation
device is active.
7. The system of claim 1, wherein said one or more peripheral
devices comprise one or more of printers, scanners, displays, audio
interfaces, speakers, network adapters, storage drives, and hard
drives.
Description
[0001] This application is a continuation of U.S. patent
application Ser. No. 14/500,368, filed Sep. 29, 2014, which is a
continuation-in-part application of U.S. patent application Ser.
No. 13/674,045, filed Nov. 11, 2012, now issued as U.S. Pat. No.
8,850,610, issued on Sep. 30, 2014, which claims benefit of and
priority to U.S. Provisional Application No. 61/558,155, filed Nov.
10, 2011, and U.S. Provisional Application No. 61/674,888, filed
Jul. 24, 2012, by Christopher Bernard Johnson, and is entitled to
those filing dates for priority in whole or in part. The
specification, figures, appendices and complete disclosures of U.S.
patent application Ser. Nos. 14/500,368, 13/674,045 and U.S.
Provisional Applications Nos. 61/139,271 and 61/674,888 are
incorporated herein in their entireties by specific reference for
all purposes.
FIELD OF INVENTION
[0002] This invention relates to a system and method for
centralized device management and a peripheral access interface for
mobile devices.
BACKGROUND OF THE INVENTION
[0003] Mobile devices, such as portable computing device, tablets,
and smartphones, are currently unable to access non-networked
physical peripheral devices, and only a limited set of networked
devices. Currently there are no device management applications or
solutions for mobile devices to access externally connected
peripheral devices.
[0004] Accordingly, what is needed is a system for providing mobile
devices access to a variety of peripheral devices, whether
networked, non-networked, or externally connected.
SUMMARY OF INVENTION
[0005] In various embodiments, the present invention comprises a
means for management of and access to externally connected
peripheral devices by mobile (or remote) devices. The invention
takes user and/or application data on a mobile or remote device and
sends it to externally connected peripheral devices. External
peripheral devices includes, but are not limited to, printers,
scanners, displays, audio interfaces, speakers, network adapters,
storage drives, hard drives, and the like. Currently, users of
prior art systems have to have access to a physical computer (e.g.,
a computer server or personal computer) to access peripheral
devices which are attached or connected to the physical computer.
The present invention removes that restriction from users of mobile
or remote devices (all references herein to "mobile devices" should
be understood to apply to "remote devices" as well).
[0006] In one exemplary embodiment, the present invention comprises
an end user mobile device application interface installed as an
application on a mobile device. The mobile device application may
be coded to run on multiple mobile device platforms. The mobile
device application makes calls to the mobile device's services and
daemons (daemons are computer programs that run as background
processes rather than being under the direct control of an
interactive user), which in turn access the mobile device manager
database or files for drivers for the externally connected
peripheral devices. The driver for the selected peripheral then
sends the desired data through the mobile device's physical
hardware interface, across a connectivity link (wired or wireless)
to the peripheral device.
[0007] In an alternative embodiment, the data is sent across a
connectivity link to a peripherals aggregation device. The
peripherals aggregation device may be active or passive. If active,
the peripherals aggregation device's operating system and
management application processes the data internally (i.e., through
its processor or processors and memory), and then sends the
processed data through the necessary interface (e.g., USB,
IEEE1394, Ethernet, and the like) and to the selected peripheral
device. In another embodiment, the peripherals aggregation device's
operating system, management application(s), and interfaces also
provide a mechanism for data to be exchanged between the connected
devices without having to be processed on the host mobile device's
hardware components.
[0008] In addition to sending user and/or application data from a
mobile device to an external peripheral devices, the application
also allows a user's applications to access externally connected
peripheral devices and retrieve data from them. There are multiple
if-then relationships and subroutines based upon the user and/or
application requirements and the peripheral devices
capabilities.
[0009] As part of the mobile device application, the devices
management services and/or daemons support multiple peripheral
devices and allows for plug-and-play operations for the end users.
In one embodiment, the mobile device application is a single
management interface to peripherals for users and applications. The
mobile device may be equipped with the manufacturer's hardware
interface or, alternatively, a proprietary Multi-data Stream (MdS)
interface in accordance with an embodiment of the present
invention.
[0010] Either an open system cable (e.g., USB, or the like) or a
Multi-data Stream cable may be used for connectivity between the
mobile device and peripheral devices or a peripherals aggregation
device. The peripherals aggregation device provides for
connectivity of multiple peripheral devices to the mobile device,
and may be active or passive, as described above. The peripherals
aggregation device may be built using commodity computer
components, such as processors, memory, interfaces (e.g., USB,
IEEE1394, Ethernet, and the like), or other internal components as
required to perform its functions. A custom operating system and
management applications allow the peripherals aggregation device to
provide advanced features and functionally to the mobile devices
for attached peripherals.
[0011] In another exemplary embodiment, in addition to permitting a
user to use mobile device software and/or its hardware components
to access and utilize peripheral devices to perform various
functions, the present invention also may be used to provide a
mobile user access to a computer-based or network-based services
and options (currently described as "cloud" or "online" services).
The invention may be used in conjunction with mobile device
interfaces, connectivity cables, peripheral aggregation directors
and/or switches, and peripheral aggregation hubs. A client
application resides on the mobile device, while a host application
resides on the external device (e.g., personal computer, computer
server, network computer, or a peripherals aggregation device as
described above). In one embodiment, the client application or
device must be authenticated by the host device, or a separate
licensing or sync device. Authentication may be encrypted.
[0012] In yet another embodiment, the invention comprises an
advanced heterogeneous modular computing system. The system is a
combination of tightly integrated computer hardware and software,
working together to provide an efficient, powerful, and scalable
mobile computing environment. It provides users of mobile computing
devices a platform that will allow them to work more efficiently
and effectively, without sacrificing the power and advanced
features that currently require desktop and workstation class
systems. In one exemplary embodiment, an advanced heterogeneous
modular computing system includes, but is not limited to, the
following components: integrated keyboard; integrated mouse control
device; processors (e.g., primary, secondary, control); memory;
storage; graphics adapter; network connectors; data interconnects;
expansion slots and cards; expansion devices (not exclusively
restricted to a particular size, format, or configuration); and
power sources. The system provides a unified workspace across
heterogeneous platforms; allows the sharing of applications across
devices on heterogeneous platforms; and provide the following
services and processes: device and peripheral consolidation and
sharing; physical data input and mouse control; data
synchronization; data optimization and protection; data transport
and security; multi-device connectivity; dynamic resource scaling;
binary data routing; memory management; mobile device offloading;
network access, switching, and routing; application publishing;
device publishing; binary routing; data service profiling; CoreGrid
resource manager; dynamic data input/output; inter-system data
transport; DataLogix encapsulation; client device connections
manager; dynamic encryption grid and key manager; file/data block
mapping; data protection and optimization manager; network fabric
manager; and wireless network transport relay.
[0013] When assembled in an end user configuration, an advanced
heterogeneous modular computing system serves as a Mobile Cloud
Controller (MC.sup.2) device for users of mobile and remote
computing services and resources. The MC.sup.2 comprises multiple
heterogeneous computing platforms interconnected within a singular
physical device, controlled by a MC.sup.2 processing unit, such as
the dedicated XLogic MC.sup.2 processing unit. The processing unit
is the centralized resource manager for internal components and
external peripherals connected to the MC.sup.2 Device. The
processing unit creates and interacts with the Dynamic Data I/O
(DDIO) files for physical components and peripherals. DDIO files
are presented to the internal computing platforms as the components
and peripherals they represent.
[0014] In one particular embodiment, the MC.sup.2 resource manager
provides the virtual memory and storage management system that
allocates memory and storage resources to the internal computing
systems. The MC.sup.2 processing unit provides the interfacing to
the XLogic CoreGrid for resource scaling. The resource manager
monitors the resource utilization statistics for the internal
systems and dynamically allocates or removes resources as required.
Because resources are provisioned to internal systems through DDIO
files, data is protected from corruption via data integrity caching
as it is transferred between the internal systems and the physical
components or peripherals. By dynamically adding and removing
resources from the internal systems, the MC.sup.2 processing unit
allows the MC.sup.2 device to run more efficiently. Physical
resources are powered on or off based upon whether their associated
DDIO files are in a 0 or 1 state, 0 for off and 1 for on. The
MC.sup.2 processing unit also works with an encryption system, such
as the ARCSafe Encryption system, to generate dynamic encryption
grids and keys for data security. The MC.sup.2 device's built-in
networking system interfaces with the MC.sup.2 processing unit to
provide routing, switching, and fabric services. Binary routing is
accomplished through the implementation of data service profiling
for processing tasks and data types.
DESCRIPTION OF THE DRAWINGS
[0015] FIG. 1 shows a schematic diagram of a mobile device (tablet)
connected with peripheral services for a system in accordance with
an embodiment of the present invention.
[0016] FIG. 2 shows another view of a system with a peripherals
aggregation device in accordance with an embodiment of the present
invention.
[0017] FIG. 3 shows another view of a system with a peripherals
aggregation device.
[0018] FIG. 4 shows a diagram of user interface workflow.
[0019] FIG. 5 shows an diagram of external application interface
workflow.
[0020] FIG. 6 shows a diagram of resource driver and device
publishing workflow.
[0021] FIG. 7 shows a diagram of client device sharing
workflow.
[0022] FIG. 8 shows a diagram of remote application publishing
workflow.
[0023] FIG. 9 shows a diagram of remote access device with
cloudsync hosting licensing.
[0024] FIG. 10 shows a diagram of application publishing
workflow.
[0025] FIG. 11 shows a diagram of client applications sharing
workflow.
[0026] FIG. 12 shows an example of a host console interface
design.
[0027] FIG. 13 shows an example of a client application interface
design.
[0028] FIG. 14 shows a diagram of a system in accordance with
another embodiment of the present invention.
[0029] FIG. 15 shows a diagram of encryption dynamic grid
generation workflow.
[0030] FIG. 16 shows a diagram of a file-block and data-block
mapping files system.
[0031] FIG. 17 shows a diagram of a central director device in
accordance with another embodiment of the present invention.
[0032] FIG. 18 shows a diagram of an exemplary keyboard/keypad
layout.
[0033] FIG. 19 shows a schematic diagram of the components of a
central director device.
[0034] FIG. 20 shows an example of a rack for a computing system in
accordance with another embodiment of the present invention.
[0035] FIG. 21 shows an example of a network for a computing system
in accordance with another embodiment of the present invention.
[0036] FIG. 22 shows a diagram of a computing system in accordance
with another embodiment of the present invention.
[0037] FIG. 23 shows a diagram of cards for a computing system in
accordance with another embodiment of the present invention.
[0038] FIG. 24 shows a diagram of an XLink device for a computing
system in accordance with another embodiment of the present
invention.
[0039] FIG. 25 shows a schematic diagram of a system of secured
WiFi network relay devices for a computing system in accordance
with another embodiment of the present invention.
[0040] FIG. 26 shows a schematic diagram of a system architecture
in accordance with an embodiment of the present invention.
[0041] FIG. 27 shows a diagram of the layers and components of a
system in accordance with an embodiment of the present
invention.
[0042] FIG. 28 shows a diagram of frames of wireless and wired
connections in accordance with an embodiment of the present
invention.
[0043] FIG. 29 shows an example of a single frame network fabric
configured for CoreGrid services (which also may be referred to as
Cloud Mobility Services).
[0044] FIG. 30 shows an example of a multiple frame network fabric
configured for CoreGrid services.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0045] Mobile (or remote) devices 10, including but not limited to
devices such as tablets and smartphones, are currently unable to
access non-networked physical peripheral devices 20, and can only
access a limited set of networked devices. In various exemplary
embodiments, the present invention solves this problem by providing
a means for management and access to externally connected
peripheral devices by mobile or remote devices. The invention takes
user and/or application data on a mobile device 10 and sends it to
externally connected peripheral devices 20. External peripheral
devices includes, but are not limited to, printers, scanners,
displays, audio interfaces, speakers, network adapters, storage
drives, hard drives, and the like.
[0046] The present invention differs from what currently exists in
the prior art. Currently, users of prior art systems have to have
access to a physical computer (e.g., a computer server or personal
computer) to access peripheral devices which are attached or
connected to the physical computer. The present invention removes
that restriction from users of mobile or remote devices (all
references herein to "mobile devices" should be understood to apply
to "remote devices" as well).
[0047] In one exemplary embodiment, as seen in FIGS. 1-5, the
present invention comprises an end user mobile device application
interface 100 installed as an application on a mobile device 10.
The mobile device application may be coded to run on multiple
mobile device platforms. The mobile device application makes calls
to the mobile device's services and daemons 110 (daemons are
computer programs that run as background processes rather than
being under the direct control of an interactive user), which in
turn access the mobile device manager 120 database or files for
drivers for the externally connected peripheral devices 20. The
driver for the selected peripheral then sends the desired data
through the mobile device's physical hardware interface 130, across
a connectivity link (wired or wireless) 140 to the peripheral
device 20.
[0048] In an alternative embodiment, the data is sent across a
connectivity link 140 to a peripherals aggregation device (which
also may be referred to as a resources aggregration device) 30. The
peripherals aggregation device may be active or passive, as seen in
FIGS. 2 and 3. If active, the peripherals aggregation device's
operating system and management application processes the data
internally (i.e., through its processor or processors 32 and memory
34), and then sends the processed data through the necessary
interface (e.g., USB, IEEE1394, Ethernet, and the like) and to the
selected peripheral device 20. In another embodiment, the
peripherals aggregation device's 30 operating system, management
application(s), and interfaces also provide a mechanism for data to
be exchanged between the connected devices 20 without having to be
processed on the host mobile device's 10 hardware components.
[0049] In addition to sending user and/or application data from a
mobile device to an external peripheral devices, the application
also allows a user's applications to access externally connected
peripheral devices and retrieve data from them. There are multiple
if-then relationships and subroutines based upon the user and/or
application requirements and the peripheral devices
capabilities.
[0050] As part of the mobile device application, the devices
management services and/or daemons 110 support multiple peripheral
devices and allows for plug-and-play operations for the end users.
In one embodiment, the mobile device application is a single
management interface to peripherals for users and applications. The
mobile device may be equipped with the manufacturer's hardware
interface or, alternatively, a proprietary Multi-data Stream (MdS)
interface in accordance with an embodiment of the present
invention.
[0051] Either an open system cable (e.g., USB, or the like) or a
Multi-data Stream cable may be used for connectivity 140 between
the mobile device 10 and peripheral devices 20 or a peripherals
aggregation device 30. The peripherals aggregation device 30
provides for connectivity of multiple peripheral devices to the
mobile device, and may be active or passive, as described above.
The peripherals aggregation device may be built using commodity
computer components, such as processors, memory, interfaces (e.g.,
USB, IEEE1394, Ethernet, and the like), or other internal
components as required to perform its functions. A custom operating
system and management applications allow the peripherals
aggregation device to provide advanced features and functionally to
the mobile devices for attached peripherals.
[0052] In another exemplary embodiment, as shown in FIGS. 6-16, in
addition to permitting a user to use mobile device software and/or
its hardware components to access and utilize peripheral devices to
perform various functions, the present invention also may be used
to provide a mobile user access to a computer-based or
network-based services and options (currently described as "cloud"
or "online" services). The invention may be used in conjunction
with mobile device interfaces, connectivity cables, peripheral
aggregation directors and/or switches, and peripheral aggregation
hubs. A client application 100 resides on the mobile device, while
a host application 200 resides on the external device (e.g.,
personal computer, computer server, network computer, or a
peripherals aggregation device as described above). In one
embodiment, the client application or device must be authenticated
by the host device, or a separate licensing or sync device.
Authentication may be encrypted.
[0053] In yet another embodiment, as seen in FIGS. 17-30, the
invention comprises an advanced heterogeneous modular computing
system. The system is a combination of tightly integrated computer
hardware and software, working together to provide an efficient,
powerful, and scalable mobile computing environment. It provides
users of mobile computing devices a platform that will allow them
to work more efficiently and effectively, without sacrificing the
power and advanced features that currently require desktop and
workstation class systems. In one exemplary embodiment, an advanced
heterogeneous modular computing system includes, but is not limited
to, the following components: integrated keyboard; integrated mouse
control device; processors (e.g., primary, secondary, control);
memory; storage; graphics adapter; network connectors; data
interconnects; expansion slots and cards; expansion devices (not
exclusively restricted to a particular size, format, or
configuration); and power sources. The system provides a unified
workspace across heterogeneous platforms; allows the sharing of
applications across devices on heterogeneous platforms; and
provides the following services and processes: device and
peripheral consolidation and sharing; physical data input and mouse
control; data synchronization; data optimization and protection;
data transport and security; multi-device connectivity; dynamic
resource scaling; binary data routing; memory management; mobile
device offloading; network access, switching, and routing;
application publishing; device publishing; binary routing; data
service profiling; CoreGrid resource manager; dynamic data
input/output; inter-system data transport; DataLogix encapsulation;
client device connections manager; dynamic encryption grid and key
manager; file/data block mapping; data protection and optimization
manager; network fabric manager; and wireless network transport
relay.
[0054] When assembled in an end user configuration, an advanced
heterogeneous modular computing system serves as a Mobile Cloud
Controller (MC.sup.2) device for users of mobile and remote
computing services and resources. The MC.sup.2 comprises multiple
heterogeneous computing platforms interconnected within a singular
physical device (referred to herein as the "Director" device),
controlled by a MC.sup.2 processing unit, such as the dedicated
XLogic MC.sup.2 processing unit. The processing unit is the
centralized resource manager for internal components and external
peripherals connected to the MC.sup.2 Device. The processing unit
creates and interacts with the Dynamic Data I/O (DDIO) files for
physical components and peripherals. DDIO files are presented to
the internal computing platforms as the components and peripherals
they represent.
[0055] In one particular embodiment, the MC.sup.2 resource manager
provides the virtual memory and storage management system that
allocates memory and storage resources to the internal computing
systems. The MC.sup.2 processing unit provides the interfacing to
the XLogic CoreGrid for resource scaling. The resource manager
monitors the resource utilization statistics for the internal
systems and dynamically allocates or removes resources as required.
Resources within a CoreGrid implementation may be allocated to
access devices or systems based upon assigned or dynamic profiles,
priorities, or tiers. Because resources are provisioned to internal
systems through DDIO files, data is protected from corruption via
data integrity caching as it is transferred between the internal
systems and the physical components or peripherals. By dynamically
adding and removing resources from the internal systems, the
MC.sup.2 processing unit allows the MC.sup.2 device to run more
efficiently. Physical resources are powered on or off based upon
whether their associated DDIO files are in a 0 or 1 state, 0 for
off and 1 for on. The MC.sup.2 processing unit also works with an
encryption system, such as the ARCSafe Encryption system, to
generate dynamic encryption grids and keys for data security. The
MC.sup.2 device's built-in networking system interfaces with the
MC.sup.2 processing unit to provide routing, switching, and fabric
services. Binary routing is accomplished through the implementation
of data service profiling for processing tasks and data types.
[0056] To facilitate transport agnostic transfers of data between
the MC.sup.2 device and external systems, the data is encapsulated
in DataLogix frames (or the like) for encryption, compression,
sequencing, and other data transfer operations. The MC.sup.2 device
uses ARCSafe Encryption, or the like, to securely transfer data to
and from ARCSafe enabled remote systems. To provide for the most
efficient utilization of memory and storage resources the MC.sup.2
processing unit implements a data optimization technique that uses
a file and block data mapping system to remove duplicate blocks of
redundant data in both short term memory and long term storage. The
MC.sup.2 processing unit subsequently creates file system snapshots
based off of the file and data block mapping files, which can be
used for data protection and restoration. Snapshots along with the
relevant block mapping files can be replicated and synchronized to
remote data repositories for indexing and storage. Once indexed and
stored in a remote system, the MC.sup.2 device's data can be
recreated and restored, in the event that the physical device
damaged, destroyed, or replaced.
[0057] The MC.sup.2 device also provides application and device
publishing services for mobile devices. MC.sup.2 resource
publishing allows users to access applications and devices over
wired and/or wireless connections as if they were locally installed
or attached to the mobile device. Through the use of a unified
client graphical user interface, users are able to interact with
MC.sup.2 resources and local applications and resources in a single
workspace. The MC.sup.2 client allows the mobile device to interact
with the MC.sup.2 device in different modes to include, but not be
limited to, the following: display, input/output device, zero or
thin client. Because of the MC.sup.2 architecture, applications
will run in their native formats on native hardware platforms
without requiring the added overhead of binary translation.
[0058] In order to provide a context for the various aspects of the
invention, the following discussion provides a brief, general
description of a suitable computing environment in which the
various aspects of the present invention may be implemented. A
computing system environment is one example of a suitable computing
environment, but is not intended to suggest any limitation as to
the scope of use or functionality of the invention. A computing
environment may contain any one or combination of components
discussed below, and may contain additional components, or some of
the illustrated components may be absent. Various embodiments of
the invention are operational with numerous general purpose or
special purpose computing systems, environments or configurations.
Examples of computing systems, environments, or configurations that
may be suitable for use with various embodiments of the invention
include, but are not limited to, personal computers, laptop
computers, computer servers, computer notebooks, hand-held devices,
microprocessor-based systems, multiprocessor systems, TV set-top
boxes and devices, programmable consumer electronics, cell phones,
personal digital assistants (PDAs), network PCs, minicomputers,
mainframe computers, embedded systems, distributed computing
environments, and the like.
[0059] Embodiments of the invention may be implemented in the form
of computer-executable instructions, such as program code or
program modules, being executed by a computer or computing device.
Program code or modules may include programs, objections,
components, data elements and structures, routines, subroutines,
functions and the like. These are used to perform or implement
particular tasks or functions. Embodiments of the invention also
may be implemented in distributed computing environments. In such
environments, tasks are performed by remote processing devices
linked via a communications network or other data transmission
medium, and data and program code or modules may be located in both
local and remote computer storage media including memory storage
devices.
[0060] In one embodiment, a computer system comprises multiple
client devices in communication with at least one server device
through or over a network. In various embodiments, the network may
comprise the Internet, an intranet, Wide Area Network (WAN), or
Local Area Network (LAN). It should be noted that many of the
methods of the present invention are operable within a single
computing device.
[0061] A client device may be any type of processor-based platform
that is connected to a network and that interacts with one or more
application programs. The client devices each comprise a
computer-readable medium in the form of volatile and/or nonvolatile
memory such as read only memory (ROM) and random access memory
(RAM) in communication with a processor. The processor executes
computer-executable program instructions stored in memory. Examples
of such processors include, but are not limited to,
microprocessors, ASICs, and the like.
[0062] Client devices may further comprise computer-readable media
in communication with the processor, said media storing program
code, modules and instructions that, when executed by the
processor, cause the processor to execute the program and perform
the steps described herein. Computer readable media can be any
available media that can be accessed by computer or computing
device and includes both volatile and nonvolatile media, and
removable and non-removable media. Computer-readable media may
further comprise computer storage media and communication media.
Computer storage media comprises media for storage of information,
such as computer readable instructions, data, data structures, or
program code or modules. Examples of computer-readable media
include, but are not limited to, any electronic, optical, magnetic,
or other storage or transmission device, a floppy disk, hard disk
drive, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, EEPROM,
flash memory or other memory technology, an ASIC, a configured
processor, CDROM, DVD or other optical disk storage, magnetic
cassettes, magnetic tape, magnetic disk storage or other magnetic
storage devices, or any other medium from which a computer
processor can read instructions or that can store desired
information. Communication media comprises media that may transmit
or carry instructions to a computer, including, but not limited to,
a router, private or public network, wired network, direct wired
connection, wireless network, other wireless media (such as
acoustic, RF, infrared, or the like) or other transmission device
or channel. This may include computer readable instructions, data
structures, program modules or other data in a modulated data
signal such as a carrier wave or other transport mechanism. Said
transmission may be wired, wireless, or both. Combinations of any
of the above should also be included within the scope of computer
readable media. The instructions may comprise code from any
computer-programming language, including, for example, C, C++, C#,
Visual Basic, Java, and the like.
[0063] Components of a general purpose client or computing device
may further include a system bus that connects various system
components, including the memory and processor. A system bus may be
any of several types of bus structures, including, but not limited
to, a memory bus or memory controller, a peripheral bus, and a
local bus using any of a variety of bus architectures. Such
architectures include, but are not limited to, Industry Standard
Architecture (ISA) bus, Micro Channel Architecture (MCA) bus,
Enhanced ISA (EISA) bus, Video Electronics Standards Association
(VESA) local bus, and Peripheral Component Interconnect (PCI)
bus.
[0064] Computing and client devices also may include a basic
input/output system (BIOS), which contains the basic routines that
help to transfer information between elements within a computer,
such as during start-up. BIOS typically is stored in ROM. In
contrast, RAM typically contains data or program code or modules
that are accessible to or presently being operated on by processor,
such as, but not limited to, the operating system, application
program, and data.
[0065] Client devices also may comprise a variety of other internal
or external components, such as a monitor or display, a keyboard, a
mouse, a trackball, a pointing device, touch pad, microphone,
joystick, satellite dish, scanner, a disk drive, a CD-ROM or DVD
drive, or other input or output devices. These and other devices
are typically connected to the processor through a user input
interface coupled to the system bus, but may be connected by other
interface and bus structures, such as a parallel port, serial port,
game port or a universal serial bus (USB). A monitor or other type
of display device is typically connected to the system bus via a
video interface. In addition to the monitor, client devices may
also include other peripheral output devices such as speakers and
printer, which may be connected through an output peripheral
interface.
[0066] Client devices may operate on any operating system capable
of supporting an application of the type disclosed herein. Client
devices also may support a browser or browser-enabled application.
Examples of client devices include, but are not limited to,
personal computers, laptop computers, personal digital assistants,
computer notebooks, hand-held devices, cellular phones, mobile
phones, smart phones, pagers, digital tablets, Internet appliances,
and other processor-based devices. Users may communicate with each
other, and with other systems, networks, and devices, over the
network through the respective client devices.
[0067] Thus, it should be understood that the embodiments and
examples described herein have been chosen and described in order
to best illustrate the principles of the invention and its
practical applications to thereby enable one of ordinary skill in
the art to best utilize the invention in various embodiments and
with various modifications as are suited for particular uses
contemplated. Even though specific embodiments of this invention
have been described, they are not to be taken as exhaustive. There
are several variations that will be apparent to those skilled in
the art.
* * * * *