All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Sweet <mike@easysw.com>
To: Pete Zannucci <pzaan@us.ibm.com>
Cc: printing-architecture@freestandards.org
Subject: Re: [Printing-architecture] Bi-di plug-in functionarities
Date: Mon, 09 Dec 2002 15:49:54 -0500	[thread overview]
Message-ID: <3DF501F2.3050205@easysw.com> (raw)
In-Reply-To: <OF28565FA6.DC942412-ON85256C8A.00589ECA@pok.ibm.com>

Pete Zannucci wrote:
> ...
> I would like to see that separate process due to a couple of issues:
> 
> 1.  Customer's like to have true status and info on the printer.
>     This would make it easier to manage async. events and alerts
>     coming from the printer (power off/on, jam, etc.)

A printer driver can query (poll) a printer for its status, but
most asynchronous notifications should be done via SNMP or similar
mechanisms outside the normal print data stream; otherwise you tie
up the printer with polling which causes problems when you have
multiple (possibly redundant) servers connected to the same network
devices.  This is a problem that plagues Windows print servers, and
we regularly have to support customers that have accessbility
problems in mixed environments.

Another issue is security/access control.  Not every admin wants
to allow an arbitrary user to access status information for a
printer, and while such security measures go beyond what many
would feel is an adequate level, they are required in sensitive
environments where such information could be used to attack,
eavesdrop, or otherwise compromise the security of the print
job.

Again, I'm not saying that it can't be done with CUPS (in fact
it is already being done for specific types of devices), but I'm
just pointing out some of the issues that will come up in
implementation that need to be designed into any interface you
cook up.  A good "network printing proxy" implementation could
use multiple protocols to get the "most bang for the buck"
without adversely affecting the accessibility of that device
from other network hosts while providing the kind of security/
access control options that will be required.

> 2.  That process would likely have the ability be be more robust
>     in error handling because if you do have two pipes and that
>     would imply separate threads to do all the management function
>     and I have see many times that a particular api call has
>     the ability to get hung which will force multiple threading.

Having two pipes does not imply the use of threads unless you are
running Windows which lacks some of the basic functionality
needed to efficiently manage multiple input/output sources from
a single thread.

Any program that does asynchronous event handling will need to
be event driven in nature and properly time-out when sending or
waiting for data.  Threading is one way of implementing this,
where each thread is doing one task and syncronizing with the
other thread(s), however an ordinary FSM works exceedingly
well as a threading replacement when responding to async IO,
and in fact that is what CUPS uses in many places, including
the scheduler and HTTP/IPP APIs.

In any case, I will reiterate once more that both a direct and
indirect backend interface will work with CUPS without difficulty.
The standard CUPS backends will (obviously) be implementing the
CUPS backchannel interface.

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products                  mike@easysw.com
Printing Software for UNIX                       http://www.easysw.com



  reply	other threads:[~2002-12-09 20:49 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-09 16:44 [Printing-architecture] Bi-di plug-in functionarities Pete Zannucci
2002-12-09 20:49 ` Michael Sweet [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-12-10 15:18 Pete Zannucci
2002-12-12 13:53 ` Yasumasa TORATANI
2002-12-06 16:10 Pete Zannucci
2002-12-06 18:11 ` Michael Sweet
2002-12-09 10:01   ` Yasumasa TORATANI
2002-12-09 14:19     ` Michael Sweet
2002-12-10 10:52       ` Yasumasa TORATANI
2002-12-10 15:30         ` Michael Sweet
2002-12-12 13:49           ` Yasumasa TORATANI
2002-12-06 13:04 Yasumasa TORATANI
2002-12-06 15:38 ` Michael Sweet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3DF501F2.3050205@easysw.com \
    --to=mike@easysw.com \
    --cc=printing-architecture@freestandards.org \
    --cc=pzaan@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.