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".

Reply via email to