Bielefeld University Center of Biotechnoloy Institute of Bioinformatics BiBiServ
seq_head.png 800x120
seq_nav_dist.png Databases Data Formats Genome Browser Alignments Database Search RNA Secondary Structure Webservices Literature
seq_nav_dist.png Technology A simple client Asynchronity  
institution_link.png 35x435  
   
XML as communication base
Communication from and to WebServices is performed in XML. Also the data transfer can (but need not to) be managed using XML.
Namespaces
It is sometimes useful to divide up XML elements into groups or so called namespaces. Sometimes you have an element that can have a different meaning in different contexts. A simple biology example could be a sequence element which describes a nucleotide sequence or protein sequence depending on context. Namespaces are used to avoid problems using the sequence element in both ways in one document.
 
XML grammar - XML Schemas
XML is often described by an XML Schema document. XML Schema Definition (short: XSD) is a language recommended by W3C to describe structures of XML documents. Using such a grammar makes it easy to combine different WebServices. The output of one WebService can simply be pushed to another one, without performing any conversion.
 
WSDL
WSDL stands for Web Service Description Language. WSDL is a XML grammar for describing a WebService in a standardized way. The actual specification is available online at http://www.w3.org/TR/wsdl. A WSDL document describes important information about a WebService a client would basically need:
  1. the name of the service
  2. its location
  3. the available methods
  4. their supported input/output parameter for each method
   
The following skeleton shows the general structure with the interesting parts of a WSDL document without any content.
<definitions>
	<import>*
	<types>
		<schema></schema>*
	</types>
	<message>*
		<part></part>
	</message>
	<PortType>*
		<operation>*
			<input></input>
			<output></output>
			<fault></fault>
		</operation>
	</PortType>
	<binding>*
		<operation>*
			<input></input>
			<output></output>
		<operation>
	</binding>
	<service>*
		<port></port>
	<service>
</definitions>
* indicates possible mutable occurance
seq_ctbg1x1.png 1x1