This proposal has been approved and the Eclipse Jemo - Cloud Application Runtime project has been created.
Visit the project page for the latest information and development.

Eclipse Jemo - Cloud Application Runtime

Tuesday, October 9, 2018 - 12:00 by Christopher Stura
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

In April 2014 Cloudreach built and released an iPaaS (Integration Platform as a Service) offering for Mid-Market Salesforce customers. The technology underpinning the iPaaS was a unique kind of application runtime built on peer to peer technology and focused on taking advantage of the PaaS services available on AWS (Amazon Web Services). Since 2014 Cloudreach marketed the iPaaS software through its Salesforce business and then later shifted the integration technology to tackle the challenges of BigData and Massive Parallel Processing.

Since the Cloudreach exit from the Salesforce business, we have decided to increase adoption at a commercial level for the iPaaS and the Application Server platform Jemo. In September 2018 Cloudreach decided that the best way to increase adoption of the technology platform was to open source that technology. This project proposal is meant to embody that vision.

Scope

Eclipse Jemo provides a platform, frameworks, and runtime support for building Cloud Native Applications which run across multiple clouds without the need for re-engineering.

Eclipse Jemo provides:

  1. An Application Runtime that will take advantage of CSP PaaS technologies and provide high-level software infrastructure into those services.

  2. An Event-driven paradigm through which developers can build Cloud Native Applications which run across multiple clouds without the need for re-engineering.

  3. A UI Framework which will allow back-end developers to build modern single page web applications through a stateless microservices paradigm.

  4. A common runtime framework which spans across cloud providers.

  5. Runtime implementations for all major Cloud Service Providers (CSP).

  6. Monitoring, Logging, and Analytics to manage the applications deployed to the server.

Eclipse Jemo provides a multi-cloud FaaS programming model for JVM based languages which can run across multiple cloud service providers and on-premise networks.

The Eclipse Jemo application runtime operates at the infrastructure control layer and because of this will aim to provide support for popular Java frameworks such as Microprofile, Spring, Jakarta EE, and others. Eclipse Jmo incorporates server technologies such as Eclipse Jetty and Hono to allow both traditional request/response and event-driven IoT applications to be built.

Description

Eclipse Jemo aims to take the ease of use of the Jakarta EE platform into the public cloud. In building Jemo we choose to focus on embracing the technology and pace of change provided by CSP's such as Amazon (AWS), Microsoft (Azure), and Google (GCP). The major CSP's provide many of the core application software technologies that are used to build modern applications (examples are things like Pub/Sub queue systems, Streaming, BigData, HTTP/S, Batch processing, etc). Jemo aims to harness PaaS services as they become available on underlying CSP's and allow these services to be used transparently by developers to build applications while avoiding all lock-in to the underlying provider.

Jemo furthermore provides a homogeneous application runtime environment which spans multiple networks and device topologies thus aligning with the vision for the JVM to write once and run anywhere. Jemo will take this concept to the age of Cloud. The application server will translate code deployed to it and adapt it such as to take advantage of the best technologies on the CSP of choice and then allow users to move seamlessly to an entirely different CSP without having to adapt, compile or re-write any code within the application.

Jemo also aims to build a virtualized network layer using peer to peer networking technology to allow computation to take place across a variety of different network topologies and devices. The application server will seamlessly scale out without boundaries and be able to take advantage of computational capacity anywhere the base runtime is present. The server will also take advantage of the 0 node principle on peer to peer technology such that the network will be active even if no nodes are running and the moment in which a single node is present it will re-commence computation.

Jemo will also provide a UI framework which can be used by developers to build modern single page web applications without the need to know Javascript or have experience in front-end development.

Why Here?

Jemo is built using a number of Eclipse technologies. The most significant is Eclipse Jetty which is the heart of the HTTP, HTTP/S, HTTP/2, WebSocket engine within the application server and much of the Jakarta EE compatibility is borrowed from Jetty. In addition, Jemo makes use of Eclipse Paho for connectivity with the MQTT bus provided by Amazon which is a fundamental component used in the virtualized peer to peer network.

Since Eclipse has recently taken ownership of Java Enterprise through the Jakarta EE project this creates additional alignment as many of the objectives of the Jakarta EE project are also shared by the ambitions we have for the Jemo application server platform.

Future Work

Features to add:

  • Runtime support for GCP
  • Support for Java 11
  • Development Patterns for Stream processing, BigData, HTTP/2, WebSockets
  • Enhanced monitoring and management via JMX
Project Scheduling
  • Initial Release: Q1 FY19 - release of current functionality with new OSS branding and licensing as well as release of documentation reworked with OSS branding. (OSS version: 0.1)
  • Release 0.2 - Q2 FY19 - release of runtime support for GCP, Support for Java 11
  • Release 0.3 - Q3 FY19 - Addition of development patterns for Stream processing and BigData systems
  • Release 0.4 - Q4 FY19 -  Addition of HTTP/2 (Async HTTP) and WebSocket patterns, Enhanced monitoring and management through JMX
  • Release 0.5 - Q1 FY20 - Addition of patterns to support Machine/Deep Learning and Virtual Assistants (Google, Cortana, Alexa) 
Project Leads
Interested Parties

A number of existing customers have expressed interest in our platform as have some of our partners these include:

  • Google (GCP USA)
  • Amazon (EMEA branch)
  • OIA Global (customer)
  • RatedPeople (customer)
  • XLN Telecom (customer)
Initial Contribution

We will be contributing the following code as part of the initial contribution to this project:

  1. Jemo Core - the base of the Application runtime currently in version 2.3
  2. Jemo UI - the user interface framework for building applications on Jemo
  3. Admin Console - the user interface administration console for the Jemo application runtime.
  4. Jemo RPC - the IoT edge computing "Internet of Functions" library which allows distributed execution of code shared between applications on the platform.
  5. Connect iPaaS - the integration platform as a service including connectors to popular platforms such as Salesforce.com, ServiceNow, Slack and many more.
  6. Connect DataBridge - a UI application which allows integrations to be built on Connect visually.
Source Repository Type