TSS Symposium Europe - Day 1
The symposium kicked of with a keynote session by John Davies, the CTO of C24. Johnâ€™s address mainly covered the choice of technology stack in the investment-banking sector. It was heartening to hear finally Jini and JavaSpaces are being adopted as a mainstream technology for realising enterprise middleware. John also mentioned the increasing acceptance of open source software like Maven, Spring and Hibernate in the banking arena. Maven is increasingly becoming the build tool of choice, despite the criticisms by most who have never had the good fortune of using it and just want to jump on the bandwagon on whining about how complex Maven is. It was also interesting to hear how big investment banks are shying away from full-stack J2EE containers and instead using Tomcat along the lightweight persistent frameworks. We will have to wait and see whether this trend would be reversed with the adoption of JEE 5.0 and EJB 3.0. Another interesting point was that Java 5 is being adopted for the performance gains more than the new language and API features.
The next session I attended was by Geert Bevin on flow and continuations. Geert did a good job explaining continuations at a conceptual level. It is a quite powerful concept and quite affective for complex control logic that is difficult to solve with primitive control constructs available in modern programming languages. Geert , then showed how continuations were implemented in the RIFE web application framework. It was interesting how RIFE implemented pause and continuation by byte-code amendment and taking a snapshot of the stack frame. I am not sure how efficient this is. It would also be interesting to see whether a future version of Java language would have language level support for continuations.
Next session was something I was eagerly waiting for, Gavin Kingâ€™s session on Seam. I was a bit disappointed with the session as a whole, as Gavin spent half of the session on how flawed was the whole concept of stateless architecture and criticising dependency injection and some of the popular DI frameworks. Al though, some of Gavinâ€™s arguments were valid and interesting, the point on HTTP session replication and the Servlet specification mandating a call to
setAttribute to enable session replication was factually incorrect. Though, I have always had the same opinion on developers being concerned about using stateful session beans, because of state replication overheads in a cluster, however having no inhibitions in dumping everything and the kitchen sink into the HTTP session. All in all, Seam appeared to be an interesting framework for integrating JSF and EJB component models with a heavy emphasis on stateful session beans.
Mike Keith presented a session on EJB 3.0. It was more on the component model rather than JPA. I am not sure I quite like this concept of being able to inject only certain kind of references into only managed components like EJBs, Servlets etc. This will encourage the developers to write everything as an EJB or a Servlet. I am looking forward to Mikeâ€™s session on JPA tomorrow.
I was really in two minds about whether to go for Gregor Hohpeâ€™s session on SOA or Ross Masonâ€™s session on Mule. Finally, ended up at Rossâ€™s session because of the recent work I have been doing with Mule. The session was pretty basic, didnâ€™t get to know much more than what I already knew. However, had an interesting chat with Ross on roadmap for Mule.
Last session for the day was by Cedric Beust on TestNG. Junit has revolutionized the way we test in the last five years or so. It has been a wonderful framework. However, it has also shaped our psychology and mindset on jow we do testing. This is more of the fault of us using JUnit for something it was not intended for. Junit is a unit-testing framework and by design has an extremely stateless paradigm for testing. This doesnâ€™t really fit into the more complex requirements of functional, component-level and system testing. To test a complex piece of functionality you often need to execute a set of tests in a stateful context, and this is what TestNG offers. Cedricâ€™s session was the best of the day. It was quiet relieving that TestNG annotations can use either Java 5 or Javadoc tags for JDK 1.4.