330 likes | 442 Vues
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
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