LogicFence: A Framework for Enforcing Global Integrity Constraints at Runtime

Large information systems (IS) comprise of several independent applications that share a common set of resources and data. Usually, there are implicit and subtle dependencies across these applications that are not specifically captured. This is especially so if the applications are bought off the shelf or are developed by independent third parties. Dependencies or global semantic constraints are difficult to discern and incorporate into the design of individual software components. Global constraints may change over time and it is usually expensive or infeasible to change individual application logic in every such situation. In order to address such an issue, we propose LogicFence, a framework that accepts a definition of global constraints and translates these constraints into primitives that are embedded into the run-time environments of application programs (currently, into the JVM of Java applications). LogicFence monitors the state of application programs and prevents the disparate instances to collectively form a globally inconsistent state