|
S3 applications run off the traditional client/server architecture. Client machines connect to the centralised server via their browsers in order to access the S3 web application. The server makes the necessary data calls to perform functions from the database. The database service can be run on the same machine as the server or on a secondary database server, which may be required should a large number of utilise the particular system.

System Requirements
S3 can be run on any specification of machine. However with larger numbers of users connecting and making use of the system, the hardware requirements for optimal use of the system will increase.
Minimum Server Requirements
Pentium 4.3 Ghz
1 Gigabyte RAM
100 MB Hard Disk Space
Optimal Server Requirements
Dual Core Pentium 4 3.4Ghz
4 Gigabyte RAM
100 MB Hard Disk Space
S3 Technology
S3 makes use of the following technologies on the server and client side:
* Javascript - used in the processing of basic functions on the client machine
* Crystal Reports - used for the generation of system reports from the server
* Microsoft Internet Information Services - used on the server in order to host the S3Application.
* Ajax - a development technique used to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user requests a change. This is intended to increase the web page's interactivity, speed, functionality, and usability. Ajax is also usable on many operating systems and architectures as it's based on JavaScript and XML.
* Postgre Database - OpenSource Database
Database Setup
Although S3 has functionality to support mySQL, SQLServer2000 and Postgre, Postgre is selected as an optimal database due to being opensource. S3 can also be adapted to suite a Oracle database.
PostgreSQL is a powerful open source relational database system. It has more than 15 years of active development and a proven architecture that has earned it a strong reputation for reliability, data integrity, and correctness. It runs on all major operating systems, including Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), and Windows. It is fully ACID compliant, has full support for foreign keys, joins, views, triggers, and stored procedures (in multiple languages). It includes most SQL92 and SQL99 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large objects, including pictures, sounds, or video. It has native programming interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others, and exceptional documentation.
An enterprise class database, PostgreSQL boasts sophisticated features such as Multi-Version Concurrency Control (MVCC), point in time recovery, tablespaces, asynchronous replication, nested transactions (savepoints), online/hot backups, a sophisticated query planner/optimizer, and write ahead logging for fault tolerance. It supports international character sets, multibyte character encodings, Unicode, and it is locale-aware for sorting, case-sensitivity, and formatting. It is highly scalable both in the sheer quantity of data it can manage and in the number of concurrent users it can accommodate. There are active PostgreSQL systems in production environments that manage in excess of 4 terabytes of data. Some general PostgreSQL limits are included in the table below.
PostgreSQL has won praise from its users and industry recognition, including the Linux New Media Award for Best Database System and three time winner of the The Linux Journal Editors' Choice Award for best DBMS.
Development Platform
The S3 suite of applications have been developed as web applications using the Visual Studio .NET 2003 Professional Development Platform. This ensures greater ease in application distribution, and the independence of user platforms for use of the product.
Programming Design
S3 utilises full Object Oriented design methodology within the application. The logic of the system is separated across three layers, namely:
1. The Presentation layer - solely responsible for the look and feel of the application. The presentation layer feeds information input by the user to the Business Layer
2. The Business Layer - responsible for performing all of the business based calculations and business logic of the application. In order for the business layer to perform it?s tasks it passes its requests on to the Data Access Layer
3. The Data Access Layer - responsible for making all requests for data to the database.
Having the data traversing across these three levels provides easy application troubleshooting and promotes better use of system resources through the best practice of Object Orientation. Singleton pattern is also utilised in the programming design of S3.
S3 Error Handling & Reporting
All errors within S3 are logged in text files that are stored on the server for each day that they may occur. This allows for easy tracking of what went wrong should a problem occur on the system, and speeds up the time for problem resolutions.
S3 Security
S3 utilises a sign-in methodology through the use of a username and password. All users are assigned security roles which then limit the access rights of the user. The sign-in methodology also allows for complete auditing of the data regarding who performed what function and when. All passwords are stored in the S3 database in an encrypted format.
S3 Document Storage
All documents stored via the S3 application are stored on the server under the Douments folder within S3 for backup purposes and easy access to a centralised repository for all data documents.
|