8/5/99wics: com+1com+ greg hope architect microsoft com+ team 9:00 11:00 1:30 3:30 7:00 overview...
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