Exploring Integration Tier
T he integration tier is a boundary tier and interacts with different external systems for
data exchange. The integration tier in the eInsure application accessed the relational
database for storing, retrieving, and manipulating data related to policies, claims,
accounting, customers, and products. eInsure used entity beans for typical create, read,
update, and delete (CRUD) operations with the database. The legacy version of eInsure
had lots of leftovers in the form of stored procedures. The eInsure application made
heavy use of these stored procedures for database-intensive tasks, especially for the
batch jobs that ran daily after regular business hours or in certain intervals such as
monthly or quarterly.
Users of eInsure required a variety of reports to find out important information
about the state of the business. For reporting requirements, the eInsure system con-
nected to an asynchronous reporting subsystem. Last but not least, some of the services
provided by eInsure had to be exposed as web services. These services were consumed
by third-party external applications.
In this chapter, I will start with the Data Access Object (DAO) pattern for accessing
relational databases. I will explore the need for DAO and the strategies to simplify DAO
implementation with Spring JDBC support. The Spring JDBC API can also be used to pro-
vide OO-style access to stored procedures. I will explain this in detail while describing the
Procedure Access Object (PAO) pattern. Also, I will cover asynchronous service access
mechanisms in connection with the Service Activator pattern. I will wind up the chapter
with the Web Services Broker design strategy, which can be used to expose existing serv-
ices as web services.