
TCP/IP and Message Based Architectures


By Dave Wallenberg




The focus of this article is to discuss the value and design of Message
Based Architectures using TCP/IP in the Client/Server environments of OS/2
and Unix.


There has been, still is, and will probably continue to be an outburst of
computer system downsizing.  This movement requires a whole new way of de-
signing and crafting enterprise systems that protect investments, extend the
life of applications, and provide a catalyst for application improvements.
This approach enables organizations to develop software and application
systems that are:

        More feature rich and flexible
     
        Able to communicate with local or remote systems
     
        Able to provide event driven functionality

        Able to operate in asynchronous modes
     
        Independent and protected from changing communication methods
     
        Able to operate in OLTP and real-time constraints
     
        Positioned to communicate with any other application or new data
        source and more...
     


The TCP/IP Connection.....


TCP/IP is increasing in popularity and acceptance making this protocol a
de facto (or soon to be) standard.  ALL modern operating systems support
this connectivity either directly or as an optional add-on.  I prefer the
concept of "optional add-on" so that what you buy is what you pay for and
use.  This method  also enables you to select from a different vendor, thus
creating competition.  As a result, competing vendors are kept in "check",
and are somewhat forced to improve and create feature rich software.  Major
operating systems that support all TCP/IP facets and tools are:

        All Unix implementations.  Some versions of Unix offer TCP/IP as an
        add-on option.  Most Unix implementations have TCP/IP shipped directly
        with the operating system and provide the full spectrum of TCP/IP
        connectivity and development tools. (Examples: AIX, SunOS, HP/UX and
        SCO Unix).
      
        IBM OS/2. IBM provides TCP/IP and all related tools as an optional
        add-on. Other options include the X-Windows and TCP/IP development
        tools providing the full scope of TCP/IP abilities.  Multiple proto-
        col stacks and 16-bit to 32-bit integration are handled well in OS/2.
        IBM also provides APPC as an alternative protocol for OS/2.
      
        MS Windows NT.  Microsoft provides the base TCP/IP and Telnet within
        NT. Development tools and many other Internet tools are optional. In-
        tegration of 16-bit and 32-bit software under NT is not smooth or
        transparent.
      
        MS DOS/Windows.  TCP/IP can be obtained from a number of vendors and
        installs as a combination of device drivers and TSR's.  Be careful,
        and aware of conflicting interrupts and the ability to carry multiple
        protocol stacks (TCP/IP, NetBIOS, IPX, and more) in the DOS/Windows
        environment.
     
        IBM OS/MVS.  TCP/IP for peer-to-peer communications is available and
        used. In addition to TCP/IP, IBM offers APPC as an alternative (and
        preferred) protocol.  APPC uses the SNA architecture.
     
        IBM OS/400.  Exactly the same offerings as IBM OS/MVS.



Making The Connection: Distributed versus Hosted......


Inherent with and a by-product of downsizing is widespread use of intelli-
gent workstations.  Unlike a dumb-terminal in a "hosted" environment where
all data and processing effort is housed on one or more machines, the in-
telligent workstation enables:

        Data to be distributed at the workstation or on a local server
        closer to where the action is.
     
        Processing to be distributed and placed on the workstation for
        purposes of user presentation, off-load and balancing of effort,
        graphical solutions, data acquisition, and real-time needs.
     
        Reuse of intelligent workstations for productivity tools such as
        word processing, spreadsheet, E-mail, and the like in addition to
        numerous enterprise business applications.
     
        Computing activity to be organized into one or more Local Area Net-
        works.  Each LAN or workstation on the LAN is capable of performing
        activities of unrelated business.

There are technical and organizational advantages and disadvantages to either
distributed or hosted solutions.  Currently, there are more monetary benefits
to distributed solutions than hosted.  And money talks.



The Case For Message Based Systems - An Overview.....


Todays Client/Server and distributed processing requires the ability to com-
municate and send information from one application to another.  These appli-
cations can be located on the same computer or perhaps on a computer in
another state or country.  These applications may reside on different plat-
forms such as OS/2 or Unix.  This is where Inter-Process and Peer-to-Peer
communications comes in.  These communication techniques enable applications
to "send" and "receive" information in the form of messages.  A message re-
presents a block of data uniquely identified by message type.  The appli-
cation merely "creates", populates, and "sends" the message to the expectant
application - wherever it may be.  The expectant application merely "receives",
processes, and "destroys" the message.  It's that simple.


The middle-ware that provides the infrastructure and message delivery is an
elaborate collection of:

        OS independent APIs which the application uses to communicate with
        the middleware.  The middleware software uses this as well.

        Middleware components that assist in routing, logging, broadcasting,
        queueing, error handling, and monitoring activity.
     
        I/O modules which provide peer-to-peer communications such as TCP/IP
        sockets, APPC, EHLLAPI (avoid this), NetBIOS, and the like.

        Dynamic external data representation that provides automatic conver-
        sion of data where un-like chipsets are used (ie. Intel vs SPARC).
        This addresses Big versus Little Endian issues of integer values.


OS/2 and Unix provide the operating system services and communication methods
in order to build such an enterprise-wide solution.  DOS/Windows falls short
of being capable of providing the necessary OS services.  Why?  Because DOS
was developed as a short term and low-end solution and Windows is an "envi-
ronment" - not an operating system.

The Message Based Architecture plays a huge roll in extending the ability
and functionality of applications.  This approach takes advantage of ALL
modern day operating system and communications technologies.  The beauty in
the message based approach is that it can provide:

        Application independence from how communications are handled and what
        communication type is used.  As DCE becomes more widely and success-
        fully used, the I/O modules can convert over to new communications
        technologies without impacting the application or the core message
        architecture.
     
        Automatic error handling and retry operations.
     
        The necessary performance for even the most strict and intense ap-
        plication demands.  OLTP, real-time, data acquisition, object ori-
        ented, and more.
     
        Complete asynchronous communication between applications making the
        application more event driven.
     
        Exercises multithreading, IPC, and modern techniques all to the ad-
        vantage of the application.
     
        The ability to be integrated into all batch and GUI interfaces.
        (X-Windows, Motif, OS/2 PM, and more.)


The most common TCP/IP communication method used is the "socket" which pro-
vides programs a full-duplex and bidirectional information stream.  Unlike
TCP/UDP and the use of "datagrams", TCP/IP "sockets" provide full retry and
guaranteed delivery of data between the sender and receiver.  This is also
true for IBM's APPC "session level" communication available for OS/2 and most
all other platforms.  From a systems programming perspective, using and pro-
gramming "sockets" is easier than APPC.  Mainly due to configuration details
required of APPC.  Both APPC and TCP/IP Sockets fall into the Application
Layer of the OSI model.

The Internet Protocol (IP) is gaining considerable interest.  However, the IP
address is only 32 bits.  Seems like alot, and it is, but due to the method
by which Internet addresses are "carved up" and given out, the complete spec-
trum of 32-bit IP addresses should be exhausted by sometime in 1997.  At
that time, a 64-bit addressing algorithm will be introduced.

The problem: All current TCP/IP software and necessary hardware (Routers,
intelligent Hubs, and Ethernet adapter cards) are NOT designed for 64-bit IP
addressing.  The amount and method of Internet address "carving" is lavish
and somewhat unsparing.  The IP internal header itself is designed to store
just 32 bits.  Looks like one more Ethernet header encapsulation is in order
to  provide a seamless transition between 32 and 64-bit coexistence.

As an example, IBM was given a full IP address capable of handling up to 16
million unique IP addresses.  This is 67 times more than the total number of
employees at IBM.   Go figure.  IBM is not alone.  Several other operations,
military, governmental, and R&D organizations have requested and been granted
this range as well.   This is not, however, a crisis situation.  Sometime
later in the last half of this decade, the computer industry will make yet
another, perhaps costly, adjustment.

                                 #*#*#*#

  TCP/IP FOR OS/2Ŀ
                                                                          
    IBM has bundled the TCP/IP software into three basic components that  
    require OS/2 2.x:                                                     
                                                                          
    TCP/IP BASE KIT.  This provides all the prominent TCP/IP tools        
    that are found in the Unix environment.  These include Telnet,        
    SLIP, FTP, PING, and much more. (IBM PN 65G1220)                      
    Component cost is $200.00.                                            
                                                 
                                                                          
    TCP/IP DEVELOPMENT KIT.  This provides all the necessary building     
    blocks for programming TCP/IP with the use of "sockets", and sup-     
    port for SUN RPC, NCS RPC, and limited Kerberos capability.  There    
    is also a Socket library for REXX called REXXSOCK from os2.cdrom.     
    com.  File name is os2/ibm/ews/rxsock.zip. (IBM PN 65G1240)           
    Component cost is $500.00                                             
                                                 
                                                                          
    TCP/IP X-WINDOWS SERVER KIT. Like the ability to execute DOS/Win      
    applications seamlessly in OS/2, this component brings the ability    
    to also run X-Windows and Motif applications seamlessly on the OS/2   
    desktop. (IBM PN 65G1232)                                             
    Component cost is $200.00                                             
                                                  
                                                                          
    It is worth noting that the TCP/IP components are well integrated     
    into OS/2's WorkPlace Shell.  TCP/IP configuration, setup, and many   
    TCP/IP tools take advantage of OS/2's object oriented abilities.      
                                                                          
    Tools such as Telnet, SLIP, FTP, and PING offer both the graphical    
    PM interface as well as command line VIO character based interfaces.  
                                                                          
  
     

About the Author:


Mr. Wallenberg is a senior consultant with Computer Sciences Corporation and
specializes in OS/2 and Unix based software development.  Having 14 years of
industry background, he has enjoyed working with most operating systems and
computer platforms. He gives his fullest attention to highly versatile and
true multi-tasking operating systems such as OS/2 and Unix.

He is also the developer of the OS/2 resource monitoring program, PMPatrol.

Mr. Wallenberg can be contacted via CompuServe (72702,2320) or the Internet
(72702.2320@CompuServe.COM).


     GLOSSARYĿ
                                                                        

        API             Application Program Interface.  A set of
                        conventions that define how a service is
                        invoked through a software package.

        Asynchronous    Usually refers to a data transmission that is
                        synchronized by a transmission 'start' bit at
                        the beginning of a transmission and one or more
                        'stop' bits at the end.

        APPC            IBM networking protocol that lets one program
                        communicate with another while the programs are
                        on separate computers. The computers are
                        networked.

        Client/Server   This is the way network services are described
                        including the user processes (programs) of
                        those services.


        DCE             Distributed Computing Environment. An architec-
                        ture of standard programming interfaces for
                        distributing applications, transparently, across
                        networks of heterogeneous computers.

        FTP             File Transfer Protocol.  The Internet protocol
                        and program used to transfer files between hosts.

        IP              Internet Protocol.  The network layer protocol
                        for the Internet protocol suite. I provides the
                        basic service of getting packets to their desti-
                        nation.

        Kerberos        A security system developed in the MIT Project
                        Athena.  It is based on encryption.

        PING            Packet Internet groper. A program used to
                        test reachability of destinations by sending
                        an echo request and waiting for a reply.


        SLIP            Serial Line IP (Internet Protocol) - used to
                        run IP over serial lines (telephone circuits)
                        or RS-232 cables interconnecting two systems.

        SNA             Systems Network Architecture - IBM's proprietary
                        network architecture.

        TCP             Transmission Control Protocol.  This is the key
                        transport protocol in the Internet suite of
                        protocols.  It provides reliable, connection-
                        oriented, full-duplex streams.  Uses IP for
                        packet delivery, thus TCP/IP.

        X-Windows       This is the TCP/IP based network-oriented window
                        system.


APPC, AIX, OS/2, OS/MVS, OS/400 and SNA are registered trademarks of IBM Corp.
MS-DOS, MS Windows, Windows NT are registered trademarks of Microsoft Corp.
HP/UX is a trademark of the Hewlett-Packard Corporation
SunOS is a trademark of Sun Microsystems Inc.
SCO Unix is a trademark of SCO, Inc, (Santa Cruz Operation)
UNIX is a trademark of Unix Systems Laboratories, Inc.
