[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [soa-rm-ra] Message and Action Distinction
When using two people as an analogy, it is a true statement to say that an initiator conveys a message in some form to get another person to perform some action. One analogy in computing is the EJB MessageDrivenBean OnMessage Handler. onMessage(Message msg) { try { if (msg instanceof SomeMessage) { Perform Action; } else if (msg instanceof SomeOtherMessage) { Perform SomeOtherAction; } ... } catch (...) { ... } } I've developed web services using this concept. The consumer had a proxy generated with a sendMessage(Message msg) and the provider had an onMessage(Message msg) that was also generated. All communication code in between the sendMessage and onMessage was generated to abstract out marshalling/unmarshalling of data and the communication protocol. The message name conveyed the action. Using this method, code could be generated for any protocol between the services without affecting consumer/provider code. This is similar to the following in WSDL. <message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> However, in this example of WSDL the message is the parameter of the operation/action and something like the following could be defined: <operation name="DoGoodThings" pattern="http://www.w3.org/2006/01/wsdl/robust-in-only"> <documentation>Invoke this operation no input</documentation> <input element="#none"/> </operation> There is no message defined in this model, only an operation/action. Trying to explain the difference here is similar to trying to explain a difference between a service and an object. I'm ok with the message being the conveyer of an action. The context of the message is what provides the flexibility of multiple actions on one message and vice-versa. I think it is important that we are clear about how we achieve the flexibility of separation of action and message as defined by the Behavior Model and Information Model. As Frank described, if you scratch your nose at an auction you place a bid. If you scratch your nose at the dinner table, people may not want to sit next to you. Danny --- Francis McCabe <frankmccabe@mac.com> wrote: > Here is an example of what I think of as the > relationship between > messages and actions: > > In an auction (a real one where people are sitting > on chairs > listening to the auctioneer and making bids by > scratching their > noses) people do not physically come over to the > auctioneer and write > on his note pad when they want to make a bid: they > communicate. > > From the point of view of a mind running in > someone's brain, there > is not that much distinction between moving the > muscles of the larynx > or moving the muscles of the leg: they are both > physical actions. The > choice between them depends on a judgement of > effectiveness -- in the > right context (the execution context?) by moving the > larynx in the > appropriate way, the actions involved can achieve > the goal of making > a bid. > > So it is with acting on a service, in the context of > the Internet, > the appropriate activity needed to achieve the > action on the service > is the sending of the message. In that sense, the > message (or, more > accurately, the activity of sending and receiving > the message) counts > as performing the requisite action on the service. > > Of course, with a service interaction, just as with > a bid in the Art > auction, the right message must be exchanged. Almost > certainly, one > which has separable parts like the operation code, > any document > arguments and so on. > > > On Jan 22, 2007, at 10:02 PM, Danny Thornton wrote: > > > During the last conference call, we discussed the > > relationship of the action to message. This was > for > > the interacting with services section. One of the > > discussions focused on whether the message > contains > > the action or whether the message is like a > parameter > > to the action. > > > > One interpretation for message can be that the > message > > is data sent to the service, data the service will > > unmarshall and act upon. The action itself may or > may > > not require a message/data. > > > > Another interpretation for message is that the > message > > itself specifies the action. An action is always > > conveyed with a message. > > > > The first interpretation is a conceptual > distinction > > between action and message. The second > interpretation > > is more literal in nature, to interact with a > service > > requires an electronic transfer. Any form of > > electronic transfer is a message. > > > > Hmmm... Other Thoughts? > > > > Danny > > > > > > > > > ______________________________________________________________________ > > > ______________ > > Do you Yahoo!? > > Everyone is raving about the all-new Yahoo! Mail > beta. > > http://new.mail.yahoo.com > > ____________________________________________________________________________________ Food fight? Enjoy some healthy debate in the Yahoo! Answers Food & Drink Q&A. http://answers.yahoo.com/dir/?link=list&sid=396545367
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]