You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Nader Aeinehchi <na...@aeinehchi.com> on 2004/04/25 11:44:00 UTC

Question: Inter JVM communication?

Hello

Does Merlin has/specifies any mechanism for communication among different JVMs?

Consider the following two examples:

1. How does Component A in JVM1 find ServiceB in JVM2?
2. How does an event/message produced by ServiceB in JVM2 sent to ComponentA in JVM1?


Best Regards
 
--
Nader Aeinehchi
Aasenhagen 66 E
2020 Skedsmokorset
NORWAY
Direct and Mobile +47 41 44 29 57
Tel (private): +47 64 83 09 08
Fax +47 64 83 08 07
www.aeinehchi.com


Re: Question: Inter JVM communication?

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tuesday 27 April 2004 22:35, Alex Karasulu wrote:
> > Jini builds upon the concept of "leasing".  

> That's a very interesting mechanism.  Does that do away with things like
> stale handles now that we know a handle is useless after the lease period
> is up?

Yes it does. The support class in the Jini Kit handles the Leasing for you 
(both client and server side).
However, even in non-JINI, in RMI there is a remote garbage collector that 
will release references to the Remote objects (I think the default is 2 
minutes, otherwise 10 ).
If you use other network protocols, you will need to attend to this somehow...

Niclas
-- 
+---------//-------------------+
|   http://www.bali.ac         |
|  http://niclas.hedhman.org   |
+------//----------------------+

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


RE: Question: Inter JVM communication?

Posted by Alex Karasulu <ao...@bellsouth.net>.

> -----Original Message-----
> From: Nader Aeinehchi [mailto:nader@aeinehchi.com]
> Sent: Monday, April 26, 2004 5:09 PM
> To: Avalon Developers List
> Subject: Re: Question: Inter JVM communication?
> 
> Hello
> 
> Now that I know Merlin does not provide such a functionality, allow me to
> ask some questions and make some comments:
> 
> ===================================================================
> >    (a) component instance identity management
> 
> 1.  Although many systems, like EJB containers and FIPA agent systems,
> make
> "component instance identity management", I am not quite sure that it is a
> requirement.



> 2. Another question is whether all types of components in one JVM should
> be
> accessible by another JVM?  Probably not?

There will be service facades that will need to be exposed.  Some 
components that are part of a subsystem exposing a distributed façade 
may not and at times for security should not expose access.

> In Service Oriented Architecture (like Jini and WebServices), only
> interesting components are turned into "services".  Thus, the challenge
> becomes to expose and locate services.
> Here, I believe Jini's Registrar or Web Services' UDDI could benefited.
> 

I concur.  Actually we can use a UDDI like mechanism backed by Eve when 
she's ready.  That way it's replicated and the directory can be accessed
outside of Java.

> ===================================================================
> 
> >    (b) a remoting facility
> Right.
> 
> 3. As soon as remote Services come into picture, reliability of the remote
> container becomes important to consider.  In most cases, remote
> communication goes through network although multiple containers may run in
> the same physical machine.  In any case, the over-simplification of the
> remote system that e.g. EJB and Corba do, should be seriously re-
> considered.
> Jini builds upon the concept of "leasing".  The service provider is
> required
> to re-register itself within the Registrar after the lease period,
> otherwise
> it would be removed from the registrar and thus not available for service
> consumers.  Having found the service provider, the consumer leases for the
> service for a given period.

That's a very interesting mechanism.  Does that do away with things like
stale handles now that we know a handle is useless after the lease period
is up?

I'm working with Alan Cabrera (from Geronimo) on Snickers and we're 
developing an ASN.1 runtime for BER at the moment and a build time stub
compiler.  We intend to use a PER or BER provider within Geronimo's 
protocol stack.  We can use the same technology within such a facility.
Another thing is how do we make this generic enough so other containers
can use it as well.  It would be nice of the same code worked for Geronimo
as well as for Merlin, Fortress and Apache external containers.  This would
give it more value but if we can't get components to interoperate its 
ludicrous to think we can get a component clustering solution to work 
out of the box for separate containers.  There might be some level of
code sharing and if we achieve that then I'm happy.  Just thinking out 
loud here.

> ===================================================================
> 4.  Remote event/message system should be developed.
> 
> Jini provides some interesting "distributed events" mechanism that "tries"
> to deliver an event to a remote listener within the lease period.  During
> this period, if the listener is not available, the event is sent to an
> Event
> Mailbox such that the listener can retrieve the event in a later time.
> All in all, Jini's distributed event mechanism looks interesting and
> requires further analysis.

This sounds very interesting indeed - so much so it could distract me
away from Eve.  I really need to sit down and actually try to use Jini.

> ===================================================================
> 5. Another consideration is event system versus message system.

On should sit on top of the other no?

> ===================================================================
> 6.
> 
> a. If I may make a recommendation, Jini's Registrar, Lookup, Discovery and
> Lease mechanism should adopted for the following purpose:
> > > 1. How does Component A in JVM1 find ServiceB in JVM2?

Ok if you say so.  It does sound like a sensible and robust service 
location mechanism that is proven.

> b. Currently, I am analyzing several event/message systems and hope to
> come
> back with some results.

Excellent.

Alex



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Question: Inter JVM communication?

Posted by Nader Aeinehchi <na...@aeinehchi.com>.
Hello

Now that I know Merlin does not provide such a functionality, allow me to
ask some questions and make some comments:

===================================================================
>    (a) component instance identity management

1.  Although many systems, like EJB containers and FIPA agent systems, make
"component instance identity management", I am not quite sure that it is a
requirement.

2. Another question is whether all types of components in one JVM should be
accessible by another JVM?  Probably not?
In Service Oriented Architecture (like Jini and WebServices), only
interesting components are turned into "services".  Thus, the challenge
becomes to expose and locate services.
Here, I believe Jini's Registrar or Web Services' UDDI could benefited.


===================================================================

>    (b) a remoting facility
Right.

3. As soon as remote Services come into picture, reliability of the remote
container becomes important to consider.  In most cases, remote
communication goes through network although multiple containers may run in
the same physical machine.  In any case, the over-simplification of the
remote system that e.g. EJB and Corba do, should be seriously re-considered.
Jini builds upon the concept of "leasing".  The service provider is required
to re-register itself within the Registrar after the lease period, otherwise
it would be removed from the registrar and thus not available for service
consumers.  Having found the service provider, the consumer leases for the
service for a given period.

===================================================================
4.  Remote event/message system should be developed.

Jini provides some interesting "distributed events" mechanism that "tries"
to deliver an event to a remote listener within the lease period.  During
this period, if the listener is not available, the event is sent to an Event
Mailbox such that the listener can retrieve the event in a later time.
All in all, Jini's distributed event mechanism looks interesting and
requires further analysis.


===================================================================
5. Another consideration is event system versus message system.


===================================================================
6.

a. If I may make a recommendation, Jini's Registrar, Lookup, Discovery and
Lease mechanism should adopted for the following purpose:
> > 1. How does Component A in JVM1 find ServiceB in JVM2?

b. Currently, I am analyzing several event/message systems and hope to come
back with some results.
> > 2. How does an event/message produced by ServiceB in JVM2 sent to
ComponentA in JVM1?



Best Regards

--
Nader Aeinehchi
Aasenhagen 66 E
2020 Skedsmokorset
NORWAY
Direct and Mobile +47 41 44 29 57
Tel (private): +47 64 83 09 08
Fax +47 64 83 08 07
www.aeinehchi.com

----- Original Message -----
From: "Stephen McConnell" <mc...@apache.org>
To: "Avalon Developers List" <de...@avalon.apache.org>
Sent: Sunday, April 25, 2004 7:11 PM
Subject: Re: Question: Inter JVM communication?


> Nader Aeinehchi wrote:
> > Hello
> >
> > Does Merlin has/specifies any mechanism for communication among
different JVMs?
> >
> > Consider the following two examples:
> >
> > 1. How does Component A in JVM1 find ServiceB in JVM2?
> > 2. How does an event/message produced by ServiceB in JVM2 sent to
ComponentA in JVM1?
>
> The merlin core does not define a mechanisms for inter-JVM
> communications.  This requires two additions:
>
>    (a) component instance identity management
>    (b) a remoting facility
>
> Both are possible - but require either a custom runtime or a plug-in
> facility to handle the identity/transport semantics.  I've done this
> sort of thing in the past using IIOP - basically a servant activator
> that is a component that handles a family of identifiable components.
> In due course I expect some aspects of this work to be folded into the
> Merlin core (in particular the identity management) and that
> distribution transport will be abstracted out to a remoting facility.
>
> Stephen.
>
>
> >
> > Best Regards
> >
> > --
> > Nader Aeinehchi
> > Aasenhagen 66 E
> > 2020 Skedsmokorset
> > NORWAY
> > Direct and Mobile +47 41 44 29 57
> > Tel (private): +47 64 83 09 08
> > Fax +47 64 83 08 07
> > www.aeinehchi.com
> >
> >
>
>
> --
>
> |---------------------------------------|
> | Magic by Merlin                       |
> | Production by Avalon                  |
> |                                       |
> | http://avalon.apache.org              |
> |---------------------------------------|
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Question: Inter JVM communication?

Posted by Stephen McConnell <mc...@apache.org>.
Nader Aeinehchi wrote:
> Hello
> 
> Does Merlin has/specifies any mechanism for communication among different JVMs?
> 
> Consider the following two examples:
> 
> 1. How does Component A in JVM1 find ServiceB in JVM2?
> 2. How does an event/message produced by ServiceB in JVM2 sent to ComponentA in JVM1?

The merlin core does not define a mechanisms for inter-JVM 
communications.  This requires two additions:

   (a) component instance identity management
   (b) a remoting facility

Both are possible - but require either a custom runtime or a plug-in 
facility to handle the identity/transport semantics.  I've done this 
sort of thing in the past using IIOP - basically a servant activator 
that is a component that handles a family of identifiable components. 
In due course I expect some aspects of this work to be folded into the 
Merlin core (in particular the identity management) and that 
distribution transport will be abstracted out to a remoting facility.

Stephen.


> 
> Best Regards
>  
> --
> Nader Aeinehchi
> Aasenhagen 66 E
> 2020 Skedsmokorset
> NORWAY
> Direct and Mobile +47 41 44 29 57
> Tel (private): +47 64 83 09 08
> Fax +47 64 83 08 07
> www.aeinehchi.com
> 
> 


-- 

|---------------------------------------|
| Magic by Merlin                       |
| Production by Avalon                  |
|                                       |
| http://avalon.apache.org              |
|---------------------------------------|

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Question: Inter JVM communication?

Posted by Timothy Bennett <ex...@comcast.net>.
Alex Karasulu wrote:
> Nader,
> 
> I don't think there is anything that has put in place here yet.  
> By all means feel free to make recommendations on how this might
> be accomplished.
> 

Indeed.  One thing that is definitely needed for Merlin to impact the 
enterprise is some form of clustering, and communication between 
different instances of merlin running in separate JVM for shared 
orchestration and collaboration in an application space in necessary to 
accomplish this.

Timothy


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


RE: Question: Inter JVM communication?

Posted by Alex Karasulu <ao...@bellsouth.net>.
Nader,

I don't think there is anything that has put in place here yet.  
By all means feel free to make recommendations on how this might
be accomplished.

> -----Original Message-----
> From: Nader Aeinehchi [mailto:nader@aeinehchi.com]
> Sent: Sunday, April 25, 2004 5:44 AM
> To: Avalon Developers List
> Subject: Question: Inter JVM communication?
> 
> Hello
> 
> Does Merlin has/specifies any mechanism for communication among different
> JVMs?
> 
> Consider the following two examples:
> 
> 1. How does Component A in JVM1 find ServiceB in JVM2?
> 2. How does an event/message produced by ServiceB in JVM2 sent to
> ComponentA in JVM1?
> 
> 
> Best Regards
> 
> --
> Nader Aeinehchi
> Aasenhagen 66 E
> 2020 Skedsmokorset
> NORWAY
> Direct and Mobile +47 41 44 29 57
> Tel (private): +47 64 83 09 08
> Fax +47 64 83 08 07
> www.aeinehchi.com




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org