learning how to build distributed, scalable applications with … · 2008-07-30 · learning how to...

19
Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation Agenda Goals Scenario recap and requirements (continued) Using COM+ to meet application requirements (continued) Even easier - coming soon (part 2) Conclusion

Upload: others

Post on 02-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Learning How To Build Distributed, Scalable Applications With COM+

COM+ Team Microsoft Corporation

AgendaGoalsScenario recap and requirements (continued)Using COM+ to meet application requirements (continued) Even easier - coming soon (part 2)Conclusion

Page 2: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

GoalsShow by example that COM+ makes it:

As easy to develop Server Components as it is to develop Client ComponentsAs easy to deliver enterprise apps as it is to deliver workgroup apps!

COM+COM+ Services:EventsSecurityLoad

BalancingQueued Components

In Memory Database

CompensatingResourceManager

Administration

MTS

MTS Services:TransactionsResource PoolingSecurityAdministration

COMThe ModelTools SupportMulti-LanguageDiscovery (QI)

COM+The Caring, Sharing

Environment for yourcomponents

Technology Scenario

Page 3: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Application ScenarioOnline service like MSN or AOLUser login causes two databases to be updated

Customer Billing LogCustomer login status

Total connect time is trackedUser is notified of various activities while they are logged in (i.e., chat rooms)

Web clients Web infrastructureLogon

Business applications

Logoff

Securitybilling

Real-timeProfile-directed

information

Content

Billing

ExistingBilling System

ExistingBilling SystemExistingBilling SystemCustomer

onlinesystem

ExistingBilling SystemExistingBilling SystemExistingbilling system

ExistingBilling SystemExistingBilling SystemExistingBilling SystemExistingbilling system Existing

Billing SystemExistingBilling System

Othersystems

Application Flow

Page 4: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Tackling The Application Requirements - Part 2

Ultimate customer response and availabilityAlways accept legitimate LogonNo freebies! Always bill for entire time onlineUse existing billing systemUse existing dev resourcesOther…

Keep billing, Customer Online and other systems consistentReal-time two way info on who is onReal-time info on what is going onFlexible administrationMaximize use of platform, minimize development time

Contradictory Requirements!Always accept logon:

Implies that we have to complete the customer login even if the billing system is unavailable

Always bill for entire time online:Implies that we must not accept logons when billing system is not available

Page 5: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

ClientApplicationComponent

ServerApplicationComponentIFoo

ToleranceIssues:

AvailabilityResilienceFailure Handling

Bus_Customer

ServerApplicationComponentIFoo

MSMQ

ClientApplicationComponent

IRecorder

Recorder PlayerServer

ApplicationComponentIFoo

ToleranceCOM+ solution: Queued Components

Features: delivery of creation, method invocation, and life cycle management over MSMQ queues with transactions

Page 6: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Queued Components Example

Code and attribute walkthrough Login example would not allow a person to logon if the billing database was not availableIt is not necessary for the billing DB to be available right now as long as we are guaranteed that the login information will be recorded

Ref: AS10

Tackling The Application Requirements - Part 2

Ultimate customer response and availabilityAlways accept legitimate logonNo freebies! Always bill for entire time onlineUse existing billing systemUse existing dev resourcesOther…

Keep billing, Customer Online and other systems consistentReal-time two way info on who is onReal-time info on what is going onFlexible administrationMaximize use of platform, minimize development time

Page 7: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Responding To EnvironmentIssues

BusCustomerX

BusCustomerC

Bus_Billing23

Bus_Billing

Bus_Customer BusCustomerA

You Never Told Me That!Changing EnvironmentObject Model? What Object Model?

MulticastICustLogin

Sink2

ICustLoginSink3

ICustLogin

Sink4

UnboundUnbound

Application Client

Unicast ICustLoginSink1

IEventXXX

EventClass

EventDatabase

EventAdmin

Responding To EnvironmentSolution: COM+ Events

Features: sources consume event sinks, system provided event class, managed binding and delivery options

Page 8: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Events ExampleEvents Walkthrough

When the user logs in the customer status database is updatedIn order to notify the user on things that they are interested you can publish the interesting events and have clients

Poll the status database on a regular basis and then push information to them; this is not very efficient doing a lot of unnecessary work; or you can…Build specific interfaces, protocols, and infrastructure for notification

Code walkthroughRef: AS07

Tackling The Application Requirements - Part 2

Ultimate customer response and availabilityAlways accept legitimate logonNo freebies! Always bill for entire time onlineUse existing billing systemUse existing dev resourcesOther…

Keep billing, Customer Online and other systems consistentReal-time two way info on who is onReal-time info on what is going onFlexible administrationMaximize use of platform, minimize development time

Page 9: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

ApplicationClients

Server

Server 1IBank

Server 1IBank

coclass Bank [LB=Yes,]IIBank

Even More Scalability And Availability

Issues:We’ll never go above 600 clients! Honest!Of course my application scales

What hardware are you running?

ApplicationClient

CreateLB

ActivatorTrack

Response TimeEngine

LB Service

Response TimeRuntime

Server Group

Server 1IBank

Server 1IBank

coclass Bank [LB=Yes,]IIBank

Select server

Even More Scalability And Availability

Solution: COM+ Dynamic Load BalancingFeatures: system provided response time load balancing engine, @ activation server machine selection

Page 10: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Load Balancing ExampleLoad Balancing Walkthrough

As the online service increases in popularity they will need to run the application on multiple serversLoad Balancing will distribute the work of the application over the available serversIn COM+ Preview, balancing algorithm is based on tracker statistics

LB set up and attribute walkthroughRef: AS08

Tackling The Application Requirements - Part 2

Ultimate customer response and availabilityAlways accept legitimate logonNo freebies! Always bill for entire time onlineUse existing billing systemUse existing dev resourcesOther…

Keep billing, Customer Online and other systems consistentReal-time two way info on who is onReal-time info on what is going onFlexible administrationMaximize use of platform, minimize development time

Page 11: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Ultimate PerformanceIssue

DBMSClients

Server Group

Server 1IBank

Server 1IBank

coclass Bank [LB=Yes,]IIBank

No matter how well I do everything the Database is still the bottleneck!

Client DBMSIMDBServer

Ultimate PerformanceCOM+ Solution: IMDB provides memory speed access to data, transient state management

Page 12: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

RDBMS

Client Component Process

Client component process

IMDB Core

A "typical"IMDB Node

IMDB Proxy

IMDB Proxy

R/W R/W

R/W

Tables inShared Memory

HTTP DCOM

R/O

R/O

RDBMS

IMDB - How It Works

IMDB ExampleIMDB WalkthroughSelecting data for use with IMDBIMDB code and administration walkthroughRef: AS11

Page 13: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Tackling The Application Requirements - Part 2

Ultimate customer response and availabilityAlways accept legitimate logonNo freebies! Always bill for entire time onlineUse existing billing systemUse existing dev resourcesOther…

Keep billing, Customer Online and other systems consistentReal-time two way info on who is onReal-time info on what is going onFlexible administrationMaximize use of platform, minimize development time

Ultimate ScalabilityIssue:

You are doing Pooling

COM+ Server Process

ApplicationClient

ApplicationServerApplication

ServerIFoo

Objectinstances

Why can’t I?

Page 14: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

COM+ Server Process

ApplicationClient

PoolingService

ApplicationServerApplication

ServerIFoo

Pooledinstances

Ultimate ScalabilityCOM+ Solution:Object Pooling: ultimate efficiency for components whose “in Method time” is less than their “construction Time”

COM+ Server Process

ApplicationClient

PoolingService

ApplicationServerApplication

ServerIFoo

Pooledinstances

Ultimate ScalabilityObject Pooling WalkthroughRef: AS14

Page 15: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Tackling The Application Requirements - Part 2

Ultimate customer response and availabilityAlways accept legitimate logonNo freebies! Always bill for entire time onlineUse existing billing systemUse existing dev resourcesOther…

Keep billing, Customer Online and other systemsconsistentReal-time two way info on who is onReal-time info on what is going onFlexible administrationMaximize use of platform, minimize development time

ApplicationComponents

CRM DBMSLegacy App

Dealing With Legacy AppsCOM+ Solution: compensating Resource ManagerFeatures: easy template for wrapping an application or a resource so that it can participate in transactions with other resources

Page 16: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

How Are We Doing?Ultimate customer response and availabilityAlways accept legitimate logonNo freebies! Always bill for entire time onlineUse existing billing systemUse existing dev resourcesOther…

Keep billing, Customer Online and other systems consistentReal-time two way info on who is onReal-time info on what is going onFlexible administrationMaximize use of platform, minimize development time

Even Easier! Coming soon to a language near you: Attribute Based Programming

In Part 1 “even easier” we showed integration of the IDE using Attributes and administrationThe logical next step is direct Attribute Based Programming (ABP)ABP demo

Page 17: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

ConclusionCOM+ makes it:

As easy to develop Server Components as it is to develop Client ComponentsAs easy to deliver enterprise apps as it is to deliver workgroup apps!

Call To ActionArchitecting, designing, developing:

Assume COM+ level of service and use Windows NT 5.0 Beta 2 now

Deploying and in production:Use MTS now - your components will be uplifted when COM+ is installed

Everything discussed will be a standard feature of Windows NT® 5.0

Page 18: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

Resourceshttp://www.microsoft.com/comhttp://www.microsoft.com/msdnPDC CD:

COM+ SDKCOM+ Wizard preview

Hands-on theatreAll the code from the COM+ sessionsSee Visual C++® sessions for more on ABP!

Page 19: Learning How To Build Distributed, Scalable Applications With … · 2008-07-30 · Learning How To Build Distributed, Scalable Applications With COM+ COM+ Team Microsoft Corporation

1998 Microsoft® Professional Developers Conference

Partner Sponsors

Premier Sponsors