Beanbag: An Operation-based Heterogeneous Synchronization Language
Modern development environment often involves data with complex relationships. For example, in a UML model different diagrams are related, and if we generate code from the model, the generated code and the UML model are related. When users update some part of the data, we need to synchronize the update to make all data consistent. This process is called heterogeneous data synchronization.
Beanbag is a declarative language to support hetgerogeneous synchronization. The feature of Beanbag includes:
- Beanbag is declarative. Users describes only the consistency relations over data, and the program automatically keeps the data synchronized.
- Beanbag is operation-based. It takes update operations on the data as input and produces new update operations to make data consistent.
- Beanbag progates updates inside a replica as well as among replicas. The relations within a replica and those between replica are captured in a unified way.
- Beanbag synchronizes one update as well as multiple simultaneous updates.
- Beanbag allows users to finely control the synchronization behavior if there are mulitple ways to achieve consistency.
For more information, please refer to the Beanbag Homepage.