Archives
 
 
 
  Special
 
 
 
  About Us
 
 
 

Newsletter
Free E-mail Newsletter from BYTE.com

 
    
           
Visit the home page Browse the four-year online archive Download platform-neutral CPU/FPU benchmarks Find information for advertisers, authors, vendors, subscribers

ArticlesThe Muddle in the Middle


April 1996 / State Of The Art / The Muddle in the Middle

Middleware's everywhere as developers look for ways to streamline client/server systems

John R. Rymer

Middleware n 1: stuff that links clients and servers (helpful, but vague) 2: the slash in client/server (not helpful, but clever) 3: software to manage communications with databases (clearer, but do all client/server applications involve database transactions?).

Such vague definitions of middleware are becoming a problem. Not for you? Think again. Because distributed-computing architectures affect nearly all commercial applications, middleware has become the key technology to build or buy. Your choice of middleware may be more important than your choice of OSes. It makes sense: You want developers to do their thing independently of hardware, and you want to simplify operations with a central point of administration. Corporations should be striving to establish a strategic middleware platform to support their varied application needs now and through the millennium. Yet without a clear definition of terms, each new application project will result in the purchase of a new middleware platform. The consequence will be a variety of redundant, incomplete, and even contradictory products.

Most organizations already have a middleware muddle on their hands. Having purchased SQL middleware from database vendors in the early 1990s, many found disappointment in the limited scalability, performance, and range of functions these products offered. Organizations are repeating this scenario by using new development tools (e.g., Forté and Open Environment's Entera) without proper evaluation of the middleware those tools incorporate.

The changing nature of middleware compounds th is confusion. Middleware products are evolving from specialized system-level facilities to broad-based environments supporting many types of applications. Those low-level interfaces and protocols that only rocket-scientist network programmers could master are now turning into application-level products that mere mortals can navigate successfully. Middleware has evolved from products such as IBM's APPC, an interface to the LU6.2 protocol, to today's application-level products. Now, middleware is evolving from products that perform only one function--such as remote SQL access--to those capable of many functions.

Defining Middleware

Can't define middleware, but you know it when you see it? Pop-quiz time. Is Information Builders' EDA/SQL middleware? OK, that one's easy. What about Novell NetWare? Hmm. How about the Internet's World Wide Web? Is that middleware? Well, maybe a definition wouldn't hurt.

Middleware is software that allows elements of applications to interoperate across network links, despite differences in underlying communications protocols, system architectures, OSes, databases, and other application services.

The key parts of this definition are "elements of applications," "interoperate," and "despite differences." First, middleware isn't meant specifically to link physical clients and servers (that's the job of connectivity protocols such as TCP/IP). Rather, middleware seeks to link the logical elements within applications. Second, the paramount goal of middleware is any-to-any interoperability. Application modules interoperate using a variety of methods, including file exchanges and sharing, shared databases, transactions, and remote procedure calls (RPCs). Third, middleware shields applications from diversity in the underlying environment. Middleware helps your applications operate happily in any environment.

We can recognize EDA/SQL in this definition. We also recognize messaging products such as IBM's MQSeries transactional middleware. However, using this definition, we can also answer the question about NetWare. It is, in a way, middleware. NetWare can link logical application elements. It does so by supporting network file operations. Novell's new Net2000 API initiative will also support database operations, transactions, and other modes of interaction. However, NetWare is still hardware-dependent, so it fails the test about overcoming differences in underlying system architectures.

We can, however, conclude that the Web is middleware. The Web isn't a private network technology--at least not yet. But it provides the means to link application elements, supports file-based interoperability, and is independent of underlying platforms. That's one of its most popular features and one reason some think of the Web as the ultimate in middleware.

Our definition will help us identify middleware, but identifying is not enough. After all, EDA/SQL and the Web have similarities in intent and function but many differences in structure and intent. To be a ble to select the appropriate products, we need to dive a bit deeper into our definition of middleware and determine what specific features distinguish one middleware product from another.

The Components of Middleware

All middleware products have the same basic components. To understand those components, we'll tack on a sentence to the end of the basic definition of middleware that was introduced earlier: Middleware achieves its purposes by providing application-level protocols and formats, access to application services, support for one or more application models, and administrative facilities (see the figure "Components of Middleware" ).

Middleware products address all three phases of applications development: development, execution, and deployment (including management). Of course, most of us are interested in the execution environment. Over the last several years, middleware has expanded in this area.

In the early days, middleware was almost tota lly communications software. For example, PeerLogic's Pipes platform, Intersolv's recently acquired SequeLink, and Software AG's Entire Broker are almost pure communications products. Now, however, the execution environment includes application services (e.g., transaction monitors, SQL optimization and routing, and database replication). The trend during the last year has been toward bundling: Vendors bundle communications and other products and integrate them with application services.

Communications Services

Still, middleware starts with communications services. The communications protocols and formats of middleware describe interactions among application components. By contrast, TCP/IP, Novell's IPX/SPX, and IBM's Systems Network Architecture (SNA) protocols are network transport protocols, not to be confused with middleware. Middleware communications services do use these and other networking protocols. Middleware provides three basic communications services: formats and protocols , protocol services, and control services.

A format describes the structure of a message that will travel across the wire, including the syntax required to create that structure. A protocol defines the on-the-wire representation of the message. An RPC's format and protocol are different from a remote SQL access product's format and protocol. The trend in middleware is toward supporting more than one protocol and format within the same product.

Protocol services add some useful features to basic communications. These can include marshaling and unmarshaling of messages, platform data-format translations (e.g., big-endian and little-endian), message compression, transport protocol translation, and message encryption.

Not all middleware products provide the same services. Marshaling and unmarshaling is a fundamental service, but the other ones are optional. Still, some of the protocol services, like compression or encryption, may be vital to your operation.

Control services support one or more communications model or style of distributed processing. Each model differs in the way it structures communications among the elements of applications. Control services provide the signaling protocols, queues, message binding, and other services required to support each communications model.

The 10 Communications Models

There are 10 communications models that middleware control services support: datagram, one-shot, query, asymmetric, and symmetric models, each in network-dependent and network-independent flavors ( see the table ). A key characteristic of each model is the need for an immediately available network link. Network-independent models have message-queuing facilities that effectively allow postponing the completion of an interaction if no link is available. Benefits can include sharing of network resources and deferral of communications until low-cost hours.

Each communications model specifies a style of interaction between two (or more) application elements. For example, the datagram is one-way: An application sends out a message without expecting any response. This model is useful for applications that monitor devices, systems, and other applications.

By contrast, in the one-shot model, an application issues a single request message and expects a single message back. For example, a formula and some values might go to a fast calculation server, and the result would return.

The query model is similar to the one-shot model, except that the sender expects more than one response. For example, a database query triggers a chain of messages bearing the results set.

The asymmetric and symmetric models can raise the throughput of messages by allowing applications to send and receive as swiftly as bandwidth availability permits. In asymmetric models, incoming and outgoing messages share a single communications channel, so the module can send or receive but not both at the same time. With symmetric models, incoming and outgoing me ssages have their own channels. Both models must track the context of a given interaction within a flurry of messages.

What about synchronous and asynchronous communications? You should forget about them. At one time, they represented a real distinction among middleware products. However, in recent years, vendors of so-called synchronous technologies have added asynchronous capabilities to their products. Also, vendors of asynchronous products have added support for synchronous modes of communication. Therefore, this distinction has for the most part disappeared.

Evaluating middleware using the 10 communications models listed here is more productive.

What's Your Name and Who Are You?

The execution environment of middleware also includes core services. These support the operation of middleware products in several ways.

The most important core services are logical name management and security. Name-management services, often called directories , map the logi cal names of application modules to their physical addresses in the environment. Security services control access to application modules. For example, the Open Software Foundation's (OSF) Distributed Computing Environment (DCE) contains naming and directory services and a security service.

Other core services include distributed memory management, gateways to external systems, and server-to-server communications services that can segment large environments into domains.

The trend is to let the user choose those core services needed rather than bundle them with a product. For example, Open Horizon's Connection lets the user choose from among several security and directory products. So does Entire Broker. Both products use available APIs to directory and security to give the user a choice.

Applications with Personality

The execution environment also includes application services that support the guts of application functions, such as SQL database access, transaction proces sing, E-mail distribution, work flow, and document management. Application services give middleware a personality stamp that users recognize (e.g., submitting a customer order or confirming inventory).

Middleware today offers 10 such personalities, which we call application models ( see the table ). The application models appear in order from the most concrete, at the top, to the most abstract, at the bottom.

Store-and-forward and publish-and-subscribe are models that users will probably recognize. Store-and-forward is the basis for E-mail. Publish-and-subscribe is an up-and-coming model used in systems integration. The two models are related. The difference: In the subscribe half of publish-and-subscribe, application modules "pull" data in from other modules. In store-and-forward (and the publish half of publish-and-subscribe), modules solely push data out to the environment.

Work flow is also a model that users readily recognize. Work flow employs conditio ns--and satisfaction of conditions--to route information and responsibility from one application to another.

Distributed transactions handle a database update using the customary two-phase commit protocol to complete the task.

Remote file access is a familiar task, something users do every day. The same is becoming true of remote database access, though many users have little experience with it. Data warehousing will introduce remote database access to many users.

The last five models are probably all mysterious to the average user but are familiar--and helpful--to applications developers. Distributed object interaction and access to remote functions are closely related. While the developer employs an object-oriented design with distributed objects, he or she uses good old subroutines with remote function access .

Distributed database management and database replication are both used for synchronizing distributed data. However, in distributed database management, the developer crea tes a single logical view of distributed databases. In database replication, the developer synchronizes multiple copies of one database.

In the distribution-of-display model, the developer employs a terminal data stream to create a remote representation of a host-based application's presentation functions. It's just like being there.

What? No messaging? Nope: We don't include it because this term (like synchronous and asynchronous) has become too vague to be useful in distinguishing middleware products.

In a "one from column A, one from column B" style, messaging products generally implement the store-and-forward application model using the one-shot/net-work-dependent communications model. By using the 10 application models and the 10 communications models in this way, you can reveal any middleware product's true nature.

Middleware support for applications development ranges from full-blown development environments to naked APIs. That support will determine how transparent distribu ted computing will be to applications developers. Usually, APIs will force developers to master message binding, memory management, and other mechanics of distributed processing. Interface definition languages (IDLs) hide some of these mechanics. Object request brokers (ORBs) such as IBM's SOMobjects, Sun's NEO, and Iona's Orbix automate message binding. IDLs conceal the underlying mechanics of distributed processing, not the fact that application components are on a network.

Multi in the Middle

Until recently, a middleware product would offer just one application model. DCE gave users the remote function access model, but not remote SQL access. Oracle's SQL*Net supported remote database access, but not database replication or distribution of display. With single-function middleware, each new application might need a new middleware product. The result: middleware hell for corporate technology planners. Multiple products mean high support costs and low leverage of technology investment s.

This began to change about two years ago, with the introduction of multifunction middleware products. The first was the TransAccess product line from Netwise. Netwise was a leading RPC environment vendor and specialized in linking LANs and PCs to CICS and mainframe COBOL programs. In 1994, Netwise added a SQL-access product built on top of its RPC. The result: support for two of the 10 application models in the same middleware environment.

More recently, the EDA/SQL product line has added support for the OSF DCE RPC and API. Sybase is porting its OpenClient remote database access API to its new store-and-forward middleware environment (EMA).

The trend toward multifunction middleware will continue. Software vendors will start competing on combinations of functions. Multifunction middleware is good news for user organizations because it promotes leverage. Now, users can benefit from a single middleware environment that supports a variety of application models.

Don't Diddle wi th the Middle

Another factor that may be contributing to the confusion about middleware is the specialization inherent in the very structure of corporate IS organizations: Database administrators think about SQL. Developers concentrate on tools. Deployment specialists work with network and administration systems. Yet middleware cuts across all these specialties, demanding new coordination of specialists.

To foster this cooperation, IS organizations must find a common ground for their specialists on middleware. Agreeing on terminology is helpful. Examining the specific components of middleware ensures that consideration and comparison of new products will be rational and based on fact, not vagueness.


WHERE TO FIND

Forté Software, Inc.
Oakland, CA
Phone:   (510) 869-3400
Fax:     (510) 834-1508

IBM
Armonk, NY
Phone:   (800) 426-3333 or (914) 765-1900

Information Builders, Inc.
New York, NY
Phone:   (800) 969-4636 or (212) 736-4433
Fax:     (212) 268-7470

Intersolv, Inc.
Rockville, MD
Phone:   (800) 547-4000 or (301) 838-5000
Fax:     (301) 231-7813

IONA Technologies, Inc.
Marlborough, MA
Phone:   (800) 672-4948 or (508) 460-6868
Fax:     (508) 460-6099

Netwise, Inc.
Boulder, CO
Phone:   (800) 733-7722 or (303) 442-8280
Fax:     (303) 442-3798

Open Environment Corp.
Boston, MA
Phone:   (800) 562-5969 or (617) 562-0900
Fax:     (617) 562-0038

PeerLogic, Inc.
San Francisco, CA
Phone:   (800) 733-7601 or (415) 626-4545
Fax:     (415) 626-4710

Software AG of North America, Inc.
Reston, VA
Phone:   (800) 423-2227 or (703) 860-5050
Fax:     (703) 391-6731

Mi ddleware Communications Models

Ten communications models that middleware supports, with sample
applications for each.


COMMUNICATIONS          NETWORK-DEPENDENT           NETWORK-INDEPENDENT
MODELS                  EXAMPLES                    EXAMPLES



Datagram

Single outbound         Network device              Paging system
message                 status notification


One-shot

Single outbound         Network-based               File transfer
message; single         calculation server
response


Query

Single outbound         LAN-based database          Web search
message; chained        query
responses


Asymmetric

Multiple outbound       Customer-service            Web-based publishing
messages and            call center                 application
responses; single
session


Symmetric

Multiple outbound       High-throughput             High-throughput Web
messages and            reservation system          publishing application
responses; in two
dedicated
channels

10 Application Models of Middleware

The 10 application models of middleware, arranged from the most
concrete (at the top) to the most abstract, from a user perspective.

1  Store-and-forward/publish-and-subscribe

     Directs message to recipient either by pushing data out
     (store-and-forward and publish) or by pulling it in (subscribe).

2  Work flow

     Directs message to recipients according to either conditions or
     policies.

3  Distributed transactions

     Manages simultaneous updates to multiple databases under transaction
     control.

4  Remote file access

     Redirects file requests across a network.

5  Remote database access

     Transmits SQL requests across network to servers.

6  Distributed object interaction

     Supports messaging between objects across a network.

7  Access to remote functions

     Redirects program call to a function across a network.

8  Distributed database management

     Maintains a single local database across multiple physical databases.

9  Database replication

     Synchronizes copies of a single database.

10  Distribution of display

     Makes presentation functions of an application available to a remote
     client.

Components of Middleware

illustration_link (7 Kbytes)

Middleware was once communications so ftware only. However, today's middleware includes development tools, an execution environment, and deployment facilities.

Of these three components, the execution environment is typically the primary thrust of middleware. Deployment facilities and development tools are often either rudimentary or absent.


John R. Rymer is vice president and senior analyst at Giga Information Group (Cambridge, MA). You can reach him on-line at jrymer@gigasd.com .

Up to the State Of The Art section contentsGo to previous article: Go to next article: Middle(ware) Management
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it is theoretical--and no language better exemplifies this than C++.

more...

BYTE Digest

BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin, and dozens of other CMP publications—bringing you critical news and information about wireless communication, computer security, software development, embedded systems, and more!

Find out more

BYTE.com Store

BYTE CD-ROM
NOW, on one CD-ROM, you can instantly access more than 8 years of BYTE.
 
The Best of BYTE Volume 1: Programming Languages
The Best of BYTE
Volume 1: Programming Languages
In this issue of Best of BYTE, we bring together some of the leading programming language designers and implementors...

Copyright © 2005 CMP Media LLC, Privacy Policy, Your California Privacy rights, Terms of Service
Site comments: webmaster@byte.com
SDMG Web Sites: BYTE.com, C/C++ Users Journal, Dr. Dobb's Journal, MSDN Magazine, New Architect, SD Expo, SD Magazine, Sys Admin, The Perl Journal, UnixReview.com, Windows Developer Network