ExSchema: Discovering and Maintaining Schemas from Polyglot Persistence Applications
Résumé
The use of scalable and heterogeneous data stores within a single system is gradually becoming a common practice in application development. Modern applications tend to rely on a polyglot approach to persistence, where traditional databases, non-relational data stores, and scalable systems associated to the emerging New SQL movement, are used simultaneously. However, considering that a large number of these systems rely on schema-less data models, developers in charge of maintaining applications that depend on these data stores need to manually analyze the application source code, in order to discover their data schemas. To help overcome this situation, in this paper we demonstrate ExSchema, a tool for the automatic discovery of external data schemas, directly from the source code of polyglot persistence applications. ExSchema is available as an Eclipse plug in, and can be easily included within existing development environments. Our tool can also be integrated with Git repositories, in order to analyze the evolution of the schemas used by an application over a period of time. In particular, this paper presents a demonstration scenario where the schemas from a system that relies on multiple document, graph, relational and column-family data stores, are discovered from the application source code.