A component is an independent executable entity that can be made up of one or more executable objects. The component interface is published and all interactions are through the published interface.
The fundamental differences between components as program elements and components as services are:
• The component as a program can be modified by the user
• But a component as a service can not be modified because it is owned by the provider. They do not have a ‘requires’ interface.
• Component as a program can use much more efficient protocols than web services so that the application performance is high. If services are used in the program there is no need to implement any additional support required.
• The component as a service is an independent, executable entity. It does not have to be compiled before it is used with other components. There is a single standard for services against several other component standards i.e. service inter-operability is much better.