COM+
Greg Hope
Architect
Microsoft COM+ Team
Mon Tue Wed Thur Fri
9:00 Overview TP mons Log Files &Buffers B-tree
11:00 Faults Lock Theory ResMgr COM+ Access Paths
1:30 Tolerance Lock Techniq CICS & Inet Corba Groupware
3:30 T Models Queues Adv TM Replication Benchmark
7:00 Party Workflow Cyberbrick Party
8/5/99 WICS: COM+ 1
Agenda
• Where we’ve been
– COM, OLE, ActiveX Controls, MTS, WinDNA
• Where we are
– COM+ 1.0, Windows 2000
– Attribute based programming model
– New and better services
• Where we’re going
– Web Computing
– Appliance Computing
– Simplicity and Reliability
8/5/99 WICS: COM+ 2
Microsoft: COM+ Inside
Linking and Embedding
Automation
ActiveX Controls
Authenticode
DCOM
MTS
Component Services
8/5/99 WICS: COM+ 3
Tools: COM+ Inside
Web Application
Developer Developer
System
Content Developer
Developer
Borland
Adobe Latte
PageMaker Borland
NetObjects Borland Delphi PowerSoft
Macromedia Fusion Intrabuilder PowerBuilder
Director
SoftQuad PowerSoft
HotMetal Pro NetImpact
8/5/99 WICS: COM+ 4
COM+
Worlds Most Successful Object Model
• Strong technical features
– Binary standard, language neutral, dynamic discovery
• Proven flexible and adaptable
– OLE, Compound Documents, ActiveX Controls, MTS
– Used on >200M systems world-wide
• Widespread tool and language support
– > 3M developers
– Visual Studio and third parties
• Thriving component marketplace
– ActiveX Controls
8/5/99 WICS: COM+ 5
Windows DNA
A comprehensive platform scaling from the
department to the Internet Databases
Legacy Systems
External
Thin Applications
Client
Rich
Client
“How you gather, manage and use information will determine whether
you win or lose.” Bill Gates, Business @ the Speed of Thought
8/5/99 WICS: COM+ 6
PC 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/99 WICS: COM+ 7
Performance: IIS on COM+/NT5 is up to 6x faster
than IIS on MTS/NT4 (* beta results)
IIS Atomic Tests Windows 2000 Beta 3
NT4/MTS
Requests per Second
500
450
400
350
300
250
200
150
100
50
0
BC Page
Ad Rotator Application
Ad Rotator Page
Transaction
BC Session
APT Session
Ad Rotator Session
8/5/99 WICS: COM+ 8
TPC-C: COM+ and SQL Server
8/5/99 WICS: COM+ 9
COM+
Administration
Servers
Transactions Data-types
S Security Self Describing
E R Queuing Dynamic Invocation
U Events “Leak-proof” Memory
R
Clusters Context
V N
IMDB Interception
I COM
T
C I Tools
E M Developers
S E Ubiquity
Market
Multi-Language
Discovery
8/5/99 WICS: COM+ 10
COM+: Incremental, Additive Investment
1992 1996 1997 1999 (B3 now)
COM (Win3.1) COM (NT4) COM/MTS (NT4OP) COM+ 1.0 (Win2000)
OLE Remoting
Cmpd Docs Security
Automation ActiveX Controls
Servers Integrated and
Transactions Enhanced
Administration
Queuing
Events
Load Balancing
IMDB
8/5/99 WICS: COM+ 11
Programming Model
Interface, Attributes, Context
IUnknown
Context
Attributes
Client
8/5/99
Server WICS: COM+ 12
Programming Model
Implementation
• Attributes determine Context
– Metadata accessed via Catalog interfaces
– Stored in Component Library
– Integrated with DS / MSI / Registry
– Client negotiation via monikers
• Context determines Intercepters
• Intercepter implements attribute semantics
Context
Client Interceptors Server
Attributes
Catalog
8/5/99 WICS: COM+ 13
Activators
Intercepting Object Creation
Machine
Activators
Process
Activators
Client Server
Process Process
Context
Activators
B
Server
A
Context
8/5/99 WICS: COM+ 14
Policies
Intercepting Method Invocation
Context C1 Context C2
Proxy Stub
(Cross Apartment or Process)
A B (Same Apartment)
Client Server
Side Pass Buffer Side
Policies Policies
Call, Enter,
Return Pass Buffer Leave
8/5/99 WICS: COM+ 15
Example:
Queued Components
Client Server
pBook = new [Queued] Book; [Queueable] Class Book {
pBook.Order(nQuantity); public void Order(int nAmount) {…}
}
Queued
Client Recorder MSMQ Player Server
Queueable
Catalog
8/5/99 WICS: COM+ 16
Example:
Automatic Transactions
Client Server
pBook = new Book; [Transacted] Class Book {
pBook.Order(nQuantity);
public void Order(int nAmount) {…}
}
Client Transaction Server
DTC Data
8/5/99 WICS: COM+ 17
Example:
Component Load Balancing
Client Server
pBook = new Book; [LoadBalanceable] Class Book {
pBook.Order(nQuantity); public void Order(int nAmount) {…}
}
Server
Application
Cluster
Client Router Server
Server
Response Time
Tracker
8/5/99 WICS: COM+ 18
Performance: Load Balancing Near Linear Scaling
(* beta results)
COM+ Load Balancing
900
Router included in cluster
800
Router not included in cluster
700
Transactions per Second
600
500
400
300
200
100
0
0 1 2 3 4 5 6 7 8 9
Machines
8/5/99 WICS: COM+ 19
Example:
Object Pooling
Client Server
pBook = new Book; [Poolable] Class Book {
pBook.Order(nQuantity);
Public void Order(int nAmount) {…}
}
Client Pooler Server
Server
Server
8/5/99 WICS: COM+ 20
Performance: Object Pooling (* beta results)
Stateful Component vs. Pooled Component
1400
1200
1000
800
tps
600
128 Pooled Components
400 Stateful (COM+)
200
0
0 50 100 150
threads
8/5/99 WICS: COM+ 21
Performance: Object Pooling Governors Give Same
Throughput with less resources (* beta results)
Effect of COM+ Pool Size Using C++ ODBC
Component
1400
1200
1000 4 Pooled Components
8 Pooled Components
800
tps
16 Pooled Components
600 32 Pooled Components
64 Pooled Components
400 128 Pooled Components
200
0
0 50 100 150
threads
8/5/99 WICS: COM+ 22
COM+: Taming
Disruptive Forces
Web Appliances
Simplicity Reliability
“...products that do not appear to be useful to our customers today
(that is disruptive technologies) may squarely address their needs
tomorrow.” Clayton M. Christensen The Innovators Dilema
8/5/99 WICS: COM+ 23
Web Computing
Disruptive Technology?
“overperforming”
Win98/NT
Win 3.x
MS-DOS Web 1.0 “good enough”
Mainframe Personal Web
Computing Era Computing Era Computing Era
8/5/99 WICS: COM+ 24
Today’s “Good Enough” Web (Not!)
• Hourglasses
– World Wide Wait
• User state is tied to a machine
(Cookies, Wallet, Preferences)
– Multiple systems, multiple users
• Unreliable parts
(Leaks, hangs, reboots, network)
– Duplicate or missing orders
– Unavailability/data corruption
• Clients are underutilized
– Lowest common denominator effect
Dunce
• Servers are hard
– Handling concurrent requests
– State management
8/5/99 WICS: COM+ 25
WinDNA on the Web
• Connecting Windows Clients and Windows Servers via Web (HTTP)
– Richest user experience (Adaptive UI)
• Consumers
– Web Lifestyle applications (ecomm, games, calendar )
• Business
– Web Enabled personal productivity (collaboration, add-ons)
– Web Native (ecomm, games)
– Web Access (departmental, corporate LOB apps)
• Service Providers
– ISP’s, Web Farms
• Simplicity
– via reduction, consistency, unification
• Reliability
– self-everything, tamper-proof
• Scalability
– up, down, out
8/5/99 WICS: COM+ 26
N-tier: Web Computing Model
• Rendering - Interacts with User
• Presentation - Code that binds to rendering
– May vary depending on type/functionality of client
• Client Logic - Client code that talks to the Server
– May run on client, personal tier, or server
– May have access to read-only snapshot data (catalog)
– May manage per-client writable data (shopping cart)
• Server Logic - Server code that runs the business Data
– Direct access to business data
• Database - Shared, Persistent store
Order
Reach
Catalog
Rich
Cart
Rendering Presentation Client Logic Server Logic
8/5/99 WICS: COM+ 27
Appliance Computing: Windows 98,
Windows 2000
Disruptive Technology?
AutoPC
WebTV
Gaming
Phone eBooks
“Why good products can fail, the Personal
Computer is so complex, and Information
Appliances are the solution”
Donald A. Norman, The Invisible Computer
Smart objects
8/5/99 WICS: COM+ 28
Home Networking
Public networks
PSTN, Internet Internal Details Are Complex
Network
camera
HomePNA
Phone Line Network
Power Line
Network
Hub
Web
Printer phone
IEEE 1394
HomeRF
Entertainment
Communications Center
and control Camera
8/5/99 WICS: COM+ Scanner 29
What Users & Apps Must See
Public networks Consistent Objects Everywhere
PSTN, Internet
8/5/99 WICS: COM+ 30
Getting Started
• WinDNA www.microsoft.com/dna
• COM+ www.microsoft.com/complus
• Windows 2000 www.microsoft.com/windows
• Tools msdn.microsoft.com/vstudio
8/5/99 WICS: COM+ 31
8/5/99 WICS: COM+ 32