adam bien's blog

Building a Healthcare Archive Product With Java EE 7 📎

Marco, please introduce yourself

I started with the first version of Netbeans on a SUN SPARCStation 20. After that I participated in the development of a proprietary application server and started to study J2EE Patterns.

What are you building with Java EE?

Now I am developing a Legal Archive System (LAS) for the Healthcare, but our plan is to extend outside the Hospital boundary and offer the same system to other markets. LAS is a distributed application running on Glassfish 4 application server. Agents are running on plain Java SE. The Agents are controlling Media Producer Robotics to handle the security copies on BD or LTO Library.

Which application servers, tools and IDEs are you using?

I am using VisualParadigm for the analysis, NetBeans 8.1 and Glassfish 4.1. All my projects are Maven based. The artifacts are deployed into a Nexus repository. I also use Nexus also to store proprietary artifacts that are not available in maven central repository. All the projects are build using a Jenkins CI server. I use Jenkins also to run the SonarQube metrics and as last step to build the Docker images. Actually I am also testing Rancher rancher.com as central Docker Container orchestrator for the internal product test environments. Docker greatly increases the test environments maintenance.

You attended the airhacks workshops at Munich's Airport. What surprised you the most?

I was happy to throw away the old J2EE Patterns and replace them with stock Java EE features. The Boundary Controller Entity pattern was enlightening.

How much code have you deleted after the workshop?

I try to convince my boss to introduce a price for the developers in my team based on the SonarQube statistics. The one with the least written, but most deleted LoC wins the price.

How important is the Java EE standard to you? Is your code dependent on any proprietary application server features?

The software developed by my team is a product. Our work does not ends with a WAR or an EAR but include also the deployment into the production environment. In the earlier versions we used MS-DOS batch scripts, today I introduced Docker. Our product comprises a collection of Docker images. Thus we need deep knowledge about the application server configuration and so we are not interested in the WAR portability.

However: I avoid the usage of proprietary application server features; it is easier to find answers for plain Java EE questions in the internet.

Is Java EE productive? What is your opinion?

J2EE with the corresponding patterns was difficult to learn and productivity was low. You spent more time with the infrastructure, than implementing the business logic. Java EE (5+) fixed that

Is you company hiring Java EE developers?

Yes, we are hiring! Java EE experiences are welcome but also HTML, CSS3, AngularJS competences are expected. We have lot of work to do for the next development iteration. If you are interested to work with Java EE 7 and some hot stuff, contact me on twitter: @marcomontel

Take a look at the Java EE 8 APIs. Which of the APIs are most interesting / important to you?

I'm the most interested in:

  1. JSR 370: JavaTM API for RESTful Web Services (JAX-RS 2.1)
  2. JSR 345: Enterprise JavaBeansTM 3.2
  3. JSR 368: JavaTM Message Service 2.1
  4. JSR 236: Concurrency Utilities for JavaTM EE
  5. JSR 338: JavaTM Persistence 2.1
  6. JSR 907: JavaTM Transaction API (JTA)

Marco, thank you for the interview. Also take a look at Docker Compose and Payara (patched GlassFish).