Top Banner
Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant
36

Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Dec 14, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Dev371

Architecting Scalable, Secure, Reliable Applications: a Case StudyGeralyn MillerTechnical EvangelistMicrosoft

Marc KupersteinConsultant

Page 2: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Agenda

Overview

Architecture walkthrough

Demo

Best Practices

Code walkthrough

Summary

Questions and answers

Page 3: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

SafeUSA

A nationwide community alert systemLaw Enforcement/Authorities Initiate and Receive Alerts

Public can only receive alerts

Built completely on .NET Technologies

Multi-company collaborative effortMicrosoft, Unisys, SocialTech, United Way of America

Page 4: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

videovideo

Visual Studio .NET Case Study: SocialTech, Inc.

Page 5: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Design Goals

Law enforcement and community alerts

25,000 law enforcement workstations

100M entries in electronic address book

24 x 7 availability

Goal of 99.999+% in hosted scenario

Trustworthy computing environment

Page 6: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Technical Overview

Law enforcement work station Windows XP, .NET Framework, MSDE

Image acquisition HW-SW

Server InfrastructureWindows Server 2003, SQL Server 2000, .NET Framework

Unisys ES7000 32-way servers, Slot Appliances

Page 7: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Technical Overview

Public portalInternet Information Server 6.0, ASP .NET

Passport-enabled

XML Web servicesProvider / consumer

Interop into other systems

MapPoint .NET

Page 8: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

SafeUSA Demo

Geralyn Miller

Technical Evangelist

Microsoft

demodemo

Page 9: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

System Design

Hub instancesHub instances

.NET Remoting.NET Remoting

..NET RemotingNET Remoting

Server instancesServer instances

WorkstationWorkstationapplicationsapplications

ManagementManagementWeb siteWeb site Public Web sitePublic Web site

BrowserBrowser

HTTPSHTTPS HTTPHTTP

MapPointMapPoint .NET.NET

SOAPSOAP

XML WebXML Webservices layerservices layer

Other Other applicationsapplications

SOAPSOAP

Page 10: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Deployment Scenarios

Intranet

Workstation

Workstation Browser

SafeUSA Hosted Server Deployment

USA0911 Governmentand Routing ServerSafeUSA Server

LEA/Govt. Edition

USA0911 Public ServerSafeUSA ServerPublic Edition

SafeUSA Data Center

InternetSafeUSA Server

LEA/Govt. Edition

Workstation

WorkstationBrowser Browser

BrowserBrowser

Public

Terminal ServerSafeUSATerminal Sever

Terminal ServerClient

Terminal ServerClient

Terminal Server Scenario

LEA Self-hosted Deployment

Page 11: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Workstation/Hub Design

Service coreService core

Server message handlerServer message handler

Workstation applicationWorkstation application Tooltray applicationTooltray application

Workstation message handlerWorkstation message handler

.Net remoting.Net remoting

..Net remotingNet remoting

ServerServer

HubHub

Page 12: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Server Design

Link to e-mail hosts -

HotMail,AOL etc.

Users/Addresses/

Subscriptions

Bulletins/Recipient

Lists

ClientInterface

AddressResolvers

Dispatchers

ClientDistribution

ServerDistribution

AddressManagement

Interface

Linkfrom

otherservers

FAXDistribution

E-MailDistribution

Link toother

servers

Link toAT&T FaxBroadcast

System

Link to e-mail hosts -

HotMail,AOL etc.

Users/Addresses/

Subscriptions

Bulletins/Recipient

Lists

ClientInterface

AddressResolvers

Dispatchers

ClientDistribution

ServerDistribution

AddressManagement

Interface

Linkfrom

otherservers

FAXDistribution

E-MailDistribution

Link toother

servers

Link toAT&T FaxBroadcast

System

Page 13: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

What’s Important?Scalability

Many simultaneous small-scale alertsOccasional large-scale alerts

SecurityData quality, protection, privacyUser-level access control

ReliabilitySystemsNetworkDenial-of-service attacks

PerformanceNear real-time delivery of alerts

Page 14: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

ScalabilityPlatform

ServerWindows Server 2003

.NET Framework 1.1

Unisys ES7000

SQL Server 2000, MSDE

Page 15: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

DIBDIBI/OI/O DIBDIBI/OI/O

Server Hardware

CPUCPU

CPUCPU

CPUCPU

CPUCPU

TLCTLC

CPUCPUCPUCPU

CPUCPUCPUCPU

TLCTLC

Crossbar Crossbar Intra-connectIntra-connect

MSUMSU MSUMSUMSUMSU MSUMSU

CPUCPUCPUCPU CPUCPUCPUCPU

Crossbar Crossbar Intra-connectIntra-connect

CPUCPUCPUCPU CPUCPUCPUCPU

TLCTLC TLCTLC

DIBDIBI/OI/ODIBDIBI/OI/O

CPUCPUCPUCPU CPUCPU

Crossbar Crossbar Intra-connectIntra-connect

CPUCPUCPUCPU CPUCPU

CPUCPU

CPUCPU

TLCTLC TLCTLC

DIBDIBI/OI/ODIBDIBI/OI/O

CPUCPUCPUCPU CPUCPUCPUCPU

Crossbar Crossbar Intra-connectIntra-connect

TLCTLC TLCTLC

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

DIBDIBI/OI/ODIBDIBI/OI/O

25.6 25.6 GByte/secGByte/sec

16.8 16.8 GByte/SeGByte/Se

cc

12.8 12.8 GByte/SeGByte/Se

cc

ES7000ES7000

Page 16: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

ScalabilityDesign

“Front-end/Back-end” modelServer/Hub .NET Remoting

Server activated objectsClass Factory design pattern

DataPartitioned storeLocalized data ownershipMinimal updates to global dataNo “false sharing” (temporal data locality)

Page 17: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

ScalabilityImplementation

ThreadingMinimized synchronization between threads ( no “Bucket Brigade” processing)Used permanent threads or thread poolsMinimized number and size of critical regions

Data accessDedicated connection per threadUsed connection pooling

Heap usageFew, large, long-lived items rather than many, small, volatile items

Page 18: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

SecurityPlatform

Windows Server 2003 for serverWindows XP for workstation/hub.NET Framework 1.1

Page 19: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Security

PKI for both Server and Workstation

.NET Remoting endpoints provide centralized access to server and database

Messages in local/server database are encrypted

Laptop scenarios

Outbound e-mail traffic digitally signed

Outbound fax traffic stamped for verification

Page 20: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

SecurityUser authentication

Each user has his/her own identity User authenticates thru the hub to the serverIntegrated with Windows security where possible (and desirable)Authentication ultimately the responsibility of the server

Page 21: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Security Authentication

Handshake protocol for authentication between workstation and server

Verification of identity

Verification of code

Establishes session key for encryption of message traffic

Session key has expiration

All traffic is signed and encrypted

Page 22: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Authentication ProcessHelloReq( ConversationID, MyID )[Signed PrivKey, Encrypt PublicKey]HelloRsp( ConversationID, MyID )[Signed PrivKey, Encrypt PublicKey]

VerifyReq( ConversationID, MyID )VerifyRsp( ConversationID, MyID )

MessageReq( ConversationID, MyID )MessageRsp( ConversationID, MyID )

Single ChannelClient

Multi ChannelServer

Page 23: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

SecurityData protection

Separate encryption key is used for data protection on the workstationEncryption key is escrowedOnly access to SQL is through stored proceduresApplication code resides on same server as SQL Server (networking disabled)

Page 24: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

ReliabilityPlatform

Unisys Unisys ES7000ES7000

EMC EMC SymmetrixSymmetrix

Up to 200kmUp to 200km

Windows Server 2003

.NET Framework 1.1

Microsoft Cluster Services

Unisys Cluster Application Defender

GeoSpan

Page 25: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

ReliabilityDesign

No single point-of-failure

Physical isolation

Automated, predicted failover

Fault prevention - verify all input before processing

Fault isolation - “Front-end/back-end” threads

Fault monitoring - reduce MTTR

Page 26: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

ReliabilityImplementation

Fault mitigationTransacted operations

Try/catch blocks

MaintainabilityWMI

Enterprise Instrumentation Framework

Page 27: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

PerformanceDesign based on .NET Remoting

Page 28: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

PerformanceImplementation: Threading Model

Workstation UILong running tasks (initialization)User interactions (keyboard, mouse, etc.).NET RemotingEvent model

Hub/ServerWindows Service.NET RemotingData access (store and forward)

Page 29: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

A Glimpse at the Code

Marc Kuperstein

Consultant

demodemo

Page 30: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Summary

Scalability, reliability, security are functions ofPlatform

Design

Implementation

SafeUSA demonstrates that .NET Framework can be used to create mission critical applications that are scalable, reliable, secure, performant

Page 31: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Resources

See SafeUSA technical case study on http://www.microsoft.comBusiness contact

Todd Bower, CEO, SocialTech ([email protected])

Technical contactsGeralyn Miller ([email protected])Brian Pattinson ([email protected])Marc Kuperstein([email protected])

Page 32: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Page 33: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Ask The ExpertsGet Your Questions Answered

July 2, 2003 10:00 AM - noon

Page 34: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Page 35: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

evaluationsevaluations

Page 36: Dev371 Architecting Scalable, Secure, Reliable Applications: a Case Study Geralyn Miller Technical Evangelist Microsoft Marc Kuperstein Consultant.

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.