.NET and Component Services (COM+)

Running out of resources can be a big problem for distributed systems. Handling a large number of requests from a few clients may work but handling a few requests from a large number of clients is a big problem. We simply do not have the resources, like database connections, to handle the load.

COM+ is a scalable component-based infrastructure that supports resource sharing, and deals with lots of other issues like:

  • Security

The ability to have role-based component call security.

  • Just-in-Time Activation

The ability to instantiate components when they are called and discard them when their work is done.

  • Transactions

The ability to carry out multiple operations by distributed components, such as database components, and to have them be treated as a single transaction.

  • Synchronization

The ability to synchronize concurrent access to components.

  • Object Pooling

The ability that allows multiple instances of frequently used, but very expensive, resources like database connections to be maintained in a pool for use by numerous clients.

  • Queued Components

The ability to have loosely coupled applications, or even disconnected applications, using asynchronous messaging.

  • Administration

The ability to use tools that enable developers and administrators to manage components and component-based applications.

  • Events

The ability for components to inform each other through events. COM+ supports a publish-subscribe model of event notification.

 A .NET component that uses COM+ services is called a serviced component. In .NET, the primary base class for a serviced component is ServicedComponent available in the System.EnterpriseServices namespace.

COM+ is too vast a subject to introduce in this brief. However, take with you that .NET integrates nicely with COM+, and you get a lot of component services for very little effort. COM+ might just be what you want to use in your distributed system. Be aware however that COM+ might be a steep learning curve.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: