You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Steve Loughran <st...@apache.org> on 2006/02/20 12:32:09 UTC

[Axis2] WSRF impl (was Re: [Axis2] Things I can work on)

Srinath Perera wrote:
> Hi Eran;
>>  - Resource framework implementation (WS-RF) and Enterprise web services
>>  such as JSR 109 support
>> - Completion of interop tests
>>  This is done.
> Do we have a WSRF impl for Axis2? where can I find more info .. I
> guess chathura will be intersting on knowing more

I have some bits of WSRF support in the CDDLM deployment API impl, 
though it aint currently building against SVN_HEAD as things got moved 
around since I last built it. You can check it out and look at it (under 
http://sourceforge.net/projects/smartfrog , CVS area 
/core/components/deployapi ), but remember this is LGPL.

most stuff is here:
http://cvs.sourceforge.net/viewcvs.py/smartfrog/core/components/deployapi/src/org/smartfrog/services/deployapi/transport/wsrf/

My design has the following features
  -it uses ?id=value as a way of distinguishing resources, rather than 
other aspects of WS-A, other bits that have worse interop.

Every resource does its properties as  map of QNAme->Interface mappings, 
the interface provides access

public interface WSRPResourceSource {

     /**
      * Get a property value
      *
      * @param property
      * @return null for no match;
      * @throws BaseException if they feel like it
      */
     OMElement getProperty(QName property);
}

(yes, its read only props right now).

When messages hit an endpoint, WSRF messages are either handled or 
rejected as not yet implemented:
http://cvs.sourceforge.net/viewcvs.py/smartfrog/core/components/deployapi/src/org/smartfrog/services/deployapi/transport/wsrf/WsrfEndpoint.java?view=markup


Operations get handed off to a processor that turns them into Xom and 
dispatches them.

The goal of this design is to eliminate any implicit mapping from WSRF 
resources and java instances. the resources refer to deployed things 
that may be hosted on other boxes, but can be located and manipulated 
under Axis through some lookup mechanism (e.g. query a tuple space for 
information mapping a jobID to a node.) I need this for high 
availability work, where axis can come and go but refs remain valid.


-steve




So: