#1 Modular WebLogic server
WebLogic server has a great pedigree as a solid and powerful application server, but since Oracle purchased BEA, it hasn't kept up with the market. Sure it supports new Java EE versions, and offers better integration with Oracle RAC, but I get the distinct impression that within Oracle, WebLogic is seen as just a platform on which to run their Fusion Middleware products. Meanwhile IBM, Red Hat and Payara are continuing to innovate (and copy each other) in adding new features to their application servers and making them more usable.
With containerized computing being one of the next big things, the ability to dynamically create and destroy large numbers of small footprint application containers is going to be key. Oracle's Java Cloud Service provides some ability to do this, but only for customers who are prepared (and legally and regulatorily able) to use Oracle's cloud. For on-premise or non-oracle cloud services, a modular WebLogic server would go a long way to ensuring that WebLogic continues to be a solid choice as an application container.
#2 Production support for Wildfly Swarm
There is a lot of talk about "just enough" containers that supply a minimal set of features, and the microprofile.io group are doing a lot of great work in defining standards for this - however one thing that is missing at the moment is real production support of these platforms from the big vendors. We still find that most of our customers will not even consider a platform that is not commercially supported (either for policy reasons, or to provide a safety net in case of serious issues). To really see microprofile compatible platforms take off, we need the vendors to start offering the same level of support for them as they do for their full JavaEE platforms.
#3 A new Java Management API
While java has JMX, which is a reasonable management API, it could do with some improvement, in particular an interface using HTTP would go a long way to making it easier to integrate into management and monitoring tools. The open source Jolokia project goes a long way towards this, providing an HTTP API that interfaces with JMX, but it needs a conscious decision to include this into an application and expose the relevant MBeans. If this was something done out-of-the-box by containers, it would mean many more organisations were monitoring their java middleware.
Another area that needs improvement is making monitoring "cloud friendly", at the moment JMX and monitoring tools based on it are very tied to the concept of a fixed middleware topology - a certain number of servers running specific components that are expected to always be there. With people moving to cloud and containerised deployment, the concept of a fixed topology is redundant. A monitoring API needs to support the concept of dynamic registration and de-registration of components and servers.
Unfortunately JSR 373 (management API 2.0) was withdrawn, and we won't be seeing any real improvements in Java EE 8, but I would love to see microprofile.io pick up the reins here and drive forward a management API that supports the dynamic management and monitoring of short lived and small containers.
#4 DevOps (for real this time)
I really believe in the concept of DevOps. I think many of the common problems with software could be avoided if developers had operational responsibility for their software, and felt the pain when it goes wrong in production. Unfortunately while the current trend for DevOps has driven some good behaviours (a drive to more regular and smaller deployments, and a continuous development cycle) I have yet to find an organisation that truly embraces the concepts by putting combining the roles and responsibilities of the development and operational support teams.
If completely implemented, DevOps has the ability not just to allow developers to release more often, but to have them think more carefully about what they release, whether it is really ready, and how it will be supported through its lifecycle. However it isn't necessarily all about making the code put into production more stable, with a mix of developer and operations skills, it is possible to be more experimental with what goes into production, deploying test fixes or new features and monitoring how they behave, and being confident they can be rolled back if necessary.
My biggest wish for next year is to visit just one customer who is really embracing the concepts behind DevOps, with developers that care about operational support.
If you have a Java Middleware wish for 2017, let us know in the comments below - have a great Christmas from everyone at c2b2 and see you again in 2017!