Puneet Varma (Editor)

Reactive Blocks

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Bitreactive AS

Stable release
  
2.7.0 / 2016-09-16

Platform
  
Eclipse / Java

Initial release
  
2011

Operating system
  
Windows, OS X, Linux

Licence
  
Commercial, Free Community Edition

Reactive Blocks is a visual model-driven development environment based on Activity Diagrams supporting formal model analysis, automated code generation, hierarchical modelling, and an extensive library of ready-to-use components for the Java platform.

Contents

Concept

The core technology originated from research at the Norwegian University of Science and Technology and the Institute for Telematics. Reactive Blocks is a visual model-driven development environment supporting formal model analysis, automated code generation, hierarchical modelling, and an extensive library of ready-to-use components for the Java platform. By combining re-usable blocks, a developer can create complex applications graphically.

These building blocks are defined by a combination of graphical models and Java code. The graphical model is based on UML activity diagrams and state machines. The existing library can be extended by user-implemented custom blocks which can include the full abilities of the Java platform. Each block has an extended interface description in the form of input and output pins and a contract. The contract indicates which states a block has, and which pins can be interacted with during which state.

Reactive Blocks uses the graphical model together with the information from the contracts to formally analyse the application to discover common problems such as deadlocks or incorrect terminations. If the analysis finds a problem, the according state of the application can be highlighted to identify the cause. The development environment offers a step-by-step animation of the chain of state transitions leading up to the problem.

An application which passed validation can then be automatically converted into Java code. Since a building block´s application is a correct formal definition, the builder can transform its logic into code. The generated code is packaged in a standard Eclipse Java project and can thus be treated as any other code; exporting runnable JARs, debugging, and profiling work the same.

Supported Platforms

  • Java (software platform)
  • Open Services Gateway initiative
  • Eclipse Kura, an interoperability open source project for M2M applications.
  • ESF, an inclusive and targeted Java OSGi software framework for M2M multiservice gateways, smart devices and IoT applications.
  • Literature

  • Kraemer, Frank Alexander; Herrmann, Peter (2010). "Reactive Semantics for Distributed UML Activities". Formal Techniques for Distributed Systems: Joint 12th IFIP WG 6.1 International Conference. Amsterdam, The Netherlands: Springer Berlin Heidelberg. pp. 17–31. 10.1007/978-3-642-13464-7_3. 
  • Kraemer, Frank Alexander (2015-04-09). "Block by Block Towards IoT Applications" (PDF). Bitreactive. Retrieved 2016-09-26. 
  • References

    Reactive Blocks Wikipedia