Hi all,
I have summerized the pros and cons regarding CMP and BMP from posings on
this list. Please send your comments, tell me if you have a different
opinion in certain points or if I missed something important.
Pro CMP:
* Developers don*%t have to care about data access logic.
* Less work, reduced lines of code.
-> Reduction of development time, better quality (no bugs in generated code).
* Data store portability.
* Independence of the database schema.
-> flexibility, extensibility.
-> increased reusability of ejbs.
* Greater Resource efficienty.
(given the container capabilities, the container can pool all database
connections, cache data and batch multiple DB operations into a single call)
* ? Container has more potential for optimizations. ?
Pro BMP:
* More flexibility for complex data storage, especially when several
(different) data sources are needed.
* Can access legacy SQL databases as well as other ERP resources
(e.g. CICS, IMS, MQ-Series)
* Ability to express complex relationships among data.
* The Only Help when the containers CMP mapping tools are inadequate
for the mapping.
* Special (e.g. database dependent) optimizations can be done.
Contra CMP:
* Requires sophisticated mapping tools.
* Mapping tools support only a small range of datasources
(mostly relational databases with JDBC driver).
* Access to legacy systems might not provided with all containers
-> less portability.
* Difficult to use with complex database schema.
* ? Containers are not mature yet. ?
Contra BMP:
* Manual mapping is complex and error-prone.
* More work for developers.
* Ties the bean to a specific database type and structure.
-> Support for other db might require rewriting parts of the bean.
* Can create performance bottlenecks.
(e.g. no caching between transactions, no destinguishing of read-only
and write operations -> would have to be implemented manually).
* Developers must understand, develop, and maintain the map between bean
and database.
* Risk of "marrying" a bean`s abstract business logic to a specific
database type and structure. -> bad object design.
What I wonder about are the two points with the question marks:
1. Does a container, as a matter of principle, have more facilities to
optimize the persistence (e.g. only the container has knowledge which
other transactions are currently running -> run-time optimizations). If
yes, the consequence would be that sooner or later CMP _will_ be the
alternative with the best performance?
2. Are containers really not mature yet (in a sense that BMP is still much
faster than CMP)?
All comments are appreciated,
ingo.
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".