User Registration on Distributed Data Base
Project Overview
I designed a User Registration module using my own Distributed Database, created in the Agent-Oriented programming language CAOPLE, and deployed it on Google Cloud Platform. The project includes several agents responsible for database management, monitoring, load balancing, and user interface.
Business Value
The system I developed is a scalable, reliable, and distributed database management system that can handle a large number of concurrent user requests. It is designed to be highly available, fault-tolerant, and self-healing. This makes it ideal for businesses that require fast and reliable access to their data, regardless of where their users are located.
Technical Details
CAOPLE is a recent Agent-Oriented programming language developed at Oxford Brookes University. Since there are no ready solutions available on the internet, I had to write all the code from scratch. This was a significant challenge, but it also allowed me to gain a deep understanding of the language and how it works.
The project includes several agents that work together to manage the distributed database. The "DataBase Workers" are responsible for saving units of the database on the machine. The "DataBase Manager" communicates with all the "DataBase Workers" to work with the database. The "Monitoring System" periodically checks if each agent is alive and detects any machine crashes. The "Load Balancer" receives user requests and decides which instances/agents to resend them to. Finally, the "User Interface" agent implements an interface to communicate with the user, get their requests, and provide them with data.
The project was deployed on Google Cloud Platform using five instances, which allowed for easy scaling and ensured that the system could handle a large number of user requests. The use of CAOPLE made it possible to create an agent-oriented system that is highly customizable and can be adapted to different use cases.
Results
The system was tested with a large number of concurrent user requests and performed well, with no significant issues or downtime. The project demonstrates the potential of agent-oriented programming and the power of distributed database management systems.
Future Works
There are several potential avenues for future development, such as exploring different load-balancing algorithms, improving fault-tolerance and self-healing capabilities, and adding more agents to handle different aspects of the system. Additionally, incorporating machine learning and data analysis techniques could further enhance the system's capabilities. Overall, the project has significant potential for future improvements and can be adapted to a wide range of use cases.