← Prev in month ← Prev in thread
Next in thread → Next in month →

ISSUE-156: Intent annotations are missing from Java CAA as compared toPolicy FW spec - proposal v1

From
David Booz <>
Date
2009-08-20T15:40:31+00:00
ID
Thread
ISSUE-156: Intent annotations are missing from Java CAA as compared toPolicy FW spec - proposal v1
This is a broad issue. In order to minimize rework for myself, I've put together an analysis of the differences between the intents defined in the Policy FW spec [2] and the Java annotations in the CAA spec [3]. See the table below.

It is important to remember that the CAA spec defines the @Requires annotation which can be used to specify a list of any intents, regardless of the namespace which contains the intent definition. Given this, I think we should only define annotations for the commonly used intents because intent specific annotations are really just a developer friendly equivalent to the @Requires() form.

The table lists intents defined in the Policy FW spec along side the related annotations for the Java CAA spec.  I noted where there is a "gap" that I'd propose to fill with a specific Java annotation.  Before I spend time writing up a bunch of text, I'd like to have a discussion (email or telecon) to get a sense for other opinions.  I don't feel strongly about some of the choices I've made.  

Here's the rationale for each choice:

1) MutualAuth is a commonly used mechanism, but is it appropriate to be hard wired into the Java POJO?

2) Authorization is quite common also, but on it's own doesn't mean much.  A policySets will always be needed to satisfy the intent. 

3) Transactions - Since transactions are integral to business logic in a pojo, I chose the most common usages of transactions; @ManagedTransaction for specifying global or local trans, @NoManagedTransaction for simple cases, @ManagedSharedTransaction (a profile intent) because it represents a very common global transaction pattern.  I feel quite strongly that these need to be Java annotations.

4) The rest of the intents that don't have a specific Java annotation defined, just don't seem quite common enough in Java POJOs to justify a specific Java annotation. Blindly creating a Java annotation for each Policy FW defined intent seems like overkill.

Policy FW Spec              Java CAA Spec

----------------            -------------------

N/A                         @Requires - for specifying any intent in Java

N/A                         @PolicySets - for specifying any policySet in Java

serverAuthentication

clientAuthentication

authentication              @Authentication

mutualAuthentication        (gap)@MutualAuthentication

confidentiality             @Confidentiality

integrity                   @Integrity

authorization               (gap)@Authorization

atLeastOnce

atMostOnce

exactlyOnce

ordered

managedTransaction          (gap)@ManagedTransaction

noManagedTransaction        (gap)@NoManagedTransaction

transactedOneWay

immediateOneWay

propagatesTransaction

suspendsTransaction

managedSharedTransaction    (gap)@ManagedSharedTransaction

asyncInvocation

SOAP

JMS

noListener

EJB

[1] http://www.osoa.org/jira/browse/JAVA-156

[2] http://www.oasis-open.org/committees/download.php/33774/sca-policy-1.1-spec-cd02-rev3.pdf

[3] http://www.oasis-open.org/committees/download.php/32734/sca-javacaa-1.1-spec-cd03.pdf

Dave Booz

STSM, BPM and SCA Architecture

Co-Chair OASIS SCA-Policy TC and SCA-J TC

"Distributed objects first, then world hunger"

Poughkeepsie, NY (845)-435-6093  or  8-295-6093

e-mail:
← Prev in month ← Prev in thread
Next in thread → Next in month →