1. COM+COM+
Greg HopeGreg Hope
ArchitectArchitect
Microsoft 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
2. 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
3. Microsoft:Microsoft: COM+ InsideCOM+ Inside
Linking and EmbeddingLinking and Embedding
AutomationAutomation
ActiveX ControlsActiveX Controls
AuthenticodeAuthenticode
DCOMDCOM
MTSMTS
Component ServicesComponent Services
5. 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 supportWidespread 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
7. 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. Performance: IIS on COM+/NT5 is up to 6x faster thanPerformance: 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
AdRotatorApplication
AdRotatorSession
APTSession
BCSession
AdRotatorPage
BCPage
Transaction
RequestsperSecond
Windows 2000 Beta 3
NT4/MTS
22. Performance: Object Pooling Governors Give SamePerformance: 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 Components
32 Pooled Components
64 Pooled Components
128 Pooled Components
23. COM+: TamingCOM+: Taming
Disruptive 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
24. Web ComputingWeb Computing
Disruptive Technology?Disruptive Technology?
Personal
Computing Era
Web
Computing Era
“overperforming”
“good enough”
Mainframe
Computing Era
MS-DOS
Win 3.x
Win98/NT
Web 1.0
25. 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 partsUnreliable 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 hardServers are hard
– Handling concurrent requestsHandling concurrent requests
– State managementState management
Dunce
26. 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
• SimplicitySimplicity
– via reduction, consistency, unificationvia reduction, consistency, unification
• ReliabilityReliability
– self-everything, tamper-proofself-everything, tamper-proof
• ScalabilityScalability
– up, down, outup, down, out
27. N-tier: Web Computing ModelN-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
CartCart
Server LogicServer Logic
OrderOrder
RichRich
ReachReach
RichRich
28. 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 PersonalWhy good products can fail, the Personal
Computer is so complex, and InformationComputer is so complex, and Information
Appliances are the solutionAppliances are the solution””
Donald A. Norman, The Invisible ComputerDonald A. Norman, The Invisible Computer
29. HubHub
Power LinePower Line
NetworkNetwork
CameraCamera ScannerScanner
PrinterPrinter
WebWeb
phonephone
NetworkNetwork
cameracamera
IEEE 1394IEEE 1394
EntertainmentEntertainment
CenterCenterCommunicationsCommunications
and controland control
HomeRFHomeRF
Home NetworkingHome Networking
HubHub
Public networksPublic networks
PSTN, InternetPSTN, Internet
HomePNAHomePNA
Phone Line NetworkPhone Line Network
Internal Details Are ComplexInternal Details Are Complex
30. Public networksPublic networks
PSTN, InternetPSTN, Internet
What Users & Apps Must SeeWhat Users & Apps Must See
Consistent Objects EverywhereConsistent Objects Everywhere
31. 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
Editor's Notes
Main Point: COM provides the largest choice of available tools from the widest variety of vendors. COM is not only intrinsic to every tool that Microsoft develops, it is usually an important part of the products of high volume 3rd party tool vendors. The fact that COM maps across languages is a huge advantage against JavaBeans for the Enterprise.
<number>
Calling an interface method within a context is a direct call. All other calls will be intercepted.
Within the same apartment, cross-context calls are highly optimized and don’t really need to marshal call parameters - they just need to inform policies of policy events, so the policies can implement domain specific behavior.
Cross-apartment and cross-process calls go through the proxy/stub marshaling as in COM. Standard marshaling support has been enhanced to support marshaling context information.