 |
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:
- 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.
- 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.
- 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.
- 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:
- The computers tell each other that they are capable of
supporting APPN and are both network nodes.
- The network nodes bring up control point sessions between
them to exchange APPN control information.
- 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.
- 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:
- EN1 asks NN1 to find LUY and determine what path through the
network should be used.
- NN1 knows that it is the network node server for EN2 and that
EN2 has registered its LUs.
- NN1 determines that the only path available is "EN1 to NN1 to
EN2." It passes this information back to EN1.
- 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:
- EN1 asks NN1 to find EN3 and determine what path through the
network should be used.
- NN1 is not EN3's network node server so it needs to get help
from the other network nodes.
- 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.
- NN2 passes the same request to all of its adjacent network
nodes. NN3 is the only network node adjacent to NN2.
- 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.
- 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.
- EN3 replies that it has links to both NN2 and NN3.
- NN3 tells NN2 "Yes, I have an LU named EN3" and passes along
EN3's link information.
- NN2 passes the information back to NN1.
- 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.
- EN1 can now establish an APPC session to EN3 and start
exchanging information.
- 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
|