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
|