Ed, as usual you're right on target because..

>For example, a local inter-bean call could be a lightweight call that was:
>* in-process
>* used pass-by-reference
>* had no stub, nor skeleton
>* had a very thin EJB object that did not add a great deal of middleware to
>the call, such as security checks (After all, why would you ever need to do
>a security check when an Order calls a LineItem?  You'd want that security
>check to happen when the client calls the Order, but not when the Order
>calls the LineItem).


.. <vendor>E*Boss 2.0 will support all of the above. You're absolutely correct</vendor>

>A remote inter-bean call could be:
>* out-of-process
>* used pass-by-value
>* had a stub and skeleton
>* have a thick EJB object with a great deal of middleware, such as
>transactions, security, and other middleware checks.

You're correct, except <vendor>E*Boss 1.0+ never have thick EJB objects or 
stubs/skeletons. We just stick with thin, or non-existent really, and that works just 
great in all cases :-) </vendor>

>As I understand it, the Inprise Application Server as well as others allow
>you to optimize inter-bean communications in a similar way to the above
>proposal.  Would this not allow the application developer to make a more
>fine-grained object model?

Absolutely, although to my knowledge <vendor>E*Boss is the only EJB container that 
supports the intra-vm optimizations as well as them very thin EJB-objects thing 
</vendor>.

>There are problems I can see with this proposed approach.  The ones most
>obvious to me are:
>
>* I do realize that Inprise has done this in a proprietary way, and there is
>no standard from Sun for a local verses a remote bean.

Well, there are two points here. If you do call-by-reference that's going to change 
semantics, but if you only bypass the network layer and have the thin EJB-object thing 
in both cases then there really are no issues.

And, as a coincidence, <vendor>E*Boss supports that</vendor>.

>* RMI marshalling semantics are not preserved when a developer writes an
>application that:
>        * Leverages local inter-bean calls

Not necessarily. You can do intra-vm optimizations and still do pass-by-copy. 
<vendor>We do that by defult, but have the option to skip the copying.</vendor>

>        * Relies on RMI pass-by-reference semantics

True, although relying on it would be bad programming style anyway.. (I mean, the bean 
being called shouldn't modify the parameters!)

>        * And then, that bean is then redeployed into a container that does not
>support local inter-bean calls, violating the pass-by-reference semantics,
>and changing the application

See above.

>But if Sun standardized on a formal way of controlling local vs remote
>inter-bean calls, then both these issues would be solved.  For example:

<vendor>
Well... in our case we:
1. Always have thin EJB-objects=cheap to do EntityBeans
2. Can set call semantics on a bean basis. If you're doing it right then you're ok, 
but if not, you can still benefit from skipping the RMI-stack.
</vendor>

>This technique would solve both the problems I eluded to earlier with
>dependent objects:
>
>1) You can access a 'local' bean without going through its parent, since a
>'local' bean is still an entity bean.  Not true for dependent objects.
>
>2) You can promote a 'local' bean to a 'remote' bean without changing its
>clients, since both are entity beans.  Not true for dependent objects.
>
>What do you think?

<vendor>As above. In E*Boss there really is no penalty for doing it, so.. we don't 
care really. :-) </vendor>

/Rickard

ps. Sorry about the extreme <vendor> thing, but I'm at a conference and am all worked 
up and excited about it, ok..!! :-)))
pps. The url is http://www.ejboss.org, soon to be http://www.eboss.org
ppps. Did I mention it's OpenSource (=Free!)? Ok, well, it is.

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to