Home / Blog

Oracle unveils Helidon 2.0 for Java Microservice

Billy Yann
Deep learning and machine learning specialist, well-versed with experience in Cloud infrastructure, Block-chain technologies and Big Data solutions.
July 09, 2020

Oracle database is developed and marketed by Oracle Corporation an American multinational computer technology corporation. It is a relational database management system and is known as Oracle DB, Oracle database, or just Oracle. This is the first database that is designed and developed for grid computing. Oracle Corporation markets software and hardware technologies and offers other solutions and services for financing, training, consulting, etc.

Oracle has introduced a new and upgraded version of Helidon 2.0 to Java libraries that are designed to ease out the process of microservice development. Helidon simplifies the process of microservice development making it more enjoyable and gratifying. Oracle announced this version of Helidon on June 24. This venture highlights Helidon SE and Helidon MP. Helidon SE is a cluster of reactive and non-blocking libraries beneficial for functional programming. Helidon MP is a declarative version of programming that executes Eclipse MicroProfile APIs.

Helidon 2.0 is available on GitHub and it integrates GraalVM native image assistance for Helidon MP which was already supported in Helidon SE. Helidon 2.0 has an in-built early access version of the command line tool that assist to initiate projects, develop applications, and handle dependencies with various packaging profiles (including JAR, jlink image, native image). The purpose of Helidon is to develop new microservices and to enhance the existing applications. The upgraded version promises a collection of libraries and reactive web server that functions on a framework core of Netty network application. Helidon 2.0 offers health checks, metrics, tracing, and fault tolerance services.

Dmitry Kornilov, Helidon Project Lead had said, "If you are a Java developer and you're writing microservices, Helidon is a great choice". The developers of Helidon 2.0 had wanted to create a lightweight set of libraries that didn't require an application server and could be used in Java SE applications. It is developed with the objective of meeting all the Microservices development requirements like its functional, non-functional, present, and future ones. Helidon 2.0 is developed from scratch and doesn't possess any legacy code. This is a matter of surprise as Java EE is a stable technology that has numerous legacy codes. Initially, Helidon 2.0 was used internally in Oracle projects as J4C (Java for cloud), later it was open-sourced by them. It is designed and drafted to be simple and quick in processing microservice developments. In a nutshell, Helidon is a collective of Java libraries that is used for creating microservices-based applications.

The new version of Helidon is beneficial for MicroProfile developers with the GraalVM Native image startup and memory consumption features. This was only available for Helidon SE applications before the release of the upgraded version. GraalVM native image facilitates the programmers and developers to compile Java code to a native image.

What is Helidon?

Helidon is a lightweight and fast collection of Java libraries that are crafted for microservice development. Microservices develop applications that are drafted as a collection of numerous micro (smaller) services rather than building a whole app. Helidon functions on a fast web core that is powered by Netty. Helidon is crafted to be simple and fast with the help of tooling and examples. As Helidon is a cluster of java libraries, there are no cases of extra overhead or bloat. Helidon provides MicroProfile support and offers APIs like JAX-RS, CDI, and JSONP/B. The MicroProfile execution of Helidon functions on Helidon Reactive WebServer. Helidon Reactive WebServer offers an innovative and modern programming model. It is lightweight, agile, and reactive. Helidon WebServer develops a foundation for your microservices that quick and easy to handle. Helidon is observable and resilient with support for health checks, metrics, and fault tolerance. It possesses cloud-ready applications that associate with Prometheus, Jaeger, and Kubernetes.

Features of Helidon 2.0

Oracle announced the launch of Helidon 2.0 within a year of release of Helidon 1.0. Listed below are the notable features of Helidon 2.0.

• Programming style choices: Helidon SE for functional programming and Helidon MP for declarative programming that leverage MicroProfile and Jakarta EE standard APIs.

• Provides support for reactive messaging and streams: available for both Helidon SE and Helidon MP.

• New command-line tool: this feature facilitates the developers to use Helidon with the least efforts. This helps you to develop and run a new application with simple commands. This feature is compiled with GraalVM for easy installation.

• New web client API: this new feature for Helidon SE processes HTTP requests and responses associated with an exclusive endpoint.

• GraalVM support: the choice to compile Java applications with the help of GraalVM Native Image with extremely quick startup and small footprint.

• Reactive database client

• Easy and quick to handle: a set of libraries and reactive web server functioning on a Netty core.

• It offers benefits of an open-source project and offers continuous updates, fast release cadence, and agile licensing. These are combined with features for project support from Oracle.

Helidon 2.0: new features for Helidon SE and Helidon MP

Helidon 2.0 provides significant advancements for Helidon SE and Helidon MP programming styles. Here are a few new features that are introduced with this version of Helidon.

• GraalVM Native Image assistance in the latest version of Helidon introduces GraalVM Native Image support and memory consumption features to both Heldon SE and Heldon MicroProfile developers.

• Helidon 2.0 introduces an easy generation of custom jlink runtime images. This includes the support for CDS archives that stimulate advanced startup performance.

• With the release of Helidon 2.0, Jakarta WebSocket support is provided for both Helidon SE and Helidon MP.

• It supports Java SE 11 that facilitates developers to avail of the maximum advantages of new features that are in-built in this Java SE release.

• Helidon MP has included MicroProfile Reactive streams operators and MicroProfile Reactive Streams Messaging.


Early-access features of Helidon 2.0

Helidon 2.0 has early access features that are equipped for developers. Helidon 2.0 has a novel command-line tool (CLI) which will help to develop Helidon Projects and applications via various packaging profiles. Helidon SE offers a comprehensive reactive framework with innovative reactive streams and reactive messaging features. A new Helidon DB client API for Helidon SE is introduced with Helidon 2.0. This offers a reactive non-blocking database client which could be used with blocking JDBC drivers that existed and also support MongoDB reactive driver.

Helidon 2.0 and CORS

With the launch of Helidon 2.0, it is easy to introduce CORS support to your application and Helidon's in-built services for health, metrics, and Open API. CORS (cross-origin resource sharing) is a customary approach for using HTTP headers in which web client demand and servers permit or refuse controlled access to resources from a single origin with respect to a resource from a different origin. The same-origin policy restricts a page or app to access resources from different origins. With the release of Helidon 2.0, it is easy to introduce CORS to the endpoints in SE and MP applications and in-built endpoints of Helidon services like health, metrics, and Open API. It is easy to configure to abridge CORS related changes with Helidon 2.0.

Helidon 2.0 by Kafka

Helidon 2.0 supports reactive messaging and reactive stream operations. Kafka connector is one of the first messaging connectors that are available for both Helidon MP and Helidon SE programming styles. Helidon MP highlights features of CDI and follows MicroProfile specification. Helidon SE provides a platform to enjoy simplistic API and precise configuration.

Connecting with Kafka demands an essential configuration. The composition of such a configuration could be a challenging situation. The new version of Helidon facilitates the MicroProfile Reactive Messaging configuration for both SE and MP this configuration easier.

Kafka is a distributor streaming platform that functions for publishing and subscribing streams of records. Helidon MP executes MicroProfile Reactive Messaging specification. Therefore for Kafka in Helidon MP, the addition of dependency and annotation of methods of application is required. In Helidon SE, there is an API for utilizing reactive messaging without a CDI. This is compatible with connectors, configuration, and acknowledgment. Helidon SE reactive messaging supports Helidon Configuration to either publisher or subscriber connector of the channel. Kafka connector possesses its Configuration developer. Therefore it eliminates the need of looking up frequent client properties each connection with Kafka.

To conclude

With the introduction of Helidon 2.0, it is goodbye to the Java 8 and adoption of Java 11 or newer. The development of Helidon by Oracle has indeed brought a huge transformation in the field of microservices development, catering to the needs of a wide variety of users. Adding to it, the unveiling of Helidon 2.0 has bridged the gaps left by the initial version of Helidon 1 which would facilitate a more flawless microservices development and growth in the industry in the coming future. Oracle has been one of the world leaders in tackling some of the biggest tech-challenges of the time, be it in the field of Big Data, cloud computing, mobile, security, analytics, etc. Oracle's pioneering work would surely be an inspiration for other tech ventures to embark on some groundbreaking discoveries for the betterment of humanity.