- From: Charlton Barreto <barreto@adobe.com>
- Date: Wed, 14 Mar 2007 07:07:05 -0700
- To: <public-ws-policy@w3.org>
- Message-ID: <0911261107CC9648A12399E739C6BEC2570A8D@namail5.corp.adobe.com>
See: http://www.w3.org/Bugs/Public/show_bug.cgi?id=4292 Title: Intersection mode is neither defaulted nor specified [v.next] Target: v.next of Framework specification ( http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-framework.h tml?content-type=text/html;%20charset=utf-8) 25 January 2007 Description: A potential problem exists with intersection mode selection. Intersection mode is not defaulted in the Framework specification, and mode indication is not specified. This leaves Framework open to implementations where a provider requires one mode and a client may or may not interpret it, and may or may not support that same mode. From the implementation perspective, a consumer will not be able to talk to a provider and not be able to report why. At present, a consumer can only detect that a service request has failed when intersection cannot be performed. Intersection rules as specified in Framework do not provide for a standard way of reflecting why intersection could not be performed - intersection can fail for reasons other than the policies incompatibility as driven by mode (e.g. a policy not being complete when intersection is attempted). Intersection may also fail due to poorly written policies which would not be compatible regardless of mode. Consider: Scenario 1: Entity A: Service policy requires that any intersections apply lax mode Entity B: Service policy requires that any intersections apply strict mode In the current Framework spec 1. Entity B attempts to use Entity A's service. Entity A's required lax mode conflicts with Entity B's required strict mode and Entity B's request will fail. 2. Entity B reports that the request failed, but cannot report why. For example, a provider of a service which handles LOB processing can provide a number of QoS which are exposed as policies. A consumer can effectively navigate which QoS (service interface) to use through its requirements. However, a consumer of an LOB processing service may be required to always apply either its own assertions or always accept the provider's base (e.g. always accepting the provider's base assertions as a way of certifying/validating it's interaction with the service). Scenario 2: Entity A: Service policy requires that any intersections apply strict mode Entity B: Service policy accepts strict intersection but, but the entity doesn't implement strict In the current Framework spec 1. Entity B attempts to use Entity A's service, but has not implemented handling of strict mode intersection and this fails in its request. 2. Entity B reports that the request failed, but cannot report why. For example, a provider has a service which, while ignorable, prioritises its policies (strict) - for example, an internet banking service which always requires its security and reliability policies to the exclusion of a consumer's requirements. However, certain consumers of this service type may be required to use their own security policies - they may not have implemented the capacity to use the provider's service with the provider's required security policy (thus supporting only lax). Either scenario highlights the fact that strict and lax mode, as ignorable is currently specified, can be used exclusively by either consumer or provider. As such, WS-Policy needs to address cases where they are used as such. Proposal: Specify the indication of intersection mode in the Framework spec and specify that the default intersection mode is strict. Spec text to add to Framework: The wsp:IntersectionMode element indicates the mode required by a policy assertion for intersection. The default intersection mode is strict. <wsp:IntersectionMode> <anyElementQName> standard-elements </anyElementQName> </wsp:IntersectionMode> The schema outline for this element is as follows: <wsp:Policy ... > ... <xsd:element ref="IntersectionMode" /> ... <xsd:element name="IntersectionMode" type="tIntersectionMode" /> <xsd:complexType name="tIntersectionMode"> <xsd:sequence> <xsd:any namespace="##other" processContents="lax" /> </xsd:sequence> </xsd:complexType> ... </wsp:Policy> The following describes the Element Information Item defined in the schema outline above: /wsp:Policy/wsp:IntersectionMode This attribute is of type wsp:tIntersectionMode. If the actual value (See XML Schema Part 1 [XML Schema Structures]) is "strict", the policy's supported intersection mode is strict. If the actual value is "lax", the policy's supported intersection mode is "lax". If the actual values are "strict" and "lax", the policy's supported intersection modes are "strict" and "lax". Omitting this attribute is semantically equivalent to including it with a value of "strict". Note that the proposed wsp:IntersectionMode provides for extensibility. As additional intersection modes are defined and implemented, this element can be used to specify their use. In the first scenario above, if Entity B could reliably consume the intersection mode emitted by Entity A in its policy, it could interpret that A requires lax; in the second, if Entity B could reliably consume the intersection mode emitted by Entity A in its policy, it could interpret that A requires strict. In either case, with the changes in this proposal, Entity B can: 1. Not fail and perform some other logic to manager the situation 2. Fail and report the actual cause of failure Best, -Charlton. Charlton Barreto Senior Computer Scientist Adobe Systems Incorporated 345 Park Avenue, MS E15 San Jose, CA 95110-2704 USA 408.536.4496 p, 415.692.5396 m charltonb@adobe.com
Attachments
- image/gif attachment: image001.gif
Received on Wednesday, 14 March 2007 14:07:56 UTC