Skip to content

The purpose of this codebase is to demonstrate a simple client application that allows users to securely and reliably connect to a database.

License

Notifications You must be signed in to change notification settings

cooper-rm/ThreeTieredClientServerDBAccessSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Three-Tiered-Client-Server-DB-access-system

The purpose of this application is to demonstrate a simple an application that allows users to securely and reliably connect to a database. This application will be constructed with a command-line client that is authenticated via cryptographic methods. It will not store user passwords in any form. The application server will authenticate the client, transform Remote Procedure Call (RPC) messages from the client into SQL commands, then query a MySQL database. The server will then return the results from the database query to the client. To ensure reliability through management of fault tolerance, the application server process will be replicated via virtual machines.

Project Attributes:

Distribution transparency:

This project will attempt to implement transparency between different applications. This means the end user will be unaware of the fact that the application is made up of three separate systems, the client, the server, and the database.

Distributed Architecture:

The system of this project will be distributed across three different layers.

  • Client: The client will implement a command-line application that sends requests to the server.

  • Server: The server application will process client requests and communicate to the database application.

  • Database: The database application will consist of a MySQL server that stores data and communicates with the server application.

  • Security: All communication between client and server will be encrypted using SSL/TLS to ensure confidentiality.

  • Replication: The application server processes will be replicated by running multiple instances via virtual machines (VM). This ensures if one VM fails, another will carry the load until it can restart.

  • Consistency: While data replication is not currently part of the plan, this project may explore replication of data through multiple databases.

  • Fault tolerance: This project will manage fault tolerance by utilizing replication of the application server layer. This ensures transparency to the user.

About

The purpose of this codebase is to demonstrate a simple client application that allows users to securely and reliably connect to a database.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published