System and method for printing to a printer without the use of a print driver

System and method for printing to a printer without the use of a print drive.

BACKGROUND OF THE INVENTION

It is well known that many devices can transfer data to an externally connected device (receiving device) in order to allow the receiving device to process the data in some particular way. It is often the case that the receiving device requires that the data is received in a particular form. As a result, the transferring device must often be specialty configured to convert data from one form to another so that the receiving device can interpret the data. This often involves having to develop and install special software in the transferring device as well as configuring the device to make use of the special software.

For example, consider a typical prior art personal computer that is connected to a network. Also connected to the network are a number of printers. In order for the personal computer to make use of each one of the printers,, the computer must be configured properly. This can involve the user having to locate print driver software for each one the printers, installing the driver software into the computer and then configuring the computer to make use of each instance of driver software. Having to perform these tasks can be complicated and can present a significant problem to the user.

Consider the magnitude of this problem as applied to printing over a large network or the Internet. It can be seen that in this type of environment, a personal computer can potentially be used to print to a very large number of printers. Unfortunately, having to configure the personal computer to make use of all these printers would be extremely difficult.

SUMMARY OF THE INVENTION

The present invention may be implemented as a computer implemented method of printing an image. The method includes selecting a set of data to be accessed in response to a generic access request; and receiving content from an external device. The content is executable by a computer to cause a computer to generate a generic access request to retrieve a set of data describing an image and further executable to use the retrieved set of data to generate a printjob. The method further includes executing the content so as to generate the generic access requests; responding to the generic access requests by retrieving the selected set of data; and executing the content so as to use the retrieved set of data to generate the print job.

DETAILED DESCRIPTION OF THE INVENTION

To facilitate a complete understanding of the invention, a description of several preferred embodiments is arranged within the following sections:

1. GLOSSARY OF TERMS AND ACRONYMS

2. DESCRIPTION OF A FIRST ILLUSTRATIVE EMBODIMENT

3. DESCRIPTION OF A SECOND ILLUSTRATIVE EMBODIMENT

1. Glossary of Terms and Acronyms

The following terms and acronyms are used throughout the detailed description:

Client-Server. A model of interaction in a distributed system in which a program at one site sends a request to a program at another site and waits for a response. The requesting program is called the “client,” and the program which responds to the request is called the “server.” In the context of the World Wide Web (discussed below), the client is a “Web browser” (or simply “browser”) which runs on a computer of a user; the program which responds to browser requests by serving Web pages, or other types of WEB content, is commonly referred to as a “Web server.”

Content. A set of executable instructions that is served by a server to a client and which is intended to be executed by the client so as to provide the client with certain functionality. WEB content refers to content that is meant to be executed by operation of a WEB browser. WEB content, therefore, may include (the following is a non-exhaustive list) one or more of the following: HTML code, JAVA script, JAVA Program(s) and C-“Sharp” code

Hyperlink. A navigational link from one document to another, from one portion (or component) of a document to another, or to a WEB resource, such as a JAVA applet. Typically, a hyperlink is displayed as a highlighted word or phrase that can be selected by clicking on it using a mouse to jump to the associated document or document portion or to retrieve a particular resource.

Hypertext System. A computer-based informational system in which documents (and possibly other types of data entities) are linked together via hyperlinks to form a user-navigable “web.”

Internet. A collection of interconnected (public and/or private) networks that are linked together by a set of standard protocols (such as TCP/IP and HTTP) to form a global, distributed network. (While this term is intended to refer to what is now commonly known as the Internet, it is also intended to encompass variations which may be made in the future, including changes and additions to existing standard protocols.)

World Wide Web (“Web”). Used herein to refer generally to both (i) a distributed collection of interlinked, user-viewable hypertext documents (commonly referred to as Web documents or Web pages) that are accessible via the Internet, and (ii) the client and server software components which provide user access to such documents using standardized Internet protocols. Currently, the primary standard protocol for allowing applications to locate and acquire Web documents is HTTP, and the Web pages are encoded using HTML. However, the terms “Web” and “World Wide Web” are intended to encompass future markup languages and transport protocols which may be used in place of (or in addition to) HTML and HTTP.

Web Site. A computer system that serves informational content over a network using the standard protocols of the World Wide Web. Typically, a Web site corresponds to a particular Internet domain name, such as “HP.com,” and includes the content associated with a particular organization. As used herein, the term is generally intended to encompass both (i) the hardware/software server components that serve the informational content over the network, and (ii) the “back end” hardware/software components, including any non-standard or specialized components, that interact with the server components to perform services for Web site users. Importantly, a WEB Site can have additional functionality, For example, a WEB site may have the ability to print documents, scan documents, etc.

HTML (HyperText Markup Language). A standard coding convention and set of codes for attaching presentation and linking attributes to informational content within documents. (HTML 2.0 is currently the primary standard used for generating Web documents.) During a document authoring stage, the HTML codes (referred to as “tags”) are embedded within the informational content of the document. When the Web document (or HTML document) is subsequently transferred from a Web server to a browser, the codes are interpreted by the browser and used to display the document. Additionally in specifying how the Web browser is to display the document, HTML tags can be used to create links to other Web documents (commonly referred to as “hyperlinks”). For more information on HTML, see Ian S. Graham, The HTML Source Book, John Wiley and Sons, Inc., 1995 (ISBN 0471-11894-4).

HTTP (HyperText Transport Protocol). The standard World Wide Web client-server protocol used for the exchange of information (such as HTML documents, and client requests for such documents) between a browser and a Web server. HTTP includes a number of different types of messages which can be sent from the client to the server to request different types of server actions. For example, a “GET” message, which has the format GET <URL>, causes the server to return the document or file located at the specified URL.

URL (Uniform Resource Locator). A unique address which fully specifies the location of a file or other resource on the Internet or a network. The general format of a URL is protocol: //machine address:port/path/filename.

2. DESCRIPTION OF A FIRST ILLUSTRATIVE EMBODIMENT

FIG. 1provides an architectural diagram illustrating a client-server system10that operates according a first embodiment of the invention. The client-server system10includes a client machine12, a first server machine14and a second server machine16connected via a network17. All of these devices operate in accordance with the invention. It is noted, however, that a client-server system10according to the invention may include more that one client machine and one or more server machines.

The client machine12includes a browser18, a storage module20, a display device21(e.g., a CRT monitor) and a user input device22(e.g., a keyboard). It is noted that the storage module20may represent any type of data storage device.

Additionally, the browser18includes an extension component (extension)24that provides an interface between WEB content executing in the Browser18and the storage module20. Further details regarding the functionality of the extension24are provided below

The first server machine14includes a first server30. The first server30can respond to receiving an appropriate request (over the network17) from the browser18by serving to the browser18a first WEB content32.

Similarly, the second server machine16includes a second Server34. The second server34can respond to receiving a request from the browser18by serving to the browser18a second WEB content36.

It is important to note that the client machine12, the first WEB content32and the second WEB content36are all in accordance with a system wide standard. This standard specifies “generic access instructions”, “generic access requests” and “target data”.

For purposes of this application, the term “generic access instruction” refers to an executable instruction that is intended to cause the executing device to generate generic access requests in order to access a set of target data. A generic access instruction, however, does not include the location of the target data itself and neither does the generic access requests. Importantly, the target data is pre-selected (typically by a user) and its location is determined from information that is maintained locally within the executing computer. For this reason, the target data for a particular computer is said to be “associated” with that computer. Thus, for example, the target data that is associated with computer “A” is the data that computer “A” will access in response to a generic access instruction. The target data that is associated with computer “B” is the data that computer “B” will access in response to the identical generic access instruction.

Furthermore, in the case wherein the target data represents an image, that image is referred to herein as the “target image”. In this simplified example, it will be assumed that all generic access instructions specified by the system wide standard mentioned above are for accessing data that describes an image.

In the present embodiment, the extension24is configured to respond to the execution of generic access instructions by generating corresponding (device specific commands) that causes the target data associated with the client machine12to be accessed. How the target data for the client machine12is identified is explained below.

It will be understood by a person skilled in the art, after a consideration of this document, that the extension24may be implemented by an application programming interface (API). The API being in accordance with the system wide standard mentioned above. Thus, the generic access instructions when executed may cause API calls to be issued to the API in order or effect the data access. These API calls are the generic access requests specified by the standard. It will also be recognized that there are many other ways (both hardware and software) to implement this same functionality. The present invention is not limited to any one way.

Both the first WEB content32and the second WEB content36includes generic access instructions. For illustration purposes, it is assumed that the first WEB content32is for causing a client machine to display the target image described by that machine's associated target data. The second WEB content36is for causing a client machine to generate a print job that describes the target image and to transmit the print job to a printer. This is done so as to cause the printer to print the target image.

FIG. 2illustrates an example of the operation of the client machine12. In this example, it is assumed that the client machine12provides a means for the user to define an image by providing input via the user input devices22. To provide this functionality, the client machine12may include a local application (e.g., a word processing application) that accepts input from a user to define an image (e.g., a single or multiple page document) or the user may be able to operate the client machine12to download the image from an external device.

Referring now toFIG. 2, it is assumed that a user provides input (via the user input device22) to the client machine12in order to define an image. The client machine12receives this input at step202and creates a set of (user defined) data23that describes the user defined image (step204).

Next, the client machine12provides the user with a selectable option to store the image data as a “target image” (Step206). This option may be provided to the user via a user interface displayed by the display device21. The user is assumed to select this option, and the client machine12receives this input at step208.

In response to this user input, the client machine identifies the set of (user defined) data23as the “target data” for the client machine12(step210). As a result, upon the client machine12subsequently receiving generic access instructions (e.g., see step216), the client machine12will respond to these instructions by accessing the set of data23. Thus, the set of data23is the target data associated with the client machine12. As shown, the set of data23is stored in the storage module20(step211).

Next, the browser18transmits an appropriate request to the first server machine14for the first WEB content32(step212). This may be in response to the user providing the browser18with appropriate input via the user input device22[The server30responds to the request from the browser18and transmits the first WEB content32to the browser18].

Upon receiving the first WEB content32, the browser18begins executing the instructions included in the first WEB content32(step214). The WEB content32includes a set of commands that are for causing the executing device to display the image represented by the device's associated target data. The set of commands include one or more generic access instructions and additional commands for causing the device to display the image represented by the device's associated target data. The execution of the generic access instructions results in appropriate generic access requests being generated that cause the target data to be retrieved.

As shown inFIG. 2, the Client Machine12responds to the generic access instructions to retrieve the target access data by retrieving the image data23(step216). This is by operation of the extension24. That is to say, the extension24generates an appropriate set of (device specific) commands to retrieve the image data23in response to the generic access requests generated at step214.

After the image data23is retrieved, the browser18causes the display device21to display the user defined image (step218).

FIG. 3illustrates the image that is displayed in step218if the set of data23describes an image302. The image302is an outline of the State of California. Alternatively,FIG. 4illustrates the image that is displayed in step218if the set of data23describes an image402. The image402is an outline of the State of Idaho.

Thus, from the foregoing, it can be seen that the first WEB content32enables a device to display a user defined image. Importantly, the image that is displayed is based on the target data associated with the client machine12. Thus, it can be seen, if the first WEB content32were executed on a different machine, the machine would display a different image (assuming the target data for that machine describes a different image).

For additional illustration purposes, lets now assume that the second server machine16is a printer that has defined capabilities. In this example, the printer includes duplex and staple capabilities.

FIG. 5is a flow diagram for illustrating an example of the operation of the client machine under this second assumption. Referring toFIG. 5, the user is assumed to define an image (step502) and identify the image as a target image (step504).

Next, the user inputs a request to the Browser18in order to cause the Browser18to transmit an appropriate request to the Second WEB server34for the Second WEB content36. The Browser18receives this user input and responds by transmitting an appropriate request to the second server34(step506). The second server34responds by transmitting the second WEB content36to the browser18.

The Browser18receives and begins executing the second WEB content36at step508.

Importantly, the second WEB content36includes generic access instructions for effecting the retrieval of the executing computer's target image. In addition, the WEB content36includes instructions to make use of the retrieved image to display a print dialog box that includes a post process image (i.e., a print preview image) of the target image (step510). It is emphasized that the display of the print dialog box is by operation of the second WEB content36as opposed to the local operating system or the Browser18.

FIG. 6illustrates a dialog box602that may be displayed at step510assuming the target image is the image302(i.e., the state of California). Importantly, it can be seen that the dialog box displays a set of selectable options602that are based upon the capabilities of the second server machine16. The set of selectable options602include a staple option604and a duplex option606.

The dialog box602also includes a print preview image608. The print preview image608is based, in part, upon the target image and the options that were selected by the user. In this example, it is assumed that the target image is the image shown inFIG. 3. In addition, it is assumed that the user has selected the staple option604and the duplex option606. Importantly, the print preview image608reflects these selections.

Referring again toFIG. 5, it is assumed that the user selects the print option620. The browser18receives this input at step512. In response, the second WEB content36causes the client machine12to generate a print job (step514). The print job describes the target image and includes the appropriate commands to cause the server machine16to print the target image using duplex printing and a staple option. The second WEB content36further causes the client machine12to transmit the print job to the second server machine16to be printed. Importantly the Second WEB content36is further configured to transmit appropriate requests to the second server machine16in order to determine when the print job has been completely printed. These requests are transmitted on a periodic basis. When a response is received indicating the second server machine16has printed the print job, the second WEB content36causes the client machine12to display this information.

Thus, from the foregoing, it can be seen that the second WEB content36enables a device to display a dialog box that is includes selectable options. The options being based upon the capabilities of an external device. In this case, the second server16. In addition, the WEB content36causes a device to display a post processing image using the target image. The post processing image is again based upon the capabilities of an external device as well. Further, the WEB content36displays the status information as the print job prints.

2. DESCRIPTION OF A SECOND ILLUSTRATIVE EMBODIMENT

FIG. 7illustrates the general architecture of a computing system702that is in accordance with the invention. The computing system702includes a personal computer704, a second computer706, a first WEB site708and a printer710. The printer710also functions as a WEB site.

All the devices depicted inFIG. 7are able to communicate over a communication link712. Furthermore, the communication link712may represent a network, a series of networks, a wireless network(s), the Internet, or any combination thereof.

The personal computer704may be any type of computing device that allows a user to interactively browse Web Sites and to perform the functions that are described below. For example, the personal computer704may be a personal computer that runs a local operating system, such as a version of MICROSOFT WINDOWS, NT, UNIX or LYNX, etc. As shown, the personal computer704includes a user interface714. The user interface714includes a display monitor716and a user input device(s)718for allowing the user to provide input to the computer704. In this example, the input devices718include a keyboard and a mouse. For purposes of the later discussion, it is noted that the personal computer704is used by multiple users, each having their own user profile. Two of these users, a first user720, and a second user724are depicted. It is assumed that each one of these users has his/her own user profile information and identifier (i.e., user name) stored in the personal computer704.

For purposes of the later discussion, a user presently logged in to the personal computer704at any point in time is referred to herein as the “active user”. Thus, if the first user720is presently logged into the personal computer704, that user is presently the “active user”.

2. a.) System Wide Standard

It is important to note that the devices depicted inFIG. 7are all in accordance with a system wide standard which is similar to the one described in the first embodiment. Accordingly, this second standard specifies a set of generic access requests that are intended to cause an executing computer to access a set of target data describing a target image. In this case, however, each user can have his/her own target image. The target data accessed in response to these requests at any point in time is the target data that is associated with the active user.FIGS. 8–11is used to illustrate this concept further.

FIG. 8is a flow diagram for showing, very generally, how the personal computer704can be operated to identify and store a set of target data. As indicated inFIG. 8, a user (e.g., the first user720or the second user724) is assumed to log into to the personal computer704(step802). The personal computer704responds in a conventional manner by retrieving the user's preferences and desktop configuration. In this manner, the user becomes the “active user”.

Next, it is assumed that the active user provides input that he/she wishes a particular image to be a “target image”. The computer704receives this input at step804. In response, the computer704responds by identifying the data describing the image as “target data” (step806). In addition, the computer704operates to link the target data to the identifier assigned to the active user720(step806). In this manner, the target data becomes associated with the active user.

Now considerFIG. 9andFIG. 10.FIG. 9is an abstract drawing of the personal computer704under the following scenario. First, it is assumed that the first user720has previously interacted with the personal computer to identify a first target image (target image #1). As a result, the data representing this image has been identified, by the personal computer704, as target data (target data #1). Additionally, the target data #1is linked to the identifier assigned to the first user720.

It is further assumed that the second user724has also previously interacted with the personal computer704and has identified a second target image (target image #2). As a result, the data describing this image is also identified as target data (target data #2). This second set of data, however, is linked to the identifier assigned to the second user724.

FIG. 10illustrates very generally the operation of the personal computer704in response to a generic access instruction, assuming the scenario depicted inFIG. 9. As illustrated inFIG. 9, a user is assumed to log in to the personal computer704(step1002). As a result, that user becomes the “active user”. Next, the computer704is assumed to execute a generic access1instruction (step1004). In response, the personal computer704accesses the target data that is linked to the active user's identifier (step1006).

Thus, if the first user720had logged into the personal computer704at step1002, the personal computer704would respond to the generic access instruction by accessing the target data #1. Conversely, if the second user724had logged into the personal computer704at step1002, the personal computer704would respond to the same generic access instruction in a different manner. That is, the personal computer704would access the target data #2.

2. b.) General Description of the Hardware and Software Components

Lets now consider some of the hardware and software components in each one of the devices depicted inFIG. 7.

FIG. 11is a high level block diagram of the first WEB site708. As shown, the first WEB Site708includes a processor1102, a memory1104, and an input/output (I/O) port1106. All these components are connected by one or more local interfaces1108. The I/O port1106links the WEB site708to the communication link712. The processor1102is used to execute the first WEB Server1110which is shown stored in the memory1104.

Also stored in the memory1104is a first WEB page1112and “document creation WEB content”1114. Both the first WEB page1112and the document creation WEB content1114are assigned a URL.

As will be described in greater detail below, the document creation WEB content1114is used to provide a “document creation service” to external devices. Importantly for this discussion, this content includes generic access instructions that are in accordance with the system wide standard described in section (2.a) of this document. When executed, these instructions result in generic access requests being generated in order to access a set of target data. As mentioned above, generic access instructions are instructions that do not include the location of the target data itself. The “generic access requests” generated from these instructions also do not include the location of the target data.

FIG. 12is a high level block diagram of the printer710. As shown, the printer710includes a processor1202, a memory1204, an I/O port1206, and a print engine1208. All these components are connected by one or more local interfaces1210. The I/O port1206links the printer710to the communication link712. The print engine1208includes the necessary hardware and firmware to print a document.

The processor1202is used to execute the print WEB Server1212and the printer control program1222which is shown stored in the memory1204. Also stored in the memory1204is a WEB page1216and “Document Print WEB content”1220. Both the WEB page1216and the Document print WEB content1220are assigned a URL.

As will be described in detail below, the document print content is used to provide a document printing service to external devices. Importantly for this discussion, this content includes generic access instructions that are also in accordance with the system wide standard described in section (2.a). When executed, these instructions results in generic access requests being generated.

FIG. 13is a high level block diagram of the second Computer706. As shown, the second computer706includes a processor1302, a memory1304, and an input/output (I/O) port1306. All these components are connected by one or more local interfaces1308. The I/O port1306links the second computer1306to the communication link712.

The processor1302is used to execute the Server1310shown stored in the memory1304. As will be discussed in greater detail below, the memory1304includes a reserved storage area1312for storing target data that is associated with users of the personal computer704.

FIG. 14is a high level diagram of the of personal computer704. As shown, the personal computer704includes a processor1402, a memory1404and an input/output (I/O) port1408. All these components are connected by one or more local interfaces1410. The I/O port1408links the second computer706to the communication link712.

As shown, the memory1404includes a reserved storage area1416and a WEB Browser1412. The WEB Browser1412includes an extension component (extension)1414. The processor1402is used to execute the WEB Browser1412.

Importantly, the extension1414is configured to respond to generic access requests (generated by downloaded WEB Content) by accessing the set of target data which is linked to the current active user. It will be clear to a person skilled the art that the extension1414may be an application programming interface (API) and the generic access requests can be API function calls. It is important to note, however, that the there are other ways to implement the functionality provided by the extension1414. The present invention is not limited to any one way.

It is also noted that in each of the computer's just described, the memory shown may include both volatile and nonvolatile components. Volatile components are those that do not retain data upon loss of power. Non-volatile components are those that retain data upon a loss of power.

Thus, each of the memories shown inFIGS. 7–14may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, floppy disks accessed via an associated floppy disk drive, compact disk(s) accessed via a compact disk drive, magnet tape(s) accessed via an appropriate tape drive, and/or other memory components (currently known in the art, or yet to be developed), or a combination of any two or more memory components.

In addition, it is also noted that in each of the devices just described, the processor shown may include one or more than one microprocessors. Furthermore, the local interface in each device may include, for example, one or more data buses and accompanying control buses.

FIG. 15illustrates how the various software components can communicate over the communication link712. To illustrate an aspect of the invention, it will be assumed that the personal computer704must communicate to the other devices shown through a conventional firewall1504. The firewall1504is used to filter out unwanted communication packets in a conventional manner. Thus, requests may be made by the personal computer704to external devices located on the other side of the firewall1504and responses to these requests from the external devices are typically allowed. Communications, however, initiated by these external devices to the personal computer704are not permitted.

The firewall1504, however, includes a conventional proxy server (hereafter “firewall proxy”) that allows the personal computer704to pass HTTP requests to the WEB server1110, the Server1310and the WEB server1212. As will be seen, by using the HTTP protocol to traverse the firewall1504in this manner, the personal computer704is able to make use of the services provided by the first WEB site708and the printer710. In addition, the personal computer704is able to store target data in the memory1304located in the second computer706. It is important to note that in other embodiments of the invention other communication protocols (either now existing or yet to be developed) can be used.

In response to user input, the WEB browser1412can request the first WEB page1112as well as the Document creation WEB content1114by transmitting appropriate HTTP requests (via the proxy) to the WEB server1110. Similarly, the WEB browser1412, can request the printer WEB page1216as well as the document print WEB content1220received from the WEB server1212. The WEB browser1412can also communicate one or more sets of data (via the proxy) to the server1310and can retrieve this data.

2.d.) Document Creation Service

FIGS. 16–18are used to illustrate how a user of the personal computer704can make use of the document creation service provided by the first WEB site708.

Referring first toFIG. 16, a user logs into the personal computer704and begins a user session (step1601). In this manner, the user becomes an active user.

Next, the user inputs an appropriate URL for the First WEB page1112. The WEB Browser1412receives this input at step1602and in response transmits (via the firewall proxy) an appropriate request for the page to the WEB server1110(step1603).

The WEB server1110receives the request and responds by transmitting the first WEB page1112to the WEB Browser1412(via the firewall proxy).

The WEB Browser1412receives this response from the WEB server1110at step1604and displays the received first WEB page1112at step1606.

FIG. 17illustrates the first WEB page1112as displayed by the browser1412. Referring briefly toFIG. 17, the first WEB Page1112includes a text portion1704and a “get document service” hyperlink1706. The text portion1704may include information regarding the document creation service provided by the first WEB Site708. The hyperlink1706is formatted such that, when selected by a user, the WEB Browser1412transmits an appropriate request to the WEB server1110for the Document Creation WEB content1114. In other embodiments, the first WEB Page1112may also display a cost to use the service as well as provide a means for the user to enter payment information (e.g., credit card information) to pay for the service.

Referring again toFIG. 16, it is assumed the user selects the get document service hyperlink1706and the browser1412receives this input at step1608. In response to this input, the browser1412transmits an appropriate request to the Web Sever1110(via the firewall proxy) for the Document creation WEB content1114(step1610). The browser1412receives and begins executing the WEB content1114at step1612.

FIG. 18illustrates the operation of the Document creation WEB content1114while being executed at step1612. Referring now toFIG. 18, the content1114first causes the display device716to display a user interface (step1802). The user interface accepts input from a user (via the input devices714) so as to allow the user to define an image.

The WEB content1114receives these inputs at step1804and creates a set of data describing the image (step1806). In this example, the data is created in a file format that is device independent. That is to say, the data represents the image in a manner that is independent of the WEB content, the local operating system and hardware used to generate it. One example of such a format is the format known as “PDF” (Portable Document Format).

Next, the WEB content1114provides a means for the user to indicate whether he/she wishes the image defined at step1804to be saved as a “target image” (step1808). For example, the user interface displayed at step1802may include one or more selectable options or a pull down menu for providing a user a means to indicate this desire.

The WEB content1114is assumed to receive this indication at step1810. In response to this input, the WEB content1114generates generic access requests in order to cause the data generated at step1806to be stored (step1822). The Extension1414is responsible for responding to these requests.

FIG. 19is a flow diagram for illustrating the operation of the extension1414to respond to the generic access requests generated at step1822. Referring now toFIG. 19, the extension1414receives the generic access requests at step1902. In response, the extension1414causes the target data created at step1806to be stored in the reserved storage area1312of the second computer706(step1904). This is accomplished by the extension1414communicating the target data over the communication link712to the server1310. It is noted that because the HTTP protocol is used, the extension1414is able to communicate the target data through the firewall1504.

The server1310responds by storing the target data in the reserved storage area1312. It will be assumed that the first target data1502represents this target data.

In addition to communicating the target data1502to the server1310, the extension1414(preferably) also stores the location of the first target data1502so that the data can later be accessed (step1906) and links this location to the active user's identifier (step1908).

2.e.) Printing Service

FIGS. 20–26are used to illustrate how a user of the personal computer704can make use of the printing service provided by the printer710. In this section, it will be assumed that the conditions depicted inFIG. 20Aexist.

As indicated inFIG. 20A, the first user720has made use of the document creation service to identify a target image (target image #3). The data (target data #3) that describes this image is stored in the internal memory of the second computer706. Furthermore, the second user724has also made use of the document creation service to define a target image (target image #4). The data (target data #4) that describes this second image which is also stored in the internal memory of the second computer706.

Referring now toFIG. 20B, one of the two users logs into the personal computer704(step2002) and executes the WEB browser1412. The user is then assumed to provide the URL of the printer WEB page1216. The WEB browser18receives this input at step2004.

In response to this input, the Browser1412transmits an appropriate request to the WEB Server1212for the Printer WEB page1216.

The WEB server1212receives this input and responds by transmitting the printer WEB page1216to the WEB Browser1412.

The WEB Browser1412receives and displays the printer WEB page1216at step2008.

FIG. 21illustrates the printer WEB page1216as displayed by a browser. Referring briefly toFIG. 21, the printer WEB page1216includes a text portion2104and a “get document print service” hyperlink2106. The text portion2104may include information regarding the document printing service provided by the printer710. The hyperlink2106is formatted such that, when selected by a user, the WEB Browser1412transmits an appropriate request to the WEB server1212for the Document print WEB content1220. In other embodiments, the printer WEB page1216may also display a cost to use the printing service and may provide the user with a means to enter payment information to make use of the service.

Referring again toFIG. 20B, it is assumed that the user selects the get print service hyperlink. The WEB Browser1412receives this input at step2010and in response transmits a request for the WEB content1220to the WEB server1212.

The WEB server1212receives this input and responds by transmitting the Document Print WEB content1220to the WEB browser1412.

The WEB Browser1412receives the print WEB content1220and begins executing it at step2014.

FIG. 22AandFIG. 22Billustrate the operation of the print WEB content1220(while being executed at step2014). First, the print WEB content1220causes generic access requests to be generated in order to retrieve a target image (step2202).

FIG. 23illustrates the operation of the extension1414to respond to the generic access requests generated at step2202. Referring briefly now toFIG. 23, the extension1414receives these generic access requests at step2302. In response, the extension1414retrieves the set of target data that is linked to the active user (step2304). [It is noted that in other embodiments, generic access requests may define a format for the retrieved data. This desired format is then communicated to the server and the server provides the target data in the desired format. Importantly, the desired format may be different than the originally stored format. Thus, for example, the set of target data may be stored as a PDF format and returned, for example, in a JPEG format. This may be advantageous in situations wherein a second form of the target data is better suited for printing, displaying, etc]

It can be seen that, for example, if the first user720is presently logged into the personal computer704, the extension1414responds by retrieving target data #3(stored in the second computer706). This is accomplished by transmitting appropriate HTTP requests for this data to the server1310. The server1310responds by transmitting this data to the extension1414. Conversely, if the second user724is presently logged into the personal computer704, the extension1414responds by retrieving the set of target data #3.

The extension1414then operates to provide the retrieved target data to the Document Print WEB Content1220in an appropriate manner (step2306).

Referring again toFIG. 22, the WEB content1220receives the retrieved target data (from the extension1414) at step2204. In response, the WEB content1220causes the personal computer704to display a print dialog box with a print preview image (step2206).

FIG. 24illustrates an exemplary print dialog box2402that may be displayed by the personal computer704at step2206. As shown, the dialog box2402displays a print preview image2404that allows the user to define particular print settings. In this example, the print dialog box2402allows the user to enter the number of copies, select a duplex option and/or a collate option.

Importantly, these options are based upon the capabilities of the printer710. The print preview image that is displayed is based, in part, upon the retrieved target image (i.e., the target image #3or the target image #4) as well as the options selected.

Referring again toFIG. 22, the WEB content1220is assumed to receive the user input indicating that certain settings have been selected at step2208and updates the dialog box2206accordingly.

FIG. 25illustrates how the print dialog box2402would be updated assuming that the user has selected the duplex option and has entered “4” as the number of copies he/she wishes printed. It is noted that the print pre-view image reflects the duplex option by an icon2502.

Referring once again toFIG. 22, it is assumed that the WEB content1220receives input indicating the user has selected the print button2410. The WEB content1220responds to this input by generating a print job and by transmitting the print job to the WEB server1212(steps2214and2216). The print job includes the target data and also includes commands that cause the printer710to print the image according to the inputted settings.

The WEB server1212receives the print job and provides the print job to the printer control program1222. The printer control program1222commands the print engine1208to print the target image according to the settings described by the print job.

After the print job is transmitted to the printer, the WEB content1220displays a “print status page” that shows the status of the print job in a dynamic fashion (step2218). This is accomplished by the WEB content1220obtaining certain status information from the printer710regarding the printing of the print job (step2220).

It is noted that the step2220may be accomplished by using a number of techniques. For example, PML (Peripheral Management Language) polling may be used. Optionally, the techniques taught in the pending application entitled “Method and Apparatus for Providing Print Job Status”, may be used. That application, Ser. No. 09/702,766, was filed Nov. 1, 2000 in the US Patent Office. That application is incorporated herein by reference.

As the status information is received (step2222) back from the printer710, the WEB content1220updates the status page so as to reflect the updated information (step2224). This process continues until the print job is completed (step2226).

FIG. 26provides an example of a status page2602that may be displayed at step2218. As shown, the status page2602includes a first field2604, a second field2606and a third field2608. The first field2604displays the number of copies that has been printed. The second field2604displays the number of pages printed for the copy that is presently being printed.

The third field2608describes certain problems with the current print job encountered during printing. For example, if the printer710reports that a paper jam has occurred, this information can be displayed in this third field.

Additionally, the status page2602includes a pause button2610and a continue button2612. If the pause button2610is selected, the WEB content1220sends an appropriate message to the WEB server1212indicating that the printing of the present job should be paused.

The WEB server1212receives this message and communicates it to the printer control program1222. The control program1222responds by pausing the printing of the present print job.

After the pause button2610has been selected and the printing of the present print job has been paused, a user can then select the continue button2612. When the continue button is selected, the Doc. Print WEB content1220sends an appropriate message to the WEB server1212indicating printing should be resumed.

The WEB server710receives this message and communicates it to the printer control program1222. The control program1222responds by causing the printing of the present print job to resume.

From the foregoing, it will be appreciated that a computing system according to the invention represents a significant advance in the art. For example, as shown above, a personal computer according to the invention can provide a user with dynamic updates of printer status while the printer is printing a print job. This can be accomplished by utilizing an agent of the printer itself (i.e., the WEB content) which executes on the personal computer itself. Thus, in this manner, the printer itself provides its own status information, via the printer's agent.

It should be noted that the flow charts provided in the FIGS referenced above, show a specific order of steps it is understood that the order of these steps may differ from that which is depicted. Also, two or more steps may be performed concurrently or with partial concurrence. It is understood that all such variations are with the scope of the invention.

Additionally, although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. Accordingly, the invention is limited only by the claims and equivalents thereof.