Home >Documents >Service Oriented Architecture

Service Oriented Architecture

Date post:04-Nov-2014
View:799 times
Download:0 times
Share this document with a friend
  • 1. March 2006Service Oriented ArchitectureImproving Agility and Efficiency in your Enterprise WGraham GoodeH SYSPRO (PTY) Ltd.I Service Oriented Architecture, a term still not well understood by many T enterprise executives and managers, is defined, and it's key conceptsexplained so that the reader may better understand the benefits andchallenges of SOA from an IT and a business perspective. E PAPER syspro.com

2. SOA Improving Agility and Efficiency in your Enterprise INTRODUCTIONFor many owners, executives, and managers of large, small, and medium sized busi- nesses, the question of what a Service Oriented Architecture is has not been clearly answered. Some may have heard the term, and may even have been able to read some articles or one or two of the few books that have been written regarding SOA, but most have not had that opportunity. For many, the subject matter of SOA has been left to the IT department managers and executives. This needs to change.SOA needs to involve both IT and business managers and executives. The concept of the architecture requires direct interaction between the two areas. In this white paper we provide a clearer understanding of what SOA is, what its key concepts involve, and what the challenges and benefits of SOA are within the enterprise environment. The relationship between ERP systems and SOA is a meeting point for these two areas, a place where business and IT automatically interact. Business owners, executives, and managers can lead their enterprises to greater profitability and efficiency through greater understanding of this topic.SOA EXPLAINEDService Oriented Architecture is not something that has just appeared within the busi- ness world. It is something that has been formed through years of dealing with pro- gramming problems and the issues of aligning IT systems with business needs. The concept of SOA has finally come of age and is accessible to any business. In this white paper we will examine SOA by looking at some definitions of what SOA is, and by examining the key concepts that SOA is comprised of. We will then discuss some of the benefits and challenges that enterprises experience from implementing a SOA.SOA DEFINEDThere are many different definitions of SOA available, ranging from highly technical definitions to simple ones. There are also many different ways of describing SOA, using examples from everyday life. We can easily describe the SOA concept using the CD and CD-player. When you want to play a CD, you put it into a CD player, press play, and the player plays it for you. If we think of the CD player as offering a 'CD play- ing service', and the CD as the 'business data' that needs to be processed then we have a working model of SOA. As such, we can replace one CD player with another - we can play the same CD on a portable player or on an expensive stereo system. They both offer the same CD playing service, but the quality of the service is different. We can also play many different CDs in one player. The CD playing service does the same thing with each CD - it plays the sound recorded on the Disc. Syspro Software 2006 3. SOA Improving Agility and Efficiency in your Enterprise FIGURE 1. CD P LAYER AS A SERVICE The CD and CD player example shows us that SOA involves the interchangeability of certain functions and specific data types. Now let's take the definition further. Here is our basic and fairly simple definition of SOA:Service Oriented Architecture is a business environment style of system design that guides and encourages the creation of loosely coupled business services that are inter-operable and technology-independent, enabling increased business function and flexibility.As you can see, we have introduced words and concepts within our definition that may be unfamiliar. We will discuss 'loosely coupled', 'inter-operable', and 'technology-inde- pendent' later in this document.To better balance our view of SOA, let's take a look at another definition. The World Wide Web Consortium (W3C) [http://www.w3.org] defines SOA as A set of compo- nents which can be invoked, and whose interface descriptions can be published and discovered. In this definition there are also terms that must be discussed in order to fully understand the concept of SOA and how this type of architecture or environment bring benefits within the Enterprise framework.No matter what definition of SOA we use, the core of SOA deals with business and IT practices and applications. SOA is a business tool or concept built from IT, and this is why ERP applications have much to benefit from adopting an SOA approach. The definitions in and of themselves are merely a beginning when dealing with SOA.Any definition must be a simplified reduction of what may be a fairly complex reality. In order to better understand SOA we need to examine the key components and con- cepts that form the architectural system.Syspro Software 2006 4. SOA Improving Agility and Efficiency in your Enterprise KEY CONCEPTS IN SOAAs we take a closer look at the central concepts that form a Service Oriented Architecture we will briefly discuss services, dynamic discovery, loose coupling, distrib- uted networks, interoperability, web services, front-ends, and message based technolo- gy. Each of these plays an essential role in conceptualizing what SOA is and how an SOA enabled enterprise functions. As the concept of the service is so central to the discussion of SOA we will start our discussion there.SERVICESWhen examining any SOA you will find the concept of a 'service' at it's very core. Everything either enables or supports a service within the enterprise IT architecture. The 'service' is what brings all the other aspects of the architecture together, it is the most important part.In an article at builder.com, Brian Schaffner informs us that "a central idea of SOA is the movement away from technology-oriented solutions and toward business services." Most organizations (including governments), provide some sort of business service to their customers, so the idea of a service is not uncommon. However, in this context our definition of a service incorporates the two related fields of business systems and com- puter applications. Services are the central or core component of SOA, it's most basic element. Simply put, a service is a self-contained software module that performs a pre- determined business task.In SOA, services are the business software components that are created to function independently, regardless of specific underlying technology. This allows the program- mers to reuse the code and maintain the functionality of components within an applica- tion and share them with other applications. Remember that the 'services' in SOA are business services, not computer services. Updating a loan application is a business service, updating a record in a database is not.An easy example of a service, within the context of SOA, involves the banking system. We have all walked onto a bank, filled out the deposit form, joined the queue, and been able to perform a transaction in our account through the mediation of the bank teller. When you enter a bank you expect a particular service, you understand what information is required, and where to go to get the particular service that you require. The core service or business process that you expect is the money transaction. You want to move money from one place to another. You fill out the necessary details of what you want and then hand it over to the teller, who performs the task. All the requirements and details of performing this transaction are steps along the business process, aspects or properties of the 'deposit money service.Syspro Software 2006 5. SOA Improving Agility and Efficiency in your Enterprise As we examine the other key components of SOA you will see that most, if not all, of the other components are specific supporting aspects or properties of a service.LOOSE COUPLINGCoupling deals with the aspect of how software components and services fit together. As more and more software systems are built we see similar situations and patterns appearing. Naturally, we want to reuse the functionality of existing systems rather than building them continually from scratch. The problem that loose coupling deals with is that of dependencies between components. A real dependency is the state of affairs in which one component depends on the functionality provided by another. They cannot be separated. The trouble is that we create artificial dependencies along with real dependencies. Loose coupling creates functionality in services that are not permanent- ly bound to a specific application or system, but are able to be moved from one plat- form to another, one application to another, etc.Within the banking system we find loose coupling at work within our deposit transac- tion example. One can deposit money at any branch of the bank, at an ATM, or through an Electronic Fund Transfer over the Internet. The 'deposit money service' is not dependent on a particular teller or bank branch. The business process is standard- ized, but independent enough to take place from many different starting points. When we consider an SOA service we can see that loose coupling is essential, for it allows the service to be independent of operating systems and independent of other business services.Another concept that deals with how services and systems should interact relates to interoperability. If a service is loosely-coupled, it will more likely be inter-operable, regardless of what operating system it is run from.INTEROPERABILITYWhat do we mean by inter-operable? Interoperability involves allowing things to work together or finding ways to make them work together. Standardization practices are the tools that allow things to become more inter-operable. With respect to software, the term interoperability is also used to describe the capability of different programs to read

Popular Tags:

Click here to load reader

Embed Size (px)