Code Monkey home page Code Monkey logo

streamgen's Introduction

StreamGen

Distributed streaming applications, i.e. applications that process massive and potentially infinite streams of data in a distributed fashion, are becoming increasingly popular to tame the velocity and the volume of Big Data. Nevertheless, their widespread adoption is still limited by 1) the non-trivial design paradigms that deal with the unboundedness and vol ume of involved data streams and by 2) the many distributed streaming platforms, each with its own characteristics and APIs. StreamGen is a Model-Driven Engineering tool prototype aiming at simplifying the design of streaming applications and at automatically generating the corresponding executable code. StreamGen is built around the following two main components: (i) a UML profile and a modeling method to add streaming-specific concepts to standard UML Diagrams; (ii) a code generation module, which currently supports the Apache Spark and Apache Flink platforms.

Repo Structure

StreamGen is currently still a research prototype. Nevetheless, we are actively working on StreamGen adding new features and consolidating the current implementation towards an initial release (that we plan to publish during the upcoming weeks). Right now you can checkout this repository and try StreamGen directly into the Eclipse IDE. StreamGen is developed using Eclipse Papyrus v3.1.0 for implementing the UML profile (although more recent versions can be used as well to work with StreamGen) and Eclipse Acceleo v3.7.2 for the code generators. In order use StreamGen within Eclipse it is necessary to install both Papyrus and Acceleo. The repository contains the following main folders:

metamodel: containes the Ecore metamodel for the modeling language provided in StreamGen

profile: contains the PPapyrus UML profile, called StreamUML, used in StreamGen for modeling streaming applications

src: contains the source code for the code generation modules provided in StreamGen

wordcount: contains the UML model and the generated code (both for Spark an Flink) for the WordCount application example

temptrack: contains the UML model and the generated code (both for Spark and Flink) for the TempTrack case study

survey: contains the results of a survey we conducted with a group of young software engineers in order to assess the usability and usefulness of StreamGen

Requirements

streamgen's People

Contributors

micheleguerriero avatar maelstromdat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.