High-Level DesignThe architecture for data storage module is the repository architecture style. The repository architecture loosely resembles the shared data architecture[1]. The main draw backs of the shared data style do not really apply to this system. The efficiency issues will be handled by using a relational database management system (RDBMS) instead of a file share system. This also fixes the stability and the changes of data storage. A RDBMS
stores data in the form of related tables. Relational databases are very
powerful because they require few assumptions about how data is related
or how it will be extracted from the database. As a result, the same
database can be viewed in many different ways. An important feature of
relational systems is that a single database can be spread across
several tables. This differs from flat-file databases, in which each
database is self-contained in a single table[3]. Connectors
As previously stated will not be a basic file share
system it will be a fully functional shared information system that will
feature a relational database management system. The system will be in the style
of the repository architecture[1] using a database to store the persistent data.
The repository style is suitable for this applications because the central issue
is establishing, augmenting, and maintaining a complex central body of
information. A singleton[2] design pattern will be used in conjunction with the web services module to update course and handicapping algorithm. A singleton is basically a sole instance of some class. The main advantage to this pattern for this project is that the creation of the singleton can be delayed until it is actually needed and then marshaled to manage the life of the object[Req-3, Req-12 ]. This will be implemented via a trigger which is a procedure that is executed when a particular data activity occurs. This in turn will fire a stored procedure that kicks off the update. A stored procedure is a program that is stored within the database. An example of a common stored procedures is a utility program for the database. Design RationaleThe advantages of the Repository Architecture is that the DB stores persistent data shared among different transactions [Req-11]. It also does not have fixed ordering among transactions. Concurrency will be handled by the remote procedure calls. The repository style is suitable for this applications because the central issue is establishing, augmenting, and maintaining a complex central body of information.[Req-4 ] Additional advantages of the Repository Architecture Style
PerformanceThe repository must be able to scale to load of components that utilize it[Req-10] The RDBMS is designed to be versatile and can have few assumptions about how data is related or how it will be extracted from the database. Large queries can give the user a perceived freeze the application must not wait for large queries[Req-12] Distributed components the round trip cost of accessing repository will be dependent on connection speed and network load.[Req-12]Development TimeTo save in development time a existing RDBMS will be chosen[Req-4]. This will also allow seamless integration for course data.[Req-4 ] The system must be safe the repository will be available via Internet protocol[Req-11]. This can be accomplished using a security algorithm that the Remote Procedure Calls have to pass as a parameter. Critical SystemThe repository becomes critical component in this system so failure in repository causes entire system to fail. [Req-1, ..., Req-14] This is why a COTS RDBMS is best to use in this case they are tested and proven to be available.
|