I prototyped this a little while back just to see how it could be done 
with the current Axis code and it wasn't exactly pretty from a design and 
performance approach, but it did work.  If you look at the Admin service, 
it is essentially a factory service. You can use it to create new 
instances of services at runtime.  My prototype (which I cannot share 
because it no longer exists ;-) ...) took in a template Axis WSDD document 
that defined a basic service type and exposed a single method to create a 
new instance of that service type.  In addition to the service specific 
operations exposed by the service implementation, the created service 
instance also exposed a "destroyInstance" operation that could be used to 
undeploy the service.  Security is a key challenge -- e.g. you need to 
make sure that only the appropriate user is allowed to destroy the 
instance.  I think that with a bit of work, a better dynamic service 
registry/factory interface could be built into Axis to make this type of 
stuff easier, but it would have to be a 2.0 thought.

- James M Snell/Fresno/IBM
    Web services architecture and strategy
    Internet Emerging Technologies, IBM
    544.9035 TIE line
    559.587.1233 Office
    919.486.0077 Voice Mail
    [EMAIL PROTECTED]
 Programming Web Services With SOAP, O'reilly & Associates, ISBN 
0596000952 

==
Have I not commanded you?  Be strong and courageous.  Do not be terrified, 

do not be discouraged, for the Lord your God will be with you wherever you 
go.  
- Joshua 1:9

Please respond to [EMAIL PROTECTED] 
To:     [EMAIL PROTECTED]
cc: 
Subject:        Transient / dynamic services question



Hi,

<introduction>
I'm a software developer at the european bioinformatics institute, as an
institute we support the information processing bits of (amongst other
things) the human genome project, and as a group we're working on a
large scale distributed system that uses soap and web services as a
significant component of its infrastructure.
</introduction>

For a project I'm currently working on, I am trying to create the
following :

1) RPC access to various server side objects. No problem with this in
the naive case, it works just fine.

2) The server has objects that may be created by RPC calls on other
objects, and which should themselves be exposed as new services.

3) I would like the access URL pattern for the new services to look
something like http://foo.bar/rpc_router/myservice/new_object_id

This actually nests several layers deep, the idea being that the master
service acts as a factory for various other resources which are
themselves services (see http://www.globus.org/ogsa/ for an example of
this approach)

Question - I am unaware of any way to do the dynamic publish step with
the existing axis tools, and assuming I am not being blind I'm planning
to write this (or modify the RPC router) to support this functionality,
is there any other interest in the community in this?

Any feedback or comments would be welcome, I have yet to see a toolkit
that addresses this issue in what I would regard as a pleasant fashion.

Cheers,

Tom Oinn


Reply via email to