Internet Printing Protocol IPP Scott Isaacson Corporate Architect











































- Slides: 43

Internet Printing Protocol (IPP) Scott Isaacson Corporate Architect Novell, Inc. WWW 7 Developer Day April 18, 1998 4/18/98 IPP - WWW 7 1

Agenda z Background z Requirements z Model u Objects u Operations z Encoding z HTTP Mapping z Summary 4/18/98 IPP - WWW 7 2

Internet Printing Protocol (IPP) Background z Fall of 1996 Printer Working Group (PWG) meeting on Internet and web printing u PWG is a loose, unincorporated alliance among printer vendors, OS vendors, and developers u IEEE 1284, Printer MIB, Job Monitoring MIB z Presentations u Lightweight Document Printing Application (LDPA) u Hyper. Text Printing Protocol (HTPP) u Simple Web Printing (SWP) 4/18/98 IPP - WWW 7 3

IPP Background (cont. ) z PWG chartered a working group z IETF u 12/96: IETF BOF u 3/97: IETF WG charter u 4 -11/97: Various Internet-Drafts u 2/98: WG final call z Major Contributors u System vendors, OS vendors, device vendors, driver vendors, application vendors 4/18/98 IPP - WWW 7 4

Online References z Mailing List: u ipp@pwg. org (ipp-request@pwg. org) z Sites: u www. pwg. org/ipp AND ftp. pwg. org/pub/pwg/ipp/ z Internet-Drafts (www. ietf. org) u u u 4/18/98 Requirements: draft-ietf-ipp-req-02. txt Model: draft-ietf-ipp-model-09. txt Encoding and Transport: draft-ietf-ipp-protocol-04. txt Rationale: draft-ietf-ipp-rat-01. txt LPD Mapping: draft-ietf-ipp-lpd-ipp-map-01. txt IPP - WWW 7 5

IPP WG Schedule z. Proposed Standard by end of April 98 z. Prototyping now being done z“Interoperability bake-off” 1998 u Use the Internet u 4 Vendors have shown interoperability z. Test suites z. Conference Demos u Brain. Share, 4/18/98 Xplore, Seybold, etc. IPP - WWW 7 6

Why IPP? z Evolution of network printing u u u client attached server attached network attached z Multiple solutions u u SPX/IPX LPR/LPD (TCP) Appletalk Netbeui (SMBs) z No interoperability z High administrative overhead and complexity 4/18/98 IPP - WWW 7 7

IPP Mission Statement z. Web tools, applications, and technologies working together to support printing on the Internet u Web browsers SLP u URLs u MIME u HTTP Directory L HTTP u LDAP u SLP 4/18/98 P A D IPP - WWW 7 E M MI 8

Scope for IPP/1. 0 z End User features: Query, Submit, Cancel z Out of scope: u Driver download (URL to installation information) u Notification (current WG discussions) u Presentation and UI x. Only hooks for HTML page, no standard u No Operator features x. As allowed by local authorization policy u No Administrator features x. Assume product specific administrative solution 4/18/98 IPP - WWW 7 9

Vision: Inter-Enterprise Examples z. Print from an Application u Any application via IPP client pushes document data to printer z. Print from a Document Repository u IPP aware application (Web Browser) pushes document data to printer z. Print using a Reference u Printer 4/18/98 pulls document data using reference IPP - WWW 7 10

Example 1: Application Printing Enterprise A Enterprise B Firewall Internet Application IPP Printer IPP any Print Data 4/18/98 IPP - WWW 7 11

Example 2: Existing File Printing Enterprise A Enterprise B Firewall Internet Browser IPP Printer IPP any Print Data Repository 4/18/98 IPP - WWW 7 12

Example 3: Print by Reference Enterprise A Enterprise B Firewall Internet Browser IPP Printer Print Data any URI Reference Repository 4/18/98 IPP - WWW 7 13

Architecture and Layering End User Browser Application Spooler Print Driver File IPP Client Notification Directory Naming IPP Server Print Service Secure Transport IPP Printer Output Device 4/18/98 IPP - WWW 7 14

IPP Objects z. Printer z. Job 4/18/98 IPP - WWW 7 15

IPP Printer z. Implements IPP z. Logical or physical device z. Multiple configurations u server u embedded z. Job processing u Options for spooling and scheduling u Provide job status 4/18/98 IPP - WWW 7 16

IPP Printer Configurations IPP IPP 4/18/98 IPP Printer IPP - WWW 7 IPP Printer any 17

Printer Attributes (Mandatory) z Uniform Resource Identifier (URI) z Name z State z Accepting jobs z Localization u Natural Language (RFC 1766: “en-US”) x. Default, Supported u Charset (RFC 2046: “utf-8”, “utf-16”) x. Default, Supported 4/18/98 IPP - WWW 7 18

Job Attributes (Mandatory) z. Job Identifier z. Job Owner’s Identity z. Job State 4/18/98 IPP - WWW 7 19

Document Format z. Use MIME Internet Media Types u Types for traditional Page Description Languages (PDLs) x“application/postscript” (Post. Script) and others (PJL/PCL, IPDS, Interpress, etc. ) u Types for emerging document formats x“text/html” x“application/pdf” x. Etc. 4/18/98 IPP - WWW 7 20

Printer Operations (Mandatory) z Print-Job u Submits a Job, “pushes” job data to the Printer z Validate-Job u Validates client supplied attributes (no job data) z Get-Jobs u Lists jobs at the Printer z Get-Printer-Attributes u Responds 4/18/98 with Printer attributes IPP - WWW 7 21

Example: Get-Printer-Attributes Request IPP Printer requested-attributes: all Get-Printer-Attributes Response printer-name: John’s Printer printer-location: Bldg. A, Room 5 printer-state: processing document-format-supported: ps, pcl media-supported: iso-a 4, na-letter sides-supported: two-sided queued-job-count: 45 error-code: ok 4/18/98 IPP - WWW 7 22

Example: Get-Printer-Attributes (Printer Stopped) Get-Printer-Attributes Request IPP Printer requested-attributes: printer-description Get-Printer-Attributes Response printer-name: HR Color Printer printer-state: stopped printer-state-reasons: media-jam-error printer-state-message: Feed Tray 1 queued-job-count: 5 error-code: ok 4/18/98 IPP - WWW 7 23

Example: Print-Job IPP Printer Print-Job Request job-name: file 1. doc copies: 5 print-quality: draft finishing: staple-top-left job-sheet: none data: <octet string> Print-Job Response job-id: 1234 job-state: pending error-code: ok 4/18/98 IPP - WWW 7 24

Example: Print-Job (error) IPP Printer Print-Job Request job-name: file 2. doc priority: 100 media: na-letter-transparent finishing: punch number-up: two data: <octet string> Print-Job Response finishing: punch (unsupported) number-up: attribute-unsupported error-code: unsupported-attributes 4/18/98 IPP - WWW 7 25

Job Operations (Mandatory) z. Cancel-Job u End User initiated abort z. Get-Job-Attributes u Responds 4/18/98 with current attribute values IPP - WWW 7 26

Example: Cancel-Job IPP Printer Cancel-Job Request job-id: 1234 message: “Please discard any printed pages. ” Cancel-Job Response error-code: ok 4/18/98 IPP - WWW 7 27

Multiple Document Jobs (Optional) z“Create-Job” u Creates a Job object u Validates attributes z. Followed by multiple “Send-Document” u Last Document Flag z. Existing practice 4/18/98 IPP - WWW 7 28

Example: Create-Job IPP Printer Create-Job Request <attributes only, no data> Create-Job Response job-id: 5678 error-code: ok Send-Document Request last-document: false; document data; response: ok last-document: true; document data; response: ok 4/18/98 IPP - WWW 7 29

Print by Reference (Optional) z“Print-URI” operation u Client supplies attributes u Client supplies URI reference to data u Printer retrieves document data z. Multiple document with references u “Send-URI” 4/18/98 IPP - WWW 7 30

Example: Print-URI IPP Printer Print-URI Request job-name: Acme’s Web Page copies: 1 document-format: text/html document-uri: http: //www. acme. com/home. html Print-URI Response job-id: 25 job-state: processing error-code: ok 4/18/98 IPP - WWW 7 31

Job Template Attributes z 1) Printer supports some values Printer Supports: a, b, d z 2) Printer has a default value Printer Default: b z 3) Client requests a certain value z. Example: “finishings” u Printer supports: staple, cover, bind u Printer default: staple u Client requests: cover, bind 4/18/98 IPP - WWW 7 Client Requests: a 32

Job Template (cont. ) z Cover z Events z Priority z Hold z Media z Number UP 4/18/98 z Sides z Copies z Resolution z Quality z Document Format (PDLs) z Compression IPP - WWW 7 33

Fidelity Printing z. Semantics “I expect the job exactly as specified - don’t print it if you can’t do it” u “Just print the job the best you can - ignore or make substitutions as needed” u z. Client supplied “fidelity” attribute u boolean 4/18/98 IPP - WWW 7 34

IPP Override of PDL z. Client supplies Job Template attributes u Affect rendering, production, and finishing z. Conflicting instructions u Embedded PDL instructions z. Example: u Request “a 4” media for a job that is “letter” z Printer’s “PDL Override” attribute u Values: 4/18/98 attempted, not-attempted IPP - WWW 7 35

Printer Attributes (Optional) z Location z More Info u HTML page u Site contact info z Description z Make and Model z Driver Installer 4/18/98 z Color Printing Supported z PDL Override z State Reasons z Job Count z Privacy Supported z Security Supported IPP - WWW 7 36

Job Attributes (Optional) z More Info u HTML page z Language z State reasons z Output device assigned z Size u Octets, 4/18/98 z Time submitted z Time since u Pending u Processing u Completed z Number of intervening jobs impressions IPP - WWW 7 37

Extensibility z. Defined mechanisms u Type 1: Requires an update to the specification u Type 2: Requires approval of the PWG u Type 3: Requires IANA registration u Type 4: Allows for site-by-site additions z. Well defined space for u Private u Experimental 4/18/98 IPP - WWW 7 38

Security z. Does not reinvent the wheel z. Look to HTTP u basic, digest, and beyond z. Look to Transport u Transport 4/18/98 Layer Security (TLS) IPP - WWW 7 39

Encoding and Transport z. Encoding: application/ipp u u Simple, regular, binary Embedded solutions “application/ipp” Proposal: XML for protocol data z. Transport: HTTP/1. 1 u u u 4/18/98 Ubiquitous (HTTP/1. 0 still possible although not optimal) Leverage features (URI naming, chunking, etc. ) Printing has already embraced HTTP servers (administration) Focus on simplicity (complexity relates to proxy servers) Security IPP - WWW 7 40

Transport Mapping z Use HTTP/1. 1 z Each IPP operation is an HTTP POST u “Request URI” is the IPP object u “Content Type” is “application/ipp” u Authentication/authorization checks z Leverage HTTP negotiation: u Cache and proxy control z Proposal: Add new PRINT operations to HTTP 4/18/98 IPP - WWW 7 41

Encoding Diagram: “application/ipp” POST http: //www. pwg. org/printer 1 HTTP/1. 1 Content-Type: application/ipp VERSION 2 bytes - required REQUEST ID 2 bytes - required OPERATION / STATUS CODE 2 bytes - required ATTRIBUTE TAG ATTRIBUTE SEQUENCE DATA TAG DATA 4/18/98 1 byte n bytes 0 or more 1 byte - required m bytes IPP - WWW 7 42

Conclusion z IPP is close to ratification as a set of IETF Proposed Standard RFCs u Several interoperable prototypes z Ongoing discussions for new features and standard extensions u All are invited to participate z “application/ipp” operations over HTTP z Flexible, Scalable u Diverse implementations u Diverse configurations 4/18/98 IPP - WWW 7 43