The integration of different software systems is time consuming and expensive. Low-code and no-code development platforms can speed up the development and the integration of software systems. End-users of low-code and no-code development platforms do not need to have any knowledge of a programming language because the development is carried out using a visual approach. The development of an application is thus more accessible, even for people who are not software developers. In addition, applications can be created more efficiently which in turn increases productivity.
Streamsheets facilitate the creation and integration of applications in a familiar spreadsheet environment without a single line of program code. Users define logic for analyses, data transformation and processes in an already known and accepted way, which minimizes familiarization times and fears of contact, thereby acceIerating implementations of digital solutions.
Unlike traditional spreadsheet applications, Streamsheets are not static but are designed for dynamic processing, analysis, and controlling of data flows. Input data (primarily from but not limited to IoT devices / sensors) enters the inbox of a Streamsheet, using a concept similar to an e-mail program, then flows through the logic defined in the Streamsheet, before the results are forwarded to downstream IoT devices, processes or databases.
Once the modeling phase of a process is complete, the graphical interface for the Streamsheet can be closed and its process logic will continuously run in real-time as a microservice in the server environment.
The Streamsheets project provides a platform for processing stream data using a spreadsheet-like interface and spreadsheet-like formulas. In order to achieve this it provides:
- Web UI Service: A spreadsheet-like user interface for visually creating and managing Streamsheets.
- Gateway Service: An API for managing Streamsheets.
- Machine Service: A backend runtime for executing Streamsheets.
- Streams Service: A pluggable system for adding connectors to other protocols, databases, etc.
- Graph Service: A service for synchronizing Streamsheets interactions between different users.
With Streamsheets the everyday technical or business end user can create stream processing applications just by using their existing spreadsheet knowledge (e.g. from Microsoft Excel or Google Sheets). Streamsheets give non-programmers the opportunity to work with event streams with a power and flexibility that would otherwise only be available to an experienced software programmer.
Applications for stream processing are widespread and as generic as spreadsheets can be. Areas Streamsheets can be used in include the following:
- IoT: Control, analysis, monitoring, visualization and simulation of industrial and other IoT processes (Smart Factory, Smart Building, Smart City, Smart Energy, Smart Farming, …) using MQTT, AMQP or other messaging protocols.
- Stream Processing: Any kind of business or technical processes that publish and subscribe to a streaming platform (e.g. Kafka) and does analysis, transactions, monitoring, statistics, automated alerts, conversions, semantic mappings, enriching of data sets, etc.
- Protocol conversion or gateways: Edge to Cloud, IT to OT, Protocol to Protocol, Request/Response to Publish/Subscribe, Logfile to Stream, etc. using MQTT, AMQP, UDP, REST, POP, SMTP protocols or simple input from text files.
Eclipse already hosts many mature projects related to IoT. The proposed Streamsheets project is a very good complement to the existing projects, including Eclipse Paho, Eclipse Milo, and most notably the Eclipse Mosquitto project. Streamsheets uses the MQTT protocol both for internal and external communication and uses Mosquitto as its standard MQTT broker. Streamsheets also complements the Mosquitto project in the sense that it provides a standard user interface for Mosquitto.
Our main dependencies are licensed under a MIT license. Our own code will be licensed under the EPL v2.0. We do not expect any legal issues.
Having released version 1.4 on the 16th of October 2019 we are planning future releases every 10-12 weeks.
- Extend Chart Modules: the current charts (line charts, bar charts, etc.) will be extended with additional functionality.
- Built-in tutorials: to help users to get started with Streamsheets we will integrate built-in tutorials (text and/or video) that show how to use different features of the software.
- UX/UI improvements: we will further enhance the software for usability and user experience.