Copyright © 2018 Oracle. All rights reserved.
@helidon_project
Dmitry Kornilov
@m0mus
Helidon Project Lead
Tomas Langer
@langer_tomas
Helidon Architect
Copyright © 2018 Oracle. All rights reserved.
Program Agenda
1. What is Helidon?
2. Helidon SE and Helidon MP
3. Demo
4. Q & A
Copyright © 2018 Oracle. All rights reserved.
Copyright © 2018 Oracle. All rights reserved.
The following is intended to outline our general product direction.
It is intended for information purposes only, and may not be
incorporated into any contract. It is not a commitment to deliver any
material, code,
or functionality, and should not be relied upon in making purchasing
decisions. The development, release, timing, and pricing of any features
or functionality described for Oracle’s products may change and remains
at the sole discretion of Oracle Corporation.
Safe Harbour Statement
A set of Java libraries
for developing microservices
Copyright © 2018 Oracle. All rights reserved.
Helidon = Swallow (Greek)
Copyright © 2018 Oracle. All rights reserved.
Project Helidon
● Open
● Innovative
● Standards friendly
● Supported active project
Copyright © 2018 Oracle. All rights reserved.
Open Source
● Hosted on GitHub
○ https://github.com/oracle/helidon
● Apache 2.0 License
Copyright © 2018 Oracle. All rights reserved.
Supported active project
Copyright © 2018 Oracle. All rights reserved.
● Web Site with guides and tutorials
○ https://helidon.io
● Public Slack channel
○ https://helidon.slack.com
● Contributions are welcome!
Landscape
Copyright © 2018 Oracle. All rights reserved.
Copyright © 2018 Oracle. All rights reserved.
● Microframework
● Functional style
● Reactive
● Transparent
● MicroProfile
● Declarative style
● CDI, JAX-RS, JSON-P
Helidon Architecture
Copyright © 2018 Oracle. All rights reserved.
Cloud
Integrations
JAX-RS
Helidon SE Helidon MP
CDI JSON-P
SecurityConfigWeb Server
Netty
Helidon SE
Copyright © 2018 Oracle. All rights reserved.
Security
● Authentication
● Authorization
● Outbound Security
● Auditing
● Extensible
Config
● Flexible, typed config
model
● Multiple data sources
● Hierarchical model
● Dynamic updates
● Extensible
Reactive Web Server
● Simple functional
routing model with
reactive Flow API
● Built on Netty
● OpenTracing and
Metrics
● Static content support
Helidon SE
Copyright © 2018 Oracle. All rights reserved.
Routing routing = Routing.builder()
.get("/hello", (req, res) -> res.send("Hello World"))
.build();
WebServer.create(routing)
.start();
Helidon MP
Copyright © 2018 Oracle. All rights reserved.
MP Config Metrics
Health
Check
Fault
Tolerance
JWT Auth
JAX-RS CDI
JSON
Processing
Helidon MP
Copyright © 2018 Oracle. All rights reserved.
@Path("hello")
public class HelloWorld {
@GET
public String hello() {
return "Hello World";
}
}
Server.builder()
.addResourceClass(HelloWorld.class)
.build()
.start();
Plans
● Next versions on MicroProfile
● HTTP/2 support
● Reactive HTTP Client
● Tighter integration with JDK
● Project Starter - UI for Helidon project generation
● GraalVM integration
● Reactive storage (NoSQL, ADBA), Open API, Eventing
Copyright © 2018 Oracle. All rights reserved.
Links
● Website: https://helidon.io
● Twitter: @helidon_project
● GitHub: https://github.com/oracle/helidon
● Slack: https://helidon.slack.com
Copyright © 2018 Oracle. All rights reserved.
Demo
Copyright © 2018 Oracle. All rights reserved.
Q & A
Copyright © 2018 Oracle. All rights reserved.
Copyright © 2018 Oracle. All rights reserved.
@helidon_project

Developing cloud-native microservices using project Helidon

  • 1.
    Copyright © 2018Oracle. All rights reserved. @helidon_project
  • 2.
    Dmitry Kornilov @m0mus Helidon ProjectLead Tomas Langer @langer_tomas Helidon Architect Copyright © 2018 Oracle. All rights reserved.
  • 3.
    Program Agenda 1. Whatis Helidon? 2. Helidon SE and Helidon MP 3. Demo 4. Q & A Copyright © 2018 Oracle. All rights reserved.
  • 4.
    Copyright © 2018Oracle. All rights reserved. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. Safe Harbour Statement
  • 5.
    A set ofJava libraries for developing microservices Copyright © 2018 Oracle. All rights reserved.
  • 6.
    Helidon = Swallow(Greek) Copyright © 2018 Oracle. All rights reserved.
  • 7.
    Project Helidon ● Open ●Innovative ● Standards friendly ● Supported active project Copyright © 2018 Oracle. All rights reserved.
  • 8.
    Open Source ● Hostedon GitHub ○ https://github.com/oracle/helidon ● Apache 2.0 License Copyright © 2018 Oracle. All rights reserved.
  • 9.
    Supported active project Copyright© 2018 Oracle. All rights reserved. ● Web Site with guides and tutorials ○ https://helidon.io ● Public Slack channel ○ https://helidon.slack.com ● Contributions are welcome!
  • 10.
    Landscape Copyright © 2018Oracle. All rights reserved.
  • 11.
    Copyright © 2018Oracle. All rights reserved. ● Microframework ● Functional style ● Reactive ● Transparent ● MicroProfile ● Declarative style ● CDI, JAX-RS, JSON-P
  • 12.
    Helidon Architecture Copyright ©2018 Oracle. All rights reserved. Cloud Integrations JAX-RS Helidon SE Helidon MP CDI JSON-P SecurityConfigWeb Server Netty
  • 13.
    Helidon SE Copyright ©2018 Oracle. All rights reserved. Security ● Authentication ● Authorization ● Outbound Security ● Auditing ● Extensible Config ● Flexible, typed config model ● Multiple data sources ● Hierarchical model ● Dynamic updates ● Extensible Reactive Web Server ● Simple functional routing model with reactive Flow API ● Built on Netty ● OpenTracing and Metrics ● Static content support
  • 14.
    Helidon SE Copyright ©2018 Oracle. All rights reserved. Routing routing = Routing.builder() .get("/hello", (req, res) -> res.send("Hello World")) .build(); WebServer.create(routing) .start();
  • 15.
    Helidon MP Copyright ©2018 Oracle. All rights reserved. MP Config Metrics Health Check Fault Tolerance JWT Auth JAX-RS CDI JSON Processing
  • 16.
    Helidon MP Copyright ©2018 Oracle. All rights reserved. @Path("hello") public class HelloWorld { @GET public String hello() { return "Hello World"; } } Server.builder() .addResourceClass(HelloWorld.class) .build() .start();
  • 17.
    Plans ● Next versionson MicroProfile ● HTTP/2 support ● Reactive HTTP Client ● Tighter integration with JDK ● Project Starter - UI for Helidon project generation ● GraalVM integration ● Reactive storage (NoSQL, ADBA), Open API, Eventing Copyright © 2018 Oracle. All rights reserved.
  • 18.
    Links ● Website: https://helidon.io ●Twitter: @helidon_project ● GitHub: https://github.com/oracle/helidon ● Slack: https://helidon.slack.com Copyright © 2018 Oracle. All rights reserved.
  • 19.
    Demo Copyright © 2018Oracle. All rights reserved.
  • 20.
    Q & A Copyright© 2018 Oracle. All rights reserved.
  • 21.
    Copyright © 2018Oracle. All rights reserved. @helidon_project

Editor's Notes

  • #7 Swallow is a type of bird that according to Wikipedia has “a slender, streamlined body and long pointed wings, which allow great manoeuvrability and… very efficient flight”. Perfect for darting through the clouds.
  • #11 Java Frameworks for writing microservices fall into a few categories. From smaller to larger: Microframeworks - Simple, fun, intentionally small feature set. Examples are Spark, Javalin, Micronaut, etc. MicroProfile - Friendly to Java EE developers but a bit heavier. Some of them are build on top of fully featured Java EE application servers. Examples are Thorntail (was Wildfly Swarm), OpenLiberty, Payara. Full Stack - Fuller features set such as Spring Boot. Helidon comes in two flavours and covers two categories — Microframeworks and MicroProfile. It’s up to a developer to choose what to use in their applications.
  • #12 Helidon SE — simple, functional, lightweight microframework developed in a modern reactive way. There is no injection “magic”. No special runtime required. JDK is used as runtime. Helidon MP — Eclipse Microprofile implementation providing development experience familiar to Java EE/Jakarta EE developers.
  • #13 Helidon SE components are marked blue. These are Config, Security and Web Server. The Java EE/Jakarta EE components we use are marked orange. These are JSON-P, JAX-RS/Jersey and CDI. These components are required for MicroProfile implementation. Helidon MP is a thin layer on top of Helidon SE components. Optional Cloud Integration components are marked red and used in both Helidon SE and Helidon MP. These component are: CDI DataSource injection OCI object storage (S3 at some point) Redis support (Oracle caching service) OpenId Connect (Google login, IDSC support)
  • #16 Helidon implements MicroProfile 1.1. We will continue working on implementing new versions of MicroProfile and intend to support relevant Jakarta EE standards in this area as they are defined.