SlideShare a Scribd company logo
Enterprise Integration Patterns Designing
Building and Deploying Messaging Solutions 1st
Edition Hohpe pdf download
https://ebookname.com/product/enterprise-integration-patterns-
designing-building-and-deploying-messaging-solutions-1st-edition-
hohpe/
Get the full ebook with Bonus Features for a Better Reading Experience on ebookname.com
Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...
Service Oriented Java Business Integration Enterprise
Service Bus integration solutions for Java developers
1st Ed Edition Binildas
https://ebookname.com/product/service-oriented-java-business-
integration-enterprise-service-bus-integration-solutions-for-
java-developers-1st-ed-edition-binildas/
Pentaho Kettle Solutions Building Open Source ETL
Solutions with Pentaho Data Integration 1st Edition
Matt Casters
https://ebookname.com/product/pentaho-kettle-solutions-building-
open-source-etl-solutions-with-pentaho-data-integration-1st-
edition-matt-casters/
Enterprise Integration Patterns for SAP NetWeaver PI
SAP PRESS Essentials 35 1st Edition René De Daniel
https://ebookname.com/product/enterprise-integration-patterns-
for-sap-netweaver-pi-sap-press-essentials-35-1st-edition-rene-de-
daniel/
Evolutionary Science and Society Educating a New
Generation Joel Cracraft
https://ebookname.com/product/evolutionary-science-and-society-
educating-a-new-generation-joel-cracraft/
Frommer s London Day by Day Frommer s Day by Day 1st
Edition Lesley Logan
https://ebookname.com/product/frommer-s-london-day-by-day-
frommer-s-day-by-day-1st-edition-lesley-logan/
The Tour de France 1903 2003 a century of sporting
structures meanings and values Hugh Dauncey
https://ebookname.com/product/the-tour-de-
france-1903-2003-a-century-of-sporting-structures-meanings-and-
values-hugh-dauncey/
Healthy Cooking for Secondary Schools Book 4 Book 4 1st
Edition Sandra Mulvany
https://ebookname.com/product/healthy-cooking-for-secondary-
schools-book-4-book-4-1st-edition-sandra-mulvany/
In Harm s Way The Dynamics of Urban Violence Javier
Auyero
https://ebookname.com/product/in-harm-s-way-the-dynamics-of-
urban-violence-javier-auyero/
Litt s Drug Eruptions Reactions Manual 16th Edition
Litt Jerome
https://ebookname.com/product/litt-s-drug-eruptions-reactions-
manual-16th-edition-litt-jerome/
Srimad Bhagavata Mahapurana with Sanskrit Text and
English Translation Volume 2 Gita Press Gorakhpur 1st
Edition C.L. Goswami
https://ebookname.com/product/srimad-bhagavata-mahapurana-with-
sanskrit-text-and-english-translation-volume-2-gita-press-
gorakhpur-1st-edition-c-l-goswami/
Enterprise Integration Patterns Designing Building and Deploying Messaging Solutions 1st Edition Hohpe
Aggregator (268) How do we combine the
results of individual but related messages so
that they can be processed as a whole?
Canonical Data Model (355) How can you
minimize dependencies when integrating
applications that use different data formats?
Channel Adapter (127) How can you connect
an application to the messaging system so that
it can send and receive messages?
Channel Purger (572) How can you keep left-
over messages on a channel from disturbing
tests or running systems?
Claim Check (346) How can we reduce the
data volume of message sent across the system
without sacrificing information content?
Command Message (145) How can messaging
be used to invoke a procedure in another
application?
Competing Consumers (502) How can a
messaging client process multiple messages
concurrently?
Composed Message Processor (294) How can
you maintain the overall message flow when pro-
cessing a message consisting of multiple elements,
each of which may require different processing?
Content Enricher (336) How do we communi-
cate with another system if the message origina-
tor does not have all the required data items
available?
Content Filter (342) How do you simplify
dealing with a large message when you are
interested only in a few data items?
Content-Based Router (230) How do we han-
dle a situation in which the implementation
of a single logical function is spread across
multiple physical systems?
Control Bus (540) How can we effectively
administer a messaging system that is distri-
buted across multiple platforms and a wide
geographic area?
Correlation Identifier (163) How does a re-
questor that has received a reply know which
request this is the reply for?
Datatype Channel (111) How can the applica-
tion send a data item such that the receiver
will know how to process it?
Dead Letter Channel (119) What will the mes-
saging system do with a message it cannot deliver?
Detour (545) How can you route a message
through intermediate steps to perform valida-
tion, testing, or debugging functions?
Document Message (147) How can messaging
be used to transfer data between applications?
Durable Subscriber (522) How can a subscriber
avoid missing messages while it’s not listening for
them?
Dynamic Router (243) How can you avoid the
dependency of the router on all possible destina-
tions while maintaining its efficiency?
Envelope Wrapper (330) How can existing sys-
tems participate in a messaging exchange that plac-
es specific requirements, such as message header
fields or encryption, on the message format?
Event Message (151) How can messaging be
used to transmit events from one application to
another?
Event-Driven Consumer (498) How can an
application automatically consume messages
as they become available?
File Transfer (43) How can I integrate multiple
applications so that they work together and can
exchange information?
Format Indicator (180) How can a message’s
data format be designed to allow for possible
future changes?
Guaranteed Delivery (122) How can the sender
make sure that a message will be delivered even
if the messaging system fails?
Idempotent Receiver (528) How can a message
receiver deal with duplicate messages?
Invalid Message Channel (115) How can a mes-
saging receiver gracefully handle receiving a mes-
sage that makes no sense?
Message Broker (322) How can you decouple
the destination of a message from the sender
and maintain central control over the flow of
messages?
Message Bus (137) What architecture enables
separate applications to work together but in a de-
coupled fashion such that applications can be eas-
ily added or removed without affecting the others?
Message Channel (60) How does one applica-
tion communicate with another using messaging?
Message Dispatcher (508) How can multiple
consumers on a single channel coordinate their
message processing?
Message Endpoint (95) How does an applica-
tion connect to a messaging channel to send and
receive Messages?
Message Expiration (176) How can a sender
indicate when a message should be considered
stale and thus shouldn’t be processed?
C
A B
D
E
List of Patterns
Message Filter (237) How can a component
avoid receiving uninteresting messages?
Message History (551) How can we effectively
analyze and debug the flow of messages in a
loosely coupled system?
Message Router (78) How can you decouple
individual processing steps so that messages
can be passed to different filters depending on
a set of conditions?
Message Sequence (170) How can messaging
transmit an arbitrarily large amount of data?
Message Store (555) How can we report against
message information without disturbing the
loosely coupled and transient nature of a
messaging system?
Message Translator (85) How can systems
using different data formats communicate with
each other using messaging?
Message (66) How can two applications con-
nected by a message channel exchange a piece
of information?
Messaging Bridge (133) How can multiple mes-
saging systems be connected so that messages
available on one are also available on the others?
Messaging Gateway (468) How do you encap-
sulate access to the messaging system from the
rest of the application?
Messaging Mapper (477) How do you move
data between domain objects and the messaging
infrastructure while keeping the two indepen-
dent of each other?
Messaging (53) How can I integrate multiple
applications so that they work together and
can exchange information?
Normalizer (352) How do you process messag-
es that are semantically equivalent but arrive in a
different format?
Pipes and Filters (70) How can we perform
complex processing on a message while main-
taining independence and flexibility?
Point-to-Point Channel (103) How can the
caller be sure that exactly one receiver will
receive the document or perform the call?
Polling Consumer (494) How can an applica-
tion consume a message when the application
is ready?
Process Manager (312) How do we route a mes-
sage through multiple processing steps when the
required steps may not be known at design time
and may not be sequential?
Publish-Subscribe Channel (106) How can the
sender broadcast an event to all interested
receivers?
Recipient List (249) How do we route a mes-
sage to a dynamic list of recipients?
Remote Procedure Invocation (50) How can I
integrate multiple applications so that they work
together and can exchange information?
Request-Reply (154) When an application sends
a message, how can it get a response from the
receiver?
Resequencer (283) How can we get a stream of
related but out-of-sequence messages back into
the correct order?
Return Address (159) How does a replier know
where to send the reply?
Routing Slip (301) How do we route a message
consecutively through a series of processing
steps when the sequence of steps is not known
at design time and may vary for each
message?
Scatter-Gather (297) How do you maintain the
overall message flow when a message must be
sent to multiple recipients, each of which may
send a reply?
Selective Consumer (515) How can a message
consumer select which messages it wishes to
receive?
Service Activator (532) How can an application
design a service to be invoked both via various
messaging technologies and via non-messaging
techniques?
Shared Database (47) How can I integrate mul-
tiple applications so that they work together and
can exchange information?
Smart Proxy (558) How can you track messages
on a service that publishes reply messages to the
Return Address specified by the requestor?
Splitter (259) How can we process a message if
it contains multiple elements, each of which may
have to be processed in a different way?
Test Message (569) What happens if a compo-
nent is actively processing messages but garbles
outgoing messages due to an internal fault?
Transactional Client (484) How can a client
control its transactions with the messaging
system?
Wire Tap (547) How do you inspect messages
that travel on a Point-to-Point Channel?
1 2 3
?
Enterprise
Integration Patterns
The Addison-Wesley Signature Series provides readers with
practical and authoritative information on the latest trends in modern
technology for computer professionals. The series is based on one simple
premise: Great books come from great authors. Books in the series are
personally chosen by expert advisors, world-class authors in their own
right. These experts are proud to put their signatures on the covers, and
their signatures ensure that these thought leaders have worked closely
with authors to define topic coverage, book scope, critical content, and
overall uniqueness. The expert signatures also symbolize a promise to
our readers: You are reading a future classic.
Visit informit.com/awss for a complete list of available products.
The Addison-Wesley
Signature Series
Kent Beck, Mike Cohn, and Martin Fowler, Consulting Editors
Enterprise
Integration Patterns
Designing, Building,
and Deploying Messaging Solutions
Gregor Hohpe
Bobby Woolf
With Contributions by
Kyle Brown
Conrad F. D’Cruz
Martin Fowler
Sean Neville
Michael J. Rettig
Jonathan Simon
Boston • San Francisco • New York • Toronto • Montreal
London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City
Many of the designations used by manufacturers and sellers to distinguish their products
are claimed as trademarks. Where those designations appear in this book, and Addison-
Wesley was aware of a trademark claim, the designations have been printed with initial
capital letters or in all capitals.
The authors and publisher have taken care in the preparation of this book, but make no
expressed or implied warranty of any kind and assume no responsibility for errors or
omissions. No liability is assumed for incidental or consequential damages in connection
with or arising out of the use of the information or programs contained herein.
The publisher offers discounts on this book when ordered in quantity for bulk purchases
and special sales. For more information, please contact:
U.S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside of the U.S., please contact:
International Sales
(317) 581-3793
international@pearsontechgroup.com
Visit Addison-Wesley on the Web: www.awprofessional.com
Library of Congress Cataloging-in-Publication Data
Hohpe, Gregor.
Enterprise integration patterns : designing, building, and deploying messaging
solutions / Gregor Hohpe, Bobby Woolf.
p. cm.
Includes bibliographical references and index.
ISBN 0-321-20068-3
1. Telecommunication—Message processing. 2. Management information
systems. I. Woolf, Bobby. II. Title.
TK5102.5.H5882 2003
005.7'136—dc22
2003017989
Copyright © 2004 by Pearson Education, Inc.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval
system, or transmitted, in any form, or by any means, electronic, mechanical, photocopy-
ing, recording, or otherwise, without the prior consent of the publisher. Printed in the
United States of America. Published simultaneously in Canada.
For information on obtaining permission for use of material from this work, please sub-
mit a written request to:
Pearson Education, Inc.
Rights and Contracts Department
75 Arlington Street, Suite 300
Boston, MA 02116
Fax: (617) 848-7047
ISBN: 0-321-20068-3
Text printed in the United States on recycled paper at Courier in Westford,
Massachusetts.
Fifteenth printing, May 2011
To my family and all my friends who still remember me
after I emerged from book “crunch mode”
—Gregor
To Sharon, my new wife
—Bobby
This page intentionally left blank
vii
Contents
Foreword by John Crupi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Foreword by Martin Fowler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
Chapter 1: Solving Integration Problems Using Patterns . . . . . . . . . . . . . . . . 1
The Need for Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
Integration Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
How Integration Patterns Can Help . . . . . . . . . . . . . . . . . . . . . . . . . .4
The Wide World of Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
Loose Coupling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
One-Minute EAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
A Loosely Coupled Integration Solution . . . . . . . . . . . . . . . . . . . . . .15
Widgets & Gadgets ’R Us: An Example . . . . . . . . . . . . . . . . . . . . . .17
Internal Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Taking Orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Processing Orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Checking Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
Change Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
New Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
Announcements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Testing and Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
Chapter 2: Integration Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
File Transfer (by Martin Fowler) . . . . . . . . . . . . . . . . . . . . . . . . . . .43
viii CONTENTS
Shared Database (by Martin Fowler). . . . . . . . . . . . . . . . . . . . . . . . .47
Remote Procedure Invocation (by Martin Fowler). . . . . . . . . . . . . . .50
Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Chapter 3: Messaging Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Message Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
Pipes and Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
Message Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
Message Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
Message Endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
Chapter 4: Messaging Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Point-to-Point Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Publish-Subscribe Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
Datatype Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
Invalid Message Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
Dead Letter Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
Guaranteed Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
Channel Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
Messaging Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
Message Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
Chapter 5: Message Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
Command Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Document Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
Event Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
Request-Reply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
Return Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
Correlation Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
Message Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
Message Expiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176
Format Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
CONTENTS ix
Chapter 6: Interlude: Simple Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
Publish-Subscribe Example . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
JMS Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
Request-Reply Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
Invalid Message Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
.NET Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
Request-Reply Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200
Invalid Message Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206
JMS Publish-Subscribe Example . . . . . . . . . . . . . . . . . . . . . . . . . . .207
The Observer Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Distributed Observer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
Publish-Subscribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
Push and Pull Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
Channel Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
Chapter 7: Message Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
Content-Based Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
Message Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
Dynamic Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
Recipient List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
Splitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
Aggregator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268
Resequencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
Composed Message Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
Scatter-Gather . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297
Routing Slip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
x CONTENTS
Process Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312
Message Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
Chapter 8: Message Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327
Envelope Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
Content Enricher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
Content Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Claim Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346
Normalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
Canonical Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355
Chapter 9: Interlude: Composed Messaging. . . . . . . . . . . . . . . . . . . . . . . . 361
Loan Broker Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Obtaining a Loan Quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Designing the Message Flow . . . . . . . . . . . . . . . . . . . . . . . . . . .362
Sequencing: Synchronous versus Asynchronous . . . . . . . . . . . . .364
Addressing: Distribution versus Auction . . . . . . . . . . . . . . . . . .366
Aggregating Strategies: Multiple Channels versus
Single Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368
Managing Concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368
Three Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369
Synchronous Implementation Using Web Services
(by Conrad F. D’Cruz) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371
Solution Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371
Web Services Design Considerations . . . . . . . . . . . . . . . . . . . . .372
Apache Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376
Service Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .379
The Loan Broker Application . . . . . . . . . . . . . . . . . . . . . . . . . . .379
Components of the Loan Broker Application . . . . . . . . . . . . . . .381
Client Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396
Running the Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .397
Performance Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399
Limitations of This Example . . . . . . . . . . . . . . . . . . . . . . . . . . .400
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .400
Asynchronous Implementation with MSMQ . . . . . . . . . . . . . . . . .401
Loan Broker Ecosystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401
Laying the Groundwork: A Messaging Gateway . . . . . . . . . . . .402
CONTENTS xi
Base Classes for Common Functionality . . . . . . . . . . . . . . . . . .405
Designing the Bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .410
Designing the Credit Bureau . . . . . . . . . . . . . . . . . . . . . . . . . . .412
Designing the Loan Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413
Refactoring the Loan Broker . . . . . . . . . . . . . . . . . . . . . . . . . . .431
Putting it All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435
Improving Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435
A Few Words on Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .440
Limitations of This Example . . . . . . . . . . . . . . . . . . . . . . . . . . .443
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444
Asynchronous Implementation with TIBCO ActiveEnterprise
(by Michael J. Rettig) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445
Solution Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445
The Implementation Toolset . . . . . . . . . . . . . . . . . . . . . . . . . . .448
The Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451
Implementing the Synchronous Services . . . . . . . . . . . . . . . . . . .452
The Loan Broker Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455
Managing Concurrent Auctions . . . . . . . . . . . . . . . . . . . . . . . . .459
Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .462
Chapter 10: Messaging Endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .463
Messaging Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468
Messaging Mapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .477
Transactional Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .484
Polling Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .494
Event-Driven Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .498
Competing Consumers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .502
Message Dispatcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .508
Selective Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .515
Durable Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .522
Idempotent Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .528
Service Activator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .532
Chapter 11: System Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537
Control Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .540
xii CONTENTS
Detour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .545
Wire Tap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .547
Message History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .551
Message Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555
Smart Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .558
Test Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .569
Channel Purger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .572
Chapter 12: Interlude: System Management Example . . . . . . . . . . . . . . . . 577
Loan Broker System Management . . . . . . . . . . . . . . . . . . . . . . . . .577
Instrumenting the Loan Broker . . . . . . . . . . . . . . . . . . . . . . . . .578
Management Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .579
Loan Broker Quality of Service . . . . . . . . . . . . . . . . . . . . . . . . .579
Verify the Credit Bureau Operation . . . . . . . . . . . . . . . . . . . . . .587
Credit Bureau Failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .592
Enhancing the Management Console . . . . . . . . . . . . . . . . . . . . .595
Limitations of This Example . . . . . . . . . . . . . . . . . . . . . . . . . . .602
Chapter 13: Integration Patterns in Practice. . . . . . . . . . . . . . . . . . . . . . . . 603
Case Study: Bond Pricing System (by Jonathan Simon) . . . . . . . . .603
Building a System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .603
Architecture with Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . .604
Structuring Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .610
Selecting a Message Channel . . . . . . . . . . . . . . . . . . . . . . . . . . .614
Problem Solving with Patterns . . . . . . . . . . . . . . . . . . . . . . . . . .618
Flashing Market Data Updates . . . . . . . . . . . . . . . . . . . . . . . . . .618
Major Production Crash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .620
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .623
Chapter 14: Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
Emerging Standards and Futures
in Enterprise Integration (by Sean Neville) . . . . . . . . . . . . . . .625
The Relationship between Standards and Design Patterns . . . . . 626
Survey of Standards Processes and Organizations . . . . . . . . . . .627
Business Process Components and Intra-Web
Service Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .629
ebXML and the Electronic Business Messaging
Service (ebMS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .631
CONTENTS xiii
Business Process Execution Language for
Web Services (BEPL4WS) . . . . . . . . . . . . . . . . . . . . . . . . .634
Web Service Choreography Interface (WSCI) . . . . . . . . . . . . . . .636
Java Business Process Component Standards . . . . . . . . . . . . . . .637
WS-* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .639
Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .647
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .659
This page intentionally left blank
xv
Foreword
by John Crupi
What do you do when a new technology arrives? You learn the technology. This
is exactly what I did. I studied J2EE (being from Sun Microsystems, it seemed to
be the logical choice). Specifically, I focused on the EJB technology by reading
the specifications (since there were no books yet). Learning the technology, how-
ever, is just the first step—the real goal is to learn how to effectively apply the
technology. The nice thing about platform technologies is that they constrain
you to performing certain tasks. But, as far as the technology is concerned, you
can do whatever you want and quite often get into trouble if you don’t do things
appropriately.
One thing I’ve seen in the past 15 years is that there seem to be two areas that
software developers obsess over: programming and designing—or more specifi-
cally, programming and designing effectively. There are great books out there
that tell you the most efficient way to program certain things in Java and C#, but
far fewer tell you how to design effectively. That’s where this book comes in.
When Deepak Alur, Dan Malks, and I wrote Core J2EE Patterns, we wanted to
help J2EE developers “design” better code. The best decision we made was to
use patterns as the artifact of choice. As James Baty, a Sun Distinguished Engi-
neer, puts it, “Patterns seem to be the sweet spot of design.” I couldn’t agree
more, and luckily for us, Gregor and Bobby feel the same way.
This book focuses on a hot and growing topic: integration using messaging.
Not only is messaging key to integration, but it will most likely be the predomi-
nant focus in Web services for years to come. There is so much noise today in the
Web services world, it’s a delicate and complex endeavor just to identify the spec-
ifications and technologies to focus on. The goal remains the same, however—
software helps you solve a problem. Just as in the early days of J2EE and .NET,
there is not a lot of design help out there yet for Web services. Many people say
xvi FOREWORD
Web services is just a new and open way to solve our existing integration prob-
lems—and I agree. But, that doesn’t mean we know how to design Web services.
And that brings us to the gem of this book. I believe this book has many of the
patterns we need to design Web services and other integration systems. Because
the Web service specifications are still battling it out, it wouldn’t have made sense
for Bobby and Gregor to provide examples of many of the Web service specifica-
tions. But, that’s okay. The real payoff will result when the specifications become
standards and we use the patterns in this book to design for those solutions that
are realized by these standards. Then maybe we can realize our next integration
goal of designing for service-oriented architectures.
Read this book and keep it by your side. It will enhance your software career
to no end.
John Crupi
Bethesda, MD
August 2003
xvii
Foreword
by Martin Fowler
While I was working on my book Patterns of Enterprise Application Architec-
ture, I was lucky to get some in-depth review from Kyle Brown and Rachel
Reinitz at some informal workshops at Kyle’s office in Raleigh-Durham. During
these sessions, we realized that a big gap in my work was asynchronous messag-
ing systems.
There are many gaps in my book, and I never intended it to be a complete
collection of patterns for enterprise development. But the gap on asynchronous
messaging is particularly important because we believe that asynchronous mes-
saging will play an increasingly important role in enterprise software develop-
ment, particularly in integration. Integration is important because applications
cannot live isolated from each other. We need techniques that allow us to take
applications that were never designed to interoperate and break down the
stovepipes so we can gain a greater benefit than the individual applications can
offer us.
Various technologies have been around that promise to solve the integration
puzzle. We all concluded that messaging is the technology that carries the greatest
promise. The challenge we faced was to convey how to do messaging effectively.
The biggest challenge in this is that messages are by their nature asynchronous,
and there are significant differences in the design approaches that you use in an
asynchronous world.
I didn’t have space, energy, or frankly the knowledge to cover this topic
properly in Patterns of Enterprise Application Architecture. But we came up
with a better solution to this gap: find someone else who could. We hunted
down Gregor and Bobby, and they took up the challenge. The result is the book
you’re about to read.
xviii FOREWORD
I’m delighted with the job that they have done. If you’ve already worked
with messaging systems, this book will systematize much of the knowledge that
you and others have already learned the hard way. If you are about to work
with messaging systems, this book will provide a foundation that will be invalu-
able no matter which messaging technology you have to work with.
Martin Fowler
Melrose, MA
August 2003
xix
Preface
This is a book about enterprise integration using messaging. It does not docu-
ment any particular technology or product. Rather, it is designed for developers
and integrators using a variety of messaging products and technologies, such as
• Message-oriented middleware (MOM) and EAI suites offered by vendors
such as IBM (WebSphere MQ Family), Microsoft (BizTalk), TIBCO, Web-
Methods, SeeBeyond, Vitria, and others.
• Java Message Service (JMS) implementations incorporated into commercial
and open source J2EE application servers as well as standalone products.
• Microsoft’s Message Queuing (MSMQ), accessible through several APIs,
including the System.Messaging libraries in Microsoft .NET.
• Emerging Web services standards that support asynchronous Web services
(for example, WS-ReliableMessaging) and the associated APIs such as Sun
Microsystems’ Java API for XML Messaging (JAXM) or Microsoft’s Web
Services Extensions (WSE).
Enterprise integration goes beyond creating a single application with a dis-
tributed n-tier architecture, which enables a single application to be distributed
across several computers. Whereas one tier in a distributed application cannot
run by itself, integrated applications are independent programs that can each run
by themselves, yet that function by coordinating with each other in a loosely
coupled way. Messaging enables multiple applications to exchange data or com-
mands across the network using a “send and forget” approach. This allows the
caller to send the information and immediately go on to other work while the
information is transmitted by the messaging system. Optionally, the caller can
later be notified of the result through a callback. Asynchronous calls and call-
backs can make a design more complex than a synchronous approach, but an
asynchronous call can be retried until it succeeds, which makes the communica-
xx PREFACE
tion much more reliable. Asynchronous messaging also enables several other
advantages, such as throttling of requests and load balancing.
Who Should Read This Book
This book is designed to help application developers and system integrators
connect applications using message-oriented integration tools:
• Application architects and developers who design and build complex
enterprise applications that need to integrate with other applications. We
assume that you’re developing your applications using a modern enterprise
application platform such as the Java 2 Platform, Enterprise Edition
(J2EE), or the Microsoft .NET Framework. This book will help you con-
nect the application to a messaging layer and exchange information with
other applications. This book focuses on the integration of applications,
not on building applications; for that, we refer you to Patterns of Enter-
prise Application Architecture by Martin Fowler.
• Integration architects and developers who design and build integration
solutions connecting packaged or custom applications. Most readers in
this group will have experience with one of the many commercial integra-
tion tools like IBM WebSphere MQ, TIBCO, WebMethods, SeeBeyond, or
Vitria, which incorporate many of the patterns presented in this book.
This book helps you understand the underlying concepts and make confi-
dent design decisions using a vendor-independent vocabulary.
• Enterprise architects who have to maintain the “big picture” view of the
software and hardware assets in an enterprise. This book presents a consis-
tent vocabulary and graphical notation to describe large-scale integration
solutions that may span many technologies or point solutions. This lan-
guage is also a key enabler for efficient communication between the enter-
prise architect and the integration and application architects and developers.
What You Will Learn
This book does not attempt to make a business case for enterprise application
integration; the focus is on how to make it work. You will learn how to inte-
grate enterprise applications by understanding the following:
PREFACE xxi
• The advantages and limitations of asynchronous messaging as compared
to other integration techniques.
• How to determine the message channels your applications will need, how
to control whether multiple consumers can receive the same message, and
how to handle invalid messages.
• When to send a message, what it should contain, and how to use special
message properties.
• How to route a message to its ultimate destination even when the sender
does not know where that is.
• How to convert messages when the sender and receiver do not agree on a
common format.
• How to design the code that connects an application to the messaging
system.
• How to manage and monitor a messaging system once it’s in use as part of
the enterprise.
What This Book Does Not Cover
We believe that any book sporting the word “enterprise” in the title is likely to
fall into one of three categories. First, the book might attempt to cover the
whole breadth of the subject matter but is forced to stop short of detailed guid-
ance on how to implement actual solutions. Second, the book might provide
specific hands-on guidance on the development of actual solutions but is forced
to constrain the scope of the subject area it addresses. Third, the book might
attempt to do both but is likely never to be finished or else to be published so
late as to be irrelevant. We opted for the second choice and hopefully created a
book that helps people create better integration solutions even though we had
to limit the scope of the book. Topics that we would have loved to discuss but
had to exclude in order not to fall into the category-three trap include security,
complex data mapping, workflow, rule engines, scalability and robustness, and
distributed transaction processing (XA, Tuxedo, and the like). We chose asyn-
chronous messaging as the emphasis for this book because it is full of interest-
ing design issues and trade-offs, and provides a clean abstraction from the
many implementations provided by various integration vendors.
This book is also not a tutorial on a specific messaging or middleware tech-
nology. To highlight the wide applicability of the concepts presented in this
xxii PREFACE
book, we included examples based on a number of different technologies, such
as JMS, MSMQ, TIBCO, BizTalk, and XSL. However, we focus on the design
decisions and trade-offs as opposed to the specifics of the tool. If you are inter-
ested in learning more about any of these specific technologies, please refer to
one of the books referenced in the bibliography or to one of the many online
resources.
How This Book Is Organized
As the title suggests, the majority of this book consists of a collection of pat-
terns. Patterns are a proven way to capture experts’ knowledge in fields where
there are no simple “one size fits all” answers, such as application architecture,
object-oriented design, or integration solutions based on asynchronous messag-
ing architectures.
Each pattern poses a specific design problem, discusses the considerations
surrounding the problem, and presents an elegant solution that balances the
various forces or drivers. In most cases, the solution is not the first approach
that comes to mind, but one that has evolved through actual use over time. As a
result, each pattern incorporates the experience base that senior integration
developers and architects have gained by repeatedly building solutions and
learning from their mistakes. This implies that we did not “invent” the patterns
in this book; patterns are not invented, but rather discovered and observed
from actual practice in the field.
Because patterns are harvested from practitioners’ actual use, chances are
that if you have been working with enterprise integration tools and asynchro-
nous messaging architectures for some time, many of the patterns in this book
will seem familiar to you. Yet, even if you already recognize most of these pat-
terns, there is still value in reviewing this book. This book should validate your
hard-earned understanding of how to use messaging while documenting details
of the solutions and relationships between them of which you might not have
been aware. It also gives you a consolidated reference to help you pass your
knowledge effectively to less-experienced colleagues. Finally, the pattern names
give you a common vocabulary to efficiently discuss integration design alterna-
tives with your peers.
The patterns in this book apply to a variety of programming languages and
platforms. This means that a pattern is not a cut-and-paste snippet of code, but
you have to realize a pattern to your specific environment. To make this transla-
tion easier, we added a variety of examples that show different ways of imple-
PREFACE xxiii
menting patterns using popular technologies such as JMS, MSMQ, TIBCO,
BizTalk, XSL, and others. We also included a few larger examples to demon-
strate how multiple patterns play together to form a cohesive solution.
Integrating multiple applications using an asynchronous messaging architec-
ture is a challenging and interesting field. We hope you enjoy reading this book
as much as we did writing it.
About the Cover Picture
The common theme for books in the Martin Fowler Signature Series is a picture
of a bridge. In some sense we lucked out, because what theme would make a
better match for a book on integration? For thousands of years, bridges have
helped connect people from different shores, mountains, and sides of the road.
We selected a picture of the Taiko-bashi Bridge at the Sumiyoshi-taisha
Shrine in Osaka, Japan, for its simple elegance and beauty. As a Shinto shrine
dedicated to the guardian deity for sailors, it was originally erected next to the
water. Interestingly, land reclamation has pushed the water away so that the
shrine today stands almost three miles inland. Some three million people visit
this shrine at the beginning of a new year.
Gregor Hohpe
San Francisco, California
Bobby Woolf
Raleigh, North Carolina
September 2003
www.enterpriseintegrationpatterns.com
The Pioneer Plaque by Dr. Carl Sagan
A message to extraterrestrial life forms.
xxv
Acknowledgments
Like most books, Enterprise Integration Patterns has been a long time in the
making. The idea of writing about message-based integration patterns dates
back to the summer of 2001 when Martin Fowler was working on Patterns of
Enterprise Application Architecture (P of EAA). At that time, it struck Kyle
Brown that while P of EAA talked a lot about how to create applications, it
touches only briefly on how to integrate them. This idea was the starting point
for a series of meetings between Martin and Kyle that also included Rachel Rein-
itz, John Crupi, and Mark Weitzel. Bobby joined these discussions in the fall of
2001, followed by Gregor in early 2002. The following summer the group sub-
mitted two papers for review at the Pattern Languages of Programs (PLoP) con-
ference, one authored jointly by Bobby and Kyle and the other by Gregor. After
the conference, Kyle and Martin refocused on their own book projects while
Gregor and Bobby merged their papers to form the basis for the book. At the
same time, the www.enterpriseintegrationpatterns.com site went live to allow
integration architects and developers around the world to participate in the
rapid evolution of the content. As they worked on the book, Gregor and Bobby
invited contributors to participate in the creation of the book. About two years
after Kyle’s original idea, the final manuscript arrived at the publisher.
This book is the result of a community effort involving a great number of
people. Many colleagues and friends (many of whom we met through the book
effort) provided ideas for examples, ensured the correctness of the technical
content, and gave us much needed feedback and criticism. Their input has
greatly influenced the final form and content of the book. It is a pleasure for us
to acknowledge their contributions and express our appreciation for their
efforts.
Kyle Brown and Martin Fowler deserve special mention for laying the foun-
dation for this book. This book might have never been written were it not for
Martin’s writing P of EAA and Kyle’s forming a group to discuss messaging
patterns to complement Martin’s book.
xxvi ACKNOWLEDGMENTS
We were fortunate to have several contributors who authored significant
portions of the book: Conrad F. D’Cruz, Sean Neville, Michael J. Rettig, and
Jonathan Simon. Their chapters round out the book with additional perspec-
tives on how the patterns work in practice.
Our writers’ workshop participants at the PLoP 2002 conference were the
first people to provide substantial feedback on the material, helping to get us
going in the right direction: Ali Arsanjani, Kyle Brown, John Crupi, Eric Evans,
Martin Fowler, Brian Marick, Toby Sarver, Jonathan Simon, Bill Trudell, and
Marek Vokac.
We would like to thank our team of reviewers who took the time to read
through the draft material and provided us with invaluable feedback and sug-
gestions:
Richard Helm
Luke Hohmann
Dragos Manolescu
David Rice
Russ Rufer and the Silicon Valley Patterns Group
Matthew Short
Special thanks go to Russ for workshopping the book draft in the Silicon
Valley Patterns Group. We would like to thank the following members for their
efforts: Robert Benson, Tracy Bialik, Jeffrey Blake, Azad Bolour, John Brewer,
Bob Evans, Andy Farlie, Jeff Glaza, Phil Goodwin, Alan Harriman, Ken Hej-
manowski, Deborah Kaddah, Rituraj Kirti, Jan Looney, Chris Lopez, Jerry
Louis, Tao-hung Ma, Jeff Miller, Stilian Pandev, John Parello, Hema Pillay,
Russ Rufer, Rich Smith, Carol Thistlethwaite, Debbie Utley, Walter Vannini,
David Vydra, and Ted Young.
Our public e-mail discussion list allowed people who discovered the material
on www.enterpriseintegrationpatterns.com to chime in and share their thoughts
and ideas. Special honors go to Bill Trudell as the most active contributor to the
mailing list. Other active posters included Venkateshwar Bommineni, Duncan
Cragg, John Crupi, Fokko Degenaar, Shailesh Gosavi, Christian Hall, Ralph
Johnson, Paul Julius, Orjan Lundberg, Dragos Manolescu, Rob Mee, Srikanth
Narasimhan, Sean Neville, Rob Patton, Kirk Pepperdine, Matthew Pryor,
Somik Raha, Michael Rettig, Frank Sauer, Jonathan Simon, Federico Spinazzi,
Randy Stafford, Marek Vokac, Joe Walnes, and Mark Weitzel.
ACKNOWLEDGMENTS xxvii
We thank Martin Fowler for hosting us in his signature series. Martin’s
endorsement gave us confidence and the energy required to complete this work.
We thank John Crupi for writing the foreword for our book. He has observed
the book’s formation from the beginning and has been a patient guide all along
without ever losing his sense of humor.
Finally, we owe a great deal to the editing and production team at Addison-
Wesley, led by our chief editor, Mike Hendrickson, and including our production
coordinator, Amy Fleischer; our project manager, Kim Arney Mulcahy; our copy-
editor, Carol J. Lallier; our proofreader, Rebecca Rider; our indexer, Sharon
Hilgenberg; as well as Jacquelyn Doucette, John Fuller, and Bernard Gaffney.
We’ve likely missed some names and not given everyone the credit they
deserve, and we apologize. But to everyone listed and not listed who helped
make this book better, thank you for all your help. We hope you can be as proud
of this book as we are.
Exploring the Variety of Random
Documents with Different Content
EVANGELISTS. Harmonized and Chronologically Arranged, illustrated
by Fifty-five Engravings, printed on different Tinted Papers to
distinguish the various Periods of our Lord's Ministry, having Picture
Definitions and Exercises, and a Map. Fifth Edition. Cloth, 6s.
WHOLESALE AND RETAIL BOOK AND MAP SELLER.
18 BOOKS. MO SELEY, -OREGON: ITS RESOURCES,
CLIMATE, PEOPLE, AND PRODUCTIONS. From Official Documents
and Personal Observation. By H. N. Moseley, F.R.S. With Map. Fcap.
8vo, cloth, 2s. MULHALL — HANDBOOK OF BRAZIL : including a
"Journey to Matto Grosso," "Rio Grande do Sul and its German
Colonies," &c. By M. G. and E. T. Mulhall, Editors of the ' Standard,'
Buenos Ayres. With Illustrations. Crown 8vo, cloth, 5s. HANDBOOK
TO THE RIVER PLATE REPUBLICS: Comprising Buenos Ayres and the
Provinces of the Argentine Republic, and the Republics of Uruguay
aud Paraguay. By M. G. and E. T. Mulhall, Proprietors and Editors of
the Buenos Ayres 1 Standard.' Spanish Edition. With Map and Two
Plans. Crown 8vo, cloth, 8s. THE ENGLISH IN SOUTH AMERICA. By
Michael G. Mulhall. With Illustrations. Demy 8vo, cloth, 16s. FROM
EUROPE TO PARAGUAY and MATTO GROSSO. By Mrs. M. G. Mulhall.
With Illustrations. Demy 8vo, cloth, 5s. NAVAL BOOKS. See page 25.
NEW ZEALAND HANDBOOK: Containing a New and Accurate
Coloured Map, and giving a full description of the Provinces of
Auckland, New Plymouth, Wellington, Hawkes Bay, Nelson,
Marlborough, Canterbury, Otago, Southland, &c. ; with Tables of
Statistics, Prices, and Wages; Land Regulations; Instructions for the
Voyage, Outfit, and Arrival in the Colony ; also Observations on New
Zealand Pursuits and Investments. Twelfth Edition. Fcap. 8vo, Is.
NOBLE. - DESCRIPTIVE HANDBOOK of the CAPE COLONY : its
CONDITION and RESOURCES. By John Noble, Clerk of the House of
Assembly, Cape of Good Hope. With Map and Illustrations. Crown
8vo, cloth, 10s. 6d. ORDNANCE SURVEY PUBLICATIONS. See page
30. PALMER.-The ORDNANCE SURVEY of the KINGDOM : Its Objects,
Mode of Execution, History, and Present Condition. By Captain H. S.
Palmes, R.E. With a Catalogue of the Maps, Plans, and other
Publications of the Ordnance Survey of Great Britain and Ireland,
and of the Models of the Ordnance Surveys of Jerusalem and Sinai,
published under the Superintendence of Major-General Sir Heney
James, R.E., F.R.S. Five Coloured Index Maps. Demy 8vo, cloth, 2s.
6d. PETRIE (W. M. F.)-INDUCTIVE METROLOGY; or, The Recoveey of
Ancient Measubes fbom the Monuments. Demy 8vo, cloth, 8s. 6d.
PHILPOT.-GUIDE BOOK to the CANADIAN DOMINION : Containing
full information for the Emigrant, the Tourist, the Sportsman, and the
small Capitalist. Dedicated, by permission, to His Royal Highness
Prince Arthur. By Haevey J. Philpot, M.D. (Canada), M.R.C.S.L., &c,
late Assistant-Surgeon to Her Majesty's Forces in Turkey and the
Crimea. With a Preface by Thomas Hughes, Esq., M.P., and a
Coloused Map. Super-royal 16mo, 4s. EDWARD STANFORD, 55,
CHARING CROSS, S.W.,
BOOKS. 19 PLATTS' (Rev. J.) DICTIONARY of ENGLISH
SYNONYMES : Comprehending the Derivations and Meanings of the
Words, and the Distinctions between the Synonymes ; with
Examples. New Edition. Demy 12mo, 3s. 6d. PLCETZ.-MANTJEL DE
LA LITTERATURE FRANCAISE des XVIF, XVIIIE, et XIXE Siecles. Par
C. Plcetz, Doc'teur en Philosophie, ancien Premier Professeur au
College Francais de Berlin. Seconde Edition, Revue et Augmentee.
Demy 8vo, cloth, 6s. 6<2. POPE.-A CLASS BOOK of RUDIMENTARY
CHEMISTRY. By the Rev. Geo. Pope, M.A., Fellow of Sidney Sussex
College, Cambridge, and one of the Masters of the College,
Hurstpierpoint. 18mo, stiff cover, 9d. PURDY.-RETURN TO
PARLIAMENT OF OWNERS OF LAND, 1873. Summary Digest —
England and Wales. By Frederick Purdy, F.S.S., Principal of the
Statistical Department, Local Government Board. Large 8vo, paper
cover, 2s. RAMSAY-PHYSICAL GEOLOGY and GEOGRAPHY of GREAT
BRITAIN. By A. C. Ramsay, LL.D., F.R.S., &c, DirectorGeneral of the
Geological Surveys of the United Kingdom. Fifth Edition, considerably
enlarged, and illustrated with Numerous Sections, Landscapes, and
Fossils, and a GEOLOGICAL MAP of GREAT BRITAIN, printed in
Colours. Post 8vo, cloth, 15s. REYNOLDS (Geo.).-EXERCISES in
ARITHMETIC; with a copious variety of Bills of Parcels. Intended as
an Auxiliary Companion to every Treatise on Practical and
Commercial Arithmetic. 12mo, cloth, 2s. 6d. KEY to Ditto. 12mo, 2s.
RHYMES WITH A REASON : or, Dates of the Accession of the
Sovereigns of England. Printed on cardboard, 6c?. RICE (William,
F.R.G.S.).-NOTES ON THE GEOGRAPHY OF EUROPE, PHYSICAL AND
POLITICAL. Intended to serve as a Text-Book for the use of
Elementary Classes, and as a Handbook to the Wall Map prepared
under the direction of the Society for Promoting Christian
Knowledge, and the National Society for Promoting the Education of
the Poor. By William Rice, F.R.G.S., formerly Lecturer on Geography
at the Royal Polytechnic College, London. Crown 8vo, limp cloth, 9d.
ROBSON (J., B.A.) -CONSTRUCTIVE LATIN EXERCISES, for Teaching
the Elements of the Language on a System of Analysis and
Synthesis, with Latin Reading Lessons and copious Vocabularies. By
John Robson, B.A. Lond., Secretary of University College, London,
formerly Classical Master iu University College School. Eighth Edition.
12mo, cloth, 4s. Gd. FIRST GREEK BOOK. Containing Exercises and
Reading Lessons on the Inflexions of Substantives and Adjectives,
and of the Active Verb in the Indicative Mood. With copious
Vocabularies. Being the First Part of the Constructive Greek
Exercises. Third Edition. 12mo, cloth, 3s. Gd. WHOLESALE AND
RETAIL BOOK AND MAP SELLER. c 2
20 BOOKS. ROWAN -The EMIGRANT and SPORTSMAN in
CANADA. Some Experiences of an Old-Country Settler. With Sketches
of Canadian Life, Sporting Adventures, and Observations on the
Forests and Fauna. Containing practical and useful hints for
emigrants and sportsmen. Also information for that class of
emigrants for which Canada is a particularly suitable country,
namely, people of small fortune, whose means, though ample to
enable them to live well in Canada, are insufficient to meet the
demands of rising expenses at home. By J. J. Rowan. With Map.
Large post 8vo, cloth, 10s. Gd. SCHOOL-BOYS' LETTERS for
COPYING and DICTATION : being a Series of Lithographed Letters
on Subjects interesting to School-Boys, with Remarks on the
Essentials of Good Writing, &c. Third Edition. Large post 8vo, cloth,
2s. 6c?. SCHOOL PUNISHMENT REGISTER. - The LONDON SCHOOL
REGISTER of PUNISHMENTS. Designed to meet the Requirements of
School Boards, &c. Fcap. folio, stiff boards, cloth back, 2s. 6d.
SCHOOL REGISTER. - HALBRAKE REGISTER of ATTENDANCE and
STUDIES. Designed for Private and MiddleClass Schools. Second
Edition. Demy 8vo, coloured wrapper, 8d. SCHOOL REGISTERS.-THE
DURHAM SCHOOL REGISTERS. By the Rev. Canon Cromwell, M. A.,
Principal of St. Mark's College, Chelsea. s. d. 1. Admission Register
for 1000 Names 3 0 2. Class Register for Large Schools (50 Names)
0 8 3. Class Register for Small Schools (34 Names) 0 6 4. General
Register or Summary, for Three Years . . . . 3 0 LONDON SCHOOL
REGISTER of ADMISSION, PROGRESS, and WITHDRAWAL. Adapted
to the Requirements of the Committee of Council on Education. By
William Rice, F.R.G.S., Author of the ' London Class Register,' the '
Class and Home Lesson Book of English History,' the ' Scholar's
Wordbook and Spelling Guide,' the ' Orthographical Copy Books,' &c.
Fcap. folio, stiff boards, leather back, 4s. LONDON CLASS-REGISTER
and SUMMARY OF ATTENDANCE and PAYMENTS. Ruled and Printed
for 52 Weeks. Adapted to the requirements of the "Special Minute of
the Committee of Council on Education." By William Rice, F.R.G.S.,
Author of the ' Class and Home-Lesson Book of English History,' &c.
A New and Improved Edition. Fcap. folio, Is. V ARTY'S CLASS
REGISTER of INDIVIDUAL PROGRESS. To contain the Admission
Numbers and Names of the Children, their Attendance and Absence,
and Relative Position in the Class. Fcap. folio, Is. %* For Complete
List of School Registers and Account Books, see Stanford's Select List
of Educational Works, gratis on application, or per post for penny
stamp. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
BOOKS. 21 SEYD.-THE BANKS of ISSUE QUESTION.
Memorial Addressed to the Governor and Court of Directors of the
Bank of England, and submitted to the Select Committee of the
House of Commons of 1875. By Ernest Seyd, F.S.S., Author of '
Bullion and Foreign Exchanges,' ' The London Banking and Clearing
House System,' &c. Koyal 8vo, 3s. SHARP.-BUDIMENTS of GEOLOGY.
By Samuel Sharp, F.S.A., F.G.S. Introductory and Physical —
Stratigraphical and Palseoutological. Second Edition, Revised and
Enlarged. Crown 8vo, cloth, Is. SIMPLE LESSONS FOR HOME USE :
Chiefly intended for Elementary Schools. Money Rev. T. E. Crallan,
M.A., Chaplain to Sussex County Asylum. Food* G. Phillips Bevan,
F.G.S., Editor of 'British Manufacturing Industries.' Drink Dr. Mann,
F.R.A.S., F.R.G.S., late Superintendent of Education in Natal.
Cookery* J. C. Buckmaster, B.A., of the Science and Art Department,
South Kensington. Our Bodily Life*.. t. Mrs. Fenwick Miller, Member
of the London School Board. How and Why Wej Mrs. Fenwick Miller,
Member of the London Breathe* J School Board. Air and Ventilation*
.. Mrs. Fenwick Miller, Member of the London School Board. Clothing
J. J. Pope. Needlework Mrs. Benjamin Clarke. Flowers Rev. G.
Henslow, M.A., F.L.S. Astronomy Richard A. Proctor, B.A., Author of
'Light Science for Leisure Hours,' &c. Weather Dr. Mann, F.R.A.S.,
F.R.G.S., late Superintendent of Education in Natal. Birds Rev. F. O.
Morris, M.A., Author of 'History of British Birds.' Sicknesses that
Spread. . Mrs. Fenwick Miller, Member of the London School Board. *
Specific Subject of New Code, Article 21. This series is written in a
simple and interesting manner, and will be found admirably adapted
either for use in class or as rewards for attendance and good
conduct. The Set of 14 Subjects in One Volume, 18mo, cloth, 2s. 6d.
; Ditto, in a Thumb Case, 3s. ; Single Copies, 3d.; One Hundred
Copies, IGs. SMITH.-The PEASANTS' HOME, 1760-1875. By Edward
Smith, F.S.S. Being the Howard Prize Essay, 1875. Crown 8vo, cloth,
3s. 6d. STATISTICAL SOCIETY-JOURNAL of the STATISTICAL
SOCIETY of LONDON. Published Quarterly, price 5s. Complete Sets,
from the Year 1838 to December, 1877, can be had, with General
Index up to 1872, price 211. 15s. Gd. WHOLESALE AND RETAIL
BOOK AND MAP SELLER.
The text on this page is estimated to be only 29.34%
accurate
22 BOOKS. STANFORD'S COMPENDIUM of GEOGRAPHY and
TKAVEL, for GENERAL READING. Based on Hellwald's ' Die Erde und
Ihre Volker.' Translated by A. H. Keane, B.A. A Series of Volumes
descriptive of the Great Divisions of the Globe. Large post 8vo, cloth,
with Maps, Ethnological Appendices, and several hundred
Illustrations. AFRICA. — Edited and Extended by Keith Johnston,
F.R.G.S. ; with Ethnological Appendix by A. H. Keane, B.A. Cloth, gilt,
21s. CENTRAL AMERICA, WEST INDIES, and SOUTH AMERICA.—
Edited and Extended by H. W. Bates, AssistantSecretary of the Royal
Geographical Society, Author of ' The Naturalist on the River
Amazons.' Cloth, gilt, 21s. AUSTRALASIA.— Edited and Extended by
Alfred R. Wallace, F.R.G.S., Author of 'The Malay Archipelago.' Cloth,
gilt, 21s. The following Volumes are also iu Preparation, viz. :
EUROPE.— Edited and Extended by Professor A. C. Ramsay, LL.D.,
F.R.S., Director-General of the Geological Surveys of the United
Kingdom ; Author of ' Physical Geology and Geography of Great
Britain.' ASIA. — Edited and Extended by Colonel Henry Yule, C.B.,
F.R.G.S., Author of < Travels of Marco Polo.' NORTH AMERICA.—
Edited and Extended by Professor F. V. Hayden, of the United States
Geological Survey. SULLIVAN.-THE PRINCES OF INDIA. An Historical
Narrative of the Principal Events from the Invasion of Mahmoud of
Ghizni to that of Nadir Shah. By Sir Edwakd Sullivan, Bart., Author of
' Letters on India,' ' Trip to the Trenches,' ' Rambles in North and
South America,' &c. Secon 1 Edition, crown 8vo, cloth, with Map, 8s.
6d. TEN CHAPTERS on SOCIAL REFORM. By Sir Edward Sullivan,
Author of ' The Princes of India,' &c, &c. Demy 8vo, cloth, price 5s.
PROTECTION to NATIVE INDUSTRY. By Sir Edward Sullivan, Bart.,
Author of ' Ten Chapters on Social Reform,' &c, &c. Demy 8vo, cloth,
Is. SYMONS.-BRITISH RAINFALL, 1877. The DISTRIBUTION of RAIN
over the BRITISH ISLES during the YEAR 1877, as observed at about
2000 Stations in Great Britain and Ireland. With MAP and
ILLUSTRATIONS. Compiled by G. J. Symons, F.R.S., Secretary to the
Meteorological Society, &c. Demy 8vo, cloth' 5s. [Published Annually
The MONTHLY METEOROLOGICAL MAGAZINE. Vols. I. to XII.
(1877). Demy 8vo, cloth, price 5s. each. Published in Monthly Parts,
4J. each. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
SYMONS.-REGISTRATION FORMS.— Forms for One Year,
with Instructions, in stiff cover, 2s. Forms for Five Years, with
Instructions, half-bound, 7s. Qd. BAROMETER DIAGRAMS.— Set of
12 for One Year. Is. REGISTER of RAINFALL for ONE YEAR. Fcap.
folio, 3c?. POCKET ALTITUDE TABLES-SHORT AND SIMPLE RULES
FOR ACCURATELY DETERMINING ALTITUDES BAROMETRICALLY.
Limp cloth, 2s. 6d. TAYLER.-The NATIONAL TAXES. The History,
Progress, and Present State of the Revenues of England derived
from Taxation, and their- Expenditure. By Wm. Tayler, Esq., F.S.S.,
Author of ' History of Taxation in England.' Second Edition, with
Additions. Crown"8vo, 2s. 6d. TAYLOR- BOYS OF OTHER
COUNTRIES. By Bayard Taylor. The Little Post-Boy — The Pasha's
Son — Jon of Iceland — The Two Herd Boys — The Young Serf. With
Illustrations. Crown 8vo, cloth, 4s. 6d. THEAL.— COMPENDIUM of
the HISTORY and GEOGRAPHY of SOUTH AFRICA. By George McCall
Theal, Lovedale, South Africa. Third Edition. Revised and Enlarged.
Large Demy 8vo, cloth, 10s. 6d. T00G00D (Mrs.). -SIMPLE
SKETCHES from CHURCH HISTORY, for YOUNG PERSONS. New
Edition. 18mo, Is. 6d. TRADE MARKS.-RULES UNDER THE TRADE
MARKS REGISTRATION ACT, 1875. Printed for Her Majesty's
Stationery Office. Is. TYRRELL (Lieut.-Col.).-WATERWAYS or
RAILWAYS; or, The FUTURE of INDIA. With Map. Crown 8vo, cloth,
5s. VERDAD.-FROM VINEYARD to DECANTER. A Book about Sherry.
By Don Pedro Verdad. With a Map of the Jerez District. Sixth
Thousand, revised and enlarged. Fcap. 8vo, cloth, Is. VICTORIA, The
BRITISH " EL DORADO." Showing the advantages of that Colony as
a field for Emigration. By a Colonist of Twenty Years' Standing, and
late Member of a Colonial Legislature, With Two Coloured Views and
a Map. Super-royal 16mo, cloth, 5s. Gd. VIVIAN-NOTES of a TOUR in
AMERICA. From August 7th to November 17th, 1877. By H. Hussey
Vivian, M.P., F.G.S. Demy 8vo, with Map, 9s. WALLACES (W.)
MINERAL DEPOSITS.— The Laws which Regulate the Deposition of
Lead Ore in Mineral Lodes. Illustrated by an Examination of the
Geological Structure of the Mining Districts of Alston Moor. With Map
and numerous Coloured Plat* s. Large demy 8vo, cloth, 25s.
WHOLESALE AND RETAIL BOOK AND MAP SELLER.
24 BOOKS. WALLACE. - AUSTRALASIA. — ST ANFORD'S
COMPENDIUM OF GEOGRAPHY AND TRAVEL. Based on Hellwald's '
Die Erde und Ihre Volker.' Edited and Extended by A. R. Wallace,
F.R.G.S., Author of ' TheMalay Archipelago,' 'Geographical
Distribution of Animals,' &c. With Ethnological Appendix by A. H.
Keane, B.A. Large post 8vo, cloth, with Maps and numerous
Illustrations, 21s. WEBBER.-THE KAIETEUR FALLS, BRITISH GUIANA.
THE ESSEQUIBO and POTARO RIVERS. With an Account of a Visit to
the Kaieteur Falls. By Lieut.-Colonel Webber, 2nd West India
Regiment. With Map and Frontispiece, and Descriptive Notes on the
Geology of Guiana. Crown 8vo, cloth, 4s. Qd. WELD. -HINTS to
INTENDING SHEEP FARMERS in NEW ZEALAND. By Frederick A.
Weld, New Zealand, Member of the House of Representatives, &c.
With an Appendix on the Laud Regulations. Fcap. 8vo, 8d.
WHITELANDS SERIES of STANDARD READING-BOOKS for GIRLS.
Edited by the Rev. J. P. Faunthorpe, M.A., Principal cf Whitelands
Training College. With original Illustrations. Post 8vo. Standard 1. —
Illustrated Short Stories, &c. 4c?. „ 2. — Illustrated Easy Lessons. Is.
3d. „ 3. — Instructive Lessons. Illustrated. Is. Qd. „ 4.— Original
Stories and Selected Poems. Is. 9d. „ 5. — Economical and Scientific
Reader. 2s. Qd. „ 6. — Literary Reader. (In the Press). WILKINS.-The
GEOLOGY and ANTIQUITIES of the ISLE of WIGHT. By Dr. E. P.
Wilkins, F.G.S., &c. With Relief Map of the Island, coloured
geologically. Super-royal 8vo, cloth, 7s. Qd. WILLIAMS. -THROUGH
NORWAY with LADIES. By W. Mattieu Williams, F.R.A.S., F.C.S.,
Author of ' Through Norway with a Knapsack.' With Illustrations and
Map. Crown 8vo, cloth, 12*. V THROUGH NORWAY WITH A
KNAPSACK. By the same Author. See page 12. YOUNG. - READABLE
SHORT-HAND - SELF - TAUGHT : Being a System by which people
can teacli themselves, write the longest word without lifting the pen,
read what they write, and correspond with friends at home or
abroad on pleasure or business. It embraces a double set of vowels,
with Liquid Consonants grafted on the other letters ; with a
Combination of Words in most familiar use into ready sentences. The
whole forming a System of Readable ShortHand, Shortened. By
Murdo Young. Demy 12mo, boards, 2s. Qd. EDWARD STANFORD,
55, CHARING CROSS, S.W.,
NAVAL AND MILITARY BOOKS. 25 %M anbr military Jwb,
PUBLISHED ON ACCOUNT OF HER MAJESTY'S STATIONERY OFFICE.
ABYSSINIA -EXPEDITION to ABYSSINIA. By Holland and Hozier. 2
vols. 4to, and Maps. Cloth, 41. 4s. ; half mor., 51. 5s. AMMUNITION
—TREATISE. By Major Barlow. Cloth, 6s. NOTES on AMMUNITION.
By Major Barlow, K.A. Fourth Edition. With Illustrations. Royal 8vo,
cloth, 2s. 6c?. ARMY SIGNALLING. -MANUAL of INSTRUCTION in
ARMY SIGNALLING. Pocket Edition, Qd. HOSPITAL CORPS-
REGULATIONS. Royal 8vo, 6d. LIST. Published Monthly, 2s. and
NAVY SIGNAL-BOOK. Crown 8vo, with clasp, 4s. ARTILLERY
CARBINE.— Snider Breech-loading. Manual and Platoon Exercises.
Revised, 1869. 2d. DRESS REGULATIONS and STANDING ORDERS.
Demy 8vo, cloth, 5s. [Out of print. EXERCISES-MANUAL of
ARTILLERY EXERCISES, 1873. Royal 8vo, cloth, 5s. Pocket Edition.
Is. 6d. Revision of Part II. Section I., Heavy Ordnance, 8vo. 6c?.
Revision of Part II. Section IV., Mortars, Id. MANUAL of FIELD
ARTILLERY EXERCISES, 1877. Demy 8vo, cloth, 3s. AUSTRIA-The
ARMED STRENGTH of AUSTRIA. Royal 8vo. Part I., 10s, Qd. Part II.,
lis. 6d. CAVALRY-MOVEMENTS of CAVALRY. Royal 8vo, cloth, 4s. Qd.
Pocket Edition, red leather, 3s. 3c?. INSTRUCTIONS in the DUTIES of
CAVALRY RECONNOITRING AN ENEMY ; Marches ; Outposts ; and
Reconnaissance of a Country ; for the Use of Auxiliary Cavalry.
Pocket Edition, Is. Qd. INSTRUCTIONS for CAVALRY ADVANCED and
REAR GUARDS, OUTPOSTS, &c. Pocket Edition, Qd. DENMARK. -The
ARMED STRENGTH of DENMARK. Royal 8vo, 3s. DRESS
BEGULATIONS for OFFICERS of the ARMYNov., 1874. Royal 8vo, Is.
6c7. ENCAMPMENTS.— REGULATIONS and INSTRUCTIONS for
ENCAMPMENTS. Pocket Edition, Qd. WHOLESALE AND RETAIL BOOK
AND MAP SELLER.
The text on this page is estimated to be only 29.58%
accurate
26 NAVAL AND MILITARY BOOKS. ENGINEERS'
DEPARTMENT— REGULATIONS for the KOYAL ENGINEERS'
DEPARTMENT. 3s. FIELD ENGINEERING-MANUAL OF ELEMENTARY
FIELD ENGINEERING. Published by Authority. Pocket edition, Is. 6c?.
FIELD EXERCISE and EVOLUTIONS of INFANTRY, as Eevised by Her
Majesty's Command, 1877. Pocket Edition. Is. FIELD MESSAGE
BOOK. Approved by the War Office Authorities. A Pocket
Memorandum Book for the use of Commanding Officers; so arranged
that by writing the message or order in the usual way, an exact copy
of each message is made, and retained in the book for subsequent
reference if required. Envelopes, printed with the hour of despatch,
&c, are included; the book has also a pocket, and place for pencil.
Limp roan, elastic band, 3s. FIELD RANGE -FINDER. -HANDBOOK
for. Mark I. Koyal 8vo, paper cover. 6d. FORTIFICATION AND
MILITARY ENGINEERING.TEXT-BOOK of FORTIFICATION and
MILITARY ENGINEERING for use at the Royal Military Academy,
Woolwich. Part I. Royal 8vo, 13s. Gd. FRANCO-GERMAN WAR, 1870-
71. Authorized Translation. First Part: History of the War to the
Downfall of the Empire. Translated from the German Official Account
by Capt. F. C. H. Clarke, R.A. Vol. I. Sections 1 to 5. From the
Outbreak of Hostilities to the Battle of Gravelotte. With case of Maps
and Plans. Royal 8vo, cloth, 26s. Vol. II. Sections 6 to 9. With Maps
and Plans. Royal 8vo, cloth, 22s. This work may also be had in
separate sections if required. Second Part:— HISTORY OF THE WAR
AGAINST THE REPUBLIC. Tenth Section : Investment of Paris ;
Capture of Toul and Strassburg. Royal 8vo, paper cover, 6s. Eleventh
Section : Events before Paris, and in Western France, until October.
Royal 8vo, 5s. 3d. THE SIEGE OPERATIONS IN THE CAMPAIGN
AGAINST FRANCE, 1870-71. Royal 8vo, 4s. 6d. GERMAN EMPIRE.-
THE ARMED STRENGTH OF THE GERMAN EMPIRE. Part I.
Organization and Administration. With Map. Royal 8vo, paper cover,
8s. 6c?. GUN-HANDBOOK for the 64-POUNDER R.M.L. Converted
Guns of 58 and 71 cwts. L. S. 1877. Royal 8vo, Gd. HANDBOOK for
the 40-POUNDER R.B.L. Gun. 6d. HANDBOOK for 16-POUNDER
R.M.L. Gun of 12 cwt. 6d. HANDBOOK for 9-POUNDER R.M.L. Guns.
Gd. HANDBOOK for the 10-Inch R.M.L. Gun of 18 tons. Gd.
HANDBOOK for the 9-Inch R.M.L. Gun of 12 tons. 6d. EDWARD
STANFORD, 55, CHARING CROSS, S.W.,
NAVAL AND MILITARY BOOKS. 27 GUN COTTON. -SHORT
NOTES ON GUN COTTON AND ITS MANUFACTURE. Prepared for the
Use of the Gentlemen Cadets at the Royal Military Academy,
Woolwich. And SHORT NOTES ON GUNPOWDER AND ITS
MANUFACTURE. Crown 8vo, paper cover, Is. GUNNERY-MANUAL of
GUNNERY for HER MAJESTY'S FLEET. 1877. Pocket Edition. 2s.
GUNPOWDER -HANDBOOK of the MANUFACTURE and PROOF of
GUNPOWDER. Royal 8vo, 5s. GYMNASTIC EXERCISES. - MILITARY
SYSTEM of GYMNASTIC EXERCISES, with Fencing and Club
Exercises. 2s. HISTORICAL RECORDS of the BRITISH ARMY, viz.
:Horse Guards. 5s. Dragoon Guards, 2nd, 3rd, 4th, 5th, 6th, and 7th.
Each 4s. Dragoons, 1st, 2nd, 3rd, 6th, 7th, 14th, 15th, and 16th.
Each 4s. „ 9th, 12th, and 13th. Each 3s. „ 10th. 6s. 17th Lancers. 5s.
Foot, 1st and 3rd. Each 6s. „ 2nd, 4th, 5th, 6th, 7th, 8th, 9th, 10th,
11th, 12th, 13th, 15th, 16th, 17th, 18th, 19th, 20th, 21st, 22nd,
23rd, 31st (including the Marine Corps), 34th, 36th, 39th, 46th,
53rd, 67th, 71st, 72nd, 73rd, 74th, 86th, 87th, and 92nd
(Highlanders). Each 4s. „ 14th, 56th, 61st, 70th, and 88th. Each 3s.
„ 42nd (Highlanders). 8s. Cape Mounted Riflemen. 2s. All the above
Historical Records in sheets at a reduction of 6d. per copy.
INFANTRY ETJGLE SOUNDS. 6>d. SWORD EXERCISE. 6d. MARTINI -
HENRY RIFLE. - MANUAL and FIRING EXERCISES, December, 1874.
3d. MILITARY ARTIFICERS-HANDBOOK for MILITARY ARTIFICERS,
prepared in the Instruction Branch of the Royal Carriage
Department. Pocket Edition, red leather, 3s. MILITARY CARRIAGES
and other Manufactures of the Royal Carriage Department. Second
edition. Royal 8vo, 5s. MILITARY ENGINEERING-INSTRUCTIONS in
MILITARY ENGINEERING. Compiled at the School of Military
Engineering, Chatham. Vol. I. Part I. FIELD DEFENCES. Demy 8vo,
3s. 6d. Part III. MILITARY P>RIDGES. Demy 8vo, 3s. Part IV.
MILITARY MINING. Demy 8vo, Is. 6d. MILITARY EXAMINATIONS.-
WOOLWICH.-EXAMINATION PAPERS bet at the open Competition for
Admission to the Royal Military Academy, Woolwich, held under the
Directions of the Civil Service Commissioners in March, 1878.
Together with Regulations and Tahles of Marks. Royal 8vo, paper
cover, 9d. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
28 NAVAL AND MILITARY BOOKS. MILITARY
EXAMINATIONS. - SANDHURST.- EXAMINATION PAPERS set at the
Open Competition for Admission to the Royal Military College, and
for First Appointments to the Royal Marine Light Infantry, held under
the directions of the Civil Service Commissioners in November and
December, 1877. With Regulations and Table of Marks. Royal 8vo,
9d. STAFF COLLEGE — EEPOET on the FINAL EXAMINATION at the
STAFF COLLEGE, held in December, 1877. With Copies of the
Examination Papers. Demy 8vo, Is. MILITIA ORDERS, 1878. Royal
8vo, 6d. MUSKETRY INSTRUCTION-REGULATIONS for CONDUCTING
the MUSKETRY INSTRUCTION of the ARMY. Crown 8vo, cloth, Is.
THE ANNUAL REPORT, 1877. Royal 8vo, 2s. NAVAL GUNS. -NOTES
ON NAVAL GUNS, THEIR STORES AND FITTINGS.— Demy 8vo, cloth,
2s. 6d. NETHERLANDS. -THE ARMED STRENGTH OF THE
NETHERLANDS. By Captain F. C. H. Claeke, R.A., D.A.Q.M.G. "With
Map. Royal 8vo, paper cover, 4s. ORDNANCE MANUFACTURE. —
TREATISE ON THE CONSTRUCTION AND MANUFACTURE OF
ORDNANCE IN THE BRITISH SERVICE. Prepared in the Royal Gun
Factory. Printed by Order of the Secretary of State for War. With
Illustrations and Diagrams. Royal 8vo, cloth, 18s. Abridged Edition,
Royal 8vo, cloth, 6s. PRUSSIAN INFANTRY.-ELEMENTARY TACTICS.
2s. QUEEN'S REGULATIONS and ADMIRALTY INSTRUCTIONS. Crown
8vo, cloth, Is. 9d. (The Addenda is out of print.) QUEEN'S
REGULATIONS and ORDERS for the ARMY. (January, 1874.) Royal
8vo, 3s. 6d. Pocket Edition. Is. REVISED ARMY REGULATIONS. - Vol.
III. ROYAL WARRANT AND REGULATIONS FOR THE EQUIPMENT OF
HER MAJESTY'S ARMY (serving elsewhere than in the Indian
Empire), including the Armaments of Works; to which is added an
Appendix. War Office, September 1, 1876. Royal 8vo, cloth, 5s. 6d
REVISED ARMY REGULATIONS -Vol. IV. REGULATIONS FOR THE
COMMISSARIAT AND ORDNANCE STORE DEPARTMENTS. Duties of
the Departments. Royal 8vo, cloth, 2s. ; or separate, I.
Commissariat, Is. 6d. II. Ordnance Store Department, Is. Gd.
EDWARD STANFORD, 55, CHARING CROSS, S.W.,
NAVAL AND MILITARY BOOKS. 29 RIFLE EXERCISES for
LONG and SHORT SNIDER EIFLE, and MUSKETRY INSTRUCTIONS.
Pocket Edition. Is. RIFLE and FIELD EXERCISES and MUSKETRY
INSTRUCTION for HER MAJESTY'S FLEET. Pocket Edition, blue
leather, Is. Gd. RUSSIA.-ARMED STRENGTH of RUSSIA. Royal 8vo,
7s. SAPPERS' MANUAL for ENGINEER VOLUNTEER CORPS. Pocket
Edition. 2s. SNIDER RIFLE -LONG and SHORT. REVISED FIRING
EXERCISES. December, 1873. Id STATUTE LAW RELATING TO THE
ARMY. Arranged by Charles M. Clode, Legal Secretary to the War
Department. Royal 8vo, paper cover, Is. 3d. STEPPE CAMPAIGNS. A
Series of Lectures. Royal 8vo, 2s. SWEDEN AND NORWAY. The
ARMED STRENGTH of SWEDEN and NORWAY. Royal 8vo, 3s. Gd.
TACTICAL STUDIES OF THE BATTLES OF COLUMBEYNOUILLY AND
VIONVILLE. Compiled and arranged from the Official Accounts by
Major Lonsdale A. Hale, R.E., Instructor in Military Law and History,
School of Military Engineering, Chatham. With Maps. Royal 8vo,
paper cover, 4s. Gd. TEXTBOOK ON THE THEORY OF THE MOTION
OF PROJECTILES. By Authority. Revised March 1877. With
Illustrations. Crown 8vo, cloth, Is. 6d. TRAINING of TROOPS for
SERVICE in the FIELD, &c. Regulations (Translated from the
German). Royal 8vo, 2s. TRUMPET and BUGLE SOUNDS for
MOUNTED SERVICE and GARRISON ARTILLERY. Is. Gd. USEFUL
TABLES. Compiled by Capt. W. H. Noble, R.A. 6d. VOCABULARY of
STORES used in H.M. Service. 4s. VOLUNTEER REGULATIONS, 1878-
REVISED ARMY REGULATIONS, Vol. IX., being Regulations for the
Volunteer Force. Royal 8vo, cloth, 2s. Gd. WAR GAME. -RULES for
the CONDUCT of the WAR GAME. Royal 8vo, 2s. The Set of 15 Maps,
mounted and coloured, price 6/. The Set of Men, &c, in Box, 6/. Gs.
WHOLESALE AND RETAIL BOOK AND MAP SELLER.
30 ORDNANCE SURVEY PUBLICATIONS. drtmanw Buxhq
^nhlhutism. ASTRONOMICAL OBSERVATIONS made with Bamsden's
Zenith Sector; together with a Catalogue of the Stars which have
heen observed, and the Amplitude of the Celestial Arcs, deduced
from the Observations at the different Stations. 4to, sewed, 7s. 6d.
ASTRONOMICAL OBSERVATIONS made with Airey's Zenith Sector,
1842 to 1850. Completed by Captain W. Yolland, K.E. 20s.
DOMESDAY BOOK; or, The Great Survey of England by William the
Conqueror, a.d. 1086. Facsimile of Domesday Book, reproduced by
the Photozincographic Process, under the direction of Major-Genera]
Sir H. James, K.E., F.K.S., by Her Majesty's Command. The following
parts are already published, in imperial 4to, cloth, viz. : — In Great
Domesday Book. Bedfordshire .. .. price Berkshire ,, Buckingham .. ..
„ Cambridge .. .. ,, Cheshire and Lancashire „ Cornwall ,, Derbyshire
.. .. „ Devonshire .. .. „ Dorsetshire .. .. „ Gloucestershire . . „
Hampshire .. .. „ Herefordshire .. .. „ Hertfordshire .. .. „ Huntingdon
.. .. „ Kent „ Lancashire (see Cheshire and Lancashire) .. ,, s. d. 8 0 8
0 8 0 10 0 8 0 8 0 8 0 10 0 8 0 8 0 10 0 8 0 10 0 8 0 8 0 8 0
Leicestershire and Kutland price Lincolnshire .. .. „ Middlesex „
Nottinghamshire . . „ Northamptonshire . . „ Oxfordshire .. .. „
Kutlandshire (bound with Leicestershire) . . „ Shropshire .. .. „
Somersetshire .. .. „ Staffordshire .. .. „ Surrey „ Sussex ,,
Warwickshire .. .. „ Wiltshire „ Worcestershire . . . . „ Yorkshire „ s. d.
8 0 21 0 8 0 10 0 •8 0 8 0 8 0 8 0 10 0 8- 0 8 0 10 0 8 0 10 0 8 0 21
0 In Little Domesday Book. Essex, price 16s.— Norfolk, 23s.—
Suffolk, 22s. Price of an entire Set (as above), 171. 3s. Domesday
Book complete, bound in 2 volumes, price 20/. GEODETICAL
TABLES. 1 vol. thin 4to, price 2s. EDWARD STANFORD, 55, CHARING
CROSS, S.W.,
ORDNANCE SURVEY PUBLICATIONS. 31 JERUSALEM. -
ORDNANCE SURVEY of JERUSALEM, With Notes by Captain Wilson,
R.E. Produced at the Ordnance Survey Office, Southampton, under
the superintendence of Major-General Sir Henry James, R.E., F.R.S.,
Director. The Survey is sold complete for Twelve Guineas, or in
Divisions, as follows : — £ s. d. The Plans Mounted, and in a
Portfolio .. .. 2 18 0 Vol. I. Containing Captain Wilson's Notes on
Jerusalem, and Illustrative Diagrams .. .. .. 2 0 0 Vol. II. Containing
the Photographs taken in and about the City 7 14 0 Total £12 12 0
The Plans, Diagrams, and Photographs are sold separately. Detailed
List, with Prices, post free for two Penny Stamps. LENGTH -
COMPARISONS of the STANDARDS of LENGTH of England, France,
Belgium, Prussia, Russia, India, Australia, made at the Ordnance
Survey Office, Southampton, by Captain A. E. Clarke, E.E., F.R.S.,
under the direction of Major-General Sir Henry James, R.E., F.R.S.,
&c, Cor. Mem. of the Royal Geographical Society of Berlin, Director of
the Ordnance Survey. Published by Order of the Secretary of State
for War. 1 vol. 4to, 287 pp. and plates. Price 15s. LOUGH FOYLE
BASE.-An ACCOUNT of the MEASUREMENTS of the LOUGH FOYLE
BASE. By Captain W. Yolland, R.E. 4to, cloth, 20s. MAGNA CARTA.—
King John, a.d. 1215. Facsimile of Magna Carta ; Photozincographed
at the Ordnance Survey Office, Southampton, under the
superintendence of Captain Parsons, R.E., F.R.A.S. Price Is. 6d., with
the Translation. MARGINAL LINES.-On the CONSTRUCTION and USE
of the SIX SHEETS of MARGINAL LINES for MAPS of any part of the
WORLD. Price Is. *,,* The Six Sheets of Marginal Lines are
published, price 6s. METEOROLOGICAL OBSERVATIONS, TABLES for.
Published separately, in 1 vol. royal 8vo, price 2s. 6d. DITTO taken at
the Stations of the Royal Engineers in the Years 1853 to 1859. 1 vol.
4 to, price 10s. 6d. METEOROLOGICAL OBSERVATIONS, taken at the
Stations of the Royal Engineers, 1853-4. 1 vol. 4to, price 2s. 6*7.
DITTO taken at Dublin. 1 vol. 4to, price 5s. DITTO taken at the Royal
Engineers' Office, New Westminster, British Columbia, in 18G0-1.
Price Is. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
32 ORDNANCE SURVEY PUBLICATIONS. NATIONAL
MANUSCRIPTS of ENGLAND. A Series of PHOTOZINCOGKAPHIC
FACSIMILES of some of the most interesting of our National MSS.,
copied by order of Her Majesty's Government, by Major-General Sir
Henry James, R.E., F.R.S., Director of the Ordnance Survey ; with
Translations and Introductory Notes by "W. Basevi Sanders, Esq.,
Assistant Keeper of Her Majesty's Records. This series, consisting of
Royal Charters and Grants, and the Letters of Royal and Eminent or
Remarkable Persons, has been selected under the direction of the
Right Hon. Sir John Romilly, Master of the Rolls, by Thomas Dtjffus
Hardy, Esq., Deputy Keeper of Her Majesty's Records ; and includes
some of the most remarkable Original Documents deposited in Her
Majesty's Record Office, together with a few from other repositories,
including the most perfect Original Copy of Magna Carta now extant.
In Four Parts, price 16s. each. SCOTLAND. — Photozincographic
Facsimiles of National Manuscripts of Scotland. Part III. Price 21s.
Parts I. and II. are out of print. IRELAND. — Photozincographic
Facsimiles of National Manuscripts of Ireland. Part I. 21. 2s. NETLEY
abbey, photozincographed views of. Sixteen Photographic Views, &c,
of Netley Abbey, including illustrated Title Page and Plan of the
Abbey. Photozincographed at the Ordnance Survey Office,
Southampton. Major-General Sir Henry James, R.E., F.R.S. (Director).
In a neat portfolio, 25s. ORDNANCE SURVEY— Account of the
Methods and Processes adopted for the production of the Maps of
the Ordnance Survey of the United Kingdom ; drawn up by Officers
of Royal Engineers employed under Lieut.-General Sir Henry James,
R.E., F.R.S. , &c, Director-General. Royal 4to, cloth, illustrated, 14s.
ORDNANCE TRIGONOMETRICAL SURVEY of the UNITED KINGDOM.
In Four Volumes, royal 4to, illustrated with numerous Plates, bound
in cloth, 3/. 5s. The Account of this Survey is now complete, and
may be had as above, or in separate volumes as under : — I. THE
PRINCIPAL TRIANGULATION of the UNITED KINGDOM, with the
Figure, Dimensions, and Mean Specific Gravity of the Earth as
derived therefrom. With Plates, 1/. 15s. APPENDIX TO DITTO.—
Determination of the Positions of Feaghmain and Haverfordwest,
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookname.com

More Related Content

PDF
[FREE PDF sample] Enterprise Integration Patterns Designing Building and Depl...
PPTX
UNIT 1 NOTES DC FINAL COPY TO BE PREPARED
PPTX
DC - UNIT 1 - INTRODUCTION FINAL COPY TO STUDY
PPTX
444963864-INTEGRATIVE-PROGRAMMING-lesson1-pptx.pptx
DOC
integeration
PDF
ESB Overview
PPTX
Unit-1-Integrative-Programmmmmmming.pptx
PPTX
CHAPTER 4 COMPUTER NETWORK FOR BUSINESS INFORMATION DISSEMINATION.pptx
[FREE PDF sample] Enterprise Integration Patterns Designing Building and Depl...
UNIT 1 NOTES DC FINAL COPY TO BE PREPARED
DC - UNIT 1 - INTRODUCTION FINAL COPY TO STUDY
444963864-INTEGRATIVE-PROGRAMMING-lesson1-pptx.pptx
integeration
ESB Overview
Unit-1-Integrative-Programmmmmmming.pptx
CHAPTER 4 COMPUTER NETWORK FOR BUSINESS INFORMATION DISSEMINATION.pptx

Similar to Enterprise Integration Patterns Designing Building and Deploying Messaging Solutions 1st Edition Hohpe (20)

PPTX
Bsit – integration styles (intra + inter)
PPTX
Componenets of osb12c
PDF
Inter-Process Communication in distributed systems
PPTX
IBM MQ Series For ZOS
PPTX
DC UNIT 1 cs 3551 DISTRIBUTED COMPUTING.pptx
PDF
Designing Distributed Systems
PDF
Classroom Shared Whiteboard System using Multicast Protocol
PPT
20IT703_PDS_PPT_Unit_I.ppt
PPTX
Internetworking
PPTX
Message Queuing (MSMQ)
PPTX
Designing Application over mobile environment
PDF
A Comprehensive Study On Data Mining Process With Distribution
PPT
Mule architecture
PPT
Mule architecture
PPTX
Mule enterprise service introduction
PPTX
PPTX
Synchronous and asynchronous software communication components
PPTX
1st Feb 2020 MuleSoft Meetup
PDF
Chapter 2 - Enterprise Application Integration.pdf
PDF
Websphere MQ admin guide
Bsit – integration styles (intra + inter)
Componenets of osb12c
Inter-Process Communication in distributed systems
IBM MQ Series For ZOS
DC UNIT 1 cs 3551 DISTRIBUTED COMPUTING.pptx
Designing Distributed Systems
Classroom Shared Whiteboard System using Multicast Protocol
20IT703_PDS_PPT_Unit_I.ppt
Internetworking
Message Queuing (MSMQ)
Designing Application over mobile environment
A Comprehensive Study On Data Mining Process With Distribution
Mule architecture
Mule architecture
Mule enterprise service introduction
Synchronous and asynchronous software communication components
1st Feb 2020 MuleSoft Meetup
Chapter 2 - Enterprise Application Integration.pdf
Websphere MQ admin guide
Ad

Recently uploaded (20)

PDF
01-Introduction-to-Information-Management.pdf
PDF
Sports Quiz easy sports quiz sports quiz
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
Cell Structure & Organelles in detailed.
PPTX
Pharma ospi slides which help in ospi learning
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
O7-L3 Supply Chain Operations - ICLT Program
PPTX
Institutional Correction lecture only . . .
PPTX
Lesson notes of climatology university.
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
Insiders guide to clinical Medicine.pdf
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
TR - Agricultural Crops Production NC III.pdf
01-Introduction-to-Information-Management.pdf
Sports Quiz easy sports quiz sports quiz
Microbial diseases, their pathogenesis and prophylaxis
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Final Presentation General Medicine 03-08-2024.pptx
Renaissance Architecture: A Journey from Faith to Humanism
Cell Structure & Organelles in detailed.
Pharma ospi slides which help in ospi learning
2.FourierTransform-ShortQuestionswithAnswers.pdf
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
O7-L3 Supply Chain Operations - ICLT Program
Institutional Correction lecture only . . .
Lesson notes of climatology university.
O5-L3 Freight Transport Ops (International) V1.pdf
Insiders guide to clinical Medicine.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Microbial disease of the cardiovascular and lymphatic systems
TR - Agricultural Crops Production NC III.pdf
Ad

Enterprise Integration Patterns Designing Building and Deploying Messaging Solutions 1st Edition Hohpe

  • 1. Enterprise Integration Patterns Designing Building and Deploying Messaging Solutions 1st Edition Hohpe pdf download https://ebookname.com/product/enterprise-integration-patterns- designing-building-and-deploying-messaging-solutions-1st-edition- hohpe/ Get the full ebook with Bonus Features for a Better Reading Experience on ebookname.com
  • 2. Instant digital products (PDF, ePub, MOBI) available Download now and explore formats that suit you... Service Oriented Java Business Integration Enterprise Service Bus integration solutions for Java developers 1st Ed Edition Binildas https://ebookname.com/product/service-oriented-java-business- integration-enterprise-service-bus-integration-solutions-for- java-developers-1st-ed-edition-binildas/ Pentaho Kettle Solutions Building Open Source ETL Solutions with Pentaho Data Integration 1st Edition Matt Casters https://ebookname.com/product/pentaho-kettle-solutions-building- open-source-etl-solutions-with-pentaho-data-integration-1st- edition-matt-casters/ Enterprise Integration Patterns for SAP NetWeaver PI SAP PRESS Essentials 35 1st Edition René De Daniel https://ebookname.com/product/enterprise-integration-patterns- for-sap-netweaver-pi-sap-press-essentials-35-1st-edition-rene-de- daniel/ Evolutionary Science and Society Educating a New Generation Joel Cracraft https://ebookname.com/product/evolutionary-science-and-society- educating-a-new-generation-joel-cracraft/
  • 3. Frommer s London Day by Day Frommer s Day by Day 1st Edition Lesley Logan https://ebookname.com/product/frommer-s-london-day-by-day- frommer-s-day-by-day-1st-edition-lesley-logan/ The Tour de France 1903 2003 a century of sporting structures meanings and values Hugh Dauncey https://ebookname.com/product/the-tour-de- france-1903-2003-a-century-of-sporting-structures-meanings-and- values-hugh-dauncey/ Healthy Cooking for Secondary Schools Book 4 Book 4 1st Edition Sandra Mulvany https://ebookname.com/product/healthy-cooking-for-secondary- schools-book-4-book-4-1st-edition-sandra-mulvany/ In Harm s Way The Dynamics of Urban Violence Javier Auyero https://ebookname.com/product/in-harm-s-way-the-dynamics-of- urban-violence-javier-auyero/ Litt s Drug Eruptions Reactions Manual 16th Edition Litt Jerome https://ebookname.com/product/litt-s-drug-eruptions-reactions- manual-16th-edition-litt-jerome/
  • 4. Srimad Bhagavata Mahapurana with Sanskrit Text and English Translation Volume 2 Gita Press Gorakhpur 1st Edition C.L. Goswami https://ebookname.com/product/srimad-bhagavata-mahapurana-with- sanskrit-text-and-english-translation-volume-2-gita-press- gorakhpur-1st-edition-c-l-goswami/
  • 6. Aggregator (268) How do we combine the results of individual but related messages so that they can be processed as a whole? Canonical Data Model (355) How can you minimize dependencies when integrating applications that use different data formats? Channel Adapter (127) How can you connect an application to the messaging system so that it can send and receive messages? Channel Purger (572) How can you keep left- over messages on a channel from disturbing tests or running systems? Claim Check (346) How can we reduce the data volume of message sent across the system without sacrificing information content? Command Message (145) How can messaging be used to invoke a procedure in another application? Competing Consumers (502) How can a messaging client process multiple messages concurrently? Composed Message Processor (294) How can you maintain the overall message flow when pro- cessing a message consisting of multiple elements, each of which may require different processing? Content Enricher (336) How do we communi- cate with another system if the message origina- tor does not have all the required data items available? Content Filter (342) How do you simplify dealing with a large message when you are interested only in a few data items? Content-Based Router (230) How do we han- dle a situation in which the implementation of a single logical function is spread across multiple physical systems? Control Bus (540) How can we effectively administer a messaging system that is distri- buted across multiple platforms and a wide geographic area? Correlation Identifier (163) How does a re- questor that has received a reply know which request this is the reply for? Datatype Channel (111) How can the applica- tion send a data item such that the receiver will know how to process it? Dead Letter Channel (119) What will the mes- saging system do with a message it cannot deliver? Detour (545) How can you route a message through intermediate steps to perform valida- tion, testing, or debugging functions? Document Message (147) How can messaging be used to transfer data between applications? Durable Subscriber (522) How can a subscriber avoid missing messages while it’s not listening for them? Dynamic Router (243) How can you avoid the dependency of the router on all possible destina- tions while maintaining its efficiency? Envelope Wrapper (330) How can existing sys- tems participate in a messaging exchange that plac- es specific requirements, such as message header fields or encryption, on the message format? Event Message (151) How can messaging be used to transmit events from one application to another? Event-Driven Consumer (498) How can an application automatically consume messages as they become available? File Transfer (43) How can I integrate multiple applications so that they work together and can exchange information? Format Indicator (180) How can a message’s data format be designed to allow for possible future changes? Guaranteed Delivery (122) How can the sender make sure that a message will be delivered even if the messaging system fails? Idempotent Receiver (528) How can a message receiver deal with duplicate messages? Invalid Message Channel (115) How can a mes- saging receiver gracefully handle receiving a mes- sage that makes no sense? Message Broker (322) How can you decouple the destination of a message from the sender and maintain central control over the flow of messages? Message Bus (137) What architecture enables separate applications to work together but in a de- coupled fashion such that applications can be eas- ily added or removed without affecting the others? Message Channel (60) How does one applica- tion communicate with another using messaging? Message Dispatcher (508) How can multiple consumers on a single channel coordinate their message processing? Message Endpoint (95) How does an applica- tion connect to a messaging channel to send and receive Messages? Message Expiration (176) How can a sender indicate when a message should be considered stale and thus shouldn’t be processed? C A B D E List of Patterns
  • 7. Message Filter (237) How can a component avoid receiving uninteresting messages? Message History (551) How can we effectively analyze and debug the flow of messages in a loosely coupled system? Message Router (78) How can you decouple individual processing steps so that messages can be passed to different filters depending on a set of conditions? Message Sequence (170) How can messaging transmit an arbitrarily large amount of data? Message Store (555) How can we report against message information without disturbing the loosely coupled and transient nature of a messaging system? Message Translator (85) How can systems using different data formats communicate with each other using messaging? Message (66) How can two applications con- nected by a message channel exchange a piece of information? Messaging Bridge (133) How can multiple mes- saging systems be connected so that messages available on one are also available on the others? Messaging Gateway (468) How do you encap- sulate access to the messaging system from the rest of the application? Messaging Mapper (477) How do you move data between domain objects and the messaging infrastructure while keeping the two indepen- dent of each other? Messaging (53) How can I integrate multiple applications so that they work together and can exchange information? Normalizer (352) How do you process messag- es that are semantically equivalent but arrive in a different format? Pipes and Filters (70) How can we perform complex processing on a message while main- taining independence and flexibility? Point-to-Point Channel (103) How can the caller be sure that exactly one receiver will receive the document or perform the call? Polling Consumer (494) How can an applica- tion consume a message when the application is ready? Process Manager (312) How do we route a mes- sage through multiple processing steps when the required steps may not be known at design time and may not be sequential? Publish-Subscribe Channel (106) How can the sender broadcast an event to all interested receivers? Recipient List (249) How do we route a mes- sage to a dynamic list of recipients? Remote Procedure Invocation (50) How can I integrate multiple applications so that they work together and can exchange information? Request-Reply (154) When an application sends a message, how can it get a response from the receiver? Resequencer (283) How can we get a stream of related but out-of-sequence messages back into the correct order? Return Address (159) How does a replier know where to send the reply? Routing Slip (301) How do we route a message consecutively through a series of processing steps when the sequence of steps is not known at design time and may vary for each message? Scatter-Gather (297) How do you maintain the overall message flow when a message must be sent to multiple recipients, each of which may send a reply? Selective Consumer (515) How can a message consumer select which messages it wishes to receive? Service Activator (532) How can an application design a service to be invoked both via various messaging technologies and via non-messaging techniques? Shared Database (47) How can I integrate mul- tiple applications so that they work together and can exchange information? Smart Proxy (558) How can you track messages on a service that publishes reply messages to the Return Address specified by the requestor? Splitter (259) How can we process a message if it contains multiple elements, each of which may have to be processed in a different way? Test Message (569) What happens if a compo- nent is actively processing messages but garbles outgoing messages due to an internal fault? Transactional Client (484) How can a client control its transactions with the messaging system? Wire Tap (547) How do you inspect messages that travel on a Point-to-Point Channel? 1 2 3 ?
  • 9. The Addison-Wesley Signature Series provides readers with practical and authoritative information on the latest trends in modern technology for computer professionals. The series is based on one simple premise: Great books come from great authors. Books in the series are personally chosen by expert advisors, world-class authors in their own right. These experts are proud to put their signatures on the covers, and their signatures ensure that these thought leaders have worked closely with authors to define topic coverage, book scope, critical content, and overall uniqueness. The expert signatures also symbolize a promise to our readers: You are reading a future classic. Visit informit.com/awss for a complete list of available products. The Addison-Wesley Signature Series Kent Beck, Mike Cohn, and Martin Fowler, Consulting Editors
  • 10. Enterprise Integration Patterns Designing, Building, and Deploying Messaging Solutions Gregor Hohpe Bobby Woolf With Contributions by Kyle Brown Conrad F. D’Cruz Martin Fowler Sean Neville Michael J. Rettig Jonathan Simon Boston • San Francisco • New York • Toronto • Montreal London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City
  • 11. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and Addison- Wesley was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers discounts on this book when ordered in quantity for bulk purchases and special sales. For more information, please contact: U.S. Corporate and Government Sales (800) 382-3419 corpsales@pearsontechgroup.com For sales outside of the U.S., please contact: International Sales (317) 581-3793 international@pearsontechgroup.com Visit Addison-Wesley on the Web: www.awprofessional.com Library of Congress Cataloging-in-Publication Data Hohpe, Gregor. Enterprise integration patterns : designing, building, and deploying messaging solutions / Gregor Hohpe, Bobby Woolf. p. cm. Includes bibliographical references and index. ISBN 0-321-20068-3 1. Telecommunication—Message processing. 2. Management information systems. I. Woolf, Bobby. II. Title. TK5102.5.H5882 2003 005.7'136—dc22 2003017989 Copyright © 2004 by Pearson Education, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopy- ing, recording, or otherwise, without the prior consent of the publisher. Printed in the United States of America. Published simultaneously in Canada. For information on obtaining permission for use of material from this work, please sub- mit a written request to: Pearson Education, Inc. Rights and Contracts Department 75 Arlington Street, Suite 300 Boston, MA 02116 Fax: (617) 848-7047 ISBN: 0-321-20068-3 Text printed in the United States on recycled paper at Courier in Westford, Massachusetts. Fifteenth printing, May 2011
  • 12. To my family and all my friends who still remember me after I emerged from book “crunch mode” —Gregor To Sharon, my new wife —Bobby
  • 14. vii Contents Foreword by John Crupi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Foreword by Martin Fowler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix Chapter 1: Solving Integration Problems Using Patterns . . . . . . . . . . . . . . . . 1 The Need for Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Integration Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 How Integration Patterns Can Help . . . . . . . . . . . . . . . . . . . . . . . . . .4 The Wide World of Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Loose Coupling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 One-Minute EAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 A Loosely Coupled Integration Solution . . . . . . . . . . . . . . . . . . . . . .15 Widgets & Gadgets ’R Us: An Example . . . . . . . . . . . . . . . . . . . . . .17 Internal Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Taking Orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 Processing Orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Checking Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 Change Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 New Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Announcements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Testing and Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Chapter 2: Integration Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 File Transfer (by Martin Fowler) . . . . . . . . . . . . . . . . . . . . . . . . . . .43
  • 15. viii CONTENTS Shared Database (by Martin Fowler). . . . . . . . . . . . . . . . . . . . . . . . .47 Remote Procedure Invocation (by Martin Fowler). . . . . . . . . . . . . . .50 Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Chapter 3: Messaging Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57 Message Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60 Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 Pipes and Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Message Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78 Message Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85 Message Endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 Chapter 4: Messaging Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 Point-to-Point Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103 Publish-Subscribe Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 Datatype Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 Invalid Message Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 Dead Letter Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 Guaranteed Delivery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 Channel Adapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127 Messaging Bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133 Message Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 Chapter 5: Message Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143 Command Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145 Document Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 Event Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151 Request-Reply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Return Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159 Correlation Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163 Message Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170 Message Expiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 Format Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
  • 16. CONTENTS ix Chapter 6: Interlude: Simple Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183 Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183 Publish-Subscribe Example . . . . . . . . . . . . . . . . . . . . . . . . . . . .185 JMS Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187 Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187 Request-Reply Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189 Invalid Message Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197 .NET Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . .198 Request-Reply Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198 Request-Reply Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200 Invalid Message Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206 JMS Publish-Subscribe Example . . . . . . . . . . . . . . . . . . . . . . . . . . .207 The Observer Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207 Distributed Observer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208 Publish-Subscribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209 Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 Push and Pull Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213 Channel Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222 Chapter 7: Message Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 Content-Based Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230 Message Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237 Dynamic Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243 Recipient List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249 Splitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259 Aggregator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268 Resequencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283 Composed Message Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . .294 Scatter-Gather . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Routing Slip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
  • 17. x CONTENTS Process Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312 Message Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322 Chapter 8: Message Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327 Envelope Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330 Content Enricher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336 Content Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342 Claim Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346 Normalizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352 Canonical Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355 Chapter 9: Interlude: Composed Messaging. . . . . . . . . . . . . . . . . . . . . . . . 361 Loan Broker Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361 Obtaining a Loan Quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361 Designing the Message Flow . . . . . . . . . . . . . . . . . . . . . . . . . . .362 Sequencing: Synchronous versus Asynchronous . . . . . . . . . . . . .364 Addressing: Distribution versus Auction . . . . . . . . . . . . . . . . . .366 Aggregating Strategies: Multiple Channels versus Single Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368 Managing Concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368 Three Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369 Synchronous Implementation Using Web Services (by Conrad F. D’Cruz) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371 Solution Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371 Web Services Design Considerations . . . . . . . . . . . . . . . . . . . . .372 Apache Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376 Service Discovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .379 The Loan Broker Application . . . . . . . . . . . . . . . . . . . . . . . . . . .379 Components of the Loan Broker Application . . . . . . . . . . . . . . .381 Client Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396 Running the Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .397 Performance Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399 Limitations of This Example . . . . . . . . . . . . . . . . . . . . . . . . . . .400 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .400 Asynchronous Implementation with MSMQ . . . . . . . . . . . . . . . . .401 Loan Broker Ecosystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401 Laying the Groundwork: A Messaging Gateway . . . . . . . . . . . .402
  • 18. CONTENTS xi Base Classes for Common Functionality . . . . . . . . . . . . . . . . . .405 Designing the Bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .410 Designing the Credit Bureau . . . . . . . . . . . . . . . . . . . . . . . . . . .412 Designing the Loan Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413 Refactoring the Loan Broker . . . . . . . . . . . . . . . . . . . . . . . . . . .431 Putting it All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435 Improving Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435 A Few Words on Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .440 Limitations of This Example . . . . . . . . . . . . . . . . . . . . . . . . . . .443 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444 Asynchronous Implementation with TIBCO ActiveEnterprise (by Michael J. Rettig) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445 Solution Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .445 The Implementation Toolset . . . . . . . . . . . . . . . . . . . . . . . . . . .448 The Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451 Implementing the Synchronous Services . . . . . . . . . . . . . . . . . . .452 The Loan Broker Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455 Managing Concurrent Auctions . . . . . . . . . . . . . . . . . . . . . . . . .459 Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .462 Chapter 10: Messaging Endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .463 Messaging Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468 Messaging Mapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .477 Transactional Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .484 Polling Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .494 Event-Driven Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .498 Competing Consumers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .502 Message Dispatcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .508 Selective Consumer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .515 Durable Subscriber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .522 Idempotent Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .528 Service Activator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .532 Chapter 11: System Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537 Control Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .540
  • 19. xii CONTENTS Detour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .545 Wire Tap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .547 Message History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .551 Message Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555 Smart Proxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .558 Test Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .569 Channel Purger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .572 Chapter 12: Interlude: System Management Example . . . . . . . . . . . . . . . . 577 Loan Broker System Management . . . . . . . . . . . . . . . . . . . . . . . . .577 Instrumenting the Loan Broker . . . . . . . . . . . . . . . . . . . . . . . . .578 Management Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .579 Loan Broker Quality of Service . . . . . . . . . . . . . . . . . . . . . . . . .579 Verify the Credit Bureau Operation . . . . . . . . . . . . . . . . . . . . . .587 Credit Bureau Failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .592 Enhancing the Management Console . . . . . . . . . . . . . . . . . . . . .595 Limitations of This Example . . . . . . . . . . . . . . . . . . . . . . . . . . .602 Chapter 13: Integration Patterns in Practice. . . . . . . . . . . . . . . . . . . . . . . . 603 Case Study: Bond Pricing System (by Jonathan Simon) . . . . . . . . .603 Building a System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .603 Architecture with Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . .604 Structuring Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .610 Selecting a Message Channel . . . . . . . . . . . . . . . . . . . . . . . . . . .614 Problem Solving with Patterns . . . . . . . . . . . . . . . . . . . . . . . . . .618 Flashing Market Data Updates . . . . . . . . . . . . . . . . . . . . . . . . . .618 Major Production Crash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .620 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .623 Chapter 14: Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 Emerging Standards and Futures in Enterprise Integration (by Sean Neville) . . . . . . . . . . . . . . .625 The Relationship between Standards and Design Patterns . . . . . 626 Survey of Standards Processes and Organizations . . . . . . . . . . .627 Business Process Components and Intra-Web Service Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .629 ebXML and the Electronic Business Messaging Service (ebMS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .631
  • 20. CONTENTS xiii Business Process Execution Language for Web Services (BEPL4WS) . . . . . . . . . . . . . . . . . . . . . . . . .634 Web Service Choreography Interface (WSCI) . . . . . . . . . . . . . . .636 Java Business Process Component Standards . . . . . . . . . . . . . . .637 WS-* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .639 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .647 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .659
  • 22. xv Foreword by John Crupi What do you do when a new technology arrives? You learn the technology. This is exactly what I did. I studied J2EE (being from Sun Microsystems, it seemed to be the logical choice). Specifically, I focused on the EJB technology by reading the specifications (since there were no books yet). Learning the technology, how- ever, is just the first step—the real goal is to learn how to effectively apply the technology. The nice thing about platform technologies is that they constrain you to performing certain tasks. But, as far as the technology is concerned, you can do whatever you want and quite often get into trouble if you don’t do things appropriately. One thing I’ve seen in the past 15 years is that there seem to be two areas that software developers obsess over: programming and designing—or more specifi- cally, programming and designing effectively. There are great books out there that tell you the most efficient way to program certain things in Java and C#, but far fewer tell you how to design effectively. That’s where this book comes in. When Deepak Alur, Dan Malks, and I wrote Core J2EE Patterns, we wanted to help J2EE developers “design” better code. The best decision we made was to use patterns as the artifact of choice. As James Baty, a Sun Distinguished Engi- neer, puts it, “Patterns seem to be the sweet spot of design.” I couldn’t agree more, and luckily for us, Gregor and Bobby feel the same way. This book focuses on a hot and growing topic: integration using messaging. Not only is messaging key to integration, but it will most likely be the predomi- nant focus in Web services for years to come. There is so much noise today in the Web services world, it’s a delicate and complex endeavor just to identify the spec- ifications and technologies to focus on. The goal remains the same, however— software helps you solve a problem. Just as in the early days of J2EE and .NET, there is not a lot of design help out there yet for Web services. Many people say
  • 23. xvi FOREWORD Web services is just a new and open way to solve our existing integration prob- lems—and I agree. But, that doesn’t mean we know how to design Web services. And that brings us to the gem of this book. I believe this book has many of the patterns we need to design Web services and other integration systems. Because the Web service specifications are still battling it out, it wouldn’t have made sense for Bobby and Gregor to provide examples of many of the Web service specifica- tions. But, that’s okay. The real payoff will result when the specifications become standards and we use the patterns in this book to design for those solutions that are realized by these standards. Then maybe we can realize our next integration goal of designing for service-oriented architectures. Read this book and keep it by your side. It will enhance your software career to no end. John Crupi Bethesda, MD August 2003
  • 24. xvii Foreword by Martin Fowler While I was working on my book Patterns of Enterprise Application Architec- ture, I was lucky to get some in-depth review from Kyle Brown and Rachel Reinitz at some informal workshops at Kyle’s office in Raleigh-Durham. During these sessions, we realized that a big gap in my work was asynchronous messag- ing systems. There are many gaps in my book, and I never intended it to be a complete collection of patterns for enterprise development. But the gap on asynchronous messaging is particularly important because we believe that asynchronous mes- saging will play an increasingly important role in enterprise software develop- ment, particularly in integration. Integration is important because applications cannot live isolated from each other. We need techniques that allow us to take applications that were never designed to interoperate and break down the stovepipes so we can gain a greater benefit than the individual applications can offer us. Various technologies have been around that promise to solve the integration puzzle. We all concluded that messaging is the technology that carries the greatest promise. The challenge we faced was to convey how to do messaging effectively. The biggest challenge in this is that messages are by their nature asynchronous, and there are significant differences in the design approaches that you use in an asynchronous world. I didn’t have space, energy, or frankly the knowledge to cover this topic properly in Patterns of Enterprise Application Architecture. But we came up with a better solution to this gap: find someone else who could. We hunted down Gregor and Bobby, and they took up the challenge. The result is the book you’re about to read.
  • 25. xviii FOREWORD I’m delighted with the job that they have done. If you’ve already worked with messaging systems, this book will systematize much of the knowledge that you and others have already learned the hard way. If you are about to work with messaging systems, this book will provide a foundation that will be invalu- able no matter which messaging technology you have to work with. Martin Fowler Melrose, MA August 2003
  • 26. xix Preface This is a book about enterprise integration using messaging. It does not docu- ment any particular technology or product. Rather, it is designed for developers and integrators using a variety of messaging products and technologies, such as • Message-oriented middleware (MOM) and EAI suites offered by vendors such as IBM (WebSphere MQ Family), Microsoft (BizTalk), TIBCO, Web- Methods, SeeBeyond, Vitria, and others. • Java Message Service (JMS) implementations incorporated into commercial and open source J2EE application servers as well as standalone products. • Microsoft’s Message Queuing (MSMQ), accessible through several APIs, including the System.Messaging libraries in Microsoft .NET. • Emerging Web services standards that support asynchronous Web services (for example, WS-ReliableMessaging) and the associated APIs such as Sun Microsystems’ Java API for XML Messaging (JAXM) or Microsoft’s Web Services Extensions (WSE). Enterprise integration goes beyond creating a single application with a dis- tributed n-tier architecture, which enables a single application to be distributed across several computers. Whereas one tier in a distributed application cannot run by itself, integrated applications are independent programs that can each run by themselves, yet that function by coordinating with each other in a loosely coupled way. Messaging enables multiple applications to exchange data or com- mands across the network using a “send and forget” approach. This allows the caller to send the information and immediately go on to other work while the information is transmitted by the messaging system. Optionally, the caller can later be notified of the result through a callback. Asynchronous calls and call- backs can make a design more complex than a synchronous approach, but an asynchronous call can be retried until it succeeds, which makes the communica-
  • 27. xx PREFACE tion much more reliable. Asynchronous messaging also enables several other advantages, such as throttling of requests and load balancing. Who Should Read This Book This book is designed to help application developers and system integrators connect applications using message-oriented integration tools: • Application architects and developers who design and build complex enterprise applications that need to integrate with other applications. We assume that you’re developing your applications using a modern enterprise application platform such as the Java 2 Platform, Enterprise Edition (J2EE), or the Microsoft .NET Framework. This book will help you con- nect the application to a messaging layer and exchange information with other applications. This book focuses on the integration of applications, not on building applications; for that, we refer you to Patterns of Enter- prise Application Architecture by Martin Fowler. • Integration architects and developers who design and build integration solutions connecting packaged or custom applications. Most readers in this group will have experience with one of the many commercial integra- tion tools like IBM WebSphere MQ, TIBCO, WebMethods, SeeBeyond, or Vitria, which incorporate many of the patterns presented in this book. This book helps you understand the underlying concepts and make confi- dent design decisions using a vendor-independent vocabulary. • Enterprise architects who have to maintain the “big picture” view of the software and hardware assets in an enterprise. This book presents a consis- tent vocabulary and graphical notation to describe large-scale integration solutions that may span many technologies or point solutions. This lan- guage is also a key enabler for efficient communication between the enter- prise architect and the integration and application architects and developers. What You Will Learn This book does not attempt to make a business case for enterprise application integration; the focus is on how to make it work. You will learn how to inte- grate enterprise applications by understanding the following:
  • 28. PREFACE xxi • The advantages and limitations of asynchronous messaging as compared to other integration techniques. • How to determine the message channels your applications will need, how to control whether multiple consumers can receive the same message, and how to handle invalid messages. • When to send a message, what it should contain, and how to use special message properties. • How to route a message to its ultimate destination even when the sender does not know where that is. • How to convert messages when the sender and receiver do not agree on a common format. • How to design the code that connects an application to the messaging system. • How to manage and monitor a messaging system once it’s in use as part of the enterprise. What This Book Does Not Cover We believe that any book sporting the word “enterprise” in the title is likely to fall into one of three categories. First, the book might attempt to cover the whole breadth of the subject matter but is forced to stop short of detailed guid- ance on how to implement actual solutions. Second, the book might provide specific hands-on guidance on the development of actual solutions but is forced to constrain the scope of the subject area it addresses. Third, the book might attempt to do both but is likely never to be finished or else to be published so late as to be irrelevant. We opted for the second choice and hopefully created a book that helps people create better integration solutions even though we had to limit the scope of the book. Topics that we would have loved to discuss but had to exclude in order not to fall into the category-three trap include security, complex data mapping, workflow, rule engines, scalability and robustness, and distributed transaction processing (XA, Tuxedo, and the like). We chose asyn- chronous messaging as the emphasis for this book because it is full of interest- ing design issues and trade-offs, and provides a clean abstraction from the many implementations provided by various integration vendors. This book is also not a tutorial on a specific messaging or middleware tech- nology. To highlight the wide applicability of the concepts presented in this
  • 29. xxii PREFACE book, we included examples based on a number of different technologies, such as JMS, MSMQ, TIBCO, BizTalk, and XSL. However, we focus on the design decisions and trade-offs as opposed to the specifics of the tool. If you are inter- ested in learning more about any of these specific technologies, please refer to one of the books referenced in the bibliography or to one of the many online resources. How This Book Is Organized As the title suggests, the majority of this book consists of a collection of pat- terns. Patterns are a proven way to capture experts’ knowledge in fields where there are no simple “one size fits all” answers, such as application architecture, object-oriented design, or integration solutions based on asynchronous messag- ing architectures. Each pattern poses a specific design problem, discusses the considerations surrounding the problem, and presents an elegant solution that balances the various forces or drivers. In most cases, the solution is not the first approach that comes to mind, but one that has evolved through actual use over time. As a result, each pattern incorporates the experience base that senior integration developers and architects have gained by repeatedly building solutions and learning from their mistakes. This implies that we did not “invent” the patterns in this book; patterns are not invented, but rather discovered and observed from actual practice in the field. Because patterns are harvested from practitioners’ actual use, chances are that if you have been working with enterprise integration tools and asynchro- nous messaging architectures for some time, many of the patterns in this book will seem familiar to you. Yet, even if you already recognize most of these pat- terns, there is still value in reviewing this book. This book should validate your hard-earned understanding of how to use messaging while documenting details of the solutions and relationships between them of which you might not have been aware. It also gives you a consolidated reference to help you pass your knowledge effectively to less-experienced colleagues. Finally, the pattern names give you a common vocabulary to efficiently discuss integration design alterna- tives with your peers. The patterns in this book apply to a variety of programming languages and platforms. This means that a pattern is not a cut-and-paste snippet of code, but you have to realize a pattern to your specific environment. To make this transla- tion easier, we added a variety of examples that show different ways of imple-
  • 30. PREFACE xxiii menting patterns using popular technologies such as JMS, MSMQ, TIBCO, BizTalk, XSL, and others. We also included a few larger examples to demon- strate how multiple patterns play together to form a cohesive solution. Integrating multiple applications using an asynchronous messaging architec- ture is a challenging and interesting field. We hope you enjoy reading this book as much as we did writing it. About the Cover Picture The common theme for books in the Martin Fowler Signature Series is a picture of a bridge. In some sense we lucked out, because what theme would make a better match for a book on integration? For thousands of years, bridges have helped connect people from different shores, mountains, and sides of the road. We selected a picture of the Taiko-bashi Bridge at the Sumiyoshi-taisha Shrine in Osaka, Japan, for its simple elegance and beauty. As a Shinto shrine dedicated to the guardian deity for sailors, it was originally erected next to the water. Interestingly, land reclamation has pushed the water away so that the shrine today stands almost three miles inland. Some three million people visit this shrine at the beginning of a new year. Gregor Hohpe San Francisco, California Bobby Woolf Raleigh, North Carolina September 2003 www.enterpriseintegrationpatterns.com
  • 31. The Pioneer Plaque by Dr. Carl Sagan A message to extraterrestrial life forms.
  • 32. xxv Acknowledgments Like most books, Enterprise Integration Patterns has been a long time in the making. The idea of writing about message-based integration patterns dates back to the summer of 2001 when Martin Fowler was working on Patterns of Enterprise Application Architecture (P of EAA). At that time, it struck Kyle Brown that while P of EAA talked a lot about how to create applications, it touches only briefly on how to integrate them. This idea was the starting point for a series of meetings between Martin and Kyle that also included Rachel Rein- itz, John Crupi, and Mark Weitzel. Bobby joined these discussions in the fall of 2001, followed by Gregor in early 2002. The following summer the group sub- mitted two papers for review at the Pattern Languages of Programs (PLoP) con- ference, one authored jointly by Bobby and Kyle and the other by Gregor. After the conference, Kyle and Martin refocused on their own book projects while Gregor and Bobby merged their papers to form the basis for the book. At the same time, the www.enterpriseintegrationpatterns.com site went live to allow integration architects and developers around the world to participate in the rapid evolution of the content. As they worked on the book, Gregor and Bobby invited contributors to participate in the creation of the book. About two years after Kyle’s original idea, the final manuscript arrived at the publisher. This book is the result of a community effort involving a great number of people. Many colleagues and friends (many of whom we met through the book effort) provided ideas for examples, ensured the correctness of the technical content, and gave us much needed feedback and criticism. Their input has greatly influenced the final form and content of the book. It is a pleasure for us to acknowledge their contributions and express our appreciation for their efforts. Kyle Brown and Martin Fowler deserve special mention for laying the foun- dation for this book. This book might have never been written were it not for Martin’s writing P of EAA and Kyle’s forming a group to discuss messaging patterns to complement Martin’s book.
  • 33. xxvi ACKNOWLEDGMENTS We were fortunate to have several contributors who authored significant portions of the book: Conrad F. D’Cruz, Sean Neville, Michael J. Rettig, and Jonathan Simon. Their chapters round out the book with additional perspec- tives on how the patterns work in practice. Our writers’ workshop participants at the PLoP 2002 conference were the first people to provide substantial feedback on the material, helping to get us going in the right direction: Ali Arsanjani, Kyle Brown, John Crupi, Eric Evans, Martin Fowler, Brian Marick, Toby Sarver, Jonathan Simon, Bill Trudell, and Marek Vokac. We would like to thank our team of reviewers who took the time to read through the draft material and provided us with invaluable feedback and sug- gestions: Richard Helm Luke Hohmann Dragos Manolescu David Rice Russ Rufer and the Silicon Valley Patterns Group Matthew Short Special thanks go to Russ for workshopping the book draft in the Silicon Valley Patterns Group. We would like to thank the following members for their efforts: Robert Benson, Tracy Bialik, Jeffrey Blake, Azad Bolour, John Brewer, Bob Evans, Andy Farlie, Jeff Glaza, Phil Goodwin, Alan Harriman, Ken Hej- manowski, Deborah Kaddah, Rituraj Kirti, Jan Looney, Chris Lopez, Jerry Louis, Tao-hung Ma, Jeff Miller, Stilian Pandev, John Parello, Hema Pillay, Russ Rufer, Rich Smith, Carol Thistlethwaite, Debbie Utley, Walter Vannini, David Vydra, and Ted Young. Our public e-mail discussion list allowed people who discovered the material on www.enterpriseintegrationpatterns.com to chime in and share their thoughts and ideas. Special honors go to Bill Trudell as the most active contributor to the mailing list. Other active posters included Venkateshwar Bommineni, Duncan Cragg, John Crupi, Fokko Degenaar, Shailesh Gosavi, Christian Hall, Ralph Johnson, Paul Julius, Orjan Lundberg, Dragos Manolescu, Rob Mee, Srikanth Narasimhan, Sean Neville, Rob Patton, Kirk Pepperdine, Matthew Pryor, Somik Raha, Michael Rettig, Frank Sauer, Jonathan Simon, Federico Spinazzi, Randy Stafford, Marek Vokac, Joe Walnes, and Mark Weitzel.
  • 34. ACKNOWLEDGMENTS xxvii We thank Martin Fowler for hosting us in his signature series. Martin’s endorsement gave us confidence and the energy required to complete this work. We thank John Crupi for writing the foreword for our book. He has observed the book’s formation from the beginning and has been a patient guide all along without ever losing his sense of humor. Finally, we owe a great deal to the editing and production team at Addison- Wesley, led by our chief editor, Mike Hendrickson, and including our production coordinator, Amy Fleischer; our project manager, Kim Arney Mulcahy; our copy- editor, Carol J. Lallier; our proofreader, Rebecca Rider; our indexer, Sharon Hilgenberg; as well as Jacquelyn Doucette, John Fuller, and Bernard Gaffney. We’ve likely missed some names and not given everyone the credit they deserve, and we apologize. But to everyone listed and not listed who helped make this book better, thank you for all your help. We hope you can be as proud of this book as we are.
  • 35. Exploring the Variety of Random Documents with Different Content
  • 36. EVANGELISTS. Harmonized and Chronologically Arranged, illustrated by Fifty-five Engravings, printed on different Tinted Papers to distinguish the various Periods of our Lord's Ministry, having Picture Definitions and Exercises, and a Map. Fifth Edition. Cloth, 6s. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
  • 37. 18 BOOKS. MO SELEY, -OREGON: ITS RESOURCES, CLIMATE, PEOPLE, AND PRODUCTIONS. From Official Documents and Personal Observation. By H. N. Moseley, F.R.S. With Map. Fcap. 8vo, cloth, 2s. MULHALL — HANDBOOK OF BRAZIL : including a "Journey to Matto Grosso," "Rio Grande do Sul and its German Colonies," &c. By M. G. and E. T. Mulhall, Editors of the ' Standard,' Buenos Ayres. With Illustrations. Crown 8vo, cloth, 5s. HANDBOOK TO THE RIVER PLATE REPUBLICS: Comprising Buenos Ayres and the Provinces of the Argentine Republic, and the Republics of Uruguay aud Paraguay. By M. G. and E. T. Mulhall, Proprietors and Editors of the Buenos Ayres 1 Standard.' Spanish Edition. With Map and Two Plans. Crown 8vo, cloth, 8s. THE ENGLISH IN SOUTH AMERICA. By Michael G. Mulhall. With Illustrations. Demy 8vo, cloth, 16s. FROM EUROPE TO PARAGUAY and MATTO GROSSO. By Mrs. M. G. Mulhall. With Illustrations. Demy 8vo, cloth, 5s. NAVAL BOOKS. See page 25. NEW ZEALAND HANDBOOK: Containing a New and Accurate Coloured Map, and giving a full description of the Provinces of Auckland, New Plymouth, Wellington, Hawkes Bay, Nelson, Marlborough, Canterbury, Otago, Southland, &c. ; with Tables of Statistics, Prices, and Wages; Land Regulations; Instructions for the Voyage, Outfit, and Arrival in the Colony ; also Observations on New Zealand Pursuits and Investments. Twelfth Edition. Fcap. 8vo, Is. NOBLE. - DESCRIPTIVE HANDBOOK of the CAPE COLONY : its CONDITION and RESOURCES. By John Noble, Clerk of the House of Assembly, Cape of Good Hope. With Map and Illustrations. Crown 8vo, cloth, 10s. 6d. ORDNANCE SURVEY PUBLICATIONS. See page 30. PALMER.-The ORDNANCE SURVEY of the KINGDOM : Its Objects, Mode of Execution, History, and Present Condition. By Captain H. S. Palmes, R.E. With a Catalogue of the Maps, Plans, and other Publications of the Ordnance Survey of Great Britain and Ireland, and of the Models of the Ordnance Surveys of Jerusalem and Sinai, published under the Superintendence of Major-General Sir Heney James, R.E., F.R.S. Five Coloured Index Maps. Demy 8vo, cloth, 2s. 6d. PETRIE (W. M. F.)-INDUCTIVE METROLOGY; or, The Recoveey of Ancient Measubes fbom the Monuments. Demy 8vo, cloth, 8s. 6d.
  • 38. PHILPOT.-GUIDE BOOK to the CANADIAN DOMINION : Containing full information for the Emigrant, the Tourist, the Sportsman, and the small Capitalist. Dedicated, by permission, to His Royal Highness Prince Arthur. By Haevey J. Philpot, M.D. (Canada), M.R.C.S.L., &c, late Assistant-Surgeon to Her Majesty's Forces in Turkey and the Crimea. With a Preface by Thomas Hughes, Esq., M.P., and a Coloused Map. Super-royal 16mo, 4s. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
  • 39. BOOKS. 19 PLATTS' (Rev. J.) DICTIONARY of ENGLISH SYNONYMES : Comprehending the Derivations and Meanings of the Words, and the Distinctions between the Synonymes ; with Examples. New Edition. Demy 12mo, 3s. 6d. PLCETZ.-MANTJEL DE LA LITTERATURE FRANCAISE des XVIF, XVIIIE, et XIXE Siecles. Par C. Plcetz, Doc'teur en Philosophie, ancien Premier Professeur au College Francais de Berlin. Seconde Edition, Revue et Augmentee. Demy 8vo, cloth, 6s. 6<2. POPE.-A CLASS BOOK of RUDIMENTARY CHEMISTRY. By the Rev. Geo. Pope, M.A., Fellow of Sidney Sussex College, Cambridge, and one of the Masters of the College, Hurstpierpoint. 18mo, stiff cover, 9d. PURDY.-RETURN TO PARLIAMENT OF OWNERS OF LAND, 1873. Summary Digest — England and Wales. By Frederick Purdy, F.S.S., Principal of the Statistical Department, Local Government Board. Large 8vo, paper cover, 2s. RAMSAY-PHYSICAL GEOLOGY and GEOGRAPHY of GREAT BRITAIN. By A. C. Ramsay, LL.D., F.R.S., &c, DirectorGeneral of the Geological Surveys of the United Kingdom. Fifth Edition, considerably enlarged, and illustrated with Numerous Sections, Landscapes, and Fossils, and a GEOLOGICAL MAP of GREAT BRITAIN, printed in Colours. Post 8vo, cloth, 15s. REYNOLDS (Geo.).-EXERCISES in ARITHMETIC; with a copious variety of Bills of Parcels. Intended as an Auxiliary Companion to every Treatise on Practical and Commercial Arithmetic. 12mo, cloth, 2s. 6d. KEY to Ditto. 12mo, 2s. RHYMES WITH A REASON : or, Dates of the Accession of the Sovereigns of England. Printed on cardboard, 6c?. RICE (William, F.R.G.S.).-NOTES ON THE GEOGRAPHY OF EUROPE, PHYSICAL AND POLITICAL. Intended to serve as a Text-Book for the use of Elementary Classes, and as a Handbook to the Wall Map prepared under the direction of the Society for Promoting Christian Knowledge, and the National Society for Promoting the Education of the Poor. By William Rice, F.R.G.S., formerly Lecturer on Geography at the Royal Polytechnic College, London. Crown 8vo, limp cloth, 9d. ROBSON (J., B.A.) -CONSTRUCTIVE LATIN EXERCISES, for Teaching the Elements of the Language on a System of Analysis and Synthesis, with Latin Reading Lessons and copious Vocabularies. By
  • 40. John Robson, B.A. Lond., Secretary of University College, London, formerly Classical Master iu University College School. Eighth Edition. 12mo, cloth, 4s. Gd. FIRST GREEK BOOK. Containing Exercises and Reading Lessons on the Inflexions of Substantives and Adjectives, and of the Active Verb in the Indicative Mood. With copious Vocabularies. Being the First Part of the Constructive Greek Exercises. Third Edition. 12mo, cloth, 3s. Gd. WHOLESALE AND RETAIL BOOK AND MAP SELLER. c 2
  • 41. 20 BOOKS. ROWAN -The EMIGRANT and SPORTSMAN in CANADA. Some Experiences of an Old-Country Settler. With Sketches of Canadian Life, Sporting Adventures, and Observations on the Forests and Fauna. Containing practical and useful hints for emigrants and sportsmen. Also information for that class of emigrants for which Canada is a particularly suitable country, namely, people of small fortune, whose means, though ample to enable them to live well in Canada, are insufficient to meet the demands of rising expenses at home. By J. J. Rowan. With Map. Large post 8vo, cloth, 10s. Gd. SCHOOL-BOYS' LETTERS for COPYING and DICTATION : being a Series of Lithographed Letters on Subjects interesting to School-Boys, with Remarks on the Essentials of Good Writing, &c. Third Edition. Large post 8vo, cloth, 2s. 6c?. SCHOOL PUNISHMENT REGISTER. - The LONDON SCHOOL REGISTER of PUNISHMENTS. Designed to meet the Requirements of School Boards, &c. Fcap. folio, stiff boards, cloth back, 2s. 6d. SCHOOL REGISTER. - HALBRAKE REGISTER of ATTENDANCE and STUDIES. Designed for Private and MiddleClass Schools. Second Edition. Demy 8vo, coloured wrapper, 8d. SCHOOL REGISTERS.-THE DURHAM SCHOOL REGISTERS. By the Rev. Canon Cromwell, M. A., Principal of St. Mark's College, Chelsea. s. d. 1. Admission Register for 1000 Names 3 0 2. Class Register for Large Schools (50 Names) 0 8 3. Class Register for Small Schools (34 Names) 0 6 4. General Register or Summary, for Three Years . . . . 3 0 LONDON SCHOOL REGISTER of ADMISSION, PROGRESS, and WITHDRAWAL. Adapted to the Requirements of the Committee of Council on Education. By William Rice, F.R.G.S., Author of the ' London Class Register,' the ' Class and Home Lesson Book of English History,' the ' Scholar's Wordbook and Spelling Guide,' the ' Orthographical Copy Books,' &c. Fcap. folio, stiff boards, leather back, 4s. LONDON CLASS-REGISTER and SUMMARY OF ATTENDANCE and PAYMENTS. Ruled and Printed for 52 Weeks. Adapted to the requirements of the "Special Minute of the Committee of Council on Education." By William Rice, F.R.G.S., Author of the ' Class and Home-Lesson Book of English History,' &c. A New and Improved Edition. Fcap. folio, Is. V ARTY'S CLASS
  • 42. REGISTER of INDIVIDUAL PROGRESS. To contain the Admission Numbers and Names of the Children, their Attendance and Absence, and Relative Position in the Class. Fcap. folio, Is. %* For Complete List of School Registers and Account Books, see Stanford's Select List of Educational Works, gratis on application, or per post for penny stamp. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
  • 43. BOOKS. 21 SEYD.-THE BANKS of ISSUE QUESTION. Memorial Addressed to the Governor and Court of Directors of the Bank of England, and submitted to the Select Committee of the House of Commons of 1875. By Ernest Seyd, F.S.S., Author of ' Bullion and Foreign Exchanges,' ' The London Banking and Clearing House System,' &c. Koyal 8vo, 3s. SHARP.-BUDIMENTS of GEOLOGY. By Samuel Sharp, F.S.A., F.G.S. Introductory and Physical — Stratigraphical and Palseoutological. Second Edition, Revised and Enlarged. Crown 8vo, cloth, Is. SIMPLE LESSONS FOR HOME USE : Chiefly intended for Elementary Schools. Money Rev. T. E. Crallan, M.A., Chaplain to Sussex County Asylum. Food* G. Phillips Bevan, F.G.S., Editor of 'British Manufacturing Industries.' Drink Dr. Mann, F.R.A.S., F.R.G.S., late Superintendent of Education in Natal. Cookery* J. C. Buckmaster, B.A., of the Science and Art Department, South Kensington. Our Bodily Life*.. t. Mrs. Fenwick Miller, Member of the London School Board. How and Why Wej Mrs. Fenwick Miller, Member of the London Breathe* J School Board. Air and Ventilation* .. Mrs. Fenwick Miller, Member of the London School Board. Clothing J. J. Pope. Needlework Mrs. Benjamin Clarke. Flowers Rev. G. Henslow, M.A., F.L.S. Astronomy Richard A. Proctor, B.A., Author of 'Light Science for Leisure Hours,' &c. Weather Dr. Mann, F.R.A.S., F.R.G.S., late Superintendent of Education in Natal. Birds Rev. F. O. Morris, M.A., Author of 'History of British Birds.' Sicknesses that Spread. . Mrs. Fenwick Miller, Member of the London School Board. * Specific Subject of New Code, Article 21. This series is written in a simple and interesting manner, and will be found admirably adapted either for use in class or as rewards for attendance and good conduct. The Set of 14 Subjects in One Volume, 18mo, cloth, 2s. 6d. ; Ditto, in a Thumb Case, 3s. ; Single Copies, 3d.; One Hundred Copies, IGs. SMITH.-The PEASANTS' HOME, 1760-1875. By Edward Smith, F.S.S. Being the Howard Prize Essay, 1875. Crown 8vo, cloth, 3s. 6d. STATISTICAL SOCIETY-JOURNAL of the STATISTICAL SOCIETY of LONDON. Published Quarterly, price 5s. Complete Sets, from the Year 1838 to December, 1877, can be had, with General
  • 44. Index up to 1872, price 211. 15s. Gd. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
  • 45. The text on this page is estimated to be only 29.34% accurate 22 BOOKS. STANFORD'S COMPENDIUM of GEOGRAPHY and TKAVEL, for GENERAL READING. Based on Hellwald's ' Die Erde und Ihre Volker.' Translated by A. H. Keane, B.A. A Series of Volumes descriptive of the Great Divisions of the Globe. Large post 8vo, cloth, with Maps, Ethnological Appendices, and several hundred Illustrations. AFRICA. — Edited and Extended by Keith Johnston, F.R.G.S. ; with Ethnological Appendix by A. H. Keane, B.A. Cloth, gilt, 21s. CENTRAL AMERICA, WEST INDIES, and SOUTH AMERICA.— Edited and Extended by H. W. Bates, AssistantSecretary of the Royal Geographical Society, Author of ' The Naturalist on the River Amazons.' Cloth, gilt, 21s. AUSTRALASIA.— Edited and Extended by Alfred R. Wallace, F.R.G.S., Author of 'The Malay Archipelago.' Cloth, gilt, 21s. The following Volumes are also iu Preparation, viz. : EUROPE.— Edited and Extended by Professor A. C. Ramsay, LL.D., F.R.S., Director-General of the Geological Surveys of the United Kingdom ; Author of ' Physical Geology and Geography of Great Britain.' ASIA. — Edited and Extended by Colonel Henry Yule, C.B., F.R.G.S., Author of < Travels of Marco Polo.' NORTH AMERICA.— Edited and Extended by Professor F. V. Hayden, of the United States Geological Survey. SULLIVAN.-THE PRINCES OF INDIA. An Historical Narrative of the Principal Events from the Invasion of Mahmoud of Ghizni to that of Nadir Shah. By Sir Edwakd Sullivan, Bart., Author of ' Letters on India,' ' Trip to the Trenches,' ' Rambles in North and South America,' &c. Secon 1 Edition, crown 8vo, cloth, with Map, 8s. 6d. TEN CHAPTERS on SOCIAL REFORM. By Sir Edward Sullivan, Author of ' The Princes of India,' &c, &c. Demy 8vo, cloth, price 5s. PROTECTION to NATIVE INDUSTRY. By Sir Edward Sullivan, Bart., Author of ' Ten Chapters on Social Reform,' &c, &c. Demy 8vo, cloth, Is. SYMONS.-BRITISH RAINFALL, 1877. The DISTRIBUTION of RAIN over the BRITISH ISLES during the YEAR 1877, as observed at about 2000 Stations in Great Britain and Ireland. With MAP and ILLUSTRATIONS. Compiled by G. J. Symons, F.R.S., Secretary to the Meteorological Society, &c. Demy 8vo, cloth' 5s. [Published Annually
  • 46. The MONTHLY METEOROLOGICAL MAGAZINE. Vols. I. to XII. (1877). Demy 8vo, cloth, price 5s. each. Published in Monthly Parts, 4J. each. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
  • 47. SYMONS.-REGISTRATION FORMS.— Forms for One Year, with Instructions, in stiff cover, 2s. Forms for Five Years, with Instructions, half-bound, 7s. Qd. BAROMETER DIAGRAMS.— Set of 12 for One Year. Is. REGISTER of RAINFALL for ONE YEAR. Fcap. folio, 3c?. POCKET ALTITUDE TABLES-SHORT AND SIMPLE RULES FOR ACCURATELY DETERMINING ALTITUDES BAROMETRICALLY. Limp cloth, 2s. 6d. TAYLER.-The NATIONAL TAXES. The History, Progress, and Present State of the Revenues of England derived from Taxation, and their- Expenditure. By Wm. Tayler, Esq., F.S.S., Author of ' History of Taxation in England.' Second Edition, with Additions. Crown"8vo, 2s. 6d. TAYLOR- BOYS OF OTHER COUNTRIES. By Bayard Taylor. The Little Post-Boy — The Pasha's Son — Jon of Iceland — The Two Herd Boys — The Young Serf. With Illustrations. Crown 8vo, cloth, 4s. 6d. THEAL.— COMPENDIUM of the HISTORY and GEOGRAPHY of SOUTH AFRICA. By George McCall Theal, Lovedale, South Africa. Third Edition. Revised and Enlarged. Large Demy 8vo, cloth, 10s. 6d. T00G00D (Mrs.). -SIMPLE SKETCHES from CHURCH HISTORY, for YOUNG PERSONS. New Edition. 18mo, Is. 6d. TRADE MARKS.-RULES UNDER THE TRADE MARKS REGISTRATION ACT, 1875. Printed for Her Majesty's Stationery Office. Is. TYRRELL (Lieut.-Col.).-WATERWAYS or RAILWAYS; or, The FUTURE of INDIA. With Map. Crown 8vo, cloth, 5s. VERDAD.-FROM VINEYARD to DECANTER. A Book about Sherry. By Don Pedro Verdad. With a Map of the Jerez District. Sixth Thousand, revised and enlarged. Fcap. 8vo, cloth, Is. VICTORIA, The BRITISH " EL DORADO." Showing the advantages of that Colony as a field for Emigration. By a Colonist of Twenty Years' Standing, and late Member of a Colonial Legislature, With Two Coloured Views and a Map. Super-royal 16mo, cloth, 5s. Gd. VIVIAN-NOTES of a TOUR in AMERICA. From August 7th to November 17th, 1877. By H. Hussey Vivian, M.P., F.G.S. Demy 8vo, with Map, 9s. WALLACES (W.) MINERAL DEPOSITS.— The Laws which Regulate the Deposition of Lead Ore in Mineral Lodes. Illustrated by an Examination of the Geological Structure of the Mining Districts of Alston Moor. With Map
  • 48. and numerous Coloured Plat* s. Large demy 8vo, cloth, 25s. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
  • 49. 24 BOOKS. WALLACE. - AUSTRALASIA. — ST ANFORD'S COMPENDIUM OF GEOGRAPHY AND TRAVEL. Based on Hellwald's ' Die Erde und Ihre Volker.' Edited and Extended by A. R. Wallace, F.R.G.S., Author of ' TheMalay Archipelago,' 'Geographical Distribution of Animals,' &c. With Ethnological Appendix by A. H. Keane, B.A. Large post 8vo, cloth, with Maps and numerous Illustrations, 21s. WEBBER.-THE KAIETEUR FALLS, BRITISH GUIANA. THE ESSEQUIBO and POTARO RIVERS. With an Account of a Visit to the Kaieteur Falls. By Lieut.-Colonel Webber, 2nd West India Regiment. With Map and Frontispiece, and Descriptive Notes on the Geology of Guiana. Crown 8vo, cloth, 4s. Qd. WELD. -HINTS to INTENDING SHEEP FARMERS in NEW ZEALAND. By Frederick A. Weld, New Zealand, Member of the House of Representatives, &c. With an Appendix on the Laud Regulations. Fcap. 8vo, 8d. WHITELANDS SERIES of STANDARD READING-BOOKS for GIRLS. Edited by the Rev. J. P. Faunthorpe, M.A., Principal cf Whitelands Training College. With original Illustrations. Post 8vo. Standard 1. — Illustrated Short Stories, &c. 4c?. „ 2. — Illustrated Easy Lessons. Is. 3d. „ 3. — Instructive Lessons. Illustrated. Is. Qd. „ 4.— Original Stories and Selected Poems. Is. 9d. „ 5. — Economical and Scientific Reader. 2s. Qd. „ 6. — Literary Reader. (In the Press). WILKINS.-The GEOLOGY and ANTIQUITIES of the ISLE of WIGHT. By Dr. E. P. Wilkins, F.G.S., &c. With Relief Map of the Island, coloured geologically. Super-royal 8vo, cloth, 7s. Qd. WILLIAMS. -THROUGH NORWAY with LADIES. By W. Mattieu Williams, F.R.A.S., F.C.S., Author of ' Through Norway with a Knapsack.' With Illustrations and Map. Crown 8vo, cloth, 12*. V THROUGH NORWAY WITH A KNAPSACK. By the same Author. See page 12. YOUNG. - READABLE SHORT-HAND - SELF - TAUGHT : Being a System by which people can teacli themselves, write the longest word without lifting the pen, read what they write, and correspond with friends at home or abroad on pleasure or business. It embraces a double set of vowels, with Liquid Consonants grafted on the other letters ; with a Combination of Words in most familiar use into ready sentences. The whole forming a System of Readable ShortHand, Shortened. By
  • 50. Murdo Young. Demy 12mo, boards, 2s. Qd. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
  • 51. NAVAL AND MILITARY BOOKS. 25 %M anbr military Jwb, PUBLISHED ON ACCOUNT OF HER MAJESTY'S STATIONERY OFFICE. ABYSSINIA -EXPEDITION to ABYSSINIA. By Holland and Hozier. 2 vols. 4to, and Maps. Cloth, 41. 4s. ; half mor., 51. 5s. AMMUNITION —TREATISE. By Major Barlow. Cloth, 6s. NOTES on AMMUNITION. By Major Barlow, K.A. Fourth Edition. With Illustrations. Royal 8vo, cloth, 2s. 6c?. ARMY SIGNALLING. -MANUAL of INSTRUCTION in ARMY SIGNALLING. Pocket Edition, Qd. HOSPITAL CORPS- REGULATIONS. Royal 8vo, 6d. LIST. Published Monthly, 2s. and NAVY SIGNAL-BOOK. Crown 8vo, with clasp, 4s. ARTILLERY CARBINE.— Snider Breech-loading. Manual and Platoon Exercises. Revised, 1869. 2d. DRESS REGULATIONS and STANDING ORDERS. Demy 8vo, cloth, 5s. [Out of print. EXERCISES-MANUAL of ARTILLERY EXERCISES, 1873. Royal 8vo, cloth, 5s. Pocket Edition. Is. 6d. Revision of Part II. Section I., Heavy Ordnance, 8vo. 6c?. Revision of Part II. Section IV., Mortars, Id. MANUAL of FIELD ARTILLERY EXERCISES, 1877. Demy 8vo, cloth, 3s. AUSTRIA-The ARMED STRENGTH of AUSTRIA. Royal 8vo. Part I., 10s, Qd. Part II., lis. 6d. CAVALRY-MOVEMENTS of CAVALRY. Royal 8vo, cloth, 4s. Qd. Pocket Edition, red leather, 3s. 3c?. INSTRUCTIONS in the DUTIES of CAVALRY RECONNOITRING AN ENEMY ; Marches ; Outposts ; and Reconnaissance of a Country ; for the Use of Auxiliary Cavalry. Pocket Edition, Is. Qd. INSTRUCTIONS for CAVALRY ADVANCED and REAR GUARDS, OUTPOSTS, &c. Pocket Edition, Qd. DENMARK. -The ARMED STRENGTH of DENMARK. Royal 8vo, 3s. DRESS BEGULATIONS for OFFICERS of the ARMYNov., 1874. Royal 8vo, Is. 6c7. ENCAMPMENTS.— REGULATIONS and INSTRUCTIONS for ENCAMPMENTS. Pocket Edition, Qd. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
  • 52. The text on this page is estimated to be only 29.58% accurate 26 NAVAL AND MILITARY BOOKS. ENGINEERS' DEPARTMENT— REGULATIONS for the KOYAL ENGINEERS' DEPARTMENT. 3s. FIELD ENGINEERING-MANUAL OF ELEMENTARY FIELD ENGINEERING. Published by Authority. Pocket edition, Is. 6c?. FIELD EXERCISE and EVOLUTIONS of INFANTRY, as Eevised by Her Majesty's Command, 1877. Pocket Edition. Is. FIELD MESSAGE BOOK. Approved by the War Office Authorities. A Pocket Memorandum Book for the use of Commanding Officers; so arranged that by writing the message or order in the usual way, an exact copy of each message is made, and retained in the book for subsequent reference if required. Envelopes, printed with the hour of despatch, &c, are included; the book has also a pocket, and place for pencil. Limp roan, elastic band, 3s. FIELD RANGE -FINDER. -HANDBOOK for. Mark I. Koyal 8vo, paper cover. 6d. FORTIFICATION AND MILITARY ENGINEERING.TEXT-BOOK of FORTIFICATION and MILITARY ENGINEERING for use at the Royal Military Academy, Woolwich. Part I. Royal 8vo, 13s. Gd. FRANCO-GERMAN WAR, 1870- 71. Authorized Translation. First Part: History of the War to the Downfall of the Empire. Translated from the German Official Account by Capt. F. C. H. Clarke, R.A. Vol. I. Sections 1 to 5. From the Outbreak of Hostilities to the Battle of Gravelotte. With case of Maps and Plans. Royal 8vo, cloth, 26s. Vol. II. Sections 6 to 9. With Maps and Plans. Royal 8vo, cloth, 22s. This work may also be had in separate sections if required. Second Part:— HISTORY OF THE WAR AGAINST THE REPUBLIC. Tenth Section : Investment of Paris ; Capture of Toul and Strassburg. Royal 8vo, paper cover, 6s. Eleventh Section : Events before Paris, and in Western France, until October. Royal 8vo, 5s. 3d. THE SIEGE OPERATIONS IN THE CAMPAIGN AGAINST FRANCE, 1870-71. Royal 8vo, 4s. 6d. GERMAN EMPIRE.- THE ARMED STRENGTH OF THE GERMAN EMPIRE. Part I. Organization and Administration. With Map. Royal 8vo, paper cover, 8s. 6c?. GUN-HANDBOOK for the 64-POUNDER R.M.L. Converted Guns of 58 and 71 cwts. L. S. 1877. Royal 8vo, Gd. HANDBOOK for
  • 53. the 40-POUNDER R.B.L. Gun. 6d. HANDBOOK for 16-POUNDER R.M.L. Gun of 12 cwt. 6d. HANDBOOK for 9-POUNDER R.M.L. Guns. Gd. HANDBOOK for the 10-Inch R.M.L. Gun of 18 tons. Gd. HANDBOOK for the 9-Inch R.M.L. Gun of 12 tons. 6d. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
  • 54. NAVAL AND MILITARY BOOKS. 27 GUN COTTON. -SHORT NOTES ON GUN COTTON AND ITS MANUFACTURE. Prepared for the Use of the Gentlemen Cadets at the Royal Military Academy, Woolwich. And SHORT NOTES ON GUNPOWDER AND ITS MANUFACTURE. Crown 8vo, paper cover, Is. GUNNERY-MANUAL of GUNNERY for HER MAJESTY'S FLEET. 1877. Pocket Edition. 2s. GUNPOWDER -HANDBOOK of the MANUFACTURE and PROOF of GUNPOWDER. Royal 8vo, 5s. GYMNASTIC EXERCISES. - MILITARY SYSTEM of GYMNASTIC EXERCISES, with Fencing and Club Exercises. 2s. HISTORICAL RECORDS of the BRITISH ARMY, viz. :Horse Guards. 5s. Dragoon Guards, 2nd, 3rd, 4th, 5th, 6th, and 7th. Each 4s. Dragoons, 1st, 2nd, 3rd, 6th, 7th, 14th, 15th, and 16th. Each 4s. „ 9th, 12th, and 13th. Each 3s. „ 10th. 6s. 17th Lancers. 5s. Foot, 1st and 3rd. Each 6s. „ 2nd, 4th, 5th, 6th, 7th, 8th, 9th, 10th, 11th, 12th, 13th, 15th, 16th, 17th, 18th, 19th, 20th, 21st, 22nd, 23rd, 31st (including the Marine Corps), 34th, 36th, 39th, 46th, 53rd, 67th, 71st, 72nd, 73rd, 74th, 86th, 87th, and 92nd (Highlanders). Each 4s. „ 14th, 56th, 61st, 70th, and 88th. Each 3s. „ 42nd (Highlanders). 8s. Cape Mounted Riflemen. 2s. All the above Historical Records in sheets at a reduction of 6d. per copy. INFANTRY ETJGLE SOUNDS. 6>d. SWORD EXERCISE. 6d. MARTINI - HENRY RIFLE. - MANUAL and FIRING EXERCISES, December, 1874. 3d. MILITARY ARTIFICERS-HANDBOOK for MILITARY ARTIFICERS, prepared in the Instruction Branch of the Royal Carriage Department. Pocket Edition, red leather, 3s. MILITARY CARRIAGES and other Manufactures of the Royal Carriage Department. Second edition. Royal 8vo, 5s. MILITARY ENGINEERING-INSTRUCTIONS in MILITARY ENGINEERING. Compiled at the School of Military Engineering, Chatham. Vol. I. Part I. FIELD DEFENCES. Demy 8vo, 3s. 6d. Part III. MILITARY P>RIDGES. Demy 8vo, 3s. Part IV. MILITARY MINING. Demy 8vo, Is. 6d. MILITARY EXAMINATIONS.- WOOLWICH.-EXAMINATION PAPERS bet at the open Competition for Admission to the Royal Military Academy, Woolwich, held under the Directions of the Civil Service Commissioners in March, 1878.
  • 55. Together with Regulations and Tahles of Marks. Royal 8vo, paper cover, 9d. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
  • 56. 28 NAVAL AND MILITARY BOOKS. MILITARY EXAMINATIONS. - SANDHURST.- EXAMINATION PAPERS set at the Open Competition for Admission to the Royal Military College, and for First Appointments to the Royal Marine Light Infantry, held under the directions of the Civil Service Commissioners in November and December, 1877. With Regulations and Table of Marks. Royal 8vo, 9d. STAFF COLLEGE — EEPOET on the FINAL EXAMINATION at the STAFF COLLEGE, held in December, 1877. With Copies of the Examination Papers. Demy 8vo, Is. MILITIA ORDERS, 1878. Royal 8vo, 6d. MUSKETRY INSTRUCTION-REGULATIONS for CONDUCTING the MUSKETRY INSTRUCTION of the ARMY. Crown 8vo, cloth, Is. THE ANNUAL REPORT, 1877. Royal 8vo, 2s. NAVAL GUNS. -NOTES ON NAVAL GUNS, THEIR STORES AND FITTINGS.— Demy 8vo, cloth, 2s. 6d. NETHERLANDS. -THE ARMED STRENGTH OF THE NETHERLANDS. By Captain F. C. H. Claeke, R.A., D.A.Q.M.G. "With Map. Royal 8vo, paper cover, 4s. ORDNANCE MANUFACTURE. — TREATISE ON THE CONSTRUCTION AND MANUFACTURE OF ORDNANCE IN THE BRITISH SERVICE. Prepared in the Royal Gun Factory. Printed by Order of the Secretary of State for War. With Illustrations and Diagrams. Royal 8vo, cloth, 18s. Abridged Edition, Royal 8vo, cloth, 6s. PRUSSIAN INFANTRY.-ELEMENTARY TACTICS. 2s. QUEEN'S REGULATIONS and ADMIRALTY INSTRUCTIONS. Crown 8vo, cloth, Is. 9d. (The Addenda is out of print.) QUEEN'S REGULATIONS and ORDERS for the ARMY. (January, 1874.) Royal 8vo, 3s. 6d. Pocket Edition. Is. REVISED ARMY REGULATIONS. - Vol. III. ROYAL WARRANT AND REGULATIONS FOR THE EQUIPMENT OF HER MAJESTY'S ARMY (serving elsewhere than in the Indian Empire), including the Armaments of Works; to which is added an Appendix. War Office, September 1, 1876. Royal 8vo, cloth, 5s. 6d REVISED ARMY REGULATIONS -Vol. IV. REGULATIONS FOR THE COMMISSARIAT AND ORDNANCE STORE DEPARTMENTS. Duties of the Departments. Royal 8vo, cloth, 2s. ; or separate, I. Commissariat, Is. 6d. II. Ordnance Store Department, Is. Gd. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
  • 57. NAVAL AND MILITARY BOOKS. 29 RIFLE EXERCISES for LONG and SHORT SNIDER EIFLE, and MUSKETRY INSTRUCTIONS. Pocket Edition. Is. RIFLE and FIELD EXERCISES and MUSKETRY INSTRUCTION for HER MAJESTY'S FLEET. Pocket Edition, blue leather, Is. Gd. RUSSIA.-ARMED STRENGTH of RUSSIA. Royal 8vo, 7s. SAPPERS' MANUAL for ENGINEER VOLUNTEER CORPS. Pocket Edition. 2s. SNIDER RIFLE -LONG and SHORT. REVISED FIRING EXERCISES. December, 1873. Id STATUTE LAW RELATING TO THE ARMY. Arranged by Charles M. Clode, Legal Secretary to the War Department. Royal 8vo, paper cover, Is. 3d. STEPPE CAMPAIGNS. A Series of Lectures. Royal 8vo, 2s. SWEDEN AND NORWAY. The ARMED STRENGTH of SWEDEN and NORWAY. Royal 8vo, 3s. Gd. TACTICAL STUDIES OF THE BATTLES OF COLUMBEYNOUILLY AND VIONVILLE. Compiled and arranged from the Official Accounts by Major Lonsdale A. Hale, R.E., Instructor in Military Law and History, School of Military Engineering, Chatham. With Maps. Royal 8vo, paper cover, 4s. Gd. TEXTBOOK ON THE THEORY OF THE MOTION OF PROJECTILES. By Authority. Revised March 1877. With Illustrations. Crown 8vo, cloth, Is. 6d. TRAINING of TROOPS for SERVICE in the FIELD, &c. Regulations (Translated from the German). Royal 8vo, 2s. TRUMPET and BUGLE SOUNDS for MOUNTED SERVICE and GARRISON ARTILLERY. Is. Gd. USEFUL TABLES. Compiled by Capt. W. H. Noble, R.A. 6d. VOCABULARY of STORES used in H.M. Service. 4s. VOLUNTEER REGULATIONS, 1878- REVISED ARMY REGULATIONS, Vol. IX., being Regulations for the Volunteer Force. Royal 8vo, cloth, 2s. Gd. WAR GAME. -RULES for the CONDUCT of the WAR GAME. Royal 8vo, 2s. The Set of 15 Maps, mounted and coloured, price 6/. The Set of Men, &c, in Box, 6/. Gs. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
  • 58. 30 ORDNANCE SURVEY PUBLICATIONS. drtmanw Buxhq ^nhlhutism. ASTRONOMICAL OBSERVATIONS made with Bamsden's Zenith Sector; together with a Catalogue of the Stars which have heen observed, and the Amplitude of the Celestial Arcs, deduced from the Observations at the different Stations. 4to, sewed, 7s. 6d. ASTRONOMICAL OBSERVATIONS made with Airey's Zenith Sector, 1842 to 1850. Completed by Captain W. Yolland, K.E. 20s. DOMESDAY BOOK; or, The Great Survey of England by William the Conqueror, a.d. 1086. Facsimile of Domesday Book, reproduced by the Photozincographic Process, under the direction of Major-Genera] Sir H. James, K.E., F.K.S., by Her Majesty's Command. The following parts are already published, in imperial 4to, cloth, viz. : — In Great Domesday Book. Bedfordshire .. .. price Berkshire ,, Buckingham .. .. „ Cambridge .. .. ,, Cheshire and Lancashire „ Cornwall ,, Derbyshire .. .. „ Devonshire .. .. „ Dorsetshire .. .. „ Gloucestershire . . „ Hampshire .. .. „ Herefordshire .. .. „ Hertfordshire .. .. „ Huntingdon .. .. „ Kent „ Lancashire (see Cheshire and Lancashire) .. ,, s. d. 8 0 8 0 8 0 10 0 8 0 8 0 8 0 10 0 8 0 8 0 10 0 8 0 10 0 8 0 8 0 8 0 Leicestershire and Kutland price Lincolnshire .. .. „ Middlesex „ Nottinghamshire . . „ Northamptonshire . . „ Oxfordshire .. .. „ Kutlandshire (bound with Leicestershire) . . „ Shropshire .. .. „ Somersetshire .. .. „ Staffordshire .. .. „ Surrey „ Sussex ,, Warwickshire .. .. „ Wiltshire „ Worcestershire . . . . „ Yorkshire „ s. d. 8 0 21 0 8 0 10 0 •8 0 8 0 8 0 8 0 10 0 8- 0 8 0 10 0 8 0 10 0 8 0 21 0 In Little Domesday Book. Essex, price 16s.— Norfolk, 23s.— Suffolk, 22s. Price of an entire Set (as above), 171. 3s. Domesday Book complete, bound in 2 volumes, price 20/. GEODETICAL TABLES. 1 vol. thin 4to, price 2s. EDWARD STANFORD, 55, CHARING CROSS, S.W.,
  • 59. ORDNANCE SURVEY PUBLICATIONS. 31 JERUSALEM. - ORDNANCE SURVEY of JERUSALEM, With Notes by Captain Wilson, R.E. Produced at the Ordnance Survey Office, Southampton, under the superintendence of Major-General Sir Henry James, R.E., F.R.S., Director. The Survey is sold complete for Twelve Guineas, or in Divisions, as follows : — £ s. d. The Plans Mounted, and in a Portfolio .. .. 2 18 0 Vol. I. Containing Captain Wilson's Notes on Jerusalem, and Illustrative Diagrams .. .. .. 2 0 0 Vol. II. Containing the Photographs taken in and about the City 7 14 0 Total £12 12 0 The Plans, Diagrams, and Photographs are sold separately. Detailed List, with Prices, post free for two Penny Stamps. LENGTH - COMPARISONS of the STANDARDS of LENGTH of England, France, Belgium, Prussia, Russia, India, Australia, made at the Ordnance Survey Office, Southampton, by Captain A. E. Clarke, E.E., F.R.S., under the direction of Major-General Sir Henry James, R.E., F.R.S., &c, Cor. Mem. of the Royal Geographical Society of Berlin, Director of the Ordnance Survey. Published by Order of the Secretary of State for War. 1 vol. 4to, 287 pp. and plates. Price 15s. LOUGH FOYLE BASE.-An ACCOUNT of the MEASUREMENTS of the LOUGH FOYLE BASE. By Captain W. Yolland, R.E. 4to, cloth, 20s. MAGNA CARTA.— King John, a.d. 1215. Facsimile of Magna Carta ; Photozincographed at the Ordnance Survey Office, Southampton, under the superintendence of Captain Parsons, R.E., F.R.A.S. Price Is. 6d., with the Translation. MARGINAL LINES.-On the CONSTRUCTION and USE of the SIX SHEETS of MARGINAL LINES for MAPS of any part of the WORLD. Price Is. *,,* The Six Sheets of Marginal Lines are published, price 6s. METEOROLOGICAL OBSERVATIONS, TABLES for. Published separately, in 1 vol. royal 8vo, price 2s. 6d. DITTO taken at the Stations of the Royal Engineers in the Years 1853 to 1859. 1 vol. 4 to, price 10s. 6d. METEOROLOGICAL OBSERVATIONS, taken at the Stations of the Royal Engineers, 1853-4. 1 vol. 4to, price 2s. 6*7. DITTO taken at Dublin. 1 vol. 4to, price 5s. DITTO taken at the Royal Engineers' Office, New Westminster, British Columbia, in 18G0-1. Price Is. WHOLESALE AND RETAIL BOOK AND MAP SELLER.
  • 60. 32 ORDNANCE SURVEY PUBLICATIONS. NATIONAL MANUSCRIPTS of ENGLAND. A Series of PHOTOZINCOGKAPHIC FACSIMILES of some of the most interesting of our National MSS., copied by order of Her Majesty's Government, by Major-General Sir Henry James, R.E., F.R.S., Director of the Ordnance Survey ; with Translations and Introductory Notes by "W. Basevi Sanders, Esq., Assistant Keeper of Her Majesty's Records. This series, consisting of Royal Charters and Grants, and the Letters of Royal and Eminent or Remarkable Persons, has been selected under the direction of the Right Hon. Sir John Romilly, Master of the Rolls, by Thomas Dtjffus Hardy, Esq., Deputy Keeper of Her Majesty's Records ; and includes some of the most remarkable Original Documents deposited in Her Majesty's Record Office, together with a few from other repositories, including the most perfect Original Copy of Magna Carta now extant. In Four Parts, price 16s. each. SCOTLAND. — Photozincographic Facsimiles of National Manuscripts of Scotland. Part III. Price 21s. Parts I. and II. are out of print. IRELAND. — Photozincographic Facsimiles of National Manuscripts of Ireland. Part I. 21. 2s. NETLEY abbey, photozincographed views of. Sixteen Photographic Views, &c, of Netley Abbey, including illustrated Title Page and Plan of the Abbey. Photozincographed at the Ordnance Survey Office, Southampton. Major-General Sir Henry James, R.E., F.R.S. (Director). In a neat portfolio, 25s. ORDNANCE SURVEY— Account of the Methods and Processes adopted for the production of the Maps of the Ordnance Survey of the United Kingdom ; drawn up by Officers of Royal Engineers employed under Lieut.-General Sir Henry James, R.E., F.R.S. , &c, Director-General. Royal 4to, cloth, illustrated, 14s. ORDNANCE TRIGONOMETRICAL SURVEY of the UNITED KINGDOM. In Four Volumes, royal 4to, illustrated with numerous Plates, bound in cloth, 3/. 5s. The Account of this Survey is now complete, and may be had as above, or in separate volumes as under : — I. THE PRINCIPAL TRIANGULATION of the UNITED KINGDOM, with the Figure, Dimensions, and Mean Specific Gravity of the Earth as derived therefrom. With Plates, 1/. 15s. APPENDIX TO DITTO.— Determination of the Positions of Feaghmain and Haverfordwest,
  • 61. Welcome to our website – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! ebookname.com