Java消息服务(第二版影印版)

Java消息服务(第二版影印版)
作 者: 布朗
出版社: 东南大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: J2EE
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  布朗(Mark Richards),一位实践经验丰富的设计师,也是一位在消息传递、系统集成和面向服务的架构方面有领导地位的专家和作家。Richard Monson-Haefel,O’Reilly 出版的《Enterprise JavaBeans》和《Java消息服务》第一版的合著者,是企业计算方面的世界级专家。David A. Chappell,Oracle公司副总裁兼SOA首席技术专家,是《Java Web Services》和《Java消息服务》第一版(均为O’Reilly出版)的合著者。

内容简介

《Java消息服务》第二版,是对标准API的一个彻底详尽的介绍——它支持消息传递,即网络计算机间的关键数据从软件到软件的交换。你将学习到JMS如何帮助你解决许多架构难题,如整合不同的系统和应用程序,增加可扩展性,消除系统瓶颈,支持并行处理,提升灵活性和敏捷性。由于更新了JMS 1.1,第二版还说明了厂商无关的规范将有助于你写基于messaging的应用程序,无论是使用IBM的MQ、Progress软件的SonicMQ、ActiveMQ的,还是其他专有的消息服务。有了《Java消息服务》,你将可以:· 使用点对点和出版与订阅消息传递模型建立应用程序· 使用如事务和持久订阅功能,以使应用程序可靠· 使用消息驱动的beans在Enterprise JavaBeans(EJB)中实现消息传递· 使用JMS时结合RESTful应用程序和Spring应用程序框架消息传递是一个强大的范例,可以更容易地使企业应用程序的不同部分分离。《Java消息服务》第二版将迅速教会你如何运用其背后的关键技术。

图书目录

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