Skip to content

Java Message Service Creating Distributed Enterprise Applications

Best in textbook rentals since 2012!

ISBN-10: 0596522045

ISBN-13: 9780596522049

Edition: 2nd 2009

Authors: Mark Richards, Richard Monson-Haefel, David A. Chappell, M. Richards, M. Richards

List price: $49.99
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Customers also bought

Book details

List price: $49.99
Edition: 2nd
Copyright year: 2009
Publisher: O'Reilly Media, Incorporated
Publication date: 6/7/2009
Binding: Paperback
Pages: 328
Size: 7.13" wide x 9.13" long x 0.71" tall
Weight: 1.210
Language: English

In 1980 Mark Richards began his three-part guide to the Peak District for Cicerone Press, and in 1987, with Chris Wright, wrote a guide to walking around the former county of Westmorland. He now lives in Cumbria and, after 14 years' dedicated research, has completed his series of Lakeland Fellranger guides covering the entire region. He has also written a guide to Hadrian's Wall.

Richard Monson-Haefel is the author of Enterprise JavaBeans, 3rd Edition, Java Message Service and one of the world's leading experts and book authors on Enterprise Java. He is the lead architect of OpenEJB, an open source EJB container used in Apple Computer's WebObjects plateform, and has consulted as an architect on J2EE, CORBA, Java RMI and other distributed computing projects over the past several years.

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…    

Foreword
Preface
Messaging Basics
The Advantages of Messaging
Heterogeneous Integration
Reduce System Bottlenecks
Increase Scalability
Increase End User Productivity
Architecture Flexibility and Agility
Enterprise Messaging
Centralized Architectures
Decentralized Architectures
Hybrid Architectures
Centralized Architecture As a Model
Messaging Models
Point-to-Point
Publish-and-Subscribe
JMS API
Point-to-Point API
Publish-and-Subscribe API
Real-World Scenarios
Service-Oriented Architecture
Event-Driven Architecture
Heterogeneous Platform Integration
Enterprise Application Integration
Business-to-Business
Geographic Dispersion
Information Broadcasting
Building Dynamic Systems
RPC Versus Asynchronous Messaging
Tightly Coupled RPC
Enterprise Messaging
Developing a Simple Example
The Chat Application
Getting Started with the Chat Example
Examining the Source Code
Sessions and Threading
Anatomy of a JMS Message
Headers
Automatically Assigned Headers
Developer-Assigned Headers
Properties
Application-Specific Properties
JMS-Defined Properties
Provider-Specific Properties
Message Types
Message
TextMessage
ObjectMessage
BytesMessage
StreamMessage
MapMessage
Read-Only Messages
Client-Acknowledged Messages
Interoperability and Portability of Messages
Point-to-Point Messaging
Point-to-Point Overview
When to Use Point-to-Point Messaging
The QBorrower and QLender Application
Configuring and Running the Application
The QBorrower Class
The QLender Class
Message Correlation
Dynamic Versus Administered Queues
Load Balancing Using Multiple Receivers
Examining a Queue
Publish-and-Subscribe Messaging
Publish-and-Subscribe Overview
When to Use Publish-and-Subscribe Messaging
The TBorrower and TLender Application
Configuring and Running the Application
The TLender Class
The TBorrower Class
Durable Versus Nondurable Subscribers
Dynamic Versus Administered Subscribers
Unsubscribing Dynamic Durable Subscribers
Temporary Topics
Message Filtering
Message Selectors
Identifiers
Literals
Comparison Operators
Arithmetic Operators
Declaring a Message Selector
Message Selector Examples
Managing Claims in an HMO
Notification of Certain Bids on Inventory
Priority Handling
Stock Trade Order Auditing
Not Delivered Semantics
Design Considerations
Guaranteed Messaging and Transactions
Guaranteed Messaging
Message Autonomy
Store-and-Forward Messaging
Message Acknowledgments and Failure Conditions
Message Acknowledgments
AUTO_ACKNOWLEDGE
DUPS_OK_ACKNOWLEDGE
CLIENT_ACKNOWLEDGE
Message Groups and Acknowledgment
Handling Redelivery of Messages in an Application
Message Groups Example
Message Grouping and Multiple Receivers
Transacted Messages
Creating and Using a JMS Transaction
Transacted Session Example
Distributed Transactions
Lost Connections
The ExceptionListener Example
Dead Message Queues
Java EE and Message-Driven Beans
Java EE Overview
Enterprise JavaBeans
Enterprise JavaBeans 3.0 (EJB3) Overview
Simplified Bean Development
Dependency Injection
Simplified Callback Methods
Programmatic Defaults
Interceptors
Java Persistence API
JMS Resources in Java EE
The JNDI Environment Naming Context (ENC)
Message-Driven Beans
Concurrent Processing and Scalability
Defining Message-Driven Beans
Message-Driven Bean Use Cases
Message Facade
Transformation and Routing
Spring and JMS
Spring Messaging Architecture
JmsTemplate Overview
Send Methods
convertAndSend Methods
receive and receiveSelected Methods
receiveAndConvert Methods
Connection Factories and JMS Destinations
Using JNDI
Using Native Classes
Sending Messages
Using the send Method
Using the convertAndSend Method
Using a Nondefault JMS Destination
Receiving Messages Synchronously
Message-Driven POJOs
The Spring Message Listener Container
MDP Option 1: Using the MessageListener Interface
MDP Option 2: Using the SessionAwareMessageListener Interface
MDP Option 3: Using the MessageListenerAdapter
Message Conversion Limitations
The Spring JMS Namespace
<jms:listener-container> Element Properties
<jms:listener> Element Properties
Deployment Considerations
Performance, Scalability, and Reliability
Determining Message Throughput Requirements
Testing the Real-World Scenario
To Multicast or Not to Multicast
TCP/IP
UDP
IP Multicast
Messaging Over IP Multicast
The Bottom Line
Security
Authentication
Authorization
Secure Communication
Firewalls and HTTP Tunneling
Connecting to the Outside World
Bridging to Other Messaging Systems
Messaging Design Considerations
Internal Versus External Destination
Internal Destination Topology
External Destination Topology
Request/Reply Messaging Design
Messaging Design Anti-Patterns
Single-Purpose Queue
Message Priority Overuse
Message Header Misuse
The Java Message Service API
Message Headers
Message Properties
Installing and Configuring ActiveMQ
Index