Skip to Content
Technical Articles

Eclipse Dirigible – SAP’s Open Source Project for Low-Code Development

Eclipse Dirigible

 

It’s time to celebrate! The latest and greatest version of Eclipse Dirigible – 5.0 is now officially released in the Open Source world!

Beyond just being the 5th major release of Dirigible for the last 5 years, it’s also a very special milestone for us, the Dirigible crew. It’s time to recognize and celebrate the last five years of efforts and hard work in the Eclipse Foundation, five years of innovations and renovations, five years of turbulent cloud technologies, five years of ups and downs, and five years of amazing memories in the community …

… and finally after 5 years in the Eclipse Foundation, we’ve successfully grown from “an incubation project” to mature project with an active community, stable builds and regular releases.

 

more than 3,000 commits, since the “Initial commit” on 11 May 2015 in eclipse/dirigible

 

Dirigible Labs

One repository is not enough to hold the entire Dirigible project and all of the innovations that are happening around it. Several years ago, we realized that there is a need for a separate GitHub organization, where the community could unleash its innovative spirit and grow ideas independently from the main repository.

almost 400 repositories full of samples, core components, extension modules, APIs, clients, templates and more at DirigibleLabs

SAP Origin

It’s also time to remember our roots – Dirigible was initially open-sourced by SAP in the official SAP GitHub organization at: http://github.com/SAP/cloud-dirigible.

It’s been long road since then, but the project goal hasn’t changed a bit – make the business applications development in the cloud great (again)!

 

Our Home

www.dirigible.io – the place where you can find everything about Dirigible, its mission, the latest releases and downloads, video materials, samples, blogs and of course how to become part of the crew.

“Eclipse Dirigible just turned five years in open source. Five years in Eclipse Foundation within the Eclipse Cloud Development group. Five years of innovations with many friends around the globe, lots of realised dreams, first-class happiness.”

– Nedelcho Delchev, Celebrating 5 years in Open Source

 

SAP Open Source Project for Low-Code Development


 

Eclipse Dirigible 5.0 is now officially listed among other first-class open source projects at the SAP Open Source Projects portal. We are proud to be listed together with projects like:

  • Gardener – a managed Kubernetes service done right
  • Kyma – platform for extending applications with serverless functions and microservices
  • OpenUI5 – the SAP UI framework and controls for enterprise-ready web apps
  • SapMachine – the  SAP commitment to ensuring the continued success of the Java build and maintain a SAP supported version of OpenJDK for SAP customers and partners

 

Pro Code

In-system development was always the cornerstone of Dirigible and maybe the most desired and beloved feature in the community throughout the years. I’ll simply describe the effect of the in-system development as “the shortest possible turnaround time“. Shortening the development cycles definitely leads to significantly lower Total Cost of Development (TCD) compared to what is available with other well-known technology stacks like Java, Node.js, Go, etc.

The original concept of In-system programming (development) can be traced back to the 1970s and the introduction of the first PIC microcontrollers. The motivation and the reasoning behind this concept are still valid today – to make the development cycles shorter and to reduce their cost.

Just imagine manufacturing (or deploying into test/prod environment) hundreds and even thousands of microcontrollers, just to test out different compositions (or versions) of the building components and the electrical schemes (or the software)it’s a colossal waste of time, energy, and money.

Now how about building just one microcontroller that can be placed (or deployed) into the motherboard (or the target environment – e.g. cloud) and then different versions and configurations to be programmed and tested without disassembling, soldering and desoldering the microcontrollers again and again? So the difference between in-system programming/development and all other types of development is “to be programmed while installed in a complete system, rather than requiring to be programmed prior to installing it into the system”.

Yes, in Dirigible we are leveraging a 50-year-old concept originating from the hardware world, but so dp ABAP and any RDBMS out there – to be able to alter the running software while being connected/installed in a complete landscape. Here how this is done in Dirigible:

  1. Deploy
    • deploy Dirigible into the target landscape (bare metal, Kubernetes, Cloud Foundry, SAP Cloud Platform, VM, …)
    • make configurations and/or bindings to external services (database, CMS, authentication, etc.) through environment variables
  2. Develop
  3. Deliver
    • it’s already delivered (as long as Dirigible is deployed to the prod system)
    • you can export and package your application(s) into immutable deliveries (*.war, Docker, …) with embedded Dirigible engine

Low-Code

In essence, a Low-Code/No-Code platform “provides a development environment used to create applications through graphical user interfaces and configuration” and most importantly the Low-Code/No-Code platform “reduces the amount of traditional hand coding, enabling accelerated delivery of business applications”.

Eclipse Dirigible – Generate Application from Model

So let’s try out the Dirigible’s Low-Code capabilities. Let’s build a simple CRM application with just modeling and a few lines of code:

  1. Create a new project (crm).
  2. Create a new Entity Data Model (*.edm) file.
  3. Drag & Drop a few entities (Account, Industry, Opportunity, …):
    • Set the UI layout for each entity (Manage Master Detail, List Entities, …).Entity Data Model - Entity Settings

      Entity Data Model – Entity Settings

       

    • Add properties per each entity (Id, Name, Country, Size, …).
    • Configure the data type of each property (VARCHAR, INTEGER, DATE, …).Entity Data Model - Property Settings

      Entity Data Model – Property Settings

    • Set the UI widget for each property (textarea, dropdown, date, number, email, url, …).
  4. Generate application from a template:
    • Once done with the modeling, save the model – *.model file (JSON based) will be generated/
    • Right click on the *.model file and select from the list of templates.Entity Data Model - Generate Application

      Entity Data Model – Generate Application

    • Right-click on your project (crm) and publish it.
  5. Extend the application with an approval process:
    • Create a separate project for the approval process (crm-quote-approval).
    • Create new *.listener and *.js handler that will trigger the approval process, once “crm/Sales/Quote/Create” event is emitted.Event Listener - Settings

      Event Listener – Settings

    • Create a new *.bpm process and add several steps.BPM - Process definition

      BPM – Process definition

    • Set a *.js handler for each step of the execution.
    • Add an implementation to the *.js handler to send an approval mail, if a certain condition is met.
  6. Trigger the approval process by creating a new Quote:Application - Trigger Approval Process

    Application – Trigger Approval Process

    • Quote approval mail should be received.Application - Mail Received

      Application – Mail Received

 

The full sample and detailed steps can be found at: https://github.com/dirigiblelabs/sample-crm

 

 

Here you can see the result of one day of work for the #EUvsVirus hackathon, developed entirely with Dirigible through Pro Code and Low-Code means:

#EUvsVirus – Gov Healthcare Suite

What’s Next?


Deployments

There are several ways to deploy Dirigible:

Next steps

For the next Dirigible 6.0 release we are targeting:

  • More citizen developer oriented – bring back the BizON application
  • More templates – Open UI5, Fiori Elements, React, …
  • Mobile application capabilities
  • WYSWYG editor(s)
  • Integration with Kyma
  • Integration with Luigi

Get involved

Submit new issue(s) with ideas, feature requests and/or existing problems at: https://github.com/eclipse/dirigible/issues

Contact us at: dirigible-dev@eclipse.org

Learn more at: https://www.dirigible.io

Watch videos at: https://www.youtube.com/c/dirigibleio

Follow us at: https://twitter.com/dirigible_io

Be the first to leave a comment
You must be Logged on to comment or reply to a post.