330 likes | 452 Vues
COM+ is a runtime and service set designed to simplify the creation and use of components, promoting interoperability regardless of implementation. This overview discusses the motivation behind COM+, its architecture, and goals. It addresses current difficulties with COM tools, runtime limitations, and introduces innovative features such as MTS for scalable applications. Key services include simplified component registration, security models, and extensibility mechanisms. By making it easier for developers to build and deploy components, COM+ aims to enhance the efficiency of distributed applications.
E N D
COM+:An Overview Ayesha Mascarenhas February, 2001
What Is Com+ ? • A Runtime and Set of Services • Designed to simplify Creation and Use of Components • Enables extensive interoperability between components regardless of their implementation
Topics • COM and Motivation for COM+ • COM+ Goals • COM+ Architecture • Summary
Motivation For System Level Objects • Objects are now Mainstream • Diversity is a drawback • The environment for development remains procedural • What is needed is a common notion of objects across tools and a way to expose system services as objects.
COM • Binary Standard for objects and inter object communication • All communication must occur through interfaces • All communication must look like simple method calls regardless of location of object • Provides basic services for location, activation and access of components
COM • Interface for dynamic discovery of interface implemented by components • Mechanism to uniquely identify components
Current Difficulties in COM Tools/Languages- • Some Languages make it easier to use COM than others eg.Java • Some Languages provide only a subset of COM features • COM + Solution: make every tool do more work
Current Difficulties in COM Runtime- • Limited to Features provided by that runtime • Components may be written with multiple tools • COM+ Solution: Let Operating System provide the runtime
Current Difficulties in COM Innovative Features- • MTS provides features to write scalable and distributed application • MTS also introduces a concept of declarative access/attribute based programming • MTS also displayed COMs lack of any mechanism to extend COM
Topics • COM and Motivation for COM+ • COM+ Goals • COM+ Architecture • Summary
Why COM+? Goals • Easier to build COM Components • Easier to deploy and build COM based Applications • Provide new runtime services • Provide an extensibility mechanism
Making it easier • COM Developer must worry about issues unrelated to actual functionality eg. Client must use Reference Counting, Query Interface, code to create the object and initialize the component • Much of this code is identical across components
Addressing issues in Developing and Deploying COM Applications • Difficulties due to defining interfaces in IDL eliminated • Simpler, more robust model for registering, installing and versioning components
Runtime Services • Expose Classes directly • Supports implementation inheritance • Garbage Collection • Security Model
Runtime Services (contd..) Security Model • Provides multilevel user and code access security • Access checks are based on roles and privileges • Role is an abstract group of users • Privileges provide access to resources
Runtime Services(contd..) Security Model (contd..) • Define roles played by users of component through attributes • Specify privileges required to access component • Administrator assigns privileges to user accounts and user-accounts to roles
Runtime Services(contd..) Security Model(contd..) • Code trust security provided by Authenticode and Zones • Authenticode is a code-signing mechanism • A zone is a group of code sources granted same privileges
Services for Distributed Applications • Introduces General extensibility mechanism called Interception • Interceptor - A COM+ object automatically invoked during access to another object • To access the services provided by interceptors, attributes must be set on the component
Services for Distributed Applications • Services MTS provides will be provided through interceptors eg. Transaction attribute • Concurrency Model specified by threading attribute • Declarative Data-Binding specified by database attribute and supported by binding engine
Topics • COM and Motivation for COM+ • COM+ Goals • COM+ Architecture • Summary
COM+ Architecture interfaces for creating and consuming class interface and library definitions • Define Class by writing source code • Language Compiler uses COM+ runtime compiler services to create Metadata • Compiler services also used to import Metadata • Calls to other runtime services are inserted into binary class code
Com+ Architecture(contd..) interfaces for registering and installing packages • Information about packages is in a well-known location • Packages are identified by GUIDs or user-friendly names • A local path and a URL may be provided
COM+ Architecture (contd..) Interfaces for registering and installing classses (contd..) • When classes are built, they are assigned unique class version ids • When a client is built, its metadata includes information about classes it depends on- versions
COM+ Architecture interfaces for loading classes and creating objects • When the application is built, startup code is linked in to initialize runtime • Initialization function calls runtime loader • Runtime loader loads classes defined within application and referenced classes
Com+ Architecture (contd..) interfaces for loading classes and creating objects (contd..) • Loader builds Global Class Table (GCT) and creates in-memory representation of component • To create a new object, request is passed to runtime • Runtime looks at GCT to determine in-memory representation
Topics • COM and Motivation for COM+ • COM+ Goals • COM+ Architecture • Summary
Summary • COM+ narrows the gap between objects as viewed by tools and COM • COM+ runtime maintains an internal representation of the object and associates an object reference with it • Tools can present information about objects using semantics of their language
Summary • Build solutions using components that model real-life objects rather than solution-specific components • Since clients communicate with components through well defined interfaces, components implementation can be easily modified
References Websites http://www.microsoft.com/msj/1297/complus2/complus2.htm http://www.microsoft.com/msj/1197/complus.htm http://www.chappellassoc.com/omc6.htm http://www.http://www.chappellassoc.com/art3.htm