Skip to main content

Work with Web services in enterprise-wide SOAs, Part 4: Build an SOA middleware application with Rational development tools

Judith Myerson (jmyerson@bellatlantic.net), Systems engineer and architect
Judith M. Myerson is a systems architect and engineer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, security, and project management. You can contact her at jmyerson@bellatlantic.net.

Summary:  Interested in building an enterprise Service-Oriented Architecture (SOA) middleware application? Judith Myerson gives you four possible approaches: top-down, bottom-up, sideway and embedding, while helping you to explore the various tradeoffs of each. You also learn how to determine the maximum number of shared SOAs the middleware application can carry.

Date:  13 May 2005
Level:  Intermediate
Activity:  1313 views

Introduction

In my first article in the series on enterprise-wide SOAs, "Closing enterprise system gaps with multiple SOAs," I talked about the scenarios of closing enterprise system gaps with SOAs by showing how Web services -- data-centric and business logic -- from one or more SOAs can be reused and combined into a composite application within the control of an organization.

In the second article, "Maximize external Web services interoperability," I gave instances of service interoperability without incurring multiple SOA overloads, from simple protocol coexistence to complex interoperability of multiplatforms. And you learned how to change the type of service, location, and platform for each Web service to implement business processes of the originating application.

Part 3 of the series, "Consolidate an SOA as a three-dimensional integration hub to improve speed and reliability," explained how you can consolidate multiple SOAs of Web services and non-Web services as a single, three-dimensional integration hub to connect to various back-end enterprise mainframe systems. In this article, I will explain how you can develop an enterprise SOA middleware application in the three-dimensional space using development tools from IBM® Rational® software. You also learn how Web service components can be combined as a middleware application across multiple SOAs and how they can be developed using these four different approaches:

  • Top-down
  • Bottom-up
  • Sideway
  • Embedding

Let's begin by looking at each approach from both physical and logical perspectives.


Logical and physical Web services

A physical Web service is what is published and found in a repository. After creating a logical Web service, you can proceed to combine a logical Web service with another physical Web service to create a new logical Web service for consumption. This allows you to then combine the resulting logical Web service with another physical or logical Web service. You can also transform a logical Web service into a physical Web service component for publication and discovery in the repository.

You can create an SOA middleware application of logical Web services by defining the relationship between a business model of the middleware application and physical Web service components. To do this, you can use either or both Rational Software Architect and Rational Software Modeler to provide development support for model-driven development with Unified Modeling Language (UML) and to support UML visual modeling design for documenting different views of a system, respectively.


Top-down approach

The top-down approach starts from the top of a pyramid (see Figure 1) with a middleware application of Web services or non-Web services. You need to divide it into smaller Web services or components, and continue the process of dividing at each lower level of the pyramid until the smallest parts or components reach the bottom of the pyramid. All parts of the system integrate and interoperate with one another with no issues or problems.


Figure 1. Top-down approach
Top-down approach

Interoperability, however, can have a different meaning, depending on what the application intends to do. For instance, if the application is data-centric, the interoperability is data-centric. But if the application primarily aims at implementing businesses process, the interoperability is process based.

Now, let's take a look at the top-down approach from a logical perspective. The top-down approach considers the goal of an application that comprises the enterprise SOA middleware application. The goal is grouped into subgoals, each of which is further grouped into smaller units. The process continues until it reaches the bottom of the pyramid of the SOA middleware application.

Obviously, it's important to ensure all subgoals interoperate with one another with no issues or problems. If the goal aims at providing a service or a group of services, service interoperability becomes a top concern. However, if the goal aims at implementing policies and rules, we need to focus on policy interoperability.

In the real world, no such thing as pure data-centric, process-based, or policy interoperability exists. Instead, we typically end up with a mixed bag of data, process, service, and policy interoperability. The portion of the mix for each type of interoperability can vary dynamically, depending on how each Web service is modularized, prioritized, optimized, and maximized for interaction with one another in a loosely coupled manner. It also depends on which platform the Web services run (such as the open Eclipse architecture).


Bottom-up approach

Taking a physical perspective, the bottom-up approach defines a basic Web service component as the smallest part of the foundation. This allows you to combine it with larger elements at the next level, continuing the process until all parts are integrated as a complete middleware application of complex Web services and relationships at the pyramid apex, as shown in Figure 2.


Figure 2. Bottom-up approach
Bottom-up approach

This physical perspective assumes that all parts of the system interoperate with one another with no issues or problems. The meaning of interoperability depends on the type of Web services interoperating with one another: data-centric, business process, or a combination. The portion of the mix of each type of interoperability between applications can vary dynamically.

From a logical perspective, the bottom-up approach starts with subgoals (service components, for example) as the building blocks of the foundation for an enterprise goal of an SOA. You as a developer can, along with analysts, combine them into larger subgoals at the next level. You continue the process until all subgoals are integrated as one enterprise goal for the SOA middleware at the pyramid apex.

It's important to ensure all subgoals will interoperate with one another with no issues or problems. If a subgoal aims at providing a service or a group of services, our top concern is service interoperability among subgoals. However, if a subgoal aims at implementing policies and rules, our concern becomes policy interoperability among subgoals.


Sideway approach

From a physical perspective, the sideway approach (shown in Figure 3) allows you to add or delete Web service components sideway to the top-down or bottom-up approach. This allows you to better respond to changing design and development requirements while keeping the existing middleware intact. The sideway perspective assumes that components to be added will interoperate with existing ones with no problems or issues. It also assumes that components to be deleted will not disrupt the interoperability of remaining components with others.


Figure 3. Sideway approach
Sideway approach

From a logical perspective, the sideway approach allows you to start by adding a subgoal to the logical Web services at the sideway of either the top-down or bottom-up approach. This lets you add, for example, the type of service and location of the new Web services. You can delete a subgoal from the logical Web services using the sideway of either approach.

You can also change a subgoal of a Web service to reuse it for developing various middleware applications. Just make sure when you logically add, delete, or change a subgoal, the interoperability among Web services works without problems or issues in the production environment. You need to ensure running Web services in the test environment comes out with flying colors with no problems or issues.


Embedding approach

From both physical and logical perspectives, the embedded approach is a mix of the previous three approaches two or three levels deep in at least one of the pyramid layers. In the example of the nested, two-level embedding approach, you can embed the top-down approach within the bottom-up approach (see Figure 4) or the other way around. You could also embed the sideway approach within the top-down or bottom-up approach.


Figure 4. Embedding approach
Embedding approach

You can achieve a nested three-level embedded approach. You do this by embedding, for example, the sideway approach within the top-down approach and in turn, the bottom-up approach. You could also embed the top-down approach within the second top-down approach and in turn, the bottom-up approach.


Deciding which approach to use

Developing an SOA middleware application in an open architecture depends, for example, on which of the relational or WebSphere® packages you want to use. As mentioned earlier, you can use Rational Software Architect and Rational Software Modeler to model an enterprise SOA middleware with Web services as objects, relational entities, or a mix of both. You can also use Rational Web Developer for WebSphere Software for Linux™, Windows® 2000, Windows 2003 Server and Windows XP to simplify your development of Web services.


Conclusion

Developing an enterprise SOA middleware requires advance planning about how many SOAs can be grouped together as the middleware application. It's best to communicate with a team of business analysts about the issues of which approaches to use to develop the middleware. You'll find, too, that resolving these issues make developing the enterprise SOA middleware easier. You can develop SOAs that can be reused and interact and integrate with one another for the middleware application. And by deciding in advance which approach or combination of approaches to use, the analyst's job of designing and analyzing the middleware is easier. The analyst has the ability to determine which approach to use and how many SOAs can be grouped together, since the middleware is based on various types of interoperability among them and can incur an enterprise SOA overload.


Resources

About the author

Judith M. Myerson is a systems architect and engineer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, security, and project management. You can contact her at jmyerson@bellatlantic.net.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=83139
ArticleTitle=Work with Web services in enterprise-wide SOAs, Part 4: Build an SOA middleware application with Rational development tools
publish-date=05132005
author1-email=jmyerson@bellatlantic.net
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers