Tuesday, August 12, 2003

Case Study: Architecting Scaleable, Secure, Reliable Architectures

- Application built using Windows 2003, SQL Server 2000, .NET framework 1.1 running on a UNISYS ES7000 32 ways server
Application
- Directory tree control driven from XML.
- Fat client talks .NET remoting to hub instance based CLR application that talks to server instance (ES7000)

- Deployment scenario that is flexible enough to support different technologies and architectures of the various departments/local municipals accessing it.

What’s important?
- ES7000 - crossbar interconnect - 16.Gb/s switched network between server components (i.e. CPU, Memory, IO, PCI, etc…)

Scalability
- Server activated objects are always better than client activated objects.
- Class factory design pattern.

Data
- Partition data locally.
- Minimal updates to global data.

Threading
- Minimize synchronization between threads.
- Use thread pools. (Don’t start and stop threads.)

Data access
- Dedicated connections per thread.
- Used connection pooling

Heap usage
- Few, large, long-lived items rather than many, small volatile items.

Security
- .net framework 1.1 - take advantage of.
- Workstation and server use of pki/certificates.
- .net reflection to verify signatures of the assembly.
- Encryption is escrowed
- Access to SQL is through Stored Procedures only.
- All access methods for SQL Server over the network are turned off.
- Application code resides on the same server as the sql server.

Reliability
Microsoft cluster services
Unisys cluster application defender (fail-over and recovery. watches and monitors)
Geo Spans (clusters across 200Km)

No comments: