SOA in Practice: Errata |
|
Now available:SOA in Practice O'Reilly ISBN-10: 0-596-52955-4 |
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
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"; }
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/