File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Architect Certification (SCEA/OCMJEA) and the fly likes why is that? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Architect Certification (SCEA/OCMJEA)
Bookmark "why is that?" Watch "why is that?" New topic
Author

why is that?

Ernest Lee
Ranch Hand

Joined: Aug 20, 2001
Posts: 145
DAOs allow you to control the access of data from resources and switch to CMP when the tools have better support, but this means you must write and maintain the SQL code.
Lipman Li
Ranch Hand

Joined: May 02, 2002
Posts: 122
I don't think there's no any overhead to switch to CMP later if you use DAO. the benefits of using DAO is not for this purpose.
Eduard Manas
Ranch Hand

Joined: May 12, 2002
Posts: 69
Originally posted by Ernest Lee:
DAOs allow you to control the access of data from resources and switch to CMP when the tools have better support, but this means you must write and maintain the SQL code.

Hi Ernest,
I agree with you on that the main drawback of DAO and BMPs is that you need to maintain the SQL code (unless you have a tool that automatically maintains it for you!). But sometimes they are necessary due to CMP limitations (ie they do not read BLOB/CLOB fields, or sometimes they do too many unnecessary database accessed)
DAO and entity beans (both BMP and CMP) are very different, so you will have to be very carefull if you start using DAO and then want to switch to entity beans in the future (there are some patterns for this issue that can help).
I would say that the main difference between DAO and entity beans is that DAO is light-weight whereas entity beans are heavy-weight. While using DAO is more efficient, you don't have the features of EJBs.
Eduard
Chris Mathews
Ranch Hand

Joined: Jul 18, 2001
Posts: 2712
I slight disagree with the statement:

DAO and entity beans (both BMP and CMP) are very different, so you will have to be very carefull if you start using DAO and then want to switch to entity beans in the future (there are some patterns for this issue that can help).

It seems as if you are saying that one can use either DAO or Entity Beans but not both. Most people that use BMP also utilize DAO to manage the persistance. Personally I don't see much benefit of BMP. If you are just going to wrap a Session Facade around it anyways then why not go with straight DAO? At least with CMP you get the persistance for free.
[ October 15, 2002: Message edited by: Chris Mathews ]
Ernest Lee
Ranch Hand

Joined: Aug 20, 2001
Posts: 145
Actually, the above sentence is quoted from "SEJA study guide"... I can't really understand it at all... i feel quite disappointed with the GUIDE.
Eduard Manas
Ranch Hand

Joined: May 12, 2002
Posts: 69
Chris,
I agree with you, you can use DAOs for BMPs (and I think it is a good practice for those developing BMPs!).
However, what I meant is that you have to be careful from the database-layer client point of view (ie session beans). You don’t use DAOs in the same way as entity beans. For example, to use a DAO you just need to create a simple object and start using it (simple, isn’t it). However, if you want to use entity beans you need to do a little bit more work, such as lookup home interface, narrow it down and get the remote interface.
My point was that if you want to leave the option open for switching from DAOs to entity beans in the future (or viceversa), you’ll have to be careful how you access the database-layer from session beans (otherwise you’ll get stuck with one technology)
Finally, I also think the future of entity beans is CMP. However, I think it is still an evolving technology that it hasn’t got there just yet. For example, if your database use BLOB/CLOBs, there is no way of accessing them through CMPs. Or sometimes they cannot handle complex entities (ie involving several tables). CMP 2.0 attempts to fix this problem, but those unlucky developers working with Websphere can only cry and watch.
Steve Wong
Greenhorn

Joined: Oct 15, 2002
Posts: 5
Is that BMP with DAO instead of Session Facade with DAO is to promote better component-based developement?
Steve.
Steve Wong
Greenhorn

Joined: Oct 15, 2002
Posts: 5
So, to ease the switching to CMP later, we should now use BMP with DAO instead of DAO alone.
So that the caller has the very similar interface on accessing the persistence logic.
Am I right?
Thx. and Regards.
Steve.
Chris Mathews
Ranch Hand

Joined: Jul 18, 2001
Posts: 2712
Here is an interesting discussion that we have going in the J2EE and EJB Forum about CMP vs BMP: Best Design Practices.
Eduard Manas
Ranch Hand

Joined: May 12, 2002
Posts: 69
Originally posted by Steve Wong:
Is that BMP with DAO instead of Session Facade with DAO is to promote better component-based developement?
Steve.

I think the Session Fa�ade pattern is meant to be used only for the business layer (ie for clients accessing session beans) rather than session beans accessing the database layer (as per Floyd Marinescu’s book – “EJB Design Patterns”, which by the way I think it is a master piece). The idea behind this is that application clients (ie JSPs, Action classes from struts framework, java applications… should not know the guts of the application, thus accessing it via a Fa�ade makes sense. However, I don’t think the same applies for session beans accessing entity beans.
Anyway, I think the decisions an architect should take when designing the database layer are as following:
1) Decide whether to use DAO (light-weight) or entity beans (heavy-weight)
2) If you want to use entity beans, decide whether to use CMP or BMP
3) If you want to use BMPs, decide whether you want to put the SQL statements in the EJB, or move them outside, and I think using DAO for the latter is a good option.
There is a very good discussion on whether you should use DAOs or entity beans in Floyd’s book (chapter 8). By the way, you can get it online at www.theserverside.com.
Eduard
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: why is that?