The Sun Java Center (Sun's consulting organization) has put together a repository of design patterns and best practices for J2EE. The catalog contains useful patterns for the presentation, business and persistence layers in a J2EE application.
Looks like many of these patterns came from both TheServerSide.com's patterns repository and ejb-interest. This catalogue probably represents the most complete repository of J2EE strategies to date. Unfortunately, they don't include any code examples.
What does everyone else think?
Visit the Sun Java Center Patterns Catalogue
I must admit, I like it. All of the patterns are in the same format, divided between the different tiers, and I like the inclusion of the UML diagrams (I noticed they were all generated with TogetherJ), both class and sequence diagrams; very helpful! More code examples would be nice to accompany the diagrams (the value object does contain snippets) though.
I didn't notice any kind of forum for their patterns, like TSS has, which is quite handy to debate and help with the different ideas. Then again, it keeps it simple.
The Middleware Company
I think the catalogue will be quite useful for faster reference. Sun has done a commendable job in organising the design pattens. Its too good.
Very impressive !
These patterns are simple to understand and yet seem highly effective. I really like the way the author has documented each pattern.
Very good. Better late than never. (Some of the ideas, have been around for a long, long time, but I haven't seen them codified into a pattern until now.)
And someone @ Sun finally admits that finder methods are usually a bad idea! Imagine that! :)
This is simply great. Code examples would have been more helpful.
I'm glad that a lot of people feel so excited about this.
So just because unanimity doesn't serve any purpose, I'll take the black ship role,as usual.
Some of the patterns are trivial (like Service Locator), and no one else would bother to define that as a pattern.
Other patterns are "architected workarounds to bad architecture" like Service Activator (If you want to send asynchronous invocations by yourself an ORB instead of the J2EE mess).
Other patterns might be called anti-patterns by people who know what's happening there, and especially people who don't think that programming starts and ends with J2EE.
Other patterns are just way too complex for most problems most developers meet. The KISS pattern is surely something they haven't visited for a long time :)
And there's no apparent way to get those people into a real discussion (aside from giving them free advice at xxx-comments at sun dot com which they will happily disregard).
I think that if they have something to say they should build themselves a forum or feel invited to theserverside.com where they are certainly welcome.
I have to agree with the above...
Programming does not start and end with J2EE.
When they describe the tiered approach (http://developer.java.sun.com/developer/restricted/patterns/TieredApproach.html
) they talk about the business tier as follows:
"The enterprise bean components are the usual choice for implementing the business objects in the business tier."
I don't think this is a fair statement even if you have the benefit of a green field environment. Deciding to use a technology before looking at each systems actual requirments is wrong.
In addition, most people will be trying to integrate J2EE into an existing setup and I think this should have been given more weight.
Obviously there needs to be more patterns on integrating J2EE with existing systems. I don't think that detracts from the value of these patterns.
After a browse of the J2EEPATTERNS-INTEREST archive, the point was to come up with "obvious" patterns as a baseline, and then have the community help them in growing them.
theserverside.com has so far been the only place that's really done this, but more forums for this kind of discussion is always welcome.
I think the major issue with these patterns right now is the lack of source code examples & implementation trade-offs. Things look good with interaction diagrams, but certain patterns in J2EE (view helpers, for instance) still, in my experience, lead to some tightly coupled and ugly code. We need a more MVC based approach to JSP/Servlet development.
Furthermore, we need practical approaches to using EJB on large systems that use BMP, where fine grained entities are not realistic. If one's going to put an entire object graph behind an entity bean, we need more solutions on how to manage that graph easily (and saying "use CMP" is not such a solution).
Hopefully these discussions will be elaborated on here and on the J2EEPATTERNS-INTEREST list. I'm looking forward to it.
the forum you mention already exists. You can post to J2EEPATTERNS-INTEREST at JAVA dot SUN dot COM or visit the archives:
cristina at acm dot org
Sure I was aware of that address, I even browsed the archive before commenting.
That place hardly looks like a forum.
A nice looking forum web app, with a decent feature set would be a perfect illustration of their ideas. And they would also have the opportunity to take real life code samples for their patterns.
Floyd did it, why couldn't they ?
yes the forum does not have much traffic... :-) Still, maybe we should give it a chance. The forum was created months ago, when all the Sun guys had was a preliminary work they had presented at JavaOne 2000.
Now that the patterns have finally gone public, things may change, after all. As you know, there are many interest lists (like the EJB and J2EE ones) where you'll find lively discussions going on.
Well, there's competition on the internet.
And I definitely like theserverside.com, not to mention that nobody has that much time to spend on several forums :)
So, good luck to Sun's forums.
Very good initiative.<p>
I'm using at work VB/MTS/COM+ world, and a lot of those patterns can be used in that environement.
It's really impressive how sun take care of it's develloper community