COM+ Glossary

access token

An object that describes the security context of a process or thread. The information in a token includes the identity and privileges of the user account associated with the process or thread. When a user logs on, the system verifies the user's password by comparing it with information stored in a security database. If the password is authenticated, the system produces an access token. Every process executed on behalf of this user has a copy of this access token.

ACID properties

Acronym coined by transaction processing pioneers for atomic, consistent, isolated, and durable. These properties ensure predictable behavior, reinforcing the role of transactions as all-or-none propositions designed to provide consistent and predictable results in a distributed environment when independent failures can occur.

activation

The chain of events that results in the creation of a COM object and the return of a valid pointer to an interface on that object. In COM+, an object gets activated either in its own context or in that of its creator (an object that has requested the object being activated). COM+ services rely on appropriate activation of an object based on the object's configuration. In the course of activation, the system determines the context in which the object runs, initializes the context properties, checks access permissions, and establishes a security identity.

activation security

A form of security protection that determines who can launch a server. Activation security is automatically applied by the Service Control Manager (SCM) of a particular computer. Upon receipt of a request from a client to activate an object, the SCM checks the request against activation-security information stored within its registry. Activation security is also checked for same-computer activations. Also called launch security.

activation type

Activation category for a COM+ application that indicates whether the application runs in or out of its client's process space (depending on whether it's a library or server application, respectively) as well as whether the application runs as a service.

activity

In COM+, a logical thread comprising one or more transactions and containing a collection of components that are grouped into a COM+ application. Every COM object belongs to one activity. The association between an object and an activity cannot be changed.

apartment model process

A process that has two or more single-threaded apartments and no multithreaded apartments.

application proxy

A set of files containing registration information that allows a client to remotely access a COM+ server application. When installed on a client computer, an application proxy file writes information about the server application to the client computer; the client can then remotely access the server application.

authentication

The security process of determining that a caller of an application is actually who it says it is—verifying the authenticity of an identity claim. For COM+ applications, authentication can be turned on and configured administratively, after which it works transparently to the application.

authorization

The security process of determining whether a caller of an application is authorized to do what it is asking to do.

caching resource manager

A resource manager that acts as a front-end to another resource manager and that caches information locally, reducing the cost of accessing the underlying resource. Unlike a conventional resource manager, a caching resource manager does not participate in recovery because it never permanently stores the underlying data.

call security

A form of security protection that helps control access to a server object's methods after a server has been launched.

class (COM)

A named, concrete implementation of one or more interfaces. A COM class is identified by a CLSID and, sometimes, a ProgID.

cloaking

A server's ability to mask its own identity when making calls on a client's behalf. When cloaking is enabled, calls made by the server impersonating the client can be made under the client's identity. When cloaking is disabled, calls by the server will be made under the server's identity.

COM+ application

The primary unit of administration and security for Component Services. A COM+ application is a group of COM components that, generally, perform related functions. These components further consist of COM interfaces and methods.

COM+ Application Pooling

A Component Services feature that allows single-threaded processes to scale and can also help you recover from failures in single processes by providing other running processes able to handle activations.

COM+ Application Recycling

A Component Services feature that significantly increases the overall stability of your applications by allowing you to gracefully shut down a process associated with an application and restart it.

COM+ catalog

The data store that holds COM+ configuration data. Performance of COM+ administration tasks requires reading and writing data stored in the catalog. The catalog can be accessed only through the Component Services administrative tool or through the COMAdmin library.

COM+ Events

COM+ Events matches and connects publishers and subscribers through a loosely coupled events system. A publisher makes the method call to initiate an event, and a subscriber receives these calls through the event system rather than directly from the publisher. The COM+ Events service maintains the list of interested subscribers who receive the calls and directs those calls without requiring the knowledge of the publisher.

COM+ library application

A COM+ application that runs in the process of the client that creates it. Library applications can use role-based security but do not support remote access or queued components.

COM+ Object Pooling

An automatic service provided by COM+ that enables you to configure a component to have instances of itself kept active in a pool, ready to be used by any client that requests the component.

COM+ Partitions

A COM+ service that enables, on a single computer, the creation of separate execution spaces for applications.

COM+ partition sets

A group of COM+ partitions that is mapped to a particular user ID in Active Directory.

COM+ Queued Components

A COM+ service, based on Microsoft Message Queuing, that provides an easy way to invoke and execute components asynchronously. Message processing can occur without regard to the availability or accessibility of either the sender or the receiver.

COM+ server application

A COM+ application that runs in its own process. Server applications can support all COM+ services.

COM+ SOAP

A Component Services feature that allows you to expose a COM+ application as an XML web service. COM+ SOAP also enables you to use an XML web service as a COM component.

COM component

A binary unit of code that includes packaging and registration code and that creates COM objects. All COM+ applications consist of one or more COM components.

commit tree

In a distributed transaction system, the conceptual representation of a transaction as based on the hierarchical relationships between individual transaction managers participating in a distributed transaction. Included in that hierarchy are the enlisted resource managers associated with the transaction managers.

COM object

In the COM programming model, a programming structure encapsulating both data and functionality, which are defined and allocated as a single unit and for which the only public access is through the programming structure's interfaces. A COM object must support, at a minimum, the IUnknown interface, which maintains the object's existence while it is being used and provides access to the object's other interfaces.

Compensating Resource Manager (CRM)

A COM+ feature that enables non-transactional resources to participate in a two-phase commit transaction with the Microsoft Distributed Transaction Coordinator (DTC). Typically, CRMs do not provide the isolation capabilities of full resource managers, but they do provide transactional atomicity and durability by writing to a log.

Component Services administrative tool

A user-interface snap-in through which administrators and developers can create, configure, and maintain COM+ applications, as well as administer distributed transactions and memory-resident databases. The Component Services administrative tool can also be used to view system events and manage system services local to the computer on which the tool is installed.

conceptual model

The first step in the COM+ application design phase, where the developer defines the business problems to be solved and decides what components and services are required.

concurrency

The ability of more than one transaction or process to access the same data at the same time. COM+ generally manages concurrency through synchronization.

configured component

A COM component that has been installed into a COM+ application. After it is installed, the component is configured within the COM+ catalog to make use of the available COM+ services.

context

A set of run-time properties associated with one or more COM objects that are used to provide services for those objects. Every COM object runs in a single context from activation to deactivation (always within the same apartment). Initialized when an object is activated, context properties, such as security context properties, represent the run-time needs of an object.

data tier

In the three-tier architecture model for business applications, the DBMS access layer, which can be accessed through the middle tier, or business services layer, and on occasion through the presentation tier, or user services layer. The data tier consists of data access components (rather than raw DBMS connections) to aid in resource sharing and to allow clients to be configured without installing the DBMS libraries and ODBC drivers on each client. Also called data services layer.

deadlock

In multithreaded applications, a threading problem that occurs when each member of a set of threads is waiting for another member of the set.

delegation

A form of impersonation that authorizes a server to act on a client's behalf, giving the server the ability to impersonate clients over the network.

distributed transaction

A transaction that involves multiple resource managers, which can be on the same or different computers.

Distributed Transaction Coordinator (DTC)

A system service that manages transactions and transaction-related communications that are distributed across two or more resource managers on one or more systems to ensure correct ACID transactions.

dynamic cloaking

A form of cloaking where the original client identity is discovered as the server thread access token on each method call to the downstream server. Although the identity that is presented can be determined dynamically, the overhead required to do this can be considerably more expensive. For COM+ applications, the default configuration is for dynamic cloaking capability because it provides the flexibility that is usually required by circumstances that necessitate using impersonation in the first place.

enumerator object

Enables enumeration of items in a collection.

event

An action recognized by an object, such as clicking the mouse or pressing a key, and for which you can write code to respond.

event class object

A configured component that provides a persistent record in the COM+ event system to describe the publishers and the firing interfaces associated with those publishers.

event method

A method in a COM+ interface that identifies a COM+ event. Event methods must be uniquely named and can contain only input parameters. The return value must be an HRESULT.

event object

A COM object that can signal one or more threads that an event has occurred. Any thread within a process can create an event object.

exception

An abnormal condition or error that occurs during the execution of a program and that requires the execution of software outside the normal flow of control.

failover

In a cluster network system, the process of relocating an overloaded or failed resource—such as a server, a disk drive, or a network—to its backup component.

free-threaded process

A process that has a multithreaded apartment and no single-threaded apartments.

global commit coordinator

On a Microsoft Windows–based distributed transaction system, the root transaction manager of the commit tree. This coordinator makes the decision to either commit or abort a given transaction and is never in doubt.

impersonation

The ability of a thread to execute in a security context different from that of the process owning the thread. The server thread uses an access token representing the client's credentials, and with this, it can access resources that the client can access.

impersonation level

The setting used by the client to grant the server a particular level of authority to carry out actions on the client's behalf. In COM+, this can be set only for COM+ server applications.

interception

For an object activated in a given context, the process of handling calls to that object from across the context boundary. Calls across context are handled with lightweight interface proxies that will handle whatever mediation is required to adjust the run-time environment from one that accommodates the caller to one that accommodates the callee.

interface

In COM-based programming, a collection of related public functions that provide access to a COM object. The set of interfaces on a COM object composes a contract that specifies how programs and other objects can interact with the COM object.

interface proxy

An interface-specific object that packages (marshals) parameters for that interface in preparation for a remote method call and unpackages (unmarshals) the return values from the interface stub. A proxy runs in the address space of the sender and communicates with a corresponding stub in the receiver's address space.

interface stub

An interface-specific object that unpackages marshaled parameters, calls the required method, and packages (marshals) return values from the called method. The stub runs in the receiver's address space and communicates with a corresponding interface proxy in the sender's address space.

interior object

In a transactional hierarchy, any object under the root object.

just-in-time (JIT) activation

An automatic service provided by COM+ that allows idle server resources to be used more productively. When a component is configured as JIT activated, COM+ can deactivate an instance of it while a client still holds an active reference to the object. The next time the client calls a method on the object, COM+ will reactivate the object transparently to the client, just in time.

legacy component

An unconfigured component that has been installed into a COM+ application.

listener

An architectural element of the COM+ Queued Components service. The listener is a COM object that opens the message queue associated with its host application and waits for messages to arrive. As messages arrive, the listener dispatches threads that process messages.

logical model

The second step in a COM+ application design process, where the conceptual model is broken out into the logical tiers of the three-tier architecture, as follows: the presentation tier, or user services; the middle tier, or business services; and the data tier, or data services.

loosely coupled event

An event whose sender (publisher) and receiver (subscriber) are not closely bound. In a loosely coupled event system, such as COM+ Events, event information from different publishers is persisted in an event store. Subscribers query this store and select the events that they want to receive. Selecting event information from the event store creates a subscription. When an event occurs, the event system looks in this database and finds the interested subscribers, creates a new object of each interested class, and calls a method on that object.

marshaling

The process of packaging and unpackaging interface method parameters across thread or process boundaries so that a remote procedure call can take place.

message mover

The architectural element of the COM+ Queued Components service that moves failed messages back to their input queue so that they can be retried.

meta-event

A type of event used by the COM+ Events system to notify interested subscribers whenever event class objects or subscriptions are created, modified, or removed.

method

In COM-based programming, a process performed by a COM object when it receives a message.

middle tier

In the three-tier architecture model for business applications, the layer comprising the business logic and data rules. The components that make up the middle tier can be used to enforce business rules, such as business algorithms, legal or governmental regulations, and data rules, which are designed to keep the data structures consistent within either specific or multiple databases. Because these middle-tier components are not tied to a specific client, they can be used by all applications and can be moved to different locations as response time and other rules require. Also called business services layer or business logic tier.

mixed model process

A process that has a multithreaded apartment and one or more single-threaded apartments.

moniker

A name that uniquely identifies a COM object. In the same way that a path identifies a file in the file system, a moniker identifies a COM object in the directory namespace.

.msi file

A file created by the Component Services administrative tool when you export a COM+ application or application proxy for installation on another computer. The .msi file can be installed on any Windows-based client using Windows Installer.

multithreaded apartment model

An apartment model in which all the threads in the process that have been initialized as free-threaded reside in a single apartment. Therefore, there is no need to marshal between threads. The threads need not retrieve and dispatch messages because COM does not use window messages in this model.

nested transaction

A secondary transaction initiated from within an existing primary or parent transaction boundary. The primary transaction does not commit until all of its subordinate, or nested, transactions commit. COM+ does not support nested transactions.

neutral apartment model

A threading model in which objects follow the guidelines for multithreaded apartments but can execute on any kind of thread. The neutral apartment model is the recommended threading model for COM components and COM+ applications.

persistent object

A COM object that can save its internal state when asked to do so by a client and that conforms to COM-defined standards through which clients can request objects to be initialized, loaded, and saved to and from a data store (for example, flat file, structured storage, or memory). It is the client's responsibility to manage the location where the object's persistent data is stored but not the format of the data.

persistent object interface

A COM interface implemented by a persistent object. Clients use persistent object interfaces to tell those persistent objects when and where to store their state.

phase zero notification interface

COM+ interface that allows applications to detect when a transaction is ready to proceed with a two-phase commit protocol so that it can perform the necessary notification operations and communicate to the transaction manager when the operations have been completed.

physical model

The third and final step in the COM+ application design process, where the developer determines where the components reside physically and how they are to be coded.

player

The architectural element of the COM+ Queued Components service that retrieves the message from a queue and then loads the server object and the standard interface stubs to unmarshal data and invoke server methods. The player unmarshals the client's security context at the server side and then invokes the server component and makes the same method calls. The method calls are not played back by the player until the client component completes and the transaction that recorded the method calls commits.

presentation tier

In the three-tier architecture model for business applications, the layer that presents data to the user and optionally permits data manipulation and data entry. The two main types of user interface for the presentation tier are the traditional application and the Web-based application. Also called user services layer.

primary access token

Describes the security context of the user account associated with a process.

proxy manager

In standard marshaling, a component that manages all the interface proxies for a single object.

pseudo-object

A type of contained object, such as a user selection in a document, a range of cells in a spreadsheet, or a range of characters in a text document. This type of object is called a pseudo-object because it isn't treated as a distinct object until a user marks the selection.

publisher

The sender of an event. In the COM+ Events architecture, the publisher makes the method call to initiate an event.

queue moniker

The moniker used to activate a queued component.

race condition

In a multithreaded application, a condition that occurs when multiple threads access a data item without coordination, possibly causing inconsistent results, depending on which thread reaches the data item first. COM supplies some functions specifically designed to help avoid race conditions in out-of-process servers.

recorder

The architectural element of the COM+ Queued Components service that marshals the client's security context into a message and records all of the method calls for an object. The recorder is a system-provided proxy manager that selects interfaces from the queuable interfaces in the COM+ catalog.

resource dispenser

In the COM+ programming model, a component that manages nondurable shared state on behalf of the application components within a process. Resource dispensers are similar to resource managers but without the guarantee of durability.

resource manager

A service that manages persistent or durable data in databases, durable message queues, or transactional file systems. It is the resource manager that knows how to store data and perform disaster recovery. COM+ server applications use resource managers to maintain the durable state of an application, such as the record of inventory on hand, pending orders, and accounts receivable. Resource managers work in cooperation with the Microsoft Distributed Transaction Coordinator (DTC) to guarantee atomicity and isolation to an application.

role-based security

A COM+ security service provided for COM+ applications. A role represents a category of users defined for a COM+ application for the purpose of determining access permissions to the application's resources. Roles are assigned by a developer to components, interfaces, and methods. Users are assigned by an administrator to appropriate roles, enabling a user within a given role to access any resources to which that role is assigned.

root object

The first object of a transaction, called the root of the transaction, and always placed in a new transactional boundary. There can be only one root object in a transaction. All other objects in the transactional hierarchy under the root object are called interior objects.

root transaction manager

The transaction manager on the system that initiates a transaction. The transaction is not finalized until the root transaction manager determines the transaction's status (either committed or aborted).

semaphore

A kernel object used to arbitrate access to a shared resource.

service control manager (SCM)

A Microsoft Windows server process that manages all the services in the Windows registry.

shared property manager (SPM)

In Com+, a resource dispenser that you can use to share nonpersistent state among multiple objects within a server process.

single-threaded process

A process that consists of just one single-threaded apartment, which in turn consists of exactly one thread. All COM objects that live in a single-threaded apartment can receive method calls from only the one thread that belongs to that apartment.

SOAP

A simple, XML-based protocol for exchanging structured and type information on the Web. The protocol contains no application or transport semantics, which makes it highly modular and extensible.

split registration

For components that are already existing COM components and are used in the COM+ services environment, the registration arrangement in which the basic COM aspect of the registration is stored in the Windows registry and new COM+ services and attributes (for example, Queued Components) are stored in the COM+ Registration Database. Each component attribute is stored in either the Windows registry or the COM+ Registration Database. New COM components are registered exclusively in the COM+ Registration Database, with some duplication in the Windows registry so that existing tools can use them.

stateful

Of or pertaining to a system or process that monitors all details of the state of an activity in which it participates.

stateless

Of or pertaining to a system or process that participates in activity without monitoring all details of its state.

static cloaking

A form of cloaking where the original client identity can be presented once to a downstream server, setting the original client identity once on the proxy. This client identity is presented as a server thread token that will be used on subsequent method calls.

subscriber

The receiver of an event. In the COM+ Events architecture, the subscriber receives the calls made by the publisher.

subscription object

In the COM+ Events system, an object created by a subscriber to request and manage the delivery of events.

synchronization

In COM+, a service that flows from component to component and prohibits more than one caller from entering the component at any given time. Synchronization determines when threads can dispatch calls to an object.

three-tier architectural model

The fundamental framework for the logical design model, segments an application's components into three tiers of services as follows: the presentation tier, or user services; the middle tier, or business services; and the data tier, or data services. These tiers do not necessarily correspond to physical locations on various computers on a network, but rather to logical layers of the application.

tightly coupled event

An event whose sender (publisher) and receiver (subscriber) are closely bound. In a tightly coupled event system, the publisher is provided with an interface on which to call a method when a change occurs. The subscriber knows which publisher to request notification from and the interfaces that are exposed. A tightly coupled event system requires that both the publisher and the subscriber are running at all times.

trace log

A log file automatically generated by the Microsoft Distributed Transaction Coordinator that shows data related to one or more distributed transactions. Examples of data in a trace log are transaction ID, transaction time, and messages indicating the transaction outcome.

transaction

A unit of work in which a series of related operations occur during an application process. A transaction executes exactly once and is atomic—either all of the work is done or none of it is.

Transaction Internet Protocol (TIP)

Transaction Internet Protocol is a standard two-phase commit protocol that enables heterogeneous transaction managers to coordinate distributed transactions, especially over the Internet. The TIP two-phase commit protocol is simple to implement and is independent of the application-to-application communications protocol, such that it may be used with any application protocol but especially HTTP.

transaction manager

The part of the Microsoft Distributed Transaction Coordinator (DTC) that executes on each computer participating in a distributed transaction and manages the activities related to committing or aborting that part of the transaction.

transaction processing application

A collection of transaction operations that automate a given business task.

transaction processing system

A complete system, comprising both computer hardware and software, that hosts a transaction processing application to perform routine transactions necessary to conduct business.

two-phase commit protocol

A protocol used only in distributed transactions, ensures that the outcome of a transaction is consistent across all transaction managers participating in the transaction. The protocol operates in two distinct phases to ultimately commit or abort a transaction: phase one evaluates the condition of each resource manager, and phase two completes the transaction.

unconfigured component

A COM component that has not been configured within the COM+ catalog. Unconfigured components cannot make use of COM+ services.

whereabouts

For DTC transactions, an opaque data structure that represents the address of the resource manager's transaction manager.

XA interfaces

A standard set of programming interfaces that allow COM+ application developers to access XA-compliant databases and create resource managers that operate with relational databases, message queuing, transactional files, and object-oriented databases. Although Microsoft does not directly support the XA protocol, Microsoft does support translation facilities between OLE transactions and XA.

XML web services

Units of application logic providing data and services to other applications. Applications access XML web services through standard Web protocols, such as SOAP.