Java Message Service

  • ISBN13:


  • ISBN10:


  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2009-06-01
  • Publisher: Oreilly & Associates Inc

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $39.99 Save up to $10.00
  • Buy Used


Supplemental Materials

What is included with this book?


This book is a thorough introduction to Java Message Service (JMS), the standard API that supports "messaging" -- the software-to-software exchange of crucial data among network computers. Messaging is a key component of today's service-oriented architectures, and with this practical guide, you'll learn how JMS can help you solve many architectural challenges, such as integrating dissimilar systems and applications, increasing scalability, eliminating system bottlenecks, supporting concurrent processing, and promoting architectural flexibility and agility. Updated for JMS 1.1, the second edition of Java Message Service also explains how this vendor-agnostic specification will help you write messaging-based applications, using IBM's MQ, Progress Software's SonicMQ, ActiveMQ, and many other proprietary messaging services. With this book, you will:Build applications using point-to-point and publish-and-subscribe messaging models Use features such as transactions and durable subscriptions to make an application reliable Implement messaging within Enterprise JavaBeans (EJB), using Message Driven Beans Use JMS with RESTful applications, and with the Spring application frameworkMessaging is a powerful paradigm that makes it easier to uncouple different parts of an enterprise application . Java Message Service will quickly teach you how to use the key technology that lies behind it.

Author Biography

Mark Richards, Director and Sr. Technical Architect at Collaborative Consulting, LLC, is a leading authority on messaging, transaction management, systems integration, and Service Oriented Architecture. He is the author of "Java Transaction Design Strategies", contributing author of "97 Things Every Software Architect Should Know", "NFJS Anthology Volume 1", "NFJS Anthology Volume 2", and the author of numerous transaction, JMS, and SOA-related articles. Mark is a regular conference speaker on the No Fluff Just Stuff conference tour and has spoken at other conferences around the world, including QCon, TSSJS, and SYS-CON.

Richard Monson-Haefel is the author of Enterprise JavaBeans (Editions 1 - 5), Java Message Service and one of the world's leading experts and book authors on enterprise computing. He was the lead architect of OpenEJB, an open source EJB container used in Apache Geronimo, a member of the JCP Executive Committee, member of JCP EJB expert groups, and an industry analyst for Burton Group researching enterprise computing, open source, and Rich Internet Application (RIA) development. Today, Richard is the VP of Developer Relations for Curl, Inc. a RIA platform used in enterprise computing. You can learn more about Richard at his web site Monson-Haefel.

David A. Chappell is vice president and chief technologist for SOA at Oracle Corporation. Chappell has over 20 years of experience in the software industry covering a broad range of roles including Architecture, code-slinging, sales, support and marketing. He is well known worldwide for his writings and public lectures on the subjects of Service Oriented Architecture (SOA), the enterprise service bus (ESB), message oriented middleware (MOM), enterprise integration, and is a co-author of many advanced Web Services standards.

As author of the O'Reilly Enterprise Service Bus book, Dave has had tremendous impact on redefining the shape and definition of SOA infrastructure. He has extensive experience in distributed computing infrastructure, including ESB, SOA Governance, EJB and Web application server infrastructure, JMS and MOM, EAI, CORBA, and COM. Chappell's experience also includes development of client/server infrastructure, graphical user interfaces and language interpreters.

Chappell is also well noted for authoring Java Web Services (O'Reilly), Professional ebXML Foundations (Wrox) and Java Message Service (O'Reilly). In addition, he has written numerous articles in leading industry publications, such as Business Integration Journal, Enterprise Architect, Java Developers Journal, JavaPro, Web Services Journal, XML Journal and Network World.

Chappell and his works have received many industry awards including the "Java™ Technology Achievement Award" from JavaPro magazine for "Outstanding Individual Contribution to the Java Community" in 2002, and the 2005 CRN Magazine "Top 10 IT leaders" award for "casting larger-than-life shadow over the industry".

Table of Contents

Forewordp. xi
Prefacep. xiii
Messaging Basicsp. 1
The Advantages of Messagingp. 3
Heterogeneous Integrationp. 3
Reduce System Bottlenecksp. 3
Increase Scalabilityp. 4
Increase End User Productivityp. 4
Architecture Flexibility and Agilityp. 5
Enterprise Messagingp. 5
Centralized Architecturesp. 7
Decentralized Architecturesp. 7
Hybrid Architecturesp. 8
Centralized Architecture As a Modelp. 8
Messaging Modelsp. 9
Point-to-Pointp. 10
Publish-and-Subscribep. 10
JMS APIp. 11
Point-to-Point APIp. 13
Publish-and-Subscribe APIp. 14
Real-World Scenariosp. 14
Service-Oriented Architecturep. 15
Event-Driven Architecturep. 16
Heterogeneous Platform Integrationp. 16
Enterprise Application Integrationp. 17
Business-to-Businessp. 17
Geographic Dispersionp. 18
Information Broadcastingp. 18
Building Dynamic Systemsp. 18
RPC Versus Asynchronous Messagingp. 21
Tightly Coupled RPCp. 21
Enterprise Messagingp. 23
Developing a Simple Examplep. 25
The Chat Applicationp. 25
Getting Started with the Chat Examplep. 28
Examining the Source Codep. 30
Sessions and Threadingp. 39
Anatomy of a JMS Messagep. 41
Headersp. 42
Automatically Assigned Headersp. 43
Developer-Assigned Headersp. 46
Propertiesp. 47
Application-Specific Propertiesp. 47
JMS-Defined Propertiesp. 49
Provider-Specific Propertiesp. 50
Message Typesp. 50
Messagep. 50
TextMessagep. 51
ObjectMessagep. 52
BytesMessagep. 53
StreamMessagep. 56
MapMessagep. 58
Read-Only Messagesp. 60
Client-Acknowledged Messagesp. 61
Interoperability and Portability of Messagesp. 61
Point-to-Point Messagingp. 63
Point-to-Point Overviewp. 63
When to Use Point-to-Point Messagingp. 66
The QBorrower and QLender Applicationp. 67
Configuring and Running the Applicationp. 67
The QBorrower Classp. 69
The QLender Classp. 76
Message Correlationp. 81
Dynamic Versus Administered Queuesp. 83
Load Balancing Using Multiple Receiversp. 84
Examining a Queuep. 85
Publish-and-Subscribe Messagingp. 87
Publish-and-Subscribe Overviewp. 87
When to Use Publish-and-Subscribe Messagingp. 89
The TBorrower and TLender Applicationp. 90
Configuring and Running the Applicationp. 90
The TLender Classp. 92
The TBorrower Classp. 96
Durable Versus Nondurable Subscribersp. 100
Dynamic Versus Administered Subscribersp. 101
Unsubscribing Dynamic Durable Subscribersp. 104
Temporary Topicsp. 104
Message Filteringp. 107
Message Selectorsp. 109
Identifiersp. 110
Literalsp. 111
Comparison Operatorsp. 111
Arithmetic Operatorsp. 113
Declaring a Message Selectorp. 114
Message Selector Examplesp. 116
Managing Claims in an HMOp. 116
Notification of Certain Bids on Inventoryp. 116
Priority Handlingp. 116
Stock Trade Order Auditingp. 117
Not Delivered Semanticsp. 117
Design Considerationsp. 118
Guaranteed Messaging and Transactionsp. 125
Guaranteed Messagingp. 125
Message Autonomyp. 126
Store-and-Forward Messagingp. 126
Message Acknowledgments and Failure Conditionsp. 126
Message Acknowledgmentsp. 127
Message Groups and Acknowledgmentp. 133
Handling Redelivery of Messages in an Applicationp. 134
Message Groups Examplep. 134
Message Grouping and Multiple Receiversp. 143
Transacted Messagesp. 145
Creating and Using a JMS Transactionp. 147
Transacted Session Examplep. 147
Distributed Transactionsp. 150
Lost Connectionsp. 151
The ExceptionListener Examplep. 152
Dead Message Queuesp. 153
Java EE and Message-Driven Beansp. 155
Java EE Overviewp. 155
Enterprise JavaBeansp. 156
Enterprise JavaBeans 3.0 (EJB3) Overviewp. 157
Simplified Bean Developmentp. 158
Dependency Injectionp. 158
Simplified Callback Methodsp. 159
Programmatic Defaultsp. 159
Interceptorsp. 160
Java Persistence APIp. 162
JMS Resources in Java EEp. 162
The JNDI Environment Naming Context (ENC)p. 164
Message-Driven Beansp. 166
Concurrent Processing and Scalabilityp. 168
Defining Message-Driven Beansp. 168
Message-Driven Bean Use Casesp. 171
Message Facadep. 171
Transformation and Routingp. 173
Spring and JMSp. 177
Spring Messaging Architecturep. 177
JmsTemplate Overviewp. 180
Send Methodsp. 181
convertAndSend Methodsp. 181
receive and receiveSelected Methodsp. 182
receiveAndConvert Methodsp. 183
Connection Factories and JMS Destinationsp. 184
Using JNDIp. 184
Using Native Classesp. 187
Sending Messagesp. 189
Using the send Methodp. 190
Using the convertAndSend Methodp. 191
Using a Nondefault JMS Destinationp. 193
Receiving Messages Synchronouslyp. 195
Message-Driven POJOsp. 198
The Spring Message Listener Containerp. 198
MDP Option 1: Using the MessageListener Interfacep. 199
MDP Option 2: Using the SessionAwareMessageListener Interfacep. 201
MDP Option 3: Using the MessageListenerAdapterp. 202
Message Conversion Limitationsp. 207
The Spring JMS Namespacep. 208
Element Propertiesp. 209
Element Propertiesp. 211
Deployment Considerationsp. 213
Performance, Scalability, and Reliabilityp. 213
Determining Message Throughput Requirementsp. 213
Testing the Real-World Scenariop. 214
To Multicast or Not to Multicastp. 217
TCP/IPp. 218
UDPp. 218
IP Multicastp. 218
Messaging Over IP Multicastp. 219
The Bottom Linep. 221
Securityp. 222
Authenticationp. 222
Authorizationp. 223
Secure Communicationp. 224
Firewalls and HTTP Tunnelingp. 224
Connecting to the Outside Worldp. 225
Bridging to Other Messaging Systemsp. 227
Messaging Design Considerationsp. 229
Internal Versus External Destinationp. 229
Internal Destination Topologyp. 230
External Destination Topologyp. 231
Request/Reply Messaging Designp. 232
Messaging Design Anti-Patternsp. 236
Single-Purpose Queuep. 236
Message Priority Overusep. 240
Message Header Misusep. 240
The Java Message Service APIp. 245
Message Headersp. 265
Message Propertiesp. 277
Installing and Configuring ActiveMQp. 285
Indexp. 291
Table of Contents provided by Ingram. All Rights Reserved.

Rewards Program

Write a Review