8/5/99WICS: COM+1COM+ Greg Hope Architect Microsoft COM+ Team 9:00 11:00 1:30 3:30 7:00 Overview Faults Tolerance T Models Party TP mons Lock Theory Lock.

Post on 27-Mar-2015

214 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

Transcript

8/5/998/5/99 WICS: COM+WICS: COM+ 11

COM+COM+Greg HopeGreg Hope

ArchitectArchitectMicrosoft COM+ TeamMicrosoft COM+ Team

9:00

11:00

1:30

3:30

7:00

Overview

Faults

Tolerance

T Models

Party

TP mons

Lock Theory

Lock Techniq

Queues

Workflow

Log

ResMgr

CICS & Inet

Adv TM

Cyberbrick

Files &Buffers

COM+

Corba

Replication

Party

B-tree

Access Paths

Groupware

Benchmark

Mon Tue Wed Thur Fri

8/5/998/5/99 WICS: COM+WICS: COM+ 22

AgendaAgenda

• Where we’ve beenWhere we’ve been– COM, OLE, ActiveX Controls, MTS, WinDNACOM, OLE, ActiveX Controls, MTS, WinDNA

• Where we areWhere we are– COM+ 1.0, Windows 2000COM+ 1.0, Windows 2000– Attribute based programming modelAttribute based programming model– New and better servicesNew and better services

• Where we’re goingWhere we’re going– Web ComputingWeb Computing– Appliance ComputingAppliance Computing– Simplicity and ReliabilitySimplicity and Reliability

8/5/998/5/99 WICS: COM+WICS: COM+ 33

Microsoft: Microsoft: COM+ InsideCOM+ Inside

Linking and Linking and EmbeddingEmbeddingAutomationAutomationActiveX ControlsActiveX ControlsAuthenticodeAuthenticodeDCOMDCOMMTSMTSComponent ServicesComponent Services

8/5/998/5/99 WICS: COM+WICS: COM+ 44

ContentContent DeveloperDeveloper

WebWebDeveloperDeveloper

ApplicationApplicationDeveloperDeveloper

SystemSystemDeveloperDeveloper

BorlandBorland DelphiDelphi

AdobeAdobePageMakerPageMaker

MacromediaMacromediaDirectorDirector

PowerSoft PowerSoft PowerBuilderPowerBuilder

NetObjects NetObjects FusionFusion

SoftQuadSoftQuadHotMetal ProHotMetal Pro

BorlandBorland IntrabuilderIntrabuilder

PowerSoft PowerSoft NetImpactNetImpact

BorlandBorland LatteLatte

Tools: Tools: COM+ InsideCOM+ Inside

8/5/998/5/99 WICS: COM+WICS: COM+ 55

COM+ COM+ Worlds Most Successful Object ModelWorlds Most Successful Object Model

• Strong technical featuresStrong technical features– Binary standard, language neutral, dynamic discoveryBinary standard, language neutral, dynamic discovery

• Proven flexible and adaptableProven flexible and adaptable– OLE, Compound Documents, ActiveX Controls, MTSOLE, Compound Documents, ActiveX Controls, MTS

– Used on >200M systems world-wideUsed on >200M systems world-wide

• Widespread tool and language support Widespread tool and language support – > 3M developers> 3M developers

– Visual Studio and third partiesVisual Studio and third parties

• Thriving component marketplaceThriving component marketplace– ActiveX ControlsActiveX Controls

8/5/998/5/99 WICS: COM+WICS: COM+ 66

ExternalExternalApplicationsApplications

Legacy SystemsLegacy Systems

DatabasesDatabases

Thin Thin ClientClient

Rich Rich ClientClient

Windows DNAWindows DNAA comprehensive platform scaling from the A comprehensive platform scaling from the department to the Internetdepartment to the Internet

“How you gather, manage and use information will determine whether How you gather, manage and use information will determine whether you win or lose.you win or lose.” Bill Gates, Business @ the Speed of ThoughtBill Gates, Business @ the Speed of Thought

8/5/998/5/99 WICS: COM+WICS: COM+ 77

PC Week Labs BenchmarkPC Week Labs Benchmark

“It's clear the company's IIS (Internet Information Server) Web server and MTS (Microsoft Transaction Server) transaction monitor, both included with the Windows NT 4.0 operating system, are fast enough for any business on earth.” (http://www.zdnet.com/pcweek/stories/news/0,4153,409380,00.html)

8/5/998/5/99 WICS: COM+WICS: COM+ 88

Performance: IIS on COM+/NT5 is up to 6x faster than Performance: IIS on COM+/NT5 is up to 6x faster than IIS on MTS/NT4 (* beta results)IIS on MTS/NT4 (* beta results)

IIS Atomic Tests

0

50

100

150

200

250

300

350

400

450

500

Ad

Ro

tato

r A

pp

licat

ion

Ad

Ro

tato

r S

essi

on

AP

T S

essi

on

BC

Ses

sio

n

Ad

Ro

tato

r P

age

BC

Pag

e

Tra

nsa

ctio

n

Test

Re

qu

es

ts p

er

Se

co

nd

Windows 2000 Beta 3

NT4/MTS

8/5/998/5/99 WICS: COM+WICS: COM+ 99

TPC-C: COM+ and SQL Server TPC-C: COM+ and SQL Server

8/5/998/5/99 WICS: COM+WICS: COM+ 1010

AdministrationAdministrationServersServersTransactionsTransactionsSecuritySecurityQueuingQueuingEventsEventsClustersClustersIMDBIMDB

SSEERRVVIICCEESS

COM+COM+

Data-typesData-typesSelf DescribingSelf DescribingDynamic InvocationDynamic Invocation““Leak-proof” MemoryLeak-proof” MemoryContextContextInterceptionInterception

RRUUNN

TTIIMMEE

COMCOMToolsToolsDevelopersDevelopersUbiquityUbiquityMarketMarketMulti-LanguageMulti-LanguageDiscoveryDiscovery

8/5/998/5/99 WICS: COM+WICS: COM+ 1111

19971997COM/MTS (NT4OP)COM/MTS (NT4OP)

ServersServersTransactionsTransactionsAdministrationAdministration

COM+: COM+: Incremental, Additive InvestmentIncremental, Additive Investment

19961996

COM (NT4)COM (NT4)

RemotingRemoting

SecuritySecurity

ActiveX ControlsActiveX Controls

1999 (B3 now)1999 (B3 now)

COM+ 1.0 (Win2000)COM+ 1.0 (Win2000)

QueuingQueuing

EventsEvents

Load BalancingLoad Balancing

IMDBIMDB

Integrated and Integrated and EnhancedEnhanced

19921992

COM (Win3.1)COM (Win3.1)

OLEOLE

Cmpd DocsCmpd Docs

AutomationAutomation

8/5/998/5/99 WICS: COM+WICS: COM+ 1212ServerServer

ClientClient

ContextContext

Programming ModelProgramming ModelInterface, Attributes, ContextInterface, Attributes, Context

AttributesAttributes

IUnknown

8/5/998/5/99 WICS: COM+WICS: COM+ 1313

Programming ModelProgramming ModelImplementationImplementation

• Attributes determine ContextAttributes determine Context– Metadata accessed via Catalog interfacesMetadata accessed via Catalog interfaces

– Stored in Component LibraryStored in Component Library

– Integrated with DS / MSI / RegistryIntegrated with DS / MSI / Registry

– Client negotiation via monikersClient negotiation via monikers

• Context determines InterceptersContext determines Intercepters

• Intercepter implements attribute semanticsIntercepter implements attribute semantics

ServerServerInterceptorsInterceptorsClientClient

CatalogCatalog

AttributesAttributes

ContextContext

8/5/998/5/99 WICS: COM+WICS: COM+ 1414

ContextActivators

ProcessActivators

MachineActivators

ServerProcess

ServerContext

ClientProcess

A

B

ActivatorsActivators Intercepting Object CreationIntercepting Object Creation

8/5/998/5/99 WICS: COM+WICS: COM+ 1515

Context C1 Context C2

ClientSide

Policies

ServerSide Policies

Call,Return

Enter,Leave

Pass Buffer

Pass Buffer

Proxy Stub(Cross Apartment or Process)

(Same Apartment)A B

PoliciesPolicies Intercepting Method InvocationIntercepting Method Invocation

8/5/998/5/99 WICS: COM+WICS: COM+ 1616

Example:Example:Queued ComponentsQueued Components

pBook = new [Queued] Book;pBook = new [Queued] Book;

pBook.Order(nQuantity);pBook.Order(nQuantity);

ClientClient MSMQMSMQ ServerServerPlayerPlayerRecorderRecorder

CatalogCatalog

QueueableQueueable

QueuedQueued

[Queueable] Class Book {[Queueable] Class Book {public void Order(int nAmount) {…}public void Order(int nAmount) {…}

}}

ClientClient ServerServer

8/5/998/5/99 WICS: COM+WICS: COM+ 1717

Example: Example: Automatic TransactionsAutomatic Transactions

DataData

ServerServerTransactionTransactionClientClient

DTCDTC

pBook = new Book;pBook = new Book;

pBook.Order(nQuantity);pBook.Order(nQuantity);[Transacted] Class Book {[Transacted] Class Book {

public void Order(int nAmount) {…}public void Order(int nAmount) {…}

}}

ClientClient ServerServer

8/5/998/5/99 WICS: COM+WICS: COM+ 1818

Example: Example: Component Load BalancingComponent Load Balancing

ClientClient

ServerServer

RouterRouter ServerServer

ServerServer

Response TimeResponse Time TrackerTracker

Ap

plic

atio

nA

pp

lica

tion

Clu

sterC

luster

pBook = new Book;pBook = new Book;

pBook.Order(nQuantity);pBook.Order(nQuantity);[LoadBalanceable] Class Book {[LoadBalanceable] Class Book {public void Order(int nAmount) {…}public void Order(int nAmount) {…}

}}

ClientClient ServerServer

8/5/998/5/99 WICS: COM+WICS: COM+ 1919

Performance: Load Balancing Near Linear ScalingPerformance: Load Balancing Near Linear Scaling (* beta results) (* beta results)

COM+ Load Balancing

0

100

200

300

400

500

600

700

800

900

0 1 2 3 4 5 6 7 8 9

Machines

Tra

nsa

ctio

ns

per

Sec

on

d

Router included in cluster

Router not included in cluster

8/5/998/5/99 WICS: COM+WICS: COM+ 2020

Example: Example: Object PoolingObject Pooling

ServerServerPoolerPoolerClientClient

pBook = new Book;pBook = new Book;

pBook.Order(nQuantity);pBook.Order(nQuantity);[[PoolablePoolable] Class Book {] Class Book {

Public void Order(int nAmount) {…}Public void Order(int nAmount) {…}

}}

ClientClient ServerServer

ServerServerServerServer

8/5/998/5/99 WICS: COM+WICS: COM+ 2121

Performance: Object Pooling (* beta results)Performance: Object Pooling (* beta results)

Stateful Component vs. Pooled Component

0

200

400

600

800

1000

1200

1400

0 50 100 150

threads

tps

128 Pooled Components

Stateful (COM+)

8/5/998/5/99 WICS: COM+WICS: COM+ 2222

Performance: Object Pooling Governors Give Same Performance: Object Pooling Governors Give Same Throughput with less resources (* beta results)Throughput with less resources (* beta results)

Effect of COM+ Pool Size Using C++ ODBC Component

0

200

400

600

800

1000

1200

1400

0 50 100 150

threads

tps

4 Pooled Components

8 Pooled Components

16 Pooled Components32 Pooled Components

64 Pooled Components

128 Pooled Components

8/5/998/5/99 WICS: COM+WICS: COM+ 2323

COM+: TamingCOM+: TamingDisruptive ForcesDisruptive Forces

WebWeb AppliancesAppliances

ReliabilityReliabilitySimplicitySimplicity

“...products that do not appear to be useful to our customers today ...products that do not appear to be useful to our customers today (that is disruptive technologies) may squarely address their needs (that is disruptive technologies) may squarely address their needs tomorrow.” tomorrow.” Clayton M. Christensen The Innovators DilemaClayton M. Christensen The Innovators Dilema

8/5/998/5/99 WICS: COM+WICS: COM+ 2424

Web ComputingWeb ComputingDisruptive Technology?Disruptive Technology?

PersonalComputing Era

WebComputing Era

“overperforming”

“good enough”

Mainframe Computing Era

MS-DOS

Win 3.x

Win98/NT

Web 1.0

8/5/998/5/99 WICS: COM+WICS: COM+ 2525

Today’s “Good Enough” Web (Not!)Today’s “Good Enough” Web (Not!)

• HourglassesHourglasses– World Wide WaitWorld Wide Wait

• User state is tied to a machineUser state is tied to a machine(Cookies, Wallet, Preferences)(Cookies, Wallet, Preferences)– Multiple systems, multiple usersMultiple systems, multiple users

• Unreliable parts Unreliable parts (Leaks, hangs, reboots, network)(Leaks, hangs, reboots, network)– Duplicate or missing ordersDuplicate or missing orders– Unavailability/data corruptionUnavailability/data corruption

• Clients are underutilizedClients are underutilized– Lowest common denominator effectLowest common denominator effect

• Servers are hard Servers are hard – Handling concurrent requestsHandling concurrent requests– State management State management

Dunce

8/5/998/5/99 WICS: COM+WICS: COM+ 2626

WinDNA on the WebWinDNA on the Web• Connecting Windows Clients and Windows Servers via Web (HTTP)Connecting Windows Clients and Windows Servers via Web (HTTP)

– Richest user experience (Adaptive UI)Richest user experience (Adaptive UI)• ConsumersConsumers

– Web Lifestyle applications (ecomm, games, calendar )Web Lifestyle applications (ecomm, games, calendar )• BusinessBusiness

– Web Enabled personal productivity (collaboration, add-ons)Web Enabled personal productivity (collaboration, add-ons)– Web Native (ecomm, games)Web Native (ecomm, games)– Web Access (departmental, corporate LOB apps)Web Access (departmental, corporate LOB apps)

• Service ProvidersService Providers– ISP’s, Web FarmsISP’s, Web Farms

• Simplicity Simplicity – via reduction, consistency, unificationvia reduction, consistency, unification

• ReliabilityReliability– self-everything, tamper-proofself-everything, tamper-proof

• ScalabilityScalability– up, down, outup, down, out

8/5/998/5/99 WICS: COM+WICS: COM+ 2727

N-tier: Web Computing Model N-tier: Web Computing Model • Rendering - Interacts with UserRendering - Interacts with User• Presentation - Code that binds to renderingPresentation - Code that binds to rendering

– May vary depending on type/functionality of clientMay vary depending on type/functionality of client

• Client Logic - Client code that talks to the ServerClient Logic - Client code that talks to the Server– May run on client, personal tier, or serverMay run on client, personal tier, or server– May have access to read-only snapshot data (catalog)May have access to read-only snapshot data (catalog)– May manage per-client writable data (shopping cart)May manage per-client writable data (shopping cart)

• Server Logic - Server code that runs the businessServer Logic - Server code that runs the business– Direct access to business dataDirect access to business data

• Database - Shared, Persistent storeDatabase - Shared, Persistent store

RenderingRendering PresentationPresentation

DataData

Client LogicClient Logic

CatalogCatalog

CartCartServer LogicServer Logic

OrderOrder

Ric

hR

ich

Rea

chR

each

Ric

hR

ich

8/5/998/5/99 WICS: COM+WICS: COM+ 2828

PhonePhone eBookseBooks

GamingGaming

WebTVWebTV

AutoPCAutoPC

Windows 98, Windows 98, Windows 2000Windows 2000

Smart objectsSmart objects

Appliance Computing:Appliance Computing:Disruptive Technology?Disruptive Technology?

““Why good products can fail, the Personal Why good products can fail, the Personal Computer is so complex, and Information Computer is so complex, and Information Appliances are the solutionAppliances are the solution””Donald A. Norman, The Invisible ComputerDonald A. Norman, The Invisible Computer

8/5/998/5/99 WICS: COM+WICS: COM+ 2929

HubHub

Power LinePower Line

NetworkNetwork

CameraCamera ScannerScanner

PrinterPrinterWeb Web

phonephone

NetworkNetworkcameracamera

IEEE 1394IEEE 1394

EntertainmentEntertainmentCenterCenterCommunicationsCommunications

and controland control

HomeRFHomeRF

Home NetworkingHome Networking

HubHub

Public networksPublic networksPSTN, InternetPSTN, Internet

HomePNAHomePNAPhone Line NetworkPhone Line Network

Internal Details Are ComplexInternal Details Are Complex

8/5/998/5/99 WICS: COM+WICS: COM+ 3030

Public networksPublic networksPSTN, InternetPSTN, Internet

What Users & Apps Must SeeWhat Users & Apps Must SeeConsistent Objects EverywhereConsistent Objects Everywhere

8/5/998/5/99 WICS: COM+WICS: COM+ 3131

Getting StartedGetting Started

• WinDNAWinDNA www.microsoft.com/dnawww.microsoft.com/dna

• COM+COM+ www.microsoft.com/compluswww.microsoft.com/complus

• Windows 2000Windows 2000 www.microsoft.com/windowswww.microsoft.com/windows

• ToolsTools msdn.microsoft.com/vstudiomsdn.microsoft.com/vstudio

8/5/998/5/99 WICS: COM+WICS: COM+ 3232

top related