Print by reference service communication protocol and interface

A print service, preferably realized as a web site or part of web site, supports print by reference operations. Software hosted or accessible by the web site performs the required functions. The print service, using a protocol, accepts a reference to print content, resolves the reference, obtains the print content, transcodes the print content into a print device ready format, and allows the print client access to the transcoded print data. The print service method realized by such a web site provides commercial potential for web services and content provider partnerships, as a preferred use of the print service might commence with a user of a portable wireless device obtaining a reference to print content while web surfing, communicating that content, for example via a Bluetooth wireless connection to the print device, which then uses the print service to resolve and process the print by reference communication.

FIELD OF THE INVENTION

A field of the invention is print servers. Other fields of the invention include print data services, wireless portable devices, and web based services. The invention provides support of print by reference operations in which print content is addressed by a reference, such as might be supplied by a wireless portable device or a print device.

BACKGROUND OF THE INVENTION

The traditional model for print operations is the pushing of content to a print device from a device. Most often, this involves a computer communicating with a print device, e.g., a printer or multi-function peripheral including a print function. The communication may follow the format of wired connection interface, such as the case where a print device connects to a print device over a serial or parallel computer port. The communication might also follow a wireless connection such as that used for communication through an infrared port. The basic operation in either case involves a device, e.g., a computer, linking to a computer, converting content into a format acceptable to the print device, and then transferring the data to the print device. As an example, a computer printing a Microsoft Word document addresses a print device, converts the document data and format information into a print device ready format, and pushes the data to the print device. Protocol standards handle the communication between the print device and the device pushing the data to be printed. Print servers, typically software resident or cooperative with a data generating program, convert data into a native print device format.

The traditional model limits print operations in a number of ways. One important limitation is the inability of the print device to be used by devices lacking the ability to convert data into a print device ready format. Even if this inability were overcome by some manner, another limitation concerns the practical limits of the types of devices and device connections that may utilize a print device. Specifically, devices that lack sufficient memory resources to store data to be printed are, as practical matter, unable to make effective use of a print device. In addition, devices that lack a sufficiently fast or sufficiently reliable communication link to the print device also may not effectively use the print device. A particular class of devices that might lack sufficient memory for print content, or a fast enough device-print device interface, or a reliable enough device-print device interface, are portable wireless devices. Personal digital assistants (PDAs), cell phones, wireless data terminals and other wireless devices would have increased usefulness, and add increased usefulness to print devices, if the wireless devices had efficient print capabilities.

SUMMARY OF THE INVENTION

Print by reference expands printing and the usefulness of wireless devices and print devices by permitting a reference to data content that is to be printed to be passed from a device to initiate a print job. The invention concerns a service to support the print by reference operation. The service method accepts a reference to content, transcodes the content, and establishes the transcoded content to be taken for printing.

In a preferred embodiment, a print service of the invention executes a method that accepts, from a print client, a reference to print content targeted for printing from a location indicated by the reference. The reference is resolved to determine the location indicated by the reference. Print data is obtained from that location and transcoded into a print device ready format. The print client is allowed to access print ready formatted data, which may be transferred to the print client in response to a request from the print client.

In a preferred embodiment print service of the invention, preferably realized as a web site or part of web site, software hosted or accessible by the web site performs the required functions. A print client may be a print device, for example, that has an Internet connection. A print client might also be a portable wireless device, for example, which then might transfer data transcoded by the print service to a print device. The print service method provides commercial potential for web services and content provider partnerships, as a preferred use of the print service might commence with a user of a portable wireless device obtaining a reference to print content while web surfing, communicating that content, for example via a Bluetooth wireless connection to the print device, which then uses the print service to resolve and process the print by reference communication. Similar commercial potential is possible with respect to print device manufacturers and the manufacturers of portable wireless devices, such as personal digital assistant (PDA) devices.

The protocol and operational structure of the interface to the remote print service also forms an aspect of the invention. In general, the interface formed by the protocol carried out by a remote print service of the invention should provide for access by many clients. The interface must carry out a basic level of reference resolution and should provide enhanced print by reference features for clients capable of taking full advantage of the print service through use of a protocol of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A print service method is provided by the invention for supporting print by reference operations being conducted by a print device. In a preferred form, the print service method is provided through a web site that is used by a print device handling a print by reference operation. The print service might also be part of print device software, as another example. Print device software performing the method of the invention might therefore be part of the software executed in printers or multi-function peripherals, as well as peripheral print devices such as HP JETDIRECT® devices, including internal JETDIRECT® cards or external JETDIRECT® plug in print server devices. A device including software for executing the print service method of the invention generally requires direct or indirect access to print content to be referenced by print by reference operations. The most important type of content and the content likely to be referenced in the print by reference operations is accessed via the Internet, and the preferred direct or indirect connection is therefore a direct or indirect Internet connection. Similarly, a particular important print service of the invention is accessed via the Internet and provides a protocol and interface to serve print clients.

In the case of the remote print service accessed via the Internet, the transcoded data transfer to the print device is preferably conducted with the print service setting up a Universal Resource Locator address for the transcoded data and then communicating the Universal Resource Locator address for the print data to the device. A protocol of the invention for the remote print service provides access for clients in various levels of sophistication dependent upon client capabilities. At a minimum, the print service permits connection for a client to pass a basic reference to print content. A protocol forming the interface to the print service also preferably supports a higher level of service, allowing a client to enrich operations and the printing of reference content by parameters made available to be set in the protocol.

FIG. 1shows a preferred environment for implementing the print service method and protocol of the invention. A print device10accesses a print service of the invention, either via the Internet to a web site print service12, or through another connection to a local print service14that may comprise software in the print device10when the print device10is carrying out a print-by-reference operation. While the local print service14is shown as an external device to the print device10, it may also be internal to the print device. For example, it may be native software or an add on software. It might also be installed as a firmware card.

The print device uses the print service12or14to resolve and access the content to be printed. With the print device10being accessible to a portable wireless device16, the print service12or14can therefore aid a print by reference operation initiated by the portable wireless device16. From the perspective of the print service12or14, either of the print device10or portable wireless device16may be viewed as a print client for a print by reference operation irrespective of whether the “print client” is directly or eventually making use of the print service12or14. A likely scenario involves the portable wireless device16accessing a content provider18, typically a web site over the Internet. The web site might include a link to print content, such as a “print-this” link. If selected, the print by reference target is transmitted to the portable wireless device16, which then can commence a print by reference operation with the print device10. In the preferred environment ofFIG. 1, the portable wireless device uses Bluetooth wireless20to communicate a print by reference target to the print device10or, perhaps, directly to the print service12or14. The print device10then accesses the print service12via an Internet interface22. However, the print services12or14may be accessed in other manners including, for example, cellular network communications or RF transmissions.

Bluetooth is a preferred wireless RF standard developed by a technology industry consortium made up of 3Com, Ericsson, IBM, Intel, Agere, Microsoft, Motorola, Nokia, and Toshiba with a mission of creating a standard wireless protocol. More information, including protocol specifications, can be obtained on the Bluetooth website: www.bluetooth.com, with the content available from this and linked websites incorporated herein by reference. The current Bluetooth protocol has an operable range of about 10 meters, but may sometimes prove to have greater range. As an example software/device for the underlying Bluetooth communication usable by the print services12and14, the print device10or the portable wireless device16, a Bluetooth PC card was unveiled by 3Com on May 29, 2001. The card follows the new Bluetooth 1.1 specification and uses 3Com's connection manager software.

Other example communication protocols suitable for practice within the scope of the invention that have available commercial support are those specified by IEEE 802.11 standard. 100 meters is the optimal 802.11 maximum range, but 802.11 can work at around 300 meters. However the data rate goes from 11 Mega bits per second to about 1 or 2 Mega bits per second as range increases. Bluetooth power class III is designed for 10 meters at low power. Bluetooth Power class I uses 100 milliwatts and can go about 100 meters. Artisans will also appreciate that wireless protocols other than 802.11 and Bluetooth, e.g., infrared, might also be used and that certain preferred features, e.g., an OBEX connect are therefore unique to the preferred Bluetooth embodiment since the Bluetooth protocol requires a CONNECT while OBEX does not.

For example, the wireless device16typically has Internet access. This Internet access may be through a cellular network interface24. The print service12, preferably a web site, would have an Internet interface26. The print service12may therefore be realized as a web site by software resident in a web host. The content provider18is also typically a web site, and therefore would have an Internet interface28, as well. The local print service14requires an Internet interface30to access a content provider that is a web site. The interface30may be the same interface used by the print device10.

A number of paths for passing a print reference and channeling print data and print services are therefore possible. Alternate preferred embodiments include the use of the local print service14with either the print service14or the portable wireless device16accessing the content provider18. Either of the print services may be accessed by the print device10or the portable wireless device16.

Referring now toFIGS. 1 and 2, either one of the print services12or14accepts a reference32to print content targeted for printing from a location indicated by the reference. The print service14accepts the reference, for example, directly from the print device10. The print service12, on the other hand, accepts the reference via Internet interface26. The print service12, however, may also receive the reference32from a wireless connection to the portable wireless device16. This connection might be via Bluetooth20or the cellular network interface24.

A print service needs to be discovered or located by a print device or portable wireless device before it can be used, which thus may be a preliminary step to accepting a reference. Discovery may occur in a number of different ways. Some preferred possibilities are the following models for print service discovery. The location of a print service may be pre-configured34into a print device10or portable wireless device. Another alternative is for a print service to be registered36into a service registry. Print devices and portable wireless devices can use the registry to locate a print service based on some set of search constraints. Alternate search based discovery38is also possible, e.g., any form of search engine. A print service can also be located40via network discovery protocols.

The print service12or14resolves a reference42to determine the location indicated by the reference, typically a content provider18accessible by a Universal Resource locator. In that typical case, the reference will be a Universal Resource Locator that addresses print content targeted for printing. The accepted reference may be an individual reference, or multiple references. Accepting a reference thus may be accepting a reference list of individual references that individually reference print content stored at a location, e.g., a list of multiple Universal Resource Locators to resolve22. Preferably, each reference in a list is processed separately followed by complete sequential processing of remaining references in a list.

The print service12or14, after resolving a reference22, then obtains the print data44from the location indicated by the reference. The print service12or14transcodes the print data46into a print device ready format, then allows access to the transcoded print data30. Transcoding is translating obtained data into a form that can be used for printing. Preferably, the transcoding changes data into form independent of the print device type (brand) used. Preferred example formats include HTML, ASCII, and PDF. Alternatively, the transcoding can translate the data into print formats dependent upon the type of print device. Dependent formats may be the proprietary formats used by different print device manufacturers. Recognition of an appropriate format is a concern with the remote print service12, but the print service14embedded within or peripheral to a particular print device10can likely have transcoding tailored to the particular print device. The transcoded print data is transferred48to the print device10in response to a request from the print device10. In the case of the remote print service12accessed via the Internet, the transcoded data transfer to the print device10is preferably conducted with the print service setting up a Universal Resource Locator address for the transcoded data and then communicating the Universal Resource Locator address for the print data to the device.

At the time of accepting a reference20, the print service12or14also may initiate a control communication50with the print device10. As seen inFIG. 3, a control channel52and data channel54may be separate. InFIG. 3, the control communication is preferably conducted via an argument resolution protocol56namely, the SOAP protocol (Simple Object Access Protocol). The preferred data channel54uses an HTTP protocol. The control channel52is convenient for passing arguments and responses. Such a need for responses can occur when accessing the location including the print content, e.g., the content provider18. Print service communications are layered on top of HTTP (HTTPS when secure access is used). HTTP is preferred because it provides an efficient and ubiquitous transport mechanism.

SOAP is preferably used to define three actions that are exported by the print service, job create, status check and job cancel. These actions along with generic HTTP access (HTTP GET and POST) support the requirements for the remote print service12. A client initiates a print job using CreatePSJob60. This action provides the print service12with information required to create a print job and to begin the processing of a print operation.

In a preferred protocol, the print service12creates a unique Job Identifier (JobID) that can be used in subsequent operations to identify the print Job. CreatePSJob supports both print by reference and information upload as a means of providing content to the print service12. If the client is printing a reference then this is sent the Reference argument of action. If the client plans to upload information to the print service it does not specify a reference argument in the action request. When the client indicates that it wants to upload the information to be printed the client can include a DataSink URL in the CreatePSJob response. The client must then send the information to the print service12using a separate HTTP POST operation to the DataSink URL. The print service12also returns the JobID and a PrintSrc URL to client. The PrintSrc URL is used to retrieve the print ready information once the print service12has transcoded.

The reference, e.g., web site, might issue a security challenge as the print service12or14attempts to obtain the print data. In that case, the print service12or14accepts a security challenge44(FIG. 2) from the print data content location, e.g., content provider18. The SOAP protocol56can be conveniently used to conduct a security communication62(FIG. 2). This communication62might pass on the security challenge to the print service12or14obtain information necessary for response, if the information was not initially provided to the print service12. When the print service12or14has information necessary to respond, it then may respond to the security challenge.

The print service12or14may respond to the security challenge in a number of preferred ways. Access credentials may be included in the reference to content that is provided to the print service, and are thus received at the time that the print service accepts a reference in step32. If not initially provided when the print service accepts a reference, the print service may pass the challenge back to the client who then may re-submit the request with the correct security information included. Another option is for the print service to support privacy through the encryption of the information exchanged between the print service and client, e.g. between print service12and the print device10. This encryption can be imposed at the link level, e.g., HTTPS or IPSec, at the time of connection set-up. Since this level of security occurs at the link level it has no affect on the method of print by reference communications between the print service12and client, i.e., the print device10or the portable wireless device16. Another approach is to have the information encrypted above the link level. An encryption/decryption and/or identification key can be used in print by reference communications with the print service.

The control channel also may be used to conduct job control. Job control allows the print service12to manage individual print by reference jobs, and allows handling of multiple jobs from separate clients. Multiple job handling is important if the print service12is to serve independent business services. For example, a print service web site hosting a print service of the invention for print by reference operations might be a paid service. Such a print service web site might alternatively be a supplement to some other commercial transaction. Thus, a purchaser of a print device10or a portable wireless device16, or a purchaser of web services or wireless airtime might obtain access to a print by reference print service web site that implements the invention.

Job control is especially important for the remote print service12, as it is likely to handle multiple jobs and deal with diverse print devices and portable wireless devices as different clients.FIG. 4generally illustrates a preferred job control communication. Preferably, when the print service accepts a print by reference request, a print job is created64and a job identifier is assigned66to the print job. The job identifier is communicated to the print device68, or alternatively a portable communication device if the portable communication device is communicating with the print service. Subsequent print control operations through the control channel32are conducted using the assigned job identifier to link operations to a particular print job. The print service12can preferably support a reflected user interface (RUI). The RUI is a web page used to control the print job using a web form that is reflected back to the user of the portable wireless device16. The user would then be able to select options or fills out the form to provide job control parameters. The job identifier enables, for example, the print service to include the job identifier as a state variable that the print device10or the portable wireless device16returns as a result of selecting a hyper link included in the RUI web markup.

It is preferable for the print service12or14to permit a client print device or portable wireless device to set attributes. Thus, the print service12or14should accept print attributes70. The attributes may determine the outcome of the print operation. The print service should also provide for default attributes72in the event that some or all attributes are not provided by a print service client, i.e., the print service12or14supports a standard set of print options. Extensions to the standard set of print options should be supported74to allow for evolution and support of differentiated vertical markets. Supporting extensions allows for updating of the print service12or14to account, for example, for new print formats and new print devices.

The print service12or14also should obtain some understanding of the client's capabilities76. The step of transcoding46translates the print data into a print device ready format, thus requiring some knowledge of the capabilities of a particular print device client and its configuration in order to provide print ready information. A client, i.e., a print device or portable wireless device, should also be provided with some forms of job control78. Examples are the ability to query the status80(seeFIG. 3) of a print job or to cancel a print job82(seeFIG. 3).

Security of the remote print service12can be a separate issue from the security of the content provider18. A remote print service may need to protect itself from unauthorized use. To support this need the print service can provide a separate security check80for the print service to discover the identity of the client device to enforce access control. The server security check80is preferably conducted at the time that a print job is created64. One option for the security check58is to require the client to provide credentials60in order to access the print service12. The security check can be similar to the manner for checking security in response to a challenge by the content provider18. Billing may be addressed with the security check for the print service, as the print service12or14may require billing ID82for use by a client. The print service12or14could use any standard or widely used billing models for a financial clearance conducted as part of a security communication62.

In the case of the remote print service12accessed via the Internet, the transcoded data transfer to the print device10is preferably conducted with the print service setting up a Universal Resource Locator address for the transcoded data and then communicating the Universal Resource Locator address for the print data to the device. The protocol and operational structure of the interface to the remote print service12also forms an aspect of the invention. In general, the interface formed by the protocol carried out by the remote print service should provide for access by many clients. The interface must carry out a basic level of reference resolution and should provide enhanced print by reference features for clients capable of taking full advantage of the print service through use of a protocol of the invention.

The general structure of the preferred interface is shown inFIG. 3. Aspects of the preferred protocol executed by the interface will now be discussed. The primary use of the print service12and the interface thereto is the print by reference model where a print service client sends a reference to the print service. The print service12may optionally support other types of uses, e.g., a use model where content is uploaded from the print service client. The operations for the latter use may be identical after the print content is obtained from the client, whereas the former case requires the print service to obtain the reference content. This more complete use of the protocol is described to illustrate the protocol and interface.

The following table shows an example of an interaction between a print service client (Printer, portable device, e-service) and a Print Service.

ClientPrint ServiceClient starts Print job byCreatePSJob →sending a CreatePSJobaction.←CreatePSJobPrint Service receivesResponserequest. Determines it isa Print by reference Job(because a Referenceargument exists). ThePrint Service allocates aJobID and creates aPrintSrc URL. Sends aresponse to the clientand starts to process therequest. Printerinformation is obtainedfrom the PrinterIDspecified.Client tries to access theprint data using a HTTPGet on the PrintSrc urlClient waits before re-trying the request asecond timeClient processesinformationPrint Service will cachethe Job informationincluding the Printabledata for a time perioddetermined by the PrintService implementationbefore deletion.

The interaction shown above described the printing of a reference. The reference was included in the initial CreatePSJob request. In this example CreatePSJob was the only SOAP action used. The next example will demonstrate content upload and the use of the Status action.

As seen from the above table, CreatePSJob is initiated by a client identifying a web site for the print service that is being interfaced, e.g., www.printersxxx.com. A SOAP action then follows in the preferred embodiment. SOAP connection being established though the conventional SOAP protocol completes a client/host connection, and the reference for a print by reference operation may then be passed from the client to the host print service. In the preferred embodiment, the required reference targeting print content to be printed is an XML reference including, for example: a name for the content (PrintName), the URL address for the content, a number of copies to be printed, an identification of the type of printer to print the content, security codes for accessing the content, billing codes, etc.

Uploading content from the client accessing the print service follows a similar sequence in the preferred embodiment. The following table shows a printing example utilizing a content upload from the client to the print service12, and also illustrates some preferred operations for job control, i.e., the previously mentioned print status request and print job cancel.

ClientPrint ServiceClient starts Print job byCreatePSJob →sending a CreatePSJobaction.←CreatePSJobPrint Service receivesResponserequest. Determines thatthe client needs toupload the content. ThePrint Service allocates aJobID and creates aPrintSrc URL and aDataSink URL. Sends aresponse to the clientand waits for the client tosend the data. Printerinformation is obtainedfrom the PrinterIDspecified.Client sends the Data tothe print service using aHTTP POST to theDataSink URLPrint Service accepts thecontent and starts toprocess the informationClient Sends a Statusaction to learn theprogress of the operationPrinter has completedprocessing and sends anAppropriate Response tothe Status actionClient uses a HTTP GETto the PrintURL to obtainthe Print dataPrint Service hascompleted processingthe reference andresponds to the GETrequest with the dataClient processesinformationPrint Service will cachethe Job informationincluding the Printabledata for a time perioddetermined by the PrintService implementationbefore deletion.

The example above shows the use of content upload and the status request action. The status request action can be used to provide more detailed feedback on the progress of a print service operation, preferably through the argument resolution protocol, e.g., SOAP, separate from the channel, e.g. HTTP, on which print content is passed. The argument resolution protocol also preferably supports a cancellation of a print job by the client. The following example shows the use of the cancel action to stop print operations

ClientPrint ServiceClient starts Print job byCreatePSJob →sending a CreatePSJobaction.←CreatePSJobPrint Service receivesResponserequest. Determines it isa Print by reference Job(because a Referenceargument exists). ThePrint Service allocates aJobID and creates aPrintSrc URL. Sends aresponse to the clientand starts to process therequest. Printerinformation is obtainedfrom the PrinterIDspecified.Client cancels the PrintJob using the CancelactionPrinter receives canceland stops processing theJob. The printer reclaimsall resources associatedwith the Job. Sends aResponse back to theclient.