FlexSync

FlexSync provides an aspect-oriented approach to programming Java synchronization.

Designers of concurrent programs are faced with many choices of synchronization mechanisms, among which clear functional trade-offs exists. Making synchronization customizable is highly desirable as different deployment scenarios of the same program often place different precedences on synchronization choices. Unfortunately, such customizations cannot be accomplished in the conventional non-modular implementation of synchronization.

To enable customizability, we present FlexSync, an aspect oriented synchronization library, to enable the modular reasoning of synchronization and to resolve the coupling between synchronization intentions and mechanisms in Java systems.

With FlexSync, programming synchronization is largely declarative. Complex Java systems can simultaneously work with multiple synchronization mechanisms without any code changes. The FlexSync load-time weaver performs deployment time optimizations and ensures these synchronization mechanisms interact with each other and with the core system consistently.

 

Releases

We release the FlexSync library with two case studies. The sources are available upon requests.

* We don't release the load-time weaver for now as we're still conducting quite active research on it.

Last Updated: 15/09/2008