[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Handle-info] Web Services for Handle Servers



Hello,
The requirements stated by Colin, in my opinion, justifies the need for web services in the Handle System. Although it looks obvious what the definitive services would/should be in a Handle System web service framework, there are some important things to consider before attempting the design of such framework. Specifically, it is crucial to understand the options available to us for such a design, and these options are stated below. I am hoping that this would throw light on necessary design issues and therefore would help us in the longer run.


(1) Web Services Proxy
The services provided by the web services proxy are inclined toward resolution services, just on the lines of HTTP based Handle Proxy. Providing resolution service at this level has two major advantages
(a) The local handle servers need not host the web services themselves. Yet, the clients will be able to use the resolution services from this web services proxy.
(b) The clients may assume a default web service endpoint and therefore need not burden themselves for discovering the local handle server enpoint addresses.


CNRI has designed (and implemented) the web services at the proxy level. It is being tested internally and is expected to be released (and hosted) in the near future.

(2) Handle Server Web Services
Although the word 'local' pops up in our mind when thinking of implementing exhaustive services including administration and resolution of handles, it is misleading in the sense that there are two ways in which we can design such web services.
The web services framework may itself be hosted on a different location (to the local handle server) and talk to the handle server using Handle Protocol. This implies that the web services themselves (as seen by the clients) are made Handle Protocol independent.
Advantages include
(a) A change in the Handle Protocol (it may never happen), will never force a change in the web service definitions itself.
(b) Decoupling of clients perception of Handle services and the Handle Protocol.
Disadvantages
(a) Since there is an extra layer of delegation added, the services themselves will exhibit some latency. (This may not be an issue to many).


It is appropriate for third-party developers to follow this route since it does not demand the spot-on understanding of Handle Protocol.

(3) Local Handle Server Web Services
At this level, the web services themselves implement the Handle Protocol. The big difference between present day protocol and this model is the encoding of message on the wire to a Handle Server.
Advantages include
(a) The web services will be on a performant side when compared to previous option.


CNRI has designed the web services at this level. If the need for web services at this level is thought out to be appropriate/important, I see no reason why we cannot leverage on the design already done. For third-parties to develop web services however, it might challenge their knowledge in the Handle Protocol.

Hoping to see lots of traffic on this!

--
Giridhar Manepalli
Senior Software Engineer
Corporation for National Research Initiatives
Phone: (703) 262-5340


Colin Alteveer wrote:


Dear Handle Users,

Here at the Academic ADL Co-Lab we have been contemplating an automated approach to Handle registration. After meeting with Henry Jerez and Sean Reilly (CNRI), we have all decided it would be best to start a working group of sorts to discuss existing implementations, goals, and the best practice for programmatically creating/registering Handles with our local Handle servers.

_A Little Background_

The main impetus for this functionality is our proof of concept work on the ADL-R project. As opposed to having the local handle administrator manually register every new handle, we would very much like it to be an automated step in the publishing workflow of our repository implementation. There are currently two client libraries for HANDLE.NET, one written in Java and one in C. This poses a problem for us because our repository is written in neither (it is written in python), and even though there is a possibility of calling portions of the C library, this isn’t the most attractive or elegant approach. It was thus tentatively agreed that perhaps an interface via web services would be a better idea seeing as it is flexible and possible to implement in many languages on the client side.

_Requirements_

Our proposed solution has the following requirements; client side platform/language independence via *1)* a web services API for authenticating and creating sessions for admins/users of the handle server, and *2)* a web services API to the administrative functions of the handle server.

If any of this interests you, or you have implementations you would like to share please let Henry or I know you are interested in joining the working group.

Colin Alteveer

Academic ADL Co-Lab

calteveer@academiccolab.org <mailto:calteveer@academiccolab.org>


begin:vcard
fn:Giridhar Manepalli
n:Manepalli;Giridhar
org:Corporation for National Research Initiatives
adr:Suite 100;;1895 Preston White Drive;Reston;VA;20191;USA
email;internet:gmanepalli@cnri.reston.va.us
title:Senior Software Engineer
tel;work:(703) 262-5340
tel;fax:(703) 620-0913
x-mozilla-html:FALSE
url:http://www.cnri.reston.va.us/
version:2.1
end:vcard