Information Technology Architecture

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.