|
NWC's philosophy is to find Team Members and leverage their
technology whenever possible. When suitable technology is not available, we build it. NWC's
definition if suitable technology is:
- Internet based. Our customers are in all States and we will have people in most of those
States. All our applications must be accessible from the Internet.
- Scalable. All applications must run acceptably at a moderate number of transactions. We estimate
ten transactions per dwelling weatherized, 5 million database records.
- Modular. A modular application is easily enhanced since only a few modules typically need to be
changed.
NWC uses ASP.NET technology and C# for the presentation logic. The middle layer is also written in C# and
provides logic and the interface to the database. NWC uses Microsoft SQL Server for data storage and
some logic. All database access is through Stored Procedures, which enhances security and performance.
Using a middle layer and Stored Procedures allows us to have two database
servers. All writes to the database are performed to both servers and the
servers are not in the same city, so if one data center is destroyed, the other
takes over with only a brief interruption and no loss of data.
The system design shown on the right is completely scalable and redundant. Since Servers #1 and #3
are in physically different cities using different internet service vendors, loss of either pair due to an environmental
problem or human problem does not interrupt service for more than a few minutes. Changing the Domain Registration settings
normally takes a few minutes to implement. Since all database writes are to both databases, they contain identical
data and there is no "data" delay in switching from the primary pair of servers to the secondary. If the load becomes
too large for a single pair of servers to handle, pairs can be added on State (Grantee) boundaries.
|