Home > Store

J2EE? Connector Architecture and Enterprise Application Integration

Register your product to gain access to bonus material or receive a coupon.

J2EE? Connector Architecture and Enterprise Application Integration

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • Copyright 2002
  • Dimensions: 7-3/8" x 9-1/4"
  • Pages: 416
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-77580-8
  • ISBN-13: 978-0-201-77580-8

For enterprises seeking to streamline their own processes -- or integrate with partners and suppliers -- the #1 challenge is enterprise application integration (EIA). Sun's new Connector Architecture gives Java developers powerful new tools for simplifying EIA. In this definitive book, the creators of the Connector Architecture explain it in detail -- and demonstrate how to make the most of it. The authors introduce the fundamentals of application integration and the J2EE Connector architecture, including the system contracts it defines for connections, transactions, and security. Next, they present in-depth coverage of J2EE resource adapters from the application developer's perspective. Coverage includes: new connection pooling mechanisms; effective use of the J2EE platform's transactional support; techniques for leveraging J2EE security in application integration projects; and much more. The book shows how to use XML data within the J2EE and Connector framework; and concludes by walking through the construction of a working resource adapter, with extensive code examples. Appendices provide a detailed API reference and glossary.

Sample Content

Online Sample Chapter

Managing Connections with J2EE Connector Architecture

Downloadable Sample Chapter

Click below for Sample Chapter related to this title:
sharmach03.pdf

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

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

Index

A

ABAP language, 263
Access control, 69
Access objects
advantages of, 139
data, 145-147
described, 138
guidelines for, 147-148
ACI case study, 36-42
application interfaces in, 42
application requirements, 37-38
application process, 40-41
architecture, 38-39
messaging, 105-109
roles in, 41-42
security, 79-82
transactions in, 63-67
ACID, characteristics of transactions, 55, 57
Adapters
asynchronous, 14-18, 256
synchronous, 13-14
in WLI, 308-312
addConnectionEventListener method, 209, 212
described, 346
allocateConnection method, 176, 177, 207, 210, 219, 239, 250, 251
described, 342-343
Analysis, tools for, 136
APIs (application programming interfaces)
client, 170, 171
defined, 7-8
in javax.resource.cci, 316-339
in javax.resource.spi, 339-359
in javax.resource.spi.security, 359-363
in J2EE, 22, 29
Application assembly, tools for, 137
Application contracts, 34
Application development, 277-279
assembly, 289
connection factory in, 286-288
deployment of application, 289-290
deployment of RAR file, 285-287
EAB session bean tool for,
279-281
future directions for, 293-294
moving to production environment, 285
session bean editor for, 282
testing, 282-285
Application development, J2EE and, 35
Application integration
on J2EE platform, 22-23
layers of, 21
server-based, 18-20
Application programming model, 50-52
Application server, defined, 55
Application Views, in WebLogic Integration, 307-308
Application-managed sign-on, 181
ApplicationServerInternalException class, 357
associateConnection method, 178, 346-347
Asynchronous adapters, 14-18
support in Connection architecture 2.0, 56
Asynchronous communication
advantages and disadvantages of, 93
described, 88-89
inbound, 90-91
J2EE Connector architecture and, 89-92
message-driven beans and, 105-109
outbound, 91
Atomicity, 55
Attributes, in XML, 155
Authentication, 69, 245
in J2EE Connector architecture, 171
types of, 70-71
Authorization, 69, 71-72, 245

B

BEA WebLogic, 297
partners of, 312-313
Bean-managed transaction demarcation, 60, 61, 66-67
begin method, 230, 326, 344-345
Bundled deployment, 191-192
Business process modeling, tools for, 137

C

Caller impersonation, 76
Caller principal, defined, 72
Catalog property, 124
CCI (Common Client Interface), 111, 135
class diagram of, 113
classes and interfaces of,
112-114
described, 111-112
metadata support in Connection architecture 2.0, 258
programming example, 114-118
of SAP connector, 267-268
tools support for, 137-138
CciBlackBoxLocalTx resource adapter, 196
CciBlackBoxXA resource adapter, 196
cleanup method, 347-348
clearWarnings method, 322-323
Client API, 170, 171
clone method, 328
close method, 120, 316, 323
CMP (container-managed persistence), 148-149
implementation of, 148-150
Code generation, tools for, 136-137
Command beans, 140-141
using, 142
CommException class, 357
commit method, 230, 231, 236, 326-327
described, 345
Commit protocols, 56-57
Communication
asynchronous, 88-92
choice in types of, 92-94
enterprise messaging systems, 94-95
infrastructure requirements for,
93
integration and, 93
JMS-based, 92, 95-101
middleware issues, 87-88
performance issues, 87
synchronous, 85-88, 91-92
Compensating transactions, 62-63
Component-managed sign-on, 73, 74-75
Component-managed transaction demarcation, 226
Components, defined, 27
Configured identity approach, 75
Connection, security of, 77
Connection factory
in application development, 286-288
creation of, 196, 200
described, 175-176
function of, 173, 204
managed, 176-177
view of, 200
Connection handle, 179
Connection interface, 112, 118, 120-121, 218
in JMS, 97
methods in, 316-318
types of, 118-122
Connection management architecture, 47
aspects of, 48-50
classes and interfaces in,
217-223
schematic of, 48
Connection management contract, 33, 47
error handling in, 223
features of, 204
function of, 203-204
implementation of, 172-175
in nonmanaged environment, 214-217
object diagram for, 207
overview of, 204-205
uses of, 205-217
Connection pool(ing), 203
controlling growth of, 302
controlling shrinkage of, 302
importance of, 45
J2EE Connector architecture and, 46-47
WebLogic Server support of, 301-303
Connection timeout, 288
connectionClosed method, 214,
340
connectionErrorOccurred method, 341
ConnectionEvent class, 222,
339-340
ConnectionEventListener interface, 205, 230
methods in, 340-342
ConnectionFactory interface, 118-119, 217-218
in JMS, 97
methods in, 318-320
ConnectionManager interface, 173, 177, 204, 219, 220, 250
methods in, 342-343
ConnectionMetaData interface, 127, 128
methods in, 320-321
ConnectionRequestInfo interface, 173, 180
methods in, 343-344
using, 181-182
Connections
establishment of, 50-52, 115, 129-130, 206-210
handling, 182-183, 212-214
importance of, 45
matching of, 210-212
minimum and maximum, 288
pooling of, 45-47
requesting, 174
sharing of, 237-239
ConnectionSpec interface, 118, 119-120, 267
methods in, 321-322
Connector architecture 2.0
asynchronous resource adapter support, 256
CCI metadata support in, 258
features of, 255
JMS pluggability, 257
in VisualAge for Java, 294-295
XML support in, 257
Consistency, of transactions, 56
Container-managed sign-on, 73-74, 181
Container-managed transaction demarcation, 60, 65, 225
Containers, defined, 27
Contracts
application, 34
in J2EE, 31
system-level, 31-33, 170
createConnectionFactory method, 176, 221
createIndexedRecord method, 131, 330
createInteraction method, 115, 120, 130, 317
createManagedConnection method, 176, 250, 252
described, 352-353
createMappedRecord method, 130, 331
Credentials, 246
defined, 72
types of, 247-249
Custom record, 133-134
generation of, 144
implementation of, 143
using, 144-145
and XML, 166-167

D

Data access objects, 145-147
example of, 146
Data representation interfaces, 112
types of, 125-127
Databases, updating of multiple, 61-62
Debugging, tools for, 137
Declarative transaction demarcation, 58, 59
deletesAreDetected method, 334-335
delistResource method, 214, 242
Demarcation, of transactions
code for, 60, 61, 65, 66-67
types of, 58-59
Deployment descriptor
editor for, 304
sample, 302-303
supplementary, 298-299
Deployment
in application development, 289-290
approaches to, 191-192
described, 189
descriptor for, 184-186, 193-195
schematic of, 190
steps in, 195-196
tools for, 137, 196-201
Design, tools for, 136
Design-time components, 308, 311-312
Destination interface, in JMS, 97
destroy method, 348
DOM (document object model) interface, 154, 157-158
DTDs (document type definitions), 153
use of, 154-155
Durability, of transactions, 56
Durable subscription, 99

E

EAI (enterprise application integration), 2
application server-based, 18-20
development tools for, 138, 139
focus of, 2, 4
defined, 2-3
examples of, 4
JMS and, 101-102
J2EE and, 102-103, 258
J2EE Connector architecture and, 20-22, 34-36
Web-driven, 4-6
and XML, 151-153
EISs (enterprise information systems)
access objects in, 138-148
administrative issues in, 9
challenges to, 9-11
communication with, 170
cost issues for, 10
cross-system integration of, 9-10
customization of, 9
defined, 7
integration of, 11-20
J2EE Connector architecture in, 34-36
low-level system details in, 10
scalability of, 10
secure access to, 10
security in, 73-83
sign-on in, 73-77
standardization of, 10
technological issues in, 9
transactional access to, 10
transactions in, 57-58
types of, 8
Web and, 5-6
EISSystemException class, 358
EJB (Enterprise JavaBeans), 22, 25
container-managed persistence in, 148-150
message-driven, 104-105
and transactions, 59-60
End user, defined, 72
endElement method, 156, 157
enlistResource method, 209, 212, 240
Enterprise Access Builder (EAB), 276-277
session bean tool of, 279-281
Enterprise domains, 3
Enterprise messaging systems, 94-95
Enterprises
business model of, 1-2
systems upgrades for, 2
Entity beans, with CMP, 149-150
equals method, 328-329, 344, 353, 360, 362
Error handling
in connection management contract, 223
in WebLogic server, 298
Event adapters, 308, 310-311
Event callback, 212
Event listener, in J2EE connection architecture, 182
Exception interfaces, 129, 357-359
execute method, 115, 116, 123, 322, 323-324
ExecutionTimeout property, 124, 325
Extensible markup language. See XML
Extensible style language (XSL), 153

F

FetchDirection property, 325
FetchSize property, 325
FunctionName property, 124, 325

G

Generic record implementation, 143
GenericCredential class, 248-249
GenericCredential interface, 359-360
methods in, 360-361
GenericCredential object, 171-172
getAdapterName method, 331-332
getAdapterShortDescription method, 332
getAdapterVendorName method, 332
getAdapterVersion method, 332
getConnection method, 119, 175, 210, 239
described, 316, 318-319, 324, 348-349
getCredentialData method, 249, 360-361
getEISProductName method, 320-321, 356
getEISProductVersion method, 321, 356
getInteractionSpecsSupported method, 332-333
getLocalTransaction method, 121, 122, 179, 227
described, 317, 349
getLogWriter method, 223, 349-350, 353-354
getManagedConnectionFactory method, 248, 362
getMaxConnections method, 356-357
getMechType method, 249, 361
getMetaData method, 121, 222
described, 317-318, 320, 350
getName method, 249, 361
getPassword method, 362
getPrivateCredentials method, 247, 252, 253
getPublicCredentials method, 247, 253
getRecordFactory method, 320
getRecordName method, 329
getRecordShortDescription method, 329
getReference method, 316
getResultSetInfo method, 121, 318
getSpecVersion method, 333
getUserName method, 248
described, 321, 357, 363
getWarnings method, 324
getXAResource method, 209, 227, 234
described, 350-351

H

hashCode method, 329, 344, 354, 361, 363

I

IllegalStateException class, 358
IndexedRecord interface, 126, 127, 130-131, 322, 328
Initiating principal, defined, 72
insertsAreDetected method, 335
Interaction interface, 112, 122-123
methods in, 322-324
InteractionSpec interface, 122, 123-125, 130
methods in, 324-325
InteractionSpec SAP interface, 267
InteractionVerb property, 124, 325
Interface Definition Language (IDL), 30
Interfaces
connection, 118-122
data representation, 125-127
exception, 129
interaction, 112, 122-125
metadata, 127-129
types of, 112
Internet Inter-ORB Protocol (IIOP), 30
Isolation, of transactions, 56

J

JAR (Java Archive) format, 192
Java, 6
support for XML, 155-161
Java APIs
for XML Binding (JAXB), 160
for XML Messaging (JAXM), 160
for XML Processing (JAXP), 156-159
for XML Registries (JAXR), 161
for XML-based RPC (JAX-RPC), 160-161
Java Community Process, 155
Java Messaging Service (JMS), 16, 17, 22, 25
common facilities in, 97-98
communications based on, 92
described, 95-96
and EAI, 101-102
interfaces in, 97
overview of, 96-97
publish-subscribe model in, 98-100
queue-based model in, 100-101
support in Connector architecture 2.0, 57
Java Naming and Directory Interface (JNDI), 29
Java Native Interface, 12-13
Java Transaction API (JTA), 25
described, 234-235
using, 60-62
Java Transaction Service (JTS), 25
JavaBeans Activation Framework (JAF), 30
JavaMail, 30
JavaServer Pages (JSP), 25
javax.resource, 315-316
javax.resource.cci, 316-339
javax.resource.spi, 339-359
javax.resource.spi.security, 359-363
JCO (SAP Java Connector), 264
JDBC, 25
JMSMessage interface, 98
J2EE Connector architecture (JCA)
advantages of, 34-36
application development for, 277-293
and application pooling, 46-47
authentication in, 171-172
BEA WebLogic and, 297-313
communications in, 89-92
contracts in, 31-34
described, 30-36
and EAI, 20-22, 34-36
Enterprise Access Builder and, 276-277
event listener in, 182
example of use of, 36-42
functions of, 20
future of, 293-294
goal of, 203
integration in, 34-36
packaging and deployment in, 34
security in, 69
transactions in, 53, 57-59, 171
version 2 of. See Connector architecture 2.0
XML and, 161-166
XML support in, 166-167
J2EE platform, 6, 12
components of, 22, 25, 27, 29
connectivity of, 30
containers in, 27-28
deployment services in, 29
described, 26-30
and EAI, 102-103, 258
enterprise services in, 29
SAP connector of, 261-273
security services in, 30, 70-71
SDK of, 196
service technologies in, 29
tiers of, 26, 28
transaction services in, 29-30, 57, 236-237
using with XML, 151-153
J2SE (Java 2 Standard Edition), security services in, 71

K

Kerberos, 171-172

L

Local transaction management, 228-229
example of, 229-230
interfaces for, 230-232
LocalTransaction interface, 118, 121-122, 173, 179-180, 226, 227, 230
methods in, 326-327, 344-345
LocalTransaction level, 63, 236
localTransactionCommitted method, 231, 232, 341
LocalTransactionException class,
358
localTransactionRolledback method, 231, 232, 341
localTransactionStarted method, 231, 341
lookup method, 114

M

ManagedConnection interface, 173, 177-178, 204, 205, 221-222, 226, 227, 301
methods in, 346-351
ManagedConnectionFactory interface, 173, 176-177, 220, 223, 249-250, 319
methods in, 352-355
ManagedConnectionMetaData interface, 173
methods in, 356-357
MappedRecord interface, 126, 127, 130-131, 327, 328
matchManagedConnections method, 176, 210, 212, 221
described, 354-355
MaxFieldSize property, 325
Maximum connections, 288
Message brokering, 16-18
hub-and-spoke model of, 101
Message-driven beans, 104-105
example of, 105-109
MessageConsumer interface, in JMS, 98
MessageProducer interface, in JMS, 98
Messaging
brokering of, 16-18
message routing, 94
prioritization of, 95
publish-subscribe, 15-16, 89
queue-based, 15, 88-89
reliability of, 94-95
transaction management in, 94
transformation in, 95
Metadata
extraction and visualization of, 136
in record, 143
support in Connection architecture 2.0, 258
Metadata interfaces, 112
types of, 127-129
Minimum connections, 288
Modeling, tools for, 137
MOM (messaging-oriented middleware), 94-95
Mutual authentication, 70
mySAP.com, 261-262

N

newSAXParser method, 156
Nondurable subscription, 98-99
NoTransaction level, 63, 236
NotSupportedException, 315

O

othersDeletesAreVisible method, 335
othersInsertsAreVisible method, 335
othersUpdatesAreVisible method, 336
ownDeletesAreVisible method, 336
ownInsertsAreVisible method, 336
ownUpdatesAreVisible method, 337

P

parse method, 156
Password property, 119
PasswordCredential class, 247-248
methods in, 362-363
Pool name, 288
Pool(ing), connection, 203
controlling growth of, 302
controlling shrinkage of, 302
importance of, 45
J2EE Connector architecture and, 46-47
WebLogic Server support of, 301-303
Principal
caller, 72
defined, 72
initiating, 72
resource, 72, 75-77
Principal delegation, defined, 72
Principal interface, 247
Principal mapping, 75
Programmatic transaction demarcation, 58, 59
properties parameter, 119
Protection domain, defined, 72
Publish-subscribe messaging, 15-16, 89
in JMS, 98-100

Q

Queue interface, in JMS, 100
Queue-based communication, 15, 88-89
in JMS, 100-101
schematic of, 108
QueueConnection interface, in JMS, 100
QueueConnectionFactory interface, in JMS, 100
QueueReceiver interface, in JMS, 101
QueueSender interface, in JMS, 101
QueueSession interface, in JMS, 100

R

RAR (Resource Adapter Archive) files, 192
read method, 338
Reap time, 287
Reauthentication, 172
Record interface, 125
methods in, 327-330
Record SAP interface, 267-268
RecordFactory interface, 125, 130-131
methods in, 330-331
Referenceable interface, 315-316
Remote function call (RFC), 264
Remote Method Invocation (RMI), 30
removeConnectionEventListener method, 222, 351
Request-response model, of synchronous communication, 85-86
Resource adapters, 11, 12
deployment of, 184-186, 189-192, 195-201
described, 169
distribution of, 183-186
features of, 170
function of, 204
implementation of, 169-172
in J2EE architecture, 31-32
monitoring of, 304-305
packaging of, 183-184, 192-195
system contracts implemented by, 173
use in runtime environment, 186
in WebLogic server, 300-301, 304-305
Resource manager, 33
defined, 55
transaction support by, 225
Resource principal
authenticating, 76
authorizing, 76-77
defined, 72
setting, 75-76
ResourceAdapterInternalException class, 359
ResourceAdapterMetaData interface, 331
methods in, 331-334
ResourceAllocationException class, 359
ResourceException, 315, 339
ResourceMetaData interface, 128
ResourceWarning interface, 339
ResultSet interface, 126, 127, 328, 334
using, 131-132
ResultSet SAP interface, 268
ResultSetInfo interface, 334
methods in, 334-338
ResultSetConcurrency property, 325
ResultSetType property, 325
rollback method, 230, 231
described, 327, 345
Routing, message, 94
Rules engines, 95
Runtime management, tools for, 137

S

SAP connector, 261-262
architecture, 264-265
CCI of, 267-268
connection management of, 265
example of use of, 268-273
security management of, 266-267
transaction management of, 266
SAP systems
architecture of, 262-264
Java Connector of, 264
presentation layer of, 263
remote function call of, 263-264
SAX (Simple API for XML Parsing), 154, 156-157
Schema property, 124
Security
case study of, 79-82
defined, 72
interface hierarchy of, 246
management of, 77-79
after new connection, 180-182
responsibility for, 78-79
in WebLogic server, 300
Security attributes, defined, 72
Security context, defined, 72
Security domain, defined, 72
Security management contract, 33
application server to resource adapter, 250-251
defined, 70, 245
features of, 245
interfaces and classes of, 246-250
resource adapter to application server, 250-251
SecurityException class, 359
Service adapters, 308, 309-310
Session beans
accessing as Web services,
291-293
in application development, 279-281
editor for, 282
Session interface, in JMS, 97
setFunctionName method, 130
setLogWriter method, 209, 223
described, 351, 355
setManagedConnectionFactory method, 363
setRecordName method, 329
setRecordShortDescription method, 330
Sign-on, 73
application-managed, 181
component-managed, 74-75
container-managed, 73-74, 181
steps in, 75-77
SOAP (Simple Object Access Protocol), 291
Standalone deployment, 191
start method, 240
startElement method, 156, 157
Streamable interface, 338
methods in, 338-339
Subject class, 246-247
Subject interface, 180-181
Subpool name, 288
Subscriptions, types of, 98-99
supportsExecuteWithInputAndOut-putRecord method, 333
supportsExecuteWithInputRecord-Only method, 333-334
supportsLocalTransactionDemarca-
tion method, 334
supportsResultSetType method, 337
supportsResultTypeConcurrency method, 337-338
SYNC_RECEIVE mode, 86, 90, 325
SYNC_SEND mode, 86, 90, 325
SYNC_SEND_RECEIVE mode, 325
Synchronous adapters, 13-14
Synchronous communication, 85
advantages and disadvantages of, 93
and application-EIS relationship, 88
inbound, 91-92
request-response model, 85-86
System contract interfaces, 175-179
and connection management, 172-175
System contracts, 170

T

Testing of application, 282
environment for, 283-284
Timeout
connection, 288
unused, 288
Tools
importance of, 135
integration of, 35-36
types of, 136-137
Topic interface, in JMS, 99
TopicConnection interface, in JMS,
99
TopicConnectionFactory interface, in JMS, 99
TopicPublisher interface, in JMS, 99
TopicSession interface, in JMS, 99
TopicSubscriber interface, in JMS, 99
Transaction management contract, 33
connection sharing in, 237-239
function of, 53
interfaces of, 226-227
for local transactions, 230-232
object diagram of, 228
requirements for, 236-237
schematic of, 54, 226
two-phase commit protocol, 235-236
XAResource, 232-236
Transaction manager, defined, 55
Transactions
case study of, 63-67
characteristics of, 55-56
cleanup of, 241-242
committing of, 56-57
compensating, 62
completion of, 235-236
demarcation of, 58-59, 5-226
described, 54
EJB and, 59-60
in J2EE, 29-30, 58-59, 236-237
levels of, 63, 179
local, 228-232
managing, 179-180
messaging and, 94
setup of, 239-241
Two-phase commit protocol,
235-236
Two-tier client servers, 11-13

U

Unauthenticated, defined, 71
Unused timeout, 287
updatesAreDetected method, 338
UserName property, 119

V

VisualAge for Java, connectors in, 294-295

W

Web
EAI and, 4-6
J2EE and, 28
WebLogic Server
connection pool services in, 301-303
deployment descriptors in,
302-304
error logging and tracing in, 299
and JCA specification, 298-305
resource adapter monitoring in, 304-305
resource adapter properties in, 299-300
resource adapter reference for, 300-301
security credentials in, 300
supplementary deployment descriptor of, 298-299
WLI (WebLogic Integration) 2.0, 297-298
Adapter Development Kit (ADK) of, 308-312
Application Views of, 307-308
described, 305
features of, 306
write method, 339

X

XAResource, 226, 227
XAResource interface, 173, 180, 205, 233-234
XAResource transaction management
described, 232
interactions of, 232-233
interfaces of, 233-236
XAResource.end method, 214, 235, 242
XAResource.start method, 209, 212
XATransaction level, 63, 180, 236
XML (extensible markup language), 6
advantages of, 152
APIs for, 154
attributes in, 155
and Connector architecture, 161-167
DTDs in, 153, 154-155
EAI and, 151-153
Java support of, 155-161
overview of, 153-154
parsing of, 156
sample document in, 154-155
support in CCI in Connector architecture 2.0, 257
syntax of, 153
tools supporting, 137
transformation of, 159
XSL (extensible style language), 153, 158
XSLT (XSL Transformation) standard, 158-159

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020