High-Level Design

 

 

The GolfTrack application is a variation of the client server architecture. The client server architecture was initially developed due to limitations of file sharing architectures. The new client server approach introduced a database server to replace the file server. Using this relational database management system or DBMS, the user queries can be answered more succinctly. The client server architecture reduces network traffic by providing a query response rather than total file transfer. It improves multi-user updating through a GUI front end to a shared database. In the client server architectures, Remote Procedure Calls or RPC's a distributed version of the LPC's used in COM or the standard query language, A.K.A. SQL statements are used to communicate between the client and server. GolfTrack is utilizing a specialized RPC called web Simple Object Access Protocol which is in the web services module.

 
Three Tier Software Architectures


The three tier architecture is used when an effective distributed client server design is needed that when compared to a two tier provides  increased performance, flexibility, maintainability, reusability, and scalability, while hiding the complexity of distributed processing from the user. These characteristics have made three layer architectures a ideal choice for the GolfTrack System. In a three-tier architecture, each tier is responsible for providing a service. The client provides user services, consisting mainly of the user interface. The server provides data services, consisting of the persistent data and the means of accessing and maintaining it. The middle layer provides business services, when consisting of data validations, and enforcement of business rules.

 

Components of a three tier Client Server architecture

User System Interface

User System Interface also called front end clients or user agent. The user agent consists of components unique to every user including application specific logic and the user interface. This handles the user interaction and task specific local operations originated by the user.

Domain servers

The second tier is the domain server tier, supports the multi-user environment, holds the shared parts of application and business logic. This tier needs services like transactions, concurrency control and security. Most of the data or information is requested by the applications are accessed via this layer, data intensive computing operations should be executed here whenever possible. This tier or its  parts may cooperate via intra-tier communication if needed. Domain Servers are also called application servers an example is the web services

Data Storage

The third tier is where all of the persistent data goes, the DB-server tier is to manage persistency of certain data or information and to execute the database transactions be they stored procedures or triggers. The storage server is responsible for special mapping, e.g. the mapping between objects from the application and tables of a RDBMS. The back end storage or database will be a RDBMS and described in the data storage section.

Design Rationale

The  reasoning behind choosing the three tier with an application server is that the three tier application server architecture allocates the main body of an application to run on a shared host rather than in the user system interface client environment.

This means the application server does not drive the GUIs. Instead it is driven by the shared business logic, computations, and a data retrieval engine.

Advantages

Some advantages are that there is less software on the client this removes a link in the chain and in end result there is less security to worry about[Req-1, Req-10, Req-11], this makes the application more scalable[Req-14], support and installation costs are less on a single server than maintaining each on a desktop client. The application server design is recommended when security, scalability, and cost which are some of the main forces behind the GolfTrack project.
 

The system is broken into five(5) modules. Each of these individual modules have their own architecture types, these are broken into registration, sign on, web services, data storage, and data metrics.

 

 

Back to main page