Data Storage

 

High-Level Design

The 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].
 

    Components of the Repository Architecture Style
  • A central data structure representing the correct state of the system.
  • A collection of independent components that operate on the central data structure.

  • Connectors
  • Typically procedure calls or direct memory accesses.

 

 

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 Rationale

The 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

 

Performance

The 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 Time

To 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 System

The 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.

Back to main page