The Barnes & Noble Review
Simpler is better. Simpler protocols are more powerful, and far more likely to succeed. Think HTTP, HTML, XML -- and now, SOAP. Compared to, say, DCOM and CORBA, this is a breath of fresh air. All SOAP requires is basic text-processing capabilities: no complex security or component models, not even a full-fledged XML parser (no DTDs or processing instructions to worry about). With the complexity stripped out, it's not only easier to master, you can deploy it far more widely.
In this book, Scott Seely shows programmers exactly how to get started with SOAP in real-world application development. After a chapter covering "all the XML you need to know" to work with SOAP, he explains each key element of the spec, walks through building simple clients and servers, and introduces two complementary specifications that really make SOAP fly: the Web Services Description Language (WSDL) and Universal Description, Discovery, and Integration (UDDI).
Part III of the book presents a start-to-finish case study: a web-based auction system that's seriously cross-platform. Get this: It's built with Java, Visual Basic, and C#, using SOAP toolkits from Apache and Microsoft, and runs on UNIX, Windows, and .NET. Talk about proof of concept!
Bill Camarda is a consultant, writer, and web/multimedia content developer with nearly 20 years' experience in helping technology companies deploy and market advanced software, computing, and networking products and services. He served for nearly ten years as vice president of a New Jerseybased marketing company, where he supervised a wide range of graphics and web design projects. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks For Dummies®, Second Edition.
Read an Excerpt
Chapter 1: How We Got To SOAP
To understand why we need a technology such as the Simple Object Access Protocol (SOAP) we need to spend a bit of time looking at how computing technology has evolved. SOAP itself started out as a way to make distributed computing platform agnostic. We have always had the concept of distributed computing. The idea of having people perform calculations that they are good at and then handing the work off to other mathematicians is nothing new. For example, logarithms take a long time to compute. Because of this, people wrote out and reproduced logarithmic tables for other mathematicians to use.
To review the history, I would like to take a look at the things we have done in moving from the abacus to mechanical calculators and then to distributed computing. Understanding (or simply reviewing) this history gives some perspective of where we have come from and highlights why so many people are excited about SOAP. The idea of ubiquitous computing is moving from being just a neat idea to a reality. SOAP provides a way for all those computers to talk to each other and request services of each other. Indulge me as I present a little history lesson showing where our pursuit of automated number crunching has taken us.
The abacus has been used as a calculator for thousands of years, and you can still find it in use in China, Japan, and the Middle East. The most common form of the abacus can register numbers from 1 to 9,999,999,999,999.1 The abacus does this using 13 rows of beads as shown in Figure 1-1. The user of an abacus reads the numbers from the beads touching the center bar. Each bead touching the center bar on the bottom half of the abacus equals one times the units column. Each bead touching the center bar from the top half of the abacus equals five times the units column. Figure 1-2 shows how you would represent the number 23.
The abacus shines when adding and subtracting numbers. Practiced users can usually outpace a person using a modern adding machine. As users add the second number in, they slide the beads up and down. Every time all five bottom beads touch the center bar, one bead from the same column on the top bar must come down. Then, all five beads must be returned to the bottom again. Likewise, if both top beads touch the center bar these beads must moved away from the center bar and one bottom bead from the next highest rank gets moved up. Figure 1-3 shows how one would execute 7 + 23 and reconcile that to 30. To subtract 7 from 30 and get 23 you would reverse the process.
Does that all make sense to you? Here is another way to look at the abacus. For this example, we use people and their fingers instead of beads to build a human abacus. After all, the abacus is based on this same idea. The bottom five beads represent the five fingers on a hand. The top two beads represent two hands. Each "hand" equals five "fingers." We use our human abacus like this: When all the fingers on one hand fill up, we start counting on the other hand. When the person in the ones column gets to 10, that person sets their fingers to zero and the person in the tens column remembers one on their hands (by raising one finger). This counting continues through the ranks until the capabilities of the fingers in the abacus are used up.
Because of the abacus's ability to aid in addition and subtraction, the tool has endured for a long time. Due to its construction it does not handle multiplication and division very well. Multiplication essentially involves adding the numbers over and over again (25 * 4 = 25 + 25 + 25 + 25). Division is also possible but time consuming. Not surprisingly, the abacus does not help us do any serious number crunching. It does allow for distribution of computing tasks. You may ask two or more people to manipulate the same series of numbers just to verify that the results are correct. Alternatively, you can also split
up large computations among many people who have an abacus. As we know now, there are faster ways to perform computations. Let's take a look at one of the first attempts to speed things up.
As we learned more and more about the world around us, we learned more about the mathematical relationships in nature. All of this math created a need for tools that could assist in performing calculations. Around 1600, Galileo began to incorporate mathematics with his observations of the physical world. For example, he noticed that objects fell to the earth at the same rate regardless of their weight. A marble will hit the ground in the same time it takes a cannon ball to travel the same distance. Figuring out the mathematics describing the various phenomena he observed created a need for new tools. For his own work, Galileo invented a number of different compasses.
Galileo was not the only person figuring out the mathematics of nature. History credits John Napier with the invention of logarithms. He published his initial work on them in 1614. Logarithms are useful for quick multiplication and division, but it takes a long time to compute logarithms manually. To save time, Napier invented a device called Napier's Bones, the predecessor of the slide rule. This tool proved to be very difficult to use and as a result, people looked for new, better ways to do the same thing. Seven years after Napier published his first paper on logarithms, William Oughtred gave us the slide rule in 1621. This tool remained a standby for students of mathematics until the calculator became affordable during the 1970s....
1 This particular form of abacus has 13 rows. As a rule, an abacus can handle smaller or larger numbers depending on its construction. Smaller numbers need fewer rows-you could handle numbers through 9,999 with 11 four-row abacus. For each power of 10 that you want to handle, just add another row.