Skip to content

Architecture

Danylo Vashchilenko edited this page Dec 3, 2012 · 4 revisions

Key2Gym is a system that consists of several components. It's important to note that not all of them are part of the project Key2Gym. For example, although the database server is a part of the Key2Gym system, it's not a part of the project.

Overview

The following figure shows the system and its components. Arrows denote commuincation between the components.

Key2Gym architecture

The left part of the figure is the 3-tiered application. Its tiers are: database, business and client. The right part is the migration tool. The rest of the page describes each part of the system. All components of the system are decoupled, which means that they can be run independently from each other on different hosts across the network.

Database

The database is where all the data is held. Key2Gym uses relational database, although the currently supported RDBMS PostgreSQL is considered to be object-relational. The database's schema contains basic data constraints like primary keys, unique and null/not-null constraints. The schema is maintained by the migration tool, which will be described later.

Business

The business is where all the business logic is. No business decision is made and no data can be accessed or modified by the client except through the business tier. The business tier takes care of things like transactions, security checks, concurrency control and data validation.

Client

The client is the human inteface of the system. It's responsible to graphically collect input data from the user, pass it to the business tier, display data in form lists, tables, menus, images, etc. The client can bu run concurrently on different computers and connect to the same business tier.

Migration tool

Finally, the migration tool is a tool designed to be used by the DBA. It allows to initiate Key2Gym schema on databases, migrate schemas and check the database's schema version, etc.

Clone this wiki locally