The importance of UNIX in SOA environments

A look inside the functional workings of an SOA solution architecture

These are exciting times in solution architecture—days of Web 2.0, SOA, Web services, mash-ups, and the full integration of technical solutions derived from business models integrating with old and new systems alike. Discover how and why existing systems and applications with which you are already familiar deployed on operating systems that you know well are so critical to the present and future of Web-based computing, particularly in the area of SOA.

Matthew Skamser, Software Consultant, Solution Destination, Inc.

author photoMatthew L. Skamser is an IT consultant and Studio B author with more than 10 years of experience architecting, administering, troubleshooting, and tuning Web applications in enterprise server environments. His clients have included IBM, Lockheed Martin/United States Air Force, and WorldBank. He has multiple IBM Certified Systems Expert certifications and received his bachelor's degree in Computer Information Systems from Northern Arizona University. You can reach Matthew at matt@solutiondestination.com.



05 August 2008

Also available in Chinese

These are exciting times in solution architecture . . . that is, if you embrace the challenges of learning and implementing technologies such as Service-Oriented Architecture (SOA), Web services, mash-ups, portals, and the like. For business executives, project managers, sales execs, and various resource managers, SOA and the myriad of new tools and technologies about which you must make immediate business decisions may seem impossible to keep up with. The goal of this article is to explain how and why existing systems and applications with which you are already familiar deployed on operating systems that you know are so critical to the present and future of Web-based computing, particularly in the area of SOA.

This article provides:

  • A brief history of the UNIX® operating system in enterprise environments.
  • A high-level overview of the IBM SOA.
  • IBM® SOA solution architecture scenarios.
  • Information about implementation components for SOA in UNIX.

The evolution of business and IT

As businesses have evolved from mainframe computing to applications built on open standards platforms and from independent, proprietary, and complex enterprise systems to open, integrated, reusable, services-based, platform-independent systems, it's important not only to understand the vague concepts behind such a model but actually see how systems you're familiar with integrate with this modern-day approach to information technology (IT). In addition, it's extremely helpful to see what software is used on what platforms to deliver on SOA's promises. This is where UNIX comes into play.

Regardless of what the future may bring—virtualization; complete services-, mash-up-, or portlet-based application front ends with shared computing hosting and database environments—somewhere out there you will still have UNIX servers doing what they do best: providing a reliable operating system to host a variety of Web computing needs. This article's high-level explanation of the history of UNIX servers in the enterprise and how important they are to the SOA puzzle drills into and exposes which technologies are used for each SOA implementation and the platforms on which they perform best.


UNIX in the enterprise environment

UNIX was created in the 1970s by AT&T's Bell Laboratories and has gone through design evolutions by both universities and companies. After more than 30 years of use, the UNIX operating system is still regarded as one of the most powerful, versatile, and flexible operating systems in the computer world. Its popularity hinges on its simplicity, open standards design, its ability to run on a wide variety of machines, and its portability.

The bottom line is that UNIX was and is a reliable, secure, multi-user operating system that continues to dominate the enterprise Web- and application-hosting landscape. Many large organizations funded UNIX development platforms, and they remain loyal to the platform to this day. This loyalty is to some extent the result of cost and support.

Many experts agree that UNIX is the operating system of choice for Web hosting, with the only real alternative being Linux®, which IBM and others now are strongly backing.

UNIX and Windows

Microsoft® Windows NT® servers are often considered too proprietary, less secure, less reliable, and more expensive than their UNIX counterparts. Of course, each point can be argued, but no one can argue the fact that many UNIX operating system flavors are free. Similarly, no one can argue the fact that UNIX is open source. As far as security, the results of one report have suggested that an aggregate of UNIX flavors versus Windows in a Web-hosting environment shows that it takes about 16 times longer to hack into a UNIX-based server.

If an enterprise is dependent on Microsoft-based messaging, Microsoft Active Server Pages (ASP), BizTalk® Server, Office Access™, or any other proprietary software, for instance, Windows servers will undoubtedly be a piece of the SOA puzzle that this article reviews, because they are the only choice if you want or need to run such software.


Service-Oriented Architecture

If you're new to SOA, review the following developerWorks document, New to SOA and Web services. This document accurately explains in great detail the foundation of the five entry points to an SOA system that I summarize below.

Entry points

Note that these are "technical" executive summaries. They should help the tech-minded readers who get confused with all the SOA jargon when all they really want to know are the technical details of each entry point along with which software you can use to implement these solutions:

  • People: Dynamic portal/portlet front end, proxy, access managers, and process flows.
  • Information: Managing multiple data sources and harvesting business value from the data.
  • Connectivity: Connecting Web services and existing systems through standard protocols, adapters, and buses.
  • Process: Business process modeling and monitoring along with content management and collaboration.
  • Reuse: Integrating existing applications or new Web services.

Figure 1 illustrates these SOA entry points.

Figure 1. SOA entry points
SOA entry points

The IBM SOA solution architecture

IBM has made great strides in standardizing a common SOA model to better help IT professionals logically understand the multiple components and layers of a true SOA. In Figure 2, you can see five main top-layer components, with the consumers being the system that needs a service provided by the referenced operational systems. These available services are sometimes defined by the consumer through business process models or straight service naming references and sometimes by the provider. As I show below, most of the time, this process is routed through the Enterprise Service Bus (ESB) at the service components layer. This whole process is governed by security and management layers, which I don't discuss here.

Figure 2. IBM SOA solution architecture
IBM SOA solution architecture

As you study the architecture diagrams here, you'll see UNIX-based and UNIX-like (Linux) systems spread through the enterprise. These are labeled with icons representing their corresponding operating systems—a sun for Sun Solaris, a penguin for Linux, and so on. They are at the proxy layer and make up the ESB, and Java™ application servers are also deployed on UNIX systems. Now, you can start to see how UNIX fits in and is a vital part of SOA in most enterprise environments. Although for most server hosting needs you can choose among UNIX, Linux, and Windows, most enterprises use UNIX servers.


IBM SOA solution architecture scenarios

Although there are dozens of patterns and scenarios to use as examples, to keep things simple, I visually demonstrate patters that you may have seen previously discussed in other places. The patterns I use are the Direct, Indirect, External Provider, and External Consumer patterns. The diagrams below assume two organizations within a large enterprise, with one as a primary provider and the other a primary consumer. You also see how SOA scenarios would look with external users, systems, or applications needing to reference the provider services.

Direct exposure

The direct exposure pattern exposes an existing asset as a service with the use of open standards protocols such as SOAP and Web Services Description Language (WSDL). This solution will not likely be aligned with the business processes.

Coupling vs. decoupling

Technically, decoupling means to cause to become separated, disconnected, or divergent. In SOA, it is important to decouple the service interface from the available realization assets in case they are changed or replaced. Coupling essentially locks you into that existing legacy asset, while decoupling allows you to replace service components without affecting the consumer.

As you see in Figure 3, assets are open and directly accessible to the consumer through a Web service. This situation isn't necessarily good, as it takes away from a large part of what SOA is all about—namely, decoupling. In this case, you'll be tied directly to that legacy system or asset. Nonetheless, it is an option that may be available to your organization.

Figure 3. The direct SOA pattern
Direct pattern

Indirect exposure

The indirect exposure pattern connects several existing software functions to realize a service while using a well-planned interoperable service interface solution. This pattern essentially aligns your services with business activities.

Based on which application you need to access as defined by your service definition, you can route this request through the local ESB, providing for a true decoupled SOA solution. In this case, systems and applications are sharing data and services within their own organization, as shown in Figure 4.

Figure 4. The indirect SOA pattern
Indirect pattern

External Provider

The External Provider pattern demonstrates how to outsource a noncritical business function to a consumer accessing one or more third-party services. The enterprise can share services among different organizations within the enterprise.

In this scenario, shown in Figure 5, the consumer has the power, because the solution is based on their service definition and what they need at the time. They may or may not choose to connect to this particular organization's service. This allows great flexibility.

Figure 5. The External Provider pattern
External Provider pattern

External Consumer

The External Consumer patterns allows third parties outside the provider governance domain access to services that the provider serves. In this scenario, shown in Figure 6, the provider has the power, because the provider sets the definition of which services are allowed or opened to the outside world. A benefit to this scenario may be that your organization can host services and assets that they can make available to a business partner.

Figure 6. The External Consumer SOA pattern
External Consumer pattern

For some reason, sales people and most high-level business decision makers sell the "idea" of SOA very well as a sort of magic concept for integrating business goals with technical solutions by using existing platforms, allowing for future growth by using reusable services. The implementation of such magic is where things get a bit trickier.

In all but one of the scenarios you see above, you will be ESB dependent. So, let's take a look at this vital part of the SOA infrastructure and see how UNIX operating systems may be the operating systems of choice for your ESB solution.


Implementation components for SOA in UNIX

From my experience and observation, the least-understood facts regarding implementing SOA in the enterprise are:

  • The software or tools needed at each SOA entry point to make the magic happen.
  • The complexity involved in actual integration of all of the services, systems, reusable assets, and applications residing on different platforms using existing or outdated means.

Integration in SOA is achieved at the service components layer, with the primary concept or tool being an ESB, as shown in Figure 7. The ESB is a vital piece of your SOA infrastructure, as it provides security and virtualization.

Figure 7. The ESB
The ESB

This particular ESB has a demilitarized zone (DMZ) File Transfer Protocol (FTP) server with a security and virus-checking process to correctly validate data, while a file server helps connect multiple systems by sharing data across a shared storage solution and hosts your file-move software for transferring data off and on IBM® WebSphere® MQ queues. IBM WebSphere Business Integration Message Broker allows for secure routing of messages through Publish and Subscribe definitions. WebSphere MQ is the core product at the heart of the ESB in this scenario.

Obstacles

One major obstacle you've faced is allowing Windows and UNIX servers to share and manipulate the same data. Data passing from UNIX-based ESB servers to Windows servers is formatted to the UNIX operating system and vice versa, requiring data conversion. Also, I have yet to see a great Network Attached Storage (NAS), Storage Area Network (SAN), or Samba shared-storage solution that easily and reliably shares data between UNIX and Windows servers. In addition, Windows Messaging platforms do not integrate with UNIX-based messaging software solutions such as WebSphere MQ. These are all challenges important to understand.

Although SOA by definition means integration of various systems, services, and assets regardless of architecture or platform, it still requires actual software solutions like ESB likely deployed on UNIX-based servers. In addition, UNIX and Linux-based servers have an edge in shared storage solutions and sharing data with existing UNIX-based Web server environments, which still dominate the Web landscape. Although UNIX and Linux are not the only alternatives, it is important to understand their advantages in integrating such typically non-conforming systems. In this, you will see why UNIX or UNIX-like operating systems are still highly needed for the future of the Web-based computing.


Summary

My goal in this article was to give you a high-level explanation of where we have come from regarding UNIX-based server environments in our enterprises as well as where we're going in regard to SOA while building a foundation of knowledge about SOA solution patterns and architecture. I even drilled down to specific implementations of such solutions, explaining why UNIX-based systems are beneficial given some of the challenges that we face when given the task of connecting all these services and systems.

I hope you now have a decent understanding of where your organization is and where you may be going in relation to SOA and why UNIX-based servers are still critical pieces of the overall puzzle.

Resources

Learn

Get products and technologies

  • Download IBM product evaluation versions and get your hands on application development tools and middleware products from DB2®, Lotus®, Rational®, Tivoli®, and WebSphere.

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into AIX and Unix on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=AIX and UNIX
ArticleID=327878
ArticleTitle=The importance of UNIX in SOA environments
publish-date=08052008