A perspective on service based architecture: the evolutionary concept that assists technology providers in dealing with a changing environment

Agility is a term used when describing an organizations ability to change and has been written about by many authors and used in many forums --- it is used to describe the core capability of an organization to move with times, or move with strategy. Agility is defined in the Oxford dictionary as 'The gracefulness of a person or animal that is quick and nimble'. Business Agility is the gracefulness of an organization to quickly redesign itself for strategic, tactical or operational reasons. Businesses would do this to stay competitive, restructure or expand into other markets. The inhibitor becomes the ability of the software systems to adapt to the new requirements. Software systems typically are constructed for single purpose implementations and hardly ever cater for effective re-use. Reuse could obviously mean many things as bits of code can be reused, but maybe components cannot be reused. Inevitably there is a shortcoming in being able to change existing systems or realize new requirements quickly. Software-as-services is a concept that has been used in a number of architectures to facilitate reuse and to deal the plug-and-play abilities of software. CORBA (Common Object Request Broker Architecture) based software standards have a clearly defined means of using software-as-services to perform a variety of tasks for example authentication and name resolution services. Operating system services are used to provide device independent services for example printer drivers. In software architecture, the term common-customer-view has become the latest and highly debated strategic topic. Research in the financial services sector shows that business has silos of data and applications that exist in isolation and has cumbersome integration processes and technology. A typical problem is that these large organizations would have several copies of their customer data stored in diverse software applications that each focus on a specific business product or functional business area. How can organizations protect their existing software infrastructures whilst moving towards a more integrated, common-face-to-software-for-customer based architecture? Service based architecture (SBA) is a layered architecture that separates the usage and definition of software components, from the implementation software architecture in order to define software-as-services using a common standard. This paper presents an approach whereby service based architecture can be used as a means to assemble software systems from loosely coupled software-as-services in such a way that concepts such as common customer views can be achieved easily. A separation continuum is used to describe how business models and technology architectures are used. Web Services is one example of how software-as-services is implemented. This paper uses this as a focus area to explain implementations as momentum is already created in the software industry backing from many major players like IBM, Microsoft, SUN, BEA and HP. Related work has been published through the Software Product Line Practice Conference (SPLC1 and SPLC2) hosted by Carnegie Mellon University and Software Engineering Institute, and Computer Software and Applications Conference (COMPSAC) conferences. This paper presents specific findings and presents solutions that relate to service based architecture where other published work is more generic in nature. Since research is still under way, some interim findings are discussed. Nine large financial services organizations is South Africa, three in Germany and two in the United States of America form part of this research.