Business-ready architecture. Work with an open source leader.
Try Payara Enterprise
Luxury German Vehicle Manufacturer Migrates from GlassFish to Payara Server
Download BMW Case Study PDF
I work on commercial enterprise projects in big software houses or institutions like banks, telco providers or car companies. I am also interested in research – thus I am trying to combine commercial sphere with activities at the University of Hradec Kralove – and I am finally about to make commercial sphere profit from the research part of my life and vice versa (hopefully).
There are truly many projects. Most of them are pretty common – business logic. On these projects I focus on doing things right, mainly by gathering wisdom from others, more experienced matadors in the field. Reusability and short time to market is my personal hobby in such projects – domain-driven design, just-right test coverage, correct project workflow – the very basic principles present in every modern successful project. But often, one can add a little bit of statistics & machine learning in general to have some fun. For example now we are building a platform to intelligently search in research paper databases. Do I have to say I use Java EE whenever possible ? 🙂
On the other hand, I like optimizations and agent-based simulations. That is where I head with “my research”. There are various projects happening right now and each and every one of them has a different flavor. For example, we have an agent simulation to predict Alzheimer’s disease in the European population. This means hundreds of millions of agents. Runs on common notebook and prediction for next 70 years takes about 30 minutes. And there are plans to further generalize the model. We also have smart-home activities, but these are not my favorite ones to be honest.
Right now, I am undergoing a career change. And of course, my main weapon will be enterprise Java again 🙂
It was right before my eyes all the time. Well, I studied Economics in High School – I never believed I would be able to “write software” in the fist place, I thought this activity is reserved for smart people only 😉 But even though I studied economics and some skills I learned, like accounting, are very useful for me, I was sitting in front of my computer all the time. After High School, I did not even sign up for college in the first place. I was switching jobs the next two years but nothing felt right. That’s when I became an amateur programmer. So I signed up to a University to study Computer Science – Applied Informatics – and here I am 🙂 At first it was tough, because I knew next to nothing, especially mathematics. But now, statistics is my hobby, probably thanks to the great professor who was teaching it.
I am most passionate about so called “indexing” – exploring possibilities, generalizing concepts. There is a huge amount of information – too much for one to learn and utilize. Yet, I often switch my focus for a short while to learn something new and it always pays off. Right now, I am amazed and also a little bit obsessed with Graph APIs and their impact on performance and general compatibility with current style of querying data. This is still new, unpolished and hopefully it will be useful in near future – a year or two.
For my real-world commercial projects, I always used GlassFish. There always was the possibility to pay for support, if necessary. And we did not have to pay in advance. When the support for GlassFish was terminated, there was no real alternative for me, so I started using WildFly. I even built some applications on top of it and it always worked great. In fact, I still use it on some projects or for development. But there always was a big step from WildFly to EAP. Payara Server was an obvious choice when support for GlassFish ended. All my favorite reference implementations are inside and the soul of GlassFish seems to be more alive than ever, but now it is known as Payara Server 🙂
I always found GlassFish availability to be the best model for me in terms of pricing, release cycles and availability. And since Payara Server continues in the same manner, it was a natural choice for the projects I was responsible for.
I use both Payara Server and Payara Micro, but common Payara Server is my favorite one. Building fat jars in real world only brought us troubles and restrictions – the build takes longer, fast redeployments can not be effectively done. Fat jars do little harm for bloated frameworks like Spring, where hundreds of megabytes of dependencies are always carried in the archive. And using a fatjar leads to the same problems. Therefore, by trial and error, I began to be a fan of thin wars – containing business logic only. The redeployment is easy and fast – tens of milliseconds, hundreds at max – for a real world service with database access and a REST API. Our Payara Server is now started in a Docker container. I used the official Payara Docker images to derive our own images. This way, I believe, we will be able to update seamlessly.
On the other hand, Payara Micro may become handy for devices like Raspberry Pi, which we leverage at the University for smart home projects – this where I use it. Such devices are limited both in size and resources. And every megabyte saved counts. But again, we do not have such problems with our backends. Normal Payara Server is already small enough.
Current projects evolving ? The commercial projects are developed, done and handling requests in production – a state much desired by many. I am now in the middle of starting new ones and there will be Payara Server involved of course. For example, the already mentioned smart search on top of research databases. The business logic – a thin war with some statistical algorithms – is deployed into Payara Server running in a Docker container. The project in fact has two services and both are built with pure Java EE and both run on Payara Server. What I like is the option to go Micro whenever we feel the need to do so, for whatever reason. Payara Micro’s ability to “wrap” existing Java EE project and not interfere with the application architecture and build itself is what I see as a huge benefit.
EclipseLink as a JPA implementation is what I always say first. I just like it more, it is trouble-free. I like the style of diagnostics API. I even made a little mobile application just for myself that is able to connect to Payara’s API and monitor the server and the applications deployed. Just to observe how my projects behave under load in non-production environment over time.
I also like the documentation for both Payara Server and Micro. All the possibilities are clearly explained and as a developer, I immediately know what are my possibilities.
Recently, I discovered integration with Hazelcast, which is something I have been avoiding for a long time. Now it became my favorite enhancement!
Well, Java EE 8 obviously. But of course, there is no chance this can be there yet ! 🙂 Otherwise, I am satisfied. Maybe more people like Ondrej Mihályi who share their knowledge with the Java EE community and Payara allows them to do so.
I see Payara Server to be a perfect mix for smaller projects, where budget are tighter, but growth is expected. One can download Payara Server and start using it as a regular server for development and production without paying a single penny. When the project grows and support is required, it is there for you. Also, the pricing is very clear from the start. It has strong background – there are many companies using it and the demand is growing. This was a major selling point for me. If there is a demand, there is progress. The release cycle is optimal and the migration between versions is always smooth – there is always a migration guide available.
I often build a project and leave it for the company to use it or further enhance it. By giving them Payara Server, I feel like giving them big amount of certainty. They get it for free and there is help if required in future. And that is what matters to me.
I run my own blog, www.pavel.cool. People can also reach me on Twitter where I am probably most active. I recommend having a look at Java EE Guardians and MicroProfile movement, where Payara is also involved.