A software component is a unit of composition
with contractually specified interfaces and
explicit context dependencies only.
A software component can be deployed independently
and is subject to composition by third parties.
| distribution | mobility | language | platform | |
| COM | - | - | * | - |
| DCOM | + | - | * | +/- |
| CORBA | + | - | * | * |
| Java/Beans | - | classes | Java | * |
| Voyager | + | objects | Java | * |