IBM Skip to main content
     Home  |  Products & services  |  Support & downloads  |  My account
 Select a country
 Networking
APPN Implementers Workshop
General Information
Introduction to APPN
Working Groups
Press Releases
Acronym List
Meetings
Documents
   
Related links:
  Networking Products
  Networking Software
  Networking Documentation
  Networking Education
  zSeries Networking

 

Introduction to APPN

In the IBM Networking Software Glossary, Advanced Peer-to-Peer Networking (APPN) is defined as:

An extension to SNA featuring (a) greater distributed network control that avoids critical hierarchical dependencies, thereby isolating the effects of single points of failure; (b) dynamic exchange of network topology information to foster ease of connection, reconfiguration, and adaptive route selection; (c) dynamic definition of network resources; and (d) automated resource registration and directory lookup. APPN extends the LU 6.2 peer orientation for end-user services to network control and supports multiple LU types, including LU 2, LU 3, and LU 6.2.

  Introductory Documents

Here are some different (two books, a paper, and a presentation) introductions to APPN:


  Architecture Documents

Architecture is made up of protocols and formats. Go to the Documents section to find out how to get the latest versions of these documents.

APPN Architecture - Protocols

The APPN architecture protocols are described in the following documents:

  • APPN Architecture Reference
  • APPN Branch Extender Architecture Reference
  • APPN Dependent LU Requester Architecture Reference
  • APPN Extended Border Node Architecture Reference
  • APPN High Performance Routing Architecture Reference
  • SNA Management Services Reference
APPN Architecture - Formats

The APPN architecture formats are described in the following documents:

  • SNA Formats
  • SNA/MS Formats
  • APPN MIB; RFC 2455
  • DLUR MIB; RFC 2232
  • EBN MIB; RFC 2457
  • HPR MIB; RFC 2238
  • TRAPS MIB; RFC 2456

Advanced Peer-to-Peer Networking (APPN): An Overview

Steven T. Joyce
John Q. Walker II
January 5, 1993
version 1.02
IBM Networking Systems
APPC Market Enablement
Department AB7, Building 502
P.O. Box 12195
Research Triangle Park, North Carolina USA  27709-2195
Internet:  sjoyce@vnet.ibm.com, johnq@vnet.ibm.com
Telephone:  919-254-4465, 919-254-4414
CompuServe ID:  76711,370

HISTORY

Earlier versions of his paper were published in ConneXions--The Interoperability Report, October 1992, pages 2-9, volume 6, no. 10, and in IBM Personal Systems Technical Solutions, January 1992, pages 67-72, IBM publication number G325-5014-00.

KEYWORDS

APPN, APPC, Advanced Peer-to-Peer Networking, Advanced Program-to-Program Communication, LU 6.2, SNA

INTRODUCTION

For the large base of Advanced Program-to-Program Communication (APPC) application users, a primary concern has been the amount of system configuration required. Using powerful Advanced Peer-to-Peer Networking (APPN) technology, computers dynamically exchange almost all of the information that had to configured by hand. APPN makes it simple to configure and maintain an SNA network.

APPC versus APPN

As their names imply, APPC, Advanced Program-to-Program Communication, deals with programs, while APPN, Advanced Peer-to-Peer Networking, deals with networks. APPC defines the rules of how programs exchange information. These rules do not deal with the details of network setup and routing. It is APPN that defines how APPC traffic gets from one point to another in a network. A reasonable comparison between APPC and APPN is the difference between a person using the telephone and the services the telephone company offers.

APPC
When a person wants to call someone, he looks up the telephone number and dials the telephone. Both parties identify themselves and the exchange of information begins. When the conversation is over, both parties say "good bye" and hang up. This protocol, although informal, is generally accepted and makes it much easier to communicate. APPC provides the same functions and rules, only between application programs instead of people. An application program tells APPC with whom it needs a conversation. APPC starts a conversation between the programs so they can exchange data. When all the data has been exchanged, APPC provides a way for the programs to end the conversation.
APPN
APPN provides networking functions similar to those provided by the telephone companies. After dialing a telephone number, the telephone network routes the call through trunks, switches, branches, and so on. To make the connection, the network takes into consideration what it knows about available routes and current problems. This happens without the caller understanding the details of the network. A person is able to talk on the telephone to another person no matter where they are or no matter how the call was routed. APPN provides these functions for APPC applications and their data. It computes routes for APPC communication through the network, dynamically calculating which route is best. Like the telephone company, APPN's routing is done transparently. APPC applications can't tell whether the communications partner in the APPN network is located in the same computer, one office away, or in another country. Similarly, if someone moves within the same city and takes their phone number, the phone network handles the change with no other user impact.

Network Topology

Systems Network Architecture (SNA) has evolved from a heritage of mainframe computers, communications controllers, and terminals. With the increasing power of workstations and midrange computers, it has become more important to involve those computers in SNA networking. For many years, customers were required to configure networks in a hierarchical design. This hierarchical topology often lacks the flexibility to address varying network geographies, sizes, and workgroup relationships.

APPN meets modern flexibility requirements by allowing any network topology an enterprise wants to create. For example, each networked computer can be directly connected to every other computer (known as a "mesh") or they can all connect through a single routing "hub." Alternatively, some customers will choose to continue to use a hierarchical network design. Mesh, hub, and hierarchical networks, as well as mixtures of these, are all possible using APPN.

KEY CONCEPTS

APPC is usually provided as system software. The APPC software provides two interfaces. The first, a programming interface "at the top," responds to requests from application programs that need to communicate. The second interface, "at the bottom," exchanges data with communications hardware.

A connection between the communications hardware on two computers is called a link. A link is generally started when the computers are powered on and their communications software is activated.

When an application wants to start communicating with another program, it issues an Allocate call to the APPC programming interface. The Allocate call includes the name of the destination, an LU name (which stands for "logical unit name"). The APPC software on each computer is refered to as a logical unit. Thus, the LU name is a way to distinguish between different computers in the network. No two computers in an SNA network have the same LU name. This is similar to people in the United States having unique Social Security numbers as a unique way to identify themselves. One difference is that a computer can have more than one LU at a time.

When an application issues an Allocate call, APPC sets up a session with the named partner LU. A session can be thought of as a pipe used to carry data between a pair of LUs. An LU can have more than one session with a partner LU and can talk to many different partner LUs at once. The new session uses the link already established between the communications hardware in the two computers.

To determine where partner LUs are located in the network. The computers in an APPN network, called nodes, exchange different types of messages. We will refer to these messages as APPN control information. At each node in an APPN network, one LU is selected to be the control point LU. The control point LU is used by APPN to exchange its control information. Normal APPC applications can also use the control point LU.

Dynamic Configuration

APPN networks include three types of computers: low entry networking (LEN) nodes, end nodes (ENs), and network nodes (NNs).

LEN nodes, also known as Type 2.1 nodes, have been available since the early-1980s. The LEN architecture was the first to allow computers in an SNA network to communicate with each other as peers. Examples of IBM platforms currently providing the LEN functions are Networking Services/DOS, VTAM, and the RISC System/6000. Many other software vendors ship LEN platforms, as well, such as Amdahl, Apple, DCA, DEC, Hewlett-Packard, Novell, Rabbit, Sun, Tandem, and Unisys.

End nodes provide all of the functions of LEN nodes but also know how to use the services offered by APPN networks. For example, when end nodes connect to an APPN network they identify themselves, whereas LEN nodes don't. Also, when you start an APPC application, the end node works with the APPN network to find the application's partner. This makes setting up a network using end nodes easier than with LEN nodes.

Network nodes provide all of the functions of end nodes and add two important services. First, network nodes work together to route information from one node to another. Networks nodes providing this intermediate routing form the "backbone" of a network. The second service that network nodes provide is to help LEN and end nodes locate partner LUs in the network. By finding the LUs dynamically, very little system definition is required at each node in the network.

Example 1

The easiest way to learn how APPN works is with several examples of building and using a network. Figure 1 shows a simple APPN network. The lines that connect the computers are communications links.

 *******
 * EN1 *
 *******
    *
    *
 *******
 * NN1 *
 *******
Figure 1: A simple APPN network, with one end node connected a 
          network node.
When the link is activated between end node 1 (EN1) and network node 1 (NN1) several things happen automatically:
  1. The computers tell each other that they are capable of supporting APPN, and tell which type of node they are: end node or network node.
  2. NN1 asks EN1 if it needs a network node server. Whenever an application on an end node needs to find an LU in the network, that end node sends its request to its network node server. Because EN1 does not have a network node server yet, it answers "yes." Although an end node can have connections to more than one node, it can only have one network node server at a time.
  3. Because NN1 will be serving EN1, they establish a pair of control point sessions. These are APPC sessions that will be used to exchange APPN control information. Two sessions are required, because the control point uses each session as a one-way pipe, combined to emulate full-duplex.
  4. EN1 registers any other APPC LUs that are defined at its node. It does this by sending NN1 a formatted record (that is, APPN control information) on the control point sessions.
Once these steps are complete, NN1 now knows how to get to EN1 and also knows what LUs are located there. This same set of exchanges occurs every time a network node and an end node are joined by a communications link and agree to set up the EN-NN server relationship. The accumulation of this information by network nodes is crucial for locating LUs and calculating routes through the network.

Example 2

Different types of information are exchanged between a pair of network nodes.

 *******
 * EN1 *
 *******
    *
    *
 *******        *******        *******
 * NN1 ********** NN2 ********** NN3 *
 *******        *******        *******
Figure 2: A sample APPN network with three network nodes and an 
          end node.
Consider what happens when NN1 activates a link to NN2:
  1. The computers tell each other that they are capable of supporting APPN and are both network nodes.
  2. The network nodes bring up control point sessions between them to exchange APPN control information.
  3. Each network node in an APPN network keeps track of all the other network nodes and the links that connect them. This information is called the network node topology. Once NN1 and NN2 have control point sessions, they begin exchanging what they each know about the current network node topology. In this example, NN1 only knows about itself and its link to NN2. NN2 knows about NN3 and the link that joins them.
  4. Once they have exchanged topology information with one another, they both can construct a complete view of the layout of all the network nodes. However, NN3 must also have a complete network node topology. When a network node learns new topology information it spreads the word to any other network nodes it has links to. NN1 doesn't have any other network node links, so its job is complete. NN2 passes the new information it learned from NN1 on to NN3. NN3 doesn't have any other links to network nodes, so its job is also complete.

To summarize, once all the links are activated in the APPN network, each end node knows about itself (that is, its control point LU and any other LUs located at that computer) and its network node server. Each network node knows about itself, all the end nodes it serves, and the full network node topology--but not all the ENs and LUs in the network.

Before we leave this example, we should mention that network nodes can readily bridge between different types of links. For example, the link between end nodes and network nodes is frequently via a local area network (LAN). Links between network nodes are often wide area network (WAN) connections such as X.25 or SDLC. Network nodes provide this bridging for APPC traffic efficiently and transparently.

Locating Resources

When LEN nodes connect directly to one another, they must have definitions for each partner LU with which they will exchange data. With today's growing and changing networks, keeping those definitions up-to-date can require a significant effort. In an APPN network, end nodes avoid requiring partner definitions by asking a network node to find the partner and the best route to get there. As described above, each end node tells its network node what LUs reside in it. Therefore, by combining the information known by all the network nodes in a network, the location of any LU can be determined. Let's take a look at a few examples:

Example 3

As seen in Figure 3, we will look at how LUs are found when both end nodes have the same network node server.

 *******
 * EN1 *
 *******
    *
    *
 *******
 * NN1 *
 *******
    *
    *
 *******
 * EN2 *
 * LUY *
 *******
Figure 3: An APPN network with two end nodes and one network node.

When an APPC application on EN1 wants to start a conversation with an application on EN2:

  1. EN1 asks NN1 to find LUY and determine what path through the network should be used.
  2. NN1 knows that it is the network node server for EN2 and that EN2 has registered its LUs.
  3. NN1 determines that the only path available is "EN1 to NN1 to EN2." It passes this information back to EN1.
  4. An application in EN1 can now establish an APPC session to LUY and start exchanging information.

Example 4

Figure 4 shows an APPN network with additional complexity. Notice that EN3 has links to two network nodes. Assume that NN3 is the network node server for EN3.

 *******                       *******
 * EN1 *           ************* EN3 *
 *******           *           *******
    *              *              *
    *              *              *
 *******        *******        *******
 * NN1 ********** NN2 ********** NN3 *
 *******        *******        *******
    *
    *
 *******
 * EN2 *
 *******
Figure 4: An APPN network with three network nodes and three 
          end nodes.

When an APPC application on EN1 wants to start a conversation with an application on EN3:

  1. EN1 asks NN1 to find EN3 and determine what path through the network should be used.
  2. NN1 is not EN3's network node server so it needs to get help from the other network nodes.
  3. NN1 sends a request to all of its adjacent network nodes, looking for EN3. This is known as an APPN broadcast. NN2 is the only network node adjacent to NN1.
  4. NN2 passes the same request to all of its adjacent network nodes. NN3 is the only network node adjacent to NN2.
  5. Although EN3 has a link to both NN2 and NN3, NN3 is acting as its network node server. Even though NN2 knows where EN3 is, it will not reply on its behalf.
  6. NN3 asks EN3 what communications links it currently has. This information is important because NN1 must be able to determine all the possible routes through the network to get from EN1 to EN3. The ability to receive and respond to this request is another function the end nodes perform that LEN nodes can't.
  7. EN3 replies that it has links to both NN2 and NN3.
  8. NN3 tells NN2 "Yes, I have an LU named EN3" and passes along EN3's link information.
  9. NN2 passes the information back to NN1.
  10. NN1 now has to compute which of the two routes to get to EN3 is best. The methods for computing routes are described in the next section. NN1 passes the route it selected back to EN1.
  11. EN1 can now establish an APPC session to EN3 and start exchanging information.
  12. An application in EN1 can now establish an APPC session to EN3 and start exchanging information.

APPN networks get much larger than three network nodes. The broadcast that NN1 did to find EN3 would go to every network node in the network. Doing a broadcast every time a session needs to be started could use a considerable amount of network resources. To minimize the number of broadcasts, NN1 remembers where it found EN3. If another of NN1's end nodes asked to talk to EN3, NN1 would go straight to NN3 to verify that EN3 is still there and get any new link information from EN3. This caching of information is useful, because normally the end nodes attached to a single network node will be in some form of workgroup. People in a workgroup frequently run the same kinds of applications to the same destinations. Where this is true, network node broadcasts will seldom be needed.

Route Calculations

The previous examples have used simple networks. For each session request, there were few possible routes through the network. APPN is capable of handling complex networks and providing intelligent, class-of-service routing. Class-of-service routing means that different types of data will each be routed using paths optimized for that specific type. All APPN nodes have several pre-defined classes-of-service, including "batch," "interactive," "batch-secure," "interactive-secure." Batch is used for sending large volumes of data--for example, file transfers. Interactive is normally used for programs that need quick responses. The secure class-of-service definitions give users the option of protecting special data when it is sent through the network.

Which class-of-service to use is determined by the mode name that is passed on the Allocate call. Given a class-of-service, APPN determines the importance of eight values that are defined for every link in the network. These include propagation delay, cost per byte, cost for connect time, effective capacity, and security. Each class-of-service assigns a different numerical importance to these values. For instance, when an application asks APPN for a batch session, APPN will try to find a path through the network that has high capacity and low cost. For an interactive session, APPN will try to minimize the propagation delay. This means avoiding links such as satellite links because of the time it takes to send a signal from the earth, up to a satellite and back. This delay could be enough to prevent acceptable performance. For secure sessions, APPN will only pick paths that are built from secure links. If no secure path is available, the session will not be started.

Also included in the decision is information about each intermediate network node along the route. Each network node maintains a value called its route addition resistance. By altering the default value, network administrators can select which nodes they prefer traffic to go through. Network nodes can also detect that they are under a heavy load and go into a congested state. This means that as long as they are congested, they will not be selected for new sessions through the network.

A network node chooses the lowest class-of-service cost. It does this by first calculating the cost of each of the different routes to the destination it finds out about. This is not a dollar cost, but rather the result of a numerical calculation adding the weight of each node and link along the route being examined. If the lowest cost is offered by more than one route, one of them will be chosen randomly. This distributes the load across equal-cost routes.

Setting Up a Node

Because of the advanced features APPN provides, configuring a node can be as simple as the following:

End nodes
  • Provide a special LU name (known as the control point name), and optionally, any other LU names.
  • Provide your network node's link address. This will allow the end node to bring up a link and automatically get a network node server.
Network nodes
  • Provide a special LU name (the CP name), and optionally, any other LU names.
  • Provide link addresses to connect to any other network nodes.

With just this small amount of definition, nodes throughout the network can communicate with each other. All the necessary information is either dynamically exchanged or is determined from defaults. When you consider these savings at each node in your network, you realize that APPN can have a tremendous impact.

APPN Products

Today, APPN capabilities are available on the following IBM products:

  • OS/400
  • OS/2 (with Extended Services or Networking Services/2)
  • 3174 Establishment Controller
  • System/36
  • DPPX/370.
Each of these products can be configured as an end node or a network node, except the 3174. More recently, APPN capabilities have been announced for these IBM platforms:
  • VTAM
  • RISC System/6000
  • 6611 router.

The APPN end node architecture is open, published by IBM in 1991 as part of publication number SC30-3422-2. Brixton Systems and Systems Strategies, Inc. have announced end node platforms for UNIX systems. Apple Computers, Novell, and Siemens-Nixdorf have also announced their intent to create end node products.

IBM has opened the APPN network node, announcing in 1992 that it would publish the network node architecture and license portable source code. 3Com has already demonstrated their network node implementation; several other companies have announced their interest in exploiting network node functions in their products: Network Equipment Technologies, Novell, and Systems Strategies, Inc.

SUMMARY

Advanced Peer-to-Peer Networking is a major step in SNA's evolution to support distributed applications in customer networks. It allows large, complex networks to be built using many types of cooperating computers. APPN also offers dramatic reductions in the amount of network definition needed to set up each node in a network.

For more information, join us on the APPC forum on CompuServe (reached by entering "GO APPC"). It contains sections for questions on programming and network design, as well as libraries of papers and useful programs with source code.

BIBLIOGRAPHY

IBM Manuals

  • AS/400 Communications: APPN Network User's Guide, IBM publication number SC21-8188. Describes the APPN support provided by the AS/400 system. Also describes APPN concepts and provides information for configuring an APPN network. APPN advanaed considerations and configuration examples are included.
  • Networking Services/2 Installation and Network Administrator's Guide, IBM publication number SC52-1110. Describes the APPN support provided by Networking Services/2 for OS/2 Extended Edition. Also describes APPN concepts and provides information for configuring an APPN network.
  • The APPC Resource Book. IBM document number G325-0055. (If you're doing anything related to APPC, APPN, CPI-C, or LU 6.2, be sure to get this book. It contains extensive information on education, manuals, applications, development tools, and platforms.)

IBM Redbooks

  • APPN Architecture and Product Implementation, IBM publication number GG24-3669. Contains a tutorial on APPN, as well as an overview of the various product implementations.
  • APPN/Subarea Networking Design and Interconnection, IBM publication number GG24-3364. A guide for planning interconnection of APPN and SNA subarea networks.
  • AS/400 Distributed Systems Implementation Guide Volume 3, IBM publication number GG22-9458. Discusses the decision criteria that must be considered when choosing a topology for an AS/400 APPN network.
  • S3/X and AS/400 APPN Nodes Using the SNA/LEN Subarea, IBM publication number GG24-3288. Describes the incorporation of a S/370 SNA subarea into a network comprising APPN network nodes. Intended for systems programmers and systems engineers in the intermediate systems and VTAM/NCP areas.
  • Networking Services/2 Installation, Customization, and Operation, IBM publication number GG24-3662. Provides planning information for IBM SAA Networking Services/2. Contains an extended example on connecting Networking Services/2 and AS/400, with their respective configurations.
  • 3174 APPN Implementation Guide, IBM publication number GG24-3702. Provides guidance on implementing the 3174 APPN functions in various scenarios.
  • AS/400 APPN with PS/2 APPN, 3174 APPN, 5394 and Subarea Networking, IBM publication number GG24-3717. Provides several scenarios of interaction of these nodes including sample definitions and traces.

ACKNOWLEDGEMENTS

Thanks to the following associates for their careful review and comments: Mark Pozefsky, Anne Schick, Wolfgang Singer

ABOUT THE AUTHORS

Steven T. Joyce manages part of the APPC Market Enablement team in the Architecture and Telecommunications organization. He has recently completed managing the planning and testing of the IBM SAA Networking Services/2 product. He joined IBM in Raleigh, North Carolina in 1983, where he was involved with the quality assurance and testing of IBM's office systems. He received a B.S. in Computer Science from North Carolina State University.

John Q. Walker II manages architecture and marketing departments responsible for APPC, CPI-C, and APPN, and recently managed a team developing this software for OS/2. He joined IBM in Rochester, Minnesota in 1978, doing programming and testing for the IBM System/38. Dr. Walker was an architect for the token-ring LAN and editor of the IEEE 802.5 standard. He received a B.S., B.A., and M.S. from Southern Illinois University and a Ph.D. in computer science from the University of North Carolina at Chapel Hill.

TRADEMARKS

IBM (R) is a registered trademark and IBM Operating System/2 (tm) and OS/2 (tm) are trademarks of International Business Machines Corporation.

Last Update: September, 2000

  About IBM  |  Privacy  |  Terms of use  |  Contact