Monday, November 12, 2018

Jakarta EE action at Devoxx Belgium 2018

Devoxx Belgium 2018, my favorite Java (& more) conference in Europe is just around the corner with the Deep Dive sessions starting tomorrow (Nov/12th-13th), followed by the three main conference days (Nov/14th-16th).

I thought I should write a quick note to point out that there is a lot of Jakarta EE action happening with eight Jakarta EE sessions you can easily query for here, or let me save you a click and paste directly the results below:

JakartaEE - The New Home of Cloud Native Java by Ivar Grimstad, Dimitris Andreadis , Dmitry Kornilov, Gaël Blondelle, Kevin Sutter, Markus Eisele, Ondro Mihályi (Conference)
From Java EE to Jakarta EE by Dmitry Kornilov (Quickie)

The Jakarta EE Community BOF by Dimitris Andreadis, Ivar Grimstad , Dmitry Kornilov, Kevin Sutter (BOF)

Implementing Microservices with Jakarta EE and MicroProfile by Ivar Grimstad, Kevin Sutter (Deep Dive)

Speed Dating with Jakarta EE by Kevin Sutter (Ignite)

Jakarta EE: The Future of Cloud Native Java is Open! by Gaël Blondelle (Conference)

Java EE, Jakarta EE, MicroProfile, Or Maybe All Of Them? by Sebastian Daschner (Conference)

Jakarta EE / MicroProfile + WebStandards, On Stage Hacking #noslides by Adam Bien (Conference)



I am happy to be participating in two of those sessions:
  • The Jakarta EE Community BOF, on Wednesday evening at 20:00. An informal Jakarta EE community gathering of like minded developers, specification leads and Jakarta EE representatives from different companies. Please note that the event will be relocated(!) from the BOF 2 room to Kelly's Irish Pub downtown Antwerp, meaning we are turning the BOF into a mini symposium with free drinks to accompany great discussions! We will be tweeting details for registering for the event, so stay tuned and look for those tweets from @dandreadis, @ivar_grimstad , @m0mus, @kwsutter.
  • JakartaEE - The New Home of Cloud Native Java, on Friday at 11:40, a panel discussion on the present and future of Jakarta EE coordinated by Gaël Blondelle from the Eclipse Foundation, and representatives from Cybercom, Red Hat, Oracle, IBM, Payara & Lightbend.
 There are also other fellow Red Hatter presenting, so check out their sessions or meet us at the Red Hat booth:
The fun is about to start - see you very soon at Devoxx Belgium!


 

Wednesday, September 26, 2018

Colloquium - Making sense of enterprise open source software

The coming Friday, Sep/28th @ 2pm, I have the pleasure to be talking at the Department of Informatics of the University of Fribourg on the subject of: "Making sense of enterprise open source software".

Copying here the Abstract from the event flyer:
Red Hat is a leading enterprise software provider that has built a business model around something that is perceived as "free": open source software. In fact, last year Red Hat managed to sell about $3 billion dollars of "free" software and services to the likes of Fortune 500 companies. How can this be possible? How does an open source business model work in practice? Where does it make sense? Why open source has prevailed in so many different technology domains?

Come to this talk to discover the nuances of enterprise open source software seen from the point of view of JBoss, a popular open source application server project and a start-up company built around it that was acquired by Red Hat back in 2006 to form Red Hat's Middleware division. Also, learn the secrets of how one becomes a successful open source software developer, should you want to get involved with the open source movement, build a career out of it and have a lot of fun on the way.
The event is hosted by Prof. Philippe Cudré-Mauroux, whom I'd like to thank for the invitation. It is also perfectly timed so you can be back in Neuchâtel on time for the start of the Fête des Vendages. :)

See you there!

/Dimitris



Tuesday, September 18, 2018

Java EE CTS goes open source!

Java EE CTS stands for Java EE Compatibility Test Suite. It's the proprietary testsuite developed initially by Sun and later by Oracle that can be used to verify that a Java EE implementation is indeed compatible. Or else, it's a huge testsuite that has been enhanced over the years to ensure compliance with the latest Java EE specifications. It tests both individual APIs, as well as the platform and the provided configuration profiles (Full and Web) as a whole. For Java EE 8 the CTS contains more than 44k tests and that doesn't include some individual Test Compatibility Kits (TCKs) for a couple of specifications that were open source from the start, like CDI and Bean Validation.

Up until now getting access to the CTS involved negotiating a license with Sun/Oracle. I remember the early JBoss days and how we were (I believe) the first open source Java EE implementation that got access to the CTS in exchange of a seven figure dollar amount, which was a lot of money back then and it only became possible because JBoss had just received funding from a Venture Capital. As an open source project and without proper funding we wouldn't have any chance of getting to it.

But that was the past. As of Sep 14, 2018 you may just as well access the CTS here:

https://github.com/eclipse-ee4j/jakartaee-tck

The Java EE CTS is on it's way to be transformed into the Jakarta EE 8 CTS. The initial code drop has been done and there is some IP checking to be completed while some further massaging of the code is necessary before it can be called Jakarta EE 8 CTS. But we are not far from that milestone and that would get us a step closer into the re-incarnation of Java EE as Jakarta EE. (BTW, you can check the overall project status here).

The CTS holds a special place in my heart because that was the first (surprise!) project I was asked to work on when I was hired by JBoss back in 2004. I was a volunteer committer on JBoss when I've got the call by Mark Fleury to join the company. (For more details, check out this blog entry.) I was told I would work on "Core Development" but no one told me on what exactly. As soon as I started, Sacha Labourey (now CEO at CloudBees) broke the news to me: my first major assignment would be to help complete J2EE 1.4 certification for JBoss 4.0.

The core development team had already managed to bring the TCK up to around 80% pass rate but, as with most things, the hardest parts were left for the end. Interoperability testing was one of the toughest areas of the testsuite that involved calls between JBoss and the Reference Implementation (RI). Different types of EJBs deployed on both servers were calling each other and transaction and security context had to propagate from server to server over RMI/IIOP - which really meant CORBA underneath.

JBoss had an amazing implementation of RMI/IIOP put in place by a bunch of developers with Francisco Reverbel as component lead and committer on the JacORB project. There was even a published paper that explained the technological innovations entitled: "Dynamic Deployment of IIOP-Enabled Components in the JBoss Server". In short, while every other application server out there required you to pre-compile the RMI/IIOP Stubs, JBoss could generate them on the fly upon deployment. Not only that, but the dynamic stubs could be transported over the wire to clients accessing the server. On the flip side, the implementation was quite complex because there was a lot of classloader magic involved to pull this off.

At that point I've realized that one of the reasons I was hired was that I was the resident CORBA expert in my previous company. Which came really handy after I've found out that the interop testsuites were failing not due to some nasty bug, but simply because a whole lot of functionality was  missing  - the dreaded CSIv2 support. (Common Secure Interoperability Protocol Version 2 - a protocol implementing security features for inter-ORB communication.)

Which meant that I've had to go and read the OMG specifications and implement the missing protocols from scratch, but also spend an enormous amount of time analyzing and debugging the low level message exchanges between the different servers. Apparently not everything was described sufficiently by the spec, you've had to figure out how the different implementations actually behaved. And that was before the RI was opensourced, so I didn't even have access to the code I was testing with.

The CTS itself seemed like a monster. It was the largest testsuite I've ever worked with, consisting of something like twenty to thirty thousands tests. Not only it was challenging to setup and implement the necessary test drivers to link your implementation to the testsuite harness, but running the tests themselves took a lot of time, in the order of hours for the different parts of the testsuite and days if you wanted to run everything. We did have periodic CI-like testing for the main JBoss testsuite back then but not for the TCK.  We run the TCK on our local machines.

To make it even worse, interoperability testing was the most resource hungry part of the testsuite. A Swing GUI (jvm1) was invoking a test client (jvm2) that was accessing the JBoss server (jvm3) that was calling the Reference Implementation (jvm4) or the reverse, with both of the servers using a back end database (jvm5) to store data. Those JVMs plus your IDE of choice to step through the code could easily bring a beefed up laptop down to its knees.

Passing the TCK became pretty much an obsession. I didn't have holidays that magical summer of 2004 in which Greece won the Euro, Athens was hosting the Summer Olympic Games and I've had to earn my stripes as a Core Developer working around the clock on the coolest company on the planet next to some legendary JBoss Developers of the likes of Adrian Brock, Scott Stark, Bill Burke, Thomas Diesler and others.

As it came to be, passing the interop CSIv2 tests was the last remaining piece of the puzzle that sealed our J2EE 1.4 certification and lead to the release of JBoss 4.0 on Sep 20th, 2004, exactly 14 years ago. You can still read in the relevant What's New in JBoss 4 release notes the announcement of JBoss 4 as the industry's first officially certified J2EE 1.4 application server.

Passing the CTS was a huge boost for JBoss. It meant that we could really be in the same league with the big guys and we could start chasing competitive migrations from the other eighteen J2EE 1.4 compliant implementations. That was the power of standards in general and Java EE in particular, offering choice to the developer and this is still the reason why standards are important: so that portability is possible in this brave new Cloud Native era.

An open CTS/TCK levels the playing field, reduces the barrier to entry and allows new implementation to compete on features. It also facilitates collaboration between creators and implementers of new APIs and the broader community. It took some time for Oracle to let Java EE free but they finally did it and they should be applauded for this. It is now up to all of us to make Jakarta EE a success.




Wednesday, September 05, 2018

Let's meet at the Red Hat Forum 2018 in Zurich!

September 11th is a difficult date to forget, however, this time for a good reason: it's the day the Red Hat Forum 2018 will take place at the Arena Cinemas in Zurich. For those that have attended the RH Forum in previous years you already know it's the place to be and it's just getting better every year. For those that haven't been there, I suggest you take a look at the Agenda.

It's a full day event with keynotes and panel sessions happening before lunch. This year we are lucky to have Jim Whitehurst, Red Hat's President & CEO keynoting on Digital Transformation and how Red Hat's open culture can help you perform this journey. There are other very interesting sessions (many in English!) with leading customers and partners sharing their experiences, including Swisscom, Accenture, SBB, SAP and Microsoft (with whom we are best friends now!), as well as Kiki wearing something red and helping our Country Manager Léonard Bodmer run the show. :)

In the afternoon we split into four parallel tracks with case studies and technical presentations taking place in the cinema rooms. There are very interesting topics presented from customers and partners and I suggest you first take a look at them, but if you are more into tech stuff you may just as well join as at the Red Hat Technology Deep Dive Track that--with the help of Thomas Heute--we've organized this year, as follow:

  1.  Pavol Loffay, speaking on very practical aspects of "Observability with Istio Mess".

    In this presentation we will walk you through telemetry integration in Istio service mesh. You will learn how observability pillars like metrics and traces are nicely provided by the mesh and in addition to that how services themselves can enrich this information. We will be demoing Kiali, Prometheus and Jaeger on an OpenShift environment.
  2.  Yours Truly, on the future of Enterprise Java - "Java EE is Dead! Long Live Jakarta EE!"

    Last's year events were cataclysmic for Enterprise Java: Java EE 8 was released, the MicroProfile project produced 2 releases and 7 new microservices focused APIs, and both of them moved over to the Eclipse Foundation with Oracle choosing to open source everything! What has happened? Jakarta EE, the successor to Java EE, is alive and kicking and aims at aligning Enterprise Java to the fast pacing reality of a brave new Cloud Native world. Why this is important to you and what you can do about it? Come to this session to find out.
  3. Michael Vorburger & Erik Jan de Wit on a super fun joint presentation showcasing a way of "Teaching Programming using Minecraft on OpenShift".

    Computers used to be these "magical tinkering machines" when we were younger. Today, the challenge is to get children excited about learning programming by reducing the time to set up and get started right away in a gamified environment they already love - like Minecraft! We'll show you how with Kubernetes, OpenShift and Minecraft we can progressively do just - at first using our ScratchX extension to get started with graphical programming, and then with a push of a button go to a full development environment set up to start learning and teaching programming. We'll set up an Eclipse Che IDE with continuous builds of the modifications, and a Minecraft server with our OSGi extension that hot reload changes. All code used in the demo of this project is open source and available to anyone.
All fours presenters are based out of Switzerland, are deeply involved with Red Hat product development and would gladly meet with you (and the Geek inside you) at the technical track or the Red Hat booth, to talk about the projects/products we are working on and just about anything Open Source. We would also be very interested to listen to your concerns and experiences with them, as well as hear about any interesting projects you are working on.

We are just one week before the event so if you haven't already registered to attend the Red Hat Forum (which I should mention is free, as in beer, thanks to our beloved Partners), I suggest you do so ASAP and register now - there might still be some available slots, so hurry up!

See you in Zurich!

/Dimitris

Sunday, November 05, 2017

Conference action - from Soft-Shake in Geneva to Devoxx in Antwerp

Fall is a busy conference period and parallel to our team's ambitious WildFly and JBoss EAP release goals I always try to squeeze in a few days into my schedule for opensource advocation and meeting with our communities.

So the week before I've had the pleasure of presenting on WildFly Swarm at Soft-Shake'17 in Geneva. It's a short 1.5h ride with the train from Neuchâtel so it feels pretty much local: you can get there, present and be back for dinner. And it's also very much francophone, although, they do accept talks in English.

If you don't know about WildFly Swarm, our sister project to WildFly, I suggest you check it out. Especially if you come from the Java EE direction, WildFly Swarm facilitates the transition to developing Microservices and Cloud Native applications. It also implements the Eclipse Microprofile specification.

The latest published spec for Microprofile is version 1.2 and you can get a very nice introduction about what it includes here.  If you want to try out Microprofile v1.2 on Wildfly Swarm check out this Tech Preview.

Now within less than 12 hours I should be on my way to the annual Devoxx.be pilgrimage.

  • If you are around on Monday evening, come over to the WildFly Community BOF at 20:30. It's been an exciting year for Java EE, with the release of Java EE 8 and the announcement of the move of Java EE to the Eclipse foundation under the Eclipse Enterprise for Java project (EE4J). Coupled with the fast paced Microprofile releases and the Microprofile effort also moving to Eclipse, and we have a very different landscape carved up for Java EE going forward. So do come to this BOF to discuss the latest developments and how they are affecting the WildFly community projects. I will be co-hosting this with Edson Yanaga, Director of Developer Experience at Red Hat who also has a deep-dive session in the morning.
  • Then on Thursday evening I am participating at the Opening Up of Java EE panel discussion (room 6, 17:50) hosted by David Delabassee alongside distinguished members of the Java EE community, Mike Croft, Ivar Grimstad, Martijn Verburg and Steve Poole. If you are interested in the future of Java EE and it's re-incarnation as a completely open Eclipse project, this is the place to be.
See you all very soon at Devoxx in Antwerp!

/Dimitris




Wednesday, August 16, 2017

Red Hat Forum 2017 in Zurich!

Another installment of the Red Hat Forum will take place on September/12th in Zurich, this time at the Arena Cinemas at Sihlcity where other tech conferences were hosted in the past.

This is a full day event with interesting keynotes, a panel discussion and four different tracks for people passionate about Open Source Innovation. It is also a great place to learn the latest about Red Hat Openshift and other Red Hat/JBoss Cloud technologies, meet and share experiences with fellow professionals, experts and Red Hat partners.


Together with Red Haters Thomas Heute and Hannes Sowa we are presenting at a special Red Hat Technical Deep Dive track. My talk will be introducing you into Java EE and Microservices with WildFly Swarm. If you are interested in discussing the future of Java EE in the Cloud or any other JBoss EAP/WildFly related topic, come to my talk or look for me around the Red Hat booth. I'm very much interested to hear about your concerns and experiences related to your cloud transformation journey.
 
You can check out the Agenda  and register for the (free!) event here. There might still be some slots available, so hurry up!

See you in Zurich!

/Dimitris

Wednesday, May 24, 2017

Voxxed Days Athens - Recap

After a very successful Voxxed Days Thessaloniki last October, it was now Athens' turn to host the popular event series, and another chance for yours truly to visit the motherland, talk about the interesting stuff we are doing here at JBoss/Red Hat, meet with old friends and make new ones.

Voxxed Days Athens was very well attended with something like 450 participants, numerous sponsors and a great lineup of international and local speakers.

I very much enjoyed the talks of
  • Johan Janssen on "the Internet of Lego Trains" - I guess not so much about using Akka Actors, rather mostly about doing stuff with RaspberryPis & Legos.
  • Heather Vancura on "the JCP - Java Community Process" - being actively involved with Java EE for the past 15 years, I'm quite familiar with the JCP, but that was the first time I've actually got to meet Heather in person; I guess, it's never too late.
  • Dimitris Livas on "Continuous learning of Professionals in an evolving world" - very interesting approach of applying agile development principles not for developing systems but actually developing individuals. I'm keeping a personal note to learn more about it.
  • Yours Truly on "Turning your Java EE Monoliths into Microservices using WildFly Swarm"- I very much enjoyed giving the talk and I'd like to thank the populous and lively audience that attended. You can find the slides from my presentation here
  • Panagiotis Moustafellos on "360 monitoring of your services" - in this distributed cloud-based microservicey world it becomes all the more important to be able to monitor/diagnose/trace the execution and runtime behavior of your services
  • Panos Astithas on "Better security and privacy for your web apps" - great security tips from a firefox guru.
and finally
  • Douglas Crockford's totally inspiring closing keynote on "Numbers" - the night before I was lucky to sit almost opposite to him at the speaker's dinner in which he was mostly staying quiet; until the moment I started talking about how the Latin Alphabet originated from the Greek Alphabet, which built on top the Phoenician one, which innovated in the sense of transcribing sounds rather than symbols/ideas that was revolutionary for that time and allowed different peoples to use it and express their own native language. Apparently Douglas knows this stuff better than me, which explains to some extend his passion for programming language design. (I hope this doesn't sound Greek to you).
Comparing Voxxed Days Athens & Thessaloniki, I think the latest event felt more organized and especially technical support for the speakers was much better. On the down side, I've attended one talk at the Silk-B room and it was relative small for the number of people that wanted to get in. Also, the cinema format of Devoxx events is probably more preferable when it comes to the size of the rooms and the guaranteed good visibility for all.

Those are just minor considerations for future events, because the team and volunteers behind Voxxed Days Athens did a fantastic job organizing such a high quality event. There is a vibrant community of developers in Athens and events like this provide an excellent opportunity for people to get together, socialize and learn from the best, right there at your doorstep. I can only hope there will be more of that.


See you hopefully soon!

/Dimitris