It better be good if it means getting up before noon in Las Vegas. And indeed it was. Developers began congregating at 8 a.m. at the luxurious Venetian hotel to register, plan their agenda for the day, and get a free book signed by the conference speakers, most of whom had written their own books. With a vast array of advanced topics planned for the day, the hardest task facing developers was deciding which talk to attend. For those of you who couldn't make it, the staff and attendees of TheServerSide Java Symposium (TSSJS) have put together this article that captures a lot of the Symposium - both the technical details learned as well as the excitement that occurs between sessions and after hours. The first page covers some of the keynotes, special panels, birds-of-a-feature (BOF) talks and interesting annecdotes about the event that you'd normally would have had to be there to get. Page 2 goes delves deep into 11 of the 36 technical sessions presented at the Symposium.
Conference Stats, Vision, and Kick Off Keynote
TSSJS kicked off with a spectacle of light and sound appropriate for a venue such as Las Vegas: deep thuds of bass, flashes of red light, and elaborate banners draped behind the stage. Floyd Marinescu, General Manager of TheServerSide Communities and author of EJB Design Patterns, welcomed a packed ballroom with an introduction to the Symposium and it's vision, which was to create an event that would bring together the people in our community whose work is causing the ongoing evolution of the way we think about and develop enterprise applications. "Not just people to know stuff, but the people who are doing stuff" was the criteria for the speakers who were all hand picked (there was no call for papers) from the ranks of spec leads, open source founders and committers, authors of key enterprise development books, expert group members, active community thought leaders, and entrepreneurs.
Congratulations were given to the 550 people who were attending the event who were about 75% from North America but also from places as far as Norway and Australia. Interestingly enough, there were only two people from the Las Vegas area. Despite having a 60% larger attendance over the previous year's TSSJS, Floyd re-assured the audience that the speaker accessibility and community feel would be maintained. Indeed, TSSJS had a 1/8.5 speaker ratio compared to the 1/8 speaker ratio from the year before.
After the conference introduction, Salil Deshpande and Tyler Jewell, CEO and COO, respectively, of The Middleware Company, came up on stage to announce the new direction for TMC, formerly known for its training courses on J2EE, EJB, and Middleware Technologies. The new direction? Communities, Research, and Consulting.
This was all of course, announced with a humuorous twist. They did a rendition of 'Fake Interviews' from the Conan O'Brien show featuring California Governor Arnold Schwarzenegger, Homer Simpson, and Elvis 'Middleware' Presley asking them about the new direction. "Middleware is not dead, it is alive and well", exclaimed Salil. This is in effect a new era for TMC as they focus on producing exclusive, vendor-neutral industry research. Also, TSS.com is no longer a 'side-business' for TMC, but the heart of what is now known as TheServerSide Communities (currently comprised of TSS.com, TSS.NET, and MiddlewareResearch.com).
Towards the end of the keynote, the Who's Who list and deck of cards was announced. At the top of the list was Jeff Jackson, Ace of Spades. The two Jokers were Marc Fleury and and Hani Suleiman. Hani of course, had his own take on all the people on the list in his BileBlog.
EJB 3.0: The announcement
By Debu Panda
Linda DeMichiel, Sun's specification lead for EJB 3.0 had a great talk to announce some of the decisions, and discussions that have gone in within the JCP. Everyone was silent in the crowd as they waited to hear if the rumors were correct, and the EJB programming model would be simplified to be more like POJOs... a la PicoContainer, Spring, etc.
This was indeed the case, and polarized the crowd. Many are so happy that finally EJBs will be simple to deal with. Others wanted EJB to focus on real Enterprise issues. There was a lot of coverage in the blogs after this talk, and it will be interesting to see what happens as the specification matures. There were murmors of "Is there room for JDO now?". You can read more about it on page 2.
Aspect Oriented Programming Panel Discussion
Thursday night was the AOP Panel, moderated by Dion Almaer, Editor-In-Chief of TSS.com.
Dion kicked things off by asking the panelists to introduce themselves and what they thought the state of AOP is and how it will affect the enterprise.
Gregor Kiczales, the father of AOP, wanted to clear up what AOP is definitely not. AOP is not AspectWerkz, Spring, or even JBoss. (As he said this, Mark Fleury, sitting at the other end of the panel, jokingly showed the finger). Looking to Hani in the audience, Gregor started flailing his arms and told him to put this in his blog. He then delved into a deep, almost psychological explanation of AOP as a mind altering phenomenon,something intellectually more significant than OOP. If OOP was the opium of the masses, then AOP is a newer, harder drug.
Gregor Kiczales, Rod Johnson, Adrian Colyer,
Ron Bodkin, Cedric Beust, Bob Lee, and Marc Fleury
Rod Johnson, who's involvement in the AOP community is largely through the Spring framework, declared that AOP is mature enough to use in the industry right now and that in fact, it's irresponsible not to use J2EE concepts as AOP, since it is a superior replacement to EJB; AOP is a substitute to container-intercepting method invocations and modularizes cross-cutting code.
Ron Bodkins thinks that AOP has grown a lot. People are using it in the real world and on large scale deployments to the point where we're actually learning about AOP best practices. We are refactoring existing, object-oriented code through AOP pointcuts, removing redundancies.
Cedric Beust had conflicted feelings about AOP. Although it's solving a lot of problems other technologies haven't been able to solve, he's disappointed with with the slow progress of AOP adoption. Like TIVO, whoever has it, loves it but the beauty of it is hard to explain to people who don't use it.
Middleware is just a collection of aspects, said Marc Fleury. He asked the audience how we can leverage persistence, transactions, security, etc. using an AOP programming model. "EJB consisted of 6 aspects, but it was invasive." AOP weaves these services into code, transparently, and EJB 3.0 brings this all together.
During the Q & A, there was a some discussion on how aspects can hold state and the interdependency of aspects and Ron Bodkins talked a little about the 'observer' and how there is ongoing research happening on how aspects can interact.
From the audience, Howard Lewis Ship asked how testing and debugging will work in the world of aspects. Rod Johnson and Bill Burke talked a bit about how unit testing and testability in general, are easier in AOP. You can 'inject' testing behaviours and add exception tests transparently.
Nevertheless, not everybody in the audience was buying into the AOP hoopla. "It is interesting to listen to all your technical blah blah blah; however, developers have a technical problem. There are so many (AOP) frameworks out there claiming to solve our problems but people don't know how and when to use them. What are going to be the key enabling factors taking AOP from 'technical blah blah blah' to something usable? Is it tools, standards? What's going to make us transcend this reluctance to adopt it" asked an earnest Aslak Hellesoy.
EJB 3.0 introduces aspects a la carte. That is how millions will adopt it, explained Fleury. Verticals like banks and Telcos, will make buy vs. build decisions using aspects and other institutions, like the military, will also use proprietary aspects. Reiteraing an earlier point, he described middleware as being rethought in terms of aspects.
Cedric addressed the question by admitting that there are dangers and challenges to working with aspects. Aspects are very low level and writing pointcuts is hard, regardless of the framework you're using, be it AspectJ, AspectWerkz, etc. The current crop of AOP frameworks are not accessible to many developers precisely because they are very low level. We need something as simple as Visual Basic where aspects can be used under the covers.
The panel ended off talking about how economic factors are also key in the adoption of a new technology such as AOP. Gregor described how it was a tight economy that helped with the quick adoption of Java. Rod agreed. "The slow economy is conducive to the adoption of pragmatic AOP offered by the Spring Framework. Incremental adoption is happening, and as people become more secure, there will be wider adoption."
AOP is still maturing and in order to hasten its adoption, we need to educate the masses, not only through books and articles, but through concrete demonstrations. Effective training through demonstrative tutorials, and simpler frameworks and tools will be key to the widespread adoption of AOP. A paradigm shift is close at hand.
Thursday Night Party
After a packed day of intense networking and conference sessions, attendees kicked back for a Venetian style poolside party, complete with music, free drinks and excellent Vegas style catered food. The part was shared between attendees of TSSJS and Veritas Vision, a conference that was also going on at the same time. With the change of pace and the relaxing social atmosphere, speakers, book authors, and senior developers could be seek sharing a round of beers while discussing everything from future of AOP to new open source projects just getting underway. It was a rare opportunity for anyone to sit down and talk to the celebrities face to face. During one round of drinks Marc Flury shared his perspective on the JBoss funding. Then when asked how he felt about being a Joker in Middleware's new "Who's Who in J2EE" card deck, Marc said he thought it was great, and promised a related surprise during the JBoss keynote the next day.
Meanwhile, a crowd of Tapestry fans gathered to cheer Tapestry in Action book author and conference presenter Howard Lewis Ship demonstrated his skills with the snowboard down in the game arcade. Then, following the party, a group of conference speakers and attendees gathered together for even more late night Vegas fun, as TSS Director Floyd Marinescu ordered up rounds of drinks down in the Casino bar. It was quite a night... and yet come 8:00am Friday morning, developers were already lining up for the morning keynote. Now that's dedication.
JBoss Professional Open Source and Projects
as he beholds 'The Joker', Marc Fleury
The Friday night dinner keynote was perhaps one of the most colourful highlights of the conference. Marc Fleury, JBoss CEO, came in from the back of the ballroom dressed as The Joker from batman. Limbs flailing, and a sinister, Jack Nicholson-esque smile. Fleury made his way up to the podium accompanied by a colourful cohort consisting of his wife, Nathalie Fleury, dressed as Catwoman, Hibernate creater Gavin King, who was dressed as the riddler (but looking more like a leprechaun), JBoss marketing director Ben Sabrin as the Penguin, and a JBoss salesman dressed as Iceman.
Fleury opened the talk with a smile on his face, playing his part well when he said "This industry needs an enema!". He went on to talk a bit about JBoss' product line, which includes JBoss Application Server, JBoss AOP, Hibernate, JBoss Cache, Nukes on JBoss, and Javassist. One of the main messages of the keynote was the need to simplify the programming model using aspects and what Fleury calls 'transparent middleware'. Middleware is a collection of aspects, offering various services to programmers such as security, transactions, etc.The current reality of J2EE middleware is that it's comprised of a bunch of tangled specs, requiring EJB developers to know too many system level issues.
and others pose for a snap
Fleury then brought up one of the most detailed, dynamic and colourful slide ever created, showing the the JBoss microkernel and an aspect service layer sitting above it with various services such as clustering, security, transactions, caching, monitoring, and others. Plain Old Java Objects (POJOs) are used inside the lightweight JBoss framework and if we wanted to make them 'remote', we'd simply add a simple aspect to them using annotations.
"Let's get back to Java, a simple (POJO) Java programming model," declared Fleury.
The annotation standard, JSR 175 and the upcoming EJB 3.0 spec were discussed extensively. EJB 3.0 provides 'simple annotations' (elminating the need for XML deployment descriptors), simple defaults, and simple dependencies.
Middleware implemented as aspects allows for smooth, fluid, iterative development, resulting in a clean separation of roles between the System Architect and the Application Developer. This also allows architectural decisions to be made later on in the development process. You can watch the complete video and presentation of this keynote here.
Trends & the Future of Enterprise Java Keynote Panel
Rod Johnson, John Crupi, Gregor Hohpe,
Cameron Purdy, Linda DeMichiel, Mark Hapner, Benjamin Renaud
What seems to be becoming an annual tradition at the TSSJS, this year's 'Future of Enterprise Java' panel consisted of some even bigger names than last year, and was as controversial as ever. Linda DeMichiel, Mark Hapner, John Crupi, Rod Johnson, Benjamin Renaud, and Gregor Hohpe duked it out, debating everything from annotations and standardized tooling, to Web services and JINI.
On last year's panel, John Crupi predicted that J2EE would get harder but admitted that he was wrong, and that annotations will make our lives easier. Linda DeMichiel, EJB spec lead, couldn't agree more. With J2EE 1.5 and EJB 3.0, we will see greater simplifications to development. JSR 175 (Java Metadata), is forging how we think about containers and our view of what a component is. With a less intrusive container, there will be greater flexibility in how we define component architectures.
Linda was asked by the audience whether we'll still need a standardized component model from Sun.
"We will. Components will selectively and declaratively request services from the container, so we need to standardize these contracts," explained Linda. Annotations are basically requests for services. The challenge is how to do this loosely. Annotated POJO's need to execute in different containers and not be tied to any single container.
Rod Johnson and Benjamin Renaud disagreed.
"EJB 3.0 has overused annotations and these will in effect become invasive," countered Rod. He also thought it a bad idea to try to standardize Inversion of Control (IOC).
Too much liberal use of annotations takes away from the semantics of our Code, procalimed Renaud, which could lead to too many people trying to do too many things.
Linda stood her ground and opposed the excessive implicitness of services and contracts and insisted that we need more annotations.
There was also great debate on the subject of standardizing tools. Benjamin Renaud of Oracle advocated that "the future is not us. The future is everybody else," referring to the need to attract and influence non-J2EE programmers, and grow the Java community through simplified tooling.
Rod and Gregor Hohpe countered Ben.
"We can't compete with Microsoft in the tools space," declared Rod. "We need to simplifiy the J2EE model itself. J2EE is the mirage and illusion."
Another illusion Hohpe thought was visualizing your code, which in effect is a way to cover up the complexity, sweeping it under the rug, if you will. "Things become easier (not through tooling) but by having better abstractions in your model." A loud applause from the audience followed.
"Business developers don't care about beautiful APIs," countered Renaud. Although it's important to simplify J2EE, simplified tooling is equally important. He also expained the importance of "innovation before standardization."
Hohpe called this type of innovation "competitive differentiation", to the laughter of the audience.
"Code is king!" declared Crupi.
Cameron Purdy, who introduced himself on the panel as Rolf Tollerud, expressed his dismay at how we only have tools for coders, not for application developers. Cameron was lively on stage, knocking JINI and arguing against Johnson and Crupi that in the real world, EJB apps are NOT distributed.
It was thrilling to see such a diverse panel, with representatives from the big vendors to spec leads and open source celebrities passionately expounding their views on various issues important to the Enterprise Java community. It was like watching a TSS news thread unfold in 3D. Who know's what opinions next year's Futures panel will bring and how people will look back on what was said at TSSJS 2004. Will posterity look back upon these prophets and smile?
Late Night Birds of a Feather Sessions
EJB 3.0 Expert Group
Insatiable conference attendees yearning for even more hard core content, gathered Friday evening for the late night Birds-of-a-Feather (BOF) sessions. And for those who spurned the call of the casinos in favor of these sessions, it was time well spent. During the EJB 3.0 BOF, panelists from the EJB 3.0 expert group lined up to field questions and respond to feedback from the community regarding the proposed changes to EJB 3.0 outlined Thursday. Some of the topics of conversation included:
- Concerns that EJB 3.0 proposals to use annotations to demark transactions and other EJB settings may be too inflexible, since the deployer couldn't change the annotations at deployment time. The expert group responded that EJB 3.0 most likely will include support for overriding class annotations, possibly via a limited EJB deployment descriptor. Gavin followed up by adding that it would make far more sense to include a generic mechanism for overriding annotations as part of JSR 175, the annotations JSR. Sadly, with Java 1.5 nearing it's final state, it's unclear if this mechanism will be available for the release of EJB 3.0. For prospective annotations users, if this is an important issue to you, now is the time to speak up before JSR 175's final draft is released.
- The EJB expert group acknowledged that the idea of buying and selling off-the-shelf EJBs never really took off. In the words of one expert group panel member, "99% of the people using EJB just aren't using it this way." This is a stark and praiseworthy shift in the expert group from the early days of EJB where visions of an EJB component marketplace were widely touted.
- When asked if Aspect Oriented Programming was going to be included in EJB 3.0, the expert group clarified "We're not really addressing AOP in this release. This release is about simplification. Our goal in this release is not to do anything to preclude it or screw up the possibility of including it in the next release."
- Responding to a question about the movement towards lightweight containers, as reflected in the Spring framework, the panel responded: "Yes, you're definitely going too see lightweight containers. The promise of the spec is the ubiquity of the EJB container on the grid." This was followed up by concern from audience members that the spec's requirements for "backwards compatibility" with earlier versions of EJB has the potential to really bloat the application server, impeding the trend towards lightweight containers. At this stage it's very unclear how EJB trademark and certification issues will be resolved for lightweight containers.
- Discussion became very interesting when the subject of EJB 3.0 design patterns arose. Members of the expert group were quick to acknowledge that many of the EJB design patterns that have become almost religious doctrine for EJB developers were really just workarounds for design flaws in the EJB spec. The hope of the expert group is that with the radical simplifications in the EJB 3.0, the need for most of the design patterns would go away. Yet when the question arose as to what new design patterns and best practices will arise, the EJB expert group was short on answers, reminding the community that EJB 3.0 isn't even out in a draft stage at this point.
After the session, TheServerside.com was at the door listening to people's thoughts from the talk:
- Jason Carreira commented in reference to the architectural shift towards lightweight frameworks: "EJB's are dead. Long live EJB." He followed up by adding "I think what they have doesn't need to cost $15k per CPU." Yet while the J2EE software architect community certainly seems interested in lightweight frameworks, it's certainly unclear why major J2EE vendors such as BEA or IBM will want to jeopardize the lucrative sales of their J2EE application servers by making lower cost lightweight containers available.
- Continuing on the "lightweight EJB server" bandwagon, TSS Editor Dion Almaer commented "I don't understand why backwards compatibility isn't optional." His point, it seems, is that forcing developers to install all of EJB greatly impedes the ability of the developer to keep the EJB footprint small.
- Another group discussed concerns about limitations in the current JCP. The concern, it seems, is that when innovation is done within the JCP, rather than using the JSRs to simply adopt and standardize innovation refined elsewhere, JSR's produce standards which to a large part are untested and unproven by large development projects. The good news is that in EJB 3.0, the new EJB 3.0 Entity Bean model will be based to a large extent on the well established and proven Hibernate persistence framework. Yet even the EJB 3.0 expert group didn't yet know what EJB 3.0 design patterns and application designs will look like, namely because you can't have projects using EJB 3.0 until it's standardized. And the unfortunate fall out of "standardize first and prove second" means that EJB 3.1 will likely be cleaning up some of the design issues overlooked in EJB 3.0.
J2EE Performance Tuning BOF
After leaving the EJB BOF, a crowd of 10 or so conference attendees joined the 20 or so people already attending Cameron Purdy's talk on J2EE performance tuning. And despite the late hour, it was well worth it as Cameron discussed performance tuning from end to end, using scenarios from real life applications. Just a few of the topics discussed included the tuning of memory heap sizes, generational garbage collection tuning, serialization overhead versus XML, capacity planning, and throughput impedance mismatches in integrated systems. Developers sat at the edge of their seats, staying for over an hour after the BOF officially ended, while Cameron discussed issue after issue, sharing terrific insights which can't be found in any book anywhere.
and others during a night on the town
Blogs @ TheServerSide Java Symposium