From: David J. <dav...@ad...> - 2003-04-26 18:51:31
|
On 2003.04.26 09:35 Jeff Haynie wrote: > One of the things Tom and I are talking about is updating the locator > URI to have the path portion of the URI contain an actual remote object > reference (something like an IOR) which would allow you to resolve an > object right down to the object path itself. This of course would mean > different things for different subsystems. For example, for a JMX > subsystem, it could be an ObjectName. It could be a GUID for other > subsystems that dynamically created objects (maybe AOP). > > The power of this is that you could basically build a locator directly > to an object for invocation, vs. just the location of the remote > connector. Put a ActivationIntercptor in front of this on the remote > side, and you could very easy build activaction services which > automagically create services/objects/EJBs, etc. on the fly based on > activation policies. > > Not much changes to make this work since the locator URI already has the > path attribute - its just not currently being used on either end. This would be fine with me if there is a way to extract a key that only indicates the remote identity. I need this to keep track of XAResources for the dtm. I'm wondering if we can simplify/unify the invocation objects at least between AOP and remoting. I haven't looked at everything involved, but I wonder what your thoughts on changing the ClientInvoker invoke signature from public Object invoke (String sessionId, String subsystem, String method, Object params[], String signature[], Map sendPayload) throws Throwable to public Object invoke (String sessionId, String subsystem, Object payload) throws Throwable would be. The payload could have some structure if necessary. The reason for this proposal is that both AOP and ejbs are more or less abusing the current signature by: method = "invoke" params = {Invocation Object} sig = {Invocation Object's class name} The method, params, sig, and payload aren't actually used in ClientInvoker, but I haven't looked through the rest of the code. david <snip> |