Skip to main content
  • Log in
  • Manage Cookies
projects.eclipse.org
Download
  • Projects
  • Working Groups
  • Members
  • Community
    • Marketplace
    • Events
    • Planet Eclipse
    • Newsletter
    • Videos
    • Blogs
  • Participate
    • Report a Bug
    • Forums
    • Mailing Lists
    • Wiki
    • IRC
    • Research
  • Eclipse IDE
    • Download
    • Learn More
    • Documentation
    • Getting Started / Support
    • How to Contribute
    • IDE and Tools
    • Newcomer Forum
  • More
      • Community

      • Marketplace
      • Events
      • Planet Eclipse
      • Newsletter
      • Videos
      • Blogs
      • Participate

      • Report a Bug
      • Forums
      • Mailing Lists
      • Wiki
      • IRC
      • Research
      • Eclipse IDE

      • Download
      • Learn More
      • Documentation
      • Getting Started / Support
      • How to Contribute
      • IDE and Tools
      • Newcomer Forum
    • Search

  1. Home
  2. Projects
  3. Eclipse IoT
  4. Eclipse Streamsheets™
  5. Eclipse Streamsheets
×

Informative message

This proposal has been approved and the Eclipse Streamsheets™ project has been created.
Visit the project page for the latest information and development.

Go to Project

Eclipse Streamsheets

Basics
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: 
Eclipse IoT
Background: 

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.

Scope: 

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.
  • A JavaScript/Node.js client for interacting with the Streamsheets API.
Description: 

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.
     
Why Here?: 

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.

Licenses: 
Eclipse Public License 2.0
Legal Issues: 

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.

Project Scheduling: 

Having released version 1.4 on the 16th of October 2019 we are planning future releases every 10-12 weeks.

Future Work: 
  • 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.
People
Project Leads: 
Philip Ackermann
Roger Light
Committers: 
Philip Ackermann
Arnd Houben
Roger Light
Michael Raue
Andreas Sayn
Evangelos Vlachogiannis
Mentors: 
Jens Reimann
Interested Parties: 
  • Festo
  • Siemens
  • Real-time Automation
  • Edgeworx
Source Code
Initial Contribution: 

The initial code contribution to Streamsheets will contain the code from the GitHub repository located at https://github.com/cedalo/streamsheets. The backend services of the Streamsheets platform are written in JavaScript and intended to run on Node.js. The main dependencies for the backend are Express.js and MQTT.js. The frontend is as well written in JavaScript and mainly depends on the React framework using the Material UI component library and on the self-developed “JavaScript Graph Library” (JSG) for Canvas interactions, which will be included in the Streamsheets project.

Source Repository Type: 
GitHub
Source Repositories: 
https://github.com/cedalo/streamsheets

Comments Sign in to post comments

Thomas Jaeckle's picture

Integration

Submitted by Thomas Jaeckle on Sat, 2019-11-09 14:41

Congratulations on publishing the proposal. I think Eclipse IoT is a great environment for Streamsheets.

We already got a small demo of Eclipse Ditto together with Streamsheets (processing change events of digital twins) running at EclipseCon. We had to use http polling which was not ideal.

So my questions:

  • When trying out Streamsheets I could not consume from MQTT brokers, only publish to them. Did I miss something or is consuming from MQTT not included? 
  • Can Streamsheets be operated in a high available cluster and is it possible to scale horizontally? 
  • For integration with Eclipse Ditto a Websocket consumer would have been great as Ditto is able to publish change events via Websocket. Do you have plans on supporting that? Integration with Ditto would be very easy then..

Best regards Thomas

  • Log in to post comments
Philip Ackermann's picture

Re: Integration

Submitted by Philip Ackermann on Fri, 2020-01-17 04:33

Hi Thomas,

Thank you for your interest in our project! :-) And sorry for the late reply. Somehow the notification of your comment did not reach us.

Regarding your questions:

  1. To consume data from a broker, you need to set up a consumer. There are three resources which can be part of the configuration of a data stream: always a connector and then a consumer or a producer. 
    • Connectors set up the connection to brokers including information, such as the URL and certificates or login details. Every data stream is based on a connector. However, you can define many connectors and therefore connect to many brokers at the same time.
    • To consume data, there are consumers. Based on a connector you define which topics you want to subscribe to.
    • To produce/publish data, there are producers. Producers are based on connectors, too.
    • Thus, connectors are used to establish a connection to a broker whereas consumers and producers define which data (streams) on that broker are addressed.
    • You can find more information about streams in the official documentation here and here.
  2. The architecture of streamsheets was created having scalability in mind, but we do not yet officially support cluster mode or horizontal scalability. However, since those features are very important for us, this is something we will definitely address in the future.
  3. We, indeed, have plans to support WebSockets fully, that is to say not only as consumers, but as producers, too. This integration is currently on the mid-term roadmap. Btw.: are there already other options to integrate with Ditto, e.g., MQTT? 

Best regards,
Philip

  • Log in to post comments

Project Links

  • Getting Started
Incubating - Eclipse Streamsheets™

Related Projects

Related Projects:

  • Eclipse IoT
    • Eclipse Mosquitto™

Project Hierarchy:

  • Eclipse IoT
  • Eclipse Streamsheets™

Tags

Technology Types
  • IoT and Edge
  • Tools

Eclipse Foundation

  • About Us
  • Contact Us
  • Sponsor
  • Members
  • Governance
  • Code of Conduct
  • Logo and Artwork
  • Board of Directors
  • Careers

Legal

  • Privacy Policy
  • Terms of Use
  • Copyright Agent
  • Eclipse Public License
  • Legal Resources

Useful Links

  • Report a Bug
  • Documentation
  • How to Contribute
  • Mailing Lists
  • Forums
  • Marketplace

Other

  • IDE and Tools
  • Projects
  • Working Groups
  • Research@Eclipse
  • Report a Vulnerability
  • Service Status

Copyright © Eclipse Foundation. All Rights Reserved.

Back to the top