not logged in  
login | register  


Web Services


2. Introduction to Web Services

XML Web Services are modern platform independent technologies to access remote server functionality via the Internet. They use a standard XML and HTTP based protocol to send function calls and collect return data. However the whole technology is designed to hide the client-server communication from the programmers. This is achived by the underlying protocol (also called SOAP - simple object access protocol) which maps code object to XML files and vice versa. Specifically it converts java or c# classes to xml to push throug the network and deconverts it on the other side allowing programmers to write code that even doesn't know anything about the underlying network infrastructure.

(figure comes here)

Web Services can describe their own functionality and data model by a WSDL (web service description language) file, which contains all the information that needed to recreate object classes and functions on the client side. Creating a Web Service client is extremly easy, since most of the Web Services toolkits have a utility to read the WSDL file and build a client program framework (called proxy) with the predefined classes and functions. All you have to do is to generate a proxy, instantiate classes and call functions, just like in traditional applications.

Web Services are extensively supported by the Axis library for Java and Microsoft's .net framework (c# language). However toolkits for other languages like C++, C, Python and Fortran are also available, it is strongly advised to use java or c# for web service development. These languages not just provide a very good api for networking and databases, but also use managed memory access to eliminate the well known problems in C and C++. Though c# and the .net framework are developed by Microsoft, they are ECMA standards and there is an open-source, platform independent implementation called Mono which is able to run .net programs on any widespread computer system without compromises.

Since security is extremly important in loosely coupled distributed systems, the Web Service standard defines a way to identify and authenticate users. This standard relies on so called certificates and digital signing of data which is a quite difficult process and requires a firm grasp of the technology before starting to write clients. The Axis library for Java and the .net framework support all these feauters, but not the other implementation, we decided to implement a simple user identification system in Spectrum Services, which uses a globally unique identifier (GUID) to authenticate registered users. All web service functions have a parameter called userGuid for this purpose.