But rethinking real-world IT is tough. Corporate IT is a rat's nest of complexity. A simple definition is that components are relatively small, self-contained, independent units that execute a specific set of behaviors and that can be connected together to create an application. Objects are small code modules that execute certain actions, but interact with other objects only in the context of its place within a hierarchy of other objects. Components can be composed of objects, but the reverse is not true.
Components also provide a means to break more monolithic applications apart into usable code chunks.
Components deliver the extensibility necessary for applications in a changeable environment and allow users to create a series of shared components that can be used as application and network services. For those IT organizations that intend to use components to more completely blend technology with the business process, there are several keys to success. One is the choice of a development tool that will allow teams of developers to build and assemble components, preferably based on a repository with team development capabilities built in. Above all, it is imperative to develop all components and applications with the business problem at hand in mind at all times. The main rationale of components is to create a solution that enhances the business process and does not simply recreate it.