You are on page 1of 13

US007949905B2

(12) Ulllted States Patent (10) Patent N0.: US 7,949,905 B2


Sharma et a]. (45) Date of Patent: May 24, 2011

(54) APPARATUS AND METHOD FOR 2004/0044757 A1 3/2004 Baker


DYNAMICALLY DETECTING IMPROPER 2i: g0?
a asarka1~t~~~l~
l e a .~~~~~~~~~~~~~~~. ~~. . . . ..
gggggggATIoN DATA PROVIDED IN A 2009/0070474 Al * 3/2009 Aura et al. .................. .. 709/228
FOREIGN PATENT DOCUMENTS
(75) Inventors: Manish Sharma, Bangalore (IN); Olavi JP 2006_ 134259 5/2006
A. Kamppari, Lower GWynedd, PA W0 W0 2004/ 109977 A1 12/2004
US ' W. R
gUsg sse I] M assey L6'ttOwn PA OTHER PUBLICATIONS
(73) A _ H HI lI Wikipedia, Dynamic Host Con?guration Protocol, Sep. 22, 2007,
ss1gnee: oneywe nternationa nc., 13 pages
Mornstown NJ (Us) Supplementary European Search Report dated Dec. 17, 2010 in con
(*) Notice Subject to any disclaimer the term ofthis nection with European Patent Application No. EP 08 83 7852.
patent is extended or adjusted under 35 * cited by examiner
U.S.C. 154(b) by 602 days.
Primary Examiner * Joshua A Lohn
(21) APP1-NO-1 11/973,535 74 Arm 8), A g@112, or Firm 4 Munck Carter, LLP

(22) Filed: Oct. 9, 2007 (57) ABSTRACT


(65) Prior Publication Data A system (such as a process control system or communication
system) includes one or more sources of con?guration data
Us 2009/0094491A1 Apr 9 2009 (such as one or more BootP or DHCP servers). A testing
(51) Int Cl mechanism transmits one or more requests for con?guration
G081? 1/00 (2006 01) data over a network. One or more sources of con?guration
(52) U 5 Cl ' 714/49 714/25 data may respond to the requests, such as by providing con
(58) Fi'el'd 0 """" "714/25 ?guration data (like IP addresses or NTP parameters) to the
' 709/229 testing mechanism. The testing mechanism uses the response
See a lication ?le for Com lete searchhisto (s) to identify problems With the sources of con?guration
pp p 1y data. For example, if responses are received from multiple
(56) References Cited sources of con?guration data, the testing mechanism could
generate a noti?cation indicating that a problem exists when
US. PATENT DOCUMENTS the responses contain inconsistent con?guration data. Also, if
5,790,397 A * 8/1998 Bissett et a1 ,,,,,,,,,,,,,,,, n 700/2 no responses are received, the testing mechanism could gen
7,254,630 B1 * 8/2007 Daude et a1. .. 709/224 erate a noti?cation indicating that a problem exists since no
g; i 1 gtippit a1~ ~~ ~~~~ ~~ con?guration data has been received. Any other or additional
, , c m1 . . . . . . . . . . . . . . . . ..

2003/0005097 A1* 1/2003 Barnard et al. .. 709/223 Problems Could also be detected
2003/0l774l2 Al * 9/2003 Todd ............................. .. 714/25
2003/0208589 A1 11/2003 Yamamoto 24 Claims, 4 Drawing Sheets

10o

11\8a 11\Bb 1 1 (1b


SERVER SERVER REMOTE
114a STAT|ON(S)

J__Tl-
122
\
OPERATOR
STATION(S)

12431 | i | I 116
~ CONFIG
106D @ZERVER 106a-q | OPERATOR
| |
125" SERVER(S) _ _ _, SERVER STAT|0N(S) N114:
El
~ 1 a @r" 1. . I I
112% | | l l
104av- CONTROLLER CONTROLLER ~1o4b

120
US. Patent May 24, 2011 Sheet 1 014 US 7,949,905 B2

100

118a 11st) /
\ \ 114b
\
SERVER SERVER REMOTE
114a STAT|ON(S)

J___FL
122
\
OPERATOR
STAT|ON(S)
1248/\ I
1 . ( .1151
106b\ SERVER 106a/\
CONFIG OPERATOR

_I
p | | " ' ' l

b12413
104a\/~ CONTROLLER CONTROLLER ~104b

| l
I \ I
120
102a~ SENSORS ACTUATORS ~102b

FIG. 1
US. Patent May 24, 2011 Sheet 2 of4 US 7,949,905 B2

EWGUQE 2

FiGURE 3

WGURE
U S Patent May 24, 2011 Sheet 3 of4 US 7,949,905 B2
US 7,949,905 B2
1 2
APPARATUS AND METHOD FOR determination that a response from a single source of con
DYNAMICALLY DETECTING IMPROPER ?guration data has been received.
CONFIGURATION DATA PROVIDED IN A In additional particular embodiments, the noti?cation is
NETWORK generated indicating that a problem is detected based on a
determination that no responses from any sources of con?gu
TECHNICAL FIELD ration data have been received.
In a second embodiment, an apparatus includes at least one
This disclosure relates generally to communication net network interface con?gured to transmit one or more requests
works and more speci?cally to an apparatus and method for for con?guration data over a network and to receive one or
dynamically detecting improper con?guration data provided more responses from one or more sources of con?guration
in a network. data. Each of the responses contains con?guration data. The
apparatus also includes at least one processor con?gured to
BACKGROUND generate a noti?cation indicating whether a problem associ
ated with the one or more sources of con?guration data is
detected based on the one or more responses.
Various communication networks, such as data networks,
often dynamically provide con?guration data to various In a third embodiment, a computer program is embodied on
devices operating in the networks. For example, a bootstrap a computer readable medium. The computer program
includes computer readable program code for initiating trans
protocol (BootP) server is often used to distribute network
mission of one or more requests for con?guration data over a
addresses and other information to devices operating in a 20 network. The computer program also includes computer
network. As a particular example, processing facilities are readable program code for receiving one or more responses.
often managed using process control systems. Example pro The one or more responses are provided by one or more
cessing facilities include manufacturing plants, chemical sources of con?guration data, and each of the responses con
plants, crude oil re?neries, and ore processing plants. Among tains con?guration data. The computer program further
other operations, process control systems typically manage 25 includes computer readable program code for generating a
the use of motors, valves, and other industrial equipment in noti?cation indicating whether a problem associated with the
the processing facilities. In a conventional process control one or more sources of con?guration data is detected based on
system, a BootP server can be used to distribute Internet the one or more responses.
Protocol (IP) addresses and other con?guration data to con Other technical features may be readily apparent to one
trollers and other devices in the process control system. 30 skilled in the art from the following ?gures, descriptions, and
claims.
SUMMARY
BRIEF DESCRIPTION OF THE DRAWINGS
This disclosure provides an apparatus and method for
dynamically detecting improper con?guration data provided 35 For a more complete understanding of this disclosure, ref
in a network. erence is now made to the following description, taken in
In a ?rst embodiment, a method includes transmitting one conjunction with the accompanying drawings, in which:
or more requests for con?guration data over a network. The FIG. 1 illustrates an example process control system in
method also includes receiving one or more responses from which improper con?guration data is detected;
one or more sources of con?guration data, where each of the 40 FIGS. 2 through 7 illustrate example graphical displays
responses contains con?guration data. In addition, the associated with the detection of improper con?guration data
method includes generating a noti?cation indicating whether provided in a network; and
a problem associated with the one or more sources of con FIG. 8 illustrates an example method for detecting
?guration data is detected based on the one or more improper con?guration data provided in a network.
responses. 45
In particular embodiments, multiple responses from mul DETAILED DESCRIPTION
tiple sources of con?guration data are received. Also, the
noti?cation is generated indicating a problem is detected FIG. 1 illustrates an example process control system 100 in
based on a determination that the con?guration data in one which improper con?guration data is detected. The embodi
response from one source of con?guration data is inconsistent 50 ment of the process control system 100 shown in FIG. 1 is for
with the con?guration data in another response from another illustration only. Other embodiments of the process control
source of con?guration data. The responses could, for system 100 may be used without departing from the scope of
example, contain different Internet Protocol (IP) addresses this disclosure.
and/ or different Network Timing Protocol (NTP) parameters. In this example embodiment, the process control system
In other particular embodiments, multiple responses from 55 100 includes various components that facilitate production or
multiple sources of con?guration data are received. Also, the processing of at least one product or material, such as one or
noti?cation is generated indicating that no problem is more sensors 102a and one or more actuators 10219. The
detected based on a determination that the con?guration data sensors 102a and actuators 102b represent components in a
in one response from one source of con?guration data is process or production system that may perform any of a wide
consistent with the con?guration data in another response 60 variety of functions. For example, the sensors 102a could
from another source of con?guration data. measure a wide variety of characteristics in the process con
In yet other particular embodiments, the noti?cation is trol system 100, such as temperature, pressure, or ?ow rate.
generated indicating that a problem is detected based on a Also, the actuators 1021) can perform a wide variety of opera
determination that multiple responses from multiple sources tions that alter the characteristics being monitored by the
of con?guration data have been received. 65 sensors 10211. As particular examples, the actuators 1021)
In still other particular embodiments, the noti?cation is could represent heaters, motors, catalytic crackers, or valves.
generated indicating that no problem is detected based on a The sensors 102a and actuators 1021) could represent any
US 7,949,905 B2
3 4
other or additional components in any suitable process or tion devices providing direct user access to the controllers
production system. Each of the sensors 102a includes any 10411-10419. As particular examples, the operator stations
suitable structure for measuring one or more characteristics in 114a-114c could allow users to review the operational history
a process or production system. Each of the actuators 1021) of the sensors 102a and actuators 1021) using information
includes any suitable structure for operating on or affecting collected by the controllers 10411-10419 and/or the servers
conditions in a process or production system. 10611-1061). The operator stations 114a-114c could also allow
Two controllers 10411-10419 are coupled to the sensors 102a the users to adjust the operation of the sensors 102a, actuators
and actuators 10219. The controllers 10411-10419 may, among 102b, controllers 10411-1041), or servers 106a-106b. In addi
other things, use the measurements from the sensors 10211 to tion, the operator stations 114a-114c could receive and dis
control the operation of the actuators 10219. For example, the play warnings, alerts, or other messages or displays generated
controllers 10411-10419 could receive measurement data from by the controllers 10411-1041) or the servers 106a-106b. Each
the sensors 102a and use the measurement data to generate of the operator stations 114a-114c includes any hardware,
control signals for the actuators 1021). Each of the controllers software, ?rmware, or combination thereof for supporting
10411-10419 includes any hardware, software, ?rmware, or user access and control of the system 100. In particular
combination thereof for interacting with the sensors 102a and embodiments, each of the operator stations 114a-114c could
controlling the actuators 10219. The controllers 10411-10419 represent a computing device running a MICROSOFT WIN
could, for example, represent multivariable controllers or DOWS operating system.
other types of controllers that implement control logic (such In this example, at least one of the operator stations 11419 is
as logic associating sensor measurement data to actuator con remote from the servers 10611-1061). The remote station is
trol signals) to operate. As a particular example, each of the 20 coupled to the servers 106a-106b through a network 116, and
controllers 10411-10419 could represent a computing device the remote station could communicate with the network 116
running a MICROSOFT WINDOWS operating system. over a wired or wireless connection. The network 116 facili
Two servers 106a-106b are coupled to the controllers tates communication between various components in the sys
10411-1041). The servers 106a-106b perform various func tem 100. For example, the network 116 may communicate
tions to support the operation and control of the controllers 25 Internet Protocol (IP) packets, frame relay frames, Asynchro
10411-10419, sensors 102a, and actuators 10219. For example, nous Transfer Mode (ATM) cells, or other suitable informa
the servers 106a-106b could log information collected or tion between network addresses. The network 116 may
generated by the controllers 10411-10419, such as measure include one or more local area networks (LANs), metropoli
ment data from the sensors 10211 or control signals for the tan area networks (MANs), wide area networks (WANs), all
actuators 10219. The servers 106a-106b could also execute 30 or a portion of a global network such as the Internet, or any
applications that control the operation of the controllers other communication system or systems at one or more loca
104a-104b, thereby controlling the operation of the actuators tions.
10219. In addition, the servers 106a-106b could provide secure In this example, the system 100 includes two additional
access to the controllers 10411-10419. servers 11811-1181). The servers 11811-11819 execute various
In some embodiments, the servers 106a-106b may repre 35 applications to control the overall operation of the system
sent a redundant pair of servers. For example, one server 1 0611 100. For example, the system 100 could be used in a process
could operate as a primary server and communicate with the ing or production plant or other facility, and the servers 118a
controllers 10411-1041). The other server 1061) could act as a 118b could execute applications used to control the plant or
backup server that maintains synchroniZation with the pri other facility. As particular examples, the servers 11811-11819
mary server 106a and that takes over operations if and when 40 could execute applications such as enterprise resource plan
the primary server 106a becomes unavailable. Each of the ning (ERP), manufacturing execution system (MES), or any
servers 106a-106b may repeatedly switch between the pri other or additional plant or process control applications. Each
mary and secondary roles as operations in the system 100 of the servers 11811-11819 includes any hardware, software,
occur over time. ?rmware, or combination thereof for controlling the overall
Each of the servers 106a-106b includes any hardware, 45 operation of the system 100.
software, ?rmware, or combination thereof for providing As shown in FIG. 1, the system 100 includes various single
access to, control of, or operations related to the controllers networks 120 and 122 and redundant networks 12411-12419
10411-1041). For example, each ofthe servers 106a-106b may that support communication between components in the sys
include one or more processors 108, one or more memories tem 100. Each ofthese networks 120, 122, 12411-12419 repre
1 1 0 storing instructions and data used, generated, or collected 50 sents any suitable network or combination of networks facili
by the processor(s) 108, and one or more network interfaces tating communication between components in the system
112. As a particular example, each of the servers 106a-106b 100. As particular examples, the network 120 could represent
could represent a computing device running a MICROSOFT an Ethernet network, an electrical signal network (such as a
WINDOWS operating system. Also, as a particular example, HART or FOUNDATION FIELDBUS network), a pneu
the network interfaces 112 could include one or more Ether 55 matic control signal network, or any other or additional type
net interfaces. The one or more processors 108 in each of the of network. Also, the network 122 could represent an Ethernet
servers 106a-106b could execute any suitable instructions, network, and each of the networks 12411-12419 could represent
such as by executing an EXPERION PKS application from a redundant pair of Ethernet networks.
HONEYWELL INTERNATIONAL INC. One or more con?guration servers 126 are also present in
One or more operator stations 114a-114b are coupled to 60 the process control system 100. The con?guration servers 126
the servers 10611-1061), and one or more operator stations distribute con?guration data to other devices in the process
1140 are coupled to the controllers 10411-1041). The operator control system 100. For example, a con?guration server 126
stations 114a-114b represent computing or communication could monitor communications on a network and detect
devices providing user access to the servers 106a-106b, requests for con?guration data. As a particular example, the
which could then provide user access to the controllers 104a 65 con?guration server 126 could monitor communications on
104b (and possibly the sensors 102a and actuators 10219). The the network 1241) to detect requests for IP address resolutions.
operator stations 114c represent computing or communica The con?guration server 126 can also provide the requested
US 7,949,905 B2
5 6
con?guration data to the appropriate devices, such as by knowledge. This could also occur when a users computing
providing an IP network address and/or Network Timing device is coupled to a network in the system 100 and includes
Protocol (NTP) con?guration data to a requesting device (like a BootP or DHCP server. In addition, different releases of
a controller). Each con?guration server 126 includes any applications executed in the process control system 100 may
hardware, software, ?rmware, or combination thereof for provide different versions of BootP or DHCP servers, and the
providing con?guration data to one or more components in different versions of the BootP or DHCP servers may operate
the system 100. As particular examples, each con?guration in incompatible ways.
server 126 could represent a bootstrap protocol (BootP) In accordance with this disclosure, a con?guration moni
server or a dynamic host con?guration protocol (DHCP) toring tool 128 can be provided on one or more components in
server, although any other or additional protocol(s) could be the system 100. The tool 128 could, for example, be imple
used to request and/ or provide con?guration data. In this mented on, executed by, or otherwise provided by the sec
document, the phrase con?guration data refers to data pro ondary or backup server in a redundant server pair (such as
vided to a component to con?gure that component in some server 1061) in this example), although the tool 128 could
manner, including addressing information (such as network actually reside on multiple components (such as on both
addresses), network timing data, and other data. servers 106a-106b). Among other things, the tool 128 may
In general, any number of con?guration servers 126 could repeatedly send out a request for con?guration data onto a
be present in the process control system 100. In some embodi network, such as by broadcasting an IP address resolution
ments, it may be desired that a single con?guration server 126 request on the network 1241). Zero, one, or multiple con?gu
provide all con?guration data to components in the system ration servers 126 may receive the request and respond with
100. In other embodiments, it may be desired that multiple 20 appropriate con?guration data. The tool 128 may collect and
con?guration servers 126, such as a pair of con?guration analyZe any responses from the con?guration servers 126 to
servers 126, provide con?guration data to components in the determine if a problem exists in the process control system
system 100. Whatever the expected or desired arrangement, 100. As particular examples, the tool 128 could indicate that
however, there may arise problems with one or more con?gu no problems are present when a single con?guration server
ration servers 126 in the system 100. For example, there may 25 126 responds to a request. The tool 128 could also generate an
be cases where multiple con?guration servers 126 are present alert, error message, or other noti?cation when no con?gura
in the system 100, such as when a con?guration server 126 is tion servers 126 respond, when multiple con?guration servers
inadvertently added to the system 100. 126 respond, or when multiple con?guration servers 126
In these or other situations, one or more con?guration respond with different con?guration data.
servers 126 could provide con?icting or incorrect con?gura 30 In some embodiments, the tool 128 could transmit multiple
tion data to a component in the system 100. For example, a requests and collect responses to those requests before ana
controller could receive the wrong network address from one lyZing the responses and determining if an error is present.
con?guration server 126, while an operator of the system 100 This may be useful, for example, when a con?guration server
expected the controller to receive its network address from a 126 does not or cannot respond to an initial request from the
different con?guration server 126. As a particular example, a 35 tool 128 (such as when the con?guration server 126 was busy
request for con?guration data could be made when a device performing other actions or the ?rst request was lost due to
(such as a controller) boots from power up or reboots while network congestion). In particular embodiments, the number
power is applied. While these circumstances may seem to be of requests sent and the time interval between requests could
controlled, a power failure could cause an unexpected reboot, be established or controlled by a user. Also, the operation of
followed by a new request for con?guration data. If an inap 40 the tool 128 could be continuous or intermittent. The tool 128
propriate con?guration server 126 exists and responds before could, for example, operate continuously or at speci?ed inter
the correct con?guration server 126, this may result in vals of time. In particular embodiments, the tool 128 could
improper operation of the system 100, including loss of operate as a WINDOWS service, be manually executed, or be
expected communications in the system 100. As another scheduled as a periodic task.
example, if different DHCP servers are assigned different 45 The use of the tool 128 may provide various bene?ts in the
ranges of IP addresses, the different DHCP servers could process control system 100. For example, the tool 128 may
provide different IP addresses to requesting devices, making help to identify abnormal or undesirable situations involving
communications random or not at all successful in the system one or more con?guration servers 126 in the process control
100. As yet another example, a con?guration server 126 could system 100. Among other things, this may help to avoid
go o?line in the system 100, such as due to a power failure or 50 problems caused by con?guration servers 126 providing
other problem. This could prevent a controller or other com incorrect or con?ictin g con?guration data to components in
ponent from obtaining necessary con?guration data. the system 100. This may also allow appropriate personnel to
These or other types of situations could lead to various take corrective action (such as disabling or recon?guring one
problems in the process control system 100. For example, this or more of the con?guration servers 126) before problems
could lead to a loss of control or a loss of view over a con 55 with components in the system 100 actually occur, such as
troller and may require a reboot of the controller (and even a before incorrect con?guration data is provided to a controller
reboot of the controller may not resolve this problem). As a in the system 100.
particular example, problems may occur during the ?ash Additional details regarding the use and operation of the
reprogramming of controllers in the process control system tool 128 are provided below. The tool 128 includes any hard
100, where the problems are caused by con?guration servers 60 ware, software, ?rmware, or combination thereof for receiv
126 providing incorrect con?guration data to a controller ing and analyZing con?guration data to identify one or more
being reprogrammed. improper conditions associated with the con?guration data.
The presence of these or other types of situations in the The tool 128 could, for example, represent a software appli
process control system 100 may not even be known to an cation executed by one or more computing devices.
operator of the system 100. This could occur, for example, 65 Although FIG. 1 illustrates one example of a process con
when an application executed in the process control system trol system 100 in which improper con?guration data is
100 includes a BootP or DHCP server without the operators detected, various changes may be made to FIG. 1. For
US 7,949,905 B2
7 8
example, a control system could include any number of sen specify a device index value not in use by other compo
sors, actuators, controllers, servers, operator stations, net nents. While the device index value here is limited to
Works, and con?guration monitoring tools. Also, the makeup betWeen one and ?fty, this is an example only. Also, a con
and arrangement of the process control system 100 is for ?guration server 126 could operate Without requiring a
illustration only. Components could be added, omitted, com 5 device index value from the tool 128, and the text box 204
bined, or placed in any other suitable con?guration according could be omitted.
to particular needs. As a particular example, the con?guration The text box 206 alloWs a user to specify a time interval
server(s) 126 may reside at any suitable location(s) in the betWeen transmissions of con?guration data requests by the
system 100, and a con?guration server 126 may reside Within tool 128.As noted above, the tool 128 could transmit multiple
another component in the system 100 (such as Within an 10
requests and collect responses to those multiple requests
operator station, server, or other device). In addition, FIG. 1 before analyZing the responses during a single analysis of the
illustrates one operational environment in Which a con?gu
system 100. The time interval value in the text box 206
ration monitoring mechanism can be used to detect improper
con?guration data. The con?guration monitoring mechanism identi?es the amount of time betWeen transmissions of the
could be used in any other suitable device or system, includ requests. This time interval value could also represent the
ing other process control systems and non-process control amount of time that the tool 128 Waits to receive responses
systems (such as in data netWorks or other communication from any con?guration servers 126 after the transmission of a
networks). request by the tool 128 (although this type of time-out or other
FIGS. 2 through 7 illustrate example graphical displays value could be speci?ed in any other suitable manner). In
associated With the detection of improper con?guration data 20 some embodiments, the text box 206 may be inaccessible to
provided in a netWork. The embodiments of the graphical the user When the user places a value of one in the text box 202
displays shoWn in FIGS. 2 through 7 are for illustration only. (indicating that only one request Will be transmitted). While
Other graphical displays or other mechanisms could be used the time interval value here is limited to betWeen tWo and
to interact With a user Without departing from the scope of this ?fteen seconds, this is an example only.
disclosure. Also, for ease of explanation, the graphical dis 25 The checkbox 208 alloWs a user to control Whether
plays shoWn in FIGS. 2 through 7 are described With respect machine names of responding con?guration servers 126 are
to the con?guration monitoring tool 128 operating in the displayed to the user. For example, after con?guration data is
process control system 100 of FIG. 1. The graphical displays requested by the tool 128, the tool 128 may receive responses
could be used With any suitable con?guration monitoring tool from one or multiple con?guration servers 126. Each con
operating in any suitable process control or non-process con 30 ?guration server 126 may be identi?ed by its netWork
trol system or netWork. address, such as an IP address, at the tool 128. HoWever, a
As shoWn in FIG. 2, a display 200 can be used to con?gure machine name assigned to the one or more responding con
the con?guration monitoring tool 128. For example, text ?guration servers 126 may or may not be identi?ed and dis
boxes 202-206 and a checkbox 208 alloW a user to set differ played by the tool 128 (depending on Whether the checkbox
ent options associated With the con?guration monitoring tool 35 208 is selected). Resolving netWork addresses into machine
128. In this example, the text box 202 alloWs a user to specify names could be a lengthy process, such as When numerous
a number of scans performed by the tool 128. The number con?guration servers 126 send responses to the tool 128. As a
of scans value represents the number of times that a request result, the user can be given the option of skipping the name
for con?guration data is transmitted by the tool 128 over a resolution operation via the checkbox 208.
netWork during a single scanning routine. As a particular 40 A scan button 210 can be selected by a user to initiate a
example, the number of scans could be set to three, Which scanning routine by the tool 128. For example, selection of
causes the tool 128 to transmit three requests and collect the scan button 210 could cause the tool 128 to begin trans
responses to those requests before the responses are analyZed. mitting requests for con?guration data onto a netWork and
Among other things, this may help to capture a response from collecting and analyZing any responses. During a single scan
a con?guration server 126 that Was busy When a prior request 45 ning routine, the tool 128 could transmit the number of
Was received by that con?guration server 126. While the requests identi?ed in the text box 202. The requests may
number of scans value here is limited to betWeen one and contain the value identi?ed in the text box 204, and the
?ve, this is an example only. requests may be separated by a time interval identi?ed in the
The text box 204 alloWs a user to specify a device index text box 206. The tool 128 could also analyZe any responses
value associated With the tool 128. The device index value 50 received from one or more con?guration servers 126 and
can be used by the con?guration server(s) 126 to generate generate a display (such as one of the displays shoWn in FIGS.
con?guration data for the tool 128. For example, the base 3 through 7) to identify the results of the analysis.
netWork address for a group of components in the system 100 A progress bar 212 indicates the extent to Which a scanning
could be 10.1.2.0, and a con?guration server 126 could be routine has been completed. During the scanning routine, text
con?gured to use this base address. When a component 55 can be inserted under the progress bar to identify the current
requests con?guration data, the component may include its operation being performed by the tool 128. For example, the
device index value in an IP address resolution request or text could state Scanning Pass xx (Where xx represents the
other request. The con?guration server 126 could receive this number of requests transmitted by the tool 128 up to that point
request, identify the components device index value, and during the scanning routine). The text could also state Please
add the components device index value to the last digit in Wait . . . resolving machine names during machine name
the base address to generate the netWork address for that resolution. Any other or additional text could be displayed to
component. As a particular example, the tool 128 could have the user during the scanning routine.
a device index value of ?ve, and the con?guration server An exit button 214 alloWs a user to stop the current scan
126 could provide the tool 128 With con?guration data that ning routine being performed by the tool 128 and/or to exit the
includes a netWork address of 10.1.2.5 (10.1.2.0+5). The 65 tool 128. When the exit button 214 is selected, the tool 128
text box 204 alloWs a user to manually con?gure the device may or may not display any results obtained thus far during a
index value of the tool 128, Which could alloW the user to scanning routine to the user.
US 7,949,905 B2
9 10
Depending on the responses collected by the con?guration con?guration servers 126 are desired and used in the system
monitoring tool 128 during a scanning routine, the tool 128 100. In these cases, the multiple con?guration servers 126
can generate an appropriate display identifying the scanning should distribute consistent con?guration data. As shoWn in
results for a user. Examples of these displays are shoWn in the table 406 of FIG. 4, the con?guration data from the tWo
FIGS. 3 through 7. However, the con?guration monitoring 5 con?guration servers 126 is consistent. Namely, in this
tool 128 could report the results of a scanning routine in any example, the tWo con?guration servers 126 provide consis
other suitable manner, Which may or may not include the tent netWork addresses and primary and secondary NTP
generation of a graphical display for a user. server con?guration data. Because the con?guration data is
If the con?guration monitoring tool 128 identi?es only one consistent, the visual indicator 402 indicates that no problems
con?guration server 126 during a scanning routine, the tool Were detected. In other embodiments, the mere presence of
128 could generate and present a display 300 as shoWn in FIG. multiple con?guration servers 126 could trigger an alert or
3. In this example, the display 300 includes a visual indicator Warning, and the visual indicator 402 and the note 404 could
302, Which indicates that no problems Were detected. The be changed to indicate that a problem Was detected and to
display 300 also includes a note 304, Which states that only identify the problem (multiple con?guration servers Were
one con?guration server 126 (such as one BootP or DHCP detected).
server) Was found during the scan of the network. If the con?guration monitoring tool 128 identi?es multiple
The display 300 further includes a table 306, Which con con?guration servers 126 that provide inconsistent informa
tains information associated With the con?guration servers tion during a scanning routine, the tool 128 could generate
126 identi?ed during the scanning routine (Which in this case and present a display 500 as shoWn in FIG. 5 and/or a display
is one server 126). In this example, the table 306 includes 20 600 as shoWn in FIG. 6. In FIG. 5, a visual indicator 502
various information about the identi?ed con?guration server indicates that a problem has been detected, and a note 504
126. For example, the table 306 identi?es a machine name generally identi?es the problem. A table 506 identi?es vari
(Srv Name) associated With the con?guration server 126. The ous information associated With the identi?ed con?guration
machine name may or may not be available in the table 306, servers 126, although the machine names of the con?guration
depending on Whether the name resolution option is enabled 25 servers 126 have been omitted (Which may occur When the
or disabled via the checkbox 208. The table 306 also identi?es checkbox 208 is not selected). As shoWn in FIG. 6, a visual
the netWork address (Srv IP), submask address (Sub Mask), indicator 602 indicates that a problem has been detected, and
and gateWay address (GtW) associated With the con?guration a note 604 generally identi?es the problem. A table 606 also
server 126. In addition, the table 306 identi?es the con?gu identi?es various information associated With the identi?ed
ration data provided by the con?guration server 126. In this 30 con?guration servers 126, including the machine names of
example, the con?guration data includes a netWork address the con?guration servers 126 (Which may occur When the
assigned to the tool 128 by the con?guration server 126 (BP checkbox 208 is selected).
Resp), a primary NTP server address assigned to the tool 128 As shoWn in FIGS. 5 and 6, the con?guration data provided
by the con?guration server 126 (Pri NTP), and a secondary by multiple con?guration servers 126 (as displayed in the
NTP server address assigned to the tool 128 by the con?gu 35 tables 506 and 606) is different. For example, the netWork
ration server 126 (Sec NTP). addresses and primary and secondary NTP server con?gura
In this example, only one con?guration server 126 Was tion data are different. This could cause various problems in
located during the scanning routine performed by the tool the process control system 100. For example, a controller
128, and the con?guration data provided by that con?guration could be set up based on an engineers assumption that the
server 126 is displayed in the table 306 to alloW for user 40 controller Would receive its con?guration data from a particu
revieW. Because only a single con?guration server 126 Was lar con?guration server 126. The presence of multiple con
located during the scanning routine, the tool 128 uses the ?guration servers 126 distributing con?guration data raises
visual indicator 302 to indicate that no problems have been the possibility that the controller could receive incorrect con
detected. In this case, there is no concern about multiple ?guration data from a different con?guration server 126. This
con?guration servers 126 existing in the system 100 and could seriously interfere With the operation of the controller
providing con?icting con?guration data. in the process control system 100. By displaying the identi
If the con?guration monitoring tool 128 identi?es multiple ?ed con?guration servers 126 and the con?guration data pro
con?guration servers 126 that provide consistent con?gura vided by those servers 126, an engineer or other personnel
tion data during a scanning routine, the tool 128 could gen could take appropriate steps to resolve any possible problems,
erate and present a display 400 as shoWn in FIG. 4. In this 50 such as by deactivating or recon?guring one or more of the
example, the display 400 includes a visual indicator 402 identi?ed con?guration servers 126.
indicating that no problems Were detected. The display 400 While FIG. 5 has been described as being displayed When
also includes a note 404, Which states that multiple con?gu the checkbox 208 is not selected and FIG. 6 has been
ration servers 126 (such as multiple BootP or DHCP servers) described as being displayed When the checkbox 208 is
Were located during the scanning routine and that the con 55 selected, a combination of these displays could be presented
?guration servers 126 provided consistent con?guration data. to a user. For example, the display 500 could initially be
In addition, the display 400 includes a table 406, Which con displayed to the user, and the machine names in the display
tains information associated With the tWo con?guration serv 500 could be populated as shoWn in FIG. 6 as the machine
ers 126 identi?ed during the scanning routine. names are resolved.
In this example, tWo con?guration servers 126 Were 60 Another problem that can occur in the process control
located during the scanning routine, and the con?guration system 100 is the complete absence of con?guration servers
data provided by the tWo con?guration servers 126 is dis 126. This could occur, for example, if a con?guration server
played in the table 406. The presence of multiple con?gura 126 goes o?line due to a poWer failure, hardWare failure, or
tion servers 126 could be cause for concern since this raises other condition. If the con?guration monitoring tool 128
the possibility of multiple con?guration servers 126 distrib 65 identi?es no con?guration servers 126 during a scanning
uting incorrect or con?icting con?guration data to compo routine, the tool 128 could generate and present a display 700
nents of the system 100. HoWever, it is possible that multiple as shoWn in FIG. 7. In FIG. 7, a visual indicator 702 indicates
US 7,949,905 B2
11 12
that a problem has been detected, and a note 704 generally (such as by presenting the display 700 of FIG. 7). At this
identi?es the problem (in this example, no con?guration serv point, corrective action could be taken to bring one or more
ers Were detected). A table 706 is empty since no con?gura con?guration servers 126 online or to otherWise make con
tion servers 126 Were identi?ed. ?guration data available in the netWork.
The various displays 200-700 shoWn in FIGS. 2 through 7 If at least one response is received, a determination is made
could be generated and presented to a user in any suitable Whether responses from multiple con?guration servers Were
manner. For example, the tool 128 could use an application received at step 808. If not, this indicates that a single con
programming interface (API), such as an HSC server inter ?guration server 126 sent con?guration data to the con?gu
face (denoted HSCCLI) to raise alarms and events With an ration monitoring tool 128. In this case, the con?guration
EXPERION PKS server from HONEYWELL INTERNA monitoring tool generates and displays a pass message at step
TIONAL INC. In some embodiments, the tool 128 could be 812. In this case, no problems have been detected, and the
running in the background as a periodic task or as a service, con?guration monitoring tool 128 could cause a pass mes
and the API or other mechanism could be used to immediately sage or other noti?cation to be displayed (such as by present
raise an alarm or error message When an invalid con?guration ing the display 300 of FIG. 3).
is detected. If responses from multiple con?guration servers Were
Although FIGS. 2 through 7 illustrate examples of graphi received, the con?guration monitoring tool determines
cal displays associated With the detection of improper con Whether the responses contain different con?guration data at
?guration data provided in a netWork, various changes may be step 810. If not, this indicates that multiple con?guration
made to FIGS. 2 through 7. For example, the content and servers 126 sent con?guration data to the con?guration moni
arrangement of each of the displays 200-700 are for illustra 20 toring tool 128, but the con?guration data Was consistent. In
tion only. Each of the displays 200-700 could include any this case, the con?guration monitoring tool generates and
suitable information in any suitable arrangement. Also, more displays the pass message at step 812. In this case, no prob
or less information could be displayed depending on particu lems have been detected, and the con?guration monitoring
lar needs. As particular examples, the table of identi?ed con tool 128 could cause a pass message or other noti?cation to be
?guration servers 126 could be omitted When no problems are 25 displayed (such as by presenting the display 400 of FIG. 4).
detected, or the table could be hidden and made available If the responses from multiple con?guration servers con
upon selection of a button, link, or other mechanism. As tain different con?guration data, this indicates that multiple
another particular example, help information could be pro inconsistent responses Were received from multiple con?gu
vided to the user When the tool 128 identi?es one or more ration servers 126. In this case, the con?guration monitoring
problems in a netWork or When an error occurs during execu 30 tool generates and displays the error message at step 814. The
tion of the tool 128. con?guration monitoring tool 128 could cause an error mes
FIG. 8 illustrates an example method 800 for detecting sage or other noti?cation to be displayed (such as by present
improper con?guration data provided in a netWork. The ing the display 500 ofFIG. 5 and/or the display 600 ofFIG. 6).
embodiment of the method 800 shoWn in FIG. 8 is for illus At this point, corrective action could be taken to reduce or
tration only. Other embodiments of the method 800 could be 35 prevent the transmission of incorrect or con?icting con?gu
used Without departing from the scope of this disclosure. ration data by the con?guration servers 126.
Also, for ease of explanation, the method 800 shoWn in FIG. Although FIG. 8 illustrates one example of a method 800
8 is described With respect to the con?guration monitoring for detecting improper con?guration data provided in a net
tool 128 operating in the process control system 100 of FIG. Work, various changes may be made to FIG. 8. For example,
1. The method 800 could be used With any suitable con?gu 40 the con?guration monitoring tool 128 could transmit multiple
ration monitoring tool operating in any suitable process con requests and receive multiple responses from a con?guration
trol or non-process control system or netWork. server 126 during a scanning routine. When this occurs, the
A con?guration monitoring tool transmits a request for con?guration monitoring tool 128 could verify that the
con?guration data over a netWork at step 802. This could responses contain the same con?guration data and, if so, treat
include, for example, a server executing the con?guration 45 the responses from that con?guration server 126 as a single
monitoring tool 128 broadcasting an IP address resolution response. As another example, the con?guration monitoring
request over the network 1241). The con?guration monitoring tool 128 could treat the presence of multiple con?guration
tool 128 could broadcast or otherWise transmit any other servers 126 as an error (regardless of Whether the servers
suitable request for con?guration data, Whatever the format of provide consistent con?guration data). In these embodi
the request. 50 ments, the yes branch from step 808 could lead directly to
The con?guration monitoring tool collects any responses step 814.
to the request at step 804. This could include, for example, the In some embodiments, various functions described above
con?guration monitoring tool 128 Waiting for and collecting are implemented or supported by a computer program that is
any responses received Within a speci?ed period of time. This formed from computer readable program code and that is
period of time represents a WindoW during Which valid 55 embodied in a computer readable medium. The phrase com
responses can be received from one or more con?guration puter readable program code includes any type of computer
servers 126. The WindoW could have any suitable length of code, including source code, object code, and executable
time, such as a length based on the time interval value in the code. The phrase computer readable medium includes any
text box 206. During this WindoW, it is possible that Zero, one, type of medium capable of being accessed by a computer,
several, or many responses are received from Zero or more 60 such as read only memory (ROM), random access memory
con?guration servers 126. (RAM), a hard disk drive, a compact disc (CD), a digital video
If no responses are received from any con?guration servers disc (DVD), or any other type of memory.
as determined at step 806, the con?guration monitoring tool It may be advantageous to set forth de?nitions of certain
generates and displays an error message at step 814. In this Words and phrases used throughout this patent document. The
case, no responses Were received from any con?guration 65 term couple and its derivatives refer to any direct or indirect
servers 126, and the con?guration monitoring tool 128 could communication betWeen tWo or more elements, Whether or
cause an error message or other noti?cation to be displayed not those elements are in physical contact With one another.
US 7,949,905 B2
13 14
The terms application and program refer to one or more 5. The method of claim 1, wherein determining whether the
computer programs, software components, sets of instruc problem is detected further includes determining that the
tions, procedures, functions, objects, classes, instances, problem is detected based on a determination that multiple
related data, or a portion thereof adapted for implementation responses from multiple con?guration servers have been
in a suitable computer code (including source code, object received.
code, or executable code). The terms transmit, receive, 6. The method of claim 1, wherein determining whether the
and communicate, as well as derivatives thereof, encom problem is detected further includes determining that no
pass both direct and indirect communication. The terms problem is detected based on a determination that a response
include and comprise, as well as derivatives thereof, from a single con?guration server has been received.
mean inclusion without limitation. The term or is inclusive,
7. The method of claim 1, further comprising generating
meaning and/or the phrases associated wit and associ
the noti?cation indicating that the problem is detected based
ated therewith, as well as derivatives thereof, may mean to
on a determination that no responses from any con?guration
include, be included within, interconnect with, contain, be
servers have been received in response to a second request.
contained within, connect to or with, couple to or with, be
communicable with, cooperate with, interleave, juxtapose, be 8. The method of claim 1, wherein:
proximate to, be bound to or with, have, have a property of, or transmitting the one or more requests comprises transmit
the like. The term controller means any device, system, or ting multiple requests; and
part thereof that controls at least one operation. A controller receiving the one or more responses comprises receiving
may be implemented in hardware, ?rmware, software, or one or more responses within a speci?ed time period
some combination of at least two of the same. The function 20 after each request transmission.
ality associated with any particular controller may be central 9. The method of claim 8, wherein a number of requests
iZed or distributed, whether locally or remotely. transmitted and a time interval between requests are speci?ed
While this disclosure has described certain embodiments by a user.
and generally associated methods, alterations and permuta 10. The method of claim 1, wherein:
tions of these embodiments and methods will be apparent to 25 the one or more requests comprise requests for address
those skilled in the art. Accordingly, the above description of resolution;
example embodiments does not de?ne or constrain this dis the one or more con?guration servers comprise at least one
closure. Other changes, substitutions, and alterations are also of: one or more bootstrap protocol servers and one or
possible without departing from the spirit and scope of this more dynamic host con?guration protocol servers; and
disclosure, as de?ned by the following claims. 30 the noti?cation comprises a graphical display.
11. An apparatus comprising:
What is claimed is: at least one network interface con?gured to transmit one or
1. A method comprising: more requests for con?guration data over a network and
transmitting one or more requests for con?guration data to receive one or more responses from one or more
over a network, the one or more requests transmitted to 35 con?guration servers that are operable to provide con
one or more con?guration servers that are operable to ?guration data to one or more components, each of the
provide con?guration data to one or more components; responses containing con?guration data; and
receiving one or more responses from the one or more at least one processor con?gured to determine whether a
con?guration servers, each of the responses containing problem associated with the one or more con?guration
con?guration data; 40 servers is detected based on the one or more responses
determining whether a problem associated with the one or and to generate a noti?cation indicating any detected
more con?guration servers is detected based on the one problem associated with the one or more con?guration
or more responses; and servers based on the determination;
generating a noti?cation indicating any detected problem wherein the at least one processor is con?gured to deter
associated with the one or more con?guration servers 45 mine whether the problem is detected by determining
based on the determination; whether the con?guration data for a speci?ed one of the
wherein determining whether the problem is detected components received from a ?rst of the con?guration
includes determining whether the con?guration data for servers is different than the con?guration data for the
a speci?ed one of the components received from a ?rst of speci?ed component received from a second of the con
the con?guration servers is different than the con?gura 50 ?guration servers.
tion data for the speci?ed component received from a 12. The apparatus of claim 11, wherein the speci?ed com
second of the con?guration servers. ponent comprises the apparatus.
2. The method of claim 1, wherein the speci?ed component 13. The apparatus of claim 11, wherein the at least one
comprises a con?guration monitoring tool that performs the processor is further con?gured to determine that no problem
transmitting, receiving, determining, and generating steps. 55 is detected based on a determination that the con?guration
3. The method of claim 1, wherein determining whether the data in the response from the ?rst con?guration server is
con?guration data from the ?rst con?guration server is dif consistent with the con?guration data in the response from
ferent than the con?guration data from the second con?gura the second con?guration server.
tion server comprises determining whether the responses 14. The apparatus of claim 11, wherein the at least one
contain at least one of: different Internet Protocol (IP) 60 processor is further con?gured to determine that the problem
addresses and different Network Timing Protocol (NTP) is detected based on a determination that multiple responses
parameters. from multiple con?guration servers have been received.
4. The method of claim 1, determining whether the prob 15. The apparatus of claim 11, wherein the at least one
lem is detected further includes determining that no problem processor is further con?gured to generate the noti?cation
is detected when the con?guration data in the response from 65 indicating that the problem is detected based on a determina
the ?rst con?guration server is consistent with the con?gura tion that no responses from any con?guration servers have
tion data in the response from the second con?guration server. been received in response to a second request.
US 7,949,905 B2
15 16
16. The apparatus of claim 11, wherein the at least one received from a ?rst of the con?guration servers is dif
processor is further con?gured to determine that no problem ferent than the con?guration data for the speci?ed com
is detected based on a determination that a response from a ponent received from a second of the con?guration serv
single con?guration server has been received. ers.

17. The apparatus of claim 16, Wherein the at least one 20. The computer readable medium of claim 19, Wherein
processor is con?gured to treat multiple responses from the the computer readable medium forms a portion of the speci
single con?guration server as a single response. ?ed component.
18. The apparatus of claim 11, Wherein: 21. The computer program of claim 19, Wherein the com
the at least one processor is con?gured to initiate transmis puter readable program code for determining Whether the
problem is detected further includes:
sion of multiple requests for con?guration data; and
computer readable program code for determining that no
a number of requests transmitted and a time interval
problem is detected When the con?guration data in the
betWeen requests are speci?ed by a user.
response from the ?rst con?guration server is consistent
19. A computer readable medium embodying a computer
With the con?guration data in the response from the
program, the computer program comprising: second con?guration server.
computer readable program code for initiating transmis
22. The computer program of claim 19, Wherein the com
sion of one or more requests for con?guration data over
puter readable program code for determining Whether the
a netWork to one or more con?guration servers that are
problem is detected further includes:
operable to provide con?guration data to one or more
computer readable program code for determining that the
components; 20 problem is detected When multiple responses from mul
computer readable program code for receiving one or more
tiple con?guration servers have been received.
responses, the one or more responses provided by the
23. The computer program of claim 19, Wherein the com
one or more con?guration servers, each of the responses
puter readable program code for determining Whether the
containing con?guration data; problem is detected further includes:
computer readable program code for determining Whether
25 computer readable program code for determining that no
a problem associated With the one or more con?guration
problem is detected When a response from a single con
servers is detected based on the one or more responses;
?guration server has been received.
and
24. The computer program of claim 19, Wherein the com
computer readable program code for generating a noti?ca
puter readable program code for determining Whether the
tion indicating any detected problem associated With the 30 problem is detected further includes:
one or more con?guration servers based on the determi
computer readable program code for determining that the
nation; problem is detected When no responses from any con
Wherein the computer readable program code for determin
?guration servers has been received in response to a
ing Whether the problem is detected includes computer
second request.
readable program code for determining Whether the con
?guration data for a speci?ed one of the components

You might also like