I started the conference late afternoon Wednesday with a talk titled "Down-to-Earth Microservices with Java EE". This is the first time I presented this talk and this was a good testing ground for it. The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):
Despite being very late in the day the talk was packed. I've since done this talk a few times already. It is clearly popular, on the mark and well received - even with what I have traditionally observed to be a hostile audience at some venues. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here.
I started the next day of the conference early in the morning with a three hour workshop titled "Have You Seen Java EE Lately?". The talk is principally intended for folks that have not stayed abreast with Java EE, especially past the J2EE era. It is also good for newcomers with little or no exposure to Java EE. This is a talk I had been wanting to do for a while. It is highly appropriate for some venues and gives me an opportunity to share some of the things I have grown to value the most about Java EE over the years. I have done this talk a number of times with various Oracle customers, but this is the first time I did the talk at a conference. This talk, while in a smaller room, was standing room only.
I start the talk with a historical perspective of how the platform has evolved right up to Java EE 7. I then talk about what Java EE really is today and what it is not. The vast majority of the talk is spent covering major Java EE APIs like JSF, CDI, EJB, JPA and JAX-RS. I explore the APIs and Java EE as a whole heavily utilizing Cargo Tracker as a demo mechanism. For each API I do a high level overview of motivation, features as well as explain what makes them uniquely valuable before diving into a representative demo and code walk-through. I finish the talk by discussing the vibrant Java EE ecosystem as well as discussing the Java EE 8 road map. The slides for the talk are below (click here if you can't see the embedded slide deck):
Perhaps I should not be but I was taken by surprise as to what degree some of this is new to attendees. They particularly marveled at the simplicity, productivity, lack of configuration, annotation driven meta-data, lack of complex third-party build dependencies, very lightweight war files and fast deployments that Java EE has offered for many years now. In fact the audience reaction makes it obvious that I should write further about this soon - using some numbers that are bound to be shocking and perhaps unbelievable to some in the community. While these characteristics are already impressive with GlassFish (which is what I used for the demos), they are even better with WebLogic.
I finished the conference in the afternoon with another one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides):
I presented this same talk a few months later at JavaOne. The JavaOne video for the session is here.
The last day at the conference saw a slew of Java EE talks all day from Arun Gupta including "DevOps with Java EE", "Refactor your Java EE application using Microservices and Containers" and "Package your Java EE Application using Docker". I unfortunately was not at the conference so could not attend Arun's talks. I can only assume they were as well attended and well received as they always are.
All is all this was a worthwhile UberConf 2015.