SlideShare a Scribd company logo
US006170015B1 
(12) United States Patent (10) Patent N0.: US 6,170,015 B1 
Lavian (45) Date of Patent: Jan. 2, 2001 
(54) NETWORK APPARATUS WITH JAVA CO- 5,892,932 * 4/1999 Kim ................................... .. 710/131 
PROCESSOR 5,898,669 * 4/1999 Shimony et a1. 370/232 
5,963,620 * 10/1999 Frankel et a1. .. 379/9305 
(75) Inventor: Ta] L Lavian, Sunnyvale, CA (Us) 5,982,778 * 11/1999 Mangin et a1. .. 370/445 
5,983,269 * 11/1999 Mattson et a1. .................... .. 709/221 
(73) Assignee: £21236 Networks Limited, Montreal * Cited by examiner 
Primary Examiner—Viet Vu 
( * ) Notice: Under 35 USC. 154(b), the term of this (74) Attorney, Agent, or Firm—Blakely Sokoloff Taylor & 
patent shall be extended for 0 days. Zafman LLP 
57 ABSTRACT 
(21) Appl. N0.: 09/080,143 ( ) 
. _ A method and apparatus for automatically con?guring a 
(22) Flled' May 15’ 1998 network switch having external network data ports, a 
( 51 ) Int. Cl.7 .................................................... .. G06F 13 / 00 P rocessor, memor y , data bus, and C0 p TOCeSSOr- Network data 
(52) us. Cl. ........................ .. 709/232; 709/223; 709/224; is monitored on the @Xternal network data port Information 
709/235; 709/238 about the network data traf?c is compared to one or more 
(58) Field of Search 709/220 221 threshold conditions. The network switch is automatically 
709 233’ 234’ con?gured by the coprocessor if the network data meets one 
’ ’ ’ 235’ 23g 242’ 256 of the threshold conditions. The monitor and con?guration 
’ ’ ’ functions can be performed by software running on the 
(56) References Cited coprocessor which has been downloaded from an external 
network maintenance station through a maintenance data 
U-S- PATENT DOCUMENTS port. Information about the network data traf?c can be 
5 668 857 * 9/1997 McHale ........................... .. 379/9507 uploaded to the external network maintenance Station 
5,696,764 * 12/1997 Soumiya et a1. .. 370/395 through a malntenance data Port 
5,742,606 * 4/1998 Iliadis et a1. .... .. 370/413 
5,832,232 * 11/1998 Danneels ............................ .. 709/235 16 Claims, 9 Drawing Sheets 
303 F 301 f 
% 
Web B/‘OWSEI‘ 1 ,__|—% 
311 I: B: 
315 
305 2 Event / 307 
,5 é ) 
Routing Switch : 
Authentication 
Server Applications 
Server
U.S. Patent Jan. 2, 2001 Sheet 1 0f 9 US 6,170,015 B1 
@ 
1131: > 0103 
—i > f 105 
—]  107 
—/ 0 
:i > _f 109 
MAINTENANCE 
DA TA PORT 
/' 901 N 913 
COPROCESSOR 
909 -/ 23? 
907 
 MEMORY 
905  ’1 911 
PROCESSOR 
NETWORK 
DA TA P0RT5/ 903
U.S. Patent Jan. 2, 2001 Sheet 2 0f 9 US 6,170,015 B1 
/e2 ,3 w6uE 6NmE 
@NmE
U.S. Patent Jan. 2, 2001 Sheet 3 0f 9 US 6,170,015 B1 
@Em 
UmR 
/ E55:8N$ 
SM|.
U.S. Patent Jan. 2, 2001 Sheet 4 0f 9 US 6,170,015 B1 
QkmQim:m 
m? 
Qw8E53mm kmém 
ETK k3mtmwm 
mbwk 
w 
@E 
5“3335$.,. 
“ER? 
QREIJ 
EEmma
U.S. Patent Jan. 2, 2001 Sheet 5 0f 9 US 6,170,015 B1 
@mE. 
3m.m: 
gmgsé m§(61 w:aIs , 
?E&a0.- m3 
mu.m.|  
EQEQE 
B3E%ES 
EQgQg 
AMJEQEQEE E 
?Swagmi 5.5g: 
3MmE .
Network apparatus with Java co-processor
Network apparatus with Java co-processor
U.S. Patent Jan. 2, 2001 Sheet 8 0f 9 US 6,170,015 B1 
6%E 
wEQESQQ 
EmEqw QEQRQ mg 
EE5E3E6S EBSE 
gRImés éqv 
may 
“g8.m%
US 6,170,015 B1 
U.S. Patent Jan. 2, 2001 Sheet 9 0f 9 
2.3[ 
GQNE. 
OEm5Rkmnm%g 3ik w3 m . 
V2.9 . 
@E 
:QNm ag. 
Qkmimha 
NNSN 
QQg 0mw 
was. 
bscqc 
82  
lllll] 
Q
US 6,170,015 B1 
1 
NETWORK APPARATUS WITH JAVA CO 
PROCESSOR 
FIELD OF THE INVENTION 
This invention relates generally to data communications 
networks, and more particularly, to a method and apparatus 
for automatically con?guring a netWork sWitch With a copro 
cessor. 
BACKGROUND OF THE INVENTION 
Computer netWorks are used to interconnect many com 
puting resources, including computers, Workstations, 
servers, printers, modems, and storage devices. For 
example, tWo or more computers may be connected together 
through a netWork. NetWork users are able to share ?les, 
printers and other resources, send messages and run appli 
cations on remote computers. An important part of any 
computer netWork includes the physical components or 
netWork communications devices used to interconnect the 
computing resources. 
One netWork communications device used to interconnect 
multiple computing resources is a chassis-based system 
designed to accommodate a number of internal cards. The 
computing resources such as computers are coupled to the 
internal cards of the chassis-based system. Once the com 
puters are coupled to the internal cards, the computers are 
coupled to the netWork. To accommodate netWork groWth, 
additional internal cards may be purchased and added to the 
chassis-based system. With the additional internal cards 
installed, additional computing resources may be added to 
the netWork. A disadvantage of these chassis-based systems 
is that there is a relatively large initial investment When 
purchasing the chassis because of the large amount of 
overhead associated With chassis-based systems. 
An alternative to expensive chassis-based systems is the 
use of less expensive standalone netWork communications 
devices or units that have a ?xed number of ports for 
connecting computing resources or stations to the netWork. 
Such standalone netWork communications devices include 
stackable sWitches or the like. Although additional ports can 
not be added to each individual standalone unit, separate 
standalone units can be stacked, cascaded or coupled to 
accommodate netWork groWth. As a result, there is a loWer 
startup cost When establishing a computer netWork With the 
standalone units in comparison With chassis-based systems. 
Furthermore, netWork administrators still have the ?exibility 
to increase the siZe of the netWork With the less-expensive 
standalone units. 
FIG. 1 illustrates multiple netWork communications 
devices 103, 105, 107, 109 and 111 coupled together to form 
a computer netWork 101. Multiple computing resources (not 
shoWn) are coupled to each netWork communications device 
103, 105, 107, 109 and 111. In one embodiment, netWork 
communications devices 103, 105, 107, 109 and 111 are 
stackable sWitches coupled together through bus 113. Bus 
113 is used to tie together the sWitch netWork fabric of 
computer netWork 101. It are noted by one of ordinary skill 
in the art that the utiliZation of bus 113 is an extension of the 
chassis-based designs discussed earlier. The internal cards of 
the chassis-based systems are commonly coupled to high 
speed buses Within the chassis-based systems. 
The use of stackable sWitches alloWs netWork adminis 
trators to build systems having multiple physical ports to 
various computing resources on the netWork. Different types 
of netWork use patterns may typically be handled most 
ef?ciently by different con?gurations of a netWork switch. 
10 
15 
25 
35 
45 
55 
65 
2 
Currently, a netWork administrator must manually monitor 
and analyZe netWork traf?c patterns, and also manually 
make any changes to the con?guration of a netWork sWitch 
through the use of an external netWork maintenance station 
(NMS). Although some netWork sWitches may have data 
gathering and reporting capabilities, a netWork administrator 
must still take a considerable amount of time to analyZe the 
netWork traf?c pattern and manually recon?gure the sWitch. 
Delays in rerouting netWork traf?c are directly related to the 
time required to analyZe netWork traffic and recon?gure a 
netWork sWitch by a netWork administrator. 
Therefore, there is a need for a Way to automatically 
monitor and con?gure a netWork sWitch according to 
changes in netWork traffic. There is a further need to 
automatically con?gure a netWork sWitch Which does not 
reduce the How of data through the sWitch. 
SUMMARY OF THE INVENTION 
The present invention provides a method and apparatus 
for automatically con?guring a netWork sWitch having exter 
nal netWork data ports, a processor, memory, data bus, and 
coprocessor. NetWork data is monitored on the external 
netWork data port. Information about the netWork data traf?c 
is compared to one or more threshold conditions. The 
netWork sWitch is automatically con?gured by the copro 
cessor if the netWork data meets one of the threshold 
conditions. The monitor and con?guration functions can be 
performed by softWare running on the coprocessor Which 
has been doWnloaded from an external netWork maintenance 
station through a maintenance data port. Information about 
the netWork data traf?c can be uploaded to the external 
netWork maintenance station through a maintenance data 
port. 
BRIEF DESCRIPTION OF THE DRAWINGS 
The present invention is illustrated by Way of example 
and may be better understood by referring to the folloWing 
description in conjunction With the accompanying draWings, 
in Which like references indicate similar elements and in 
Which: 
FIG. 1 shoWs a computer netWork coupled together With 
a bus architecture compatible With the present invention; 
FIG. 2A—2F shoW alternative netWork sWitch con?gura 
tions compatible With the present invention; 
FIG. 3 shoWs a block diagram of a high level system 
architecture compatible With the present invention; 
FIG. 4 shoWs a block diagram of a system architecture 
and protocol relationships compatible With the present 
invention; 
FIG. 5 shoWs a block diagram of doWnloading intelligent 
agents compatible With the present invention; 
FIG. 6 shoWs a block diagram of a Java application 
environment compatible With the present invention; 
FIG. 7 shoWs a block diagram of an open system archi 
tecture compatible With the present invention; 
FIG. 8 shoWs an auto-con?guring netWork sWitch com 
patible With the present invention; 
FIG. 9 shoWs a netWork sWitch With coprocessor com 
patible With the present invention; 
FIG. 10 shoWs a system diagram of Java mobile agents 
compatible With the present invention. 
DETAILED DESCRIPTION OF A PREFERRED 
EMBODIMENT OF THE PRESENT INVENTION 
In the folloWing description of a preferred embodiment, 
reference is made to the accompanying draWings Which
US 6,170,015 B1 
3 
form a part hereof, and in Which is shown by Way of 
illustration a speci?c embodiment in Which the invention 
may be practiced. It is to be understood that other embodi 
ments may be utilized and structural changes may be made 
Without departing from the scope of the present invention. 
The present invention provides for a method and appa 
ratus for automatically con?guring a netWork sWitch having 
external netWork data ports, a processor, memory, data bus, 
and coprocessor. Network data is monitored on the external 
netWork data port. Information about the netWork data traf?c 
is compared to one or more threshold conditions. The 
netWork sWitch is automatically con?gured by the copro 
cessor if the netWork data meets one of the threshold 
conditions. The monitor and con?guration functions can be 
performed by softWare running on the coprocessor Which 
has been doWnloaded from an external netWork maintenance 
station through a maintenance data port. Information about 
the netWork data traf?c can be uploaded to the external 
netWork maintenance station through a maintenance data 
port. 
For the purpose of illustration, one embodiment of present 
invention is described beloW in the context of a Java virtual 
machine in a Java development environment. Information 
and speci?cations relating to the Java development environ 
ment are described in the document “Java Virtual Machine 
Speci?cation”, October, 1997, Sun Microsystems. It Will be 
recogniZed by one of ordinary skill in the art that the present 
invention may be used With other development environ 
ments Without loss of generality, such as Microsoft Visual 
C/C++. 
Java is a programming language similar to the object 
oriented language C++, and consists of runtime libraries. 
These libraries provide a standard set of facilities for 
manipulating the user interface, communicating across a 
netWork, etc. TWo Java runtime libraries, remote method 
invocation (RMI) and and Java native interface (JNI) alloW 
a single application to run on multiple hardWare platforms 
Without modi?cation. 
Java preferably isolates applications from both hardWare 
and operating systems. Unlike traditional computer 
programs, Which are almost alWays compiled for a hardWare 
platform using tools that preclude their running on anything 
else, Java applications can be designed to run on any system 
that has a Java Virtual Machine (VM), also knoWn as a Java 
Runtime Engine. The VM takes Java byte code and trans 
forms it on the ?y into instructions that can be executed by 
the PC. The same byte code can be interpreted as hardWare 
level instructions for any other platform With a VM imple 
mentation. 
Java can be used to create tWo types of programs: appli 
cations and applets. Java applications, like those Written in 
other languages, are standalone programs. They require a 
VM to run, but this runtime environment may be separate, 
embedded in the OS or in the application itself. Applets rely 
on a Web broWser With a VM (such as Microsoft Internet 
Explorer or Netscape Communicator). Since applets are 
designed to be doWnloaded, they are also typically much 
smaller than applications. 
In addition to platform independence, Java applications 
offer several other advantages. First, Java Was designed for 
netWork computing and makes hiding the differences 
betWeen local and remote resources easy. This alloWs Java 
to be used With thin-client computing, in Which most of the 
processing and storage is handled by a server, While the 
client is used largely for display and interaction. Typical thin 
clients include netWork computers (NCs), Which are low 
10 
15 
25 
35 
45 
55 
65 
4 
cost personal computers typically connected to a private or 
public netWork. Second, the Java programming language has 
a rigorous object-oriented model that makes it possible to 
build modular applications. An end user need only doWnload 
a particular feature of a Java Word processor When needed, 
for example. This dynamic design also lets developers create 
custom desktop environments that display only those appli 
cations required by each end user. 
The Java platform or runtime environment is the platform 
that enables Java applications and applets to run on any 
system regardless of the operating system and underlying 
hardWare. Rather than compiling code into a format 
designed for a speci?c platform, developers compile Java 
source code into an intermediate form, bytecode, Which can 
be executed on any system With a runtime environment. A 
Class Loader transfers the Java bytecode to the Java Virtual 
Machine (JVM). As the heart of the Java platform, the JVM 
is basically a softWare CPU that sits betWeen applications 
and the platform consisting of the operating system and 
hardWare. The JVM interprets bytecode for the platform or 
uses a just-in-time JIT) compiler to convert the bytecode to 
machine code for that speci?c platform. Java class libraries, 
Which are ?les that make up the standard application pro 
gramming interface (API) for applications and applets, are 
also loaded dynamically as needed. 
The runtime system, Which manages threads, memory, 
and other system resources, preferably executes the inter 
preted or machine code on the end platform. The program 
may be run Within a broWser as an applet, or as a standalone 
application. 
JavaBeans are reusable building blocks that make up 
object-oriented Java programs. JavaBeans are de?ned by an 
API speci?cation for a visual component architecture based 
on the Java language. Preferably, any Java components 
conforming to the JavaBeans component model can be 
reused in any other J avaBean-compliant application. 
The present invention is used to con?gure a netWork 
sWitch or other apparatus having a processor and memory 
Which can be modi?ed through softWare. FIGS. 2A—2F 
shoW alternative netWork sWitch con?gurations typically 
chosen by a netWork administrator, and Which may be 
automatically con?gured by the present invention. FIG. 2A 
shoWs a L2 sWitch con?guration; FIG. 2B shoWs a con?gu 
ration Which routes or sWitches on any port; FIG. 2C shoWs 
a con?guration Which routes on all ports; FIG. 2D shoWs a 
con?guration Which creates virtual local area netWorks 
(VLANs) by policy or port; FIG. 2E shoWs a con?guration 
Which routes betWeen VLANs With simple softWare con 
?gurations; FIG. 2F shoWs a con?guration Which demon 
strates arbitrary netWork routing and sWitching. It Will be 
recogniZed by one of ordinary skill in the art that con?gu 
rations shoWn in FIGS. 2A—2F are for illustration purposes 
only, and that other con?gurations may be implemented With 
the present invention Without loss of generality. Different 
applications or users may be assigned different priorities. 
For example, high level netWork applications such as real 
time netWork monitoring and tWo-Way voice and video may 
be given a loW priority, equivalent to that of non-critical 
email or internet broWsing. Alternatively, an important user 
such as a corporate CEO may be given a higher netWork 
priority than other employees. 
FIG. 3 shoWs a block diagram of a high level system 
architecture compatible With the present invention. A net 
Work maintenance station (NMS) 301 may be coupled to a 
netWork routing sWitch 305 via a maintenance data port on 
the netWork sWitch 305. Apreferred personal computer 303
US 6,170,015 B1 
5 
running browser software may optionally communicate with 
both the NMS 301 and network switch 305. Network 
monitor software 311 may preferably be downloaded from 
the NMS 301 to a processor in the network switch 305 for 
monitoring network data traf?c. The monitor software 311 is 
downloaded through a control data channel, preferably 
through the maintenance data port on the network switch 
305, and not as network traf?c being routed through the 
network switch 305. The use of a control channel preferably 
does not impact the How of network traf?c through the 
network switch 305. Once the network monitor software 311 
has been downloaded to the network switch 305, events and 
information 315 relating to network traf?c can be uploaded 
to either the NMS 301 or an applications server 307. 
Analysis of the network events 315 may be performed either 
by the processor on the network switch 305 or by the NMS 
301 or applications server 307. Analysis of the network 
events 315 preferably involves monitoring the events 315 to 
see if they meet one or more of a set of prede?ned threshold 
conditions. If so, network con?guration software 313 can be 
downloaded either from the NMS 301 or applications server 
307 in recon?gure the network switch 305. An authentica 
tion server 309 may optionally be used to authenticate data 
and actions taking place on the network switch 305. 
FIG. 4 shows a preferred system architecture and proto 
col. Browser software 401 may preferably communicate 
with a network switch 403 through a variety of protocols, 
including HyperText Transfer Protocol (HTTP) 405, and 
may also exchange software applets 407 with the switch 
403. Optivity software may preferably communicate with 
the switch 403 through Simple Network management Pro 
tocol (SNMP) 411 or through distributed optivity applica 
tions or oplets 409. An application server 415 may prefer 
ably communicate with the switch 403 through Remote 
Method Invocation (RMI) 421 or Java Beans 423. 
FIG. 5 shows a preferred method of downloading intel 
ligent agents. A network switch or routing device 501 
contains a physical hardware layer 503, preferably including 
a processor and memory. An operating system 505 runs as 
a software application on top of the hardware layer 503. An 
implementation of a JVM 507 and internet protocol (IP) 
stack 509 runs on top of the operating system layer 505. A 
download channel 513, typically a maintenance data port, is 
used to download an intelligent agent 511 to the network 
switch 501. The intelligent agent 511 typically performs one 
or more functions, including but not limited to security 515, 
authentication of information 517, monitoring network data 
traf?c 519, or automatically con?guring 521 the network 
switch 501. 
FIG. 6 shows a preferred Java application environment. A 
Java virtual machine 601 may run on top of a number of 
operating systems, including but not limited to JavaOS 603, 
Windows NT 605, Solaris 607, RT-OS 609, or others 611. 
System functions such as networking 613, utilities 615, 
programming languages 617, input/output (I/O) 619, and 
abstract window toolkit (AWT) 621 are all supported by the 
JVM 601. A network switch (API) 623 and network switch 
libraries 625 are used to support end user applications 627 
or third party applications 629 running on the network 
switch. 
FIG. 7 shows a preferred open system architecture com 
patible with the present invention. A network switch 701 
includes a hardware layer 703, operating system 705, and a 
JVM 707. Java software libraries 709 and a data commu 
nications API 711 preferably run on top of the JVM 707. A 
download or control channel 715 is used to download 
applications programs including Java Beans 713, which 
10 
15 
20 
25 
30 
35 
40 
45 
55 
60 
65 
6 
communicate with the device 721 through a Java API 717 
and a C/C++ API 719. 
FIG. 8 shows an auto-con?guring network switch com 
patible with the present invention. A network switch 801 
communicates with a NMS 803 through a download channel 
807. Monitor software 805 may be downloaded from the 
NMS 803 through the download channel 807. If a network 
event or information meets a threshold condition 809, net 
work information may be optionally uploaded 811 to the 
NMS 803. An appropriate application 815 may be down 
loaded 813 from the NMS 803 in response to the uploaded 
network information. 
FIG. 9 shows a network switch 901 with coprocessor 909 
compatible with the present invention. In order not to impact 
the throughput of data on the network, con?guration infor 
mation is preferably sent through a maintenance port or 
control channel 913 rather than through the network switch 
data channel 903, 905. In addition, a coprocessor 909 is 
preferably used to run monitor and con?guration software 
stored in memory 907 in order not to impact the How of data 
through network ports 903 and processor 905. A data bus 
911, preferably a PCI data bus, is used to transfer informa 
tion between the processor 905, memory 907, coprocessor 
909, and the maintenance data port 913. It will be recogniZed 
by one of ordinary skill in the art that changes may be made 
in the connections between and the types of processor, 
memory, and network components without loss of general 
ity. For example, the memory may alternatively be con 
nected directly to both the processor and coprocessor, or a 
data bus other than a PCI data bus, such as an ISA data bus, 
used to transfer information internally within the network 
switch 901. 
FIG. 10 shows a system diagram of Java mobile agents 
compatible with the present invention. A network 1001 
containing optivity software running on a NMS 1003 com 
municates via Java mobile agents 1004 with a ?le server 
1005, which in turn may communicate via transferred agents 
1006 with a network switch 1007. The network switch 1007 
may use transferred agents 1008 to communicate with 
another ?le server 1009, which uses transferred agents 1010 
to communicate with a public network 1013 such as the 
internet via gateway 1011. Finally, the transferred agents 
1012 may be used to communicate with the NMS 1003. 
While the invention is described in terms of preferred 
embodiments in a speci?c system environment, those of 
ordinary skill in the art will recogniZe that the invention can 
be practiced, with modi?cation, in other and different hard 
ware and software environments within the spirit and scope 
of the appended claims. 
What is claimed is: 
1. A network apparatus comprising: 
an external network data port; 
a processor coupled to external network data port; 
a data bus coupled to the processor; 
a memory coupled to the processor and the data bus to 
store data and program instructions; 
a maintenance data port coupled to the data bus; and 
a coprocessor coupled to the data bus to monitor a How of 
network data through the external network data port, 
analyZe information regarding the How of network 
data, and automatically recon?gure the How of network 
data supported by the network apparatus in response to 
the information indicating that a threshold condition, 
being data prestored within the memory, has been met. 
2. The network apparatus of claim 1 wherein the data bus 
is a Peripheral Component Interconnect bus.
US 6,170,015 B1 
7 
3. A method comprising: 
monitoring information related to network traf?c data on 
the external netWork data port internally Within a 
netWork switch; 
comparing the information With at least one prede?ned 
threshold condition; and 
automatically recon?guring the netWork sWitch if the 
information meets or exceeds the at least one pre 
de?ned threshold condition by transferring information 
into the internal memory through a maintenance data 
port. 
4. The netWork apparatus of claim 1 Wherein the main 
tenance data port is coupled to an external netWork main 
tenance station. 
5. The netWork apparatus of claim 1 further comprising a 
set of monitor program instructions stored in the memory 
and executed by the coprocessor. 
6. The netWork apparatus of claim 5 Wherein the set of 
monitor program instructions comprises program instruc 
tions transferred to the memory through the maintenance 
data port from an external netWork maintenance station. 
7. The netWork apparatus of claim 1 further comprising a 
set of netWork con?guator program instructions stored in the 
memory and executed by the coprocessor. 
8. The netWork apparatus of claim 7 Wherein the set of 
netWork con?guator program instructions comprises pro 
gram instructions transferred to the memory through the 
maintenance data port from an external netWork mainte 
nance station. 
9. The netWork apparatus of claim 1 Wherein the proces 
sor transfers monitor information through the maintenance 
data port to an external netWork maintenance station. 
10. A method for con?guring a netWork sWitch having an 
external netWork data port, a maintenance data port, 
processor, memory, data bus, and coprocessor, the method 
comprising: 
loading softWare for use by the coprocessor to monitor 
netWork data traf?c through the maintenance data port; 
10 
15 
25 
8 
monitoring netWork data traf?c on the external netWork 
data port by the coprocessor; 
comparing the netWork data traf?c to at least one pre 
de?ned threshold condition; and 
automatically con?guring the netWork sWitch With the 
coprocessor if the netWork data traf?c meets the at least 
one prede?ned threshold condition. 
11. The method of claim 10, Wherein the loading of the 
softWare further comprises transferring a set of monitor 
program instructions to the memory through a maintenance 
data port from an external netWork maintenance station. 
12. The method of claim 10 further comprising transfer 
ring a set of netWork con?guator program instructions to the 
memory through a maintenance data port from an external 
netWork maintenance station. 
13. The method of claim 10 further comprising uploading 
monitor information about the netWork data to an external 
netWork maintenance station through a maintenance data 
port. 
14. The method of claim 10 Wherein the act of automati 
cally con?guring the netWork sWitch comprises con?guring 
the netWork sWitch in response to instructions received from 
the coprocessor. 
15. The method of claim 10 Wherein the act of automati 
cally con?guring the netWork sWitch comprises con?guring 
the netWork sWitch in response to instructions received from 
an external netWork maintenance station through a mainte 
nance data port. 
16. The method of claim 3 Wherein the recon?guring of 
the netWork sWitch includes 
transferring Java bytecode to a Java Virtual Machine 
loaded in the netWork sWitch; and 
converting the Java bytecode into machine code executed 
by the netWork sWitch.

More Related Content

PDF
Method and apparatus for automatically configuring a network switch
PPTX
Zenith Networks: Jump Start JUNOS
PDF
IXP 23XX Network processor
PDF
Ethernet Frames Explained
PDF
Grid proxy architecture for network resources
PDF
Method and apparatus for intelligent management of a network element
PDF
Optimizing network connections
PDF
Grid proxy architecture for network resources
Method and apparatus for automatically configuring a network switch
Zenith Networks: Jump Start JUNOS
IXP 23XX Network processor
Ethernet Frames Explained
Grid proxy architecture for network resources
Method and apparatus for intelligent management of a network element
Optimizing network connections
Grid proxy architecture for network resources

Similar to Network apparatus with Java co-processor (20)

PDF
Photonic line sharing for high-speed routers
PDF
Method and apparatus for transporting parcels of data using network elements ...
PDF
Content-aware dynamic network resource allocation
PDF
Method and apparatus for intelligent management of a network element
PDF
How to Ensure Next-Generation Services
PDF
Dynamic assignment of traffic classes to a priority queue in a packet forward...
PDF
TECHNICAL WHITE PAPER: NetBackup Appliances WAN Optimization
PDF
Method and apparatus for preconditioning data to be transferred on a switched...
PDF
Us4146749 telecommunications network having multi function spare network block
PDF
Method and apparatus for accessing network information on a network device
PDF
Content-aware dynamic network resource allocation
PDF
Content-aware dynamic network resource allocation
PDF
Method and apparatus for automated negotiation for resources on a switched un...
PDF
Method and apparatus for dynamically loading and managing software services o...
PDF
Sustainable Wireless Network-On-chip Architectures 1st Edition Murray
PDF
US20030139919
PDF
Computer networks--introduction computer-networking
PDF
Simulation model of dc servo motor control
PDF
Performance Evaluation of a Distributed System Based Upon Fault Tree Analysis
PDF
B017140612
Photonic line sharing for high-speed routers
Method and apparatus for transporting parcels of data using network elements ...
Content-aware dynamic network resource allocation
Method and apparatus for intelligent management of a network element
How to Ensure Next-Generation Services
Dynamic assignment of traffic classes to a priority queue in a packet forward...
TECHNICAL WHITE PAPER: NetBackup Appliances WAN Optimization
Method and apparatus for preconditioning data to be transferred on a switched...
Us4146749 telecommunications network having multi function spare network block
Method and apparatus for accessing network information on a network device
Content-aware dynamic network resource allocation
Content-aware dynamic network resource allocation
Method and apparatus for automated negotiation for resources on a switched un...
Method and apparatus for dynamically loading and managing software services o...
Sustainable Wireless Network-On-chip Architectures 1st Edition Murray
US20030139919
Computer networks--introduction computer-networking
Simulation model of dc servo motor control
Performance Evaluation of a Distributed System Based Upon Fault Tree Analysis
B017140612
Ad

More from Tal Lavian Ph.D. (20)

PDF
Ultra low phase noise frequency synthesizer
PDF
Ultra low phase noise frequency synthesizer
PDF
Systems and methods to support sharing and exchanging in a network
PDF
Systems and methods for visual presentation and selection of IVR menu
PDF
Grid proxy architecture for network resources
PDF
Ultra low phase noise frequency synthesizer
PDF
Systems and methods for electronic communications
PDF
Ultra low phase noise frequency synthesizer
PDF
Ultra low phase noise frequency synthesizer
PDF
Radar target detection system for autonomous vehicles with ultra-low phase no...
PDF
Grid proxy architecture for network resources
PDF
Method and apparatus for scheduling resources on a switched underlay network
PDF
Dynamic assignment of traffic classes to a priority queue in a packet forward...
PDF
Method and apparatus for using a command design pattern to access and configu...
PDF
Reliable rating system and method thereof
PDF
Time variant rating system and method thereof
PDF
Systems and methods for visual presentation and selection of ivr menu
PDF
Ultra low phase noise frequency synthesizer
PDF
Ultra low phase noise frequency synthesizer
PDF
Systens and Methods For Electronic Communication
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
Systems and methods to support sharing and exchanging in a network
Systems and methods for visual presentation and selection of IVR menu
Grid proxy architecture for network resources
Ultra low phase noise frequency synthesizer
Systems and methods for electronic communications
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
Radar target detection system for autonomous vehicles with ultra-low phase no...
Grid proxy architecture for network resources
Method and apparatus for scheduling resources on a switched underlay network
Dynamic assignment of traffic classes to a priority queue in a packet forward...
Method and apparatus for using a command design pattern to access and configu...
Reliable rating system and method thereof
Time variant rating system and method thereof
Systems and methods for visual presentation and selection of ivr menu
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
Systens and Methods For Electronic Communication
Ad

Recently uploaded (20)

PDF
Dynamic Checkweighers and Automatic Weighing Machine Solutions
PPT
Hypersensitivity Namisha1111111111-WPS.ppt
PPTX
Lecture-3-Computer-programming for BS InfoTech
PPTX
PLC ANALOGUE DONE BY KISMEC KULIM TD 5 .0
PPTX
Lecture 3b C Library _ ESP32.pptxjfjfjffkkfkfk
PPTX
Entre CHtzyshshshshshshshzhhzzhhz 4MSt.pptx
PPTX
A Clear View_ Interpreting Scope Numbers and Features
PPTX
02fdgfhfhfhghghhhhhhhhhhhhhhhhhhhhh.pptx
PPTX
DEATH AUDIT MAY 2025.pptxurjrjejektjtjyjjy
PPTX
PROGRAMMING-QUARTER-2-PYTHON.pptxnsnsndn
PPTX
Operating System Processes_Scheduler OSS
DOCX
fsdffdghjjgfxfdghjvhjvgfdfcbchghgghgcbjghf
PPTX
Nanokeyer nano keyekr kano ketkker nano keyer
PPTX
Embeded System for Artificial intelligence 2.pptx
DOCX
A PROPOSAL ON IoT climate sensor 2.docx
PPTX
quadraticequations-111211090004-phpapp02.pptx
PPT
Lines and angles cbse class 9 math chemistry
PPTX
1.pptxsadafqefeqfeqfeffeqfqeqfeqefqfeqfqeffqe
PDF
Dozuki_Solution-hardware minimalization.
PPTX
Computers and mobile device: Evaluating options for home and work
Dynamic Checkweighers and Automatic Weighing Machine Solutions
Hypersensitivity Namisha1111111111-WPS.ppt
Lecture-3-Computer-programming for BS InfoTech
PLC ANALOGUE DONE BY KISMEC KULIM TD 5 .0
Lecture 3b C Library _ ESP32.pptxjfjfjffkkfkfk
Entre CHtzyshshshshshshshzhhzzhhz 4MSt.pptx
A Clear View_ Interpreting Scope Numbers and Features
02fdgfhfhfhghghhhhhhhhhhhhhhhhhhhhh.pptx
DEATH AUDIT MAY 2025.pptxurjrjejektjtjyjjy
PROGRAMMING-QUARTER-2-PYTHON.pptxnsnsndn
Operating System Processes_Scheduler OSS
fsdffdghjjgfxfdghjvhjvgfdfcbchghgghgcbjghf
Nanokeyer nano keyekr kano ketkker nano keyer
Embeded System for Artificial intelligence 2.pptx
A PROPOSAL ON IoT climate sensor 2.docx
quadraticequations-111211090004-phpapp02.pptx
Lines and angles cbse class 9 math chemistry
1.pptxsadafqefeqfeqfeffeqfqeqfeqefqfeqfqeffqe
Dozuki_Solution-hardware minimalization.
Computers and mobile device: Evaluating options for home and work

Network apparatus with Java co-processor

  • 1. US006170015B1 (12) United States Patent (10) Patent N0.: US 6,170,015 B1 Lavian (45) Date of Patent: Jan. 2, 2001 (54) NETWORK APPARATUS WITH JAVA CO- 5,892,932 * 4/1999 Kim ................................... .. 710/131 PROCESSOR 5,898,669 * 4/1999 Shimony et a1. 370/232 5,963,620 * 10/1999 Frankel et a1. .. 379/9305 (75) Inventor: Ta] L Lavian, Sunnyvale, CA (Us) 5,982,778 * 11/1999 Mangin et a1. .. 370/445 5,983,269 * 11/1999 Mattson et a1. .................... .. 709/221 (73) Assignee: £21236 Networks Limited, Montreal * Cited by examiner Primary Examiner—Viet Vu ( * ) Notice: Under 35 USC. 154(b), the term of this (74) Attorney, Agent, or Firm—Blakely Sokoloff Taylor & patent shall be extended for 0 days. Zafman LLP 57 ABSTRACT (21) Appl. N0.: 09/080,143 ( ) . _ A method and apparatus for automatically con?guring a (22) Flled' May 15’ 1998 network switch having external network data ports, a ( 51 ) Int. Cl.7 .................................................... .. G06F 13 / 00 P rocessor, memor y , data bus, and C0 p TOCeSSOr- Network data (52) us. Cl. ........................ .. 709/232; 709/223; 709/224; is monitored on the @Xternal network data port Information 709/235; 709/238 about the network data traf?c is compared to one or more (58) Field of Search 709/220 221 threshold conditions. The network switch is automatically 709 233’ 234’ con?gured by the coprocessor if the network data meets one ’ ’ ’ 235’ 23g 242’ 256 of the threshold conditions. The monitor and con?guration ’ ’ ’ functions can be performed by software running on the (56) References Cited coprocessor which has been downloaded from an external network maintenance station through a maintenance data U-S- PATENT DOCUMENTS port. Information about the network data traf?c can be 5 668 857 * 9/1997 McHale ........................... .. 379/9507 uploaded to the external network maintenance Station 5,696,764 * 12/1997 Soumiya et a1. .. 370/395 through a malntenance data Port 5,742,606 * 4/1998 Iliadis et a1. .... .. 370/413 5,832,232 * 11/1998 Danneels ............................ .. 709/235 16 Claims, 9 Drawing Sheets 303 F 301 f % Web B/‘OWSEI‘ 1 ,__|—% 311 I: B: 315 305 2 Event / 307 ,5 é ) Routing Switch : Authentication Server Applications Server
  • 2. U.S. Patent Jan. 2, 2001 Sheet 1 0f 9 US 6,170,015 B1 @ 1131: > 0103 —i > f 105 —] 107 —/ 0 :i > _f 109 MAINTENANCE DA TA PORT /' 901 N 913 COPROCESSOR 909 -/ 23? 907 MEMORY 905 ’1 911 PROCESSOR NETWORK DA TA P0RT5/ 903
  • 3. U.S. Patent Jan. 2, 2001 Sheet 2 0f 9 US 6,170,015 B1 /e2 ,3 w6uE 6NmE @NmE
  • 4. U.S. Patent Jan. 2, 2001 Sheet 3 0f 9 US 6,170,015 B1 @Em UmR / E55:8N$ SM|.
  • 5. U.S. Patent Jan. 2, 2001 Sheet 4 0f 9 US 6,170,015 B1 QkmQim:m m? Qw8E53mm kmém ETK k3mtmwm mbwk w @E 5“3335$.,. “ER? QREIJ EEmma
  • 6. U.S. Patent Jan. 2, 2001 Sheet 5 0f 9 US 6,170,015 B1 @mE. 3m.m: gmgsé m§(61 w:aIs , ?E&a0.- m3 mu.m.| EQEQE B3E%ES EQgQg AMJEQEQEE E ?Swagmi 5.5g: 3MmE .
  • 9. U.S. Patent Jan. 2, 2001 Sheet 8 0f 9 US 6,170,015 B1 6%E wEQESQQ EmEqw QEQRQ mg EE5E3E6S EBSE gRImés éqv may “g8.m%
  • 10. US 6,170,015 B1 U.S. Patent Jan. 2, 2001 Sheet 9 0f 9 2.3[ GQNE. OEm5Rkmnm%g 3ik w3 m . V2.9 . @E :QNm ag. Qkmimha NNSN QQg 0mw was. bscqc 82 lllll] Q
  • 11. US 6,170,015 B1 1 NETWORK APPARATUS WITH JAVA CO PROCESSOR FIELD OF THE INVENTION This invention relates generally to data communications networks, and more particularly, to a method and apparatus for automatically con?guring a netWork sWitch With a copro cessor. BACKGROUND OF THE INVENTION Computer netWorks are used to interconnect many com puting resources, including computers, Workstations, servers, printers, modems, and storage devices. For example, tWo or more computers may be connected together through a netWork. NetWork users are able to share ?les, printers and other resources, send messages and run appli cations on remote computers. An important part of any computer netWork includes the physical components or netWork communications devices used to interconnect the computing resources. One netWork communications device used to interconnect multiple computing resources is a chassis-based system designed to accommodate a number of internal cards. The computing resources such as computers are coupled to the internal cards of the chassis-based system. Once the com puters are coupled to the internal cards, the computers are coupled to the netWork. To accommodate netWork groWth, additional internal cards may be purchased and added to the chassis-based system. With the additional internal cards installed, additional computing resources may be added to the netWork. A disadvantage of these chassis-based systems is that there is a relatively large initial investment When purchasing the chassis because of the large amount of overhead associated With chassis-based systems. An alternative to expensive chassis-based systems is the use of less expensive standalone netWork communications devices or units that have a ?xed number of ports for connecting computing resources or stations to the netWork. Such standalone netWork communications devices include stackable sWitches or the like. Although additional ports can not be added to each individual standalone unit, separate standalone units can be stacked, cascaded or coupled to accommodate netWork groWth. As a result, there is a loWer startup cost When establishing a computer netWork With the standalone units in comparison With chassis-based systems. Furthermore, netWork administrators still have the ?exibility to increase the siZe of the netWork With the less-expensive standalone units. FIG. 1 illustrates multiple netWork communications devices 103, 105, 107, 109 and 111 coupled together to form a computer netWork 101. Multiple computing resources (not shoWn) are coupled to each netWork communications device 103, 105, 107, 109 and 111. In one embodiment, netWork communications devices 103, 105, 107, 109 and 111 are stackable sWitches coupled together through bus 113. Bus 113 is used to tie together the sWitch netWork fabric of computer netWork 101. It are noted by one of ordinary skill in the art that the utiliZation of bus 113 is an extension of the chassis-based designs discussed earlier. The internal cards of the chassis-based systems are commonly coupled to high speed buses Within the chassis-based systems. The use of stackable sWitches alloWs netWork adminis trators to build systems having multiple physical ports to various computing resources on the netWork. Different types of netWork use patterns may typically be handled most ef?ciently by different con?gurations of a netWork switch. 10 15 25 35 45 55 65 2 Currently, a netWork administrator must manually monitor and analyZe netWork traf?c patterns, and also manually make any changes to the con?guration of a netWork sWitch through the use of an external netWork maintenance station (NMS). Although some netWork sWitches may have data gathering and reporting capabilities, a netWork administrator must still take a considerable amount of time to analyZe the netWork traf?c pattern and manually recon?gure the sWitch. Delays in rerouting netWork traf?c are directly related to the time required to analyZe netWork traffic and recon?gure a netWork sWitch by a netWork administrator. Therefore, there is a need for a Way to automatically monitor and con?gure a netWork sWitch according to changes in netWork traffic. There is a further need to automatically con?gure a netWork sWitch Which does not reduce the How of data through the sWitch. SUMMARY OF THE INVENTION The present invention provides a method and apparatus for automatically con?guring a netWork sWitch having exter nal netWork data ports, a processor, memory, data bus, and coprocessor. NetWork data is monitored on the external netWork data port. Information about the netWork data traf?c is compared to one or more threshold conditions. The netWork sWitch is automatically con?gured by the copro cessor if the netWork data meets one of the threshold conditions. The monitor and con?guration functions can be performed by softWare running on the coprocessor Which has been doWnloaded from an external netWork maintenance station through a maintenance data port. Information about the netWork data traf?c can be uploaded to the external netWork maintenance station through a maintenance data port. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is illustrated by Way of example and may be better understood by referring to the folloWing description in conjunction With the accompanying draWings, in Which like references indicate similar elements and in Which: FIG. 1 shoWs a computer netWork coupled together With a bus architecture compatible With the present invention; FIG. 2A—2F shoW alternative netWork sWitch con?gura tions compatible With the present invention; FIG. 3 shoWs a block diagram of a high level system architecture compatible With the present invention; FIG. 4 shoWs a block diagram of a system architecture and protocol relationships compatible With the present invention; FIG. 5 shoWs a block diagram of doWnloading intelligent agents compatible With the present invention; FIG. 6 shoWs a block diagram of a Java application environment compatible With the present invention; FIG. 7 shoWs a block diagram of an open system archi tecture compatible With the present invention; FIG. 8 shoWs an auto-con?guring netWork sWitch com patible With the present invention; FIG. 9 shoWs a netWork sWitch With coprocessor com patible With the present invention; FIG. 10 shoWs a system diagram of Java mobile agents compatible With the present invention. DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE PRESENT INVENTION In the folloWing description of a preferred embodiment, reference is made to the accompanying draWings Which
  • 12. US 6,170,015 B1 3 form a part hereof, and in Which is shown by Way of illustration a speci?c embodiment in Which the invention may be practiced. It is to be understood that other embodi ments may be utilized and structural changes may be made Without departing from the scope of the present invention. The present invention provides for a method and appa ratus for automatically con?guring a netWork sWitch having external netWork data ports, a processor, memory, data bus, and coprocessor. Network data is monitored on the external netWork data port. Information about the netWork data traf?c is compared to one or more threshold conditions. The netWork sWitch is automatically con?gured by the copro cessor if the netWork data meets one of the threshold conditions. The monitor and con?guration functions can be performed by softWare running on the coprocessor Which has been doWnloaded from an external netWork maintenance station through a maintenance data port. Information about the netWork data traf?c can be uploaded to the external netWork maintenance station through a maintenance data port. For the purpose of illustration, one embodiment of present invention is described beloW in the context of a Java virtual machine in a Java development environment. Information and speci?cations relating to the Java development environ ment are described in the document “Java Virtual Machine Speci?cation”, October, 1997, Sun Microsystems. It Will be recogniZed by one of ordinary skill in the art that the present invention may be used With other development environ ments Without loss of generality, such as Microsoft Visual C/C++. Java is a programming language similar to the object oriented language C++, and consists of runtime libraries. These libraries provide a standard set of facilities for manipulating the user interface, communicating across a netWork, etc. TWo Java runtime libraries, remote method invocation (RMI) and and Java native interface (JNI) alloW a single application to run on multiple hardWare platforms Without modi?cation. Java preferably isolates applications from both hardWare and operating systems. Unlike traditional computer programs, Which are almost alWays compiled for a hardWare platform using tools that preclude their running on anything else, Java applications can be designed to run on any system that has a Java Virtual Machine (VM), also knoWn as a Java Runtime Engine. The VM takes Java byte code and trans forms it on the ?y into instructions that can be executed by the PC. The same byte code can be interpreted as hardWare level instructions for any other platform With a VM imple mentation. Java can be used to create tWo types of programs: appli cations and applets. Java applications, like those Written in other languages, are standalone programs. They require a VM to run, but this runtime environment may be separate, embedded in the OS or in the application itself. Applets rely on a Web broWser With a VM (such as Microsoft Internet Explorer or Netscape Communicator). Since applets are designed to be doWnloaded, they are also typically much smaller than applications. In addition to platform independence, Java applications offer several other advantages. First, Java Was designed for netWork computing and makes hiding the differences betWeen local and remote resources easy. This alloWs Java to be used With thin-client computing, in Which most of the processing and storage is handled by a server, While the client is used largely for display and interaction. Typical thin clients include netWork computers (NCs), Which are low 10 15 25 35 45 55 65 4 cost personal computers typically connected to a private or public netWork. Second, the Java programming language has a rigorous object-oriented model that makes it possible to build modular applications. An end user need only doWnload a particular feature of a Java Word processor When needed, for example. This dynamic design also lets developers create custom desktop environments that display only those appli cations required by each end user. The Java platform or runtime environment is the platform that enables Java applications and applets to run on any system regardless of the operating system and underlying hardWare. Rather than compiling code into a format designed for a speci?c platform, developers compile Java source code into an intermediate form, bytecode, Which can be executed on any system With a runtime environment. A Class Loader transfers the Java bytecode to the Java Virtual Machine (JVM). As the heart of the Java platform, the JVM is basically a softWare CPU that sits betWeen applications and the platform consisting of the operating system and hardWare. The JVM interprets bytecode for the platform or uses a just-in-time JIT) compiler to convert the bytecode to machine code for that speci?c platform. Java class libraries, Which are ?les that make up the standard application pro gramming interface (API) for applications and applets, are also loaded dynamically as needed. The runtime system, Which manages threads, memory, and other system resources, preferably executes the inter preted or machine code on the end platform. The program may be run Within a broWser as an applet, or as a standalone application. JavaBeans are reusable building blocks that make up object-oriented Java programs. JavaBeans are de?ned by an API speci?cation for a visual component architecture based on the Java language. Preferably, any Java components conforming to the JavaBeans component model can be reused in any other J avaBean-compliant application. The present invention is used to con?gure a netWork sWitch or other apparatus having a processor and memory Which can be modi?ed through softWare. FIGS. 2A—2F shoW alternative netWork sWitch con?gurations typically chosen by a netWork administrator, and Which may be automatically con?gured by the present invention. FIG. 2A shoWs a L2 sWitch con?guration; FIG. 2B shoWs a con?gu ration Which routes or sWitches on any port; FIG. 2C shoWs a con?guration Which routes on all ports; FIG. 2D shoWs a con?guration Which creates virtual local area netWorks (VLANs) by policy or port; FIG. 2E shoWs a con?guration Which routes betWeen VLANs With simple softWare con ?gurations; FIG. 2F shoWs a con?guration Which demon strates arbitrary netWork routing and sWitching. It Will be recogniZed by one of ordinary skill in the art that con?gu rations shoWn in FIGS. 2A—2F are for illustration purposes only, and that other con?gurations may be implemented With the present invention Without loss of generality. Different applications or users may be assigned different priorities. For example, high level netWork applications such as real time netWork monitoring and tWo-Way voice and video may be given a loW priority, equivalent to that of non-critical email or internet broWsing. Alternatively, an important user such as a corporate CEO may be given a higher netWork priority than other employees. FIG. 3 shoWs a block diagram of a high level system architecture compatible With the present invention. A net Work maintenance station (NMS) 301 may be coupled to a netWork routing sWitch 305 via a maintenance data port on the netWork sWitch 305. Apreferred personal computer 303
  • 13. US 6,170,015 B1 5 running browser software may optionally communicate with both the NMS 301 and network switch 305. Network monitor software 311 may preferably be downloaded from the NMS 301 to a processor in the network switch 305 for monitoring network data traf?c. The monitor software 311 is downloaded through a control data channel, preferably through the maintenance data port on the network switch 305, and not as network traf?c being routed through the network switch 305. The use of a control channel preferably does not impact the How of network traf?c through the network switch 305. Once the network monitor software 311 has been downloaded to the network switch 305, events and information 315 relating to network traf?c can be uploaded to either the NMS 301 or an applications server 307. Analysis of the network events 315 may be performed either by the processor on the network switch 305 or by the NMS 301 or applications server 307. Analysis of the network events 315 preferably involves monitoring the events 315 to see if they meet one or more of a set of prede?ned threshold conditions. If so, network con?guration software 313 can be downloaded either from the NMS 301 or applications server 307 in recon?gure the network switch 305. An authentica tion server 309 may optionally be used to authenticate data and actions taking place on the network switch 305. FIG. 4 shows a preferred system architecture and proto col. Browser software 401 may preferably communicate with a network switch 403 through a variety of protocols, including HyperText Transfer Protocol (HTTP) 405, and may also exchange software applets 407 with the switch 403. Optivity software may preferably communicate with the switch 403 through Simple Network management Pro tocol (SNMP) 411 or through distributed optivity applica tions or oplets 409. An application server 415 may prefer ably communicate with the switch 403 through Remote Method Invocation (RMI) 421 or Java Beans 423. FIG. 5 shows a preferred method of downloading intel ligent agents. A network switch or routing device 501 contains a physical hardware layer 503, preferably including a processor and memory. An operating system 505 runs as a software application on top of the hardware layer 503. An implementation of a JVM 507 and internet protocol (IP) stack 509 runs on top of the operating system layer 505. A download channel 513, typically a maintenance data port, is used to download an intelligent agent 511 to the network switch 501. The intelligent agent 511 typically performs one or more functions, including but not limited to security 515, authentication of information 517, monitoring network data traf?c 519, or automatically con?guring 521 the network switch 501. FIG. 6 shows a preferred Java application environment. A Java virtual machine 601 may run on top of a number of operating systems, including but not limited to JavaOS 603, Windows NT 605, Solaris 607, RT-OS 609, or others 611. System functions such as networking 613, utilities 615, programming languages 617, input/output (I/O) 619, and abstract window toolkit (AWT) 621 are all supported by the JVM 601. A network switch (API) 623 and network switch libraries 625 are used to support end user applications 627 or third party applications 629 running on the network switch. FIG. 7 shows a preferred open system architecture com patible with the present invention. A network switch 701 includes a hardware layer 703, operating system 705, and a JVM 707. Java software libraries 709 and a data commu nications API 711 preferably run on top of the JVM 707. A download or control channel 715 is used to download applications programs including Java Beans 713, which 10 15 20 25 30 35 40 45 55 60 65 6 communicate with the device 721 through a Java API 717 and a C/C++ API 719. FIG. 8 shows an auto-con?guring network switch com patible with the present invention. A network switch 801 communicates with a NMS 803 through a download channel 807. Monitor software 805 may be downloaded from the NMS 803 through the download channel 807. If a network event or information meets a threshold condition 809, net work information may be optionally uploaded 811 to the NMS 803. An appropriate application 815 may be down loaded 813 from the NMS 803 in response to the uploaded network information. FIG. 9 shows a network switch 901 with coprocessor 909 compatible with the present invention. In order not to impact the throughput of data on the network, con?guration infor mation is preferably sent through a maintenance port or control channel 913 rather than through the network switch data channel 903, 905. In addition, a coprocessor 909 is preferably used to run monitor and con?guration software stored in memory 907 in order not to impact the How of data through network ports 903 and processor 905. A data bus 911, preferably a PCI data bus, is used to transfer informa tion between the processor 905, memory 907, coprocessor 909, and the maintenance data port 913. It will be recogniZed by one of ordinary skill in the art that changes may be made in the connections between and the types of processor, memory, and network components without loss of general ity. For example, the memory may alternatively be con nected directly to both the processor and coprocessor, or a data bus other than a PCI data bus, such as an ISA data bus, used to transfer information internally within the network switch 901. FIG. 10 shows a system diagram of Java mobile agents compatible with the present invention. A network 1001 containing optivity software running on a NMS 1003 com municates via Java mobile agents 1004 with a ?le server 1005, which in turn may communicate via transferred agents 1006 with a network switch 1007. The network switch 1007 may use transferred agents 1008 to communicate with another ?le server 1009, which uses transferred agents 1010 to communicate with a public network 1013 such as the internet via gateway 1011. Finally, the transferred agents 1012 may be used to communicate with the NMS 1003. While the invention is described in terms of preferred embodiments in a speci?c system environment, those of ordinary skill in the art will recogniZe that the invention can be practiced, with modi?cation, in other and different hard ware and software environments within the spirit and scope of the appended claims. What is claimed is: 1. A network apparatus comprising: an external network data port; a processor coupled to external network data port; a data bus coupled to the processor; a memory coupled to the processor and the data bus to store data and program instructions; a maintenance data port coupled to the data bus; and a coprocessor coupled to the data bus to monitor a How of network data through the external network data port, analyZe information regarding the How of network data, and automatically recon?gure the How of network data supported by the network apparatus in response to the information indicating that a threshold condition, being data prestored within the memory, has been met. 2. The network apparatus of claim 1 wherein the data bus is a Peripheral Component Interconnect bus.
  • 14. US 6,170,015 B1 7 3. A method comprising: monitoring information related to network traf?c data on the external netWork data port internally Within a netWork switch; comparing the information With at least one prede?ned threshold condition; and automatically recon?guring the netWork sWitch if the information meets or exceeds the at least one pre de?ned threshold condition by transferring information into the internal memory through a maintenance data port. 4. The netWork apparatus of claim 1 Wherein the main tenance data port is coupled to an external netWork main tenance station. 5. The netWork apparatus of claim 1 further comprising a set of monitor program instructions stored in the memory and executed by the coprocessor. 6. The netWork apparatus of claim 5 Wherein the set of monitor program instructions comprises program instruc tions transferred to the memory through the maintenance data port from an external netWork maintenance station. 7. The netWork apparatus of claim 1 further comprising a set of netWork con?guator program instructions stored in the memory and executed by the coprocessor. 8. The netWork apparatus of claim 7 Wherein the set of netWork con?guator program instructions comprises pro gram instructions transferred to the memory through the maintenance data port from an external netWork mainte nance station. 9. The netWork apparatus of claim 1 Wherein the proces sor transfers monitor information through the maintenance data port to an external netWork maintenance station. 10. A method for con?guring a netWork sWitch having an external netWork data port, a maintenance data port, processor, memory, data bus, and coprocessor, the method comprising: loading softWare for use by the coprocessor to monitor netWork data traf?c through the maintenance data port; 10 15 25 8 monitoring netWork data traf?c on the external netWork data port by the coprocessor; comparing the netWork data traf?c to at least one pre de?ned threshold condition; and automatically con?guring the netWork sWitch With the coprocessor if the netWork data traf?c meets the at least one prede?ned threshold condition. 11. The method of claim 10, Wherein the loading of the softWare further comprises transferring a set of monitor program instructions to the memory through a maintenance data port from an external netWork maintenance station. 12. The method of claim 10 further comprising transfer ring a set of netWork con?guator program instructions to the memory through a maintenance data port from an external netWork maintenance station. 13. The method of claim 10 further comprising uploading monitor information about the netWork data to an external netWork maintenance station through a maintenance data port. 14. The method of claim 10 Wherein the act of automati cally con?guring the netWork sWitch comprises con?guring the netWork sWitch in response to instructions received from the coprocessor. 15. The method of claim 10 Wherein the act of automati cally con?guring the netWork sWitch comprises con?guring the netWork sWitch in response to instructions received from an external netWork maintenance station through a mainte nance data port. 16. The method of claim 3 Wherein the recon?guring of the netWork sWitch includes transferring Java bytecode to a Java Virtual Machine loaded in the netWork sWitch; and converting the Java bytecode into machine code executed by the netWork sWitch.