Let me guess someone told you that you have to implement SOA, as it will save you money and improve the way you do business. The problem, however, is that just about every other day there is a new three or four letter acronym being hyped thats going to change the way you run your business. How do you know whether SOA is just another one of those here today, gone tomorrow, change the world acronyms, or the big one that you just have to implement?
Lets have a look at what SOA is all about, and then you can decide if this is the acronym that will change the way you do business. Well start by breaking down the letters that make up the acronym. SOA stands for Service Oriented Architecture.
Not clear yet? Ok lets break it down a bit further. Well start with the easy part Architecture. Everything related to computing environments always talk about architectures. Just like architecture describes how a building or house is designed and what things reside around it (such as trees, grass, roads, and so forth), computer systems have architectures as well. Depending on whom youre talking to and what their role is, computing architectures may describe such things as the computers and databases in use, applications installed, and/or even how all of these different elements communicate with each other.
Architectures may also refer to the philosophy or concept of how your computing environment is connected and how it operates. For example, and without getting technical, there are different ways you can get computers and applications to communicate. The architecture or philosophy can describe the method you use to communicate and how you define what needs to be communicated.
Thats the main concept of architecture and well get back to it shortly, but in the meantime lets move on to the word Service. Im going to go off on a tangent but stay with me as youll soon see my point.
You get to work late and realise that youve forgotten your watch. You knock on the cubicle wall of Simon, your office co-worker, and ask hey Simon, what time is it?. What youre doing is asking Simon to provide you a service of telling you the time. If Liz from down the hall asks Simon for the time, he can provide the same service to her as well. We can say that Simon offers a service of telling the time. So long as we ask hey Simon, what time is it?, Simon will tell us the time.
Youre probably now wondering what this has to do with my computing environment. Oklets relate this concept back to our computing environment. If you walk into a bank and ask the cashier to check your account balance, he will access the customer account application, enter your account number, and get your balance. If you then go home and access the banks website to check your account balance, you go through the same process that the cashier did, only using a different application. You enter your account number and get back your balance.
Just like Simon provided you and Liz with the time in the previous example, the account application can provide you and the bank teller with your account balance different means but the exact same service. We can say that Simon and the account balance application provide a service so well call them Service Providers. You, Liz and the cashier at the bank utilise these services so well call you Service Consumers.
Thats the general concept of a service. With regards to a computing environment, a Service can be just about anything that a computer application can provide the time, account balance, shipment status, delivery schedule, and so on. One more thing a service must have is a common means of being accessed so that any application can utilise it. When we discussed Simon (our Service Provider), we said that as long as we asked him for the time by saying hey Simon, what time is it we (the Service Consumer) would get back a response with the time. Whether you, Liz or anyone else asks Simon for this service in the same manner, he will respond with the time.
So it sounds like SOA is just a method that applications can use to communicate by means of requesting services from one another. A Consumer application requests and receives needed information from a Provider application. Thats true, but its the architecture or philosophy part of SOA that provides the real benefits. After all, computer applications were communicating long before anyone ever heard the acronym SOA.
The real strength of the SOA architecture is that it can help you reduce development costs by allowing you to reuse existing applications in new ways. By transforming individual business processes within applications into services you can make them available for consumption by other groups within or outside your department or organisation. For example, if you have a business process that needs the account status of a client and another department already has a process to retrieve this data, you can use this process and not have to write a new application. With SOA you can even reuse your legacy applications for entirely new purposes by breaking down their individual business processes and making them available as services that other applications can use.
Another way SOA can help improve your business is with its ability to allow IT and Business to work more effectively together. By exposing your applications as modular building blocks, you are able to abstract the business processes you run from how the applications running these processes are developed and implemented. This makes it possible for business analysts, rather than IT experts, to design new business applications from a higher level by arranging the process building block as needed. These resulting applications are known as composite applications.
So there you have what SOA is all about, from a non-technical perspective. Whether you choose to implement a SOA will depend on many technical issues, but hopefully the business benefits of this three letter acronym have become a little bit clearer.
Eyal Orgil is European Marketing Manager for NetManage. NetManage, Inc. is a software company that provides solutions for accessing, Web enabling, and integrating enterprise information systems. More than 10,000 customers worldwide, including 480 of the Fortune 500, rely on NetManage for mission critical application integration.