Tuesday 11 October 2011

Service Oriented Architecture

SOA Concepts

Today, the concept of Service Oriented Architecture has become ubiquitous. Evidence from recent years establish that SOA is not just about hype, but a part of every major Business environment. The truth is, Service Oriented Architecture can be beneficial to Business only when it is utilized properly and when it is utilized to its potential. 

A Service-oriented Architecture is essentially a collection of services. these services communicate with each other. The communication can involve either simple data passing or it could involve two or more services co-ordinating some activity. Some means of connection services to each other is needed.

The technology of Web services is the most likely connection technology of service-oriented architectures. Web services essentially use XML to create a robust connection.

The following figure illustrates a basic service-oriented architecture. It shows a service consumer at the right sending a service request message to a service provider at the left. The service provider returns a response message to the service consumer. The request and subsequent response connections are defined in some way that is understandable to both the service consumer and service provider. How those connections are defined is explained in Web Services explained. A service provider can also be a service consumer.

 

Service Oriented Architecture is no longer a theory – it has moved into the realm of actual initiatives that can ensure that Businesses and investors receive high returns on their investments. It is vital to possess a keen understanding of various Service Oriented Architecture concepts in order to decide whether Service Oriented Architecture is suitable for your Business or not.

Why use Service Oriented Architecture?

Vast majority of Businesses working in the field of Information Technology have to justify their projects with a return on their investments. This puts Information Technology, as a field under enormous pressure. Information Technology must boast requirements that are increasingly responsive and flexible to the shifting needs of different Businesses.

Firms dealing with Information Technology must also be able to face the challenge of taking on an array of software systems that may or may not be compatible with one another. Moreover, Information Technology has to face demands to bring new commercial services to a much wider array of customers. Customers may access services through web interfaces, or may be part of a supply chain that needs to decrease the time and cost of manufacturing.

Thus, Information Technology companies are always on the look out for solutions that will help them meet the above demands – without having to spend a lot of money.

While Service Oriented Architecture may not solve all the problems posed by the increasingly complex realm of Information Technology, employing SOA tactics can bring a lot of benefits and rewards to a company. Typically, these benefits fit into one of the following three categories:

-Standardized interfaces and data models 
-Re-use 
-Composability

SOA Elements

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 into 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, it is how a solution is broken down into logical units – and how they 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 middle-ware that enables services and technologies, they alone do not constitute a Service Oriented Architecture.

Let us consider 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 into 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, 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 functionality may very well be another service or application.

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 into 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 into software system. In this scenario, they co-operate as a means of achieving Business objective, while possibly participating in some other systems that offer similar service capability for a possibly different end solution.

SOA vs. Other Architectures

Some observers claim that Service Oriented Architecture is merely another way that services and software can be sold. But SOA is a lot more than merely a buzz word. At the beginning, software was a set of code that ran somewhere on a large mainframe computer. This was where input was provided in the form of, say, punch cards.

As computer technology began to evolve, users would make use of simple text based terminals as a means of entering data, schedule jobs, etc. But software continued to grow larger. Rarely would other forms of software be relied upon to do these jobs.

Business logic steadily evolved over time so that much of the interface was moved to individual users’ desktops, while core Business logic and storage remained on a back room main computer. A lot of these applications still function in Businesses around the globe.

No comments:

Post a Comment