Uploaded by haitnhe141536

FMO Architecture Design v1.0

advertisement
FMO
Architecture Design
Project Code: FMO
Document Code: FMO_Architecture Design_v1.0
Hanoi, Aug 2011
FMO – Architecture Design
v1.0
RECORD OF CHANGE
*A - Added M - Modified D - Deleted
Effective
Changed Items
A*
Date
2-Aug-11
04ae-BM/PM/HDCV/FSOFT v1/2
Change Description
New Version
M, D
A
Create new
Internal use
1.0
2/34
FMO – Architecture Design
v1.0
SIGNATURE PAGE
ORIGINATOR: Nguyen Tien Dat
2-Aug-11
Designer
REVIEWERS:
Le Hai Nam
3-Aug-11
Technical Leader
Doan Thi Thuy Linh
3-Aug-11
Quality Assurance
APPROVAL:
Nguyen Tien Chien
3-Aug-11
Project Manager
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
3/34
FMO – Architecture Design
v1.0
TABLE OF CONTENTS
1
INTRODUCTION ........................................................................................................ 6
1.1
Purpose ...................................................................................................................6
1.2
Scope ......................................................................................................................6
1.3
Definitions, Acronyms and Abbreviations ...................................................................6
1.4
References ..............................................................................................................7
1.5
Overview .................................................................................................................7
2
ARCHITECTURAL REPRESENTATION ........................................................................ 9
3
ARCHITECTURAL GOALS AND CONSTRAINTS ........................................................11
3.1
Technical Platform ................................................................................................. 11
3.2
Security ................................................................................................................. 11
3.3
Persistence ............................................................................................................ 11
3.4
Reliability/Availability .............................................................................................. 12
3.5
Performance .......................................................................................................... 12
4
USE CASE VIEW ......................................................................................................13
5
LOGICAL VIEW ........................................................................................................16
6
PROCESS VIEW .......................................................................................................17
7
6.1
Client Environment ................................................................................................. 18
6.2
Server Environment ............................................................................................... 18
DEPLOYMENT VIEW ................................................................................................19
7.1
7.1.1
Application server ......................................................................................................... 19
7.1.2
Database server ........................................................................................................... 20
7.2
8
Hardware recommendations for servers .................................................................. 19
Software recommendations for servers .................................................................... 20
IMPLEMENTATION VIEW ........................................................................................22
8.1
Implementation Technology ................................................................................... 22
8.1.1
8.2
Why ASP.Net MVC ........................................................................................................ 22
Layer Technology ................................................................................................... 24
8.2.1
View ........................................................................................................................... 24
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
4/34
FMO – Architecture Design
9
v1.0
8.2.2
Controller .................................................................................................................... 24
8.2.3
Model .......................................................................................................................... 25
8.2.4
Common ..................................................................................................................... 26
SIZE AND PERFORMANCE .......................................................................................30
9.1
Network Load Balancing (NLB) ................................................................................ 30
9.2
Failover Clustering ................................................................................................. 31
9.3
Hardware recommendations for high availability servers ........................................... 32
9.3.1
Application server ......................................................................................................... 32
9.3.2
Database server ........................................................................................................... 32
9.4
Software recommendations for high availability servers ............................................ 33
10 QUALITY .................................................................................................................33
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
5/34
FMO – Architecture Design
1
v1.0
INTRODUCTION
1.1 Purpose
This Software Architecture Document (SAD) describes the proposed architecture for El Camino
Hospital (ECH) Mobile Website. It is intended to capture and convey the significant
architectural decisions that have been made on the system.
The SAD has two purposes. First, it is intended to communicate the architectural direction for
El Camino Hospital Mobile Website to ECH. Second, it is to inform the architect of El Camino
Hospital Mobile Website by software development organization.
1.2 Scope
The SAD addresses the entire architecture of the custom software to be developed to
implement ECH Mobile Website. The architecture is presented in various views that present
ECH Mobile Website’s high-level functionality, major logical components, deployment,
implementation technologies, considerations for performance and security.
The SAD does not address the following:
• The architecture of underlying commercial off-the-shelf software, such as Microsoft .NET or
HTML 5
• The architecture of existing framework of ECH
• The architecture of other ECH applications
• The architecture of specific hardware and network infrastructure to be used to support ECH
Mobile Website
1.3 Definitions, Acronyms and Abbreviations
Term
Definition
ECH
El Camino Hospital
MVC
Model – View – Controller
SAD
Software Architecture Design
WS
Web Service
IIS
Internet Information Server
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
6/34
FMO – Architecture Design
v1.0
Term
Definition
User
The normal user of ECH website
Registered User
The user who has a login account to ECH website
NLB
Network Load Balancing
1.4 References
Document
Location
iPhone_App_Concepts_Presentation_ Customer Supplied
Description
Vision
by_ECH_201101.pdf
iPhone_App_Research_Presentation_ Customer Supplied
Vision
by_ECH_20110126.pdf
Mobile_POV_v2_20110208
Customer Supplied
Vision
Mobile_Optimized_Website_Strategy
Customer Supplied
Requirement
Customer Supplied
Requirement
_Presentation_v1_20110328.pdf
ECH_MobileWeb_0727.pdf
FMO_Functional
Requirement Project folder
Requirement
Specification_v1.0.doc
FMO_Questions
and
Answers Customer Supplied
Management Sheet_20110727.xslx
Requirement
MVC overview
http://msdn.microsoft.com/enus/library/ff649643.aspx
Architect
ASP.Net MVC 3
http://www.asp.net/mvc/mvc3#o Architect
verview
Log4Net features
http://logging.apache.org/log4n
et/release/features.html
Architect
1.5 Overview
In order to cover all area of the architecture, the SAD contains the following sections:
Architectural Representation: describe the purpose of each view of the system.
Architectural Goal and Constraints: describe the architectural constraints of the system.
Use Case View: describe the major use cases of the system.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
7/34
FMO – Architecture Design
v1.0
Logical View: describe the logical parts of the system.
Process View: describe the main processes of the system and the external system that it
interacts with.
Deployment View: describe how the system will be deployed.
Implementation View: describe how the system will be implemented, in development
perspective.
Size and Performance: describe the proposed solution to satisfy the need of a scalable and
high performance system.
Quality: describe the quality goals of the system.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
8/34
FMO – Architecture Design
2
v1.0
ARCHITECTURAL REPRESENTATION
The ECH System Architecture is represented by five views defined in the 4+1 view model. The
views of the system includes the Use Case View defining key functionality, the Logical View
defining structure of components, the Process View delineating performance factors, the
Deployment View describing the system topology and the Implementation View describing the
software construction.
Figure 1: The 4+1 View Model
1. Use Case View
Audience: All stake-holders.
Related Artifacts: Use Case Model
Area: this view overviews ECH’s use cases that define the functions expected of the
software. It describes major use cases that have significant impact on the system
architecture.
2. Logical View
Audience: Designers.
Related Artifacts: Design Model
Area: This view contains diagrams and descriptions of the software tiers and
components within each tier needed to perform the functions documented in the Use
Case View.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
9/34
FMO – Architecture Design
v1.0
The layer diagram, also known as the technology stack, defines the tiers of software
components used to implement ECH:
View, Controller and Model. Each layer is
defined by its purpose and processing responsibilities.
In addition to the layer diagram, the Logical view also contains several diagrams
depicting interaction between components within each layer. These diagrams are
derived from use cases and provide a logical structure for architecturally significant
functionality.
3. Process View
Audience: Integrators.
Related Artifacts: N/A
Area: This view describes the set up, break down, and run-time architecture of the
system in terms of the processes and threads that execute on each system platform.
4. Deployment View
Audience: Deployment Managers.
Related Artifacts: Deployment Model
Area: This view describes the mapping of the software onto the hardware (network
topology) in various deployments along with the software configurations needed to
support these deployments.
5. Implementation View
Audience: Programmers.
Related Artifacts: Implementation Model, components
Area: This view describes the actual software components that support the
implementation of the logical and process views. The view contains an enumeration
of all subsystems in the implementation model, package diagrams illustrating how
subsystems are organized as bodies of programming code.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
10/34
FMO – Architecture Design
3
v1.0
ARCHITECTURAL GOALS AND CONSTRAINTS
This section describes the software requirements and objectives that have some significant
impact on the system architecture.
3.1 Technical Platform
Server side: ECH site will be hosted on IIS web servers and connecting to SQL Server 2008
Database servers.
The web server is listening on the web standard port 80.
All communications with clients have to comply with public HTTP, HTTPS, TCP/IP
communication protocol standards.
The system has interactions with three interfaces: ER Wait Time API, Find a Physician API and
Google Map API. The communications with the first two are just SOAP calls, while the
communication with the last one is done via a Javascript API.
Client side: Clients are iPhone and Android devices. The hybrid applications running on these
devices use the default web browsers which come along with the associated mobile OS to
make request to the server side. For example: Safari for iPhone devices. The target OS are:
-
iPhone: iOS v4 or above
-
Android: Android OS v2.2 or above
3.2 Security
The HTTP protocol will be used to facilitate communications between the client and server and
HTTPS protocol will be used for all My Family&Me functions. Basic password authentication and
role based security mechanisms will be used to protect My Family&Me site from unauthorized
access. All medical information of users must be secured per requirements of HIPAA and
TRUSTe.
3.3 Persistence
Data persistence will be addressed using a relational database.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
11/34
FMO – Architecture Design
v1.0
3.4 Reliability/Availability
Scalability, availability and reliability are key requirements for any IT system. For this mobile
web application, we assume that the target availability is 95%.
The remaining time (18.25 days) is reserved for maintenance activities. The higher availability
can be achieved by the solution discussed in section 9 - Size and Performance.
3.5 Performance
Below are the two requirements for the performance of ECH mobile web application, with the
assumption that in normal case, there will be less than or equal to 100 concurrent users:
1. Each page should load in 4 seconds or less for 100 concurrent users.
2. Each page should load in 12 seconds or less for more than 100 concurrent users.
The solution to achieve the target performance when the number of user grows will be
discussed in section 9 – Size and Performance.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
12/34
FMO – Architecture Design
4
v1.0
USE CASE VIEW
The diagram below included a list of use cases that represent significant and major
functionality of the system. The use cases that have significant impact on the system are:
1. Find Physician
2. View ER Wait Time
3. View ER Profile
4. Get Directions
5. View Visiting ECH
6. View Hospital Profile
7. View ECH News
8. Login (My Family&Me)
9. Create Account (My Family&Me)
10. View Family Dashboard (My Family&Me)
11. Add Profile (My Family&Me)
12. View Profile (My Family&Me)
13. Edit Profile (My Family&Me)
14. Delete Profile (My Family&Me)
<<system>>
Find Physician WS
Find Physician
Login
<<system>>
ER Wait Time WS
Create Account
View ER Wait Time
Registered User
View ER Profile
<<extend>>
User
View Family Dashboard
<<extend>>
<<extend>>
<<extend>>
Get Directions
View Profile
Add Profile
<<extend>>
Edit Profile
<<extend>>
<<extend>>
View Visiting ECH
<<extend>>
View Hospital Profile
Delete Profile
View ECH News
<<system>>
External RSS
Figure 2: Use Case Diagram (only major use cases are included)
1. Find Physician
a. Actor: User, Find Physician WS
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
13/34
<<system>>
Google API
FMO – Architecture Design
v1.0
b. Description: this is a highlighted feature based on traffic and usage of current
ECH website. It enables user to search for a doctor using full name initial, specialty
or location. System calls Find Physician web service to get the search result. The
result contains the address, phone number and certification information… of the
doctor and returned in several pages.
2. View ER Wait Time
a. Actor: User, ER Wait Time WS
b. Description: this is a high value feature of the current ECH website. It provides
user the estimated wait time for both locations of hospital: Mountain View and Los
Gatos. System calls ER Wait Time web service to get the wait times (in minutes).
The result is refreshed every 10 minutes.
3. View ER Profile
a. Actor: User
b. Description: this feature provides user the useful information of the emergency
room: address, phone number and estimated wait time.
4. Get Directions
a. Actor: User, Google Map API
b. Description: this feature allows user to see where the hospital is located in the
Google Map. It also shows users the way to the hospital from either their current
location or an entered address. This feature facilitates the Google Map API to show
the map and displays the directions.
5. View Visiting ECH
a. Actor: User
b. Description: this feature provides user the general information of the hospital.
User can choose to view information of either one of two locations of hospital or
select other locations.
6. View Hospital Profile
a. Actor: User
b. Description: this feature provides user more detail information of a location of the
hospital. User can choose to view the useful information for visitors, call the front
desk, see the campus map or get the directions to the associated location.
7. View ECH News
a. Actor: User, External RSS
b. Description: this is a useful feature that provides user lots of news from various
news sources. System gets the updates from many external RSS feeds and
networks such as Facebook, Twitter, Youtube, as well as the internal RSS feed of
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
14/34
FMO – Architecture Design
v1.0
ECH. The results will be displayed and user can choose to read, like or follow…
depends on the type of news source.
8. Login (My Family&Me)
a. Actor: Registered User
b. Description: user has to login before using any function of My Family&Me. Users
will stay login until they logout or the cookie has been cleared.
9. Create Account (My Family&Me)
a. Actor: User
b. Description: users can create a new account if they do not have one. Then they
can login to My Family&Me once the account is created.
10. View Family Dashboard (My Family&Me)
a. Actor: Registered User
b. Description: this feature display a list of the family members associated with
current logged in account. User can add, edit or delete members from this
dashboard.
11. Add Profile (My Family&Me)
a. Actor: Registered User
b. Description: this feature enables user to create a new profile for a family member.
This has five steps in which user needs to enter the personal information, medical
history, current medication, known allergies and primary physician of this profile.
12. View Profile (My Family&Me)
a. Actor: Registered User
b. Description: this feature enables user to view all information of a family member
profile. User can choose to edit or delete profile here.
13. Edit Profile (My Family&Me)
a. Actor: Registered User
b. Description: this feature enables user to edit all information of a family member
profile.
14. Delete Profile (My Family&Me)
a. Actor: Registered User
b. Description: this feature enables user to delete profile of a family member. User
will be asked to confirm the request before the deletion is triggered.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
15/34
FMO – Architecture Design
5
v1.0
LOGICAL VIEW
This section describes the architecturally significant parts of ECH from a logical perspective,
independent of technology. The key functional components of the ECH architecture are
presented in the following diagram.
Figure 3: Logical View
Model: The model manages the behavior and data of the application domain, responds to
requests for information about its state and responds to instructions to change state.
View: The view manages the display of information. It renders the model into the suitable form
of user interface elements. There are two different views for the two types of target devices:
iPhone and Android. A server-side script will be used to detect the type of device that makes the
request and choose the corresponding view to display.
Controller: The controller receives user inputs, informing the model and/or the view to change
appropriately.
Common: This is the container of all shared modules that are used by the three layers above. It
consists of, but not limit to the following:
o
Log: the Log module contains the functions to log error exceptions to log destinations.
o
Security:
the Security module contains the functions relating to security (HIPAA,
TRUSTe).
o
Processor: the Processor module contains the functions to call web service, xml feeds.
o
Mail: the Mail module contains functions to send notification mail.
o
Validation: The Validation module contains functions to validate input data, input
request…
o
Utility: the Utility module contains utility functions (eg. Number and String functions...).
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
16/34
FMO – Architecture Design
v1.0
The diagram below explains how the Model, View and Controller work together in a simple
request flow.
Figure 4: Logical View - How MVC Works
6
PROCESS VIEW
This section describes the decomposition of the software into independent execution
processes, and the methods and modes by which these processes interact.
The runtime structure of the ECH application is that of a client-server application, with a client
(hybrid application using the default web browser) acting as a thin host for user interface
views. The other processes supporting the presentation layer, and all layers further down the
software stack, reside on the application server and/or database server. The key processes,
interfaces, threads, and systems are shown in the diagram below.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
17/34
FMO – Architecture Design
v1.0
Figure 5: Process View
6.1
Client Environment
The client element of the ECH application will run on mobiles, and will be a simple hybrid
application using the default browser. The client element will be initiated when the user start
the hybrid application. No business logic will run in the client environment.
6.2
Server Environment
The application server components of ECH runs the presentation layer (generation of the user
interface views), the business logic layer, and the resource access layer.
The server component of ECH will take the form of a self-hosted web application.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
18/34
FMO – Architecture Design
7
v1.0
DEPLOYMENT VIEW
Figure 6: Deployment Overview
There are three key communication links between the mobiles/PDAs and the two server groups
running in the data center. Given that messages sent between systems and servers, secure
connections are used. Encryption is used when message go across firewalls and out on the
internet. Each communication link is explained below.
• Link 1. End-users connect from their mobiles to an application server. As the number of endusers grows, more application servers will be added to maintain an acceptable response time.
The application servers are network load balanced. Each runs the View, Controllers and Data
Model layers.
• Link 2. The application servers access a database server running SQL Server to store and
recall persistent data. The number of database servers depends on the data load required. The
database servers are clustered with failover mode.
7.1 Hardware recommendations for servers
7.1.1
Component
Application server
Minimum requirement
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
19/34
FMO – Architecture Design
v1.0
Processor
64-bit, four cores, Intel Itanium 2 processor
RAM
8 GB for production use in a single server or multiple server farm
Hard disk
80 GB for system drive
7.1.2
Database server
Component
Minimum requirement
Processor
Minimum: AMD Opteron, AMD Athlon 64, Intel Xeon with Intel EM64T
support, Intel Pentium IV with EM64T support
Recommended: 64-bit, four cores
Processor speed:
Minimum: 1.4 GHz
Recommended: 2.0 GHz or faster
RAM
Minimum: 2 GB
Recommended: 4 GB or more
Maximum: 64 GB to 2 TB
Hard disk
80 GB for system drive
7.2 Software recommendations for servers
Server Type
Application server
Software requirement
Windows 2008 R2 64-bit x64 Standard OR Windows Server 2008 SP2 64-bit
x64 Enterprise
IIS 7 or above
.NET framework 4.0
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
20/34
FMO – Architecture Design
Database server
v1.0
Windows 2008 R2 64-bit x64 Standard OR Windows Server 2008 SP2 64-bit
x64 Enterprise
SQL Server 2008 R2 Standard (64-bit) x64 OR SQL Server 2008 R2
Enterprise (64-bit) x64
Note: If Standard Version of Windows Server and SQL Server are used, server scalability and
high availability are not supported.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
21/34
FMO – Architecture Design
8
v1.0
IMPLEMENTATION VIEW
8.1 Implementation Technology
The ECH implementation will be centered around Microsoft technologies, which will include, but
not limited to, the following:
• The major implementation language will be C# with ASP.Net MVC 3 as framework
• HTML 5 for presentation layer which enables smaller effort in UI development if ECH wants
to extend ECH mobile website to other PDAs/ smart phones
• The ADO.Net Entity Framework will be used to build a data model for the business layer, and
a mapping to the logical schema used by the database
• SQL Server 2008 R2 will be the core database servers
• Language Integrated Query (LINQ) will be used to compose and execute business layer
queries.
8.1.1
Why ASP.Net MVC
The MVC pattern helps you create applications that separate the different aspects of the
application (input logic, business logic, and UI logic), while providing a loose coupling
between these elements. The pattern specifies where each kind of logic should be located in
the application. The UI logic belongs in the view. Input logic belongs in the controller. Business
logic belongs in the model. This separation helps you manage complexity when you build an
application, because it enables you to focus on one aspect of the implementation at a time. For
example, you can focus on the view without depending on the business logic.
The loose coupling between the three main components of an MVC application also promotes
parallel development. For example, one developer can work on the view, a second
developer can work on the controller logic, and a third developer can focus on the business
logic in the model
MVC web application advantages:
It makes it easier to manage complexity by dividing an application into the model, the view,
and the controller.
It does not use view state or server-based forms. This makes the MVC framework ideal for
developers who want full control over the behavior of an application.
It provides better support for test-driven development (TDD).
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
22/34
FMO – Architecture Design
v1.0
It works well for Web applications that are supported by large teams of developers and for
Web designers who need a high degree of control over the application behavior.
The ASP.NET MVC framework provides the following features:
Separation of application tasks (input logic, business logic, and UI logic), testability, and testdriven development (TDD)
All core contracts in the MVC framework are interface-based and can be tested by using mock
objects, which are simulated objects that imitate the behavior of actual objects in the
application. You can unit-test the application without having to run the controllers in an
ASP.NET process, which makes unit testing fast and flexible. You can use any unit-testing
framework that is compatible with the .NET Framework.
An extensible and pluggable framework
The components of the ASP.NET MVC framework are designed so that they can be easily
replaced or customized. You can plug in your own view engine, URL routing policy, actionmethod parameter serialization, and other components. The ASP.NET MVC framework also
supports the use of Dependency Injection (DI) and Inversion of Control (IOC) container
models. DI enables you to inject objects into a class, instead of relying on the class to create
the object itself. IOC specifies that if an object requires another object, the first objects should
get the second object from an outside source such as a configuration file. This makes testing
easier.
Extensive support for ASP.NET routing, which is a powerful URL-mapping component that lets
you build applications that have comprehensible and searchable URLs
URLs do not have to include file-name extensions, and are designed to support URL naming
patterns that work well for search engine optimization (SEO) and representational state
transfer (REST) addressing.
Support for using the markup in existing ASP.NET page (.aspx files), user control (.ascx files),
and master page (.master files) markup files as view templates. You can use existing ASP.NET
features with the ASP.NET MVC framework, such as nested master pages, in-line expressions
(<%= %>), declarative server controls, templates, data-binding, localization, and so on.
Support for existing ASP.NET features. ASP.NET MVC lets you use features such as forms
authentication and Windows authentication, URL authorization, membership and roles, output
and data caching, session and profile state management, health monitoring, the configuration
system, and the provider architecture.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
23/34
FMO – Architecture Design
v1.0
8.2 Layer Technology
8.2.1
View
Figure 7: View Layer Technology
The presentation layer (view) will be implemented using HTML 5 which is more lightweight
than flash technology and easy to extend to other PDAs and smart phones. Presentation layer
with HTML 5 is a hybrid of Model-View-Controller (MVC) UI patterns and ASP.NET MVC 3
HTML5 provides mobile device users richer web applications and improved usability. The new
features of HTML5 standardize the use cases and technologies that are common in
smartphone-optimized mobile web applications. In today’s Mobile Web of WML or XHTML-MP
or HTML 4 documents, these features are implemented using proprietary device and browser
APIs. With HTML5, advanced web application features are available in all mobile browsers
supporting the markup language, using the same standard syntax and displaying the same
standard behavior.
8.2.2
Controller
Figure 8: Controller Layer Technology
The controllers will be implemented by C# based on ASP.NET MVC 3 framework which provides
tools and background processing for latest web standards.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
24/34
FMO – Architecture Design
v1.0
ASP.NET MVC 3 builds on ASP.NET MVC 1 and 2, adding great features that both simplify your
code and allow deeper extensibility. This topic provides an overview of many of the new
features that are included in this release, organized into the following sections:

Extensible Scaffolding with MvcScaffold integration

HTML 5 enabled project templates

The Razor View Engine

Support for Multiple View Engines

Controller Improvements

JavaScript and Ajax

Model Validation Improvements

Dependency Injection Improvements
For detailed description, please refer to the bellowing link: ASP.NET MVC3 Features
8.2.3
Model
The model contains the business objects, with the state and behavior which are pertinent to a
particular business domain. There may be more than one business domain active at any time.
Each business domain is encapsulated in one or more .NET assemblies, which are loaded as
needed by the base executable.
The ECH business model will be defined and described using the Microsoft Entity Data Model
(EDM) which is part of the Microsoft ADO.Net Entity Framework. Entity Framework is intended
to permit the developer of business logic to write queries against the business layer model
rather than the database schema, making business logic more natural and expressive. The
Entity Framework also provides support for query mapping between the business model and
the database schema, allowing business logic to be couched in terms of CLR objects (to the
extent supported by the Entity Data Model,) rather than in terms of database tables, rows and
columns.
The below diagram depicts entity framework acting as model getting data from XML or other
format source data, My Family DB and ECH DB.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
25/34
FMO – Architecture Design
v1.0
Figure 9: Model Layer Technology
Entity framework is the Microsoft realization of EDM which abstracts the database layer into
models thus helping to eliminate the impedance mismatch between data models and between
languages that application developers would otherwise have to deal with. Two innovations that
make this move possible are Language-Integrated Query and the ADO.NET Entity Framework.
The Entity Framework exists as a new part of the ADO.NET family of technologies. ADO.NET
will LINQ-enable many data access components: LINQ to SQL, LINQ to DataSet and LINQ to
Entities.
For more details on Entity framework, refer to The ADO.NET Entity Framework: Modeling at
the Right Level of Abstraction
8.2.4
Common
Log
Log4Net is chosen for its functionality and performance. The object of log is all system errors
happen during execution of system. Log content will be written to files located in a log folder.
The format of content will be defined more detail in the detailed design document.
Security
In order to make ECH mobile website secure, we will use Role based Security for data
security and SSL for data transportation security. We will need to buy third party certificate for
SSL. SSL can be configured to page level with IIS 7. For Role based Security, data will be
stored in database and each time user signs in, information provided by user will be checked
with his credentials in database.
SSL
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
26/34
FMO – Architecture Design
v1.0
SSL provides one of the most commonly available security mechanisms on the Internet. SSL
stands for Secure Sockets Layer. SSL is used extensively by web browsers to provide secure
connections for transferring credit cards numbers and other sensitive data. An SSL-protected
HTTP transfer uses port 443 (instead of HTTP's normal port 80), and is identified with a special
URL method - https. Thus, https://www.verisign.com/ would cause an SSL-enabled browser to
open a secure SSL session to port 443 at www.verisign.com.
SSL, like most modern security protocols, is based on cryptography. When an SSL session is
established, the server begins by announcing a public key to the client. No encryption is in use
initially, so both parties (and any eavesdropper) can read this key, but the client can now
transmit information to the server in a way that no one else could decode. The client generates
46 bytes of random data, forms them into a single very large number according to PKCS#1,
encrypts them with the server's public key, and sends the result to the server. Only the server,
with its private key, can decode the information to determine the 46 original bytes. This shared
secret is now used to generate a set of conventional RC4 cipher keys to encrypt the rest of the
session.
X.509 certificates are used to authenticate the server, and the client can be authenticated as
well, by presenting a certificate of its own, then computing a hash of all the SSL messages that
have been exchanged up to a certain point, encrypting the result with its private key, and
sending this to the server. The server, which can compute the same hash value, having seen
all the messages as well, can decrypt using the client's public key, which is part of the
certificate, and verify that the two results are the same. Thus the client is authenticated.
Role based Security
.NET Framework role-based security supports authorization by making information about the
principal, which is constructed from an associated identity, available to the current thread. The
identity (and the principal it helps to define) can be either based on a Windows account or be a
custom identity unrelated to a Windows account. .NET Framework applications can make
authorization decisions based on the principal's identity or role membership, or both. A role is a
named set of principles that have the same privileges with respect to security (such as a teller
or a manager). A principal can be a member of one or more roles. Therefore, applications can
use role membership to determine whether a principal is authorized to perform a requested
action.
To provide ease of use and consistency with code access security, .NET Framework role-based
security provides PrincipalPermission objects that enable the common language runtime to
perform authorization in a way that is similar to code access security checks. The
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
27/34
FMO – Architecture Design
v1.0
PrincipalPermission class represents the identity or role that the principal must match and is
compatible with both declarative and imperative security checks. You can also access a
principal's identity information directly and perform role and identity checks in your code when
needed.
The .NET Framework provides role-based security support that is flexible and extensible
enough to meet the needs of a wide spectrum of applications. You can choose to interoperate
with existing authentication infrastructures, such as COM+ 1.0 Services, or to create a custom
authentication system. Role-based security is particularly well-suited for use in ASP.NET Web
applications, which are processed primarily on the server. However, .NET Framework rolebased security can be used on either the client or the server
There are also two classes for Authorization and Authentication which will be shared
across application. The methods in these 2 classes will be specified at detailed design level.
The below diagram depicts sample implementation
Figure 10: Security Class
Processor
The system calls many third parties for data retrieval. For future system extension, there will
be processor class for every processing type. The below diagrams depicts a sample
implementation.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
28/34
FMO – Architecture Design
v1.0
Figure 11: Processor diagram
Mail
System.Net.Mail (supported by .Net Framework) is used to send the emails in the system via
SMTP protocol.
Validation
This includes classes and methods which are used to validate input data.
Utility
This includes classes and methods which are used in different modules and can be reused, e.g.
mathematic functions, date time functions…
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
29/34
FMO – Architecture Design
9
v1.0
SIZE AND PERFORMANCE
Providing high availability to mission-critical applications, services, and data is a primary
objective of every successful IT system. When services are down or fail, business continuity is
interrupted, which can result in significant losses.
The below diagram depicts the solution how to scale out servers in case of high volume of data
and increased concurrent users by adding Application Servers into the system using network
load balancing (NLB) mechanism of windows server 2008 R2 and also ensures failover for
system high availability by clustering database servers in failover mode. The detailed
mechanism will be further described in 9.1 NLB and 9.2 Failover Clustering
Figure 12: Deployment diagram
9.1 Network Load Balancing (NLB)
Network Load Balancing provides scalability and high availability to enterprise-wide TCP/IP
services, such as Web, Terminal Services, proxy, Virtual Private Networking (VPN), and
streaming media services. Network Load Balancing brings special value to enterprises
deploying TCP/IP services, such as e-commerce applications, that link clients with transaction
applications and back-end databases.
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
30/34
FMO – Architecture Design
v1.0
Network Load Balancing servers (also called hosts) in a cluster communicate among
themselves to provide key benefits, including:
Scalability. Network Load Balancing scales the performance of a server-based program, such
as a Web server, by distributing its client requests across multiple servers within the cluster. As
traffic increases, additional servers can be added to the cluster, with up to 32 servers possible
in any one cluster.
High Availability. Network Load Balancing provides high availability by automatically
detecting the failure of a server and repartitioning client traffic among the remaining servers
within ten seconds, while providing users with continuous service.
Network Load Balancing distributes IP traffic to multiple copies (or instances) of a TCP/IP
service, such as a Web server, each running on a host within the cluster. Network Load
Balancing transparently partitions the client requests among the hosts and lets the clients
access the cluster using one or more "virtual" IP addresses. From the client's point of view, the
cluster appears to be a single server that answers these client requests. As enterprise traffic
increases, network administrators can simply plug another server into the cluster.
Figure 13: Network Load Balancing
9.2 Failover Clustering
Failover clustering provides high-availability support for an entire instance of SQL Server. A
failover cluster is a combination of one or more nodes, or servers, with two or more shared
disks. Applications are each installed into a Microsoft Cluster Service (MSCS) cluster group,
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
31/34
FMO – Architecture Design
v1.0
known as a resource group. At any time, each resource group is owned by only one node in
the cluster. The application service has a virtual name that is independent of the node names,
and is referred to as the failover cluster instance name. An application can connect to the
failover cluster instance by referencing the failover cluster instance name. The application does
not have to know which node hosts the failover cluster instance.
A SQL Server failover cluster instance appears on the network as a single computer, but has
functionality that provides failover from one node to another if the current node becomes
unavailable. For example, during a non-disk hardware failure, operating system failure, or
planned operating system upgrade, you can configure an instance of SQL Server on one node
of a failover cluster to fail over to any other node in the disk group.
A failover cluster does not protect against disk failure. You can use failover clustering to reduce
system downtime and provide higher application availability. Failover clustering is supported in
SQL Server Enterprise and SQL Server Developer, and, with some restrictions, in SQL Server
Standard
9.3 Hardware recommendations for high availability servers
9.3.1
Application server
Component
Minimum requirement
Processor
64-bit, four cores, Intel Itanium 2 processor
RAM
256GB for production use in a single server or multiple server farm
Hard disk
80GB for system drive
9.3.2
Database server
Component
Minimum requirement
Processor
Processor type:
Itanium processor or faster
64-bit, quad cores
Processor speed:
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
32/34
FMO – Architecture Design
v1.0
Minimum: 1.4 GHz
Recommended: 2.0 GHz or faster
RAM
Minimum: 2 GB
Recommended: 4 GB or more
Maximum: 2 TB ( SQL Server Enterprise Edition supports a maximum of 2 TB of
RAM or operating system maximum, whichever is lower).
Hard disk
80 GB for system drive
9.4 Software recommendations for high availability servers
Server Type
Software requirement
Application server
Windows Server 2008 SP2 64-bit x64 Enterprise
IIS 7 or more
.NET framework 4.0
Database server
Windows Server 2008 SP2 64-bit x64 Enterprise
SQL Server 2008 R2 Enterprise (64-bit) x64
10 QUALITY
Quality goals, including the following, are to be determined.
• Performance: refer to 9 Size and Performance
• Security: refer to 8.2 Security
• Availability: refer to 9 Size and Performance
• Usability: refer to 8.2
• Reliability: refer to 9.2
• Extension: refer to 8.2
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
33/34
FMO – Architecture Design
v1.0
• Reusability: refer to 8.2
04ae-BM/PM/HDCV/FSOFT v1/2
Internal use
34/34
Download