This post is part of a series of things ‘everybody-assumes-you-know-but-actually-you-don’t-have-a-clue’.
I call them : the Bush Files.
Today : Web Services
Although there are a lot of interpretations of the term ‘web
services’, it’s most commonly used to describe a set of functionalities
of an application that are made available to other applications over
the Internet.
For example: Google has a web service allowing you to use their
famous search capabilities from within your own web application. You
might create your own search box, ask Google for the results of the
search via the web service, and show the results any way you like on
your web page. Or you might use the web service of Google Maps to
(programmatically) ask Google for a map of your region, mark your
house, your cafe and the place you walk the dog and publish the result
on your website. Schematically, this would look like this:
It doesn’t always have to be this visible though: You could also use
a web service to e.g. store information in some database somewhere on
the web every time a user fills out a form on your website, as pictured
below.
Applications talking to each other via functions that the
applications made available, is not new. The common name for this in
the programming world is API: Application Programming Interface, or a way for applications to programmatically interface with each other. Add the web in between the applications, and you understand why Web Services are also often referred to as “Web API’s”.
Typically, the communication between the applications over the Internet will be done through SOAP (Simple Object Access Protocol): a set of rules (or ‘protocol’) designed to transfer data in a specific dialect of XML
over the Internet. So the applications basically talk XML to each
other! And a description of the functionalities that can be used, is
made available in a WSDL file (Web Services Description Language), which is basically… also XML (click here for the Google search WSDL, you can find functions in there like ‘doGoogleSearch’ and ‘doSpellingSuggestion’).
There are a lot of issues involved in creating and using web
services, none of the least is security. But overall it has opened up a
lot of possibilities and nowadays powers a great lot of the Service
Oriented Architecture (see ‘Web 2.0 unraveled‘) pillar of Web 2.0.