Thursday, January 7, 2010

Compare Persistence Mechanisms in Java using factors: ease of development, performance, scalibility, extensibility & security

 
 





Ease of development




Performance




Scalability




Extensibility




Security

Entity Beans - CMP

High – Bean developer concentrates on business
logic; persistence logic provided by EJB vendor

High - Application programmers delegate the details
of persistence to the container, which can optimize data access patterns for
optimal performance.

High – Container provides scalability
(configuration based)

High

High – Container provided

Entity Beans - BMP

Low – Bean developer is responsible for providing
persistence logic.

Uncertain – Depends upon the proficiency of bean
developer

High – Container provides scalability
(configuration based)

Low – Bean developer’s persistence logic needs to
understand by others.

High – Container provided

JDO

High – Bean developer concentrates on business
logic; persistence logic provided by JDO vendor

High - Application programmers delegate the details
of persistence to the JDO implementation, which can optimize data access
patterns for optimal performance.

High

High

High

JPA

High – Bean developer concentrates on business
logic; persistence logic provided by JPA vendor

High – Best ideas from ORM (Hibernate,TopLink)
and JDO

High – Container provides scalability

High - supports the use of pluggable persistence
providers

High – Supports Standardized Security Model (Java)

ORM Frameworks

Medium – Reduces development time

Depends - some O/R mapping tools do not perform
well during bulk deletions of data

High-to-Medium – Depends on ORM vendor

Low – Non-standardized

Medium-to-High – Depends on Vendor

DAO with direct JDBC

Low – Bean developer responsible for persistence
logic.

High-to-Medium -
But Depends upon the proficiency of bean developer

Medium-to-High – Depends on expertise of Developers

Medium-to-High – Depends on expertise of Developers

Medium-to-Low – Needs to be handled by bean
developer

3 comments: