Science Library - free educational site

Data Management Techniques

Simple Object Access Protocol (SOAP) is a protocol for cross-server and cross-application communication. It is based on XML, is language and platform independent, and is recommended by W3C.

SOAP is needed when normal internet access is blocked by security and compatibility preventions, and firewalls. With SOAP, different applications on different operating systems can exchange information, access databases on remote servers, without heed of language level or type.

SOAP components

There are four elements to the SOAP architecture:

The Envelope

An XML document needs to be declared as a SOAP message, so an envelope is placed around it:

<?xml version="1.0"?>

<soap:Envelope xmlns:soap="" soap:encodingStyle="">


<m:Trans xmlns:m="" soap:mustUnderstand="1">value




<m:GetClients xmlns:m="">





The Header

Header information is optional for the SOAP call. The parts of the header include whether the call must comply to the optional header (soap:mustUnderstand="1"), the Actor, which points the header to a specific endpoint (soap:actor="URI"), and encoding (soap:encodingStyle="URI").

The Body

The call and response information is stored in the body element:


<m:GetClients xmlns:m="">




The Fault element

Errors and other information regarding the status of the SOAP call is returned in the Fault element.

Random String Generation

Random string generation involves a simple application which is extremely useful for a wide range of applications.

We define the function str_rand, which is based on the PHP mt_rand, to generate the string:

function str_rand($len = 32, $chars='0123456789abcdefghijk
    $str = '';
    for ($i = 0; $i < $len; $i++) {
        $str .= $chars[mt_rand(0, strlen($chars) - 1)];
    return $str;

With this function we can create an impressive number of different strings. With the values of $len and $chars as the basis, we have a string which is 32 characters long, selected from 62 characters, or 3262 permutations. Let's use Python to make the calculation:

>>> "%.2g" % 32**62

Not enough? Given that the combinations increase exponentially, by simply doubling the length $len of the string, we obtain 9.6 x 10111 possible results, or more than 4 billion billion times the previous number!

However, a high probability is not enough to guarantee that all of the generated strings are unique. As programmers we have to remain on the defensive, and be 100% sure that they can be no conflicts. It is sufficient to add a simple loop to ensure this condition is met:

// List of keys already generated and not to be repeated 
//- for example from a databank 
$keys = array(...);

$k = str_rand();

while (in_array($k, $keys)) {
    $k = str_rand();

Given the high number of possible keys, the condition in_array($k, $keys) will be nearly always false, but if the number of keys already existing is very high and/or the number of possible combinations must be restricted (for example, shortening the key or including only the lower case letters in the initial $chars set), it would be too involved to check every time all the values of $keys. At this point, we could devise a more refined method for generating keys, but for most requirements this method works perfectly.

Content © All rights reserved. Created : November 28, 2014 Last updated :March 7, 2016

Latest Item on Science Library:

The most recent article is:


View this item in the topic:

Vectors and Trigonometry

and many more articles in the subject:

Subject of the Week


Mathematics is the most important tool of science. The quest to understand the world and the universe using mathematics is as old as civilisation, and has led to the science and technology of today. Learn about the techniques and history of mathematics on


Great Scientists

Jean-Baptiste Lamarck

1744 - 1829

Jean-Baptiste de Lamarck was a prominent French botanist and invertebrate zoologist, who developed a transmutation theory of change in species, which became the major fore-runner to the Darwinian theory of Natural Selection.

Jean-Baptiste de Lamarck, 1744 - 1829
Vitruvian Boy

Quote of the day...

The EU is moving fast towards a low-carbon, more digital, and consumer-centric energy system that is fit for the future. The electricity sector needs to be a driving force in reaching our decarbonisation objectives. We expect more than half of our electricity in Europe will come from renewables by 2030.

ZumGuy Internet Promotions

IT information forum by Sean Bone