J2EE Connector Architecture and Enterprise Application Integration

Overview

The Java™ 2 Enterprise Edition (J2EE) platform connector architecture is the key component in Java's support for enterprise application integration (EAI) and for linking enterprise information systems (EISs) with Web services. Because many services are now provided through the Web, it is essential that business enterprises have an efficient EAI solution. J2EE™ Connector Architecture and Enterprise Application Integration is the definitive guide to showing enterprise organizations how to incorporate existing ...

See more details below
Available through our Marketplace sellers.
Other sellers (Paperback)
  • All (14) from $1.99   
  • New (5) from $14.16   
  • Used (9) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$14.16
Seller since 2008

Feedback rating:

(169)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
0201775808 BRAND NEW NEVER USED IN STOCK 125,000+ HAPPY CUSTOMERS SHIP EVERY DAY WITH FREE TRACKING NUMBER

Ships from: fallbrook, CA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$31.57
Seller since 2008

Feedback rating:

(17455)

Condition: New
Brand New, Perfect Condition, Please allow 4-14 business days for delivery. 100% Money Back Guarantee, Over 1,000,000 customers served.

Ships from: Westminster, MD

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$31.58
Seller since 2007

Feedback rating:

(23296)

Condition: New
BRAND NEW

Ships from: Avenel, NJ

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
$50.00
Seller since 2010

Feedback rating:

(7)

Condition: New
12-14-01 other 1 BRAND NEW! ONLY Expedited orders are shipped with tracking number! *WE DO NOT SHIP TO PO BOX* Please allow up to 14 days delivery for order with standard ... shipping. SHIPPED FROM MULTIPLE LOCATIONS. Read more Show Less

Ships from: San Jose, CA

Usually ships in 1-2 business days

  • Canadian
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$56.56
Seller since 2013

Feedback rating:

(2)

Condition: New
New

Ships from: San Diego, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Close
Sort by
Sending request ...

Overview

The Java™ 2 Enterprise Edition (J2EE) platform connector architecture is the key component in Java's support for enterprise application integration (EAI) and for linking enterprise information systems (EISs) with Web services. Because many services are now provided through the Web, it is essential that business enterprises have an efficient EAI solution. J2EE™ Connector Architecture and Enterprise Application Integration is the definitive guide to showing enterprise organizations how to incorporate existing enterprise infrastructure and applications, taking them into the Web-enabled economy of the future.

Written for application component developers who are building Connector architecture applications, J2EE™ Connector Architecture and Enterprise Application Integration explains how to connect applications not only to one another but also to a multitude of EISs and legacy systems. This book is also of interest to independent software developers (ISVs) and others who develop resource adapters for specific EISs. Readers will learn how to link underlying infrastructure products with J2EE application server and platform technologies.

0201775808B11052001

Read More Show Less

Editorial Reviews

From The Critics
Both application developers and software product vendors will be the audience for this guide to the J2EE connector architecture and its use in building resource adapters and enterprise information systems. Readers will find information on the history of enterprise application integration (EAI), different approaches to integrating all the parts of an information infrastructure, an overview of J2EE connector architecture, various interfaces and their use, transaction concepts and applications, and applications to other EISs and legacy systems. Annotation c. Book News, Inc., Portland, OR (booknews.com)
Read More Show Less

Product Details

  • ISBN-13: 9780201775808
  • Publisher: Addison-Wesley
  • Publication date: 12/14/2001
  • Series: Addison-Wesley Java Series
  • Pages: 416
  • Product dimensions: 7.35 (w) x 9.30 (h) x 0.85 (d)

Meet the Author

Rahul Sharma is the lead architect of the J2EE Connector architecture and a Senior Staff Engineer at the Java Software division of Sun Microsystems, Inc. Presently, he is the lead architect of the JAX-RPC (Java APIs for XML based RPC) 1.0. Rahul has been with Sun for the last five years. Rahul holds a computer engineering degree from the Delhi University, India, and an MBA from the Haas School of Business, UC Berkeley.

Beth Stearns is the principal partner of ComputerEase Publishing, a computer consulting firm she founded in 1982. Among her publications are Java Native Interface in The Java Tutorial Continued (Addison-Wesley), “The EJB Programming Guide” for Inprise Corporation, and “ Understanding EDT, &#8221 a guide to Digital Equipment Corporation's text editor.

Tony Ng is a Staff Engineer with Sun Microsystems. He is currently the project lead of the J2EE SDK and Reference Implementation. He has designed and implemented a number of Java technologies, including the J2EE Connector Architecture, the Java Transaction Service, and the J2EE Blueprints. Tony has a B.S. degree in Computer Science from the University of Illinois, Urbana-Champaign, and a S.M. degree in Electrical Engineering and Computer Science from Massachusetts Institute of Technology.

0201775808AB09232002

Read More Show Less

Read an Excerpt

This book provides an in-depth coverage of the Java™ 2, Enterprise Edition (J2EE™) platform Connector architecture. The Connector architecture is an integral part of the J2EE platform, and, as a key component in the platform's support for application integration, it ensures that J2EE applications can connect to and use a multitude of EISs and legacy systems. The Connector architecture, because it defines a standard set of contracts for handling connections, transactions, and security, makes it easier for vendors to develop products that can hook into the J2EE platform. Vendors follow the guidelines of these Connector contracts to develop special software modules, called resource adapters, that enable this linkage between their underlying products and the J2EE platform.

This book is written for application component developers who are building applications that run on the J2EE platform. It is also of interest to independent software vendors (ISVs) and others who develop resource adapters for specific EISs, such as legacy and database systems.

Conventions Used in This Book

This book uses certain graphical conventions.

The graphical conventions used here are based on the Unified Modeling Language (UML) standard. UML is a modeling language for object-oriented development. In general, object-oriented modeling decomposes systems into collaborating objects. The resulting model captures the underlying semantics of a problem. UML defines different models for representing systems, and graphical diagrams to depict these models, including a class model, a state model, a use case model, an interaction model, an implementation model, and a deploymentmodel.

We only use a subset of the UML diagrams in this book. The diagrams of most interest to readers are the class diagrams, which depict static structure, and sequence, object, and collaboration diagrams, which depict dynamic object interactions.

Note that we use the terms application server, server, and J2EE application server interchangeably. Unless otherwise noted, these three terms all refer to a J2EE application server.

For those interested in more information about UML, we refer you to the following sources:

  • UML Distilled, Second Edition, Fowler, Scott, 2000, Addison-Wesley
  • Instant UML, Muller, 1997, Wrox Press Ltd.

Other Sources of Information

You should refer to other publications related to J2EE and to the J2EE Web site, http://java.sun.com/j2ee/. The following books, both online and in print, are of particular interest to those developing J2EE Connectors and other application components.

  • Java 2 Platform, Enterprise Edition Connector Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Java Message Service API, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Java™ 2 Standard Edition Platform (J2SE™), 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products.
  • Java™ Authentication and Authorization Service (JAAS) 1.0 Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products/jaas.
  • Java™ 2 Platform, Enterprise Edition, Platform and Component Specifications, Shannon, Hapner, Matena, Da Cable, Enterprise Team, 2000, Addison-Wesley.
  • Enterprise JavaBeans™ 2.0 Specification, Copyright 2001, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Designing Enterprise Applications with the Java™ 2 Platform, Enterprise Edition, Version 1.0., Kassem, Enterprise Team, 2000, Addison-Wesley.
  • Applying Enterprise JavaBeans™, Component-Based Development for the J2EE™ Platform, Matena, Stearns, 2001, Addison-Wesley.
  • JDBC™ API Tutorial and Reference, Second Edition, Universal Data Access for the Java™ 2 Platform, White, Fisher, Cattell, Hamilton, Hapner, 1999, Addison-Wesley.
  • JDBC™ 2.0 API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • JDBC 2.0 Standard Extension API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • RMI over IIOP 1.0.1 Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products/rmi-iiop.

Contents of the Book

As noted previously, we've written this book for two distinct audiences: application developers and software product vendors (including ISVs) who are building resource adapters and enterprise information systems. Application developers work within the Information Technology (IT) department of an enterprise. Their charter is to link the underlying infrastructure products, whether they were developed in-house or purchased from a third-party vendor, with the J2EE application server and platform technologies. Application developers need to know how to use the resour by the product vendors and ISVs, and vendors need to know how to construct resource adapters that conform to the Connector architecture specifications.

We have organized this book into sections so that it is easier for readers to access the information they need. Before we get into the specifics of using or building resource adapters, we have included an introductory section that provides background information of interest to all readers. This first section, consisting of Chapters 1 and 2, provides a general introduction to application integration and the J2EE Connector architecture.

The next section is primarily for application developers who need to know how to use a resource adapter. This section describes the Connector application programming model. Chapters 3 through 9 describe how to use a resource adapter from an application developer perspective.

Chapters 10 through 12 focus on the details of the Connector system contracts. These chapters are written for product vendors and ISVs interested in building a resource adapter. Product vendors and ISVs will probably want to focus on Chapter 10 and Chapter 11, which provide the details for building and deploying a resource adapter.

The book begins with an introduction to enterprise application integration, a term that is often abbreviated to EAI. Chapter 1, Enterprise Application Integration, describes the state of enterprise application integration today and shows how it has evolved to this point. Much of the J2EE Connector architecture addresses the problem of application integration, particularly Web-driven application integration. Because more and more services are provided through the Web, it is essential that enterprises have an efficient solution for EAI.

Enterprises must also integrate their enterprise information systems (EISs) with their Web services. EISs encompass the information infrastructure--the business processes and data--of an enterprise. Often, these are the legacy applications, database management systems, and so forth, that the enterprise relies on for its business functioning. This chapter describes the different approaches to integrating the often disparate pieces of an enterprise's information infrastructure, and it shows how the J2EE Connector architecture helps with this process.

Chapter 2, J2EE Connector Architecture Overview, provides an introduction to the Connector architecture. It presents the architecture's concepts and introduces the three system contracts defined by the architecture: the connection, transaction, and security contracts. The Connector architecture is designed for applications running on the J2EE platform. For those not quite as familiar with the J2EE platform, this chapter also includes a description of the platform's components and technologies.

Chapter 3, Managing Connections, starts the application programming model section. This chapter focuses on how application developers can best use the connection pooling mechanisms defined by the Connector architecture's connection management contract. The chapter describes the interfaces that support connection pooling and shows application developers how to use these interfaces so that their applications can connect to an EIS.

Application developers also need to know how to effectively use the transactional support provided by the J2EE platform, and specifically by the Connector architecture. The architecture supports both local and global transactions, and developers use different application programming interfaces to implement these approaches. Chapter 4, Working with Transactions, describes basic transactional concepts and illustrates how to develop transactional applications on the J2EE platform.

Security is also important for EAI. Chapter 5, Managing Security, describes the support for secure connections to EISs that the Connector architecture provides. The Connector architecture builds on the J2EE platform security model. The J2EE model defines the security applied to a client's access to the Web tier, and from there to the EJB tier. The Connector architecture defines a security management contract that extends the J2EE security model to include the connection between the EJB and EIS tiers. This security contract enables a J2EE server to manage security while it creates connections to an EIS and accesses EIS resources. This chapter introduces the reader to the Connector's security contract and describes the basic J2EE security concepts and terminology. It presents the security model as it relates to the process of signing on to an EIS and illustrates that process with an example scenario.

The Connector architecture supports synchronous and asynchronous messaging systems. These types of messaging systems underlie communication between an application server and an EIS. Often, asynchronous messaging is the preferred communication mode because it allows a message sender to continue processing without waiting for the message to be received and acknowledged. It offers improved performance over synchronous messaging and eliminates some of the dependencies between sender and receiver, or EIS and application. Chapter 6, Asynchronous Messaging, describes the Java Message Service (JMS), the standard Java API (application programming interface) defined for enterprise messaging systems, and shows how the Connector architecture accomplishes asynchronous messaging within this framework.

Chapter 7, Common Client Interface, describes the interfaces and methods of the Common Client Interface (CCI), which is a set of APIs between application components and EIS resource adapters. The CCI provides a common API across heterogeneous EISs, so that vendors specializing in application integration do not have to adapt their products to each individual EIS whose client API they want to support. By building their products to the CCI API, application integration product vendors have a standard way to plug in their resource adapters to different EISs. In addition to describing the interfaces and methods, the chapter provides an example that illustrates how to use the CCI.

Chapter 8, Tools and Frameworks, describes how to integrate application development tools with EIS resource adapters using the Connector architecture, particularly the Common Client Interface API. Integrating tools with resource adapters is particularly challenging because of the heterogeneous nature of EISs--they differ in their client APIs, their support for transactions and security, and in their application programming models. The Connector architecture promotes the use of tools so that development and system integration are simplified.

Chapter 9, XML and the Connector Architecture, provides overview information about XML (eXtensible Markup Language) and shows how to work with XML data within the J2EE and Connector framework. This chapter has a two-fold approach. It describes the current means for incorporating XML data, but, more important, it gives some insight into XML-related tools that are expected to be available in the near future.

ISVs, once they have a good grasp of the underlying contracts, need to know how to build a resource adapter module. A resource adapter is a system-level software driver that provides the connection to the vendor's EIS. A resource adapter implements the EIS side of the Connector system contracts, and it provides a client level API that applications can use to connect to the adapter's underlying EIS. Chapter 10, Building a Resource Adapter, describes the steps involved in building a resource adapter. It illustrates these steps with code examples for a sample resource adapter.

Chapter 11, Resource Adapter Packaging and Deployment, describes how to package and deploy a resource adapter that you have developed. Packaging and deployment are essential steps for bringing a resource adapter to market. The Connector architecture specifies a standard packaging format for a resource adapter. The deployment process installs components such as adapters into the enterprise's operational environment. By following the Connector architecture's packaging and deployment formats, you are assured that a resource adapter will work on any J2EE application server.

This completes the application programming model section of the book. From this point on, we focus on the system-level aspects of the Connector contracts. These next three chapters--one on each system contract--are meant to provide an "under the covers" view of the contracts. Although the intended audience for these chapters is application server vendors and resource adapter providers, application developers may find this information useful.

Chapter 12, Connection Management Contract, looks at the Connector architecture's connection management contract from a system-level viewpoint. It examines in detail the contract's interfaces and classes. It also explains how connections are handled in both two-tier and multi-tier environments and how a connection pool is implemented. Its focus is on managing connections in different environments so that scalability is enhanced.

Chapter 13, Transaction Management Contract, explains the system-level details of the Connector architecture's transaction management contract. It examines the methods of the local and global transaction interfaces and explains the different levels of transactional support that a J2EE application server provides. It also illustrates how the contract mandates the handling of this transactional support.

Chapter 14, Security Management Contract, similar to the previous two chapters, explains the system-level details of the Connector architecture's security management contract. Not only does it present and explain the interfaces and classes that the contract supports, it also shows how to use the contract to identify and authenticate users and determine their authorization and access control privileges.

The Connector architecture is constantly evolving and including new Java technologies. Chapter 15, Future Directions, describes the new technologies that will be included in the architecture. It particularly focuses on the features that the 2.0 version of the architecture is expected to support. These features will enhance EIS pluggability into the J2EE platform.

We have also included three chapters from three different resource adapter vendors. Chapter 16, written by engineers working with SAP, describes the architecture of the SAP connector, and shows how the connector manages connections, transactions, and security. It also describes the CCI provided for the SAP connector and uses an example to illustrate how to use this resource adapter in an application. Chapter 17, written by IBM Corporation, describes how developers can use the IBM J2EE Connector architecture-based tools to develop enterprise applications. This chapter focuses on using VisualAge for Java to develop an application that uses a CICS ECI connector to execute a CICS transaction within a WebSphere Application Server environment. Chapter 18, provided by BEA Systems, Inc., describes how they have implemented the J2EE Connector architecture specification in their WebLogic Server product.

Last, the book includes an appendix that contains the API reference and a glossary of terms. The reference section contains all the classes and interfaces defined by the Connector architecture as well as the methods within each interface or class.



Read More Show Less

Table of Contents

(NOTE: Each chapter ends with a Conclusion.)

Preface.

Acknowledgments.

1. Enterprise Application Integration.

What Is Enterprise Application Integration?

Web-driven Application Integration.

Enterprise Information Systems.

Challenges in EIS Integration.

Enterprise Application Integration Approaches.

Two-Tier Client-Server Approach.

Using Synchronous Adapters

Using Asynchronous Adapters.

Queue-Based Approach.

Publish-Subscribe Approach.

Application Server-Based Integration.

J2EE Connector Architecture and EAI.

2. J2EE Connector Architecture Overview.

What Is the J2EE Platform?

Components and Containers.

J2EE Technologies.

J2EE Connector Architecture Overview.

Connector Architecture Contracts.

System-Level Contracts.

Application Contract.

Packaging and Deployment.

Why Use the Connector Architecture?

Example Scenario.

Application Requirements.

Example Architecture.

3. Managing Connections.

Connection Management Contract.

Connection Management Architecture.

Application Programming Model.

4. Working with Transactions.

Introduction to Transactions.

Characteristics of Transactions.

Commit Protocols.

Key Issues with Transactions.

Developing Transactional Applications.

Using the J2EE Platform.

Using Enterprise Beans.

Using JTA Transactions.

Compensating Transactions.

Transaction Levels.

Sample Application Transaction Scenario.

5. Managing Security.

Security Concepts.

Authentication.

Authorization.

Security Definitions.

Security Model for EIS Connections.

Container-Manages Sign-On.

Component-Manages Sign-On.

Understanding EIS Sign On.

Setting a Resource Principal.

Authenticating a Resource Principal.

Authorizing a Resource Principal.

Establishing a Secure Communication.

Managing Security.

Role of the Application Component Provider.

Role of the Deployer.

Role of the Application Server Vendor.

Other Roles.

Security Example.

Security Environment.

Example Deployment.

6. Asynchronous Messaging.

Synchronous Communication.

Issues to Consider.

Dependency on Specific Middleware Mechanisms.

Dependency Between EIS and Application.

Asynchronous Communication.

Connector Architecture 2.0 Message Handling.

Asynchronous Inbound Communication.

Asynchronous Outbound Communication.

Synchronous Inbound Communication.

JMS-based Communication.

Communication Trade-offs.

Enterprise Messaging Technologies.

Java Message Service.

JMS Overview.

JMS Interfaces.

JMS and EAI.

J2EE Platform and EAI.

Messaga-driven Bean.

Example.

7. Common Client Interface.

Overview of the CCI.

CCI Programming Example.

Connection Interfaces.

ConnectionFactory Interface.

ConnectionSpec Interface.

Connection Interface.

LocalTransaction Interface.

Interaction Interfaces.

Interaction Interface.

InteractionSpec Interface.

Data Representation Interfaces.

Metadata Interfaces.

Exception Interfaces.

Code Examples.

Obtaining a Connection.

Using an InteractionSpec Object.

Using a Generic Record.

Using a ResultSet.

Using a Custom Record.

8. Tools and Frameworks.

Types of Tools.

Connector Architecture Tools Support.

EIS Access Objects.

Command Bean.

Record.

Data Access Object.

Guidelines for Access Objects.

EJB 2.0 Container-Managed Persistence.

9. XML and the Connector Architecture.

Enterprise Application Integration and XML.

Overview of XML Concepts.

Defining Document Types and Formats.

Java Technologies Supporting XML.

Java API for XML Processing (JAXP).

Java Architecture for XML Binding (JAXB)

Simple API for XML Messaging (JAXM).

Java API for XML-based RPC (JAX-RPC).

Java API for XML Registries (JAXR).

XML and Connector Architecture.

XML and Connector Scenario.

Example Application Processing.

XML Support in Connector Architecture.

10. Building a Resource Adapter.

Implementing a Resource Adapter.

Client API.

Transaction Support Level.

Authentication Mechanism.

Reauthentication Support.

System Contract Interfaces.

Implementing Connection Management.

Connection Factory.

Managed Connection Factory.

Connection Manager.

ManagedConnection.

Connection Handle.

Managing Transactions.

Using Local Transactions.

Handling XAResource Transactions.

Implementing Security Management.

Container Managed Sign-on.

Application Managed Sign-on.

Using the ConnectionRequestInfo Interface.

Handling Connection Events.

Distributing a Resource Adapter.

Packaging a Resource Adapter.

Resource Adapter Deployment Descriptor.

Using an Adapter in the Runtime Environment.

11. Resource Adapter Packaging and Deployment.

Deployment Approaches.

Standalone Deployment.

Bundled Deployment.

Packaging a Resource Adapter.

Deployment and Configuration.

Connection Factory Creation.

Using Packaging and Deployment Tools.

12. Connection Management Contract.

Connection Management Contract.

Contract Overview.

Scenarios.

Creating New Connections.

Matching Existing Connections.

Handling Connection Events.

Non-Mangaed Environment.

Connection Management Classes and Interfaces.

ConnectionFactory and Connection Interfaces.

Connection Management Contract.

Support for Error Handling.

13. Transaction Management Contract.

Transaction Management Contract.

Local Transaction Management.

example Local Transaction.

Local Transaction Management Contract Interfaces.

XAResource Transaction Management.

XAResource Interface.

Java Transaction API (JTA).

Two-Phase Commit Protocol.

Requirements for Transaction Management Contract.

Connection Sharing.

Connection Sharing and Local Transactions.

Transaction Scenarios.

Transaction Setup.

Transaction Cleanup.

14. Security Management Contract.

Interfaces and Classes.

Subject Class.

Principle Interface.

PasswordCredential.

GenericCredential Interface.

ManagedConnectionFactory Interface.

Security Management Contract.

Resource Adapter to Application Server Contract.

Application Server to Resource Adapter Contract.

15. Future Directions.

Connector Architecture 2.0.

Asynchronous Resource Adapter Support.

Java Message Service Provider Pluggability.

XML Support in Common Client Interface.

Common Client Interface Metadata Support.

J2EE and EAI.

16. The SAP Connector.

Architecture of SAP Systems.

SAP's Remote Function Call.

The Java Connector (JCO).

Architecture of the SAP Connector.

Connection Management of the SAP Connector.

Transaction Management of the SAP Connector.

Security Management of the SAP Connector.

The Common Client Interface of the SAP Connector.

Example.

Package and Class Declaration.

Member Variables.

Getting the Bank List.

Creating a New Bank.

17. Developing Applications with JCA-based Tools.

Enterprise Access Builder (EAB) 101.

JCA Application Development Process.

Overview of the Application.

Using the EAB Session Bean Tool.

Using the Session Bean Editor.

Testing the Application in the WebSphere Test Environment.

Moving Your Application to the WebSphere Application Server.

Deploying the RAR File.

Specifying the Connection Pooling Properties.

Assembling and Deploying the Application onto the WebSphere Application Server.

Using the Deployed Application.

Future Directions.

References.

18. Embracing the J2EE Connector Architecture: The BEA WebLogic Experience.

WebLogic Server's Implementation of the J2EE Connector Architecture Specification.

WebLogic Server Supplementary Deployment Descriptor.

Extended Connection Pool Services.

Example weblogic-ra.xml Deployment Descriptor.

Deployment Descriptor Editor.

Monitoring a Resource Adapter in the WebLogic Server Environment.

WebLogic Integration 2.0.

Application Views.

Adapter Development Kit (ADK).

BEA Partners Adopting the J2EE Connector Architecture.

References.

Appendix A. API Reference.

Glossary.

Index. 0201775808T12042001

Read More Show Less

Preface

This book provides an in-depth coverage of the Java™ 2, Enterprise Edition (J2EE™) platform Connector architecture. The Connector architecture is an integral part of the J2EE platform, and, as a key component in the platform's support for application integration, it ensures that J2EE applications can connect to and use a multitude of EISs and legacy systems. The Connector architecture, because it defines a standard set of contracts for handling connections, transactions, and security, makes it easier for vendors to develop products that can hook into the J2EE platform. Vendors follow the guidelines of these Connector contracts to develop special software modules, called resource adapters, that enable this linkage between their underlying products and the J2EE platform.

This book is written for application component developers who are building applications that run on the J2EE platform. It is also of interest to independent software vendors (ISVs) and others who develop resource adapters for specific EISs, such as legacy and database systems.

Conventions Used in This Book

This book uses certain graphical conventions.

The graphical conventions used here are based on the Unified Modeling Language (UML) standard. UML is a modeling language for object-oriented development. In general, object-oriented modeling decomposes systems into collaborating objects. The resulting model captures the underlying semantics of a problem. UML defines different models for representing systems, and graphical diagrams to depict these models, including a class model, a state model, a use case model, an interaction model, an implementation model, and a deployment model.

We only use a subset of the UML diagrams in this book. The diagrams of most interest to readers are the class diagrams, which depict static structure, and sequence, object, and collaboration diagrams, which depict dynamic object interactions.

Note that we use the terms application server, server, and J2EE application server interchangeably. Unless otherwise noted, these three terms all refer to a J2EE application server.

For those interested in more information about UML, we refer you to the following sources:

  • UML Distilled, Second Edition, Fowler, Scott, 2000, Addison-Wesley
  • Instant UML, Muller, 1997, Wrox Press Ltd.

Other Sources of Information

You should refer to other publications related to J2EE and to the J2EE Web site, http://java.sun.com/j2ee/. The following books, both online and in print, are of particular interest to those developing J2EE Connectors and other application components.

  • Java 2 Platform, Enterprise Edition Connector Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Java Message Service API, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Java™ 2 Standard Edition Platform (J2SE™), 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products.
  • Java™ Authentication and Authorization Service (JAAS) 1.0 Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products/jaas.
  • Java™ 2 Platform, Enterprise Edition, Platform and Component Specifications, Shannon, Hapner, Matena, Davidson, Pelegri-Llopart, Cable, Enterprise Team, 2000, Addison-Wesley.
  • Enterprise JavaBeans™ 2.0 Specification, Copyright 2001, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Designing Enterprise Applications with the Java™ 2 Platform, Enterprise Edition, Version 1.0., Kassem, Enterprise Team, 2000, Addison-Wesley.
  • Applying Enterprise JavaBeans™, Component-Based Development for the J2EE™ Platform, Matena, Stearns, 2001, Addison-Wesley.
  • JDBC™ API Tutorial and Reference, Second Edition, Universal Data Access for the Java™ 2 Platform, White, Fisher, Cattell, Hamilton, Hapner, 1999, Addison-Wesley.
  • JDBC™ 2.0 API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • JDBC 2.0 Standard Extension API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • RMI over IIOP 1.0.1 Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products/rmi-iiop.

Contents of the Book

As noted previously, we've written this book for two distinct audiences: application developers and software product vendors (including ISVs) who are building resource adapters and enterprise information systems. Application developers work within the Information Technology (IT) department of an enterprise. Their charter is to link the underlying infrastructure products, whether they were developed in-house or purchased from a third-party vendor, with the J2EE application server and platform technologies. Application developers need to know how to use the resource adapters provided by the product vendors and ISVs, and vendors need to know how to construct resource adapters that conform to the Connector architecture specifications.

We have organized this book into sections so that it is easier for readers to access the information they need. Before we get into the specifics of using or building resource adapters, we have included an introductory section that provides background information of interest to all readers. This first section, consisting of Chapters 1 and 2, provides a general introduction to application integration and the J2EE Connector architecture.

The next section is primarily for application developers who need to know how to use a resource adapter. This section describes the Connector application programming model. Chapters 3 through 9 describe how to use a resource adapter from an application developer perspective.

Chapters 10 through 12 focus on the details of the Connector system contracts. These chapters are written for product vendors and ISVs interested in building a resource adapter. Product vendors and ISVs will probably want to focus on Chapter 10 and Chapter 11, which provide the details for building and deploying a resource adapter.

The book begins with an introduction to enterprise application integration, a term that is often abbreviated to EAI. Chapter 1, Enterprise Application Integration, describes the state of enterprise application integration today and shows how it has evolved to this point. Much of the J2EE Connector architecture addresses the problem of application integration, particularly Web-driven application integration. Because more and more services are provided through the Web, it is essential that enterprises have an efficient solution for EAI.

Enterprises must also integrate their enterprise information systems (EISs) with their Web services. EISs encompass the information infrastructure--the business processes and data--of an enterprise. Often, these are the legacy applications, database management systems, and so forth, that the enterprise relies on for its business functioning. This chapter describes the different approaches to integrating the often disparate pieces of an enterprise's information infrastructure, and it shows how the J2EE Connector architecture helps with this process.

Chapter 2, J2EE Connector Architecture Overview, provides an introduction to the Connector architecture. It presents the architecture's concepts and introduces the three system contracts defined by the architecture: the connection, transaction, and security contracts. The Connector architecture is designed for applications running on the J2EE platform. For those not quite as familiar with the J2EE platform, this chapter also includes a description of the platform's components and technologies.

Chapter 3, Managing Connections, starts the application programming model section. This chapter focuses on how application developers can best use the connection pooling mechanisms defined by the Connector architecture's connection management contract. The chapter describes the interfaces that support connection pooling and shows application developers how to use these interfaces so that their applications can connect to an EIS.

Application developers also need to know how to effectively use the transactional support provided by the J2EE platform, and specifically by the Connector architecture. The architecture supports both local and global transactions, and developers use different application programming interfaces to implement these approaches. Chapter 4, Working with Transactions, describes basic transactional concepts and illustrates how to develop transactional applications on the J2EE platform.

Security is also important for EAI. Chapter 5, Managing Security, describes the support for secure connections to EISs that the Connector architecture provides. The Connector architecture builds on the J2EE platform security model. The J2EE model defines the security applied to a client's access to the Web tier, and from there to the EJB tier. The Connector architecture defines a security management contract that extends the J2EE security model to include the connection between the EJB and EIS tiers. This security contract enables a J2EE server to manage security while it creates connections to an EIS and accesses EIS resources. This chapter introduces the reader to the Connector's security contract and describes the basic J2EE security concepts and terminology. It presents the security model as it relates to the process of signing on to an EIS and illustrates that process with an example scenario.

The Connector architecture supports synchronous and asynchronous messaging systems. These types of messaging systems underlie communication between an application server and an EIS. Often, asynchronous messaging is the preferred communication mode because it allows a message sender to continue processing without waiting for the message to be received and acknowledged. It offers improved performance over synchronous messaging and eliminates some of the dependencies between sender and receiver, or EIS and application. Chapter 6, Asynchronous Messaging, describes the Java Message Service (JMS), the standard Java API (application programming interface) defined for enterprise messaging systems, and shows how the Connector architecture accomplishes asynchronous messaging within this framework.

Chapter 7, Common Client Interface, describes the interfaces and methods of the Common Client Interface (CCI), which is a set of APIs between application components and EIS resource adapters. The CCI provides a common API across heterogeneous EISs, so that vendors specializing in application integration do not have to adapt their products to each individual EIS whose client API they want to support. By building their products to the CCI API, application integration product vendors have a standard way to plug in their resource adapters to different EISs. In addition to describing the interfaces and methods, the chapter provides an example that illustrates how to use the CCI.

Chapter 8, Tools and Frameworks, describes how to integrate application development tools with EIS resource adapters using the Connector architecture, particularly the Common Client Interface API. Integrating tools with resource adapters is particularly challenging because of the heterogeneous nature of EISs--they differ in their client APIs, their support for transactions and security, and in their application programming models. The Connector architecture promotes the use of tools so that development and system integration are simplified.

Chapter 9, XML and the Connector Architecture, provides overview information about XML (eXtensible Markup Language) and shows how to work with XML data within the J2EE and Connector framework. This chapter has a two-fold approach. It describes the current means for incorporating XML data, but, more important, it gives some insight into XML-related tools that are expected to be available in the near future.

ISVs, once they have a good grasp of the underlying contracts, need to know how to build a resource adapter module. A resource adapter is a system-level software driver that provides the connection to the vendor's EIS. A resource adapter implements the EIS side of the Connector system contracts, and it provides a client level API that applications can use to connect to the adapter's underlying EIS. Chapter 10, Building a Resource Adapter, describes the steps involved in building a resource adapter. It illustrates these steps with code examples for a sample resource adapter.

Chapter 11, Resource Adapter Packaging and Deployment, describes how to package and deploy a resource adapter that you have developed. Packaging and deployment are essential steps for bringing a resource adapter to market. The Connector architecture specifies a standard packaging format for a resource adapter. The deployment process installs components such as adapters into the enterprise's operational environment. By following the Connector architecture's packaging and deployment formats, you are assured that a resource adapter will work on any J2EE application server.

This completes the application programming model section of the book. From this point on, we focus on the system-level aspects of the Connector contracts. These next three chapters--one on each system contract--are meant to provide an "under the covers" view of the contracts. Although the intended audience for these chapters is application server vendors and resource adapter providers, application developers may find this information useful.

Chapter 12, Connection Management Contract, looks at the Connector architecture's connection management contract from a system-level viewpoint. It examines in detail the contract's interfaces and classes. It also explains how connections are handled in both two-tier and multi-tier environments and how a connection pool is implemented. Its focus is on managing connections in different environments so that scalability is enhanced.

Chapter 13, Transaction Management Contract, explains the system-level details of the Connector architecture's transaction management contract. It examines the methods of the local and global transaction interfaces and explains the different levels of transactional support that a J2EE application server provides. It also illustrates how the contract mandates the handling of this transactional support.

Chapter 14, Security Management Contract, similar to the previous two chapters, explains the system-level details of the Connector architecture's security management contract. Not only does it present and explain the interfaces and classes that the contract supports, it also shows how to use the contract to identify and authenticate users and determine their authorization and access control privileges.

The Connector architecture is constantly evolving and including new Java technologies. Chapter 15, Future Directions, describes the new technologies that will be included in the architecture. It particularly focuses on the features that the 2.0 version of the architecture is expected to support. These features will enhance EIS pluggability into the J2EE platform.

We have also included three chapters from three different resource adapter vendors. Chapter 16, written by engineers working with SAP, describes the architecture of the SAP connector, and shows how the connector manages connections, transactions, and security. It also describes the CCI provided for the SAP connector and uses an example to illustrate how to use this resource adapter in an application. Chapter 17, written by IBM Corporation, describes how developers can use the IBM J2EE Connector architecture-based tools to develop enterprise applications. This chapter focuses on using VisualAge for Java to develop an application that uses a CICS ECI connector to execute a CICS transaction within a WebSphere Application Server environment. Chapter 18, provided by BEA Systems, Inc., describes how they have implemented the J2EE Connector architecture specification in their WebLogic Server product.

Last, the book includes an appendix that contains the API reference and a glossary of terms. The reference section contains all the classes and interfaces defined by the Connector architecture as well as the methods within each interface or class.

0201775808P12202001

Read More Show Less

Introduction

This book provides an in-depth coverage of the Java 2, Enterprise Edition (J2EE) platform Connector architecture. The Connector architecture is an integral part of the J2EE platform, and, as a key component in the platform's support for application integration, it ensures that J2EE applications can connect to and use a multitude of EISs and legacy systems. The Connector architecture, because it defines a standard set of contracts for handling connections, transactions, and security, makes it easier for vendors to develop products that can hook into the J2EE platform. Vendors follow the guidelines of these Connector contracts to develop special software modules, called resource adapters, that enable this linkage between their underlying products and the J2EE platform.

This book is written for application component developers who are building applications that run on the J2EE platform. It is also of interest to independent software vendors (ISVs) and others who develop resource adapters for specific EISs, such as legacy and database systems.

Conventions Used in This Book

This book uses certain graphical and typographical conventions. The graphical conventions used here are based on the Unified Modeling Language (UML) standard. UML is a modeling language for object-oriented development. In general, object-oriented modeling decomposes systems into collaborating objects. The resulting model captures the underlying semantics of a problem. UML defines different models for representing systems, and graphical diagrams to depict these models, including a class model, a state model, a use case model, an interaction model, an implementation model, and a deploymentmodel.

We only use a subset of the UML diagrams in this book. The diagrams of most interest to readers are the class diagrams, which depict static structure, and sequence, object, and collaboration diagrams, which depict dynamic object interactions.

Note that we use the terms application server, server, and J2EE application server interchangeably. Unless otherwise noted, these three terms all refer to a J2EE application server.

For those interested in more information about UML, we refer you to the following sources:

  • Fowler, Kendall, UML Distilled, Second Edition, 2000, Addison-Wesley
  • Muller, Instant UML, 1997, Wrox Press Ltd.

Other Sources of Information

You should refer to other publications related to J2EE and to the J2EE Web site, http://java.sun.com/j2ee/. The following books, both online and in print, are of particular interest to those developing J2EE Connectors and other application components.

  • Java 2 Platform, Enterprise Edition Connector Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Java Message Service API, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
  • Java 2 Standard Edition Platform (J2SE), 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products.
  • Java 2 Platform, Enterprise Edition, Platform and Component Specification, Shannon, Hapner, Matena, Davidson, Pelegri-Llopart, Cable, Enterprise Team, 2000, Addison-Wesley.
  • Enterprise JavaBeans 2.0 Specification, Copyright 2001, Sun Microsyst http://java.sun.com/j2ee/docs.html.
  • Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition, Version 1.0., Kassem, Enterprise Team, 2000, Addison-Wesley.
  • Applying Enterprise JavaBeans, Component-Based Development for the J2EE Platform, Matena, Stearns, 2001, Addison-Wesley.
  • JDBC API Tutorial and Reference, Second Edition, Universal Data Access for the Java 2 Platform, White, Fisher, Cattell, Hamilton, Hapner, 1999, Addison-Wesley.
  • JDBC 2.0 API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • JDBC 2.0 Standard Extension API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
  • RMI over IIOP 1.0.1 Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products/rmi-iiop.

Contents of the Book

As noted previously, we've written this book for two distinct audiences: application developers and software product vendors (including ISVs) who are building resource adapters and enterprise information systems. Application developers work within the Information Technology (IT) department of an enterprise. Their charter is to link the underlying infrastructure products, whether they were developed in-house or purchased from a third party vendor, with the J2EE application server and platform technologies. Application developers need to know how to use the resource adapters provided by the product vendors and ISVs, while the vendors need to know how to construct resource adapters that conform to the Connector architecture specifications.

We sections so that it is easier for readers to access the information they need. Before we get into the specifics of using or building resource adapters, we have included an introductory section that provides background information of interest to all readers. This first section, consisting of Chapter 1 and Chapter 2, provides a general introduction to application integration and the J2EE Connector architecture.

The next section is primarily for application developers who need to know how to use a resource adapter. This section describes the Connector application programming model. Chapter 3 through Chapter 9 describe how to use a resource adapter from an application developer perspective.

The next three chapters focus on the details of the Connector system contracts. These chapters are written for product vendors and ISVs interested in building a resource adapter.

Product vendors and ISVs will probably want to focus on Chapter 10 and Chapter 11, which provide the details for building and deploying a resource adapter.

The book begins with an introduction to enterprise application integration, a term that is often abbreviated to EAI. Chapter 1, Enterprise Application Integration, describes the state of enterprise application integration today and shows how it has evolved to this point. Much of the J2EE Connector architecture addresses the problem of application integration, particularly Web-driven application integration. Because more and more services are provided through the Web, it is essential that enterprises have an efficient solution for EAI.

Enterprises must also integrate their enterprise information systems (EISs) with their Web services. EISs encompass the information infrastructure—the business processes and data—of an enterprise. Often, these are the legacy applications, database management systems, and so forth, that the enterprise relies on for its business functioning. This chapter describes the different approaches to integrating the often disparate pieces of an enterprise's information infrastructure, and shows how the J2EE Connector architecture helps with this process.

Chapter 2, J2EE Connector Architecture Overview, provides an introduction to the Connector architecture. It presents the architecture's concepts and introduces the three system contracts defined by the architecture: the connection, transaction, and security contracts. The Connector architecture is designed for applications running on the J2EE platform. For those not quite as familiar with the J2EE platform, this chapter also includes a description of the platform's components and technologies.

Chapter 3, Managing Connections, starts the application programming model section. This chapter focuses on how application developers can best use the connection pooling mechanisms defined by the Connector architecture's connection management contract. The chapter describes the interfaces that support connection pooling, and shows application developers how to use these interfaces so that their applications can connect to an EIS.

Application developers also need to know how to effectively use the transactional support provided by the J2EE platform, and specifically by the Connector architecture. The architecture supports both local and global transactions, and developers use different application programming interfaces to implement these approaches. Chapter 4, Working with Transactions, describes basic transactional concepts and illustrates how to develop transactional applications on the J2EE platform.

Security is also important for EAI. Chapter 5, Managing Security, describes the support for secure connections to EISs provided by the Connector architecture. The Connector architecture builds on the J2EE platform security model. The J2EE model defines the security applied to a client's access to the Web tier, and from there to the EJB tier. The Connector architecture defines a security management contract that extends the J2EE security model to include the connection between the EJB and EIS tiers. This security contract enables a J2EE server to manage security while it creates connections to an EIS and accesses EIS resources. This chapter introduces the reader to the Connector's security contract, and describes the basic J2EE security concepts and terminology. It presents the security model as it relates to the process of signing on to an EIS, and illustrates that process with an example scenario.

The Connector architecture supports synchronous and asynchronous messaging systems. These types of messaging systems underlay communication between an application server and an EIS. Often, asynchronous messaging is the preferred communication mode because it allows a message sender to continue processing without waiting for the message to be received and acknowledged. It offers improved performance over synchronous messaging and eliminates some of the dependencies between sender and receiver, or EIS and application. Chapter 6, Asynchronous Messaging, describes Java Message Service, the standard Java API defined for enterprise messaging systems, and shows how the Connector architecture accomplishes asynchronous messaging within this framework.

Chapter 7, Common Client Interface, describes the interfaces and methods of the Common Client Interface (CCI), which is a set of APIs between application components and EIS resource adapters. The CCI provides a common API across heterogeneous EISs, so that vendors specializing in application integration do not have to adapt their products to each individual EIS whose client API they want to support. By building their products to the CCI API, application integration product vendors have a standard way to plug in their resource adapters to different EISs. In addition to describing the interfaces and methods, the chapter provides an example that illustrates how to use the CCI.

Chapter 8, Tools and Frameworks, describes how to integrate application development tools with EIS resource adapters using the Connector architecture, particularly the Common Client Interface API. Integrating tools with resource adapters is particularly challenging because of the heterogeneous nature of EISs—they differ in their client APIs, their support for transactions and security, and in their application programming models. The Connector architecture promotes the use of tools so that development and system integration are simplified.

Chapter 9, XML and the Connector Architecture, provides some overview information about XML and shows how to work with XML data within the J2EE and Connector framework. This chapter has a two-fold approach. It describes the current means for incorporating XML data, but, more importantly, it gives some insight into future XML-related tools that are expected to be available in the near future.

ISVs, once they have a good grasp of the underlying contracts, need to know how to build a resource adapter module. A resource adapter is a system-level software driver that provides the connection to the vendor's EIS. A resource adapter implements the EIS side of the Connector system contracts and it provides a client level API that applications can use to connect to the adapter's underlying EIS. Chapter 10, Building a Resource Adapter, describes the steps involved in building a resource adapter. It illustrates these steps with code examples for a sample resource adapter.

Chapter 11, Resource Adapter Packaging and Deployment, describes how to package and deploy a resource adapter that you have developed. Packaging and deployment are a essential steps to bring a resource adapter to market. The Connector architecture specifies a standard packaging format for a resource adapter. The deployment process installs components such as adapters into the enterprise's operational environment. By following the Connector architecture's packaging and deployment formats, you are assured that a resource adapter will work on any J2EE application server.

This completes the application programming model section of the book. From this point on, we focus on the system-level aspects of the Connector contracts. These next three chapters—one on each system contract—are meant to provide an "under the covers" view of the contracts. While the audience for these chapters is intended to be application server vendors and resource adapter providers, application developers may find this information useful.

Chapter 12, Connection Management Contract, looks at the Connector architecture's connection management contract from a systems-level viewpoint. It examines in detail the contract's interfaces and classes. It also explains how connections are handled in both two-tier and multi-tier environments, and illustrates how a connection pool is implemented. Its focus is on managing connections in different environments so that scalability is enhanced.

Chapter 13, Transaction Management Contract, explains the systems-level details of the Connector architecture's transaction management contract. It examines the methods of the local and global transaction interfaces, and explains the different levels of transactional support provided by a J2EE application server. It also illustrates how the contract mandates the handling of this transactional support.

Chapter 14, Security Management Contract, similar to the previous two chapters, explains the systems-level details of the Connector architecture's security management contract. Not only does it present and explain the interfaces and classes supported by the contract, it also shows how to use the contract to identify and authenticate users and determine their authorization and access control privileges.

The Connector architecture is constantly evolving and including new Java technologies. Chapter 15, Future Directions, describes the new technologies that will be included in the architecture. It particularly focuses on the features that the 2.0 version of the architecture is expected to support. These features will enhance EIS pluggability into the J2EE platform.

We have also included a chapter on the SAP resource adapter. Chapter 16, The SAP Connector, has been written by engineers working with SAP. It describes the architecture of the SAP SAP connector, and shows how the connector manages connections, transactions, and security. It also describes the CCI provided for the SAP connector, and uses an example to illustrate how one might use this resource adapter in an application.

Last, the book includes an appendix that contains the API reference and a glossary of terms. The reference sections contains all the classes and interfaces defined by the Connector architecture as well as the methods within each interface or class.



Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)