Web Services Challenge Technical Details


(Adopted from EEE-05 Challenge)

 

 
 
1. Objectives   
The objective of the competition, in this first year, is to encourage participants to concentrate on syntactical matching 
and chaining for Web Service Description Language (WSDL) documents.  A successful software entry will be 
able to accurately and efficiently find services using the part names underlying their input and output messages.  
Secondly, entries will have to create chains of services by linking output part names to the subsequent 
input part names.  The intent of this competition is for participants to create part name matching components/agents 
that will set the foundation for later years of this competition (i.e. each year with more technical rigor).  
Participants should also focus on robust system design and efficient programming techniques.
 
 
2. WSDL Details
In this competition, the web services repository will be based on WSDL 1.1.  Below are two tutorial sites
that may be helpful for participants.
 
·        http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarxml/html/wsdlexplained.asp 
 
·        http://www.w3schools.com/wsdl/default.asp
 
FYI - Microsoft .Net IDE has a reasonable editor for WSDL documents.
 
3. Sample Repository
A sample repository can be downloaded at the following web site:
 
http://www.comp.hkbu.edu.hk/~ctr/wschallenge
 
Participants should notice that we are concentrating only on messages (and their underlying part names) 
and ports. Concrete descriptions such as bindings and services will be the focus in later years of the 
competition, but not considered in this competition.
 
The sample service repository have services with auto-generated with part names with random combination
of letters. Other services will be added that are sub-sets and variations of the most correct services 
to use for a particular discovery of competition routines. 
 
4. Sample Competition Routine
We will provide participants with  an XML file to initiate the competition discovery and composition routines.  
A sample of the XML request is below.
 
<WSChallenge>
<DiscoveryRoutine>
               <Provided> partname1, partname2, partname3 </Provided>
               <Resultant> partname1 </Resultant>
</DiscoveryRoutine>
<CompositionRoutine>
               <Provided> partname1, partname2, partname3 </Provided>
               <Resultant> partname1, partname2, partname3 </Resultant>
</CompositionRoutine>
</WSChallenge>
 
All software must be able to execute on a designated competition workstation.  Participants will want 
to send their system requirements to us via email prior to the competition. There will be a pre-competition 
arrangement which should be able to provide more feedback for refining their software.
 
5. Discovery Sample
Participants will be asked to find a specific service that can fulfill a certain input and output criteria. 
 
The following requested routine can be fulfilled by findCloseRestaurant.wsdl:
 
 <DiscoveryRoutine>
               <Provided> foodPref,custStreetAddress,custCityAddress,custStateAddress,custZipAddress </Provided>
               <Resultant> restaurantName,restaurantID </Resultant>
</DiscoveryRoutine>
 
findCloseRestaurant.wsdl (sniplet of the messages)
 

<message name="findCloseRestaurant_Request">

            <part name="custStreetAddress" type="xs:string"/>

            <part name="custCityAddress" type="xs:string"/>

            <part name="custStateAddress" type="xs:string"/>

            <part name="custZipAddress" type="xs:string"/>

            <part name="foodPref" type="xs:string"/>

</message>

<message name="findCloseRestaurant_Response">

            <part name="restaurantName" type="xs:string"/>

            <part name="restaurantID" type="xs:string"/>

            <part name="restaurantStreetAddress" type="xs:string"/>

            <part name="restaturantCityAddress" type="xs:string"/>

            <part name="restaurantStateAddress" type="xs:string"/>

            <part name="restaurantZipAddress" type="xs:string"/>

</message>

 
As you can see, findCloseRestaurant is a bit over-qualified for the requirements, but it does fulfill them.  

 
We anticipate that only one service will accurately meet the requirements in the repository. However, 

 
other services may be in place that partially meets the requirements.  Only accurate matches count.  

 
This part of the competition will mostly judge the design and speed of the software entries to execute 

 
the matching.
 
6. Composition Sample
Participants may also be posed with a composition request (finding a specific sequence of services).
 
The following requested routine can be fulfilled by:
 
 purchaseALT.wsdl->reserveRental.wsdl-> reserveRoom.wsdl->createItinerary.wsdl:
 
 <CompositionRoutine>
               <Provided> firstName,lastName,middleInitial,creditCardNum,creditCardExp,creditCardSecID,departCity,
                                  departState,destCity,destState,rentalPref,roomPref,hotelName </Provided>
               <Resultant> ItineraryURL </Resultant>
</CompositionRoutine>
 
As you can see, reserveRental and reserveRoom require the output of purchaseALT,  while createItinerary 
requires information from reserveRental, reserveRoom, and purchaseALT.
  

 


 
 
7. Evaluation. 
One aspect will be a subjective score on the system design.  The other aspects will be performance and 
accuracy.  More details about the judging process will later be posted at the competition web site.
 
8. Miscellaneous WSDL Details.  
 
1.      arrivalDateTime and departDateTme are in the same context for all services.
a.      May decide to make unique date/time syntax for each service
b.      Our students had some difficulty with non-unique dates and times for mapping.
2.      All operations are SOAP request-response, this year.
3.      All services have one binding to one port (one operation per WSDL)
4.      Port name=WSDL name
5.      Message parts are all of type <string>.
6.      Software entries should keep a memory of part names during composition, sometimes 

 


 
 
messages will have to be carried to services in subsequent stages of the routine.
7.      No composition routine will require more than three services to build input message for a 

 


 
 
subsequent service. (We did this to help scope complexity.)
8.      We anticipate that participants will be provided with an XML file to do all discoveries for 

 


 
 
the first part of the competition. The composition routine will be done on a separate run. 
 
 
9. For Further Questions.  
 
Please send emails to wschallenge@comp.hkbu.edu.hk for technical questions.  It would also be 
advisable to contact us notifying your intention to compete.

 

[Updated on June 22, 2005]