My final session of day one here at JavaOne was presented by Larry Cable, VP and Architect for WebLogic Server at BEA Systems (now part of Oracle). Larry deserves kudos for presenting a session that was a wide look at the concepts of Server Side java and the direction it is heading in, instead of using the hour as an opportunity to flog some WebLogic features and licenses. Maybe he knew better than to try that with the expectant crowd that packed the room!
He began be reviewing the history of server side programming, covering the pre-J2EE world of proprietary interfaces offered by CGI, ISAPI and CORBA, through DCOM and ASP to the first release of Java 2 Enterprise Edition. It seems odd to hear somebody recall the days of Containers being state of the art and the fact that POJO’s hadn’t been discovered at that point in time. He went on to say that one of the best things about J2EE at the time was the deployment and packaging model it brought to the world.
Larry continued with a few more slides to highlight the progression of key specifications with each J(2)EE release but the main point he delivered regarding Java EE was the fact that it has been an immense source of inspiration and frustration for us over the years. The combination of that inspiration and frustration has yielded some fantastic new technology outside of Java EE though, the multitude of open source frameworks we have used, or use today such as Hibernate, Spring, Struts/Shale, Velocity and so on are all gains from the ‘pain’ of J2EE.
Next up was an overview of what’s going in to Java EE 6 without going in to too much detail the highlights are:
- EJB, JPA evolutions
- Addition of annotations to the Servlet Spec
- Debugging for other languages
- JAX-RS, that is a set of APIs to respond to the Rest style of web programming
- Profiles – Allow vendors to create a platform of hand-chosen Java EE components, for example a basic ‘Web’ profile could be made up of:
- Common annotations
- Debugging features for other languages
So with all that in mind, we made it round to the title of the session and looked at ‘What’s Next’. Larry divided the technology advances he sees coming down the pipeline in to two distinct categories, the first contains the programming models, tools and integration & interoperability solutions for putting applications together. The second category was the features required by the enterprises, he referred to them as the enterprise-ilities:
Reliability, availability, scalability …
In the programming model he sees that corporations view Java as essential for enterprise now because of its rich ecosystem and the fact that it is multi-vendor, standards-based and proven. This seemed like a pointer to Java being the programming language of choice in the enterprise in the future but, given the rise in popularity of dynamic languages such as Groovy/Grails and others, I’m not so sure. The folks over at the No Fluff meet-up the previous night would definitely argue that and point to successful uses of Groovy and Grails in large scale enterprises such as Mutual of Omaha and LinkedIn.
With time quickly winding down, we got a quick look at trends in what Larry called the ‘application architecture’ area. To be fair he caveated this section by saying it was very prone to being a buzzword minefield but you can’t ignore the fact that huge corporations are throwing a lot of money at Enterprise SOA and creating Software as a Service, for internal customers at least. For me the best part of this section (something I will take back to my own company and share with colleagues) was a reference to the “Market Hype Cycle” produced every year by Gartner, if you haven’t seen it before and work for a large corporation, you should probably take a look…Be warned it could lead to sudden-onset depression though!
In IT Operations trends he is seeing a lot of data centre consolidation leading to an increased number of larger server farms, providing shared pools of computing resources using large numbers of commodity pieces of HW. In addition there will be much more server virtualization and closer auditing of costs and usage of hardware so the IT Operations organisation can chargeback real costs to the business units they serve.
There is a real need for a better way to package applications and manage dependency graphs and deployments now and Larry predicted that OSGi would rise to meet that challenge. Runtime configuration should be optimizible to achieve faster startup, restart, and failover times.
He said the JVM will see advances some of the following advances: Much larger heaps, optimized throughput for garbage collection, possibly with deterministic or thread-based GC and better telemetry because operations teams need to be able to monitor JVMs on enterprise servers that potentially run for long periods of time.
With that, we had already run over our allotted hour and unfortunately didn’t have any time for questions and answers but if I see Larry around in the next couple of days I’m going to try and get his thoughts on whether he see’s languages like Groovy / Grails being picked up in the enterprise…