|
Building a Reliable Intelligent Peripheral/Service Node
Steve Silberstang
AIN has promised an architecture that is amenable to rapid development
and deployment of new services. How to maintain the stringent performance
requirements of a central office service within this rapidly changing environment
is a major challenge in the advancement of AIN.
Intelligent peripherals (IPs) and service nodes (SNs) are advanced intelligent
network elements and must provide the reliability required for deployment and
operation in the central office. Intelligent peripherals (IPs) work in cooperation
with service control points (SCPs) to provide media services in support of call control.
Service nodes combine the functions of the SCP and the IP. When viewed as point nodes in
the network, these elements (IPs and SNs) are subject to failure and require redundant
components and multiple communication paths. Software and procedures in support of central
office reliability are also required.
The Bellcore recommendations call for multiple intelligent peripherals
within the network, each of which is capable of working with multiple
independent service control points (ISCPs) via communication across
multiple data paths. Additionally, each IP is specified as being distributed
across multiple host platforms interconnected by multiple local area
networks. Accordingly, introducing IP capability into an AIN environment
is a major effort, requiring significant investment in hardware, networking,
and supporting software.
The Bellcore philosophy of providing redundant components and data paths to eliminate
single points of failure is a good one. There are, however, many situations in which an
IP or SN provides an ideal mechanism for supporting a service, yet the service does not
warrant so great an investment in infrastructure. Instead, a solution is required in which
the IP or SN provides suitable reliability in and of itself so that it may satisfy the
overall reliability requirements of the service provider and still remain economically sound.
This is certainly true for pilot programs, boutique applications, and offerings from smaller
service providers.
This paper addresses the concerns of building and operating a reliable IP or SN.
It describes the reliability issues associated with redundant components and multiple
communication paths. A brief overview of how the IP and SN are placed within an AIN is
presented, followed by a discussion of reliability with respect to hardware architecture.
This is followed by a related discussion of software architecture. Finally, some IP/SN service
creation concepts are discussed in terms of how a useful and practical IP/SN can be
constructed and operated within an AIN.
The IP/SN within the AIN Architecture
Basically, an intelligent peripheral (IP) supplements the functions of a service
control point (SCP) by providing the media services in support of call processing,
whereas a service node (SN) combines the function of these two network elements. The
difference is that an IP can terminate a voice channel and an SCP cannot. An SCP relies
on the IP for media processing services that require direct interface to the voice network.
Figure 1 shows the IP/SN within the AIN architecture.

Bellcore has defined 1129+ as the mechanism by which a service control
point (SCP) calls upon the service of an intelligent peripheral (IP).
The Bellcore specifications calls for multiple service control points
(SCPs) and multiple intelligent peripherals (IPs), each with multiple
hosts and multiple LANs (see Figure 2).

Capabilities of the Intelligent Peripheral
The intelligent peripheral (IP) must be capable of establishing and maintaining
communication with multiple service control points (SCPs), encoding and decoding rather
complex message formats, interpreting these messages and, finally, performing the requested
service. It must also be capable of switching functions including call setup, transfer
and disconnect and must be able to detect call presentation and abandonment. Additionally,
it must be able to process requests like Play Application which require service logic and
access to databases. Finally, in addition to the capabilities described in the 1129+
interface specification, the intelligent peripheral (IP) needs a substantial set of support
services such as logging, administration, alarm processing, statistics gathering and reporting,
database and network access and the like. Without these support systems the IP is unsuitable
for deployment.
When the functions of the intelligent peripheral are decomposed in this manner, it
becomes clear that there are different reliability requirements for different components.
These basically fall into two categories -- application processing and resource processing.
This is not surprising as many large scale, commercial media processing systems separate these
functions as well.
The application processor supports the call processing logic and access to the databases
and data networks. It communicates with the SCP to initiate transactions, receive instructions
and report results. It also supports data connections to other network elements such as the
service management subsystem (SMS) and other hosts. It encodes and decodes messages and
houses the support services. It is here that the service logic resides, supplementing the
call control functions of the SCP.
The resource processor manages the switching, voice channel facilities and media
processing resources. The media processing normally requires extensive processing power
(DSPs) and storage facilities (disk arrays) to handle the manipulation and storage of media
streams. It may also require switching facilities such as internal time division multiplexor
channels (e.g. SC-bus, PEB) or external switches (e.g. Summa Four, Excel, etc.).
These two elements are very different. They perform different functions and, more
importantly, require very different hardware and software processing elements.
Accordingly, the requirements for making them reliable and providing redundancy are also very
different.
Redundancy for the Application Processor and the Resource Processor
The application processor requires a traditional duplex environment. Two processors are
required, one to back up the other in case of failure. These can operate in a hot standby
or in a load sharing mode. Either application processor must be able to support the entire
workload without undue performance degradation when its partner fails. Each member of the
processing pair must have access to the communication links connecting the IP to cooperating
network elements including the SCPs for which they provide service. Each member must also
have access to certain databases.
Providing a duplex environment for the application processing functions is much easier
and more economical if the media processing services are housed separately. Media
processing facilities can only grow so large before they run into processing bottlenecks
such as channel bandwidth, file access times, card slots, etc. When the media processing
services are separated from the application processing services it becomes feasible to
build an application processor capable of handling the entire processing workload with
independent network and database access.
It is too expensive and overly complex to provide redundancy for the resource processor.
The support and management of the channel connections to the voice network adds significant
complexity. Rather than trying to make the media processor immune to failure, it makes more
sense to spread these resources over multiple, simplex platforms so that the system can
survive the loss of a single processing element without undue impact on the overall system
performance. For this reason, N+1 redundancy for the resource processor is
provided (See Figure 3).

Provisioning resource processors involves a tradeoff between footprint and density.
On one hand, it is best to make resource processors as dense and large as possible
to reduce footprint and cut costs. On the other hand, it is desirable to make the media
processor as granular as possible so that an outage does not cost a large percentage of
the network.
Multiple Control Paths
The second consideration is the control path between the resource processors and
the application processors. Either of the application processors should be able to
communicate with any of the resource processors and it should be possible to take any
component out of service gracefully. To survive the loss of a resource processor
connectivity to either application processor, a multiple control path arrangement is
required (See Figure 4). Multiple data paths permit application processors to share the
resource load. Resources can be switched between application processors automatically
(upon fault detection) or manually (for maintenance activities).

The application processors also require connections to communication networks
and hosts. An IP needs multiple data paths because it must be able to contact multiple
hosts and, in many cases, must be able to survive the loss of a single communication
pathway. It needs to communicate with SCPs to receive instructions and with switching
facilities in order to terminate circuits. It also needs to communicate with other
network elements, such as the SMS (for provisioning) and to internal and external
databases. This requires multiple data paths and alternate routing.

Host processors and networks are also cross-connected to application processors to
support the functions of load balancing, automatic failover, and automatic failback
(see Figure 5). The system should be able to survive the loss of any network component
or any communication link without losing any capacity or service other than the N+1
capacity of the resource processor. The IP must be designed so that components can be
taken out of service and returned to service gracefully for repair and upgrade (see Figure
6).

Software Architecture: Client, Router, Server
The objective is to build an intelligent peripheral in which application processors
drive multiple resource processors. This is supported by a software architecture on the
application processor that will be able to support this physical structure. Basically,
it is a client-router-server scheme in which the client embodies the application logic
and the media processing logic, controls and manages the resources, and drives a state
machine. The intelligent peripheral, by nature of the fact that it is driven by the
1129+ message set, operates as a state machine. This state machine is driven by messages
from the SCP and by trigger events from the network.
The router handles message routing and session management functions. It makes decisions
about where to route traffic and how to balance load.
The servers support both local and remote devices. The local devices include local
file systems, databases, and locally attached devices such as encryption boxes. The remote
devices are networks and hosts. The remote servers must be multi-threaded in order to
handle multiple transactions in flight They must support typical communication functions
such as time-out and late response processing.
In order to provide reliable, continuous service, the intelligent peripheral must
support multiple clients and multiple applications. Applications must operate somewhat
independently of one another so that they have minimum impact on one another. They must
be able to be brought up and taken down independently so that new applications and
application upgrades can be safely installed without taking the entire system out of service.
The intelligent routing function of the software must be able to support
multiple physical connections, the balancing of load between multiple connections,
the detection of loss, and the rerouting of traffic. It must be able to bring links
back in service automatically and manage session control for communication protocols
that are session-oriented (see Figure 7).

It is also important for an intelligent peripheral to be able to support multiple
servers across multiple data paths (see Figure 8). Servers must be able to be taken
up and taken down independently of one another without disruption of service. Multiple
servers must be accommodated for the support of multiple protocols, multiple paths, and
multiple sessions required for intelligent peripherals.

Application Software
The application itself must be able to support online updates, most of which must be
done without any disruption of service. Certainly the system administrator must be
able to introduce new speech without disrupting service. He must be able to change
parameters such as timers and retry limits. The state machine itself must remain up and
running without losing calls when the application logic is changed. Regardless of the
effort put into building software that supports real-time, online updates, inevitably there
are situations that require that a system be taken a out of service to replace hardware,
replace operating systems, or replace any failed components. For this reason, the intelligent
peripheral should be designed so that the resources can be transferred from one application
processor element to its partner so that a single application processor can bear the entire
load. The system can be decommissioned, powered down, taken out or service, and any kind of
upgrade can be installed. The system can then be returned to service without disruption.
Reliability and the Service Creation Model
Factors other than hardware and networking enter into the equation of reliability.
One major factor is the method by which services are created. Reliability can be improved
by building standard, unchanging software components in order to minimize the quantity of
custom application programming.
Service logic for the SCP is created using a service creation environment (SCE) to
build a service logic program (SLP) using service independent building blocks (SIBBs).
The SLP is then deployed to the service logic execution environment (SLEE) running on the
SCP. The service creation environment for an IP should parallel this model.
A service creation tool geared for media processing as opposed to call control is
required to construct processing elements that work in concert with SIBBs to produce
reusable processing elements.
Figure 9 depicts an IP with a separate application processor driving two
voice response units. Calls are distributed by the Call Server to the 1129+ client
application where a Provide Instructions message is constructed. These new calls are
routed to the SCP/TCP/IP remote server for delivery to the SCP. Thereafter, SCP requests
are received by the server and routed to the 1129+ client for decoding and interpretation.
As required, the VRUs are asked to perform media processing on behalf of the application
processor.

Some 1129+ instructions are not fully defined by the 1129+ interface
specifications. Some instructions like Verify User require access to local or
remote subscriber files. The catch all Play Application function is also not well
defined by the interface document. An 1129+ local services module is provided to take
these decoded requests and pass them to appropriate processing facilities. In this way
there is a clear and clean separation of generic 1129+ processing function from site specific
or command specific processing functions. The generic code is not altered from site to site
or from application to application. This tends to increase the reliability of the base IP
product and simplifies regression testing of new cooperating application modules.
Three types of Play Applications are shown in the diagram. Play App #1 shows an application
that requires continued caller interaction. The 1129+ application, the original recipient of
the call, passes the call off to an independent application using the Call Server. The Play
App #1 client, router and server are shown on the right side of Figure 9. This application
can be operated independently of the 1129+ application and can even be housed on its own
processing platform. When it is through with its caller interaction it returns control of
the call to the 1129+ application for response back to the SCP. This model, for example,
could be used to solicit a restricted number from a caller for storage of the local
application database.
Play App #2 is implemented using a local server. Accordingly, no 1129+ generic function
need to be modified. Application requests and responses are passed between the 1129+
application and the local server using a well defined message interface. This, for example,
would be used if a restricted card number had be solicited using 1129+ control
(Play Announcement and Collect Digits) and now needed to be stored locally as a result of a
Play Application request.
Play App #3 is similar to Play App #2 except that in this case, following the example, a
remote server is used to add a number to a restricted list host on an external host.
Conclusion
In summary, it is possible to build intelligent peripherals that are both economical and
have the required reliability for a central office environment. This requires multiple
hardware elements, communication paths and appropriate controlling software. Additionally,
there are other factors that have a profound influence on the reliability of an IP such as
service creation, separation of generic from custom components and the reuse of stabile
software elements. In many ways, these software factors are the more important consideration
given the increased reliability of hardware and the increasing complexity of application
software.
|
|