Howdy -- one way to look at this is to rephrase the question to:
* When would you use an entity bean?
Then *everything* else is probably going to be a session bean (or a message-driven bean, but those are more obvious).
So, it's entity beans that are the real specific case.
One high-level answer to "when should you use an entity bean?" is:
- when you want an object view of an entity that lives in an underlying persistent store
However, that opens up a huge set of issues in the real world. But since you're writing in the EJB Cert forum, following the answer to the question I just gave you will help.
At Sun, we would often tell people--think of a Session bean unless you ABSOLUTELY know that you need an entity bean. You will not be able to come up with a defined list of "reasons to use session beans" because they can represent almost any type of service you can think of. Although there's a key
word in there--"service".
Another way to look at the difference is that "entity beans" are often more like "nouns" (things represented often by rows in a DB), while "session beans" are more like "verbs" -- actions/services. Session beans often DO things, while entity beans often ARE things.
Does that help?
Nathaniel has a good suggestion about the J2EE tutorial...
cheers,
Kathy