Reactive Blocks
![]() | This article relies too much on references to primary sources. (September 2016) |
Developer(s) | Bitreactive AS |
---|---|
Initial release | 2011 |
Stable release | 2.7.0
/ 2016-09-16 |
Operating system | Windows, OS X, Linux |
Platform | Eclipse / Java |
Licence | Commercial, Free Community Edition |
Website | http://www.bitreactive.com/ |
Reactive Blocks[1] 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.
Concept[]
The core technology originated from research at the Norwegian University of Science and Technology and the Institute for Telematics.[2] 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[3]
- Eclipse Kura, an interoperability open source project for M2M applications.[4]
- ESF, an inclusive and targeted Java OSGi software framework for M2M multiservice gateways, smart devices and IoT applications.[5]
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. doi:10.1007/978-3-642-13464-7_3. 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[]
- ^ Homepage
- ^ Kraemer, Frank Alexander (2008). Engineering Reactive Systems: A Compositional and Model-Driven Method Based on Collaborative Building Blocks (PhD). Fakultet for informasjonsteknologi, matematikk og elektroteknikk. hdl:11250/261480.
- ^ "Huawei, Bitreactive and Eurotech join OSGi Alliance" (PDF) (Press release). USA: OSGi Alliance. Inventures. 2015-11-03. Retrieved 2016-09-26.
- ^ "Kura - Open Source framework for IoT". Eclipse Foundation. Retrieved 2016-09-25.
- ^ "Everyware™ Software Framework ( ESF )". Eurotech. Retrieved 2016-09-25.
- Eclipse (software)