Introduction
This article is the second part of the Foster project series. You can view the first part here:
Part 1: Requirement Specification
Detailed Design
Purpose
The article describes the architecture and system design of the FOSTER (Food Stamps Terminal) application.
The goal of the article is to cover the high-level system architecture, design, hardware and software requirements for implementing the solution.
The article also contains detailed information on the SharePoint Infrastructures needed like:
- Site Collections
- Sub Sites
- Content Types
- Lists
- Screens
Acronyms
The article is meant for anyone who wanted to understand the system architecture and design. The following are the particularly intended audiences:
Acronym |
Description |
Foster |
Food Stamps Terminal |
SDK |
Software Development Kit |
WSP |
SharePoint Solution Package |
Audience
The article is meant for anyone wanting to understand the system architecture and design. The following are the particularly intended audiences:
- Foster Managers
- Foster Developers
- Foster Administrators
System Overview
As stated in the Requirements Specification, the FOSTER application provides a better user interface and automated solutions to address Food Stamps allocation and management.
Components
The following are the components involved in the application:
- Records Management
- Metadata
- Enterprise Search
Intranet & Business Impacts
The existing intranet sites are not impacted by the Foster application. The Foster application will provide a better management for the existing manual Food Stamps allocation process. It improves the employee productive time usage.
User Characteristics
The following are the users who are authenticated to use the system:
- Manager
- Clerk
The users are authenticated using Active Directory Domain Services installed in the Intranet. The user has to provide the credentials to login to the system.
Logical Architecture
The following is the Logical Architecture of the Foster application.
The components involved are:
- User Interface: The user facing components involving site, pages, lists etc.
- Business Layer: The middle layer which handles the business logic
- Database: The persistence layer which is actually SharePoint content db.
Physical Architecture
The following is the Physical Architecture of the Foster application.
The SharePoint server contains the following components:
- Web Front End Server
- SharePoint Database Server
- Content Database Server
The client machines are interacting with the SharePoint server. The Domain Controller and the Active Directory are other servers in the network. It could reside in the same SharePoint server as well.
Site Architecture
The Site Architecture of Foster application is shown below. A new Web Application and Site Collection have to be created.
The Foster Site Collection contains the following sub sites:
- Home
- Applications
- Approval
- Search
Site Collections & Sub Sites
The following are site collections and sub sites required by the application.
Site Collection 1: Foster
Name: Foster
Type: Site Collection
Sub Sites
Sub Site 1: Home
Name: Home
Type: Site
Sub Site 2: Applications
Name: Applications
Type: Site
Sub Site 3: Approval
Name: Approval
Type: Site
Sub Site 4: Search
Name: Search
Type: Site
Custom Content Types
Following are the custom content types required by the Foster application.
Site Column 1: Application Status
Name: Application Status
Type: Choice
Choices: Started, Approved, Rejected
Default Value: Started
List Definition 1: Applications
Name: Applications
List Instances
The following are the list instances of type Applications.
List 1: New Applications
Name: New Applications
Type: Applications
Parent Site: Applications
List 2: Approved Applications
Name: Approved Applications
Type: Applications
Parent Site: Approval
List 3: Rejected Applications
Name: Rejected Applications
Type: Applications
Parent Site: Approval
List 4: Employment Status
Name: Employment Status
Parent Site: Approval
Structure following:
Screens
The following are the screens involved in the solution.
Screen-01: New Applications
The following is the view screen for the New Applications list.
The following is the entry screen for New Applications. (Use Case Mapping: US-03)
Screen-02: Approved Applications
The following is the view screen for the Approved Applications list.
The following is the entry screen for Rejected Applications. Use Case Mapping: UC-04
Screen-03: Rejected Applications
The following is the view screen for Rejected Applications list.
The following is the entry screen for Rejected Applications.
Timer Job
The Employment Status list is managed through the following Timer Job. This timer job fetches new applicant job status from the external database.
Timer Job Name: Employment Status Job
Timer Job Interval: Daily
Description: Reads the New Applicant SSN number and fetches the Job Status from the external database. The database is resolved using the specified connection string. Entity Framework is used to connect to the database and query the result.
Entity Structure
The following is the entity structure the Timer Job will be fetching to update the Employment Status list. The whole list is fetched from the database and updated with the list inside Foster. This Employment Status list is in turned used by the Approval workflow.
Client Application
The client application is a .Net 4.0 Windows Forms Application that uses the SharePoint Client Object Model API. The client application communicates with SharePoint to get the data and posts it to the Accounting SDK.
The following is the main screen of the Client Application:
Get Data
The Get command should fetch the current month total of the Approved Applications from the SharePoint site.
Post Data
The Post command should post the total to the Accounting SDK.
Navigation
The Get and Post buttons should be enabled only on having a valid connection with the SharePoint site.
Connect
The application should provide a button to allow connecting to SharePoint site.
Exit
The application should provide a button to close the application.
Configuration
The application includes the configuration file where the site URL, user name and password are stored.
<appSettings>
<add key="site" value="http://foster.server.com"/>
<add key="user" value="user"/>
<add key="password" value="password!"/>
</appSettings>
Activities
The following are the activities involved with respect to their operational boundaries.
New Applications Activities
The following is the activity diagram for the clerk logging into the system and entering new application details:
Approval Application Activities
The following is the manger activities in approving a new application. The new application SSN is checked with the Employment Status list inside Foster to Approve or Reject the application:
Timer Job Activities
The Timer Job on the specified interval initiates itself and connects to the external database to update the Employment Status list.
Roles & Permissions
The following are the roles and permissions involved in Foster:
Role |
Permissions |
Administrator |
Create Web Application, Create Site Collection, |
Manager |
Access the sites Home, Applications, Approval and Search. Can execute the Approval Workflow. |
Clerk |
Access the sites Home and Applications. Can Add/Edit/Delete new applications. |
Application Security
Ensure the application is secured from:
- SQL Injection Attacks
- Cross-Site Scripting Attacks
Deployment
Deployment is done through running SharePoint Solution Packages (wsp) files in the server.
Packages
The following are the deployment packages determined:
- Site Content Package
- Workflow Package
- WebParts Package
- Timer Job Package
The Site Content Package should contain the sub sites, list definitions, content types and list instances in their respected position. The Workflow Package contains the Approval Workflow of the project. The WebParts Package contains the Search WebPart associated with the project. The Timer Job Package contains the Employment Status update Timer job associated with the project.
Manual Configurations
The SharePoint Administrator on the client side has to create & configure the required Web Application and Site Collection manually.
- Users & Permission Configuration
- WebParts Instantiation
Hardware & Software Requirements
Hardware Requirements
The following are the hardware requirements for the proposed system:
CPU |
64 bit, four cores |
RAM |
8 GB |
Hard Disk |
80 GB of system drive |
Software Requirements
The following are the software requirements for the proposed system:
Windows Server 2008 R2 SP1 |
Active Directory |
SQL Server 2008 R2 64 bit |
Microsoft .Net 3.5 SP1 |
Microsoft Chart Controls for .Net 3.5 |
Windows PowerShell 2.0 |
ADO.NET Data Services Update for .Net 3.5 |
Microsoft Filter Pack 2.0 |
Windows Identity Foundation |
The following are the roles required in the proposed windows server:
Web Server Role |
Application Server Role |
References
Hardware and software requirements (SharePoint Server 2010)