Auteur: Tom Scholten

  • JEE #1: Understanding JEE

    I’ve been working with JEE for quite some time now, and for a while I’ve wanted to write a series of blog posts about it. There are a couple of reasons for this.

    First, I’ve always felt that there is a lack of good online resources that explain the essence of JEE and provide a clear, logical path for learning it. Second, writing is a great way for me to deepen my own understanding, especially when it comes to the more detailed or nuanced parts of JEE.

    Throughout this series, I will use the term JEE to refer to both Java EE and Jakarta EE. Since Jakarta EE is essentially a continuation and renaming of Java EE, I will treat them as the same thing. While some specifics may differ, the core concepts and principles remain fundamentally the same.

    What is JEE?

    JEE is essentially a collection of documented APIs: it defines what it should be able to do, but not how it is implemented. Similar to Java itself, those implementations are left to vendors. Depending on the vendor, you might end up with a free, open-source solution or a commercial, fully supported one.

    Although the abstract description of JEE is similar to that of Java itself, they differ in the goal of the APIs. Java provides APIs for a generic all-purpose programming language, while JEE focuses on APIs for building enterprise applications. As a result, they can be, and often are, used together.

    What is an enterprise?

    Enterprises are large organisation that require applications to be scalable, secure and reliable. JEE provides these requirements so the developers can focus on implementing business functionality.

    Documentation often describes JEE in terms of the multi-tier architecture of enterprise applications, where it mainly covers the web and business tiers. I find that framing somewhat confusing and prefer to describe JEE as focusing on the back-end parts of a system. Still, understanding those tiers can be important in certain situations, such as when creating deployments.

    Servers and containers

    To deploy a JEE application, a JEE platform is required. This platform provides concrete implementations of the JEE specifications and forms the runtime environment in which applications can operate. The JEE platform runs one or more JEE application servers, which are responsible for all configuration related to non‑functional concerns such as security, transactions, scalability, and the definition of external resources like databases and messaging systems.

    Within an application server, JEE applications are deployed into containers. These containers act as the bridge between the application and the server environment by binding externally configured resources to the application at runtime.

    In a traditional, centrally managed setup, a JEE platform typically consists of multiple application servers whose configuration is fully controlled by a dedicated platform team. Development teams integrate their applications with these servers by relying on agreed‑upon naming conventions, which allows the application code to reference server‑managed resources without being tightly coupled to their concrete implementations.

    Why JEE today?

    Personally, I am still looking for a properly convincing reason on why to use pure JEE over alternatives like Spring Boot, Quarkus or Micronaut. JEE doesn’t provide an end-to-end developer experience by itself to quickly and easily run, test and deploy the software I am developing. But it’s probably the most mature technology in the Java ecosystem to bring forward enterprise applications, as it’s used in some way or another by the modern alternatives named above. That’s why it’s relevant to understand JEE to know how and why things work in the way they do.

    If I would start a new project today, I would use one of those modern alternatives. But we should not forget that most of our work consists of maintaining and further developing software that has been in operations for a while. We don’t always have the choice on what technology we are working with.

    We should admire more the classic technologies that are still used today, as they still solve the problem there was initially. We should be aware of it, and it may come in handy in the future.

    In the next post of this series I would like to look at how the vision of JEE is brought into practice.

  • Un costume

    Ma famille m’a offert un costume pour mon anniversaire, parce que je n’en ai pas et je dois porter un au mariage de ma nièce le premier novembre. Donc, vendredi dernier, je suis allé à Haarlem avec ma mère pour le choisir. Cela n’a pas pris longtemps, j’ai choisis un costume bleu foncé. Après, j’ai aussi acheté des nouvelles chaussures noires qui correspondent au costume. Ce qu’il me reste à chercher sont une bonne ceinture et une nouvelle chemise.

  • Match de foot

    Qu’est-ce que c’est plus amusant que regarder un match de foot sur le canapé pendant le soir? Quand on demander ma copine, elle dira: tout. Mais, elle n’est jamais allé a un match dans un grand stade. Quand on a fait ça, ensuite on peux amuser le foot à la télé.

    Samedi soir, nous allons au match de l’Ajax contre le Sparta. Ça verra un match excitant, parce qu’ils ont autant de points. Pendant le match, nous boirons une petite bière et je vais elle apprendre les chansons du club. C’est pas difficile. Il ferra froid, donc je vais acheter une belle écharpe rouge pour elle.

    J’espère, bientôt, elle veut regarder le foot ensemble sur le canapé.

  • Un diner de vingt-et-un

    Le weekend dernier, ma sœur a fêté son anniversaire. Elle a eu 21 ans, donc il fallait organiser un dîner de vingt-et-un.

    Mes parents ont vidé la salon et ils ont dressé une grande table, pour recevoir 23 filles et un garçon. Un cuisiner est venu pour faire six plats de dîner. Le copain de ma sœur et moi étions les serveurs.

    Pendant le dîner, tout les amis de ma sœur ont fait un discours. C’était très agréable.

  • Deux semaines de congé

    Aujourd’hui, c’était mon dernier jour de travail de l’année. À partir de demain, j’ai deux semaines de congé. Ça sera la première fois que je prends congé si longtemps depuis qui j’ai commencé mon travail.

    Dimanche, je vais déjeuner chez mon frère. Lundi, je vais diner chez mes parents. Le mardi après, ma copine et moi allons en France pour le réveillon. Nous rentrons le sept janvier.