andreas oberhack wrote:

Sounds cool to me,

but could you give some hints, what should be done on the server side?


There are two level to consider:


1. direct interaction with a remote repository through urls
2. indirect interaction with a remote repository via the local repository

In the first case (1) it would nice if we could do something like:

http://dpml.net/library?action=locate&type=SomeStandardService

The value returned would be a block file (containment descriptor) i.e. exactly the same as requesting a block directly. This would enable composite blocks to declare dependencies on services. For example, I could define a composite container with a special <include> directive:

<container>
<classloader>
<!-- stuff -->
</classloader> <include type="SomeStandardService"/>
</container>


Merlin would do the work of resolving the include by invoking a request on an intelligent remote repository. And just like the Hello example, a block descriptor is returned, installed (resulting in population of the local repository with the required resources, followed by creation of a dedicated classloader for the container, and subsequent deployment.

In the second case (2) we can go much further and leverage a remote repository directory service. This would involve issuing requests to DPML for a service (perhaps with quality of service criteria), and DPML would return a block that it locates on a registered repository. In effect DPML acts as the broker for service discovery functions.

Cheers, Steve.



Andreas

-----Original Message-----
From: Stephen McConnell [mailto:[EMAIL PROTECTED] Sent: Dienstag, 4. November 2003 02:50
To: Avalon Developers List
Subject: Re: distributed containers




Hamilton Verissimo de Oliveira (Engenharia - SPO) wrote:


Just a client that:

1 - Wants a service
  (Locator through Broadcasting or specific URLs)

2 - Service found
  (Download necessary byte codes and resources)
  (Proxies or the service as it is?)

3 - Use service



This is what Merlin can do today (without any extension).


$ merlin http://dpml.net/merlin/tutorial/blocks/hello.block -execute

[INFO ] (kernel): installing: http://dpml.net/merlin/tutorial/blocks/hello.block
[INFO ] (tutorial.hello): logging
[INFO ] (tutorial.hello): initialization
[INFO ] (tutorial.hello): execution
[INFO ] (tutorial.hello): disposal
[INFO ] (kernel): dissassembly phase
[INFO ] (kernel): disposal phase


With a little server side inteligence we should able to provide the same

thing based on a service request.

Stephen.



--


Stephen J. McConnell
mailto:[EMAIL PROTECTED]




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



Reply via email to