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]
