This paper provides an overview of the technologies created by the Open SOA collaboration, how they are used in the building of business solutions and how they relate to one another to provide a powerful set of features that increase productivity and reduce the skill level required by developers.
Building Business Services
Service Oriented Architecture (SOA) has as its goal the creation of business solutions which are flexible and adaptable, reducing the time and effort required to meet the challenges of new business opportunities and the demands for change of many kinds. The vision of SOA is that business systems are built from sets of loosely coupled business services, composed together to build complete solutions.
Service Component Architecture (SCA) provides support for the core of the SOA vision. SCA provides an executable model for the composition of individual service components into a network of services. Service Data Objects (SDO) deal with the data that is an integral part of every service operation, providing capabilities that shield the programmer from the details of the underlying data formats while also assisting with the common create/read/update/delete paradigm of data handling.
SCA: Service Components and Composite Applications
SCA provides an executable model for creating composite service applications. It has the key capability to describe composition of service solutions from sets of service components. SCA also encourages practices that are important in order to obtain the most benefit from using Service Oriented Architecture:
- Define services and references in terms of interfaces, separated from the implementation code
- Separate the configuration information that defines the connectivity of service components from the implementation code
- Apply infrastructure capabilities such as Security and Transactions through configuration data that is separate from the implementation code
One aim of SCA is to simplify the programming of service components, so that the programmer concentrates on the business logic that is required and does not need to be concerned about complex middleware programming interfaces. SCA also provides a clear model for the composition of service components into business solutions, with the provision of declarative configuration information that defines the connectivity of services and references and the protocols to use. SCA also provides declarative policy mechanisms which are used to apply infrastructure capabilities where required, both to components and to the connections between them.
SCA encompasses a wide range of technologies, both in terms of programming languages and frameworks for service components and also in terms of the communication mechanisms and protocols used to connect components. This is important in enabling reuse of existing systems and applications with minimum effort. It is also important in providing for the use of the technology that is most suitable for a particular task.
SDO: Access to Business Data
SDO provides a set of capabilities for handling business data in a form that is independent of the source or the target of the data. Handling data is key to any business application, but in solutions using SOA, data may have a range of underlying formats. There is data held in relational databases (RDB), and there is data in XML format transmitted via Web services, for example.
SDO first aims to relieve the programmer of the need to understand multiple different data formats and the multiple different programming interfaces that are needed to handle them (eg JDBC for relational data, JAX-P for XML data). Secondly, SDO supports a disconnected, optimistic-update style of programming, where data is read from some location, is manipulated by a client program and then updated data sent back to the original location, without needing to lock the original data while the client does its work.
SDO also aims to support a wide range of different programming languages, so that services may be written in any language and yet still be able to benefit from the capabilities of SDO.