- From: Shi, Xuan <xshi@GEO.WVU.edu>
- Date: Wed, 15 Mar 2006 23:48:38 -0500
- To: "'Carine Bournez '" <carine@w3.org>, "'Battle, Steven '" <steve.battle@hp.com>
- Cc: "'public-sws-ig@w3.org '" <public-sws-ig@w3.org>, "'Bijan Parsia '" <bparsia@isr.umd.edu>, "'Jacek Kopecky '" <jacek.kopecky@deri.org>
- Message-ID: <D81F456794C18B4DA3E2ABC47DBBEEF2094FBE@www.geo.wvu.edu>
<<GeocodingConversionServiceDescription.xml>> Carine, Bijan, colleagues, I read those recent messages under this thread, and want to reply to all of them in this email. I hope we can discuss relevant issues rationally. Fact 1: many service providers provide the same kind of service in different ways. Address geocoding is a typical example. All service providers share the same service semantics: if the requester sends an address to provider, then provider will return latitude and longitude of the input address back to requester. Fact 2: requesters don't care about how provider process their request but just want to get an answer. Fact 3: different service providers can create the same service in different ways, either by SOAP/WSDL or REST, with different business logics. For example, ESRI, geocoder.us, google maps, etc. Based on such facts, can we draw conclusion that service semantics are neutral and independent from the service development framework and process? By targeting at the address geocoding Web services which can be identified in the WSDL documents listed below, http://www.arcwebservices.com/services/v2006/AddressFinder.wsdl http://arcweb.esri.com/services/v2/AddressFinder.wsdl I wonder if Bijan can tell us which elements in these WSDL documents are worthy to have semantic annotations or pointers (internal or external) and which ones are not? Supposed, as Bijan said, we can create a rich service description document with detailed content about the service, then why do we need to associate such rich semantic description document with WSDL? We can invoke the service directly over HTTP based on such rich service description. It seems Bijan does not believe that I can use the same service request to invoke either a SOAP/WSDL service or a REST service. Please forgive me if I need to repeat something that had been repeated before. Also Carine has a concern in her reply message http://lists.w3.org/Archives/Public/public-sws-ig/2006Mar/0048.html All such concerns were covered in the paper "Rebuilding the Semantic Web Service Architecture" in which the so-called OSRR approach was originally proposed, discussed and demonstrated. This paper can be accessed at: http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-140/paper1.pdf The five building blocks can answer all Carine's questions. Attached is a service description document for demonstration and discussion. In this document, it contains two different service domains, one is geocoding service, the other is data conversion service. If you read the five building blocks for each service, then you can understand how to deploy the service since everything is self-describing. I also designed a Web interface for demonstration, especially for Bijan so that Bijan can believe OSRR is not just an assertion. The Web interface can be accessed for now at: http://157.182.136.76/xshi/disst/discovery/Webform3.aspx In this example, for ALL SOAP-based Web services, they just have ONE standardized interface: Function getService(String request):String response For REST service, I developed a HTTP server which is waiting for a POST message as service request. Both service (WSDL) URL and server URL can be identified in the attached document. To deploy the service, you have to compose an XML document as service request. First, write the following line in any text editor: <?xml version="1.0" encoding="utf-8"?> Then, copy and cut the whole section of <ServiceRequest> section within the <RequestTemplate> of a specific service and function described in the document, and then paste it into your text editor under the line you just typed, then now it should be: <?xml version="1.0" encoding="utf-8"?> <ServiceRequest> <Service Name="Geocoding"> <Function Name="Geocoding"> <InputVariables> <Address> <Street></Street> <City></City> <State></State> <ZipCode></ZipCode> </Address> </InputVariables> </Function> </Service> </ServiceRequest> The last thing you have to do is assign the value of the input variables, i.e. the information to compose your address (street, city, state, zip) This is the service composition process, easy, simple, understandable, right? People don't need to write a single code. Once you compose a service request, put it within the "Request" text box on the Web interface. If you want to use SOAP/WSDL Web service, then copy the service (WSDL) URL into the text box for WSDL URL. Or, if you want to use REST Web service, then copy the server URL into the text box for REST URL. Then click the "Send Request" button, you can get the result which should exactly follow the format specified in the <ResponseTemplate> section of the description document. If anyone want to try the data conversion function and service, just follow the same steps as mentioned above. You can use exactly the same service interface and URL to invoke another kind of service. Since SOAP/WSDL service in this case just has ONE function interface, it is so easy to create a dynamic service invocation. SOAP/WSDL are only for programmers. How many programmers are there in the world that can consume such kind of services? However, for programmers, don't you think it's so easy for them to process such an XML document? Most importantly, since the service semantics keep the same when the interfaces keep changing as demonstrated by the three versions of ESRI's services, for service requesters, the programmers do NOT need to change anything if they just process such an XML document of semantic service request, which can be used by all three versions of the same service with different interfaces. OSRR is for all users. As demonstrated, people do not need to know any kind of programming languages. They just need a text editor to compose an XML document for service request. The composition process is almost just a cut-copy-paste process. They do not need to know any details about service aggregation or mediation processon the server side (my paper published by IBM already demonstrated that ALL kind of composite services can be transformed into an atomic one). In OSRR, there is no process, just one service request and one service response. Actually, if I don't tell you, how do you know which geocoding server and which server for data conversion I wrapped in my applications-they are not in my machine? By now I hope Bijan can believe such an assertion that the same service request can be used to invoke either SOAP or REST service. If further you want me to demonstrate how the same service request can be used to invoke the same service offered be different service providers with different business logics, I'd be happy to do that. At last, my question then is, since the same service and function can be deployed by REST service, why do we need the serialization/deserialization process, which means, WSDL can be deprecated, although many people are not happy to see such a conclusion. As for service semantics, we need more standards and agreements on describing the meaning of the service. If we can describe it, then we can invoke it directly over HTTP without SOAP/WSDL. It is not an assertion, but now a demonstrated fact. Best wishes, Xuan -----Original Message----- From: Carine Bournez To: Battle, Steven Cc: public-sws-ig@w3.org Sent: 3/15/06 5:50 PM Subject: Re: Semantics of WSDL vs. semantics of service On Wed, Mar 15, 2006 at 05:08:50PM -0000, Battle, Steven wrote: > > Clarification about semantic annotation for wsdl: > > The *meaning* is actually in a separate document (or several > > ones). The annotation in the WSDL is supposed to *point* to > > *external information*. > > > > Has this been decided already? The charter says, "The Semantic > Annotations for WSDL Working Group is chartered to define one or more > properties of WSDL 2.0 components to point to additional semantics to > concepts represented by those components, e.g. interface, operation, > endpoint." The charter also says "Additionally, the Working Group may define annotations to the schema structure to point to external semantics." The examples given by Xuan Shi fall in the typing category and my first thought is to use annotations on the schema structure of the WS description. I have not worked (and will not) on his particular cases though. > Nothing in the charter restricts this additional semantics being > embedded in the WSDL document itself. Indeed if it is, the likelihood is > that tools will simply ignore the additional semantic components. These issues will certainly be discussed in the group, keep your scenarios for the future debates :)
Attachments
- application/octet-stream attachment: GeocodingConversionServiceDescription.xml
Received on Thursday, 16 March 2006 04:49:44 UTC