Three years ago I ‘ve suggested a light architecture for Web/J2EE applications that was based on a Servlet container with transaction processing, Message Oriented Middleware, and a DBMS: http://java.sys-con.com/node/204697 . This piece was a part of an old and semi-serious Gas Station series published at Java Developer ‘s Journal.
Even though during the last three years I was predominantly involved with the client side part, I ‘ve been watching closely what ‘s happening in the Java EE domain.
Today, I was discussing an architecture of a new Flex/Java application with a colleague, and we came up with even lighter architecture: Flex-AMF protocol-JavaServlet+Transaction support library-DBMS with potential introduction of asynchronous messaging, if need be. I want to stress – only if there will be a need to scale, adding it on the protocol level so the application developers won ‘t even notice it. We ‘ve learned how to seriously scale well designed Jetty ‘s servlet container empowered by Adobe ‘s BlazeDS ( it ‘s a pity that Jetty-based early draftsof JSR 315 has been buried, which deserves a separate article).
No EJB or Spring container, no Hibernate either – just tried and true SQL/JDBC.
After the conversation was over, I ‘ve had this deja vu feeling and recalled that old article. On one hand, I still believe that this is the right way to architect Web applications, but on the other hand I know that it ‘ll be a tough sell – selling an architecture at a gas station is not the same as selling to Wall Street IT architects. This application will be developed for large corporate clients, which implies that I ‘ll need to present and defend this architecture in front of the architecture groups of these corporations.
EJB are out of style these days. In the Java world, the buzzwords of the first decade of this Century are Spring and Hibernate. If the PowerPoint won ‘t include such boxes on the architectural diagram, most likely the enterprise architects won ‘t approve it. Now I need to decide if I want to be 100% honest and jeopardize more efficient design, or be street smart, add these two boxes to the slide show, and when the project will be approved, quietly or with a fist fight remove them one by one.
I need to be very careful.
I need to think hard.
I need to consult with sales people.
I need to be smart.
I need to be politically correct.