How do the concepts of component development work within SOA?
Let’s first break this question down by defining what component development is. Component development is the process of implementing specific functionality in the form of small units of complied code that can be reused across multiple applications or product families. Typically, components are integrated with other components forming composite components. In general, most interaction between components is done through interfaces to promote loose coupling.
The concept of loose coupling refers to the interconnections of components in a system so that their component dependences based on contracts defined by interfaces.
A real life example of this can be experienced while using Legos to build a structure. If we consider each Lego block as a component, then when two more Legos are connected they form a composite component due to the fact that the structure is made up of multiple components. It is important to note that composite components can be made from standard components and other composite components. Eventually as various components and composite components become interconnected a structure begins to form in the shape of an application or in the case of Legos in the form of Lego structure.
Software components can loosely be defined as small units of related implemented functionality that can communicate with other components or may have dependencies on other components.
Based on the definitions provide above, it is my personal opinion that SOA works well with the concepts of component development.
The SOA architectural style focuses on creating loosely coupled services. Each service much like a component offers related functionality that can be accessed by various requesting clients. In addition services can be derived just like components in that services can be built on other services to form composite services.
In summary, the concepts of component development can work within SOA based on the example above.