U.S. patent application number 13/243120 was filed with the patent office on 2012-01-12 for providing web-based imaging services within a client-based application.
This patent application is currently assigned to MICROSOFT CORPORATION. Invention is credited to ALEXANDER SABO BRODIE, JEFFREY ALAN KOHLER, ANDREW MARTIN WAND.
Application Number | 20120011199 13/243120 |
Document ID | / |
Family ID | 31996820 |
Filed Date | 2012-01-12 |
United States Patent
Application |
20120011199 |
Kind Code |
A1 |
WAND; ANDREW MARTIN ; et
al. |
January 12, 2012 |
PROVIDING WEB-BASED IMAGING SERVICES WITHIN A CLIENT-BASED
APPLICATION
Abstract
Embodiments are directed to a computer-implemented system and
method for providing web-based features in a client-based digital
imaging application. A location on a client is provided for storing
a number of possible, future web-based features. The location has
the capacity to accept a number of name-value pairs that define a
web-based imaging feature. When a web-based feature is to be added,
the name-value pairs that define the web-based imaging feature are
added to the location. After a feature has been added, it is
displayed for selection by a user. Upon selection of the web-based
imaging feature, image data about a selected one or more images is
recorded in a known location. The web-based service that is
providing the web-based imaging feature is granted access to the
image data in the known location. The image data in the known
location is then deleted when the web-based imaging feature is
closed.
Inventors: |
WAND; ANDREW MARTIN;
(NEWCASTLE, WA) ; KOHLER; JEFFREY ALAN; (BELLEVUE,
WA) ; BRODIE; ALEXANDER SABO; (REDMOND, WA) |
Assignee: |
MICROSOFT CORPORATION
REDMOND
WA
|
Family ID: |
31996820 |
Appl. No.: |
13/243120 |
Filed: |
September 23, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10268263 |
Oct 10, 2002 |
8046405 |
|
|
13243120 |
|
|
|
|
60408678 |
Sep 5, 2002 |
|
|
|
Current U.S.
Class: |
709/203 |
Current CPC
Class: |
H04L 29/06 20130101;
H04L 67/02 20130101; H04L 67/30 20130101; H04L 67/34 20130101; H04L
69/329 20130101 |
Class at
Publication: |
709/203 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. One or more computer storage media storing computer-useable
instructions that, when used by one or more computing devices,
cause the one or more computing devices to perform a method for
providing server-based imaging features in a client-based digital
imaging application, the instructions comprising: identifying a
location on a client having one or more name-value pair sets that
define one or more server-based imaging features, each server-based
imaging feature comprising functionality provided by one or more
servers to the client-based digital imaging application; updating
the location on the client by adding one or more new name-value
pair sets defining one or more new server-based imaging features;
and upon launching the client-based digital imaging application,
determining available server-based imaging features defined at the
location on the client and making available all defined
server-based imaging features for selection by a user.
2. The one or more computer storage media of claim 1, the
instructions further comprising: upon selection of a server-based
imaging feature, determining configuration parameters for the
selected server-based imaging feature from a name-value pair set
defining the selected server-based imaging feature.
3. The one or more computer storage media of claim 2, wherein the
configuration parameters include a feature title, one or more
feature instructions, and a desired image format.
4. The one or more computer storage media of claim 2, the
instructions further comprising: receiving, from the user, a list
of images on which the selected server-based imaging feature is to
perform an operation.
5. The one or more computer storage media of claim 4, the
instructions further comprising: creating an item container on the
client and populating the item container with information about
each image in the list of images.
6. The one or more computer storage media of claim 5, the
instructions further comprising: granting access to the information
in the item container on the client to the selected server-based
imaging feature.
7. The one or more computer storage media of claim 6, the
instructions further comprising: deleting the information from the
item container when the selected server-based imaging feature is
closed.
8. The one or more computer storage media of claim 7, wherein the
information populated to the item container includes, for each
image in the list of images, a digital image file, a thumbnail
image for the digital image file, and textual information about the
digital image and the thumbnail pointer.
9. A computer-implemented method for providing server-based imaging
features to a client-based digital imaging application, the method
comprising: providing to a client one or more name-value pair sets
that define one or more server-based imaging features including
configuration parameters for each server-based imaging feature,
wherein each server-based imaging feature comprises functionality
provided by a server to the client-based digital imaging
application, and wherein the client stores the one or more
name-value pair sets at a location on the client, and further
wherein when the client-based digital imaging application is
launched, the one or more server-based imaging features are added
to a current list of server-based imaging features available to a
user.
10. The computer-implemented method of claim 9, the method further
comprising: receiving, from the client, a list of images on which a
provided server-based imaging feature is to perform an
operation.
11. The computer-implemented method of claim 10, the method further
comprising: accessing information on the client about each image in
the list of images.
12. One or more computer storage media storing computer-useable
instructions that, when used by one or more computing devices,
cause the one or more computing devices to perform a method for
providing a server-based imaging feature in a client-based imaging
application, the instructions comprising: launching the
server-based imaging feature in the client-based imaging
application on a client; storing image data in a storage folder on
the client; providing access to the image data in the storage
folder to the server-based imaging feature; and displaying a user
interface for the server-based imaging feature generated based on
at least a portion of the image data in the storage folder.
13. The one or more computer storage media of claim 12, wherein the
storage folder is not available to other applications.
14. The one or more computer storage media of claim 12, wherein the
storage folder is hidden from a user of the client device.
15. The one or more computer storage media of claim 12, the
instructions further comprising: deleting the image data when the
server-based imaging feature is closed.
16. The one or more computer storage media of claim 12, wherein
only the server-based imaging feature is granted access to the
storage folder.
17. The one or more computer storage media of claim 12, wherein
access to the storage folder is granted and managed by a
control
18. The one or more computer storage media of claim 12, wherein the
image data stored in the storage folder comprises images saved in a
file format specified for the server-based imaging feature, a
thumbnail image for each of the images, and a text file that
contains information about each of the images and thumbnail
images.
19. The one or more computer storage media of claim 18, wherein the
user interface is provided by a web service for the server-based
imaging feature and generated by providing access to the text file
in the storage folder to the web service for the server-based
imaging feature, and wherein the user interface includes at least a
portion of the thumbnail images from the storage folder in the user
interface.
20. The one or more computer storage media of claim 19, the
instructions further comprising: receiving a user selection of a
first thumbnail from the user interface; identifying a first image
in the storage folder corresponding to the first thumbnail; and
uploading the first image from the storage folder on the client
device to the web service for the server-based imaging feature.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 10/268,263, filed Oct. 10, 2002, which claims
the benefit of U.S. Provisional Application Ser. No. 60/408,678,
filed Sep. 5, 2002. Each of the aforementioned applications is
herein incorporated by reference in its entirety.
BACKGROUND
[0002] Digitally represented still images are now commonly stored
in a computer environment, such as a personal computer. The stored
images can then be manipulated, printed, and indexed by the PC
user. Software packages are available to aid the PC user in
handling these digital images. Such software packages include
numerous capabilities, including archiving the images, printing the
images in various sizes and formats, and other editing
capabilities, such as the ability to rotate an image, crop it,
correct its brightness, contrast and tint. In addition, such
software packages typically include the ability to cut portions out
of one image and incorporate them into other images. These software
packages are typically provided to the consumer via a piece of
removable, computer-readable media, such as a compact disk or
CD.
[0003] It has also become desirable to provide to the PC user a
number of web-based imaging services. These web-based imaging
services generally involve taking an image existing on the user's
PC and sending it to a remote location on the World Wide Web,
through the Internet. The remote location then provides some type
of service related to the image. Examples of web-based imaging
services include remote storage, professional printing and photo
gift creation. Other web-based services are available and the
services change and evolve over time. The imaging software packages
provided via CD are typically revised only periodically. For
example, the software provider may revise the imaging software
packages only once per year. When a revision is made, the software
provider updates, tests, and then releases the code to the
consumers. In between software revisions, the software provider
lacks the ability to add new web-based features to the software
packages. In addition, when the software provider adds a web-based
feature to the current software package, it must write new code for
each feature. In other words, the code is not transferable from
feature to feature. As with any software product, code addition is
somewhat risky. To alleviate this risk, if new code is added, the
software provider must test the code to ensure that the code
addition does not cause problems elsewhere within the software.
[0004] It can therefore be seen that the current software imaging
products and the system for updating this software involve several
disadvantages. First, the software packages lack structure that
allows updates as new web-based features are available, or as
existing web-based features change. Second, the software packages
require new code for each web-based feature. Third, code addition
involves the risk of introducing error into the existing and
already tested software package. A new client-based software
imaging application is needed that can incorporate web-based
features even after the software application has been released. A
software package is needed that has structure allowing addition of
features without introducing significant code changes and the
resulting risk of error. Finally, the software package needs to
allow addition of the web-based features in a way that involves a
more uniform protocol from feature to feature.
BRIEF SUMMARY
[0005] Embodiments of this invention are generally directed to a
computer-implemented system and method for providing web-based
features in a client-based digital imaging application. One or more
web-based features are provided in a location on a client device
via a number of name-value pairs that define each web-based imaging
feature. When another web-based feature is to be added, the
name-value pairs that define the additional web-based imaging
feature are added to the location. After a feature has been added,
it is displayed for selection by a user. Upon selection of the
web-based imaging feature, image data about a selected one or more
images is recorded in a known location. The web-based service that
is providing the web-based imaging feature is granted access to the
image data in the known location. The user can then further
interact with the web-based service to obtain further processing of
the images, such as ordering prints or photo gifts relating to the
image data. The image data in the known location is then deleted
when the web-based imaging feature is closed.
[0006] Additional advantages and novel features of embodiments of
the invention will be set forth in the description which follows,
and in part will become apparent to those skilled in the art upon
examination of the following, or may be learned from practice of
embodiments of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The present invention is described in detail below with
reference to the attached drawing figures, wherein:
[0008] FIG. 1 is a block diagram of a computing system environment
suitable for use in implementing embodiments of the present
invention;
[0009] FIG. 2 is a schematic representation of the basic components
of embodiments of the present invention;
[0010] FIG. 3 is a table showing information about registry
additions;
[0011] FIG. 4 is a subset of FIG. 3 as a registry addition for a
web-based feature;
[0012] FIG. 5 is an exemplary screen shot of an available web-based
feature selection;
[0013] FIG. 6 is an exemplary screen shot allowing a user to select
the images exposed to the web-service;
[0014] FIG. 7 is an exemplary screen shot allowing a user to select
the images to upload to the web-service;
[0015] FIG. 8 is an exemplary screen shot indicating that images
are being uploaded and showing a progress indicator; and
[0016] FIG. 9 is an exemplary screen shot indicating that the
images have been successfully uploaded.
DETAILED DESCRIPTION
[0017] Embodiments of the present invention generally provide a
method and software package for use in the handling of digital
images stored in a computing device. The software package allows
the addition of web-based or server-based imaging services after
release of the software to the user community. These web-based
imaging services may be added using a uniform protocol without
introducing significant code changes.
[0018] Having briefly described an embodiment of the present
invention, an exemplary operating environment for the present
invention is described below.
Exemplary Operating Environment
[0019] FIG. 1 illustrates an example of a suitable computing system
environment 100 on which embodiments of the invention may be
implemented. The computing system environment 100 is only one
example of a suitable computing environment and is not intended to
suggest any limitation as to the scope of use or functionality of
embodiments of the invention. Neither should the computing
environment 100 be interpreted as having any dependency or
requirement relating to any one or combination of components
illustrated in the exemplary operating environment 100.
[0020] Embodiments of the invention may be described in the general
context of computer-executable instructions, such as program
modules, being executed by a computer. Generally, program modules
include routines, programs, objects, components, data structures,
etc. that perform particular tasks or implement particular abstract
data types. Moreover, those skilled in the art will appreciate that
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 computer storage media including memory storage
devices.
[0021] With reference to FIG. 1, an exemplary system 100 for
implementing an embodiment of the invention includes a general
purpose computing device in the form of a computer 110 including a
processing unit 120, a system memory 130, and a system bus 121 that
couples various system components including the system memory to
the processing unit 120.
[0022] Computer 110 typically includes a variety of computer
readable media. By way of example, and not limitation, computer
readable media may comprise computer storage media and
communication media. The system memory 130 includes computer
storage media in the form of volatile and/or nonvolatile memory
such as read only memory (ROM) 131 and random access memory (RAM)
132. A basic input/output system 133 (BIOS), containing the basic
routines that help to transfer information between elements within
computer 110, such as during start-up, is typically stored in ROM
131. RAM 132 typically contains data and/or program modules that
are immediately accessible to and/or presently being operated on by
processing unit 120. By way of example, and not limitation, FIG. 1
illustrates operating system 134, application programs 135, other
program modules 136, and program data 137.
[0023] The computer 110 may also include other
removable/nonremovable, volatile/nonvolatile computer storage
media. By way of example only, FIG. 1 illustrates a hard disk drive
141 that reads from or writes to nonremovable, nonvolatile magnetic
media, a magnetic disk drive 151 that reads from or writes to a
removable, nonvolatile magnetic disk 152, and an optical disk drive
155 that reads from or writes to a removable, nonvolatile optical
disk 156 such as a CD ROM or other optical media. Other
removable/nonremovable, volatile/nonvolatile computer storage media
that can be used in the exemplary operating environment include,
but are not limited to, magnetic tape cassettes, flash memory
cards, digital versatile disks, digital video tape, solid state
RAM, solid state ROM, and the like. The hard disk drive 141 is
typically connected to the system bus 121 through an non-removable
memory interface such as interface 140, and magnetic disk drive 151
and optical disk drive 155 are typically connected to the system
bus 121 by a removable memory interface, such as interface 150.
[0024] The drives and their associated computer storage media
discussed above and illustrated in FIG. 1, provide storage of
computer readable instructions, data structures, program modules
and other data for the computer 110. In FIG. 1, for example, hard
disk drive 141 is illustrated as storing operating system 144,
application programs 145, other program modules 146, and program
data 147. Note that these components can either be the same as or
different from operating system 134, application programs 135,
other program modules 136, and program data 137. Operating system
144, application programs 145, other program modules 146, and
program data 147 are given different numbers here to illustrate
that, at a minimum, they are different copies. A user may enter
commands and information into the computer 110 through input
devices such as a keyboard 162 and pointing device 161, commonly
referred to as a mouse, trackball or touch pad. Other input devices
(not shown) may include a microphone, joystick, game pad, satellite
dish, scanner, or the like. These and other input devices are often
connected to the processing unit 120 through a user input interface
160 that is coupled to the system bus, but may be connected by
other interface and bus structures, such as a parallel port, game
port or a universal serial bus (USB). A monitor 191 or other type
of display device is also connected to the system bus 121 via an
interface, such as a video interface 190. In addition to the
monitor, computers may also include other peripheral output devices
such as speakers 197 and printer 196, which may be connected
through an output peripheral interface 195.
[0025] The computer 110 in the present invention will operate in a
networked environment using logical connections to one or more
remote computers, such as a remote computer 180. The remote
computer 180 may be a personal computer, and typically includes
many or all of the elements described above relative to the
computer 110, although only a memory storage device 181 has been
illustrated in FIG. 1. The logical connections depicted in FIG. 1
include a local area network (LAN) 171 and a wide area network
(WAN) 173, but may also include other networks.
[0026] When used in a LAN networking environment, the computer 110
is connected to the LAN 171 through a network interface or adapter
170. When used in a WAN networking environment, the computer 110
typically includes a modem 172 or other means for establishing
communications over the WAN 173, such as the Internet. The modem
172, which may be internal or external, may be connected to the
system bus 121 via the user-input interface 160, or other
appropriate mechanism. In a networked environment, program modules
depicted relative to the computer 110, or portions thereof, may be
stored in the remote memory storage device. By way of example, and
not limitation, FIG. 1 illustrates remote application programs 185
as residing on memory device 181. It will be appreciated that the
network connections shown are exemplary and other means of
establishing a communications link between the computers may be
used.
[0027] Although many other internal components of the computer 110
are not shown, those of ordinary skill in the art will appreciate
that such components and the interconnection are well known.
Accordingly, additional details concerning the internal
construction of the computer 110 need not be disclosed in
connection with the present invention.
Incorporation of Web-Based Features
[0028] The client-based application of the present invention is
used to handle digital images on a user's PC. While the software
embodiment is described as stored on a CD, it should be understood
that the software is provided to the PC user and is installed on
the client PC. It should be understood that other methods of
accomplishing this installation are also within the scope of this
invention. The user loads the digital images onto the PC through
any of a variety of methods, such as by the use of a scanner or
directly from a digital camera. Once loaded, the software package
allows a user to process and manipulate the images.
[0029] The client-based application of the present invention allows
web-based features to be added to the application at any point in
time, including after the product has been purchased by the user
and loaded onto their PC. While discussed as "web-based" features,
it should be understood that the principles apply not only to
web-based features, but to any server based features as well. These
web-based features all involve the basic functions of accessing and
loading a digital image from the user's PC and delivering it
through the Internet to a web-based service. The web-based service
will then perform some type of processing desired by the user.
These web-based services include, for example, the ability to order
professionally printed images, photo gifts, and other image-based
products, as well as the ability to save images to a storage site
on the web, and to share images with others.
[0030] A client-based application incorporating the basic features
of the present invention is shown schematically in FIG. 2. A number
of basic components interact to provide the full functionality
allowed by the application. At a very basic level, an embodiment of
the invention uses a registry 200, a client-based imaging
application 202, a local storage area 204, and an ActiveX control
206. These components exist on the local PC of the user. The
application 202 interacts with a web service 208 through a network
210, such as the Internet to allow the user to access the web-based
features. Each of these components and their interaction will be
described in more detail below.
[0031] The client-based application 202 includes known editing and
manipulating capabilities similar to those existing in the prior
art. An exemplary client-based application is the PICTURE IT
software application available from the Microsoft Corporation of
Redmond, Wash. A schematic representation of the user interface for
such an imaging application is broadly represented in FIG. 2 as
212. The user interface typically includes a task area 214 and an
image viewing area 216. The task area 214 displays options
available to the user for image manipulation. The viewing area 216
displays the image.
[0032] In the present invention, when a web-based feature is
available to the user, the feature appears as an option to the user
in the task area 214. The addition of a web-based feature is
discussed below. Any web-based features known at the release of
client-based application 202 are pre-loaded onto application 202.
The web-based features are stored as a series of name-value pairs
in the registry 200. These name-value pairs include a feature name
218, one or more feature instructions 220, a feature ID 222, a file
format type 224, a maximum allowable image width 226, and a maximum
allowable image height 228.
[0033] If a web-based feature is known at the time of the
client-based application 202 release, its information is added to
the registry 200 prior to shipping. Later, features can be added to
the registry using the same format as the existing task
infrastructure name-value pairs 218-228 in the registry 200. In
other words, the registry has room for additional name-value pairs
218-228 discussed above. A feature is added to the client-based
application 202 by updating the registry 200. In other words, the
name-value pairs 218-228 corresponding to the added feature are
added to the registry. After a feature has been added to the
registry 200, it will be displayed as an available feature in the
file menu when the user next launches the client-based application
202.
[0034] When the user accesses a web-based feature, the user selects
the images for which further processing is desired. The
client-based application 202 then saves certain information
regarding these selected images to local storage 204. More
specifically, client-based application 202 will save to the local
storage folder 204 the selected images 230, a thumbnail 232 for
each image, and a textual manifest 234. The web service 208 then
provides its own user interface in the space 216 to the user. The
web service 208 uses the ActiveX control 206 to access information
about the selected images that exists in the manifest 234 and
displays thumbnails by accessing pointers to the thumbnails 232 in
storage 204. Once the user indicates to the web service 208 those
images that need further processing, the web service 208 accesses
the images 230 through ActiveX control 206 and uploads them through
the Internet 210 to its service for processing.
[0035] Having generally described the broad components and process
utilizing those components, a more detailed description follows.
FIG. 3 outlines four columns, one relates to the basic information,
followed by a column indicating the value in the registry, the type
of value sought, and a sample value data entry. As described above,
the registry keys include the feature name 218. This feature name
218 is associated with a value called COMMANDLABEL that is a
string. Sample data for the feature name 218 is "Save to MSN
Photos." FIG. 3 illustrates two rows of instructions 220. These
instructions relate to a first pane and a second pane of
instructions. Each involves a string. Sample data for the first
pane instructions is shown as "What do you want to save?" Sample
data for the second pane instructions is "Follow the instructions
on the right to save your pictures. When you have finished, click
done." The next row illustrated in FIG. 3 is the feature ID 222
that involves a value labeled ID, which is a DWORD type. Sample
data might be "1152." This ID is used by a redirector feature. The
redirector functions as a substitute to provide a direct URL for
the web service. In other words, the ID value "1152" is provided to
a redirector. The redirector uses this value to ascertain the URL
of the web service 208. By using the redirector, if the URL of the
web service 208 changes, the change is noted at the redirector
site, rather than changing the registry value on the user's
computer. The redirector also acts as the gatekeeper. If a web page
or service 208 is to be up and running, the provider of the
Client-based application 202 must be informed so that a correct
mapping for the feature ID to the URL of the web service 208 can be
provided.
[0036] Returning to FIG. 3, the next row of information involves
the file format 224. This involves a value called "filetype" which
is a string. Sample data might be "JPG." The file type is merely
the type of file that the web service 208 expects from the user.
Other exemplary file types include ".JPG", ".TIFF", and ".PNG". Of
course, other file types could be indicated here by the web service
208. The information to be included in the registry also includes
the maximum allowable image width and height, 226 and 228,
respectively. These involve the values of MAXWIDTH and MAXHEIGHT
which are both of the type DWORD. Sample data for these,
respectively, would be "0.times.708" and "0.times.4B0". This allows
a web service 208 to specify the biggest image size it can handle.
This prevents the user from uploading something that is
unnecessarily large. But the Client-based application 202 will not
increase the resolution of an actual image to match the values 226
and 228. Finally, a task icon item 236 may be provided that has a
value LOGOFILENAME, which is a string. Sample data might be
"savemsn.bmp". The task icon is used when the icon or other
graphical representation is to be used in conjunction with the
feature name 218.
[0037] A sample registry entry for a feature allowing the user to
save images to a storage site is shown in FIG. 4. FIG. 4 shows the
information that would be added to the registry under the value
column when this feature is added after the Client-based
application 202 shipped to the user. Typically, the additions to
the registry shown in FIG. 4 can be achieved through a small,
downloadable, executable, or even a simple registry file.
[0038] A more detailed explanation of the workings of the present
invention is described below with reference to FIGS. 5 through 9.
As best seen in FIG. 5, when a web-based feature is added to the
registry 200, the feature name 218 is presented to the user in area
214 of the client-based application user interface. In this
example, the web-based feature "Save to MSN Photos" is presented to
the user under the "Save, send, or share" project option. Once the
user indicates the desire to use this feature, the user can be
presented with a screen allowing the user to indicate the
appropriate images, as seen in FIG. 6. The instruction for the
first pane 220 "What do you want to save?" is obtained from the
instruction value data 220 in the registry. After the user provides
the information requested in FIG. 6, the client-based application
202 performs a number of steps. First, for each of the selected
images, the client-based application 202 will write the image file
230 into the local storage folder 204. The local storage folder 204
is at a known location. This is specific to the client-based
application 202 and is not available to other applications and is
hidden from the user. The images 230 are saved in the file format
indicated by the file format registry value 224. Therefore, in this
example, the file type indicated for registry value 224 was ".JPG"
as shown in FIG. 4. Second, the client-based application will also
write a thumbnail 232 for each image 230 into the folder 204. The
thumbnails 232 are always ".JPG" files. Third, the client-based
application 202 will write a text file 234 to the local storage
204. The text file 234 contains information about the images, such
as the names of the images, the size, and format of the images, as
well as pointers to the thumbnails for the images.
[0039] The client-based application 202 will also launch the
web-based feature in the area 216 of the user interface. Upon
launch of the web-based feature, the feature ID 222 is used by the
redirector, which navigates to the web service 208. The web service
208 provides the feature-specific user interface in the area 216.
As part of this launch, the user's connection to the Internet 210
may be checked. The user may also be taken though some type of
authentication process by the web service 208 to identify the user
to the web service 208. For example, the PASSPORT service used by
the Microsoft Corporation of Redmond, Wash. may be used to
authenticate the user. As best seen in FIG. 7, the user interface
area 214 may be populated with the feature instructions 220 for the
second pane, which are obtained from the registry 200. For example,
the instructions may direct the user to follow the instructions in
the area 216 of the user interface and to click done when the user
is finished.
[0040] It is important to note that the user interface existing
within area 216 at this point is provided by the web service 208.
As an example, the web service 208 can present to the user
thumbnails of the selected images to confirm which images the user
desires to store through the web service 208. In doing so, the web
service 208 uses the ActiveX control 206 on client-based
application 202 to access the local storage folder 204. Again, the
local storage folder 204 is populated when the user selects
pictures or images for processing by a web-based feature. The
ActiveX control 206 grants the web service 208 access to the image
data within folder 204. When the web service 208 is instantiated,
it calls the ActiveX control 206 to determine which files are
available for further processing. The manifest 234 in folder 204 is
used to inform the web service 208 which files are available for
further processing. More specifically, the web service 208 sends
down a page that will instruct the ActiveX control 206 to post all
the data in manifest 234 to a web site chosen by web service 208.
Web service 208 can then process this data on the server and send
an appropriate web page back to the client-based application 202 in
area 216. The manifest 234 also contains pointers to the thumbnails
so that the web service 208 can render the thumbnails 232 of the
images 230 without uploading the thumbnails 232 to the web service
208. The web page then builds the appropriate user interface
displaying the thumbnails 232 as shown in FIG. 7. As shown in FIG.
7, the user is given the option to select one or more of the
thumbnail images for further processing. Once selected, the actual
images 230 are uploaded to the web service 208. To upload the
images 230 to the web service 208, the ActiveX control 206 is used
to gain access to the images 230. The ActiveX control 206 thus
allows the web service 208 to specify what data to upload and when.
Importantly, the only files available for upload to the web service
208 are those contained in folder 204.
[0041] As seen in FIG. 8, once selected, the user is given an
indication 238 that the images are being uploaded. Each image that
is uploaded can be sent as a separate request. If the connection
between the client-based application 202 and the web service 208 is
lost, only the current image transfer is affected. All images
already uploaded are safely at web service 208. The ActiveX control
206 also allows the web service 208 to display to the user this
progress indicator 236. The web service 208 can specify to the
ActiveX control 206 the frequency at which the progress report is
provided. For example, progress can be indicated as 25%, 50%, 75%,
and done, or can be indicated in increments of 10%. After the
images have been successfully processed, the user may be shown a
screen by the web service 208 indicating that the processing was
successfully completed. An example of this user interface is shown
in FIG. 9. It should be understood that many other events can take
place in this process, depending on the web-based feature being
used. When the user has completed the use of the feature, they can
indicate that in area 214 of the user interface. For example, the
user can click the "done" control in the lower left area. When the
feature processing is completed, the contents of folder 204 are
deleted. In other words, the contents of folder 204 exist only from
the time of feature launch to the time of feature exit. This
ensures that the image data will be used by a web-based service 208
only when desired by a user.
[0042] In summary, a web-based feature is made available to users
when its information is in the registry. When a user selects a task
that uses a web-based feature, this launches a generic upload task
and passes in an ID for the specific feature. The task then looks
in the registry according to the ID and reads the registry to
indicate how the web-based feature is to configure itself. The user
then indicates which images are desired for further processing. At
this point, the Client-based application 202 creates the contents
of the folder 204, including the images, thumbnails, and the text
manifest. The web-based feature then is informed about the
indicated images through use of the ActiveX control 206 and
displays the locally-stored thumbnails. After the web service 208
has confirmed the images that the user desires for further
processing, the web service 208 uses the ActiveX control 206 to
upload the actual image 230. The user then navigates through the
remainder of the steps provided by the web service 208 in the user
interface area 216 to finish the desired processing. After the user
is done, the web-based feature is closed and the contents of the
folder 204 are deleted.
[0043] If additional web-based features 208 become desirable, the
registry is updated with information similar to that noted in FIG.
4. After the registry is updated, the availability of the web-based
feature is presented to the user on the next launch of the
client-based application 202.
[0044] The present invention has been described in relation to
particular embodiments, which are intended in all respects to be
illustrative rather than restrictive. Alternative embodiments will
become apparent to those skilled in the art to which the present
invention pertains without departing from its scope.
[0045] From the foregoing, it will be seen that this invention is
one well adapted to attain all the ends and objects set forth
above, together with other advantages which are obvious and
inherent to the system and method. It will be understood that
certain features and subcombinations are of utility and may be
employed without reference to other features and subcombinations.
This is contemplated by and within the scope of the claims.
* * * * *