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/03 11:43:10 UTC

What do you think about Merlin with Jini?

Hello

I have been lately studing the source code and the documentation of Merlin and obviously it is a powerful system.

I find the way each component and service is defined and deployed in Merlin very interesting.  However, it is not clear to me how the <<client code>> finds the <<deployed components and services>> in Merlin.
1. Is there any automatization in discovery of the deployed elements?

In Jini, <<service registration by service provider>> and <<service discovery by the client>> work together to automize the process.  Of course, Jini is a distributed system, but the same idea could be applied for a "local environment".
2. What do you think to either integrate with Jini or develop a similar mechanism in Merlin?






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: What do you think about Merlin with Jini?

Posted by Niclas Hedhman <ni...@hedhman.org>.
Generally speaking;

It is not dead-easy to get Jini systems up and running, particularly it seems 
that people have problems with;

1. Codebase management.
2. Proper equals() and hashCode().
3. Connection management.
4. Fallback strategies.

There is nothing today stopping you from creating a Merlin-capable component 
that connects to a Jini Federation and participate as full peer. You need to 
take care of the above (and some more).

Except for 4. Merlin could handle the rest behind the scenes in a fairly 
robust manner, and communicate this to the AvailabilityAware component, which 
has to figure out what to do when Availibility is gone.
Such component would see the Jini Federation as a local system, and in fact 
couldn't tell whether the Jini service it connects to is a Jini service or 
just an ordinary component. It wouldn't have to worry about connection 
handling, how to create distributed accurate hashCode() and equals() and how 
to obtain the codebases required for the ServiceProxy and so on.

It would be fairly easy to Jini enable your apps, just make sure that the 
components are AvailabilityAware and have a 'fallback strategy' defined.

That is the first step.

Secondly, a JiniAware service, would need to be able to register its own 
ServiceProxy, and the question here arises whether this is generically 
useful, and perhaps not Jini specific at all, plainly Distributed specific.
That needs to be investigated in some greater detail with a few use-cases.


I see that the Availability contract has so much benefits that it will find 
its way into the standard Avalon Framework (v5, I guess) in due time, whereas 
Jini connectivity and other distributed technologies will become Merlin 
Facilities which you can enable. Time frame for all of this; "this year" 
perhaps.


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: What do you think about Merlin with Jini?

Posted by Nader Aeinehchi <na...@aeinehchi.com>.
Hi Niclas

Central in the Jini metaphor is that service are not always available and
the
> 'client' always has to support this, whereas in Merlin the total opposite
is
> true. So I have recognized that there has to be some form of Availability
> noitification system introduced, and I haven't gotten to defining one.
Once
> that is in place, we not only get the Jini/Distributed services
possibility,
> but also reloadable components, which is desirable independently of
> Jini/distrbuted.

You are touching some very interesting thing "Availability noitification
system ".

a. The question is whose responsibility is to ensure
the availibilty and the availibility notification, the component itself or
the container of the component?

If the container is responsible, then the container should check for the
availibity of the components it is responsible for.  The container could do
it periodically by a timer or more intelligently by having an management
agent.

On the other hand, if the component takes the responsibility, then it
prompotes a  proactive component architecture.

I think both approaches are interesting, and probably completing each other.


b. The second issue is how the client should know about the availibility?
Should the client be informed by the
I-the component
II-the container of the component
III- should the client proactively ask for the availibility?

I- results in observer/oberservable pattern that we know from Java's know
listener mechanism.  As far as I can see, this approach has been taken in
Merlin's Kernel.java
II- here a simple hub-spoke architecture might be good enough, where the
container (or an underlying component) acts like the hub.  Both publishers
(the component) and subscribers (the client) of availibility event act as
spokes.  Note that this approach could also be used for a.
III- well, this is the difficult one to implement.  Here the client could
periodically either ask the component or the container of the compoent about
the availibility.

Having said the above, it seems to me that Merlin is not geared toward
distributed systems?



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: "Niclas Hedhman" <ni...@hedhman.org>
To: "Avalon Developers List" <de...@avalon.apache.org>
Sent: Saturday, April 03, 2004 12:07 PM
Subject: Re: What do you think about Merlin with Jini?


> On Saturday 03 April 2004 17:43, Nader Aeinehchi wrote:
> > 1. Is there any
> > automatization in discovery of the deployed elements?
>
> The Composition package reads the block.xml file(s) and builds a model of
the
> involved components, matches any dependencies and tries to figure out what
> ties into what (that has a good chance of being deployed).
>
> >2. What do you think to either integrate with
> > Jini or develop a similar mechanism in Merlin?
>
> There has been some debate of "Jini in Avalon", and since I am probably
one of
> the more experience Jini users, I guess it falls onto my responsibility to
> figure out how this can be achieved,
>
> Central in the Jini metaphor is that service are not always available and
the
> 'client' always has to support this, whereas in Merlin the total opposite
is
> true. So I have recognized that there has to be some form of Availability
> noitification system introduced, and I haven't gotten to defining one.
Once
> that is in place, we not only get the Jini/Distributed services
possibility,
> but also reloadable components, which is desirable independently of
> Jini/distrbuted.
>
> Once that is in place, it is a matter of moving forward.
>
>
> 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


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


Re: What do you think about Merlin with Jini?

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Saturday 03 April 2004 17:43, Nader Aeinehchi wrote:
> 1. Is there any
> automatization in discovery of the deployed elements?

The Composition package reads the block.xml file(s) and builds a model of the 
involved components, matches any dependencies and tries to figure out what 
ties into what (that has a good chance of being deployed).

>2. What do you think to either integrate with
> Jini or develop a similar mechanism in Merlin?

There has been some debate of "Jini in Avalon", and since I am probably one of 
the more experience Jini users, I guess it falls onto my responsibility to 
figure out how this can be achieved,

Central in the Jini metaphor is that service are not always available and the 
'client' always has to support this, whereas in Merlin the total opposite is 
true. So I have recognized that there has to be some form of Availability 
noitification system introduced, and I haven't gotten to defining one. Once 
that is in place, we not only get the Jini/Distributed services possibility, 
but also reloadable components, which is desirable independently of 
Jini/distrbuted.

Once that is in place, it is a matter of moving forward.


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