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 Developer Application Developer System Developer Content Developer Borland Latte Adobe PageMaker Macromedia Director NetObjects Fusion SoftQuad HotMetal Pro 8/5/99 Borland Delphi PowerSoft PowerBuilder PowerSoft NetImpact Borland Intrabuilder 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 Applications Thin 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) Requests per Second IIS Atomic Tests Windows 2000 Beta 3 NT4/MTS 500 450 400 350 300 250 200 150 100 50 8/5/99 WICS: COM+ Transaction BC Page Ad Rotator Page BC Session APT Session Ad Rotator Session Ad Rotator Application 0 8 TPC-C: COM+ and SQL Server 8/5/99 WICS: COM+ 9 COM+ S E R V I C E S 8/5/99 COM R U N Administration Servers Transactions Security Queuing Events Clusters IMDB T I M E Data-types Self Describing Dynamic Invocation “Leak-proof” Memory Context Interception Tools Developers Ubiquity Market Multi-Language Discovery WICS: COM+ 10 COM+: Incremental, Additive Investment 1992 1996 1997 COM (Win3.1) COM (NT4) COM/MTS (NT4OP) OLE Remoting Cmpd Docs Security Automation ActiveX Controls Servers Transactions Administration 1999 (B3 now) COM+ 1.0 (Win2000) Integrated and Enhanced 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 Client Interceptors Server Context Attributes 8/5/99 WICS: COM+ Catalog 13 Activators Intercepting Object Creation Machine Activators Process Activators Context Activators Client Process Server Process B Server Context A 8/5/99 WICS: COM+ 14 Policies Intercepting Method Invocation Context C2 Context C1 Proxy (Cross Apartment or Process) A B Client Side Policies Server Side Policies Call, Return 8/5/99 Stub Pass Buffer Pass Buffer WICS: COM+ (Same Apartment) Enter, Leave 15 Example: Queued Components Client Server pBook = new [Queued] Book; pBook.Order(nQuantity); [Queueable] Class Book { public void Order(int nAmount) {…} } Client Recorder MSMQ Player Server Queued Queueable Catalog 8/5/99 WICS: COM+ 16 Example: Automatic Transactions Client pBook = new Book; pBook.Order(nQuantity); Client Server [Transacted] Class Book { public void Order(int nAmount) {…} } Transaction DTC 8/5/99 WICS: COM+ Server Data 17 Example: Component Load Balancing Client Server pBook = new Book; pBook.Order(nQuantity); [LoadBalanceable] Class Book { public void Order(int nAmount) {…} } Server Router Server Application Cluster Client 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 Router not included in cluster Transactions per Second 800 700 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 pBook = new Book; pBook.Order(nQuantity); Client Server [Poolable] Class Book { Public void Order(int nAmount) {…} } Pooler Server Server Server 8/5/99 WICS: COM+ 20 Performance: Object Pooling (* beta results) Stateful Component vs. Pooled Component 1400 1200 tps 1000 800 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 tps 1000 4 Pooled Components 8 Pooled Components 16 Pooled Components 32 Pooled Components 64 Pooled Components 128 Pooled Components 800 600 400 200 0 0 8/5/99 50 100 threads WICS: COM+ 150 22 COM+: Taming Disruptive Forces Appliances Web 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 Mainframe Computing Era 8/5/99 Personal Computing Era Web 1.0 “good enough” Web Computing Era 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 Rendering 8/5/99 Order Catalog Cart Presentation Client Logic WICS: COM+ Rich Reach • Database - Shared, Persistent store Server Logic 27 Appliance Computing: Disruptive Technology? Windows 98, Windows 2000 AutoPC WebTV Gaming Phone Smart objects 8/5/99 eBooks “Why good products can fail, the Personal Computer is so complex, and Information Appliances are the solution” Donald A. Norman, The Invisible Computer WICS: COM+ 28 Home Networking Public networks PSTN, Internet Internal Details Are Complex Network camera HomePNA Phone Line Network Power Line Network Hub Web phone Printer IEEE 1394 HomeRF Communications and control 8/5/99 Camera Entertainment Center WICS: COM+ Scanner 29 Public networks PSTN, Internet 8/5/99 What Users & Apps Must See Consistent Objects Everywhere WICS: COM+ 30 Getting Started • • • • WinDNA COM+ Windows 2000 Tools 8/5/99 www.microsoft.com/dna www.microsoft.com/complus www.microsoft.com/windows msdn.microsoft.com/vstudio WICS: COM+ 31 8/5/99 WICS: COM+ 32