Home Page Icon
Home Page
Table of Contents for
II. Comparing Apples to Apples
Close
II. Comparing Apples to Apples
by Kulvir Singh Bhogal, Robert Peterson, Kyle Brown, Geoffrey Hambrick, Roland Barc
Persistence in the Enterprise: A Guide to Persistence Technologies
Copyright
IBM Press: The developerWorks® Series
IBM Press
Information Management
Computing
Business Strategy & Management
Rational and Software Development
WebSphere
Lotus
Open Source
Acknowledgments
The Author Team
Roland Barcia
Geoffrey Hambrick
Kyle Brown
Robert Peterson
Kulvir Singh Bhogal
About the Authors
Introduction: Why You Should Steal This Book—with Apologies to Abbie Hoffman
I. A Question of Persistence
1. A Brief History of Object-Relational Mapping
The Object-Relational Impedance Mismatch
A Pre-Java History Lesson
Delphi
Rogue Wave DBTools.h++
NeXT DbKit
TopLink for Smalltalk
IBM ObjectExtender
First-Generation Java Solutions
JDBC 1.0 and 2.0
TopLink for Java
EJB 1.0
VisualAge Persistence Builder
EJB 2.0
Open Source and the Next Generation
Hibernate
iBATIS
Assimilating the Object Database Counterculture
ODMG
JDO
JPA
Service-Oriented Architecture and Beyond
Information as a Service
pureQuery and ProjectZero
Summary
References
2. High-Level Requirements and Persistence
Some “Required” Background
Understanding Your Stakeholders
Different Strokes for Different Folks
Executives and the Needs of the Business
Hardware and Software Dependencies
Standards Supported
Open-Source and Community-Driven Activities
Vendors, Licenses, and Support
Intellectual Property Considerations
Availability of Skilled Practitioners
Availability of Education and Mentors
Development and Administration Tools
Build Versus Buy?
IT Leaders and Enterprise Quality Solutions
Functionality and Business Processes
Reliability and Transactional Requests
Usability and User Sessions
Efficiency and Runtime Resources
Isolation Levels Trade CPU Utilization for Better Throughput
Caching Trades Memory for Better Response Times
Maintainability and Application Components
Portability and Standard Platforms
What Happened to Portable Persistence Promised by Entity EJB Components?
Understanding the Real Portability Requirements for Persistence Frameworks
Interoperability and Enterprise Quality Solutions
Summary
Links to developerWorks
References
3. Designing Persistent Object Services
Some Basic Concepts
Pattern Languages
The Domain Model Pattern
Domain Modeling Best Practices
Choose a Modeling Notation to Communicate the Essential Details
Involve Project Stakeholders in Creating and Modifying the Domain Model
A Domain Model Is Not a Design Model
Domain Models Are Not Always Necessary
Plan for Change
The Value of a Common ORM Example
Domain Model
Database Schema
Database Constraints
Database Normalization Approach
Service Interfaces
Unit Test Cases
The Object-Relational Mapping Impedance Mismatch Revisited
Association
Composition
Containment
Encapsulation
Inheritance
Class Table Inheritance Strategy
Concrete Table Inheritance Strategy
Single Table Inheritance Strategy
Polymorphism
Object Identity
Object Navigation
Object-Relational Mapping Approaches
Top-Down
Bottom-Up
Meet-in-the-Middle
Other Patterns to Consider
Metadata Mapping, Lazy Loading, and Unit of Work
Distributed Façade and Data Transfer Objects
Summary
Links to developerWorks
References
4. Evaluating Your Options
Comparing Apples to Apples
Putting Good, Better, and Best into Context
Establish an Independent Standard
Make a List and Check It Twice
Keep It Real
Persistence in Your Enterprise
One Size Does Not Fit All
Ask Not If, but What and Why
The Devil Is in the Details
An Evaluation Template You Can Use
Background
Type of Framework
History
Architectural Overview
Standards Adherence
Platforms Required
Other Dependencies
Vendors and Licenses
Available Literature
Programming Model
Initialization
Connections
Transactions
Create
Retrieve
Update
Delete
Stored Procedures
Batch Operations
Extending the Framework
Error Handling
ORM Features Supported
Objects
Inheritance
Keys
Attributes
Contained Objects
Relationships
Constraints
Derived Attributes
Tuning Options
Query Optimizations
Caching
Loading Related Objects
Locking
Development Process for the Common Example
Defining the Objects
Implementing the Services
Packaging the Components
Unit Testing
Deploying to Production
Making the Most out of Your Experience
Use the Questionnaire Early and Often
Record Your History So You Don’t Repeat It
Summary
Links to developerWorks
References
II. Comparing Apples to Apples
5. JDBC
Background
Type of Framework
History
Architectural Overview
Standards Adherence
Platforms Required
Other Dependencies
Vendors and Licenses
Available Literature
Programming Model
Initialization
Connections
Transactions
Create
Retrieve
Update
Delete
Stored Procedures
Batch Operations
Extending the Framework
Error Handling
ORM Features Supported
Objects
Inheritance
Keys
Attributes
Contained Objects
Relationships
Constraints
Derived Attributes
Tuning Options
Query Optimization
Caching
Loading Related Objects
Locking
Development Process for the Common Example
Defining the Objects
Implementing the Services
loadCustomer
openOrder
addLineItem
removeLineitem
submitOrder
Packaging the Components
Unit Testing
Deploying to Production
Summary
Links to developerWorks
References
6. Apache iBATIS
Background
Type of Framework
History
Architectural Overview
Standards Adherence
Platforms Required
Other Dependencies
Vendors and Licenses
Available Literature
Programming Model
Initialization
Connections
Transactions
Create
Retrieve
Update
Delete
Stored Procedures
Batch Operations
Extending the Framework
Error Handling
ORM Features Supported
Objects
Inheritance
Inheritance Examples
Discriminator Result Mapping
Keys
Attributes
Contained Objects
Relationships
Constraints
Derived Attributes
Tuning Options
Query Optimizations
Caching
Single-JVM Caching
Distributed Caching
Loading Related Objects
Locking
Development Process of the Common Example
Defining the Objects
Implementing the Services
loadCustomer
openOrder
addLineItem
removeLineItem
submitOrder
Packaging the Components
Unit Testing
Deploying to Production
Summary
Links to developerWorks
References
7. Hibernate Core
Background
Type of Framework
History
Architectural Overview
Standards Adherence
Platforms Required
Other Dependencies
Vendors and Licenses
Available Literature
Programming Model
Initialization
Connections
Transactions
Create
Retrieve
Update
Delete
Stored Procedures
Batch Operations
Extending the Framework
Error Handling
ORM Features Supported
Objects
Inheritance
Keys
Attributes
Contained Objects
Relationships
Constraints
Derived Attributes
Tuning Options
Query Optimizations
Caching
Loading Related Objects
Locking
Development Process for the Common Example
Defining the Objects
Implementing the Services
bootstrapping
loadCustomer
openOrder
addLineItem
removeLineItem
Packaging the Components
Unit Testing
Deploying to Production
Summary
Links to developerWorks
References
8. Apache OpenJPA
Background
Type of Framework
History
Architectural Overview
Standards Adherence
Platforms Required
Other Dependencies
Vendors and Licenses
Available Literature
Programming Model
Initialization
Connections
Transactions
Create
Retrieve
Update
Delete
Stored Procedures
Batch Operations
Extending the Framework
Error Handling
ORM Features Supported
Objects
Inheritance
Single Table Strategy
Joined Strategy
Table-per-Class Strategy
Keys
Attributes
Contained Objects
Relationships
Constraints
Derived Attributes
Tuning Options
Query Optimizations
Caching
Loading Related Objects
Locking
Development Process of the Common Example
Defining the Object
Implementing the Services
Packaging the Components
Unit Testing
Deploying to Production
Summary
Links to developerWorks
References
9. pureQuery and Project Zero
Background
Type of Framework
History
Architectural Overview
Standards Adherence
Platforms Required
Other Dependencies
Vendors and Licenses
Available Literature
Programming Model
Initialization
Data API
Project Zero
Connections
Data API
Project Zero
Transactions
Data API
Project Zero and Transaction Closures
Create
Data API
Project Zero
Retrieve
Data API
Project Zero
Update
Data API
Project Zero
Delete
Data API
Project Zero
Stored Procedures
Batch Operations
Extending the Framework
Error Handling
ORM Features Supported
Objects
Inheritance
Keys
Attributes
Contained Objects
Relationships
Constraints
Derived Attributes
Tuning Options
Query Optimizations
Caching
Loading Related Objects
Locking
Development Process for the Common Example
Defining the Objects
Implementing the Services
loadCustomer
openOrder
addLineItem
removeLineItem
submitOrder
Packaging the Components
Unit Testing
Deploying to Production
Summary
Links to developerWorks
References
10. Putting Theory into Practice
The Evaluations at a Glance
Background
Architectural Overview
Programming Model
ORM Features Supported
Tuning Options
Development Process for the Common Example
What Do You Do Now?
Don’t Reinvent the Wheel to Avoid Making Trade-offs
Embrace and Extend Open-Source Projects
Use an Agile Process and Continually Refactor
Be Prepared to Revisit Your Decisions
Summary
Links to developerWorks
References
A. Setting Up the Common Example
Brief Background of Supporting Technologies
Apache Derby
Eclipse
JUnit and DbUnit
Setting Up the Prerequisites
Download Source Code
JDK 5.0
Eclipse 3.2+
Apache Derby Eclipse Plug-in
Project Zero M1 Eclipse Plug-In
Importing and Running the Code for a Particular Persistence Technology
Importing the Java SE Applications
Resolving DbUnit for the Projects
Add Apache Derby Nature
Start the Apache Network Server
Running the Database Script
Running the JDBC Unit Test
Resolve iBATIS Dependencies
Running the iBATIS JUnit
Resolve Your Hibernate Dependencies
Running the Hibernate Application
Resolving OpenJPA Dependencies
Run Byte Code Enhancement for OpenJPA
Running the OpenJPA Application
Running Project Zero Application
Running EJB3 Application with IBM EJB 3 Feature Pack
Troubleshooting
References
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
4. Evaluating Your Options
Next
Next Chapter
5. JDBC
Part II. Comparing Apples to Apples
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset