[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [sca-assembly] [ASSEMBLY-249] Need some notion of "callback"address in conjunction with eventing
Hi Mike, More good questions! On 10/29/10 2:41 AM, Mike Edwards wrote: OF653EFD69.717EC682-ON802577CB.00333DC6-802577CB.0034E56D@uk.ibm.com" type="cite"> Possibility #1 - we adopt something like the "autowire" notion I filed. Explicit wiring would be counterproductive, if not impossible. Possibility #2 - Components A, B, and C produce messages to send to D, in some situations D may send feedback information back to a reply-to address. Since there are multiple components "producing" messages, the only way I see to simulate this in the current model would be to establish three different consumers on D, one for each of A, B, and C. Of course, now we've actually coupled the shape of the solution, when a pub-sub environment should let me decouple them. Possibility #3 - Components A, B, and C produce messages to send to all of D, E, and F. If D, E, and F might choose to send back any sort of response to the "producing" components, we're back to a combinatorial wiring explosion, rather than simply modeling something like a JMS Topic as the binding for the channel. OF653EFD69.717EC682-ON802577CB.00333DC6-802577CB.0034E56D@uk.ibm.com" type="cite">This is definitely an important question. I don't have a clear-cut answer. My instinctual reaction suggests that this question should be at least partially out-of-scope to SCA itself. Modeling semantics around complex interactions is beyond what SCA needs to do. But we probably have to capture some simple ones. One answer is actually quite simple. The contract is partially implied by the message payload, and the presence of a "reply-to" address on the consumed message. If the producer of the message doesn't send a "reply-to", that's OK, but if they do, then there's probably semantics related to the payload that deserves some kind of "response." Another possible answer relates to a point that I think TIBCO (mostly me, really) have been remiss in following-up on. There doesn't seem to be a particular reason why you couldn't actually use a WSDL like contract to describe some of these interactions - it is just that the communication is done via events, rather than via HTTP request/reply. OF653EFD69.717EC682-ON802577CB.00333DC6-802577CB.0034E56D@uk.ibm.com" type="cite"> #1) Nature of implied a-synchronicity #2) "Reply" messages could be zero to many, as in: order-received, order-processed, order-packaged, order-shipped, order-in-transit, order-appears-to-have-arrived. Further, it is possible that the "reply-to" destination is not a queue, but a topic, in JMS terms. OF653EFD69.717EC682-ON802577CB.00333DC6-802577CB.0034E56D@uk.ibm.com" type="cite"> I think we're actually saying the same thing here, but I apparently expressed it poorly. The declaration of the component in the composite, and the producer identified therein strikes me as the likely place to identify the "reply-to" consumer destination. I think that's the file that the "assembler" you refer to creates/edits. So I conclude (correctly?) that we agree. OF653EFD69.717EC682-ON802577CB.00333DC6-802577CB.0034E56D@uk.ibm.com" type="cite"> I have not been assuming that there's any sort of one-to-one relationship. What we may be missing is some sort of notion of whether an event is sent to a Topic or to a Queue. There's not necessarily a single consumer, but there may be a single responder.... What you may be pointing out is that I lifted up a rock, and there are a bunch of bugs crawling around underneath. Hmmm. OF653EFD69.717EC682-ON802577CB.00333DC6-802577CB.0034E56D@uk.ibm.com" type="cite"> Perhaps these are different questions, or perhaps they are different parts of the same one. Maybe one of those many components delivering messages to a channel might include a "reply-to" address, and that "reply-to" might not be back to itself? -Eric. OF653EFD69.717EC682-ON802577CB.00333DC6-802577CB.0034E56D@uk.ibm.com" type="cite"> |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]