Hi Richard, further comments in-line ... > IMHO WS-RM 1.1 is the right way to do WS-RM, because this spec. > addresses unacknowledged anonymous messages use case (see WS-MakeConnection) > This usecase wasn't addressed in WS-RM 1.0 and so I consider > this old RM spec. broken.
Absolutely, the MakeConnection mechanism is the biggest motivation for moving to 1.1. > I don't see the relevant source code for CXF bus integration? Well the "bus integration" is just the addition of the RM interceptors to the Bus-level interceptor chains as opposed to the per-endpoint chains. > Could you give me the pointer to impl or test? The interceptors can be added explicitly to the Bus-level chains a la: http://svn.apache.org/viewvc/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/rminterceptors.xml?revision=773965 or implicitly by setting the <wsrm-mgr:reliableMessaging> feature on the Bus instance, e.g.: http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/ws_rm/src/demo/ws_rm/server/ws_rm.xml?view=co > And how is the integration with other WS-* technologies? Well WS-RM requires WS-Addressing, so these will always be working together. What other specific WS-* services did you have in mind? > I mean do CXF WS-RM support e.g. WS-RM with WS-Security? I don't believe we've done any specific testing of WS-Security with WS-RM. Dan may have a better sense of this, but off the top of my head there *may* be issues with re-transmitted messages (e.g. replay detection may get in the way, though I guess if the message went un-acknowledged in the first place, the original message may never have been seen by the WS-Sec layer). > If I have two RM responses comming from the server (I mean RM responses with real SOAP response). > How this is handled? User should take care of that there can be more than just one async SOAP response? > What if client will use synchronous JAX-WS api? There is no problem with a client having multiple outstanding requests to the same server/endpoint. WS-Addressing message correlation will ensure that each response is correlated to the corresponding request (requests contain a <wsa:MessageID> header which is then referenced in the response's <wsa:RelatesTo> header). This is true whether the request is made via JAX-WS async (a purely client-side thread-based mchanism) and/or is decoupled (in which case the server sends the response over a *separate* server->client connection). Similarly it would also be true when the WS-RM 1.1 MakeConnection mechanism is supported. > Well this should be addressed in JAX-WS spec otherwise this would leave to proprietary client side API > for manipulating the client RM store. Let's see what will come out with next metro release. AFAIK > the Sun folks are working on RM 1.1 at the moment there. Yes, it would have to be proprietary if the JAX-WS spec doesn't address this issue. But when you say "should be addressed in the JAX-WS spec", do you mean in 2.3? I haven't heard that JAX-WS 2.2 will address this. Cheers, Eoghan 2009/6/18 Richard Opalka <ropa...@redhat.com> > Hi Eoghan, > > see in lined comments below: > > Richard > > Eoghan Glynn wrote: > >> Hi Richard, >> >> Apologies for the delay in replying. >> > NP > >> Please see my comments in-line. >> >> 2009/6/15 Richard Opalka <ropa...@redhat.com>: >> >> >>> what's the current state of CXF WS-RM? >>> >>> >> >> See below. >> >> >> >>> I'm asking because we'd like to integrate probably >>> WS-RM in our JBossWS CXF integration. >>> >>> >> >> Great that you're thinking of using CXF WS-RM. >> >> >> >>> The main questions are: >>> * Which WS-RM specs are supported now (I know about 1.0, is 1.1 supported >>> already)? >>> >>> >> >> Only WS-RM 1.0 (2005/02) is supported as yet. This was the current >> version of the spec when the original RM implementation was done as >> part of the Celtix project (the precursor to CXF). >> >> We've had some interest in WS-RM 1.1 and I intend to do a costing on >> the implementation effort soon, and hopefully will get the time to >> implement support for it in the CXF 2.3 timeframe. >> >> > IMHO WS-RM 1.1 is the right way to do WS-RM, because this spec. > addresses unacknowledged anonymous messages use case (see > WS-MakeConnection) > This usecase wasn't addressed in WS-RM 1.0 and so I consider > this old RM spec. broken. > >> >> >>> * Is QoS (Quality of Service) ensured in CXF WS-RM implementation? >>> >>> >> >> Well yes, in so far as the qualities of service envisaged by the WS-RM >> spec as concerned. So for example the policy with regard to ordering >> and duplicates may be asserted via the >> /ws-rm-policy:RMAssertion/ws-rm:deliveryAssurance element in config >> (see schema[1]). >> >> However other QoS typically available in the MOM world, such as >> message expiration/TTL and priority, are not part of WS-RM. >> >> > I'm asking about 2.4 Delivery Assurances (see WS-RX 1.1 specification) > Thus I consider you respond "yes" from this point of view ;) > >> >> >>> * Is current CXF WS-RM implementation tightly coupled with Endpoint? >>> >>> >> >> Well, CXF WS-RM can be configured on a per-endpoint basis, or for the >> entire Bus. >> >> > I don't see the relevant source code for CXF bus integration? > Could you give me the pointer to impl or test? > >> However, internally the WS-RM layer creates an RMEndpoint for each >> org.apache.cxf.endpoint.Endpoint with which a reliable exchange >> occurs. >> >> So that sense there is a certain one-to-one-ness going on. Is that >> what you meant by being tightly coupled? >> >> Or were you more thinking of using WS-RM to mediate message exchanges >> with something other than CXF endpoints? >> >> > And how is the integration with other WS-* technologies? > I mean do CXF WS-RM support e.g. WS-RM with WS-Security? > > >> >>> * Is there some API for client side when receiving undelivered messages? >>> >>> >> >> By undelivered messages, do you mean un-acknowledged messages that >> have been resent? >> >> If the original client is still running, then the retransmitted >> response message will be delivered to the application in the normal >> way (either by virtue of the invoking client thread being blocked, or >> via a callback or pollable for an asynchronous invocation). >> >> > If I have two RM responses comming from the server (I mean RM responses > with real SOAP response). > How this is handled? User should take care of that there can be more than > just one async SOAP response? > What if client will use synchronous JAX-WS api? > >> However, if the client application has been restarted since the >> original request was sent, then there is no way currently for the >> resent message to rendez-vous with the application logic. This >> deficiency was clear to us when the original RM implementation was >> done, and we had at the back of our mind the intention to do something >> about it, via some sort of persistent callback mechanism. Any ideas >> you might have in this regard would be welcome. >> >> > Well this should be addressed in JAX-WS spec otherwise this would leave to > proprietary client side API > for manipulating the client RM store. Let's see what will come out with > next metro release. AFAIK > the Sun folks are working on RM 1.1 at the moment there. > >> >> >>> Where I could find it? >>> * Is there some detailed architecture documentation about CXF WS-RM? >>> >>> >> >> No, unfortunately. >> >> > Hmm :( > >> Hope this helps, >> Eoghan >> >> [1] >> http://svn.apache.org/repos/asf/cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager-types.xsd >> >> > > > -- > Richard Opalka > JBoss Software Engineer > > Mail: ropa...@redhat.com > Mobile: +420 731 186 942 > >