
Hi; The "neither" option is what frustrates me reading this. We want to expose public state, and yet apparently we have to keep implementors in mind that have no standard way to expose that public state. ... I reluctantly agree. I was operating under the assumption that at very least either WSRF or WS-Transfer would be an acceptable requirement. Not having any public state model requirement at all makes this a slightly different problem in my opinion. I believe that today's reality is that you can't assume universal WSRF or WS-Transfer support anytime soon. I think I'm with you now for the most part. I just have a problem with singling out one property over another in terms of which ones are "good enough" to have their own accessor operation. Especially if we allow for notifications, the activity status might be the least used and yet you are proposing that we make it the only property that gets it's own accessor operation. Perhaps it would be acceptable to create a hybrid operation that either takes an array of property QNames and returns those properties (ala WSRF's "GetMultipleResourceProperties"), or if the array is empty/not specified returns the entire public state document (ala WS-Transfer's "Get"). If we need a multiple-activity operation for the BES services, then just add another argument that is an array of activity EPRs and name the operation to distinguish it from the singular operation. I didn't mean to advocate that there be an explicit accessor function for only the activity status property. Rather I was advocating that there be accessor functions for each of the properties and that the interop standard mandate that there be at least the accessor function for returning an activity's status (in addition to the accessor function for returning all the state information for an activity). All other accessor functions would be part of extensions. In my response further down I explain why I prefer explicity accessor functions over a WSRF-style GetMultipleResourceProperties approach. This is essentially what I was pushing with my ambiguous public state model concept. What I wasn't considering was this new (at least to me) requirement for no public state model at all. If we can't assume a public state model, then we have to basically agree on some minimal reconciliation between WSRF and WS-Transfer since the BES spec implies some sort of public state model as a result of it's definition of statefull service properties. The two candidates seem to be the following: 1) Have named accessor operations for each property and one operation for obtaining the entire public state document, or 2) Have a single, generic operation that fetches either an array of properties or the entire set of public state properties. I would advocate taking approach 1 for the following reasons, derived from an explanation of a colleague of mine recently provided me: The advantage of the explicit accessor function approach, given the current tooling and suite of technologies that most of the world has, is that you can describe it completely using metadata (i.e. WSDL). The latter approach cannot be described in WSDL, hence the need to introduce the additional message exchange (GetListOfProperties). The disadvantage of the explicit accessor function approach is that you can't request more than one property at a time. You might ask why being able to describe the interface completely in WSDL/XSD matters. The reply to a 'GetState' request will have to be a message with open content... <properties> <xsd:any> </properties> Of course you can define in your specification that if property A is included in there, then the structure would look like <properties> <A> <foo /> <bar /> </A> </properties> However, now this description is in a human language specification and not in a machine-processable vocabulary. You have to manually make sure that you implement support for the various infosets before you can deal with the results. If you make an error in your implementation then the tooling won't help you - nor can the tooling help you with any kind of static analysis of your interface for correctness or security purposes. If you define explicit messages, then you can describe the structure using WSDL and XSD and you can point your favorite WSDL->Java or WSDL->C# tool at the WSDL document and everything will be generated for you. There would be no surprises because the two sides have agreed on a contract. Note also that such tools make the creation of client code for using a multitude of explicit accessor functions fairly painless. Marvin.