书籍详情
Java消息服务(第二版影印版)
作者:(美)布朗 等著
出版社:东南大学出版社
出版时间:2010-01-01
ISBN:9787564119300
定价:¥48.00
购买这本书可以去
内容简介
《Java消息服务》第二版,是对标准API的一个彻底详尽的介绍——它支持消息传递,即网络计算机间的关键数据从软件到软件的交换。你将学习到JMS如何帮助你解决许多架构难题,如整合不同的系统和应用程序,增加可扩展性,消除系统瓶颈,支持并行处理,提升灵活性和敏捷性。由于更新了JMS 1.1,第二版还说明了厂商无关的规范将有助于你写基于messaging的应用程序,无论是使用IBM的MQ、Progress软件的SonicMQ、ActiveMQ的,还是其他专有的消息服务。有了《Java消息服务》,你将可以:· 使用点对点和出版与订阅消息传递模型建立应用程序· 使用如事务和持久订阅功能,以使应用程序可靠· 使用消息驱动的beans在Enterprise JavaBeans(EJB)中实现消息传递· 使用JMS时结合RESTful应用程序和Spring应用程序框架消息传递是一个强大的范例,可以更容易地使企业应用程序的不同部分分离。《Java消息服务》第二版将迅速教会你如何运用其背后的关键技术。
作者简介
布朗(Mark Richards),一位实践经验丰富的设计师,也是一位在消息传递、系统集成和面向服务的架构方面有领导地位的专家和作家。Richard Monson-Haefel,O’Reilly 出版的《Enterprise JavaBeans》和《Java消息服务》第一版的合著者,是企业计算方面的世界级专家。David A. Chappell,Oracle公司副总裁兼SOA首席技术专家,是《Java Web Services》和《Java消息服务》第一版(均为O’Reilly出版)的合著者。
目录
Foreword
Preface
1. 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
2. Developing a Simple Example
The Chat Application
Getting Started with the Chat Example
Examining the Source Code
Sessions and Threading
3. 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
4. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
A. The Java Message Service API
B. Message Headers
C. Message Properties
D. Installing and Configuring ActiveMQ
Index
Preface
1. 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
2. Developing a Simple Example
The Chat Application
Getting Started with the Chat Example
Examining the Source Code
Sessions and Threading
3. 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
4. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
A. The Java Message Service API
B. Message Headers
C. Message Properties
D. Installing and Configuring ActiveMQ
Index
猜您喜欢