The Microsoft Component Object Model (COM) defines a standard way for software components to supply services to each other. Any PowerBuilder custom class user object can be used as a COM object by providing it with a runtime environment, a registry entry, and optionally a type library. Clients built with COM-compliant tools such as PowerBuilder and Visual Basic can make use of the business logic in the COM object by creating an instance of the object and calling the methods exposed in its interface. Depending on the interfaces it supports, the COM object may also be available to Java and C++ clients.
COM+ enhances COM by handling more resource management tasks and providing thread pooling, object pooling, and just-in-time object activation.