Open Printing

Requirements

Version 0.25

September 25, 2003

fsg-open-printing-requirements--V0025-092503.sxw

Authors (alphabetical)

Authors	Company	Email
Claudia Alimpich	International Business Machines	alimpich@us.ibm.com
Mark Hamzy	International Business Machines	hamzy@us.ibm.com
Tom Hastings	Xerox	hastings@cp10.es.xerox.com
Norm Jacobs	Sun	Norm.jacobs@sun.com
Till Kamppeter	Mandrake	till.kamppeter@gmx.net
Ira McDonald	High North	imcdonald@sharplabs.com
Glen Petrie (Editor)	EPSON	glen.petrie@eitc.epson.com

Abstract

The Free Standards Group (FSG) Open Printing Requirements provides the list of derived and implied architectural, system and subsystem requirements. This document defines the use-cases and behind-the-scene functionality leading to the requirements.

Copyright 2003, Free Standards Group

Copyright Notice

Copyright (c) 2003 Free Standards Group

Permission is hereby granted, free of charge, to any person obtaining a copy of this documentation files, to deal in the documentation without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the documentation, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the documentation.

THE DOCUMENTATION IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DOCUMENTATION OR THE USE OR OTHER DEALINGS IN THE DOCUMENTATION.

Table of Contents

1.Introduction < ??? >	4

2. Terminology and Acronyms <all>	5

2.1 Conformance Terminology < All >	5

2.2 Other Terminology <all>	5

2.3 Acronyms < All >	6

3. Open Printing Use Models (Informative) < ??? >	7

3.1 Use Model 1: Mobile Printing < Ira >	7

3.2 Use Model 2: PDA Printing < Ira >	11

3.3 Use Model 3: Desktop Personal (Consumer) Printing < Mark >	12

3.4 Use Model 4: Desktop Small-Office/Home-Office Printing < Norm >	13

3.5 Use Model 5: Desktop Office Printing < Till >	14

3.6 Use Model 6: Central (Print Room) Office Printing < Glen >	15

3.7 Use Model 7: Desktop File (Direct) Printing < Glen >	16

3.8 Use Model 8: Pay for Print Printing < Mark/Claudia >	17

3.9 Use Model 8: Print on Demand < Claudia >	18

3.10 Use Model 9: Production (Transactional, Statements) Printing < Tom/Ira >	19

3.11 Use Model 10: Graphics Art (non-offset) Printing < TBD >	20

4. Open Printing Requirements < ??? >	21

5. Other Considerations	22

5.1 ???? < ??? >	22

6. Normative References	23

7. Informative References	24

APPENDIX: X CHANGES < Editor >	25

Introduction < ??? >

Terminology and Acronyms <all>

Conformance Terminology < All >

In this document, the uppercase terms “MUST”, “MUST NOT”, “REQUIRED”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” are intended to be interpreted as described in [RFC2119]

In this document, each conformance statement uses one of the terms:

Term	Meaning
MUST	Implementation support is REQUIRED for conformance to this specification.
SHOULD	Implementation support is RECOMMENDED for conformance to this specification.
MAY	Implementation support is OPTIONAL for conformance to this specification.

In this document, each operation, object, or attribute is defined as:

Term	Meaning
REQUIRED	Each implementation MUST support object operations or attributes.
RECOMMENDED	Each implementation SHOULD support object operations for interoperability
OPTIONAL	Each implementation MAY support object operations or attributes .

Other Terminology <all>

Term	Meaning

Acronyms < All >

Acronyms	Meaning	Source
PWG	Printer Working Group	http://www.pwg.org/
FSG	Free Standards Group	
FSG/OP	Free Standards Group – Open Printing	http://www.openprinting.org/

Open Printing Use Models (Informative) < ??? >

Use Model 1: Mobile Printing < Ira >

Mobile printing by reference with document data transformation

Example Use Model:

Alice goes shopping for a new digital camera to the Fine Camera store downtown. She takes along a magazine review of the new Bright 3000. The sales clerk at the Fine Camera store tells Alice that she would probably prefer the Orion 777. Alice uses her mobile handheld to browse the Web site of Bright and find the URL for the detailed specs of the Bright 3000. She uses the public access printer in the Fine Camera store to print the Bright 3000 specs. Sure enough, the Orion 777 is a better choice.

Details:

The following numbered paragraphs describe the important details in this use model and correspond one-to-one with the numbered data flows in the diagram below.

1. Alice turns on her mobile handheld and hits the 'I' (Internet) button. The mobile handheld starts a Web browser application, which connects to Alice's wireless Internet service provider (ISP) over a 14.4Kbps cellular modem. Alice types the Bright URL (from the magazine review) into her Web browser and hits the Enter key. The Web browser connects to Bright's home page over the Internet (via the HTTP proxy in the cellular ISP's firewall). Alice searches for the Bright 3000 specs (available in HTML) and copies the URL into her GUI clipboard.

2. Alice hits the 'P' (Printer) button. The mobile handheld starts a Printer application, which discovers the store's public access printer over Bluetooth using FSG/OP PAPI (which does Bluetooth device discovery) and then forms an ad-hoc wireless Personal Area Network (PAN) with the Target Device (printer).

3. Alice pastes the saved URL from her GUI clipboard into the Printer application and hits the Enter key. The Printer application sends the URL of the Bright 3000 specs (in HTML) to the Target Device (printer) over Bluetooth using FSG/OP PAPI (sends a Bluetooth Print-By-Reference operation) and then subscribes for print job event notifications using FSG/OP PAPI (sends a Bluetooth Get-Event operation).

4. The Target Device (printer) sends the URL of the Bright 3000 specs to the local Print Service (spooler) over the store's Ethernet LAN using FSG/OP PAPI (sends an IPP Print-URI operation).

5. The Print Service (spooler) fetches the Bright 3000 specs (in HTML) from the Content Provider (Bright's Web server) over the Internet (via the HTTP proxy in the store's Internet firewall).

6. The Print Service (spooler) converts the Bright 3000 specs from HTML to PCL using an FSG PAPI extension or the FSG/OP Transformation Service API (TBD).

7. The Print Service (spooler) sends the converted Bright 3000 specs to the Target Device (printer) over the store's Ethernet LAN using FSG/OP PAPI (sends an IPP Print-Job operation).

8. The Target Device (printer) sends a print job completed notification to the Printer application in the mobile handheld over Bluetooth using an FSG/OP PAPI extension (sends a response to the previous Bluetooth Get-Event operation). The Printer application in the mobile handheld displays "Print job completed successfully" in a status box. Alice turns off her mobile handheld, breaking the cellular connection to her wireless ISP and also breaking the Bluetooth PAN link to the store's public access printer.

Exceptions for Use Model:

None noted at this time.

Use Model Diagram:

Figure 3.1 Use Model 1: Mobile Printing

------------- -------------

| | ! |

| Print | ! Content |

| Service |<---------------(5)----------------! Provider |

| (PS) | ! (CP) |

| (spooler) | ! |

| | ! |

------------- -------------

E ^ | ^ | ADSL ISP T1 ISP |

t | | | | (600Kbps) ( ------ ) (1.5Mbps) |

h | | | | ( ) |

e | | | | ( ) |

r(4) (6) (7) ( INTERNET ) (1)

n | | ( ) |

e | | ( ) |

t | | ( ------ ) Cellular ISP |

| v (14.4Kbps) v

------------- -------------

| |<---------------(2)--------------->! |

| Target | ! Mobile |

| Device |<---------------(3)----------------! Client |

| (TD) | ! (MC) |

| (printer) |----------------(8)--------------->!(handheld) |

| | Bluetooth PAN ! |

------------- -------------

[[ Diagram to be rendered as graphical at later date ]]

Data Flows:

1. MC-CP: Internet browse for content URL

2. MC-TD: Bluetooth discovery of wireless printer

3. MC-TD: Bluetooth Print-By-Reference of content URL

4. TD-PS: IPP Print-URI of content URL

5. PS-CP: HTTP Get of content URL

6. PS-TS: Convert content data from HTML to PCL

7. PS-TD: IPP Print-Job of converted content data

8. TD-MC: Bluetooth print completed notification

Security Domains:

1. MC-ISP: Alice's cellular Internet connection (wireless ISP)

2. MC-TD: Alice's ad-hoc network (Bluetooth wireless PAN)

3. TD-PS: Fine Camera's enterprise network (Ethernet LAN segment)

4. PS-ISP: Fine Camera's Internet connection (ADSL modem to ISP)

5. CP: Bright's enterprise network (Ethernet LAN segment)

6. CP-ISP: Bright's Internet connection (T1 circuit to ISP)

7. Cloud: Internet backbone

Requirements for this Use Model:

The FSP/OP Architecture MUST support:

1. Administrative configuration of Print Services (spoolers) and their associations with Target Devices (printers) using FSG/OP PAPI (or some TBD API);

2. Administrative configuration of Target Devices (printers) and their associations with Print Services (spoolers) using FSG/OP PAPI (or some TBD API);

3. Static discovery (via prior administrative configuration) of Print Services (spoolers) and Target Devices (printers) using FSG/OP PAPI (or some TBD API);

4. Dynamic discovery (via discovery and directory protocols) of Print Services (spoolers) and Target Devices (printers) using FSG/OP PAPI (or some TBD API);

5. Dynamic discovery of non-IP (Bluetooth, IRDA, etc.) network Print Services (spoolers) and Target Devices (printers) using FSG/OP PAPI (or some TBD API);

6. Dynamic discovery of direct-connect (USB, parallel, etc.) local Print Services (spoolers) and Target Devices (printers) using FSG/OP PAPI (or some TBD API);

7. Multiple print protocol bindings of FSG/OP PAPI (for non-IP network and direct-connect printing);

8. Print-by-reference operations (for printing from low-bandwidth mobile devices);

9. Print-by-value operations (for printing of converted or local content);

10. Content conversion by FSG/OP Transformation Services (for reference printing);

11. Job and Printer event notification (for job complete, etc.).

Use Model 2: PDA Printing < Ira >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 3: Desktop Personal (Consumer) Printing < Mark >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 4: Desktop Small-Office/Home-Office Printing < Norm >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 5: Desktop Office Printing < Till >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 6: Central (Print Room) Office Printing < Glen >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 7: Desktop File (Direct) Printing < Glen >

[Note: Print to print service directly from file manager versus going through application]

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 8: Pay for Print Printing < Mark/Claudia >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 8: Print on Demand < Claudia >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 9: Production (Transactional, Statements) Printing < Tom/Ira >

[Note: may have two use models: one for in-house and service bureau ]

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Use Model 10: Graphics Art (non-offset) Printing < TBD >

< one sentence description of use model >

Example Use Model:

< one or two paragraphs illustrative use model example >

Details: < What is happening in details for this use model >

< numbered list of flow in Use Model Diagram >

Exceptions for Use Model:

[[ Editor Note: How do we handle exceptions to the use model ]]

< exception 1 for this use model >

*
*

*

< exception n for this use model >

Use Model Diagram:

Requirements for this Use Model:

< enumerated list of the requirements for this use model >

< . . . >

< . . . >

Open Printing Requirements < ??? >

This section describes the general requirements of the Open Printing solution. These requirements will be based on the use models defined above along with the issues of Discovery, Print Job Control Security and Billing.

[[ Editor Note: This should a table with major headings (category) (driver, job ticket, etc) and the requirements listed.

Category	No.	Requirement	Required Recommended Optional
Job Ticket	R1000		Required

Other Considerations

???? < ??? >

Normative References

[ISO639]	multi-part International Standard, presently consisting of [ISO639-1] and [ISO639-2].

[ISO639-1] Codes for the Representation of Names of Languages -- Part 1: Alpha-2 Code, ISO/IEC 639-1, 2000.

[ISO639-2] Codes for the Representation of Names of Languages -- Part 2: Alpha-3 Code, ISO/IEC 639-2, 1998.

[ISO3166] multi-part International Standard, presently consisting of [ISO3166-1] and [ISO3166-2].

[ISO3166-1] Codes for the Representation of Names of Countries and their Subdivisions, Part 1: Country Codes, ISO/IEC 3166-1, 1997.

[ISO3166-2] Codes for the Representation of Names of Countries and their Subdivisions, Part 2: Country Subdivision Codes, ISO/IEC 3166-2, 1998.

[ISO10646] multi-part International Standard, presently consisting of [ISO10646-1] and [ISO10646-2].

[ISO10646-1] Information Technology - Universal Multiple-Octet Code Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane, ISO/IEC 10646-1, September 2000.

[ISO10646-2] Information Technology - Universal Multiple-Octet Code Character Set (UCS) - Part 2: Supplemental Planes, ISO/IEC 10646-2, January 2001.

[RFC2119] Bradner. Key words for use in RFCs to Indicate Requirement Levels, RFC 2119, March 1997.

[RFC2396] Berners-Lee, Fielding, Masinter. URI Generic Syntax, RFC 2396, August 1998.

[RFC2910] Herriot, R., Butler, S., Moore, P., Turner, R., “Internet Printing Protocol/1.1: Encoding and Transport”, RFC 2910, September 2000.

[RFC2911]	R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, “ Internet Printing Protocol/1.10: Model and Semantics”, RFC 2911, September 2000.

[RFC2978] Freed, Postel. IANA Charset Registration Procedures, RFC 2978, October 2000.

[RFC3066] Alvestrand. Tags for the Identification of Languages, RFC 3066, January 2001.

Informative References

[cip4]	The International Cooperation for the Integration of Processes in Prepress, Press and Postpress (CIP4) located at http://www.cip4.org/

[jdf]	The Job Definition Format (JDF), version 1.1, August 2002. Sett the Document tab at: http://www.cip4.org

[pwg]	The Printer Working Group located at http://www.pwg.org/

[pwg-sm]	Zehler, P., Hastings, T., and Albright, S., Printer Working Group (PWG): Semantic Model, March 26, 2003, work in progress at ftp://ftp.pwg.org/pub/Semantic-Model/wd-sm010-20030326.pdf

[IANA-CHAR]	IANA Registry of Character Sets ftp://ftp.iana.org/assignments/charset-reg/...

[IANA-MIME]	IANA Registry of MIME Media Types ftp://ftp.iana.org/assignments/media-types/...

[RFC2277]	Alvestrand. IETF Policy on Character Sets and Languages, RFC 2277, January 1998.

[RFC2279]	Yergeau. UTF-8, a Transformation Format of ISO 10646, RFC 2279, January 1998.

APPENDIX: X CHANGES < Editor >

Date	Affected Version	Author	Change
08.14.03	-----	G. Petrie	Original document
08.21.03	0.01	G. Petrie	Removed the Generalized Use Model section. Renamed several of the Use Models. Added Print on Demand Use Model.
09.25.03	0.20	G. Petrie	Added Ira McDonald's use case for Mobile Printing to be used as model for other authors.

End of Document

Version 0.25	FSG Open Printing Requirements	September 25, 2003

Page 26 of 26

Glen Petrie

2003-07-25T14:58:05

Glen Petrie