Lambda the Ultimate

inactiveTopic Web Services Inspection Language
started 11/5/2001; 10:06:08 AM - last post 11/9/2001; 2:37:43 AM
Ehud Lamm - Web Services Inspection Language  blueArrow
11/5/2001; 10:06:08 AM (reads: 1425, responses: 4)
Web Services Inspection Language
Service discovery defines a process for locating service providers and retrieving service description documents, and is a key component of the overall Web services model. Service discovery is a very broad concept, which means that it is unlikely to have one solution that addresses all of its requirements. The Universal Description, Discovery and Integration (UDDI) specification addresses a subset of the overall requirements by using a centralized service discovery model. This article will provide an overview of the Web Services Inspection Language (WS-Inspection), which is another related service discovery mechanism, but addresses a different subset of requirements using a distributed usage model. The WS-Inspection specification is designed around an XML-based model for building an aggregation of references to existing Web service descriptions, which are exposed using standard Web server technology.

Posted to xml by Ehud Lamm on 11/5/01; 10:06:28 AM

Chris Rathman - Re: Web Services Inspection Language  blueArrow
11/5/2001; 12:34:59 PM (reads: 858, responses: 0)
The problem with service discovery is the same problem that has plagued Jini - namely that you have to define the protocols way beyond simply having a device name in a directory and listing it under a generic service name. For example, finding a printer is not nearly as easy as telling me what that printer is capable of accepting. If each vendor is left to define the information that is tacked on, then you wind up having to code around each vendors provided info.

Anyhow, it sounds as though IBM is searching for an alternative to Jini, since they never backed Sun's proposals along those lines.

Ehud Lamm - Re: Web Services Inspection Language  blueArrow
11/7/2001; 11:17:08 AM (reads: 812, responses: 0)
finding a printer is not nearly as easy as telling me what that printer is capable of accepting

This is indeed the fun part. Of course, talking about these issues will kill most of the hype surroinding web services...

So what really is the state of the art on web services?

BTW: One person's perspective.

Oleg - Re: Web Services Inspection Language  blueArrow
11/8/2001; 1:19:34 PM (reads: 797, responses: 0)
A related article:
"A computational model of EVERYTHING", Nicholas Carriero, David Gelernter Comm. ACM, November 2001 -- v. 44, N11 -- pp. 77-81.

is another promotion of Tuple technology, Linda, and especially "Lifestreams" (which is a commercial product of Gelernter's company, "Mirror Worlds").

When I first read about tuple spaces, I though it's a very attractive idea. Something like an information bus.

"It shouldn't be necessary to link our activities together before runtime. It should be possible for new activities to join the ensemble at any time. Programs should not have to know anything about one another in order to communicate. Mutually unknown activities should be able to communicate. Activities with disjoin lifetimes should be able to communicate; one that died in 1996 with, say, a second born in 2001." [quoted from the above paper].

This time I take these claims as unfeasible and hopelessly naive. Mutually unknown activities cannot communicate unless they understand each other's language (or can relate it to some common standard).

Let's consider an example: how an application that wishes to print a document finds a suitable printer. This is the favorite Jini example. This example has been mentioned on this discussion thread. As it happens, the printer example is used throughout the Carriero and Gelernter's paper.

Suppose we have a tuple space with the following tuples:

	(Printer, printer1, (capabilities, color, transparencies),
		  (resolution 120))

(Printer, printer2, (capabilities, colour, slides), (resolution 47.2))

An application that wishes to print color slides will fail to find a printer -- although both printer1 and printer2 can clearly do the job. The problem is that they use different words to mean the same thing. Suppose an application wishes to find a printer that has a sufficient resolution, say, > 100 line-per-inch. The application will reject printer2 -- although it's high-resolution as well. Printer2 was manufactured in the more enlightened world and therefore it measures its resolution in lines per centimeter rather than in lines per inch. Thus two printers use the same term -- resolution -- to mean slightly different things (different units). If clients and servers are mutually unknown (and especially if they are separated in time by years), it's generally impossible to make sure they use consistent vocabularies.

Exactly the sample problem plagues Web services, UDDI and similar buzzwords. How does a client find out what the parameters of a service really mean?

That's why Agent communication languages are back in vogue, with DARPA sponsoring DAML, the DARPA agent markup language, and the Semantic Web.

Ehud Lamm - Re: Web Services Inspection Language  blueArrow
11/9/2001; 2:37:43 AM (reads: 790, responses: 0)
You are right, of course.

Still one wonders how much of this can be solved by appropriate standards. For example, unit and unit conversions can be standardised, and service provides may be required (if they want interoperability) to specify units.

Naturally, this will not solve the more basic issue of recognizing service names.

That's why we may be seeing web services in very well define and specific doamins, where as the larger vision is not likely to be realized any time soon.