Friday, March 13, 2009

What is the difference between a "Coarse Grained" Entity Bean and a

Question :What is the difference between a "Coarse Grained" Entity Bean and a
"Fine Grained" Entity Bean? (EJB)

Answer :A 'fine grained' entity bean is pretty much directly mapped to one
relational table, in third normal form.
A 'coarse grained' entity bean is larger and more complex, either because
its attributes include values or lists from other tables, or because it 'owns'
one or more sets of dependent objects. Note that the coarse grained bean
might be mapped to a single table or flat file, but that single table is going
to be pretty ugly, with data copied from other tables, repeated field groups,
columns that are dependent on non-key fields, etc.
Fine grained entities are generally considered a liability in large systems
because they will tend to increase the load on several of the EJB server's
subsystems (there will be more objects exported through the distribution
layer, more objects participating in transactions, more skeletons in
memory, more EJB Objects in memory, etc.) The other side of the coin is
that the 1.1 spec doesn't mandate CMP Error! No index entries for dependent objects (or even indicate how they should be
supported), which makes it more difficult to do coarse grained objects with
CMP. The EJB 2.0 specification improves this in a huge way.

No comments: