This method will replicate the operation just performed before in all the others servers. In case where replication is not possible, an entry is added in the pending query log. Although implemented on top of a database engine, replication itself does not constitute an independent replication layer. Changes in server configuration, database connection or in the replication policy imply checking all over the system for possible modifications.
In this case, replication code is widespread through all the system. Taking this into account, we conclude that the object-oriented version did not behave as specified in the conceptual model.
This version was implemented using Eclipse 3. Modeling replication as an aspect allows defining an independent replication layer, achieving all the objectives required in the conceptual model. The implementation is described next.
Since replication is implemented as an aspect, it is implemented in a separate and independent way. First of all, a pointcut captures all the operations and information that will be replicated. An abstract pointcut can be defined, and then implemented in concrete pointcuts, obtaining the possibility of reusing the replication aspect in other environments. Given this pointcut, a before advice is introduced, specifying that before every operation is performed pending queries are executed, thus synchronizing all the information on the servers.
Similarly, an after advice is also introduced, which replicates the operation in all the other servers or log the queries if secondary servers are down.
The aspect skeleton is illustrated in listing 2. Connectivity to the database is also included within the aspect, in an aspect method createConnections. Up to now, the replication component modeled as an aspect includes the first and the third responsibilities, namely connection and data and operations to be replicated. Regarding servers configuration, it is modeled also within the aspect through private fields 1 , completing all the responsibilities required in the conceptual model. Aspect interaction with the other components is shown in figure 5.
The DBManager class is no longer required, since all its behavior is now encapsulated within the replication aspect, including database connection and server configuration. The replication code is no longer distributed through the system. We can now revisit the code for insert method, shown in listing 3. The code involves only actions regarding an insert event.
Besides modularity advantages, the aspect-oriented implementation allows introducing a separate replication layer. Reusability can be managed specifying abstract pointcuts, and evolution becomes easier, since replication code is isolated. Connection to database, server configuration, and data and operations to be replicated can be specified at a higher level, totally independent from the rest of the application. Due to all the reasons exposed previously, we can conclude that the aspect-oriented version clearly satisfied the conceptual model presented.
Despite the use of abstract pointcuts, the replication aspect cannot be completely unaware of base code evolution. Because AspectJ mechanisms rely on the code syntax's, it suffers from the pointcut fragility problem : when base code evolves, aspects must evolve too. However, this fragility is inherent to AspectJ, and not to our replication model.
AspectJ was chosen due to its wide acceptance, besides being one of the most popular aspect-oriented programming languages.
Regarding obliviousness , the base code does not have to be prepared in anyway, since execution points that the replication aspect is interested in are very reachable, which greatly facilitates inserting aspect behavior. As said before, aspect-oriented technology has been applied successfully in databases , specially considering object-oriented databases and modeling persistence as an aspect. In this work, we build on the top of these proposals introducing a Java framework called Sigma for Relational DataBases where a core feature as replication is implemented over a database independent replication layer.
: A.L. Corcoran, and J. Hale, “A Genetic Algorithm for Fragment Allocation in a Distributed Database System,” In Proc. Symp. on Applied Computing, pp. International Workshop on Intelligent Techniques in Distributed Systems (ITDS- ). Distributed Database Design: A Case Study. Umut Tosun.
Replication has been implemented as an aspect in other distributed contexts, as component-based programming  and dynamic flow control . To our best knowledge, replication, although mentioned as candidate requirement to be implemented as an aspect, was unexplored in a database context. We will continue improving our framework, incorporating configurations details into xml files, and adding more functionality, such as incorporating a transaction manager as an aspect.
We also would like to analyze performance issues and compare our framework with other successful frameworks like Spring . In distributed databases, replication is a key concept in order to maintain data consistence, and a secure mechanism in cases of servers' failure. Internal models for replication provided in most engines lack flexibility and suffer from other problems as bottleneck communications.
Taking this into account, we propose a conceptual model where replication is considered as a main architectural component, built on the top of databases engines which allows introducing a separate and independent replication layer. Two implementations are presented, an object oriented one and an aspect oriented one.
Whereas the object oriented versions suffers from the consequences of not managing correctly crosscutting concerns, the aspect-oriented version adapted perfectly to the conceptual model. Chitchyan, A.
Rashid, P. Sawyer, A. Garcia, M. Pinto Alarcon, et al. July Douence and D. Brichau and M. Haupt, "Survey of aspect-oriented languages and execution models". Colyer, G. Blair, and A. Rashid, "Managing complexity in middleware. Colyer and A. Proceedings of the 3rd international conference on Aspect-oriented software development , pp , For technical questions regarding this item, or to correct its authors, title, abstract, bibliographic or download information, contact: Adi Sava.
If you have authored this item and are not yet registered with RePEc, we encourage you to do it here. This allows to link your profile to this item. It also allows you to accept potential citations to this item that we are uncertain about. If CitEc recognized a reference but did not link an item in RePEc to it, you can help with this form. If you know of missing items citing this one, you can help us creating those links by adding the relevant references in the same way as above, for each refering item. If you are a registered author of this item, you may also want to check the "citations" tab in your RePEc Author Service profile, as there may be some citations waiting for confirmation.
Please note that corrections may take a couple of weeks to filter through the various RePEc services. Distributed Databases. Case Study we further examined our architecture by a case study in a swiss energy company and tested the system based on a mobile platform. The Design of a Distributed Database for Doctoral Studies this study focused on using semantic web technologies in an energy data management system. Proquest digital dissertations archive and Help filling out divorce papers Facebook Distributed System Case Study For Distributed System this study focused on using semantic web technologies in an energy data management system.
What is SaaS? Known Scale — Ethereum Network had a peak of 1. Looking for a Hosting Solution? The coordinator election problem is to choose a process from among a group of processes on different processors in a distributed system to act as the central coordinator. This is advantageous as it increases the availability of data at different sites. Connectivity to the database is also included within the aspect, in an aspect method createConnections.