adam bien's blog

Satellites, Internet of Tractors, Machine Tracks Or Next Generation Farming With Java 7 📎

Manuel, please introduce yourself

Hi, my name is Manuel Blechschmidt, I am currently the team lead of www.nextfarming.de where we develop a NEXT generation farm management system. I have a personal blog where I write about Jave EE and technology here: www.incentergy.de/ and I post all of my ideas on my twitter account twitter.com/Manuel_B if you want to judge my coding skills you can look into my github account: github.com/ManuelB

What are you currently building?

We are building a multi-tenancy farm management system which helps farmers to enhance their processes and be more profitable. A big part of the system is about handling geospatial data like satellite images or machine tracks.

We discussed an interesting use case with satellite images, fertilizers and big machines involved. Please tell me more about it.

This functionality is one of the key innovations that we are delivering. We have a partner called Vista Geo who takes satellite images from the copernicus project from ESA. Based on these satellite images they can calculate how much bio mass is growing on a certain place on earth. We call the produced map TalkingFields base map. In NEXT Farming you can import these maps and use an online editor to plan how much fertilizer or how many seeds you are going to use on a certain place on the field. This is especially important because if a farmer overfertilizes he might pollute our drinking water. Our software helps the farmer to make sure that the fertilizer is put on a place where it is consumed by the plant. The whole application runs in the browser without installation and produces in the end an ISOXML file which can be consumed by a machine. Currently we get a lot of positive feedback from the market how easy our software is and collaborating with machine manufactures to make it even easier to use it.

Why are you using Java EE?

Java EE has by far the best tool support and is an open standard. It does not have a vendor lock-in and a proven track record of successes in big enterprise systems.

How big is your WAR and why?

83mb. We are bundling multiple JavaScript libraries and some JARs with domain logic like geo spatial processing of shape files or CSV processing. This is not part of the Java EE standard therefore our war is a little bit bigger.

How fast is the build?

Our system takes currently 2 min 14 sec to build including unit tests for our Java and JavaScript code.

How fast is the deployment?

On our test machine it takes 18 seconds to deploy sometimes faster sometimes slower depending on what else is running on the machine.

You started with developers without any Java experience. How long did it took to become productive with Java EE 7? What about the learning curve?

I would say it took one to two weeks for them to work productively. Java EE 7 is a lot more straight-forward then Java EE 1.4. A lot of problems like ORM or serialization are already solved so the developers can concentrate on domain logic. I created a template for all important concepts like JPA beans, JAX-RS beans and Enterprise Java Beans. My team could base their work on these templates. Nevertheless we are still learning every week something new and try to enhance our current code. The learning curve was quite flat so the team produced very fast working and maintainable code.

Which application servers, tools and IDEs are you using?

We are using Wildfly 8.2 in production. As an IDE I recommend JBoss Developer Studio but every developer is free to choose their own tools. So some switched to NetBeans and there are also people that are using Sublime. Our build is using maven so there is no dependency to a specific IDE.

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

I like the idea of using a standard. Nevertheless if we have to use vendor specific extensions like hibernate spatial or special jackson serializers we are doing that. We try to be as pragmatic as possible. If a certain solution solves our problem we don't care it it is part of the standard or not.

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

The question would be easier if I would just have to say which API is not important or interesting to us ;-) So we are using JPA, EJB, JSF, JAX-RS, JMS, Bean Validation, JAX-B for JSON Binding and CDI. I have to admit that I participated in the Java EE 8 survey but that most of my concerns weren't addressed. We have a multi-tenancy architecture so having these features would be great. From the Java EE 8 set I will look deeper into Java EE Security API and MVC 1.0.

Is your company hiring Java EE developers?

Yes, we are actively searching people as Java, JavaScript and HTML5 developers. If you are interested please visit: www.farmfacts.de/jobs

Any links you would like to share with us?

http://www.nextfarming.de

Manuel, thank you for the interview!