Internet Printing Protocol IPP Scott Isaacson Corporate Architect

  • Slides: 43
Download presentation
Internet Printing Protocol (IPP) Scott Isaacson Corporate Architect Novell, Inc. WWW 7 Developer Day

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

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

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:

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.

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

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

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

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 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

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

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

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

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

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 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

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

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

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

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

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 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.

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

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

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:

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

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.

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.

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

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

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

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

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

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

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,

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

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

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

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,

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”

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

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

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

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