SOA And You

Will You Be A Survivor Or Casualty?

By

Don Fowler, MCE 2006

 

 

SOA 101

Let’s be frank. Service Oriented Architecture is being sold every day to executives as a way of lowering costs, increasing company flexibility, and providing a corporate advantage over competition. It is being shown to decision makers to be a viable solution to improve a company’s capability of absorbing other entities as part of mergers and acquisitions.  

 

You are either going to make the mainframe play in the SOA game or be replaced by someone who can make it play. It is not a matter that the mainframe cannot play in SOA; it is more of a matter of do you know how the mainframe can play. And your IT management might know the mainframe can play exceedingly well in SOA. If they don’t, maybe you should tell them before the company executives demand SOA be embraced!  

 

Can you be articulate on what SOA is and how your company adopting SOA increases the mainframe’s value and, in turn, your value?

 

Yes, you can actually increase your value to the organization. SOA, in theory, should insulate and isolate users from aspects of the underlying infrastructure. But someone still has to build and maintain that infrastructure.

 

In a recent Computerworld article on I/T jobs and the serious shortage of people entering the I/T world, the author indicated that kids today view managing computer environments as boring and tactical. Schools haven't done a good job keeping the gig fresh, so since times have changed but the curriculums really haven't, kids are on to the next great thing. Others believe companies have brought on themselves the rejection of I/T curriculum by moving jobs offshore, or having a policy of staff turnover to avoid higher labor costs.    

 

On the other hand companies with short sighted management, who only think in a tactical mode, using cheap, in-experienced I/T staff will eventually have that short-sighted decision making catch up with them.  As stated by a responder to the referenced article, "If there is anyone alive that thinks you can hire a $15-per-hour person to design the next service-oriented architecture that will not only work but will actually create business value, I have a bridge I'd like to show you.”

 

By being a SOA knowledgeable, experienced I/T professional on any computing platform, you can provide a valuable resource to building the underlying infrastructure required in the SOA world. SOA is not the sole property and realm of the desktop/server architect. It encompasses processes, procedures, disciplines, protocols, and expertise that any longtime mainframe professional has mountains of experience.

 

Can you be articulate on how the mainframe plays in SOA? 

 

If you can’t do these things then begin your retirement paperwork or start looking for a job in some third world country that has never heard of SOA.

 

SOA Defined

How can you become an articulate “SOAer”? 

 

There are several ways.

 

One approach would be to go to the Internet and research every important and meaningful paper on the topics of SOA, required skills, and mainframe SOA capabilities. This would probably take you several weeks to just research what papers and documents would provide you the best overall view of SOA and the best descriptions of how the mainframe participates. 

 

Another approach would be to take all of the pre-certification classes (14 or more if you do not have the interdisciplinary skills described next) and then certify in SOA development. SOA does incorporate aspects of and requires knowledge of object-oriented architecture, business process engineering, and systems management disciplines, as well as other methods and models.

 

A more reasonable approach would be for us to provide you with completed research, give you the readers’ digest version of SOA, and then answer any questions you might have.

  

The term service-oriented architecture (SOA [pronounced "es-ō-ā"]) expresses a perspective of software architecture that defines the use of loosely coupled software services to support the requirements of the business processes and software users. In an SOA environment, resources on a network are made available as independent services that can be accessed without knowledge of their underlying platform implementation.

 

A service is a unit of work done by a service provider to achieve desired end results for a service consumer. Both provider and consumer are roles played by software agents on behalf of their owners.

 

SOA Examples

 

SOA is everywhere. Here’s an example of SOA likely to be found in your living room – a CD. If you want to play it, you put your CD into a CD player and it plays for you. The CD player offers a CD playing service. This allows you to replace one CD player with another. You can play the same CD on a portable player or on your high-priced surround-sound system. They both offer the same CD playing service, but the quality of the service is different.

 

The idea of SOA departs significantly from that of object oriented programming, which strongly suggests that you should bind data and programmatic processing together. So, in object oriented programming style, every CD would come with its own player and they are not supposed to be separated. This is the way we have built many software systems.

 

Another example of “service” can be found in something as simple as a set of snow skis.

 

You wish to acquire a new set of snow skis. You could do the following:

1) Read everything you can on making skis. This will involve time to do the reading and expense to obtain the books.   

2) Buy the wood working equipment needed to construct the skis and house the equipment in some kind of workshop. This involves expense and set up time.

3) Buy raw wood stock. Time and expense again.  

4) Build multiple prototype skis to get experience and test the skis for characteristics. More time and expense.

5) Build your dream set of skis and discover which wax is best. More time consumed!

 


 


                                Figure 1 – Real Life SOA

Or more realistically, (see Figure 1) you will look up a good sporting goods store in the yellow pages, drive there and purchase a set of skis from the store’s winter sports department. The department’s salesman recommends the correct wax, which you also purchase at this time. 

 

You have just consumed a service. In fact, you consumed two services in this example - the acquisition of your new skis and the obtaining of the appropriate wax. 

 

The reason that we want someone else to do the work for us (like the ski manufacturer) is that they are experts. Consuming a service is usually cheaper and more effective than doing the work on our own. Most of us realize that we are not smart enough to be expert in everything. The same rule applies to building software systems. We call it "separation of concerns", and it is regarded as a principle of software engineering.

 

If interfaces do not work, systems do not work. Interfacing is also expensive and error-prone for distributed applications. An interface needs to prescribe system behavior, and this is very difficult to implement correctly across different platforms and languages. Remote interfaces are also the slowest part of most distributed applications. Instead of building new interfaces for each application, it makes sense to reuse a few generic ones for all applications.

 

Since we have only a few generic interfaces available, we must express application-specific semantics in messages. We can send any kind of message over our interfaces, but there are a few rules to follow before we can say that any architecture is service oriented.

 

Rule 1 - an SOA must have a mechanism that enables a consumer to discover a service provider under the context of a service sought by the consumer. The mechanism can be really flexible, and it does not have to be a centralized registry.

 

Rule 2 - the messages must be descriptive, rather than instructive, because the service provider is responsible for solving the problem. This is like going to a restaurant: you tell your waiter what you would like to order and your preferences but you don't tell their cook how to cook your dish step by step.

 

Rule 3 - service providers will be unable to understand your request if your messages are not written in a format, structure, and vocabulary that is understood by all parties. Limiting the vocabulary and structure of messages is a necessity for any efficient communication. The more restricted a message is, the easier it is to understand the message, although it comes at the expense of reduced extensibility.

 

Rule 4 - extensibility is vitally important. The world is an ever-changing place and so is any environment in which a software system lives. Those changes demand corresponding changes in the software system, service consumers, providers, and the messages they exchange. If messages are not extensible, consumers and providers will be locked into one particular version of a service.

 

SOA Is Many Things To Many People

 

SOA has many different faces and definitions based on your skills, experiences, and perspectives.

 

Figure 2 illustrates a basic service-oriented architecture as thought of by the business mind.

 

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.

 

Figure 2 – SOA to the Business Mind

 

To the Business Mind, SOA does this:

1.     Ø     A Service Consumer locates a Service Provider

2.     Ø     A Service Provider tells the Consumer what the contract terms are.

3.     Ø     The Consumer agrees and issues the request for service.

4.      Ø      The Provider responds with contracted deliverable. 

 

To the IT Manager’s mind (see Figure 3), SOA is usually a picture of ‘services’ instead of providers and consumers. This is because providers can also be consumers.

 

The manager will also see it as an exploitation of web services and the use of a public directory to locate the providers and their service contracts.  

 


 


Figure 3 – SOA To The I/T Management Mind

 

To the Technical Mind, the steps involved in providing and consuming services are (see Figure 4):

 

1.A service provider describes its service using Web Services Description Language (WSDL). This definition is published to a directory of services. The directory could use Universal Description, Discovery, and Integration (UDDI). Other forms of directories can also be used.

 

2.A service consumer issues one or more queries to the directory to locate a service and determine how to communicate with that service. 

 

3.Part of the WSDL provided by the service provider is passed to the service consumer. This tells the service consumer what the requests and responses are for the service provider.

 

4.The service consumer uses the WSDL to send a request to the service provider.

 

5.The service provider provides the expected response to the service consumer.

 

 


Figure 4 – SOA To The Technical Professional 

 

The directory shown in the slide could be a UDDI registry and more than likely is today. The UDDI registry is intended to eventually serve as a means of "discovering" Web Services described using WSDL. The idea is that the UDDI registry can be searched in various ways to obtain contact information and the Web Services available for various organizations or departments.

 

All the messages shown in the figure are sent using SOAP. (SOAP at one time stood for Simple Object Access Protocol. Now, the letters in the acronym have no particular meaning.) SOAP essentially provides the envelope for sending the Web Services messages.

 

SOAP generally uses HTTP, but other means of connection may be used. HTTP is the familiar connection we all use for the Internet. In fact, it is the pervasiveness of HTTP connections that will help drive the adoption of Web Services.

 

 

SOA In General

SOA contains two pieces.

 

The first is a formalized method for breaking down business applications into services. The method should achieve the arrival at specific pieces of functionality that can be combined with any other function, and be re-used. A further characteristic is that the service should not care about the state* of any other service.  Think of services as building blocks that you can place in any order or location.  

Since we are currently using Web Services as part of the infrastructure. The WEB layers are required to deliver a flexible robust WEB Services environment. The layers of this environment should interoperate to address issues such as manageability, availability and scalability.

 

* State is defined as the current or last-known status, or condition, of a process, transaction, setting, or service. 

 

SOA requirements are measurable against six SOA domain areas:

1)     Business Process & Strategy: Measure the possible impact of SOA on a company’s long-term strategy and near-term initiatives, and documents the problems that SOA is uniquely capable of solving.

2)     Architecture: Assess the company’s overall map of services layers and how these layers could interoperate to address issues such as manageability, availability, and scalability.

3)     Building Blocks: Examine shared applications and data services as well as the company’s overall relationship diagram of services.

4)     Organization & Governance: Any initiative that aims to transform the delivery of IT to the business can succeed only by adopting a genuinely strategic, enterprise-wide, approach to the problem by establishing a best practice organization and governance structure from the outset. SOA is no exception.

5)     Projects & Applications: Identify opportunities for service-enabling legacy applications and determines how a company’s current IT initiatives can serve as starting points for building out integration, application and data service layers.

6)     Cost & Benefits: Justifying an SOA program is not the same as justifying traditional software projects because SOA delivers its benefits in a range of different ways on an enterprise-wide scale. Through innovations made possible by optimizing business process with shared services, SOA offers value opportunities that are disproportionately high when compared to those expected from traditional software projects.

 

 

To address discovery, examination and measuring the above items, both IBM and other Consulting companies have brought fee services and tools to the market.

IBM announced Service Oriented Modeling and Architecture, or SOMA, a service offering from IBM Global Services (IGS) to help enterprise customers "bridge the gap between business and technology."

 

Essentially, through SOMA IBM will help customers implement service-oriented architectures that can transform enterprises to on-demand businesses. An SOA is basically a collection of services that communicate with and collaborate with each other.

The SOMA service involves BPM (business process modeling) and CBM (component business modeling).

 

IBM also provides you a SOA maturity/readiness self-assessment. Taking the IBM SOA assessment will help you better understand:

  • Your company's current state and next steps toward improving your SOA level of adoption described in clear, straight-forward terms.
  • The benefits and advantages you can access right now with your existing integration infrastructure.
  • Recommendations for moving to the next level of SOA maturity to achieve greater business flexibility through greater adoption of service oriented approaches.

You can use the self-assessment to aid in determining the SOA entry point (described below) that might be the correct starring point for your SOA effort.   

 

BEA Systems, Inc. has a Web-based tool that is designed to quantitatively measure and benchmark a company’s baseline for pursuing SOA as its IT strategy.  Called the “The BEA Service-Oriented Architecture (SOA) Readiness Self-Assessment,” the instrument reflects the BEA SOA Practice methodology and is designed to provide IT maturity comparisons against similar companies within key domains.

 

Getting Started With SOA

 

Now, where do you get started?

 

It has found that to improve the successful implementation of SOA, there is a requirement to define and create SOA Governance early in the process. SOA services require improved governance to maintain the level of control needed to support the new Business/IT joint environment. The values provided by SOA Governance are:

 

Realization of the business benefits of SOA

  • Provides business process flexibility
  • Allows improved time to market

Mitigation of business risk

  • Assists in maintaining quality of service
  • Ensures consistency of service

Effectiveness of Business/IT teams

  • Measurement of the right business and IT metrics
  • Improves communication between business and IT

SOA Entry Points

Once Governance is in place, a suggested approach starts with the entry points to fundamental assets of your enterprise—people, information and processes. Governance projects expertise can be sourced from IBM and IBM Business Partners’ SOA practices.

 

These entry points are:

  • The people entry point enables efficiency through interaction and collaboration with application and information services that support business.
  • The process entry point offers tools and services to help streamline business process management for continuous innovation.
  • The information entry point enables access to complex, heterogeneous data sources within your company by delivering information as a service.

 

IBM and Business Partner SOA practices also helps to lay the technical groundwork for integration of people, processes and information by offering entry points for connectivity and reuse. These SOA entry points can help your business pursue SOA at a pace that suits your needs.

 

These entry points are:

  • The connectivity entry point links people, processes and information in your business with a seamless flow of messages and information from virtually anywhere at anytime using anything.
  • The reuse entry point focuses on deriving continued value from previous asset investments, identifying services to be outsourced and designing new services to fill portfolio gaps.

Summary

SOA is here to stay. Start getting familiar with it now!

You can use our WEB Exploitation Board to ask any SOA related questions of both our specialists and your counterparts actually exploiting SOA today. 

 

Definitions:

 

Loosely Coupled: Loose coupling describes an approach where integration interfaces are developed with minimal assumptions between the sending/receiving parties, thus reducing the risk that a change in one application/module will force a change in another application/module.

Service: A “Service” has a definition. This definition consists of:

1)An explicit and detailed narrative definition supported by a low (but not detailed [not implementation specific]) level process model. The narrative definition is in some cases augmented by machine-readable semantic information about the service which facilitates service mediation and consistency checking of an Enterprise Architecture.

2) A set of performance indicators that address measures/performance parameters such as availability (when should members of the organization be able to perform the function), duration (how long should it take to perform the function), rate (how often will the function be performed over a period of time), etc.

3) A linkage to the organization’s information model showing what information the “Service” owns (creates, updates, and deletes) and which information it references and is owned by other “Services”.

4) A listing of known downstream consumers (other “Services” that depend upon its function or information) and the documentation of their requirements.

Software Architecture: The software architecture discipline is centered on the idea of reducing complexity through abstraction and separation of concerns.

Software Services: In the context of Enterprise Architecture (A.K.A. Systems or Organizational Architecture or Modeling) the term “Service” refers to a discretely defined set of contiguous and autonomous business or technical functionality. (This is not to be confused with Web Services which is just one way of implementing the automated aspects of a given business or technical service.)