U.S. patent application number 12/962682 was filed with the patent office on 2011-03-31 for providing input and output for a mobile device.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Eric I. Chang, Ishdeep S. Sawhney, Hugh A. Teegan.
Application Number | 20110074670 12/962682 |
Document ID | / |
Family ID | 38981772 |
Filed Date | 2011-03-31 |
United States Patent
Application |
20110074670 |
Kind Code |
A1 |
Teegan; Hugh A. ; et
al. |
March 31, 2011 |
Providing Input and Output for a Mobile Device
Abstract
Providing input and output for a mobile device may be provided.
At a mobile device, input may be received from at least one of a
plurality of remote input devices. The plurality of remote input
devices may be remote from the mobile device. The mobile device may
have at least one local input device. The at least one of the
plurality of remote input devices may have a greater form factor
than the local input device. Next, the received input may be
processed. The mobile device may transmit the output to at least
one of the plurality of remote output devices. The plurality of
remote output devices may be remote from the mobile device. The
mobile device may have at least one local output device. The at
least one of the plurality of remote output devices may have a
greater form factor than the local output device.
Inventors: |
Teegan; Hugh A.; (Bellevue,
WA) ; Sawhney; Ishdeep S.; (Redmond, WA) ;
Chang; Eric I.; (Beijing, CN) |
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
38981772 |
Appl. No.: |
12/962682 |
Filed: |
December 8, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11633834 |
Dec 5, 2006 |
7865924 |
|
|
12962682 |
|
|
|
|
60833733 |
Jul 27, 2006 |
|
|
|
Current U.S.
Class: |
345/156 |
Current CPC
Class: |
H04M 1/72409
20210101 |
Class at
Publication: |
345/156 |
International
Class: |
G09G 5/00 20060101
G09G005/00 |
Claims
1. A method for providing interaction with a mobile device, the
method comprising: receiving input from a remote input device;
accessing a remote application server; retrieving data associated
with the received input from the remote application server, the
data associated with received the input comprising one of the
following: an applet and a script associated with the received
input; processing the received input; and transmitting an output to
at least one output device.
2. The method of claim 1, wherein receiving the input comprises
receiving the input at one of the following: a mobile telephone, a
cellular telephone, a wireless telephone, a wireless device, a
hand-held personal computer, a hand-held computing device, a
multiprocessor system, microprocessor-based or programmable
consumer electronic device, a personal digital assistant (PDA), a
telephone, and a pager.
3. The method of claim 1, wherein receiving the input from the
remote input device comprises receiving the input from the remote
input device through at least one of a plurality of corresponding
local input drivers resident on the mobile device.
4. The method of claim 1, wherein receiving the input from the
remote input device comprises receiving the input from the remote
input device associated with one of the following: a keyboard, a
mouse, and a storage device.
5. The method of claim 1, wherein processing the received input
comprises processing the received input using data received from
the remote application server.
6. The method of claim 1, wherein transmitting the output comprises
transmitting the output being created from a signal driving at
least one local output device from a processing unit located on the
mobile device.
7. The method of claim 1, wherein transmitting the output comprises
transmitting the output comprising one of the following formats:
composite, red-green-blue (RGB), phase alternating line (PAL),
national television standards committee (NTSC), sequential color
with memory (SECAM), super-video (S-VIDEO), video graphics array
(VGA), and digital visual interface (DVI).
8. The method of claim 1, wherein transmitting the output to the at
least one output device comprises: outputting a first content to
remote output device, and outputting a second content to a local
output device.
9. A system for interacting with a mobile device, the system
comprising: a memory storage; and a processing unit coupled to the
memory storage, wherein the processing unit is operative to:
receive input from a remote input device; receive data from a
remote application server configured to serve at least one of the
following: an executable program, a database record, an applet, and
a script associated with the received input; process the received
input and the received data; and send output to at least one output
device, the sent output being based on the processed input and the
received data.
10. The system of claim 9, wherein the at least one output device
comprises at least one of the following: a local output device and
a remote output device.
11. The system of claim 9, wherein the processing unit being
operative to send comprises the processing unit being operative to
send the output being created from a signal driving a local output
device from the processing unit located on the mobile device.
12. The system of claim 9, wherein the processing unit being
operative to wherein send the output to at least one output device
comprises the processing unit being operative to: output a first
content to remote output device, and output a second content to a
local output device.
13. A computer-readable storage medium which stores a set of
instructions which when executed performs a method for interacting
with a mobile device, the method executed by the set of
instructions comprising: receiving input from at least one input
device; retrieving data associated with one of the following: an
applet and a script associated with the received input; processing
the received input with the retrieved data; and providing output to
at least one output device, the output being based on the processed
input and data.
14. The computer-readable storage medium of claim 13, wherein
receiving the input from at least one input device comprises
receiving the input from at least one remote input device.
15. The computer-readable storage medium of claim 14, wherein
receiving the input from the at least one of remote input device
comprises receiving, at the mobile device, the input from the
remote input device through at least one of a plurality of
corresponding local input drivers resident on the mobile
device.
16. The computer-readable storage medium of claim 13, wherein
receiving the input from the at least one input device comprises
receiving, at the mobile device, the input from the at least device
associated with one of the following: a keyboard, a mouse, and a
storage device.
17. The computer-readable storage medium of claim 13, wherein
providing the output comprises transmitting, from the mobile
device, the output being created from a signal driving at least one
local output device from a processing unit located on the mobile
device.
18. The computer-readable storage medium of claim 13, wherein
providing the output comprises transmitting, from the mobile
device, the output comprising one of the following formats:
composite, red-green-blue (RGB), phase alternating line (PAL),
national television standards committee (NTSC), sequential color
with memory (SECAM), super-video (S-VIDEO), video graphics array
(VGA), and digital visual interface (DVI).
19. The computer-readable storage medium of claim 13, wherein
providing the output to the at least one output device comprises:
outputting a first content to remote output device, and outputting
a second content to a local output device.
20. The computer-readable storage medium of claim 13, wherein
retrieving the data comprises retrieving the data from a remote
application server.
Description
RELATED APPLICATIONS
[0001] This application is a Continuation of co-pending U.S.
application Ser. No. 11/633,834 entitled "Providing Input and
Output for a Mobile Device" filed Dec. 5, 2006, which claims
benefit under provisions of 35 U.S.C. .sctn.119 (e) of U.S.
Provisional Application No. 60/833,733 entitled "Extension of the
Capabilities of the Wireless Phone, filed on Jul. 27, 2006, which
are incorporated herein by reference.
BACKGROUND
[0002] A mobile device may be used as a principal computing device
for many activities. The small form factor associated with the
mobile device, however, makes input and output difficult due to the
mobile device's small size. Conventional input and output processes
are not universal for the mobile device's capabilities. For
example, a conventional mobile device may be equipped with a
"TVOut" capability allowing output from the mobile device to be
displayed on a television (TV.) The conventional TVOut capability,
when provided for the mobile device, works only with particular
applications written specifically for the TVOut capability.
Conventional processes do not allow the TVOut capability to be used
uniformly by all applications within the mobile device. In
addition, conventional processes do not allow an interface device
(e.g. a mouse) to navigate all applications in real time in the
mobile device.
SUMMARY
[0003] This Summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This Summary is not intended to identify
key features or essential features of the claimed subject matter.
Nor is this Summary intended to be used to limit the claimed
subject matter's scope.
[0004] Input and output for a mobile device may be provided. For
example, at a mobile device, input may be received from at least
one of a plurality of remote input devices. The at least one of the
plurality of remote input devices may be remote from the mobile
device. The mobile device may have at least one local input device.
In addition, the at least one of the plurality of remote input
devices may have a greater form factor than the at least one local
input device. Next, the mobile device may process received input.
Then, from the mobile device, the output may be transmitted to at
least one of the plurality of remote output devices. The
transmitted output may be based on the processed input. The at
least one of the plurality of remote output devices may be remote
from the mobile device. The mobile device may have at least one
local output device. The at least one of the plurality of remote
output devices may have a greater form factor than the at least one
local output device.
[0005] Both the foregoing general description and the following
detailed description provide examples and are explanatory only.
Accordingly, the foregoing general description and the following
detailed description should not be considered to be restrictive.
Further, features or variations may be provided in addition to
those set forth herein. For example, embodiments may be directed to
various feature combinations and sub-combinations described in the
detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The accompanying drawings, which are incorporated in and
constitute a part of this disclosure, illustrate various
embodiments of the present invention. In the drawings:
[0007] FIG. 1 is a block diagram of an input and output system;
[0008] FIG. 2 is a flow chart of a method for providing input and
output for a mobile device; and
[0009] FIG. 3 is a block diagram of a system including a computing
device.
DETAILED DESCRIPTION
[0010] The following detailed description refers to the
accompanying drawings. Wherever possible, the same reference
numbers are used in the drawings and the following description to
refer to the same or similar elements. While embodiments of the
invention may be described, modifications, adaptations, and other
implementations are possible. For example, substitutions,
additions, or modifications may be made to the elements illustrated
in the drawings, and the methods described herein may be modified
by substituting, reordering, or adding stages to the disclosed
methods. Accordingly, the following detailed description does not
limit the invention. Instead, the appended claims define the proper
scope of the invention.
[0011] A mobile device may be used as a principal computing device
for many activities. A small form factor for the mobile device,
however, may make input and output difficult. Embodiments of the
present invention may attach more convenient input devices and
output devices to the mobile device. For example, a full size
keyboard and mouse may be used by the mobile device. In addition, a
TV or other display to be used as a display for the mobile device.
Conventional input and output processes are not universal for all
the mobile device's capabilities. Embodiments of the present
invention, however, may allow applications on the mobile device to
use, for example, a TVOut capability uniformly. Furthermore,
embodiments of the present invention may allow a human interface
device, such as a mouse, to navigate all applications on the mobile
device in real time.
[0012] FIG. 1 is a block diagram of an input and output system 100.
Consistent with embodiments of the present invention, system 100
may comprise a mobile device 105, a remote input device 125, a
remote output device 130, and a remote application server 165.
[0013] Mobile device 105 may comprise a computing device 110, a
local input device 115, a local output device 120, an output driver
135, an adaptor module 140, a mouse driver 145, a keyboard driver
150, another driver 155, and a host module 160. Computing device
110 is described in more detail below with respect to FIG. 3.
Mobile device 105 may comprise, but is not limited to, a mobile
telephone, a cellular telephone, a wireless telephone, a wireless
device, a hand-held personal computer, a hand-held computing
device, a multi-processor system, a micro-processor-based or
programmable consumer electronic device, a personal digital
assistant (PDA), a telephone, a pager, or any other device
configured to receive, processing, and transmitting information.
For example, mobile device 105 may comprise an electronic device
configured to communicate wirelessly and be small enough for a user
to carry the electronic device easily. In other words, mobile
device 105 may be smaller than a notebook computer and may comprise
a mobile telephone or PDA having both local input device 115 and
local output device 120.
[0014] Local input device 115 may be a keypad, number pad, or a
touch device configured to provide local input for mobile device
105. Local input device 115 may have a small form factor to enable
its placement on mobile device 105 being small enough for a user to
easily carry. Local input device 115 may comprise, but not limited
to: i) a keyboard with fewer keys than a standard keyboard; ii) a
number pad used, for example, to dial a telephone; iii) a keypad
with combination number and letter keys; or iv) a touch screen. For
example, local input device 115 may comprise combination number and
letter keys to allow data entry in either numeric form or character
form using the same key. The aforementioned are examples and local
input device 115 may comprise an input device compatible with
mobile device 105's small size.
[0015] Local output device 120 may be a screen with a small form
factor to enable placement on mobile device 105 being small enough
for a user to easily carry. Local output device 120 may comprise,
but is not limited to: i) a liquid crystal display (LCD) screen;
ii) an organic light-emitting device (OLED) screen; iii) a
light-emitting device (LED) screen; iv) a field emission display;
or v) a touch screen. For example, local output device 120 may
comprise an LCD screen output, sized to fit mobile device 105's
small form factor. The aforementioned are examples and local output
device 120 may comprise an output device compatible with mobile
device 105's small size.
[0016] Output driver 135 may provide communication between mobile
device 105 and remote output device 130. Output driver 135 may be
configured to convert an instruction, a setting, a resolution, or a
format. The input to output driver 135 may be a signal or a data
stream sent from computing device 110 or host module 160. Output
driver 135 may convert this input to a different set of
instructions, a different setting, a different resolution, or a
different format, suitable for a peripheral device, for example,
remote output device 130. For example, output driver 135 may
convert a signal, formatted for local output device 120 to a higher
resolution signal (e.g. a video-out format) for remote output
device 130. In addition, output driver 135 may take a signal and
convert it to any of the following video formats: i) composite; ii)
red-green-blue (RGB); iii) phase alternating line (PAL); iv)
national television standards committee (NTSC); v) sequential color
with memory (SECAM); vi) super-video (S-VIDEO); vii) digital
versatile disc; viii) high definition television; ix) content
scrambling; x) video graphics array (VGA); or xi) digital visual
interface (DVI). Output driver 135 may convert a signal or a data
stream for use by host module 160.
[0017] Adaptor module 140 may allow mobile device 105 to connect
with remote output device 130. Adaptor module 140 may be a separate
component from mobile device 105 that may plug into mobile device
105 through a port or a driver. Adaptor module 140 may be inside or
outside mobile device 105. Adaptor module 140 may allow a larger
size remote input device 125 or remote output device 130 to
interface with mobile device 105. Adaptor module 140 may be
configured to convert a signal characteristic, an instruction, a
setting, a resolution, or a format. The input to adaptor module 140
may be a signal or data stream sent from computing device 110,
output driver 135, or host module 160. Adaptor module 140 may allow
for multiplexed communications (e.g. over Universal Serial Bus
(USB)) with remote output device 130. Adaptor module 140 may
convert this input to a different signal characteristic, a
different instruction, a different setting, a different resolution,
or a different format suitable for a peripheral device, for example
remote output device 130. Adaptor module 140 may be, for example, a
display adaptor, a network controller, a printer controller, or a
controller for a storage device. For example, adaptor module 140
may take an analog signal formatted for local output device 120 and
convert it to a digital signal for use by remote output device 130.
In addition, adaptor module 140 may take a video-out signal from
output driver 135 and convert it to any of the following video
formats: i) composite; ii) red-green-blue (RGB); iii) phase
alternating line (PAL); iv) national television standards committee
(NTSC); v) sequential color with memory (SECAM); vi) super-video
(S-VIDEO) vii) digital versatile disc; viii) high definition
television; ix) content scrambling; x) video graphics array (VGA);
or xi) digital visual interface (DVI).
[0018] Adaptor module 140 may drive one of local output device 120
and remote output device 130 with a first content while output
driver 135 may drive the other of local output device 120 and
remote output device 130 with a second content. For example, output
driver 135 may drive local output device 120 with the first content
and adaptor module 140 may drive remote output device 130 with the
first or second content.
[0019] Mouse driver 145, keyboard driver 150, or other driver 155
may connect mobile device 105 and a peripheral device such as
remote input device 125. Mouse driver 145, keyboard driver 150, or
other driver 155 may be configured to convert an instruction, a
setting, a resolution, or a format. Mouse driver 145, keyboard
driver 150, or other driver 155 may connect to the peripheral
device and convert an input from the peripheral device to a
different set of instructions, a different setting, a different
resolution, or a different format, suitable for computing device
110.
[0020] Host module 160 may connect USB compliant devices with
mobile device 105. Host module 160 may for example, allow mobile
device 105 to process as either a USB host or a USB client. For
example, host module 160 may allow mobile device 105 to connect
with a remote USB hub that may interconnect with various USB
compliant devices. Host module 160 may connect with the USB
compliant devices through a wire or wirelessly. Host module 160 may
allow for multiplexed communications with, for example, the USB
compliant devices.
[0021] Remote input device 125 may be an input device located
remotely from mobile device 105. Remote input device 125 may
comprise an input device having a size or configuration not limited
by mobile device 105's small form factor. Remote input device 125
may comprise the following: i) a keyboard; ii) a mouse; iii) a
virtual keyboard; iv) a touch screen; v) a compact disc (CD)
player; vi) a digital versatile disc (DVD) player/recorder; vii) a
storage device such as a micro-drive or a compact flash; viii) a
network switch or hub; ix) a personal area network device; x) a
modem; or xi) a television receiver. Remote input device 125 may
connect to mobile device 105 through a wire, wirelessly, or through
a USB adaptor, port, or hub. For example, remote input device 125
may be a full sized keyboard connected through a USB hub connected
to host module 160. The aforementioned are examples and remote
input device 125 may comprise any remotely located input device not
limited by mobile device 105's small size.
[0022] Remote output device 130 may be an output device remotely
located from mobile device 105. Remote output device 130 may
comprise an output device not limited by mobile device 105's small
form factor. Remote output device 130 may comprise one of the
following: i) a TV; ii) a monitor; iii) a liquid crystal display
(LCD) screen; iv) a projector; v) a printer; vi) a network switch
or hub; vii) a personal area network device; viii) a DVD recorder;
ix) a speaker, or x) a storage device such as a micro-drive or a
compact flash memory. The aforementioned are examples and remote
output device 130 may comprise any remotely located output device
not limited by mobile device 105's small size.
[0023] Remote application server 165 may be a computer in a
client/server configuration. Remote application server 165 may also
host software in an intranet/Internet environment. Remote
application server 165 may be remotely located from mobile device
105. Remote application server 165 may comprise, for example, one
of the following: i) a network access server; ii) a two-tier or
three-tier client-server system; iii) a database server; iv) a
database management system; v) a file server; vi) a client
application server; vii) an HTTP server; viii) a web server; ix) an
e-mail server; x) a web application server; or xi) any of a class
of software servers providing scripts, applets, database queries,
or general business programs in an intranet/Internet
environment.
[0024] In addition, remote application server 165 may be a computer
in a client/server configuration and serve an executable program
and a database record to mobile device 105. In addition, remote
application server 165 may serve an applet or script to mobile
device 105 through a web connection. Remote application server 165
may serve software or files. For example, remote application server
165 may serve any one or more of the following: i) an e-mail
program; ii) a video program; iii) a music player; iv) a word
processing program; v) a spreadsheet program; vi) a platform
independent executable code; vii) a web browser; viii) a file or
database record associated with a program; or ix) a web page. The
aforementioned are examples and remote application server 165 may
comprise any remote computing device and may serve any modules or
data.
[0025] FIG. 2 is a flow chart setting forth the general stages
involved in a method 200 consistent with an embodiment of the
invention for providing input and output for a mobile device.
Method 200 may be implemented using a computing device 110 within
mobile device 105 as described in more detail above with respect to
FIG. 1. Ways to implement the stages of method 200 will be
described in greater detail below. Method 200 may begin at starting
block 205 and proceed to stage 210 where mobile device 105 may
receive input from at least one of a plurality of remote input
devices. For example, a user, not having a personal computer, may
use mobile device 105 instead. A local keypad on mobile device 105
may make use of mobile device 105 cumbersome, error prone, and
difficult. The user, on a business trip for example, may use mobile
device 105 in many similar applications the user might use the
personal computer. The user may connect a keyboard and a mouse
through resident mouse driver 145 and keyboard driver 150. In
addition, the keyboard and the mouse may connect through a USB hub
or through adaptor module 140. To receive a software application or
a file, the user may connect a compact flash or a modem to mobile
device 105. Once away from the office, the user may need to have
access to a server at the user's workplace. Through the connected
modem, the user may receive data from the workplace server.
[0026] From stage 210, where mobile device 105 receives input,
method 200 may advance to stage 220 where mobile device 105 may
receive data from remote application server 165. For example, the
user may receive an e-mail with an attachment such as a word
processor file from remote application server 165. The user,
needing to view the word processor file, may receive a compatible
word processor program from remote application server 165, after
attempting to open the attachment. The user, using mobile device
105, may download a music video or open a web page, served by
remote application server 165. The e-mail, music video, and web
page may run on compatible applications the user previously
downloaded from remote application server 165. The user may receive
a database file, while logged into a secure file server. The user
may authenticate the login to the secure file server, located at
the user's workplace, using a web access that serves an applet from
remote application server 165.
[0027] Once mobile device 105 receives data from remote application
server 165 in stage 220, method 200 may continue to stage 230 where
mobile device 105 may process the received input and data. For
example, the user may edit the word processor file on mobile device
105 and save the edited file in system memory 304 as illustrated in
FIG. 3, and described in more detail below with respect to FIG. 3.
The user may view the downloaded music video with an application
running on mobile device 105. In addition, the user may reply to
the earlier received e-mail, sending another file as an attachment.
While editing a file on mobile device 105, the user may copy
information from an e-mail and paste the information to the file.
Furthermore, the user may open the e-mail and be editing with the
word processor simultaneously on mobile device 105.
[0028] After mobile device 105 processes the received input and
data in stage 230, method 200 may proceed to stage 240 where mobile
device 105 may transmit output to at least one of a plurality of
remote output devices. For example, while editing the word
processor file, the user may connect to a television in a hotel
room, using output driver 135. To view directions to an airport
from a stored map on user device 105, the user may connect an LCD
monitor in an automobile to the USB hub. While flying back home,
the user may connect mobile device 105 to the LCD screen attached
to the airplane's seat and play a video game, displaying the same
output as mobile device 105's LCD screen. While playing the video
game, the user may listen to music through a set of connected
earphones. Once home, the user may show a friend the music video by
connecting to the friend's high definition television using adaptor
module 140. Days later at work, the user may connect mobile device
105 to a network switch through the USB hub and upload the edited
word processor file. Once mobile device 105 transmits output in
stage 240, method 200 may then end at stage 250.
[0029] An embodiment consistent with the invention may comprise a
system for providing input and output for a mobile device. The
system may comprise a memory storage and a processing unit coupled
to the memory storage. The processing unit may be operative to
receive, at the mobile device, the input from at least one of a
plurality of remote input devices. The at least one of the
plurality of remote input devices may be remote from the mobile
device. The mobile device may have at least one local input device.
The at least one of the plurality of remote input devices may have
a greater form factor than the at least one local input device. The
processing unit may be further operative to process the received
input. Furthermore, the processing unit may be operative to
transmit, from the mobile device, the output to at least one of a
plurality of remote output devices. The processed input may be the
basis for the transmitted output. The at least one of the plurality
of remote output devices may be remote from the mobile device. The
mobile device may have at least one local output device wherein the
at least one of the plurality of remote output devices has a
greater form factor than the at least one local output device.
[0030] Another embodiment consistent with the invention may
comprise a system for providing input and output for a mobile
device. The system may comprise a memory storage and a processing
unit coupled to the memory storage. The processing unit may be
operative to receive input from a remote input device that may be
remote from the mobile device having a local input device. The
remote input device may have a greater form factor than the local
input device. The processing unit may be further operative to
receive data from a remote server and to process the received input
and the received data. In addition, the processing unit may be
operative to send output to a remote output device. The processed
input and the received data may form a basis for the sent output.
The remote output device may be remote from the mobile device
having a local output device. The remote output device may have a
greater form factor than the local output device.
[0031] Yet another embodiment consistent with the invention may
comprise a system for providing input and output for a mobile
device. The system may comprise a memory storage and a processing
unit coupled to the memory storage. The processing unit may be
operative to receive the input from at least one of a plurality of
remote input devices. The at least one of the plurality of remote
input devices may be remote from the mobile device. The mobile
device may have at least one local input device. The at least one
of the plurality of remote input devices may be more ergonomic than
the at least one local input device. The processing unit may be
further operative to transmit the output to at least one of a
plurality of remote output devices. The input may be a basis for
the transmitted output. The at least one of the plurality of remote
output devices may be remote from the mobile device. The mobile
device may have at least one local output device. The at least one
of the plurality of remote output devices may be more ergonomic
than the at least one local output device.
[0032] FIG. 3 is a block diagram of a system including computing
device 110. Consistent with an embodiment of the invention, a
memory storage and a processing unit may be implemented in a
computing device, such as computing device 110 of FIG. 1. Any
suitable combination of hardware, software, or firmware may be used
to implement the memory storage and processing unit. For example,
the memory storage and processing unit may be implemented with
computing device 110 or any of an other computing device 318, in
combination with computing device 110. The aforementioned system,
device, and processors are examples and other systems, devices, and
processors may comprise the aforementioned memory storage and
processing unit, consistent with embodiments of the invention.
[0033] With reference to FIG. 3, a system consistent with an
embodiment of the invention may include a computing device, such as
computing device 110. In a basic configuration, computing device
110 may include at least one of a processing unit 302 and a system
memory 304. Depending on the configuration and type of computing
device, system memory 304 may comprise, but is not limited to,
volatile (e.g. random access memory (RAM)), non-volatile (e.g.
read-only memory (ROM)), flash memory, or any combination. System
memory 304 may include an operating system 305, one or more of a
programming module 306, and may include a program data 307.
Operating system 305, for example, may be suitable for controlling
computing device 110's operation. In one embodiment, programming
modules 306 may include input/output applications, for example an
input/output application module 320. Furthermore, embodiments of
the invention may be practiced in conjunction with a graphics
library, other operating systems, or any other application program
and is not limited to any particular application or system. This
basic configuration is illustrated in FIG. 3 by those components
within a dashed line 308.
[0034] Computing device 110 may have additional features or
functionality. For example, computing device 110 may also include
additional data storage devices (removable and/or non-removable)
such as, for example, a magnetic disk, an optical disk, or a tape.
Such additional storage is illustrated in FIG. 3 by a removable
storage 309 and a non-removable storage 310. Computer storage media
may include a volatile and a nonvolatile, a removable and a
non-removable media implemented in any method or technology for
storage of information, such as computer readable instructions,
data structures, program modules, or other data. System memory 304,
removable storage 309, and non-removable storage 310 are all
computer storage media examples (i.e. memory storage). Computer
storage media may include, but is not limited to, RAM, ROM,
electrically erasable read-only memory (EEPROM), flash memory or
other memory technology, CD-ROM, digital versatile disks (DVD) or
other optical storage, magnetic cassettes, magnetic tape, magnetic
disk storage or other magnetic storage devices, or any other medium
which can be used to store information and which can be accessed by
computing device 110. Any such computer storage media may be part
of computing device 110. Computing device 110 may also have an
input device(s) 312 such as a keyboard, a mouse, a pen, a sound
input device, a touch input device, etc. An output device(s) 314
such as a display, speakers, a printer, etc. may also be included.
Computing device 110 may also function within mobile device 105,
mobile device 105 may be a mobile telephone, a cellular telephone,
a wireless telephone, a wireless device, a hand-held personal
computer, a hand-held computing device, a multi-processor system, a
micro-processor-based or programmable consumer electronic device, a
personal digital assistant (PDA), a telephone, or a pager. The
aforementioned devices are examples and others may be used.
[0035] Computing device 110 may also contain a communication
connection 316 that may allow device 110 to communicate with other
computing devices 318, such as over a network in a distributed
computing environment, for example, an intranet or the Internet. A
communication connection 316 is one example of communication media.
Communication media may typically be embodied by computer readable
instructions, data structures, program modules, or other data in a
modulated data signal, such as a carrier wave or another transport
mechanism, and includes any information delivery media. The term
"modulated data signal" may describe a signal that has one or more
characteristics set or changed in such a manner as to encode
information in the signal. By way of example, and not limitation,
communication media may include wired media such as a wired network
or direct-wired connection, and wireless media such as acoustic,
radio frequency (RF), infrared, and other wireless media. The term
computer readable media as used herein may include both storage
media and communication media.
[0036] As stated above, a number of program modules and data files
may be stored in system memory 304, including operating system 305.
While executing on processing unit 302, programming modules 306
(e.g. input/output application 320) may perform processes
including, for example, one or more method 200's stages as
described above. The aforementioned process is an example and
processing unit 302 may perform other processes. Other programming
modules that may be used in accordance with embodiments of the
present invention may include electronic mail and contacts
applications, word processing applications, spreadsheet
applications, database applications, slide presentation
applications, drawing or computer-aided application programs,
etc.
[0037] Generally, consistent with embodiments of the invention,
program modules may include routines, programs, components, data
structures, and other types of structures that may perform
particular tasks or that may implement particular abstract data
types. Moreover, embodiments of the invention may be practiced with
other computer system configurations, including hand-held devices,
multiprocessor systems, microprocessor-based or programmable
consumer electronics, minicomputers, mainframe computers, and the
like. Embodiments of the invention may also be practiced in
distributed computing environments where tasks are performed by
remote processing devices that are linked through a communications
network. In a distributed computing environment, program modules
may be located in both local and remote memory storage devices.
[0038] Furthermore, embodiments of the invention may be practiced
in an electrical circuit comprising discrete electronic elements,
packaged or integrated electronic chips containing logic gates, a
circuit utilizing a microprocessor, or on a single chip containing
electronic elements or microprocessors. Embodiments of the
invention may also be practiced using other technologies capable of
performing logical operations such as, for example, AND, OR, and
NOT, including but not limited to mechanical, optical, fluidic, and
quantum technologies. In addition, embodiments of the invention may
be practiced within a general purpose computer or in any other
circuits or systems.
[0039] Embodiments of the invention, for example, may be
implemented as a computer process (method), a computing system, or
as an article of manufacture, such as a computer program product or
computer readable media. The computer program product may be a
computer storage media readable by a computer system and encoding a
computer program of instructions for executing a computer process.
The computer program product may also be a propagated signal on a
carrier readable by a computing system and encoding a computer
program of instructions for executing a computer process.
Accordingly, the present invention may be embodied in hardware
and/or in software (including firmware, resident software,
micro-code, etc.). In other words, embodiments of the present
invention may take the form of a computer program product on a
computer-usable or computer-readable storage medium having
computer-usable or computer-readable program code embodied in the
medium for use by or in connection with an instruction execution
system. A computer-usable or computer-readable medium may be any
medium that can contain, store, communicate, propagate, or
transport the program for use by or in connection with the
instruction execution system, apparatus, or device.
[0040] The computer-usable or computer-readable medium may be, for
example but not limited to, an electronic, magnetic, optical,
electromagnetic, infrared, or semiconductor system, apparatus,
device, or propagation medium. More specific computer-readable
medium examples (a non-exhaustive list), the computer-readable
medium may include the following: an electrical connection having
one or more wires, a portable computer diskette, a random access
memory (RAM), a read-only memory (ROM), an erasable programmable
read-only memory (EPROM or Flash memory), an optical fiber, and a
portable compact disc read-only memory (CD-ROM). Note that the
computer-usable or computer-readable medium could even be paper or
another suitable medium upon which the program is printed, as the
program can be electronically captured, via, for instance, optical
scanning of the paper or other medium, then compiled, interpreted,
or otherwise processed in a suitable manner, if necessary, and then
stored in a computer memory.
[0041] Embodiments of the present invention, for example, are
described above with reference to block diagrams and/or operational
illustrations of methods, systems, and computer program products
according to embodiments of the invention. The functions/acts noted
in the blocks may occur out of the order as shown in any flowchart.
For example, two blocks shown in succession may in fact be executed
substantially concurrently or the blocks may sometimes be executed
in the reverse order, depending upon the functionality/acts
involved.
[0042] While certain embodiments of the invention have been
described, other embodiments may exist. Furthermore, although
embodiments of the present invention have been described as being
associated with data stored in memory and other storage mediums,
data can also be stored on or read from other types of
computer-readable media, such as secondary storage devices, like
hard disks, floppy disks, or a CD-ROM, a carrier wave from the
Internet, or other forms of RAM or ROM. Further, the disclosed
methods' stages may be modified in any manner, including by
reordering stages and/or inserting or deleting stages, without
departing from the invention.
[0043] All rights including copyrights in the code included herein
are vested in and the property of the Applicant. The Applicant
retains and reserves all rights in the code included herein, and
grants permission to reproduce the material only in connection with
reproduction of the granted patent and for no other purpose. While
the specification includes examples, the invention's scope is
indicated by the following claims. Furthermore, while the
specification has been described in language specific to structural
features and/or methodological acts, the claims are not limited to
the features or acts described above. Rather, the specific features
and acts described above are disclosed as example for embodiments
of the invention.
* * * * *