[wsf-c-dev] [wsf-php] RM API

Samisa Abeysinghe samisa at wso2.com
Mon Feb 5 19:10:28 PST 2007


nandika wrote:
> hi all,
>
> For adding reliable messaging support to we need to add following.
>
> *Client Side*
>
> Additions to WSClient  Options array.
>
> 1) Enabling RM and specifying RM version
>  
> "reliable" => TRUE | 1.0 | 1.1
>
> 1.0 for RM  version 1.0
> 1.1 for RM  version 1.1
> Default RM version will be 1.1 , If user specified TRUE , rm  version 
> will be 1.1.
I thought we cannot support RM 1.0 with PHP. Same channel is in 1.1, and 
we could support dual channel with PHP (and I don't think we should) .
So does it make sense to have 1.0 in option list?
>
> In addition , user should have specified required addressing options 
> for RM to be enabled.
What addressing stuff are required? Can we enable those by default if RM 
is in use?
>
> 2) Whether to offer a response sequence.
>
> "offer" => TRUE | FALSE
>
> Default value is FALSE.
"offer" does not indicate that is it talking about  "response sequence", 
shall we use "response_sequence" instead?
>
>
> 3) Identifier for sequence
>
> "Identifier" => "unique identifier key"
>
> If this is not specified, a key will be generated internally.
Why "Identifier" and not "identifier"? Again, I think identifier is too 
generic. It does not indicate it is an RM option. What if we use 
"sequence_identifier"?

Also, as we support more and more spec and we introduce more options, 
would it not be a good idea to have a prefix to indicate which spec this 
option belongs to?
e.g. "rm_sequence_identifier",  "rm_response_sequence" etc.
>
> 4)
> Need a way to specify when to send the "TerminateSequence" message.
> This we can't do with options array as this option should be set after 
> multiple calls to
> $client->request() function.
>
> We came up with three possible options.
>
>     i) add a functions setLastMessage(TRUE|FALSE) to WSClient
>           default will be FALSE
What would setLastMessage(TRUE) do? and What would setLastMessage(FALSE) do?
Do we need a parameter at all?
Why not have a function like $client->rmTerminate(); ?
>
>     ii) add a function setOption() to WSClient.
>         setOption(array of options)
I cannot remember the reason exactly but I think we decided not to have 
such a function at some point. Anyone remember why?
>
>     iii) add an optional argument array to WSClient's   'request' and 
> 'send' functions so that request
>         and send functions will be as.
>                        request( mixed payload [, array of options])    
>                   
>                        send( mixed payload [, array of options])
>           
>            -this allows us to  specify this 'request | send ' specific 
> options.
This looks OK. However, how often are we going to need this sort of 
request/response specific options? If it is occasional (and as of now, 
we only have the RM case) we better not use this and add unnecessary 
noise to request, send methods.
>
>   All of these allows us to specify to the WSClient object to send the 
> "TerminateSequence" after the application message.
>    If we go for one of last two, we can use
>             "lastMessage"=> TRUE | FALSE    for the options array 
> specify that current application message is the last message
>
>     What is the better solution or is there a better way of doing this ?
>
>
> *Server Side
> *
> Additions  to WSService object constructor's options array
>
> To engage RM for server side
> "reliable"=> TRUE
>
> addressing should also be engaged.
Again, can we engage addressing by default if RM is already engaged?

Samisa...





More information about the Wsf-c-dev mailing list