SOA in Practice: Errata 

 

Now available:

Nicolai M. Josuttis

SOA in Practice
The Art of Distributed System Design

O'Reilly

ISBN-10: 0-596-52955-4
ISBN-13: 978-0-596-52955-0


This is the page for the known errata of the book "SOA in Practice" by Nicolai M. Josuttis.

For further updates and feedback please send an email to soabook2@josuttis.com (if you click on it to reply, you have to replace "_AT_" by "@"). Note however that I get a lot of emails so that I might not be able to answer immediately. In addition, we have the problem of spamming. For this reason, please use a proper subject, use plain text, and keep the size of the email below 100kB. If you don't get an answer after a certain period of time, you might try it again (with different wording) to make sure the email was not caught by a spam filter.

The errata is organized in the following way:
- The first part lists technical errors
- The second part lists typos

Last Update: June 3, 2009


Errors:

Page 9 / 238: An entry for the referenced book [Brooks74] is missing in the reference appendix. However, currently it's [Brooks95]. So:

Page 9: replace [Brooks74] by [Brooks95]

Page 286 between [BPMN] and [BrownEllis04] add:
 [Brooks95]
 Brooks, Frederick P. 1995. The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition). Reading, MA: Addison-Wesley.


Page 89: The BPEL example uses invalid XML comments (they should start with "<!--" instead of "<!-") and the dots "..." are placeholders for concrete stuff so that a proportional font such as "..." would be better for them.


Page 160, end of first paragraph: Replace "in the opposite order" by "in the opposite direction"


Page 192, pseudocode: Of course, the service should have the customer id as an additional parameter, which has to be used internally to identify the customer:

string changeAddress (custID, newAddress)
{
    oldAddress = backend_1.getAddress(custID);

    status = backend_1.changeAddress(custID,newAddress);
    if (status == failure) {
        return "couldn't modify address in backend 1";
    }

    status = backend_2.changeAddress(custID,newAddress);
    if (status == failure) {
        // compensation: restore old address to keep consistency
        status = backend_1.changeAddress(custID,oldAddress);
        if (status == failure) {
            fatalError(...);
        }
        return "couldn't modify address in backend 2";
    }
    return "OK";
}

Typos:

Page iv: s/by Nicloai M. Josuttis/by Nicolai M. Josuttis/

Page xiv: Alan Lenton is listed twice in the second paragraph of the acknowledgments

Page 32, 3.3.7: s/contain a category of “s services”/contain a category of “composed services”/

Page 48: s/As [Chappel04] states:/As [Chappell04] states:/

Page 58: s/Or, as [Chappel04] states:/Or, as [Chappell04] states:/

Page 59, 2nd list item: s/(connectivity, data mapping, and routing)/(connectivity, data transformation, and routing)/

Page 94, 7.5.1: s/:servmodifying/modifying/

Page 111, 9.1.1: s/"s department" /"process department"/

Page 112, Figure 9-2: s/BMP Engine/BPM Engine/

Page 113, Figure 9-3: s/BMP Engine/BPM Engine/

Page 160, Figure 13-1, on the right side: s/Serialize request/Serialize response/

Page 195: s/shopping cart (or session) isn the backend/shopping cart (or session) in the backend/

Page 204, NOTE: s/a key, a value, a type of information for the value/a key, a value, a type information for the value/

Page 210, s/Discovery, and Innovation (UDDI)/Discovery, and Integration (UDDI)/

Page 240, Figure 18-2: s/setContractData/getContractData/

Page 256, bottom code: s/setContractData()/getContractData()/

Page 257, top code and Figure 18-13: order of lastname and isActive should be reversed

Page 265, 19.2.2: s/and it might by steered by a/and it might be steered by a/

Page 274, 19.5.1: s/Ann Thomas Manes/Anne Thomas Manes/

Page 286: s/[Chappel04] Chappel,/[Chappell04] Chappell/

Page 295, "Compensation": s/In contract to/In contrast to/


Home of "SOA in Practice"


Copyright 2009 by Nicolai M. Josuttis