380 likes | 494 Views
COM+ Architecture The Future of COM Mary Kirtland Program Manager COM Team Microsoft Corporation. Agenda. Component Architectures Today COM+ Vision COM+ Services for Distributed Applications Call to Action. Build Three-Tier Applications Using Reusable Components. Presentation. Business.
E N D
COM+ Architecture The Future of COMMary Kirtland Program Manager COM TeamMicrosoft Corporation
Agenda • Component Architectures Today • COM+ Vision • COM+ Services for Distributed Applications • Call to Action
Build Three-Tier Applications Using Reusable Components Presentation Business Data
Client COM: Simple, Powerful Programming Model • IUnknown • QueryInterface • AddRef • Release Server
Object context Client MTS: Simple, Powerful Programming Model CreateInstance … OK: SetComplete … Err: SetAbort Server
Desktop Work- group Depart- ment Division Enter- prise Internet & PSTN 1 user 2 users 100s 1,000s 10,000s 100,000s Shared data Connections Security Context Multithreading Load balancing Msg. queuing High avail. Multithread Multisite Multinode Problem: Complexity Increases With Scale
Problem: Building Scalable Applications Clients Network Receiver Queue Connections Context Security Management Configuration Thread pool Service logic Synchronization Shared data
Receiver Queue Connections Context Security Management Configuration Thread pool Service logic Synchronization Shared data Microsoft Transaction Server Easier Servers Client Network Receiver Queue Connections Context Security Management Configuration Thread Pool Service Logic Synchronization Shared Data Server Server
Desktop Work- group Depart- ment Division Enter- prise Internet & PSTN 1 user 2 users 100s 1,000s 10,000s 100,000s Solution: One Application Fits All Transaction Server COM Components
Are COM & MTS Perfect? No... • Administration could be easier • Versioning is hard to get right • Some features are only available to COM, others to MTS • Some services are missing • Some features can’t be used from all languages • Some extensibility points are missing • Some languages and tools aren’t “COM friendly”
Introducing COM+Integrated, open to all languages Component Object Model Java Visual Basic C++ COBOL Other Runtime Services
COM+ Vision Making it easier to develop, deploy, and administer components, component-based applications, tools, and services while preserving current investments in COM and MTS
Realizing Our Vision • meet short term needs… • better administration • unify COM, MTS programming models • add services • ...then work with developer tools... • make tools “COM+ friendly” • ensure new features accessible to all • …and innovate
COM+ Services Making it easier to develop, deploy, and administer scalable distributed applications while preserving current investments in COM and MTS • Single programming model • Further Simplification • Declarative, Meta-data driven • 100% compatible with existing applications • Single administration model • “Automatic Everything” services
Transactions Dynamic Load Balancing Real Enough Time Loosely-Coupled Events Scheduler Pooled Resource Objects In Memory Database Automatic Data Binding Threading Context Security Administration COM+ Services“Automatic Everything”
Transactions • features in MTS today, plus... • Auto-Abort • Auto-Complete • Bring Your Own Transaction
Update Analysis Query Windows NT Server Bring Your Own Transactions SAPR/3 SQLServer COM+ Informix CICSMVS MSMQ IMSMVS Oracle Sybase DB2
DCOM Query Analysis Query Analysis Update Analysis Query Update App Update Server Group COM+ COM+ COM+ Windows NT Server Windows NT Server Windows NT Server Load Balancing • Transparent to clients • Configurable Server Groups • Extensible routing • Compliments Wolfpack
Real Enough Time • Based on transactions, messaging and objects • deferred obj execution • limit method params • no OUT or IN/OUT • no interface ptrs (v1) • deferred or direct • automatic transactions • Unifies connected/ disconnected • Increases scalability/availability
DCOM Real Enough Time: Synch Windows Terminal Browser Object Object Object Object Transaction Transaction SQLServer SQLServer
COM+ Recorder COM+ Player MSMQ MSMQ MSMQ Real Enough Time Same Components on this side Windows Terminal Browser CommonProgrammingModel Object Object Object Object Transaction Transaction Catalog: AsynchClass ID SQLServer Oracle
Event service COM Catalog COM Explorer Scheduler Subscribeable events Persistent/transient subscriptions Event firing (multicast, sync/async, filtering) Local server activation Windows NT Battery Low Issue SNMP Alert Exchange Mail Arrived Update Spreadsheet IIS Page Changed Update Client Cache MTS Threshhold Hit Fire Up Connections Loosely-Coupled Events Scenarios: Publisher Fires Event Subscribers
Scheduler • Scheduled object execution • Event-based • time • login • undock • file creation, update, delete • object completion • Persistent schedules • Compliments NT scheduler
Data Binding • Simplify creating data objects • for preexisting data • bridges objects/relational DBMS • Extends ADO Record Sets • record-set objects • early-bound parameterized views • property per column • Create, insert, update, delete, ...
Pooled Resource Objects • Extend MTS component model to maintain expensive state • Connections, queries, etc. • Alternative to Resource Dispensers • Runtime advantages • increased concurrency • availability (hot start) • governors • admin (status, stats, configuration)
In-Memory Database • Single node IMDB • OLEDB & ADO • Standalone and transparent DB cache • OLEDB & ADO • SQL Server & Oracle • Look aside cache for persistence • Futures • Multi-node • Partitioned
Extending MTS Context • Integrates MTS Context into COM • Eliminates saferef for MTS programmers • Performance advantages • Client-side context support • Application-defined context • Add behavior to existing objects
Threading • Separate threading from synchronization • Better performance and scalability through • Fewer threads • Fewer thread switches • No object thread affinity • Simplifies re-writing legacy DLLs to use COM
Security • Finer granularity security settings • Roles on an component • Roles on methods • Security boundaries through context and policies • Role based security available to COM objects
Administration • Centralized Configuration Management • Distributed Catalog using NTDS and CompLib • Registration System • Service to register self-describing components • Server Groups • Supports mass re-configuration and dynamic load balancing
Administration • Automatic Code Download • Client and server download at activation time • Enhanced Package Model • Increased deployment flexibility • Multiple packages in a process • Roles across packages • Versioning Support • Configuration model with version constraints
Administration • Enterprise Application Management • Monitoring/alerting at application scope • COM Explorer • UI for deployment, configuration and monitoring • Scriptable Administration SDK • All features available through scriptable object model
Summary • From COM to MTS to COM+ is an evolutionary path • COM+ dramatically simplifies and extends COM, the world’s most successful object model • COM+ provides even more services for writing distributed applications
Call to Action • Use COM now! • Start a 321 project • Read Nov97, Dec97 MSJ articles on COM+
321 Project Defined • Three-tier • Reusable component applications • Two developers • With existing skill with a tool like Visual C++, Visual Basic, Visual J++, etc. • One month • Design, develop, deploy • Leverage existing infrastructure • Database, tools, LAN, WAN, PC • Pick a simple, non-critical application • From your backlog • Finish, debrief, adjust, and iterate
Resources • MSJ Nov, Dec Issues • COM Home Page http://www.microsoft.com/com/ • DCOM Mailing List http://www.microsoft.com/sitebuilder/resource/mail.asp • Feedback Alias mailto:comwish@microsoft.com
™ http://www.microsoft.com/msdn/pdc