J2EE Enterprise Architecture with Staged Updates
This architecture shows two existing relational databases being used by a J2EE application server. One database is being accessed using JDO and the other by JDBC. A third database is being used in the middle tier as an EJB accelerator.
The database used as an EJB accelerator holds data that is a copy of data from one or more of the existing relational databases. All updates from the EJB components are made directly to this database. At some later time, say at the end of a business day, the updated data is written to the existing databases in the EIS tier. This is referred to as having "staged updates" because any updates by EJB components are staged first to the database used by the EJB accelerator and then written at a later time to the underlying relational database. This is in contrast to "in-line updates." An example of staging data would to "publish" a catalog to the middle-tier database based on multiple data sources. The EJB components then could use this "published" data directly without requiring direct Internet access to the databases in the EIS tier.
This architecture might very well provide much better performance than the "in-line updates." It does not include the activity with the EIS Tier within transaction boundaries.
Object databases make for an excellent middle-tier database for use with EJB components. This is because the object model used by EJB components is the same model used by object databases. For more information, see:
- Middle-Tier Architecture
- The importance of a lack of impedance mismatch for performance
- When to Use EJB Accelerators with Java Application Servers
Multiple components use JDO to access the relational database. JDO allows the mapping between Java objects and tables to be defined in one place for use by the multiple components. See JDO Data Conversion.
The JDBC interface is used by the Web Server to access simple data. See When to Use JDBC with Java Application Servers.
- Using JDBC with Application Servers
- Using JDO with Application Servers
- Using EJB Accelerators with Application Servers
More on the general topic: Architectures Using Databases in the Middle Tier
- J2EE Enterprise Architecture with In-Line Updates
- J2EE Website Architecture
- Benchmark Using a Transaction Accelerator