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:
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.
The ability to carry out multiple operations by distributed components, such as database components, and to have them be treated as a single transaction.
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.
The ability to use tools that enable developers and administrators to manage components and component-based applications.
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.