IPP> OPS - Xerox comments on Set-Printer-Attributes and Set- Job-Attributes spec

IPP> OPS - Xerox comments on Set-Printer-Attributes and Set- Job-Attributes spec

Hastings, Tom N hastings at cp10.es.xerox.com
Tue Jan 11 17:06:44 EST 2000


Ron,

I agree that removing one of the three keywords choices for
"attribute-scope" is a good idea if we don't need all three.

However, the need for the third value ('single-interpreter-and-printer') is
so that a client can set some interpreter unique attributes for a particular
interpreter AND some printer attributes in one Set operation.  Being able to
set one interpreter's attributes and some Printer attributes in one Set
operation avoids an intermediate race condition when the Printer object is
not set in a consistent state.

Admittedly, a client can't set the unique attributes for two of three
interpreters in a single Set, so we aren't completely solving the "one Set
can do all", so maybe having to set each interpreter separately that needs
to be changed and then set the printer separately is sufficient (when the
usual case of setting ALL interpreters and the printer in one Set isn't
sufficient).

Comments?

Tom 

-----Original Message-----
From: Ron Bergman [mailto:rbergma at hitachi-hkis.com]
Sent: Tuesday, January 11, 2000 09:14
To: Hastings, Tom N
Cc: ipp
Subject: Re: IPP> OPS - Xerox comments on Set-Printer-Attributes and
Set-Job-Attributes spec


Tom,

This is a  good discussion and looks like a possible solution to what has
the potential of being a real "rat hole".

I see one minor flaw.  For the attribute "attribute-scope" there are three
keywords defined.  I propose there only be two;
    "all-interpreters" which implies it is also a global Printer
       Description attribute.
    "single-interpreter" which applies only to the specified
       'document-format'.

An attribute is either interpreter unique or not.  The third state that
is defined is not valid.  Even in your examples, there are no unique
conditions for the third state.

    Ron Bergman
    Hitachi Koki Imaging Solutions


"Hastings, Tom N" wrote:

> A number of us at Xerox considered the issue 01 in the Set spec and have
the
> following suggestions:
>
> ISSUE 01 - Is there a better way to model the Printer attributes that
depend
> on the interpreter (that is still compatible with IPP/1.1)?  It should be
> clear to the operator whether the Set-Printer-Attributes operation is
> affecting all interpreters or just the one specified by the
> "document-format" operation attribute (or its default)?  There have been
> suggestions to have "xxx-exceptions" (collection) Printer Description
> attributes where "xxx" is the document-format that indicate for each
> interpreter explicitly which Printer attributes are specialized for it.
For
> example:  "application-postscript-exceptions" (collection) and
> "application-vnd-hp-pcl-exceptions (collection).  Or have a
> "set-all-interpreters" (boolean) Set-Printer-Attributes operation
attribute
> that sets all interpreters.
>
> We think that the Interpreter object is a fine way to model those
> implementations that have some Printer attributes whose values depend on
the
> interpreter.  However, we have the following comments about completing the
> mechanism.
>
> 0. REQUIREMENT:  It must be clear that the concept of the Interpreter
object
> is just a way of talking about the semantics at the interface between the
> client and the Printer object, i.e., the semantics of the IPP protocol,
and
> is not placing any requirement on the internal implementation to have an
> Interpreter object or not.  So add to the Notes that the introduction of
the
> Interpreter object is not specifying internal implementation of an IPP
> Printer.
>
> 1. REQUIREMENT:  It must be clear to the client whether the
> Set-Printer-Attributes operation is going to affect an attribute for all
> interpreters or just the target interpreter.
>
> 2. REQUIREMENT:  A client must be able to set the attributes for one
> interpreter or for all interpreters.
>
> 3. REQUIREMENT:  If an implementation doesn't support unique attributes
for
> different interpreters, then there is no added complexity than in the
> current Set spec.
>
>         4. To meet requirement 1, there needs to be added a Printer
> Description attribute that contains the names of the Printer attributes
> whose values returned differ among interpreters or could differ among
> interpreters.  Such a difference of values includes the case when an
> attribute is supported by one interpreter and not by another, i.e., when a
> value is returned by one interpreter and an attribute is not returned by
> another interpreter.  Such a Printer attribute returns different values,
> depending on the Interpreter, and so is said to be an Interpreter object
> attribute.  Here is the suggested definition for such a Printer
Description
> attribute:
>
> interpreter-unique-attributes (1setOf type2 keyword)
>
> This READ-ONLY attribute indicates which Printer attributes are
represented
> as Interpreter object attributes, i.e., potentially return different
values
> depending on the value of the "document-format" operation attribute
supplied
> by the client in the Get-Printer-Attributes request (see the
> Get-Printer-Attributes "document-format" operation attribute description
in
> [ipp-mod] section 3.2.5.1).  Any Printer attributes not identified by this
> attribute MUST be shared by all interpreters, i.e., always return the same
> values no matter what "document-format" is supplied in the
> Get-Printer-Attributes request.  If a Printer attribute is not supported
by
> all interpreters, then such an attribute is considered an Interpreter
object
> attribute by definition.  For implementations that support the
> Set-Printer-Attributes operation, the Printer attributes so identified by
> this attribute MAY include attributes that are settable as indicated in
the
> Printer's "printer-settable-attributes".
>
> This attribute MUST be supported by an implementation that supports
Printer
> attributes whose values can be returned with different values in a
> Get-Printer-Attributes request depending on the value of the
> "document-format" operation attribute supplied by the client.  This
> attribute, itself, MUST NOT be an Interpreter object attribute, i.e., its
> values MUST be the same for all document formats.
>
> Example:  Suppose a Printer supports PostScript, PCL, and text/plain with
> the following "xxx-supported" values where "copies" is the shared by all
> interpreters, "number-up" is supported by all interpreters but has
different
> values, and "orientation-requested" is supported only for 'text/plain':
>
> PDL         number-up-supported  copies-supported
> orientation-requested-supported
> ---         -------------------  ------
> -------------------------------
> PostScript  1                    1-10              <not supported>
> PCL         1                    1-10              <not supported>
> text/plain  1,2,4                1-10              'portrait', 'landscape'
>
> The implementation MUST support the "interpreter-unique-attributes"
> attribute because several Printer attributes return differing values.
Such
> an implementation returns the "interpreter-unique-attributes" attribute
> values: 'number-up-supported' and 'orientation-requested-supported' (no
> matter what "document-format" is supplied in the Get-Printer-Attributes
> request).
>
> The following responses are returned for a request that requests all three
> attributes:
>
> "document-format"        Response
> -----------------        --------
> application/postscript   number-up-supported=1, copies-supported=1-10
> application/vnd.hp-PCL   number-up-supported=1, copies-supported=1-10
> text/plain               number-up-supported=1,2,4, copies-supported=1-10,
>                          orientation-requested-supported='portrait',
> 'landscape'
>
> 5. To meet requirement 2, there needs to be an operation attribute added
to
> the Set-Printer-Attributes operation that the client uses to indicate
> whether the intent is to set (1) all Interpreter objects and the Printer
> object, (2) a single Interpreter object and the Printer object, or (3)
just
> the Interpreter object.  Here is the description of the
> Set-Printer-Attributes operation attribute:
>
> "attribute-scope" (type2 keyword)
>
> The client MAY supply this attribute.  The Printer MUST support this
> attribute if it returns Printer attributes with different values in a
> Get-Printer-Attributes request depending on the value of the
> "document-format" operation attribute supplied by the client.  This value
of
> this attribute indicates the client's intention with respect to Printer
> attributes that are common to all interpreters, i.e., are Printer object
> attributes, or are specific to an Interpreter, i.e., are Interpreter
object
> attributes.
>
> Standard keyword values are:
>
>     'all-interpreters-and-printer' - all attributes supplied either set
all
> Interpreter object attributes that support the attribute or set the single
> Printer object attribute
>
>     'single-interpreter-and-printer' - all attributes supplied either set
> the single interpreter or set the single Printer object attribute.  An
error
> is returned if the attribute supplied isn't either the specified
Interpreter
> object attribute or a Printer object attribute.
>
>     'single-interpreter-only' - all supplied attributes set the single
> Interpreter object only.  An error is returned if the attributes isn't the
> specified Interpreter object attribute doesn't support the supplied
> attribute or the attribute is a Printer attribute.
>
> Example:  Suppose that the "number-up-supported" attribute could be
settable
> for the PCL and text/plain interpreters, but not the PostScript
interpreter,
> the 'copies-supported' attribute could be settable for all interpreters,
but
> the 'orientation-requested-supported' could not be set for any
interpreters.
> Then the value of the "printer-settable-attributes" MUST be
> 'copies-supported' and 'number-up-supported' when the document-format is
PCL
> and 'text/plain' and 'copies-supported' when the document-format is
> 'application/postscript'.  Also, since the value of "number-up-supported"
> could be different after being set, the "number-up-supported" MUST be a
> value in the "interpreter-unique-attributes" attribute (for all
> document-formats).
>
> Pictorially, the Printer object and the Interpreter objects can be drawn
as
> follows:
>
> Printer object
> +---------------------------------+
> |"copies-supported"=1-10(settable)|
> +---------------------------------+
>
> PostScript Interpreter object
> +-------------------------------------+
> |"number-up-supported"=1(not-settable)|
> +-------------------------------------+
>
> PCL Interpreter object
> +---------------------------------+
> |"number-up-supported"=1(settable)|
> +---------------------------------+
>
> text/plain Interpreter object
> +-----------------------------------------------------------------------+
> |"number-up-supported"=1(settable)                                      |
> |"orientation-requested-supported"='portrait', 'landscape'(not-settable)|
> +-----------------------------------------------------------------------+
>
> Set-Printer-Attributes
> ----------------------
> Attempt to set "copies-supported"
>
> - "attribute-scope"='all-interpreters-and-printer'
> Sets the "copies-supported" Printer object attribute for all
> "document-format" values
>
> - "attribute-scope"='single-interpreter-and-printer'
> Sets the "copies-supported" Printer object attribute for all
> "document-format" values
>
> - "attribute-scope"='single-interpreter-only'
> Returns an error and does not change the "copies-supported" Printer object
> attribute
>
> Attempt to set "number-up-supported"
>
> - "attribute-scope"='all-interpreters-and-printer'
> Fails for each "document-format" values because not all Interpreter
objects
> have this attribute as settable.
>
> - "attribute-scope"='single-interpreter-and-printer'
> Succeeds for "document-format" = PCL and text/plain, fails for PostScript
>
> - "attribute-scope"='single-interpreter-only'
> Succeeds for "document-format" = PCL and text/plain, fails for PostScript
>
> Attempt to set "orientation-requested-supported"
>
> - "attribute-scope"='all-interpreters-and-printer'
> Fails for each "document-format" values because all Interpreter objects
> either have this attribute as not-settable or do not support the
attribute.
>
> - "attribute-scope"='single-interpreter-and-printer'
> Fails for each "document-format" values because all Interpreter objects
> either have this attribute as not-settable or do not support the
attribute.
>
> - "attribute-scope"='single-interpreter-only'
> Fails for each "document-format" values because all Interpreter objects
> either have this attribute as not-settable or do not support the
attribute.



More information about the Ipp mailing list