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.
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:
An Application Runtime that will take advantage of CSP PaaS technologies and provide high-level software infrastructure into those services.
An Event-driven paradigm through which developers can build Cloud Native Applications which run across multiple clouds without the need for re-engineering.
A UI Framework which will allow back-end developers to build modern single page web applications through a stateless microservices paradigm.
A common runtime framework which spans across cloud providers.
Runtime implementations for all major Cloud Service Providers (CSP).
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.
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 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.
- 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)
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