views:

111

answers:

5

Enterprise software are built using technologies/softwares/terminologies/APIs such as EJB, JBoss, Seam, Hibernate(JPA), Maven, Eclipse, Spring, JTS, JMS, JNDI etc. I know there are great books out there for each of these individually, however can someone suggest a book or two that covers all (or most of) these topics in lesser detail and gives examples of how these are integrated? I have intentionally left the client side stuff out because its highly unlikely a single book would cover that much.

If anyone knows of a book (or books) that cover most of or various combinations (like EJB, Hibernate, Spring and Seam) of these technologies, please do suggest the same. The idea is not to become an expert in all however know about them in reasonable detail and why each one is required.

+1  A: 

Maybe not as technology specific as you require, but definately recommended:

Patterns of Enterprise Application Architecture, Martin Fowler

UpTheCreek
A: 

"Real World Java EE Patterns - Rethinking Best Practices" is not widely known, but features nice practical advice on Java EE. It's English edition could have had some better editing though.

Otherwise you might consider "EJB 3 in Action" - it covers greatly EJBs, JPA, JTS and to some extent JMS and JNDI...

I do not think that you'll find a book that covers all these technologies.

Bozhidar Batsov
A: 

I would suggest Spring Recipes: A Problem-Solution Approach by Gary Mak. That would give you a pretty nice intro into what Spring can do for you.

Hans Westerbeek
A: 

The Seam in Action book is by far the best book if you are planning to develop Seam applications.

It covers EJB, Hibernate, JBoss, Spring integration with Seam, JPA etc

alt text

Shervin
A: 

Though I do second that emotion on the Fowler, half of that one is reference.

Another I would not hesitate to recommend is a rather dense read from Eric Evans called Domain-driven Design, while not specific to 'enterprise' Java it contains scores of great recommendations for building and layering business applications.

For example:

Application Layer [his name for Service Layer]: Defines the jobs the software is supposed to do and directs the expressive domain objects to work out problems. The tasks this layer is responsible for are meaningful to the business or necessary for interaction with the application layers of other systems. This layer is kept thin. It does not contain business rules or knowledge, but only coordinates tasks and delegates work to collaborations of domain objects in the next layer down. It does not have state reflecting the business situation, but it can have state that reflects the progress of a task for the user or the program.

Domain Layer (or Model Layer): Responsible for representing concepts of the business, information about the business situation, and business rules. State that reflects the business situation is controlled and used here, even though the technical details of storing it are delegated to the infrastructure. This layer is the heart of business software.

mikesalera