← Prev in month ← Prev in thread
Next in thread → Next in month →

[ASSEMBLY-249] Need some notion of "callback" address in conjunction witheventing

From
Mike Edwards <>
Date
2010-10-29T09:37:43+00:00
ID
Thread
[ASSEMBLY-249] Need some notion of "callback" address in conjunction witheventing
Folks,

Some questions inline for clarification

Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.

Co Chair OASIS SCA Assembly TC.

IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.

Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  

Email:  

Eric Johnson <> wrote on 29/10/2010
00:11:47:

> [sca-assembly] NEW ISSUE: Need some notion of "callback"
address in 

> conjunction with eventing

> 

> Eric Johnson 

> 

> to:

> 

> OASIS SCA Assembly

> 

> 29/10/2010 00:16

> 

> Title: Need some notion of "callback" address in conjunction
with eventing

> 

> Target: Assembly 1.2 WD 01

> 

> Description:

> For some uses of eventing, the point of using an event driven system
is 

> to decouple a collection of asynchronous interactions.

> 

> For example component A sends a message to component B, and A directs
B 

> to send a response to component C.

First question here is why this type of behaviour
is not simply achieved in 

SCA by using the composition itself?  That is,
I can create a composition

of components A, B, C where a producer of A sends
messages to a consumer

of B and a producer of B sends messages to a consumer
of C.

Second question relates to the nature of the contract
here.  How does 

component A even know that component B will produce
a "response" following

the receipt of some message from A? Decoupling actually
implies this - that

component A can have no expectations of what component
B will do when

receiving a given message.  It may be known to
the assembler, but decoupling

implies that it is not known to the component writer...

I get the feeling here that you're really trying to
describe a service

style interaction based on asynchronous one-way messages.
 No problem with

that, but why not use services & references for
that?

> 

> JMS, for example, includes the JMSReplyTo property.  This allows
for 

> asynchronous communications, and allows for the sender to dictate
where 

> the response should go, eliminating any direct architectural coupling
of 

> the receiver with the sender.

Why should the sending component be the one to make
these decisions rather

than the assembler who is composing some set of components
into a coherent

application?

> 

> For the purposes of eventing in SCA, it is desirable on the "producer"

> side to send a message with a "reply" address pointing to
some other 

> consumer (or channel) on the component, or in the composite.

> 

> Likewise, on the consumer side, it may be useful to tie that consumer
to 

> an "unwired" producer, where that producer never gets wired
to anything 

> but rather sends to the destination received by the consumer.

I simply don't understand the last sentence "sends
to the destination

received by the consumer" - can you explain further
please?

I also note in the description here that there seems
to be an assumption

of direct connections from consumers to producers
- or have I misunderstood?

The current model is essentially a pub/sub mediated
kind of model, where the

channels act as multiplexers connecting a group of
producers to some group

of consumers - there is no implication of a 1-to-1
connection.

I'm not against 1-to-1 connections, but it is necessary
to make them part of

the model first.

> 

> Abstract proposal:

> 

> In the case of a producer expecting a "reply", change the
"producer" on 

> a component so that it includes something like a "@replyTo"
attribute.

This seems to make big assumptions about how the target
component will

behave - the target may have 0 producers, 1 producer,
multiple producers

and may produce 0, 1, or many events in response to
a given message.

What should happen in the case of 0 events or of multiple
events being

produced by the receiving component?

More sophisticated components may produce events only
in response to

multiple events that may arrive from different producers.
 How should 

such events be treated?

> 

> In the case of a producer sending a "reply", change the
producer to have 

> a "inReplyTo" attribute that names a particular consumer
on the same 

> component (@target attribute & @replyTo attribute not allowed)

> 

> -Eric.

> 

> ---------------------------------------------------------------------

> To unsubscribe from this mail list, you must leave the OASIS TC that

> generates this mail.  Follow this link to all your TCs in OASIS
at:

> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php

> 

Unless stated otherwise above:

IBM United Kingdom Limited - Registered in England and Wales with number
741598. 

Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
← Prev in month ← Prev in thread
Next in thread → Next in month →