Hi guys,

I won't be able to make IRC today but please feel free to go ahead and discuss conversations. I've looked at Igancio's slides (thanks, these are really extensive!) and I think adding the callback wire to the reference is a good way to start with and see where we get. I'll respond it more detail, but I think there are a number of things we have to work out:

1. How to dispatch to the correct callback instance. In the simple case when the callback interface is implemented by the client, we could have the TargetInvoker use PojoAtomicComponent.getInstance(), which delegates to a scope container, in this case a conversational one that could serialize and deserialize state if needed (or a stateless container if it is a stateless callback). In the remote case, the binding would be responsible for setting the correct conversation id in WorkContext from protocol specific information so that the scope container can determine the correct instance.

The difficulty comes in when ServiceReference.setCallback() is used by a client to manually set the instance, in which case it is not the original client. We need to have some way to correlate back to the correct callback instance. We could model this in JavaAtomicComponent or we could perhaps do something where a dynamic component is created on the first cann to setCallback for a component type and instances are managed like any other component instance. I initially liked the former, but the problem is we will also impact scopes since we would need to have something like getCallbackInstance(..). If we could do it where callback invocations happen just like any other service invocation, I think we will be able to keep things simpler.

2. We need to get the host API supporting callbacks. The reference would use the host API to register itself as a listener with a binding as opposed to talking directly with the binding. This will allow us to decouple the callback infrastructure from particular bindings. Jeremy may have some thoughts on this.

3. We will need to have a conversational scope container and persistence service

4. I'd like to hook in Meeraj's work manager into this as well.

5. Also, Ignacio, could you also detail more on if you think TargetInvoker's need a non-blocking invoke method and why there may be different ones for Remote and Local?

I'll think about 1 a bit more since these are just some initial thoughts having gone through the slides. Perhaps we can iterate through some ideas on the list and I'll be on IRC tomorrow too? Once we start getting a basic flow, perhaps we could potentially put things in a sequence diagram to see how things flow, which will also help us to see areas we can divide up to work on.

Jim


On Jul 8, 2006, at 6:51 AM, Jeremy Boynes wrote:

On Jul 8, 2006, at 4:21 AM, Jim Marino wrote:

Great. Sorry I was out on vacation Friday. One thing we may also want to look at is having the notion of priority queues. It's probably something we can add in.

Who knows, Meeraj's implementation may already do that :-)


We may also want to look at Jetty 6 as they have abstracted out the thread pooling mechanism. I was thinking we would eventually want to have Jetty as a transport system service and we may want to control thread pooling from the work manager service (not necessarily one pool for everything, but one place for configuration and management of all the pools).

Jetty6 is one of the ones that does this and linking the two together would be a good way to go.


In the context of an OSGi container, having Jetty and other transports a system services deployed in different composites seems like a way to have a really flexible runtime story.

That's probably a different thread :-)
--
Jeremy




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to