Businesses in today’s competitive environment are constantly faced with the challenge of having to provide more with fewer resources. Businesses are constantly under pressure to deliver goods and services to the market at a faster, cheaper rate – and at higher quality than in previous times. It is predicted that investments in Information Technology are going to drive businesses forward – not merely in terms of gaining responsiveness and efficiencies, but additionally in the creation of top line opportunities.
It is an ironic fact that the vast majority of corporate Information Technology companies only allocate about three quarters of their annual budget to “keeping the lights on.” At the same time, it has been established that the average utilization of a normal server is around fifteen to twenty percent. While these figures may not be reflective of every single business, they do highlight the fact that there is a lot of inefficiency in the way that Information Technology is carried out in today’s business world. This inefficiency winds up consuming large chunks of a budget that could be put to better use towards strategic initiatives.
What is behind this high rate of inefficiency? While there might not be one single cause, a lot of it can be attributed to mergers, acquisitions, and functional silos within a business. All of these factors tend to contribute to bloated Information Technology infrastructures, which then become rife with overlapping and duplicate systems and applications. When faced with tight deadlines and a business’s ongoing demands, Information Technology tends to just accept these redundancies, only integrating systems where necessary as a means of maintaining their consistency. While this approach may very well result in quick time to delivery, it also very much inflates the recurring costs.
While a lot of Information Technology businesses might very well be content with this status quo, executive management tends to view the alignment of Information Technology with business as the primary concern related to the Information Technology field. With as little as fifteen percent of the budget available for service needs, however, Information Technology does not have a lot of room to maneuver. These problems are vast and apply to a variety of different industries. What is needed is a major change in the way these issues are managed.
Realizing this, a lot of businesses are moving towards Service Oriented Architecture, an approach to architecture that effectively eliminates redundancy while simultaneously accelerating the delivery of projects through consolidation and the reuse of services, which are often referred to as Web services. Service Oriented Architecture allows businesses to effectively leverage their existing assets instead of being forced to create another redundant silo for each of their corporate needs. As a result, Information Technology becomes more efficient and allows for quicker project delivery as well as shorter cycle times. Thus, Information Technology becomes further aligned with the business level.
Positive aspects of SOA
Let us now take a look at some of the key features of Service Oriented Architecture. The best way to go about doing this is to break SOA down in to its acrimonial elements. We’ll start with the last letter first: A for Architecture.
We will first examine architecture in reference to Service Oriented Architecture. Usually, in the realm of software, architecture tends to define the overall intercommunication and definition of different high-level components. To put it simply, this is how a solution is broken down in to logical units – and how they will operate with one another. In a way, Service Oriented Architecture is representative of an approach to architecture that focuses on how services are defined and how they interact with one another.
Service Oriented Architecture is not something you can just go out and purchase. It is a set of architectural principles. While you might be able to directly purchase certain middleware that enables services and technologies, they alone do not constitute Service Oriented Architecture.
Now it is time for us to move on to the SO part of SOA. Being service oriented basically means that you are employing an architecture that consists of a variety of services. This might sound familiar to those who have had some experience in the past with Object Oriented Design. In fact, Object Oriented Design and Service Oriented Architecture do have a lot of things in common.
By thinking in terms of services, you are effectively considering how to make your business function so that it stands on its own. This approach is enabled via the use of Service Oriented Architecture. It takes in to consideration the needs of both providers and consumers of services.
The providers of services offer functionality in the form of interfaces to the service capabilities they are providing. The consumer then accesses those capabilities. Such consumers may be an application or even another service provider. So, for instance, a checking account service may offer a functionality set that relates to a particular checking account. Such an account may offer the possibility to make deposits, withdrawals, create new accounts, and more. These capabilities, you may notice, are very particular to the context of a checking account service. We have not yet stated whether such a service might be provided by an ATM machine, a bank teller, or software.
A lot of people tend to believe that this definition of Service Oriented Architecture is merely the latest way to describe the functionality of applications. The fact is that a lot of applications in today’s day and age have already been built with an end user in mind. Thus, an application may encapsulate a group of several different tasks that are somehow related, yet also retain some degree of discretion.
Service Oriented Architecture distinguishes itself in that the consumer of certain application functionalities may very well be another service or application. It is true that human users mostly prefer all functionality to be aggregated together and also accessible through a single user interface. But a lot of other applications do not come with this requirement. Thus, it is logical to have functionality organized around a set of services which may or may not be self contained, yet even in the event that they are, can be somehow woven together in order to create a higher level of services or functionality.
Once these principles of architecture have been applied, you will find yourself with a lot of services that are able to interact as a means of providing a specific functionality set with benefits for your business. This is when re-use comes in to the game. You are now able to quickly build up another solution that will reuse a lot of these services while also providing additional services that the business may require. Such services are woven in to a sort of ecosystem of software. In this scenario, they cooperate as a means of achieving some sort of business objective, while possibly participating in some other ecosystems that offer similar service capability for a possibly different end solution.
In architectural terms, a modern architectural design should be Service Oriented, loosely coupled, driven by events, able to support both integration and assembly, aligned with valuable life cycle support processes, and able to leverage existing infrastructure and applications.
When it comes to Service Oriented Architecture, it tends to offer a variety of different advantages over more traditional methods of distributing computing. These include offering business services across several platforms; providing location independence; providing authentication as well as authorization support on ever tier; a loosely coupled approach; and dynamic search and connectivity to other services. At the same time, it allows that services do not have to be located on a particular system or network.
Some of the short term benefits of Service Oriented Architecture implementation include an enhancement of reliability; a reduction of hardware acquisition costs; an acceleration of movement towards standards based servers and application consolidation; the leveraging of existing development skills; and the providing of a data bridge that connects previously incompatible forms of technology.
There are also numerous long-term benefits of Service Oriented Architecture implementation. These include the creation of a self healing infrastructure that effectively reduces management costs; the proven ability to build composite applications; the access to truly real time decision making applications; the resulting compilation of a unified taxonomy of data across an enterprise, which includes both partners and customers; and a whole lot more.
From the perspective of Business Value, the advantages of Service Oriented Architecture include the ability to meet customer demands at a much faster pace than ever before; a reduction of costs previously associated with the maintenance and acquisition of key technological needs; the management of business functionality at a physically closer location to the business units; a reduction in reliance on pricey custom development; and a leverage of existing investments in the technological sector.
Simple Object Access Protocol, or SOAP based web services have evolved as the most common SOA implementation. There are, however, non-web service implementations that exist that provide similar benefits. Service Oriented Architecture’s protocol independence thus means that consumers can communicate with the service in a variety of ways.