attachment-0002
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PostalCode"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="Street"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="State"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PlaceName"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PlaceType"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="address"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Mangal;
        panose-1:0 0 4 0 0 0 0 0 0 0;}
@font-face
        {font-family:Cambria;
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Impact;
        panose-1:2 11 8 6 3 9 2 5 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
h1
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:.25in;
        text-indent:-.25in;
        page-break-after:avoid;
        mso-list:l2 level1 lfo4;
        font-size:14.0pt;
        font-family:Cambria;}
h2
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:3.0pt;
        margin-left:.55in;
        text-indent:-.3in;
        page-break-after:avoid;
        mso-list:l1 level2 lfo5;
        font-size:14.0pt;
        font-family:Cambria;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p.StyleHeading1NotBoldBlack, li.StyleHeading1NotBoldBlack, div.StyleHeading1NotBoldBlack
        {margin-top:12.0pt;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:.55in;
        text-indent:-.3in;
        page-break-after:avoid;
        mso-list:l2 level2 lfo4;
        font-size:14.0pt;
        font-family:Cambria;
        color:black;
        font-weight:bold;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Cambria;
        color:blue;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
/* List Definitions */
@list l0
        {mso-list-id:1;
        mso-list-template-ids:1767813390;}
@list l0:level1
        {mso-level-suffix:space;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level2
        {mso-level-text:"%1\.%2\.";
        mso-level-tab-stop:.55in;
        mso-level-number-position:left;
        margin-left:.55in;
        text-indent:-.3in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level3
        {mso-level-text:"%1\.%2\.%3\.";
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        margin-left:.85in;
        text-indent:-.35in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level4
        {mso-level-text:"%1\.%2\.%3\.%4\.";
        mso-level-tab-stop:1.25in;
        mso-level-number-position:left;
        margin-left:1.2in;
        text-indent:-.45in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level5
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
        mso-level-tab-stop:1.75in;
        mso-level-number-position:left;
        margin-left:1.55in;
        text-indent:-.55in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level6
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        margin-left:1.9in;
        text-indent:-.65in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level7
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.75in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level8
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
        mso-level-tab-stop:2.75in;
        mso-level-number-position:left;
        margin-left:2.6in;
        text-indent:-.85in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l0:level9
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
        mso-level-tab-stop:3.25in;
        mso-level-number-position:left;
        margin-left:3.0in;
        text-indent:-1.0in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1
        {mso-list-id:232006760;
        mso-list-template-ids:9729752;}
@list l1:level1
        {mso-level-suffix:space;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level2
        {mso-level-style-link:"Heading 2";
        mso-level-suffix:space;
        mso-level-text:"%1\.%2\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.55in;
        text-indent:-.3in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level3
        {mso-level-reset-level:level1;
        mso-level-suffix:space;
        mso-level-text:"%1\.%2\.%3\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.85in;
        text-indent:-.35in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level4
        {mso-level-text:"%1\.%2\.%3\.%4\.";
        mso-level-tab-stop:1.25in;
        mso-level-number-position:left;
        margin-left:1.2in;
        text-indent:-.45in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level5
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
        mso-level-tab-stop:1.75in;
        mso-level-number-position:left;
        margin-left:1.55in;
        text-indent:-.55in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level6
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        margin-left:1.9in;
        text-indent:-.65in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level7
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.75in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level8
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
        mso-level-tab-stop:2.75in;
        mso-level-number-position:left;
        margin-left:2.6in;
        text-indent:-.85in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l1:level9
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
        mso-level-tab-stop:3.25in;
        mso-level-number-position:left;
        margin-left:3.0in;
        text-indent:-1.0in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2
        {mso-list-id:675117133;
        mso-list-template-ids:-319017128;}
@list l2:level1
        {mso-level-style-link:"Heading 1";
        mso-level-suffix:space;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.25in;
        text-indent:-.25in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level2
        {mso-level-style-link:"Style Heading 1 + Not Bold Black";
        mso-level-suffix:space;
        mso-level-text:"%1\.%2\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.55in;
        text-indent:-.3in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level3
        {mso-level-suffix:space;
        mso-level-text:"%1\.%2\.%3\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:.85in;
        text-indent:-.35in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level4
        {mso-level-suffix:space;
        mso-level-text:"%1\.%2\.%3\.%4\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.2in;
        text-indent:-.45in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level5
        {mso-level-suffix:space;
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.55in;
        text-indent:-.55in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level6
        {mso-level-suffix:space;
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:1.9in;
        text-indent:-.65in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level7
        {mso-level-suffix:space;
        mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:2.25in;
        text-indent:-.75in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level8
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.";
        mso-level-tab-stop:2.75in;
        mso-level-number-position:left;
        margin-left:2.6in;
        text-indent:-.85in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
@list l2:level9
        {mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9\.";
        mso-level-tab-stop:3.25in;
        mso-level-number-position:left;
        margin-left:3.0in;
        text-indent:-1.0in;
        mso-ansi-font-size:14.0pt;
        mso-bidi-font-size:14.0pt;
        font-family:Cambria;
        font-variant:normal !important;
        color:black;
        text-transform:none;
        letter-spacing:0pt;
        mso-ansi-font-weight:normal;
        mso-bidi-font-weight:normal;
        mso-ansi-font-style:normal;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=blue>
<div class=Section1>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
Glen - push printing is hopelessly impossible for Cloud Printing<br>
(except via terrible SMTP transport) - the target PrintService/Printer<br>
is behind a firewall - that's problem number one.<br>
<br>
<font color=blue><span style='color:blue'><o:p></o:p></span></font></span></font></p>
<p class=MsoNormal><font size=3 color=blue face=Cambria><span style='font-size:
12.0pt;font-family:Cambria;color:blue'>Ok, maybe bad wording on my part,
signaling then fetch(push) versus polling then fetch (pull)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 color=blue face=Cambria><span style='font-size:
12.0pt;font-family:Cambria;color:blue'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 color=blue face=Cambria><span style='font-size:
12.0pt;font-family:Cambria;color:blue'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
Cheers,<br>
- Ira<br>
<br clear=all>
Ira McDonald (Musician / Software Architect)<br>
Chair - Linux Foundation Open Printing WG<br>
Secretary - IEEE-ISTO Printer Working Group<br>
Co-Chair - IEEE-ISTO PWG IPP WG<br>
Co-Chair - TCG Trusted Mobility Solutions WG<br>
Chair - TCG Embedded Systems Hardcopy SG<br>
IETF Designated Expert - IPP & Printer MIB<br>
Blue Roof Music/High North Inc<br>
<a href="http://sites.google.com/site/blueroofmusic" target="_blank"><font
color="#3333ff"><span style='color:#3333FF'>http://sites.google.com/site/blueroofmusic</span></font></a><br>
<a href="http://sites.google.com/site/highnorthinc" target="_blank"><font
color="#6600cc"><span style='color:#6600CC'>http://sites.google.com/site/highnorthinc</span></font></a><br>
mailto:<a href="mailto:blueroofmusic@gmail.com" target="_blank">blueroofmusic@gmail.com</a><br>
Winter <st1:address w:st="on"><st1:Street w:st="on">579 Park Place</st1:Street>
<st1:City w:st="on">Saline</st1:City>, <st1:State w:st="on">MI</st1:State>
<st1:PostalCode w:st="on">48176</st1:PostalCode></st1:address>
734-944-0094<br>
Summer <st1:address w:st="on"><st1:Street w:st="on">PO Box</st1:Street>
221</st1:address> Grand <st1:place w:st="on"><st1:City w:st="on">Marais</st1:City>,
<st1:State w:st="on">MI</st1:State> <st1:PostalCode w:st="on">49839</st1:PostalCode></st1:place>
906-494-2434<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'><br>
<br>
<o:p></o:p></span></font></p>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Tue, Dec 13, 2011 at 12:07 PM, Petrie, Glen <<a
href="mailto:glen.petrie@eitc.epson.com">glen.petrie@eitc.epson.com</a>>
wrote:<o:p></o:p></span></font></p>
<div link=blue vlink=purple>
<div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>Hi Peter,</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>Your description sound a lot like DocuPrint or a (Production) Print
Manager. Is this a good Cloud-Print model? It could be, since
DocuPrint like entities have been around more than two (maybe three)
decades. Terminology, I believe, is a little different today. The
other aspect I note, and, again, it more in line with a production print model
(like DocuPrint), is your model is a pull-model from the physical printer out
of a print queue; while my model is a push-model to the physical printer.
While I have actually been involved in studies that show the
pull-model is beneficial for production printing, I don’t yet have the same
understanding that a pull model is beneficial for Cloud Printing. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>Print Queue (Print Queue)
= Print Service </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:2.75in'><font size=3 color=blue face=Wingdings><span
style='font-size:12.0pt;font-family:Wingdings;color:blue'>n</span></font><font
size=1 color=blue><span style='font-size:7.0pt;color:blue'>
</span></font><font color=blue face=Cambria><span style='font-family:Cambria;
color:blue'>Assuming a Print Service can hold (queue) more than a single
job. The Print Service is its own Print Manger. Is this the
desired functionality? Maybe</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:2.75in'><font size=3 color=blue face=Wingdings><span
style='font-size:12.0pt;font-family:Wingdings;color:blue'>n</span></font><font
size=1 color=blue><span style='font-size:7.0pt;color:blue'>
</span></font><font color=blue face=Cambria><span style='font-family:Cambria;
color:blue'>An opposing model is for a new instance of a Print Service is
created for each Print Job. This begs the question of who manages the
multiple instance of a single Print Service. Thus, a Print
Manager for the multiple instances of a Print Service is still required. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:2.75in'><font size=3 color=blue face=Wingdings><span
style='font-size:12.0pt;font-family:Wingdings;color:blue'>n</span></font><font
size=1 color=blue><span style='font-size:7.0pt;color:blue'>
</span></font><font color=blue face=Cambria><span style='font-family:Cambria;
color:blue'>I believe this means there must be a Print Manager; called it the
Cloud Print Manager. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
margin-left:3.25in'><font size=3 color=blue face="Courier New"><span
style='font-size:12.0pt;font-family:"Courier New";color:blue'>o</span></font><font
size=1 color=blue><span style='font-size:7.0pt;color:blue'>
</span></font><font color=blue face=Cambria><span style='font-family:Cambria;
color:blue'>Could the Cloud Print Manager allow implementation of either or
both types of Print Services models (pull and/or push); sure.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>Printer
= Printer (maybe this means the Print Service of the Printer)</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>You also discuss the idea that a Print Job is on a
Printer. That may or may not be true depending the size and
capabilities of printer. This may be true for some office and most
production printers but as you move down is physical printer size there is no
need for the physical printer to ever have or know about a/the Print
Job. The physical printer’s Print Service knows about the Print
Job. One of the advantages of Cloud Print is that all of the
“printing smarts” (jobs, driver, transform, rendering, etc) can actually be in
or by a/the cloud based Print Service and very little, beyond status and base
printing functionality (think processing vendor specific PDL) needs to be in
the actual physical printer. This means the physical printer is not
IPP based; it would be the Print Service (maybe).</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>This brings up the concept that perhaps the Cloud Print Manager
creates an instance of a Print Protocol front-end (like IPP) and connects to an
internal protocol neutral instance of a Print Service!!!! Thus, if a Print
Client supports a different Print Protocol, a different front-end is
spawned!!! Not one protocol configuration will fit all solutions but
since Cloud supports real-time configurability of services in general, any
Cloud Print Manager/Solution should take advantage of this. So, no Cloud
Printer Manager is tied to a single protocol but will (may) be required to
support different ones.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>Support for fan-in and fan-out in the traditional sense is “behind
the scene” and an implementation detail within a specific Cloud Print Manager /
Solution implementation. Maybe what you describe below is more like
federation of Cloud Print Manager. The other part of your
discussion on queues is about User specific capabilities. I agree
this is needed functionality; the spawning of a Print Service instance makes
this functionality easy. When the Print Service is spawned, the
capability data of that Print Service only includes those allowed capabilities
available for the User. This action is additive; that is, if there site
or department policies restricting the User capabilities; those capabilities
can also be removed for the capability data for a specific Print Service
instance. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>The way I see the processing (workflow) of Cloud Print Job is not
from the pull-model (that is, from printers or queues perspective of checking
to see there is a Print Job to do (do I want potentially thousands upon
thousands of physical printers sending internet messages to Cloud Print Queues
of Cloud Print Solution checking to see if there is something to print!) ) but
rather from a push-model from the User. That is User makes a Print
Request to the Print Cloud Manager, a Print Service is selected, if the
specific Print Service does not always exist; then, an instance of the selected
Print Service is spawned based on User permission and site policies, a Print
Client creates the User’s Print Intent from the Print Service capabilities, the
Print Service (including physical printer) status is checked, the Print Intent
is passed to the Print Service to become a Print Job (actually I like the
concept that Print Client to create a Print Job and simply passes it to the
Print Service but this is not generally agreed upon by others), the Print Job
starts, status is reported as required/requested, the Job finishes. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>I don’t understand the concept of “lock the job”; to me, once the
Print Service accepts the Print Job (not error in the Print Job Ticket) that it
is.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>I believe that is registration is not just about the printer; but
about the User and the printer. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'>Glen</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color=blue face=Cambria><span style='font-size:12.0pt;font-family:Cambria;
color:blue'> </span></font><o:p></o:p></p>
<div>
<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>
<hr size=2 width="100%" align=center>
</span></font></div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><font
size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;font-weight:
bold'>From:</span></font></b><font size=2 face=Tahoma><span style='font-size:
10.0pt;font-family:Tahoma'> <a href="mailto:cloud-bounces@pwg.org"
target="_blank">cloud-bounces@pwg.org</a> [mailto:<a
href="mailto:cloud-bounces@pwg.org" target="_blank">cloud-bounces@pwg.org</a>] <b><span
style='font-weight:bold'>On Behalf Of </span></b>Zehler, Peter<br>
<b><span style='font-weight:bold'>Sent:</span></b> Tuesday, December 13, 2011
5:34 AM<br>
<b><span style='font-weight:bold'>To:</span></b> <a href="mailto:cloud@pwg.org"
target="_blank">cloud@pwg.org</a><br>
<b><span style='font-weight:bold'>Subject:</span></b> [Cloud] Cloud Print
binding to IPP</span></font><o:p></o:p></p>
</div>
<div>
<div>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>All,</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>I would
like to see an IPP binding for Cloud printing. I see a significant advantage
to an IPP based solution given the maturity of the protocol and the industry
wide support. I experimented with a cloud based print service back in
2009. I based my experiments on a WS-Print binding but an IPP binding
would also work. I switched the binding from WS-Print to PWG SM and
included it in v1.160 of the PWG SM Schema. It is easier for me to write
Schema than IPP and easier to display. It is not difficult to move
between the two mappings. The issues I did not address include an environment
agnostic registration and a common security model. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>For
clarity I will refer to the Cloud based Printers as Queues and the devices as
Printers even though in the IPP model they are both implementation of IPP
Printers. In v1.160 of the PWG Semantic Model Schema I included two files
(i.e., PwgCloudPrintQueue.wsdl and PwgCloudPrintQueueMsg.xsd) that have some of
the operations fleshed out a bit. (I dropped a couple things moving from
WS-Print to PWG SM.)</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>I had a
couple of assumptions going in.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>I
believe that Queues and Printers contain Jobs and are stateful. There is
an association between the Jobs in a Queue and the Jobs being printed on a
Printer. A mapping between them should be maintained on both sides and
carried explicitly in the protocol. I do not believe we should be
implementing “remote markers” where Jobs only reside in the Cloud. It
should be possible for either side to use IPP operations to query the state of
the Printer/Queue and their Jobs.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>I
believe it is a requirement that the Cloud Print model must support both Fan
Out and Fan In. In other words it should be possible for a single Cloud
Queue to act as a proxy for other Cloud Queues. This will allow a Printer
to interact with a single Cloud Queue but still service jobs in multiple Cloud
Queues. Taking this approach allows you to do things such as set
different default behaviors for Queues that all map to the same Printer.
(The User does not need a Job Ticket since the intent is associated with the
various Queues.) This approach also allows you to enforce different
capabilities for different users. Users have permission to use specific
Queues. The Queues could prohibit color printing or limit the size of a
Job. <br>
It should also be possible for one Printer to interact with a Queue and
forward Jobs to other Printers. For example a Printer in an enterprises
DMZ could forward jobs to internal Printers or a software only Printer could
front end legacy devices (i.e., proxy).</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>The way
I broke the processing of Cloud Jobs up was; Check for Work, Lock the Job,
Update the Job Status, Retrieve the Document(s), and Finish the Job. I
also had another group of things that include; synchronization of Printer and
Job state, Firewall Traversal, Moving from Poll Driven to Event Driven, and
Eventing.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Check
for work:</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>The
Printer should be event driven when processing Jobs. See below for a
discussion on eventing. The printer should query the Queue for available
work. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>The
Operation IsThereAnyWork </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'><<a
href="http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1036"
target="_blank">http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1036</a>></span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>is used
by the Printer to ask a Queue to see if any work is available. The
request contains a list of DestinationServiceUuids (i.e. printer-uuid) where
the Jobs will be printed. The response will have a list of work
entries. Each entry contains the SourceServiceUuid,
DestinationServiceUuid (missing in schema) and a list of Job ids. I used
a UUID instead of an ID but as long as the source Queue is identified either
would work. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Lock the
Job:</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Once a
Printer has determined the job it will process, it sends a DeQueuePrintJob
operation </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'><<a
href="http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1035"
target="_blank">http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1035</a>>
</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> to
the Queue. This operates a little differently than CreateJob in that the
Printer Job identifier needs to be reserved until the operation succeeds.
If the operation fails or times out the identifier and any allocated resources
are discarded. The request includes the identifiers for the source and
destination Queue/Printer and Jobs. The response contains the number of
documents in the job as well as some job information such as the job name and
owner. Although not included a JobTicket should be passed in the response
as well. The payload of the response should closely match a CreateJob
operation. We may also want to consider passing a JobTicket by reference
which IPP does not permit at this time.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Update
the Job Status:</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Event
notifications are used to keep the state of the Job, Document and Service
updated. I used WS-Eventing but an IPP notification method can be substituted.
See eventing discussion below.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Retrieve
the Document:</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>The
Printer retrieves the documents to process using the Retrieve Document
operation</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'><<a
href="http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1038"
target="_blank">http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1038</a>>.
</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>The
request identified the source Service, Job and Document number. The
response includes the document number and a flag to indicate if it is the last
document. Other information such as a Document Ticket or the
DocumentFormat can also be included. Since the Printer does not know if
the document will be pushed or pulled it must be ready to accept a DocumentUri
or Document Content in the response. I used MTOM but IPP already has an
acceptable encoding. It is most efficient to use print by reference
whenever possible. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Finish
the Job:</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Once the
Job has been printed the final update of the Job is done. Note that
events are used to handle updates as the Job is being processed. The
CompleteDequeuePrintJob operation </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'><<a
href="http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1034"
target="_blank">http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1034</a>></span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>request
contains the Source and destination Queue/Printer and Jobs and the details of
the Destination Job. Included is The JobState, any JobStateReasons,
DateTimeAtCompletion and the ImpressionsCompleted. The PrintJobReceipt
can also be included.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Synchronize
Printer/Queue state,</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Synchronize
Job state,</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Moving
from Polling to Event Driven</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Firewall
traversal</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Eventing:</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>This
nice thing about outbound (i.e., Printer to Queue) eventing in a Cloud
environment is that no event subscription needs to be sent. The Printer knows
the Queue is interested in Printer and Job events. Either a well-known
listener port can be used or the location can be part of registration.
Since the Printer knows which jobs came from the Cloud it can filter the Job
events. Whenever a Printer is initialized a printer state event should be
sent to its registered Queues. If the content of the event is
insufficient then a one way message that looks like a GetPrinterAttributes
operation response could be used.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>In order
to move from a poll model to an event driven model we need a mechanism to
traverse the firewall. I originally used a hacked together HTTP trickle
protocol. A standardized protocol such as XMPP can be used instead.
The PWG can create PWG specific stanzas that map to existing IPP operations
such as GetPrinterAttributes, GetJobs or GetJobAttributes. A new stanza would
be needed to let the Printer know it’s time to send an IsThereAnyWork operation
to a Queue.</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Registration:</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>I did
not do anything with registration other than put in a place holder.
The RegisterPrinter operation </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'><<a
href="http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1037"
target="_blank">http://www.pwg.org/mfd/navigate/PwgSmRev1-160_ServiceOperations.html#Link1037</a>></span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>request
contains some Printer information such as the identifier for the Queue and the
Printer. It was not clear to me if the existence of a Queue is a
prerequisite or a result of the operation. The Printer information would
also include the PrinterCapabilities that we recently defined in the Job Ticket
work. This contains the defaults, capabilities and document generation
information. I included some “Agent” information. I assumed there
would be some security information exchanged so I just put a placeholder
there. </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'>Comments?</span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color="#1f497d" face=Calibri><span style='font-size:11.0pt;font-family:
Calibri;color:#1F497D'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 color=navy face=Impact><span style='font-size:11.0pt;font-family:Impact;
color:navy'>Peter Zehler</span></font><font color="#1f497d"><span
style='color:#1F497D'><br>
<br>
</span></font><st1:place w:st="on"><st1:PlaceName w:st="on"><font size=2
color=navy face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;
color:navy'>Xerox</span></font></st1:PlaceName><font size=2 color=navy
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;color:navy'> <st1:PlaceName
w:st="on">Research</st1:PlaceName> <st1:PlaceType w:st="on">Center</st1:PlaceType></span></font></st1:place><font
size=2 color=navy face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;
color:navy'> Webster<br>
</span></font><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:navy'>Email: </span></font><a
href="mailto:Peter.Zehler@Xerox.com" target="_blank"><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>Peter.Zehler@Xerox.com</span></font></a><font
color="#1f497d"><span style='color:#1F497D'><br>
</span></font><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:navy'>Voice: <a href="tel:%28585%29%20265-8755"
target="_blank" value="+15852658755">(585) 265-8755</a></span></font><font
color="#1f497d"><span style='color:#1F497D'><br>
</span></font><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:navy'>FAX: <a href="tel:%28585%29%20265-7441"
target="_blank" value="+15852657441">(585) 265-7441</a></span></font><font
color="#1f497d"><span style='color:#1F497D'><br>
</span></font><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:navy'>US Mail: Peter Zehler</span></font><font
color="#1f497d"><span style='color:#1F497D'><br>
</span></font><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:navy'>Xerox Corp.</span></font><font color="#1f497d"><span
style='color:#1F497D'><br>
</span></font><st1:Street w:st="on"><st1:address w:st="on"><font size=2
color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'>800 Phillips Rd.</span></font></st1:address></st1:Street><font
color="#1f497d"><span style='color:#1F497D'><br>
</span></font><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:navy'>M/S 128-25E</span></font><font color="#1f497d"><span
style='color:#1F497D'><br>
</span></font><font size=2 color=navy face=Arial><span style='font-size:10.0pt;
font-family:Arial;color:navy'>Webster NY, 14580-9701</span></font><font
color="#1f497d"><span style='color:#1F497D'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 color="#1f497d" face="Times New Roman"><span style='font-size:12.0pt;
color:#1F497D'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=2 face=Calibri><span style='font-size:11.0pt;font-family:Calibri'> </span></font><o:p></o:p></p>
<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'><br>
-- <br>
This message has been scanned for viruses and <br>
dangerous content by <a href="http://www.mailscanner.info/" target="_blank"><b><span
style='font-weight:bold'>MailScanner</span></b></a>, and is <br>
believed to be clean. <o:p></o:p></span></font></p>
</div>
</div>
</div>
<div>
<div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
-- <br>
This message has been scanned for viruses and <br>
dangerous content by <a href="http://www.mailscanner.info/" target="_blank"><b><span
style='font-weight:bold'>MailScanner</span></b></a>, and is <br>
believed to be clean. <o:p></o:p></span></font></p>
</div>
</div>
</div>
<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'><br>
_______________________________________________<br>
cloud mailing list<br>
<a href="mailto:cloud@pwg.org">cloud@pwg.org</a><br>
<a href="https://www.pwg.org/mailman/listinfo/cloud" target="_blank">https://www.pwg.org/mailman/listinfo/cloud</a><o:p></o:p></span></font></p>
</div>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </o:p></span></font></p>
</div>
<br />--
<br />This message has been scanned for viruses and
<br />dangerous content by
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is
<br />believed to be clean.
</body>
</html>