Sharepoint 2010 - Foster Detailed Design: Part 2

Introduction

FstShr1.jpg

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:

  1. Foster Managers
  2. Foster Developers
  3. 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:

  1. Manager
  2. 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.

FstShr2.jpg

The components involved are:

  1. User Interface: The user facing components involving site, pages, lists etc.
  2. Business Layer: The middle layer which handles the business logic
  3. 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

FstShr3.jpg

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.

FstShr4.jpg

The Foster Site Collection contains the following sub sites:

  1. Home
  2. Applications
  3. Approval
  4. 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

FstShr4.5.jpg

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:

FstShr5.jpg

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.

FstShr6.jpg

The following is the entry screen for Rejected Applications. Use Case Mapping: UC-04

FstShr7.jpg

Screen-03: Rejected Applications

The following is the view screen for Rejected Applications list.

FstShr8.jpg

The following is the entry screen for Rejected Applications.

FstShr9.jpg

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.

FstShr10.jpg

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:

FstShr11.jpg

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:

FstShr12.jpg

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:

FstShr13.jpg

Timer Job Activities

The Timer Job on the specified interval initiates itself and connects to the external database to update the Employment Status list.

FstShr14.jpg

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:

  1. Site Content Package
  2. Workflow Package
  3. WebParts Package
  4. Timer Job Package

    FstShr15.jpg

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)