Customer Portal

The Critical Need for SOA Today

Service Oriented ArchitectureService Oriented Architecture (SOA) is defined by the World Wide Web Consortium (W3C) as “A set of components which can be invoked, and whose interface descriptions can be published and discovered.” SOA is a collection of services used to complete tasks, in which these services may interact with each other. Essentially, these services communicate with each other, and can involve two or more services coordinating data or some other activity. Basically, SOA is the framework that enables clients to consume available services and/or resources through practices and policies.

SOA is an architectural style with the goal of bringing together a worldwide network of collaborating services available on the Service Bus, supporting a cross-platform exchange, thus allowing all involved to communicate effectively. Service Oriented Architecture takes existing software components on a network and permits those components to be published, or called upon by others. This is also seen as loose coupling with interacting software agents, which is the main objective of SOA.

SOA allows for applications residing anywhere on a computer system the ability to interact with any service on that network. SOA enables cross-platform exchange that allows competing technologies to communicate, such as Java and .Net, which is essential for business agility and IT flexibility. To accommodate the various operating systems, hardware, middleware, languages, and data stores, common supported processes must be developed. SOA automates predefined business processes by relying on basic units of application software. Dysfunctional relationships that sometimes exists between management and IT departments could be reconciled with the help of SOA, through the cooperation and fusion of both departments.

An organizations most valuable asset is its’ data, and most often this data is stored within various different systems and formats, which can sometimes make communication between them not only time consuming or difficult, but also often costly to maintain. SOA can utilize an organizations data by making it available for extraction and aggregation. Finding a cost-effective way in which to manage financial IT obligations along with utilizing legacy systems can sometimes be challenging. Using SOA as part of an IT infrastructure can result in a competitive advantage, while at the same time providing future maintenance benefits.

SOA has become an increasingly popular concept, wherein many organizations are reviewing their strategic plans for using a SOA, and looking at how it can benefit them as a whole. The key middleware stack that supports a SOA can also be implemented within a cloud (whether public, private, or hybrid) as services. Cloud Computing can help businesses to reduce the amount of complexity within their IT infrastructures while obtaining the many benefits of the SOA middleware. In many instances, the focus for businesses will shift from technology, to what is in the best interest of the company, which is business processes. Today’s evolving businesses constantly need to adapt to new customer bases, and success will come from adapting and making the necessary changes as soon as possible. The technologies associated with a SOA environment can set the foundation for such success.

Technologies Supporting SOA Environments
WSDL Diagram

Extensible Markup Language, abbreviated XML, describes a class of data objects called XML documents and partially describes the behavior of computer programs which process them. Markup encodes a description of the document's storage layout and logical structure. Structured information contains both content (words, pictures, etc.) and some indication of what role that content plays

WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. The operations and messages are described abstractly, and then bound to a concrete network protocol and message format to define an endpoint. Related concrete endpoints are combined into abstract endpoints (services). WSDL is extensible to allow description of endpoints and their messages regardless of what message formats or network protocols are used to communicate.

SOAP is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It also uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlying protocols. The framework has been designed to be independent of any particular programming model and other implementation specific semantics.

These technologies provide consumers with a means to uncover a service provider under the context of a specific “service” sought out by that consumer. A service is a business task that runs independently from any other service through a well defined set of interfaces, and can be generic or of various natures. The service is completed by a provider who gives the consumer the desired end result. Examples of services could be:

  • Business service – updating personal information
  • Business transaction – transferring funds
  • System service – scanning for viruses

In other words, the service is the appearance of physical references (people, programs, devices, or databases) that is uncovered to the network as a process that is grouped.

When constructing the foundation for services, draft the required business processes, then redefine them as services. Businesses need to carefully identify the services that they will provide, while keeping in mind that these services should be considered a set of well organized business functionalities and must represent a tangible business concept. Separate internal from external (customer) services, along with grouping services that operate or function together, while identifying those services that depend upon each other. Review processes that already exist and determine which processes need to be converted to a SOA design. During this review process, an organization can save time and money by reusing versus rebuilding!

Web Services

Web Services DiagramFor those businesses considering service-oriented architecture, a logical place to start would be with the consideration of using Web services. Web services are considered a collection of different technologies used to integrate applications and build solutions for specific messaging problems. Web services can facilitate a separation between the provider and the consumer through an interface. Example uses of Web services that businesses can give their consumers are: shopping carts (adding or deleting items), generating lists, or even retrieving prices. All these services can be very meaningful for a business.

Web Service (WS) technologies include: SOAP, XML, WSDL, and UDDI. Web services can provide abundant benefits, especially architectural. They bring with them platform independence along with self description and discovery. Although supporting Web services is only one form of SOA, businesses need to include other technology concepts to achieve loosely coupled services. Web services can help to make the multiple technologies that will make the new infrastructure a reality.

With the concept, that both the service provider and consumer are represented by software agents. Web services can provide the controlled access needed to essential computer systems. In addition, having an extensible schema will allow updated versions of services to be introduced, without interrupting existing services. When using Web services with SOA, you can create applications with more flexibility and power. Web services are basically a SOA that makes use of standard-based Internet interfaces such as SOAP and XML.

Service Orientation versus Object Orientation

Although the scheme of Service Oriented Architecture significantly differs from that of object orientation, the main difference between them is in software integration and how it is achieved. With service orientation, loose coupling is a major contributor that is achieved by using a set of simple and universal interfaces for all participating software agents, consumers, and providers. The use of an extensible schema allows for new versions of services to be used or introduced without the fear of breaching existing services. In such, if the synthetic dependent states among systems have been reduced, especially to a minimum, then loose coupling is achieved.

Web services are a perfect example of how consumers and services achieve integration through messaging. XML and an XML Schema is the only vocabulary shared between them, which are used to define the structure of the messages. All the necessary information to invoke an action needs to be contained in a message. Since the service provider is responsible for solving the problem, all messages must be descriptive instead of instructive. Service orientation promotes a reduction in dependencies between services.

Object orientation can be described as the simulation of real-world behavior by the use of computer systems and software development patterns using a variety of programming languages. Object orientation stipulates that applications should be designed in terms of objects. With object orientation, customarily data and the processing are bound together and share a type system concept among software components. An interface hierarchy exists in object orientation that must be satisfied before software components can be integrated. Object orientation strategy is based on the concept that systems should be built from a collection of reusable components called objects. Objects embrace both the data and functionality, instead of separating them. Objects are self-contained “bundles” of information (data) and logic.

Both service and object orientation design have their pros and cons, and ultimately the decision of which one to use should be based on the needs and requirements of the business and individual application and/or environment to be supported.

The Need for SOA

Businesses today are faced with many obstacles one of which is budget constraints. Along with budget cuts and rising of IT costs, businesses need to find an optimal solution for unity and advancement. In order to grow and become successful, organizations need to be wise in decision making. They must take into consideration all aspects of business to stay on track and within their budgets. A Service Oriented Architecture environment can assist organizations in meeting their often complex set of needs.

Through the years, software has become very complex, and there seems to be no end in sight. With such complexity, traditional architectures seem to be reaching their limits when dealing with integration problems. An SOA solution can not only be cost effective, by utilizing services that are already built, it can also help in reducing cycle time. A consistent architectural framework with cross-platform integration can not only assist in the rapid development of new applications, it can also assist with Return on Investment (ROI) by making use of legacy data. Companies can generate a competitive advantage through the cooperation and union of management and IT.

Using SOA and looking at IT from a tactical viewpoint, by allowing end users access to as much data as possible, enables businesses to reach their goals for integrating IT functionality. Service Oriented Architectures can prove to be manageable and independent. Management of SOA services can include 1) security by encryption/decryption as required, validation and authorization of requests; 2) dynamic rerouting for fail over or load balancing; 3) move-ability of services for deployment/redeployment anywhere on network to achieve performance and redundancy; 4) metering and logging of data for auditing, etc.; and 5) maintenance of existing service while managing new versions.

By adopting SOA, businesses can become more flexible and agile, which will help them to effectively address many of the challenging issues that face industries, businesses, and IT organizations today and into the future.