YOUR FEEDBACK
Brian Vicente wrote: Where are listing 3 and listing 4?


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


J2EE: A Standard in Jeopardy?
J2EE: A Standard in Jeopardy?

By now you've probably either heard about or read the analyst report from the Burton Group entitled "J2EE in Jeopardy."

In summary, the claim is J2EE as a standard is in danger due to several market forces:

  1. Market commoditization: Open source players like Apache, JBoss, and ObjectWeb are commoditizing the platform, making it harder for vendors to profit from J2EE server licenses. If vendors can't make money on J2EE, they won't want to continue to invest in the specification.
  2. "Disruptive" technologies: In the last year the complexity of J2EE's programming model - EJB - has been challenged. Simpler, more productive models have emerged from within the open source community and have garnered widespread acceptance in a short time. Credited innovators here include the Spring Framework and Hibernate ORM.
The report goes on to make recommendations to mitigate risks for end users and vendors alike. In summary:
  1. End users should turn over responsibility for generic J2EE infrastructure to proven providers in the open source world. You shouldn't abandon J2EE, but should consider some of the "alternative" frameworks in the open source community.
  2. Vendors should focus on building a "J2EE super platform." Basically, innovate in areas where open source hasn't already preempted competition through commoditization.
As a Spring Framework user/developer and a strong believer in our value proposition and development philosophy, I came away from all of this with mixed feelings.

On the one hand, it's great to see the work of the Spring, Hibernate, Apache, and other quality open source teams getting endorsement and credibility. The cat is out of the proverbial bag: open source is a force of innovation to be respected and certainly not underestimated. Outsourcing infrastructure to proven open source providers is a very effective strategy for companies looking to deliver working software better/faster/cheaper. Complimenting quality open source offerings with strategic commercial products and services is an effective model for infrastructure providers looking to further penetrate the market.

On the other hand, I feel the casual reader might come away with a bad spin on what's happening here. I can see it now - a corporate manager faced with a major technology investment decision happens across this article (or others like it) and concludes J2EE is in chaos. Or worse, concludes the open source community is out building flavor-of-the-month "alternative frameworks" that "reinvent the wheel" because the "standard" platform doesn't cut it. Not exactly the impression we want to make to grow the enterprise Java market.

This is where our community must step in and set that manager straight. J2EE is not in a state of chaos. There are simply more good choices for J2EE infrastructure than ever before. And from what I've experienced, there are many more J2EE success stories. Second, these "alternative" frameworks absolutely do not "reinvent the wheel in open source." They all build on standard J2EE services to improve developer productivity; they are not replacements for the platform.

Indeed, Spring and Hibernate - the leading so-called "alternative" frameworks - are challenging the J2EE programming model while embracing the J2EE technology platform. This is a critical distinction. With Spring particularly, you get the power and maturity of the J2EE stack with a simplicity comparable to that of the .NET programming model. And you get it all with less cost and considerably more business leverage (choice).

How is this possible? When you step back and look at J2EE, there is a lot to it. J2EE consists of:

  1. A standard set of enterprise services addressing typical infrastructure needs, including transaction management (JTA), dynamic user content (servlets/JSP/JSF), database access (JDBC), service lookup (JNDI), asynchronous messaging (JMS), management (JMX), and remoting (RMI/Web services).
  2. A standard programming model for tapping into the power of the above services, gluing the individual pieces together into a consistent software delivery platform.
We love the enterprise services. Nobody can match the power and maturity of the J2EE technology stack. However, today's pragmatic developer isn't so keen on the EJB programming model that builds on these services. It's complex, invasive, dated, and overengineered for most developer needs. It's not consistent. I have to jump through hoops just to run my business logic in different environments, for example. I incur the costs of JTA when all my application needs is a single database. The list of unnecessary costs goes on.

Enter the "alternative" frameworks. Spring, in particular, has given our community a framework that not only makes it easier to tap into the power of J2EE, but captures best practices on what services to use when given your business requirements. The result? More developers, architects, and managers are getting smarter about the infrastructure they need for the given job at hand. Developer productivity is up.

For over a year I've personally leveraged the Spring Framework as the base architecture for my development projects. I now treat J2EE infrastructure as a separate concern, one fully decoupled from the business logic ("core meat") of my application. Spring gives me the power to choose which deployment environment and technologies are most appropriate given the complexity of the domain problem at hand. That puts me in command - if all I need is a Web container to power a Web app with a single data source, a solution like Tomcat is the best cost. For middleware-intensive applications that require messaging, global transactions, and remoting, a higher-end application server is worth the investment. In all cases, my programming model stays simple and consistent, grounded in my customer's problem domain.

I can't say it enough, J2EE is better than ever - for the consumer. I read success story after success story from developers working on projects with products like Spring and Hibernate. They're leveraging them in all kinds of environments and application servers to support demands on all scales. Today is a great time to be developing enterprise applications in Java. It's a great time to be a consumer. We've got the technology, the platform, and the community - it's only going to get better. Who can stop us now?

About Keith Donald
Keith Donald is a software consultant, mentor, and Java application developer for Interface21, Limited. He's been a believer in The Spring Framework since he started leveraging it in real projects in July 2003.

YOUR FEEDBACK
Sean Warburton wrote: http://www.webobjects.com
Edgar Dollin wrote: WOW... The only thing that one can gather from this much dialogue is that the current state of the art for open source / java development frameworks is that they are inadequate and need improvement. I know struts is a Joke and will go away, Hibernate looks like a good tool but the lack of standardization and a real outside understanding of what it is holds it back, JSF is an attempt by the tool makers to force developers into paying for tools and a belated attempt to compete with .NET and Microsoft who has it close to correct is held in contempt with good reason. Doesn't look like there is going to be concensus on this issue for quite some time. The problem is that there are some many good answers and so many people with working solutions. Let's hope that the 'Right' solution survives the melee.
Doug Smith wrote: Elevator pitch? Maybe on the Petronas Towers elevators, stopping at each floor for a minute. ;-)
Bill Watson wrote: This seems to be coming up more and more frequently - ColdFusion developers being asked to defend ColdFusion against a planned move to Java and J2EE. And so, in case you end up in this situation, this is what you need to know. For starters, any suggestion of "we need to stop using ColdFusion because we are going to use Java" demonstrates a complete lack of understanding of what exactly ColdFusion is. So, let's start with a brief explanation of the ColdFusion-Java relationship. Applications written in ColdFusion (as of ColdFusion MX) are pure Java. Or, expressed slightly differently, ColdFusion runs on a J2EE server (either embedded, or one of your choosing) running a Sun-verified Java application (the ColdFusion engine), executing Java bytecode (compiled from your CFML source code). In other words, CFML (the code you write) is a developer-time consideration, not a run-time consid...
Alexander wrote: Keith, "nonsense" may indeed be too strong a word. In most cases it is a good technical decision to have POJOs that don't call container APIs. But that is neither a special feature of IoC containers nor does it make your system and development organisation as a whole less dependent on the container. It just moves the dependency to a different place. It's a pattern that everyone has been free to use within EJB and I have been using it ever since. To have complex business rules or algorithms directly call into EJB APIs so you can't test them independently or use them in other kinds of systems is just bad design. It's trivial not to do that. To throw a standardised architecture overboard and instead introduce a whole new non-standard framework just to support this particular pattern, is in my view a disproportianate overreaction. Regarding backward compatibility of open source: Well, the...
Doug Smith wrote: I love to read these discussions. As a solo practioner, I have found POJO, Servlet/JSP and JDBC to be good enough to build the scale of applications my clients need. I am intriqued and frustrated by the abundance of excellent frameworks to use, but have no one to discuss the pros and cons with. I tend to agree with the open standards POV. My 20 years of IBM midrange (System/38, AS/400, iSeries) has taught me the value to the client (customer, not PC) of having a framework that persists over time. Every consultant going into a midrange shop knew exactly how to use the editor, screen designer, database, interactive sessions, batch sessions, and so on. Yes, it was a very limited architecture, but sufficient for the era, and surprisingly capable today as a database machine or JVM host. How much good does it really do if every Java shop has a unique architecture du jour, creating a barr...
Keith Donald wrote: Your point about the costs to train a development organization is a good one. But my points are not nonsense. There are real savings to be had in minimizing dependencies on infrastructure APIs in domain-specific java code. There is real leverage in abstracting dependencies on a particular service like Hibernate behind a logical layer of data access interfaces, for example. Not only does it produce cleaner, more maintainable code, it makes it easier to replace any one layer without impacting the others. My point is Spring and Hibernate make it easier to write cleaner code that is consistently simple, easy to test, and cohesive (focused on domain problems.) On my development team, not everyone has to know everything about Spring or Hibernate -- only a few key developers need to know them inside and out, and the others still get their jobs done. They can do this because Spring ma...
Alexander wrote: You say: "POJOs configured and decorated by Spring and persisted by Hibernate are done so without being coupled with those respective APIs (or any infrastructure API for that matter)." I'm sorry, but that's complete nonsense. The question is not if POJOs are coupled to anything. The question is what do developers have to do to make the application work? What knowledge do they need? And the answer is, they have to know the Spring architecture, all the Spring configuration stuff and the Hibernate OR-mappings. This _IS_ the API. The API is everything developers have to know to make the system work. So the question is what developers become coupled to, not what POJOs are coupled to. It's no consolation when you say, with Spring, you only have to know the parts that you need. For one, it's not true, because there is always the general architecture of the framework that you have to know...
Alexander wrote: I think your distinction between technology platform and programming model is a red herring. For a development organisation, there is only one thing that counts and that is the API. An EJB/CMP developer cannot use Spring/Hibernate without retraining and a year of experience. Neither Spring nor Hibernate are standards. There is a huge number of similar frameworks and an even greater number of MVC frameworks on top of that. Let's face it, what we see is fragmentation. If that turns out to be a good thing or a bad thing depends on the ability of all involved to build a new standardisation process that works better than the JCP. It's not enough to say, hey look we have so much choice isn't that fantastic? It would be fantastic if what we were talking about wasn't a platform but a range of cheese in the supermarket.
Jay Toee wrote: I really love the persistence model of EJBs and specifically CMP2. OpenSource frameworks are often used in conjunction with OpenSource app servers. One reason for more frameworks popping up, may be that JBoss' CMP engine can't handle that much traffic, so the alternatives may be more appealing.
Keith Donald wrote: One note re: open frameworks like Spring and Hibernate 'not being standard'. With these two, the question becomes: what is there to standardize? POJOs configured and decorated by Spring and persisted by Hibernate are done so without being coupled with those respective APIs (or any infrastructure API for that matter). Indeed, POJOS stay decoupled from infrastructure, which makes them easily adaptable and runnable in different environments (from test, to standalone, to enterprise.) This really does give you the ability to make infrastructure a choice not a mandate, and makes it easy to adapt and scale up as requirements change. This model is the future, no doubt about it. Best, Keith
Harrison Li wrote: I'd just like to add some comments about company profits and J2EE. In the early stage of J2EE, application server vendors like BEA, etc. were the major force to push the J2EE standard. Now things have changed. Big business application vendors such as SAP have started to play that role. The reason is very simple, those big companies has invested significantly on J2EE technology by developing new generation of business application products. If you were familiar with SAP, you would have seen what vast changes have happened in product development on the top of J2EE in the last 3-4 years. SAP, IBM, etc. have to continue to push J2EE technology forward because J2EE has become the fundation of the company's products. I don't worry about the future of J2EE technology. Instead, I do worry about how those "pure" J2EE application server vendors could survive if they continue to be the server vendor...
Dave wrote: I like the programming models that open source projects like Spring and Hibernate give you. the problem with frameworks like these however, is that open source is good, but open *standards* are better. I'd be much more likely to use Spring if there were a Spring JSR, and I'd much rather take my pick from 20+ open source and commercial implementations of JDO than tie my application to the proprietary Hibernate API. look at Struts for instance - great framework, but in time it's going to go the way of the dodo, replaced completely by JSF, because JSF is a *standard*, and there are multiple open source and commercial vendors I can go to to get my JSF implementation. The current Hibernate API will be legacy code too once everyone goes to EJB 3 / JDO. open source is great, but open standards are much better...
David wrote: J2EE has simply gotten so bloated and complex that few can really grasp it all. And since J2EE is the foundation, that's not good. Our applications are complicated enough without all of that baggage. The simpler frameworks, including simpler J2EE subsets such as JSP/servlet + JDBC are enough for many applications. They can always add JavaMail if they do email, or RMI if they need remote invocations, and they can even venture in JMS should that become necessary. However, most of those are not needed by a large number of applications, and the simpler frameworks will help put a stop to managers who choose J2EE when the simpler stuff will make it happen faster and cheaper.
LATEST JAVA STORIES & POSTS
Unit testing is hard. There I said it. Although I have been developing software for the past 18 years I still find that putting my applications through their paces via unit testing is difficult. I have learned the lesson (I'm sure like many of you) the hard way. Unit testing is p...
Continuent has announced support and enhancements to MySQL Server 5.1.30 GA release, the 5.1 production version of the open source database. MySQL 5.1.30 is recommended for use on production systems by the MySQL build team at Sun Microsystems. Continuent Tungsten provides advance...
As a software journalist, there are times when certain vendors will shut the door on reporting opportunities that might represent too much of an "inside view" of their technology or their organization. I've been to more developer events than I can remember where I've been handed ...
Active Endpoints has announced the general availability of ActiveVOS 6.0.2, in response to ever increasing demands for improved process performance and efficiencies. ActiveVOS is an all-in-one, 100% standards-based orchestration and business process management system (BPM) that p...
Just because the web has been open so far doesn't mean that it will stay that way. Flash and Silverlight, arguably the two market-leading technology toolkits for rich media applications are not open. Make no mistake - Microsoft and Adobe aim to have their proprietary plug-ins, ak...
Doing network I/O on the user interface (UI) thread is bad. Most developers know that and can tell you why; unfortunately, it’s still done. At this year's JavaOne, one of the keynote JavaFX demos bombed because the network was slow, something that would be forgivable had the en...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

SPONSORED BY INFRAGISTICS
In every field of design one of the first things students do is learn from the work of others. They ...
There are many forces that influence technological evolution. After a decade of building enterprise ...
2008 is going to be an important year for Rich Internet Applications. Most organizations are deliver...
The OpenAjax Alliance is developing an Ajax industry wishlist for future browsers, using a dedicated...
Infragistics announced the availability of two Community Technology Preview (CTP) User Interface (UI...
The YUI development team has released version 2.5.2; you can download the new release from SourceFor...
ADS BY GOOGLE