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:
- 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
- Develop
- start coding your application
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
The Low-Code/No-Code trend is not so new. It was officially named in 2014 by Forrester, but its roots can be traced back to the 1990s and early 2000s. It gained a lot of momentum in recent years together with the Cloud, PaaS, and SaaS trends.
A low-code development platform (LCDP) is software that provides a development environment used to create application software through graphical user interfaces and configuration instead of traditional hand-coded computer programming. A low-code model enables developers of varied experience levels to create applications using a visual user interface in combination with model-driven logic. Such platforms may produce entirely operational applications, or require additional coding for specific situations. Low-code development platforms reduce the amount of traditional hand coding, enabling accelerated delivery of business applications. A common benefit is that a wider range of people can contribute to the application’s development — not only those with formal programming skills. LCDPs can also lower the initial cost of setup, training, deployment and maintenance.
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:
- Create a new project (crm).
- Create a new Entity Data Model (*.edm) file.
- 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
- Add properties per each entity (Id, Name, Country, Size, …).
- Configure the data type of each property (VARCHAR, INTEGER, DATE, …).
Entity Data Model – Property Settings
- Set the UI widget for each property (textarea, dropdown, date, number, email, url, …).
- Set the UI layout for each entity (Manage Master Detail, List Entities, …).
- 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
- Right-click on your project (crm) and publish it.
- 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
- Create a new *.bpm process and add several steps.
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.
- Trigger the approval process by creating a new Quote:
Application – Trigger Approval Process
- Quote approval mail should be received.
Application – Mail Received
- Quote approval mail should be 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:
- How to deploy Eclipse Dirigible in the SAP Cloud Platform Neo environment
- How to deploy Eclipse Dirigible in the SAP Cloud Platform Cloud Foundry environment
- Kubernetes, Keycloak, PostgreSQL & Dirigible
- Helm Hub – Dirigible
- Docker Hub – DirigibleLabs
- Setup
- Local – Tomcat
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
Hi Yordan,
Nice article, but I have one question; Can you explain how Eclipse Dirigible is related to SAP Business Application Studio (BAS) which is based on Eclipse Theia. Will the futures of Eclipse Dirigible also be available in BAS?
Kind regards,
Robert
Hi Robert Eijpe
Thanks for asking this question!
We’ve noticed that this question is asked quite often, so let me shed some light on it. Eclipse Dirigible and Eclipse Thea are “sister” projects in the Eclipse Foundation under the Eclipse Cloud Development Tools working group. The two open-source projects serve different needs and respectively different target groups. Thea is oriented around providing platform/foundation for building “general purpose” Web IDEs with features like code-completion, debugging, terminal, etc. for the target language (e.g. Java, Node.js, Python, etc.) with Visual Studio “like experience” and plugins. On other hand Dirigible is targeting the development productivity segment and “doing more with less effort”. For example Dirigible provides JavaScript based target language and “built-in” set of APIs. The Dirigible promise is to provide Web IDE and runtime environment for your application with out of the box capabilities like:
Lately Dirigible is targeting more the “Low-Code/No-Code” space, you can take a look at this blog post about it.
About whether BAS will provide Dirigibe features in the future – I don’t know, only time will show, but as of now, there are no such plans.
PS: I saw that you have interest in the CAP topic, so I guess that you find Dirigible also interesting, as it have some touch points with CAP regarding the development productivity
If you want to learn more on this topic, don’t hesitate to contact us at: dirigible-dev@eclipse.org.
Regards,
Yordan