SlideShare a Scribd company logo
US007313608B1 
(12) United States Patent (10) Patent N0.: US 7,313,608 B1 
Swedor et a]. (45) Date of Patent: Dec. 25, 2007 
(54) METHOD AND APPARATUS FOR USING 6,542,515 B1 * 4/2003 Kumar et al. ............. .. 370/463 
DOCUMENTS WRITTEN IN A MARKUP 6,546,419 B1* 4/2003 Humpleman et a1. . 709/223 
LANGUAGE TO ACCESS AND CONFIGURE 6,757,720 B1* 6/2004 Weschler, Jr. ...... .. 709/220 
NETWORK ELEMENTS 2002/0032709 A1* 3/2002 Gessner .......... .. 707/540 
2003/0014505 A1* 1/2003 Ramberg et al. .......... .. 709/223 
(75) Inventors: Olivier K. SWedor, Auvemier (CH); 
Tal I. Lavian, Sunnyvale, CA (US); OTHER PUBLICATIONS 
Robert J‘ Duncan’ San Francisco’ CA Ajita et al., “XNAMIiAn extensible SML-based paragigm for 
(Us) network and application management instrumentation,” 1999, IEE 
International Conference on Networks, 1999, pp. 115-124 (shown 
(73) Assignee: Nortel Networks Limited (CA) as pp, 1-10),* 
Jaeger et a1., “Dynamic Classi?cation in Silicon-based Forwarding 
( * ) Notice: Subject to any disclaimer, the term of this Engine Environments,” Nov. 1999, 10th IEEE Worksho on Local 
patent is extended or adjusted under 35 and Metropolitan Area Networks, 1999, pp. 103-109.* 
U.S.C. 154(b) by 543 days. (Continued) 
(21) APP1- N04 09/692,949 Primary ExamineriArio Etienne 
_ Assistant ExamineriSean Reilly 
(22) Flled: Oct‘ 20’ 2000 (74) Attorney, Agent, or FirmiMcGuinness & Manaras 
Related US. Application Data LLP 
(60) Provisional application No. 60/212,979, ?led on Jun. (57) ABSTRACT 
21, 2000. 
An XML accessible network device is capable of performing 
(51) Int- Cl- functions in response to an XML encoded request transmit 
G06F 15/177 (2006-01) ted over a network. It includes a network data transfer 
G06F 15/173 (2006-01) service, coupled to a network, that is capable of receiving 
(52) US. Cl. ..................................... .. 709/221; 709/223 XML encoded requests from a client also connected to the 
(58) Field of Classi?cation Search ...... .. 709/2234224, nctWork. An XML engine is capable of understanding and 
709/328, 2204222, 225, 226; 715/513 parsing the XML encoded requests according to a corre 
See application ?le for complete search history. sponding DTD. The XML engine ?irther instantiates a 
_ service using parameters provided in the XML encoded 
(56) References Cited 
U.S. PATENT DOCUMENTS 
5,541,911 A * 7/1996 Nilakantan et a1. ....... .. 370/422 
5,835,727 A * 11/1998 Wong et a1. . . . . . . . . . . . .. 709/238 
5,951,649 A * 9/1999 Dobbins et a1. 709/238 
6,269,398 B1* 7/2001 Leong et a1. ............. .. 709/224 
6,463,528 B1* 10/2002 Rajakarunanayake et al. . 713/1 
6,529,515 B1* 3/2003 RaZ et a1. ................. .. 370/401 
Receive XML 
encoded wqmi 
5102 
Pam XML 
request with mi) 
5104 
[nsunti?e and 
Launch s=m== 
5706 
Inverse! Wllh Native 
A sw to 
Execute Service 
5703 
Retrieve mpom 
Info 
5712 
FM'IIIM lll? 
Forward mm» 
Message 
sm 
request and launches the service for execution on the net 
work device. A set of device APls interacts with hardware 
and software on the network device for executing the 
requested service on the network device. If necessary, a 
response is further collected from the device and provided to 
the client in a response message. 
49 Claims, 4 Drawing Sheets
US 7,313,608 B1 
Page 2 
OTHER PUBLICATIONS 
Pal et al., “XML and Quality Objects,” Jun. 1999, IEEE 8th 
International Workshops on Enabling Technologies: Infrastructure f 
Collaborative Enterprises, 1999, pp. 315-316.* 
Ajita et al., “A Java-Based SNMP Agent for Dynamic MIBs,” Dec. 
1999, Global Telecommunications Conference, 1999, vol. la, pp. 
396-400.* 
Business Editors et al., “New Management-speci?c XML Dialect 
From Manage.Com Helps On-line Businesses Control Infrastruc 
ture, Business Processes,” Dec. 13, 1999, Business Wire, pp. llf.* 
Mcconnell, “XML Can Tie App Data Better Than SNMP,” Nov. 8, 
1999, InternetWeek, Issue 788, pp. 2llf.* 
Sahai et al., “Managing NeXt Generation E-Services,” Sep. 21, 
2000, Hewlett Packard Company, printed from www.hpl.hp.com/ 
techreports/ZOOO/HPL-2000-l20.pdf.* 
Jaeger et al., “An Active Network Services Architecture for Routers 
with Silicon-Based Forwarding Engines,” printed from www.cs. 
umd.edu/~hollings/papers/lanman99.pdf, date unknown.* 
Lavian, “Java-enabled Programmable Network Devices,” May 4, 
2000, printed from bulfy.eecs.berkeley.edu/ Seminars/ 2000/05 .May/ 
000504.lavian.html.* 
Lavian, “Open Networking Better Networking Through Program 
mability,” Aug. 2000, Nortel Networks, pp. 1-44, printed from 
www.c s .princeton .edu/nsg/workshop/tal .ppt. * 
Duffy, “HP Intros Mgmt. Apps for Router Nets,” Aug. 29, 1994, 
Network World, vol. 11, Iss. 35, p. l7.* 
Salamone, “IP Mgm’t Simpli?ed by Lucent,” Feb. 7, 2000, 
InternetWeek, Iss. 799, p. 21.* 
Cover, The SGML/ML Web Page; Nov. 1999* 
Bryan; An Introduction to the Extensible Markup Language (XML); 
1997.* 
Henry; Net Management with XML; Sep. 1999* 
DMTF; Web-Based Enterprise Management (WBEM) Standars; 
Oct. 2000* 
* cited by examiner
U.S. Patent Dec. 25, 2007 Sheet 1 of4 US 7,313,608 B1 
Network 102 
Device 104 ‘K SNMP SNMP 
Response Response 
Client 100 
FIG. 1 (Prior Art) 
DTD 202 
DTD 202 
XML 
Document Network I 02 Document 
Network 
Response Device 104’ 
Client 100’ 
FIG. 2
U.S. Patent Dec. 25, 2007 Sheet 2 0f 4 US 7,313,608 B1 
Network Data 
Transfer Service 302 
4 
XML 5 Response Packets 
Document E containing 
DTD : I SCML t 202 —_> XML Device ocurnen s 
- Engine Software and <— 
304 ‘—> Hardware ____ __ 
306 Packets 
Services __'> containing 
308 response (if 
Network Device 104’ any) 
FIG. 3 
DTD Services 
308 
XML Engine 304 
V 
Service 
Parser L h 
_> ' aunc er 
404 i 
Device 
API’s » 
406 
Response Response 
‘ Formatter ' ‘ Reirégval ' 
FIG. 4
Method and apparatus for using documents written in a markup language to access and configure network elements
U.S. Patent Dec. 25, 2007 
Receive XML 
encoded request 
S702 
l Parse XML 
request with DTD 
S704 
i Instantiate and 
Launch Service 
S706 
t Interact with Native 
HW & SW to 
Execute Service 
S708 
Response 
Required? 
S 71 0 
Retrieve Response 
Info 
7 
Format and 
Forward Response 
Message 
S714 
Sheet 4 0f 4 US 7,313,608 B1 
FIG. 7
US 7,313,608 B1 
1 
METHOD AND APPARATUS FOR USING 
DOCUMENTS WRITTEN IN A MARKUP 
LANGUAGE TO ACCESS AND CONFIGURE 
NETWORK ELEMENTS 
CROSS-REFERENCE TO RELATED 
APPLICATIONS 
The present application is based on, and claims priority 
from US. Provisional Appln. No. 60/212,979, ?led Jun. 21, 
2000. The present application is also related to co-pending 
US. application Ser. No. 09/727,341 (NOR-12675HU), 
?led Nov. 29, 2000, and co-pending US. application Ser. 
No. 09/726,758 (NOR-12678HU), ?led Nov. 29, 2000, both 
commonly owned by the assignee of the present application. 
FIELD OF THE INVENTION 
The present invention relates to network device con?gu 
ration and monitoring, and more particularly, to a method 
and apparatus for accessing, con?guring and controlling a 
device stationed on a network using documents written in a 
markup language such as XML. 
BACKGROUND OF THE INVENTION 
Computer networks continue to proliferate. As they do so, 
they become increasingly complex and dif?cult to manage. 
This problem is exacerbated when a variety of network 
devices, computers, and software are combined together to 
integrate large intranets with the Internet. 
As shown in FIG. 1, when a client 100 wants to learn 
information regarding a remote network device 104 sta 
tioned on a network 102, code executing on client 100 
formats a message requesting such information and sends it 
to the network device 104. Network device 104 must be 
preprogrammed with functionality for communicating in the 
protocol required by client 100’s message and for knowing 
exactly how to get the information requested. If so, network 
device 104 can then respond with the requested information. 
Simple network management protocol (SNMP) is one 
example of a network protocol that allows clients to learn 
information about remote network devices. SNMP allows 
network devices 104 to send alerts to a manager 102, or to 
send statistical information about traf?c, but it limits the 
kind of information that can be sent to that which is 
pre-de?ned in the management information blocks (MIBs) 
coded into the network device. Accordingly, a new MIB 
needs to be rede?ned each time a new type of information 
is maintained or is needed about the device, thus making 
network management and performance even more problem 
atic. 
SUMMARY OF THE INVENTION 
The present invention relates to an apparatus and method 
for more ef?ciently accessing, con?guring and controlling a 
network device using documents written in a markup lan 
guage such as the Extensible Markup Language (XML). 
In accordance with one aspect of the invention, an XML 
accessible network device is capable of performing func 
tions in response to an XML encoded request transmitted 
over a network. It includes a network data transfer service, 
coupled to a network, that is capable of receiving XML 
encoded requests from a client also connected to the net 
work. An XML engine is capable of understanding and 
parsing the XML encoded requests according to a corre 
20 
25 
30 
35 
40 
45 
50 
55 
65 
2 
sponding document type de?nition (DTD). The XML engine 
further instantiates a service using parameters provided in 
the XML encoded request and launches the service for 
execution on the network device. A set of device APIs 
interacts with hardware and software on the network device 
for executing the requested service on the network device. If 
necessary or desired, a response is further collected from the 
device and provided to the client in a response message. 
In accordance with another aspect of the invention, a 
method for causing a network device to locally perform a 
service comprises the steps of receiving at the network 
device a document written in accordance with a markup 
language and a corresponding document de?nition, parsing 
by the network device the received document in accordance 
with the corresponding document de?nition, and executing 
the service on the network device in accordance with the 
parsed document. 
In accordance with another aspect of the invention, a 
network device for locally performing a service in response 
to a remote request comprises means for receiving at the 
network device a document written in accordance with a 
markup language and a corresponding document de?nition, 
means for parsing by the network device the received 
document in accordance with the corresponding document 
de?nition, and means for executing the service on the 
network device in accordance with the parsed document. 
In accordance with another aspect of the invention, a 
network device for locally performing a service in accor 
dance with a received document written in a document 
markup language comprises a parser that is adapted to parse 
the received document in accordance with a document 
de?nition to obtain an identi?er of the service and a service 
launcher that is adapted to launch the service corresponding 
to the identi?er parsed from the received document. 
BRIEF DESCRIPTION OF THE DRAWINGS 
The foregoing and other features, aspects, and advantages 
of the present invention will become more apparent from the 
following detailed description when read in conjunction 
with the following drawings, wherein: 
FIG. 1 illustrates a conventional architecture for access 
ing, con?guring and controlling a network device using 
standard network protocols; 
FIG. 2 is a functional overview of an apparatus for 
accessing, con?guring and controlling a network device 
using XML encoded data in accordance with the present 
invention; 
FIG. 3 further illustrates an example of a network device 
that is con?gured in accordance with the present invention; 
FIG. 4 further illustrates an XML engine that can be 
included in a network device according to the invention such 
as that illustrated in FIG. 3; 
FIG. 5 is an architectural view of a network device that is 
con?gured in accordance with the present invention; 
FIG. 6 is an example implementation of a network device 
in accordance with the invention and the architecture 
depicted in FIG. 5; and 
FIG. 7 illustrates a process for accessing, con?guring and 
controlling a network device using XML encoded data in 
accordance with the present invention. 
DETAILED DESCRIPTION OF THE 
PREFERRED EMBODIMENTS 
The present invention will now be described in detail with 
reference to the accompanying drawings, which are pro
US 7,313,608 B1 
3 
vided as illustrative examples of preferred embodiments of 
the present invention. Notably, the implementation of certain 
elements of the present invention may be accomplished 
using software, hardWare or any combination thereof, as 
Would be apparent to those of ordinary skill in the art, and 
the ?gures and examples beloW are not meant to limit the 
scope of the present invention. Moreover, Where certain 
elements of the present invention can be partially or fully 
implemented using knoWn components, only those portions 
of such knoWn components that are necessary for an under 
standing of the present invention Will be described, and 
detailed descriptions of other portions of such knoWn com 
ponents Will be omitted so as not to obscure the invention. 
Further, the present invention encompasses present and 
future knoWn equivalents to the knoWn components referred 
to herein by Way of illustration. 
FIG. 2 is a functional overvieW of one embodiment of the 
present invention. As shoWn, a client 100' is connected in the 
conventional manner to a netWork such as the Internet or an 
intranet (i.e. LAN/WAN/MAN) 102, Which in turn is con 
nected to a netWork device 104' (eg router, sWitch, hub or 
similar device capable of processing ?xed-length or vari 
able-length packets in a network). It should be noted that 
although the features and advantages of the present inven 
tion are particularly Well suited to routers, sWitches and 
hubs, and Will be described in more detail beloW With 
reference to such devices, other netWork-aWare devices can 
be adapted for use in the present invention, and so the 
invention is not to be limited to these particular illustrative 
devices. For example, netWork device 104' may also include 
gateWays, multiplexers and other knoWn or future equiva 
lents, including those having a packet forWarding architec 
ture. 
As is apparent from FIG. 2, in contrast With the prior art, 
the present invention provides communications for access 
ing and con?guring netWork elements using XML docu 
ments. As is knoWn, XML is a metalanguage built upon the 
Standard GeneraliZed Markup Language (SGML), and is a 
tool for de?ning text markup languages, de?ned by the 
World Wide Web Consortium (W3C). An XML-de?ned 
language comprises a set of tags, attributes, and constraints 
on hoW to use them. XML is a simple, open, portable, 
extensible means of representing data. Unlike HTML, XML 
tags tell What the data means, instead of just hoW to display 
it. Further information regarding XML can be found from 
the W3C Web pages at http://WWW.W3.org/XML. 
Those skilled in the art, after being taught by the present 
disclosure, Will appreciate that there are many ?avors of 
XML and SGML and that many markup languages are 
equivalent to XML for adaptation and implementation 
according to the present invention. XML is described in 
detail in this application because of its Wide acceptance and 
adoption. HoWever, equivalents to XML that are Within the 
scope of the invention can include, for example, XSL, 
XSLT, XPath, XLink, XPointer, HyTime, DSSSL, CSS, 
SPDL, CGM, ISO-HTML, and others. 
As is further knoWn, the format of an XML document is 
de?ned by a Document Type De?nition (DTD). Accord 
ingly, the present invention includes local copies of DTD 
202 at the sending and receiving ends of the XML document. 
There can be just one DTD 202 that de?nes all communi 
cations for all applications, or there may be different DTDs 
202 for different types of applications, and those skilled in 
the art Will understand the possible variations. Further, there 
are many Ways knoWn in the art that such local copies of 
20 
25 
30 
35 
40 
45 
50 
55 
60 
65 
4 
DTD 202 can be retrieved and obtained by netWork device 
104', and the details thereof Will not be presented so as not 
to obscure the invention. 
Generally, When the client computer 100' Wants to access 
or con?gure netWork device 104' (i.e., cause netWork device 
104' to perform a service locally on the netWork device 
104'), it creates an XML request encoded in the format 
de?ned by DTD 202 but With parameters speci?c to the 
desired access or con?guration. Client 100' sends the docu 
ment over the netWork 102, Which document is received by 
the netWork device 104' in the form of data packets as is 
conventionally done. In contrast to the conventional netWork 
device 104, the netWork device 104' has been adapted to 
include functionality necessary to decode the XML encoded 
request and to perform tasks necessary to complete the 
request, including, if required, interacting With the hardWare 
and softWare of the device to perform a service locally on the 
netWork device 104'. If further needed or desired by the 
client computer, netWork device 104' may create and format 
a response to client computer 100', Which may or may not 
also be an XML encoded document. 
FIG. 3 illustrates a netWork device 104' in accordance 
With the present invention in further detail. As shoWn in FIG. 
3, netWork device 104' comprises, in part, a netWork data 
transfer service 302, an XML engine 304 that accesses local 
copies of DTD 202 and stored services 308, and device 
softWare and hardWare 306. It should be apparent that 
netWork device 104' can contain or include other compo 
nents for performing conventional sWitching and routing 
functions, for example. HoWever, the details of such addi 
tional components are not presented here so as not to 
obscure the present invention. Further, although DTD 202 
and stored services 308 are shoWn as local storages, it should 
be apparent that such storage need not be permanent. For 
example, DTDs and services may be retrieved from a remote 
server via a URL, and just a temporary representation can be 
resident on device 104' as needed by XML engine 304 
according to techniques Well understood by those of skill in 
the art. 
Device hardWare and softWare 306 represents conven 
tional sWitch or router functionality that has been adapted 
for use in the present invention. In one possible implemen 
tation, Where netWork device 104' is an Accelar/Passport 
family router sWitch from Nortel NetWorks, device hardWare 
and softWare 306 includes anASlC-based forWarding archi 
tecture, With sWitch ASlCs comprising most of the device’s 
sWitch fabric and handling most forWarding tasks among 
sWitch ports in accordance With resident forWarding rules. 
For such a device 104', device hardWare and softWare 306 
further includes a CPU and associated memory coupled to 
the sWitch fabric that runs the VxWorks real-time OS, and 
existing applications stored in memory and executed by the 
CPU that run as VxWorks “tasks” for monitoring and 
controlling and con?guring the ASIC forWarding hardWare 
via a sWitch-speci?c APl. It should be apparent that other 
types of sWitches and routers may be used in accordance 
With the invention, and that other operating systems such as 
Linux, PSOS, Vertex and RMX may comprise the device’s 
operating system. 
Services stored in database 308 preferably include appli 
cations that enhance the netWork management capabilities of 
the device 104' above and beyond that Which is possible With 
a conventional netWork device 104. Such applications may 
include means for setting and reporting system variables that 
are not limited by pre-con?gured MlBs. Such applications 
may further include means for con?guring the forWarding 
architecture so as to enable the device to ?lter netWork traf?c
US 7,313,608 B1 
5 
containing packets generated from activities not essential to 
a company’s business, such as browsing the Internet. Other 
examples of services can include event loggers and moni 
tors, means for establishing different levels of quality of 
service in packet forwarding decisions, and the like. 
In one example of the invention, device hardware and 
software 306 also includes an Oplet Runtime Environment 
(ORETM, a trademark of Nortel Networks), which is a 
platform for secure downloading, installation, and safe 
execution of services on a network device such as a switch 
or router, the downloaded services (i.e. Oplets) being locally 
stored in services database 308. In such an example of the 
invention, the network data transfer service 302 and XML 
engine 304 may actually be implemented as one or more 
services (i.e. Oplets) managed by the ORETM. The ORETM is 
described in more detail in other publications, including 
publications posted at the website www.openetlab.org, and 
so will not be described in detail here so as not to obscure 
the invention. Although use of the invention in network 
devices equipped with an ORETM is considered one pre 
ferred implementation, the invention is not so limited. 
Further, the functionalities provided by the ORETM that are 
useful for the present invention will be apparent to those 
skilled in the art after being taught by the present speci? 
cation and can be separately provided. 
Network data transfer service 302 is, for example, an 
HTTP server such as one provided by Apache. This is 
because, in one example of the invention, the XML encoded 
requests and device responses (if any) are exchanged using 
the HTTP protocol. As is known, HTTP is an application 
level protocol that is generic, stateless, and can be used for 
many tasks other than transferring hypertext, which is its 
most widely known use. In one example of the invention, the 
HTTP communications take place over TCP/IP connections. 
The most widely used HTTP methods for handling commu 
nications are GET, HEAD and POST. The XML engine 304 
is registered with the HTTP server (by port number, for 
example) so that when XML encoded requests according to 
the invention are received by service 302, XML engine 304 
can be activated and provided with the XML encoded 
request. HTTP server keeps handles for all received requests 
pointing to the requesting client’s address (perhaps with a 
timeout), and when responses from XML engine 304 are 
received along with the handle, HTTP server provides the 
response back to the requesting client using HTTP methods. 
It should be apparent that other techniques for sending 
XML ?les through the HTTP protocol could be used. 
Moreover, in another alternative of the invention, responses 
may be forwarded back to the requesting client in various 
presentation alternatives such as providing HTML pages for 
browser access. 
Device hardware and software 306 is adapted in accor 
dance with the invention to forward packets using the HTTP 
protocol and addressed to network device 104' to the net 
work data transfer service 302, if an HTTP server is not 
already provided in the device. This can be done in many 
ways known to those skilled in the art, and may depend on 
the particular packet forwarding architecture of the device. 
For example, where packets addressed to the device are 
automatically forwarded to the device’s CPU, the device’s 
kernel packet handling need only be aware of, and be able 
to communicate packets with, the HTTP server. 
XML engine 304 is generally responsible for receiving 
XML encoded documents, for causing the device 104' to 
perform the requested service and, if appropriate, obtaining 
and formatting a response to the requesting client. 
5 
20 
25 
35 
50 
55 
60 
65 
6 
XML engine 304 is further illustrated in FIG. 4. As 
shown, it includes a parser 402, a service launcher 404, 
device APIs 406, response retrieval 408 and response for 
matter 410. Although shown separately for clarity of the 
invention, the different blocks shown in FIG. 4 can be 
implemented in various combinations either together or 
separately. Moreover, some or all of the functionalities may 
be partially or fully included as functionalities of the ORETM 
in the example of the invention where the ORETM is included 
in the network device 104'. 
Parser 402 receives the XML document from the network 
data transfer service 302 (preferably along with a handle for 
the individual request), and retrieves the necessary DTD 
based on the required identi?er in the XML document. Using 
the appropriate DTD, parser 402 performs processing based 
on the XML tags de?ned in the DTD and extracts out the 
values for each included in the XML document. These 
parsed-out values are provided to the service launcher 404. 
There are several different conventionally available XML 
parsers that can be used to implement parser 402, such as 
Document Object Model (DOM), Simple API for XML 
(SAX) and Java Document Object Model (JDOM). 
At a minimum, the DTD and the XML document should 
at least specify one of the services 308 to be performed. For 
example, the DTD may include a de?nition such as: 
<!ELEMENT service> 
<!ATTLIST service 
class CDATA #IMPLIED 
source CDATA #IMPLIED 
id ID #IMPLIED> 
This allows an XML document to specify a “service” having 
“class,” “source” and “id” parameters. Accordingly, a client 
wishing to launch a service on a remote device would create 
an XML document specifying a “service” with at least a 
desired “class.” Such a corresponding XML document may 
include the following text (as well as an identi?er of the 
DTD that de?nes its structure): 
<service class:“Address” id:“IDi2”> 
</service> 
This XML document requests the network device 104' to 
launch a “service” having a class of “Address.”Accordingly, 
in this example of the invention, when the network device 
104' receives the XML document, parser 402 will retrieve 
the DTD indicated by the identi?er in the document. Using 
this DTD, it will understand that a “service” having a class 
of “Address” should be launched. Accordingly, it will send 
a message to service launcher 404 to launch a service 
de?ned by the class “Address,” which can, for example, 
cause the physical address of the device to be set or reported. 
If the service includes any runtime parameters, the DTD 
and XML documents should specify those as well, although 
the service should be able to execute using default param 
eters. Depending on the service requested, there may or may 
not be a requested response to be sent back to the client. For 
example, one requested service may be to provide traf?c 
statistics of the device, for which a response would be 
collected from the device hardware and software and 
returned to the client. Meanwhile, another requested service 
may be to adjust priorities of certain traf?c ?ows, for which 
a response from the device hardware and software would not 
necessarily be requested. As an example of a requested 
service with runtime parameters, a requested service may be 
to report on device throughput, collected a variable number 
of seconds apart, with the report repeatedly provided back to 
the client once per variable number of minutes.
US 7,313,608 B1 
7 
Using the above example of the service of class 
“Address,” the DTD may further include a de?nition such 
as: 
<EELEMENT property (value 1 null)*> 
<EATTLIST property 
name CDATA #REQUIRED> 
<EELEMENT value (#PCDATA)*> 
<EATTLIST value 
class CDATA #IMPLIED 
id ID #IMPLIED 
source IDREF #IMPLIED> 
This alloWs a “property” With a “name” to be assigned a 
“value.” A corresponding XML document may then be 
created by the requesting client that contains the folloWing 
text: 
<property name = “city”> 
<value id=“IDi3”>San Francisco</value> 
</property> 
<property name = “country”> 
When these de?nitions and this text are combined With the 
previously-described XML-encoded request, the combined 
XML text could, for example, cause a service of class 
“Address” to set a city ?eld and a country ?eld in the device 
address system variables to San Francisco and USA, respec 
tively. 
Service launcher 404 receives, at a minimum, an identi?er 
of the requested service to be executed by the device, as 
encoded in the XML document and parsed by parser 402. 
Service launcher 404 then retrieves the requested service 
from services storage 308 and instantiates a version of the 
service With any parameters also provided in the XML 
document and parsed out by parser 402. 
According to an aspect of the invention, all services do 
not continually run on the device 104'. Rather, individual 
services are launched as requested by clients so as to 
perform functionality When needed. Accordingly, service 
launcher 404 provides the mechanism for causing a service 
to be executed on device 104' When it is requested. 
According to a further aspect of the invention, services are 
designed to be generic so that E they may be executed on 
various different devices and With the capability of being 
particulariZed for a speci?c circumstance. For example, 
using the illustration above, the “Address” class service can 
be used on any device With system variables for device 
location, and can accept any string for insertion into the city 
and country ?elds. 
In one example of the invention discussed above, services 
are encapsulated in Oplets and doWnloaded, installed and 
managed by the ORETM. HoWever, the present invention is 
not limited to this example. As another alternative, services 
may be methods that operate on objects designed in any 
object-oriented programming language such as C++, Java, 
etc. Such methods can then be instantiated With the param 
eters provided in the XML document and compiled into an 
executable ?le by service launcher 404, Which executable 
?le can then be executed as a task on the device CPU under 
a device operating system such as VxWorks. It should be 
further apparent that the invention is not limited to object 
15 
20 
25 
30 
35 
40 
45 
50 
55 
60 
65 
8 
oriented programming languages, and those skilled in the art 
Will understand hoW to implement the present invention 
using other non-object-oriented programming languages 
such as C, PERL and CORBA. 
Device APIs 406 includes functionality to interact With 
device hardWare and softWare 306 to perform the requested 
service and to receive any responses from the device’s 
device hardWare and softWare. For example, Where a service 
requests a netWork parameter of the device such as the 
device’s name, the device APIs 406 Will interact With the 
device hardWare and softWare to retrieve the name (eg a 
string) from the device’s system variables (eg MIB) and 
provide it to response retrieval 408, along With an identi?er 
of the service that requested the parameter. 
It should be appreciated that the actual implementation of 
device APIs 406 depends on the code used to implement 
services 308, as Well as the device hardWare and softWare. 
In one example of the invention, all services 308 use a 
common code language such as C/C++. In such an example, 
device APIs 406 comprises APIs that provide a common 
interface for all such services to the existing code running on 
the device 104'. Accordingly, services 308 can be designed 
to execute on various platforms, With a knoWn set of APIs 
providing a common interface to the services, While provid 
ing a variable interface With the existing code, depending on 
the device. The design and implementation of such APIs are 
Within the skill of those in the art given the existing code, the 
device operating system and the design of services 308. 
In another example, device APIs 406 communicate With 
existing conventional applications of netWork device 104 
through a loopback address of the device. For example, the 
service requested by the received XML document may 
request access to netWork parameters of the device. Speci? 
cally, the requested service launched by the XML engine can 
access the netWork parameters of the device by specifying 
the loopback address, Which can then access the parameters 
through a netWork protocol stack such as an SNMP stack. 
It should be apparent that the above tWo examples are not 
necessarily mutually exclusive. Further, other example 
implementations of device APIs 406 are possible. 
Response retrieval 408 keeps track of the services that 
require responses from the device hardWare and softWare 
and initiates response messages to the requesting client 
When responses are received. It receives from service 
launcher 404 identi?ers of the services that have been a 
launched, as Well as handles to the XML encoded request 
that caused the service to be launched. When responses are 
received from device APIs 406, they are preferably received 
along With the identi?er of the service. Response retrieval 
408 can then correlate the response to the XML encoded 
request to Whom the response belongs and forWard the 
response to response formatter 410 along With the handle to 
the XML encoded request. 
Response formatter 410 formats response messages to be 
sent back to the requesting client. It receives from response 
retrieval 408 a response along With an identi?er of the XML 
encoded request, formats a response message for transmis 
sion back to the requesting client, and forWards the response 
message to the netWork data transfer service 302. NetWork 
data transfer service 302 can then send the message back to 
the requesting client by using the handle of the XML 
encoded request to retrieve the header information contained 
in the packets carrying the XML encoded request. In one 
example of the invention, responses are also XML encoded 
documents that Will instantiate a response object on the 
client. In this example, response formatter 410 may also 
access DTDs such as DTD 202 for formatting a response.
US 7,313,608 B1 
However, it should be apparent that many other variations of 
formatting a response other than using XML documents are 
possible. 
It should be further apparent that there are many possible 
Ways of implementing response retrieval 408 and response 
formatter 410, and that they may be omitted altogether. For 
example, response retrieval 408 and/or response formatter 
410 may be partially or fully implemented by #either or both 
of services 308 and device APls 406. 
FIG. 5 is an architectural vieW of an example of netWork 
device 104' in accordance With the principles of the present 
invention. 
As shoWn in this example, interaction With the device 
hardWare 514 (eg sWitch fabric, ports, memory, etc.) is 
performed through the device operating system 512 (eg 
VxWorks). The device code (eg routing softWare, etc.) 502 
interacts With the device operating system 512. Application 
programming interfaces (APl’s) 504 (eg Java, C/C++, etc.) 
interact directly With the device hardWare 514 and/or via 
device operating system 512. APl’s 504 may further interact 
With device hardWare and operating system through device 
drivers (not shoWn). Java Virtual Machine (JV M) 508 pref 
erably includes all functionality provided by a conventional 
JVM and is ported to the device 104' and operating system 
512. Oplet Runtime EnvironmentTM (ORE) 506 interacts 
With the JV M to coordinate the doWnloading, management 
and execution of services 308. XML engine 304 and services 
308 interact With ORE 506 for execution. XML engine 304 
and services 308, and transfer service 302, during operation, 
may also interact With APl’s 504, Which further interact With 
device code 502. 
FIG. 6 illustrates an example implementation of a net 
Work device 104' having the architecture illustrated in FIG. 
5. 
As shoWn, netWork device 104' includes a CPU 602, 
sWitch fabric 604, storage 608, netWork port 610 and 
memory 612 all communicating via a bus 614. SWitch fabric 
604 further communicates With sWitch ports 606. Storage 
608 can comprise memory for storing program and device 
data. Network port 610 can provide a loopback address for 
access by services and other netWork management applica 
tions as described above. Memory 612 includes code for 
execution by CPU 602. 
It should be apparent that components corresponding to 
CPU 602, sWitch fabric 604, sWitch ports 606, storage 608, 
netWork port 610, memory 612 and bus 614 are also 
provided in a conventional netWork device 104. Accord 
ingly, as should be further apparent from FIG. 6, adapting a 
conventional netWork device 104 in accordance With the 
invention merely requires updating memory 612 to include 
executable softWare corresponding to the above-described 
functionality of the invention. 
FIG. 7 illustrates an example of a process by Which an 
XML encoded request received by the netWork device 104' 
is ful?lled in accordance With the present invention. 
As shoWn in FIG. 7, When interaction With the netWork 
device 104' is desired, the client computer 100' encodes the 
request by constructing an XML encoded document corre 
sponding to the request and in accordance With a corre 
sponding DTD. This XML document is sent across the 
netWork 102 using a standard netWork protocol such as 
HTTP and received by netWork device 104' (block S702). 
The XML document is received by the netWork data transfer 
service 302 running on the netWork device 104' and pro 
vided to the XML engine 304. The XML engine 304 parses 
the XML document using the corresponding DTD identi?ed 
in the document (block S704). The parsed document corre 
20 
25 
30 
35 
40 
45 
50 
55 
60 
65 
10 
sponds to one of the stored services 308, Which is then 
instantiated With the parameters included in the parsed 
document. The instantiated service is then launched for 
execution on the device 104' (block S706). The requested 
service may require interaction With the device softWare and 
hardWare for execution, as indicated in block S708. If a 
response message back to the requesting client 100' is 
required by the service (determined in block S710), the 
response from the device hardWare and/or softWare is 
retrieved (block S712), and a response message is formatted 
and forWarded to netWork data transfer service 302 for 
transmission back to client 100' (block S714). 
Although the present invention has been particularly 
described With reference to the preferred embodiments, it 
should be readily apparent to those of ordinary skill in the art 
that changes and modi?cations in the form and details may 
be made Without departing from the spirit and scope of the 
invention. It is intended that the appended claims include 
such changes and modi?cations. 
What is claimed is: 
1. A method for controlling a data forWarding service in 
a netWork device comprising a data forWarding device, 
comprising the steps of: 
receiving at the netWork device a document Written in 
accordance With a markup language and a correspond 
ing document de?nition, Wherein the document 
describes the data forWarding service by specifying a 
class of objects for the data forWarding service; 
parsing by the netWork device the received document in 
accordance With the corresponding document de?ni 
tion, Wherein the parsing determines at least one 
parameter describing the data forWarding service; and 
executing the data forWarding service on the netWork 
device upon completion of the parsing, in accordance 
With the parsed document, Wherein the executing 
includes instantiating and launching the data forWard 
ing service in the data forWarding device based on the 
class of objects for the data forWarding service, and 
Wherein the data forWarding service con?gures a for 
Warding architecture in the netWork device operable to 
?lter netWork tra?ic. 
2. A method according to claim 1, Wherein the step of 
executing includes the step of interfacing With hardWare and 
softWare on the netWork device. 
3. A method according to claim 1, Wherein the markup 
language is XML. 
4. A method according to claim 3, Wherein the corre 
sponding document de?nition is an XML DTD. 
5. A method according to claim 1, further comprising: 
retrieving the corresponding de?nition from a plurality of 
document de?nitions in accordance With an identi?er in 
the received document. 
6. Amethod according to claim 5, Wherein the plurality of 
document de?nitions are provided in a local storage of the 
netWork device. 
7. A method according to claim 3, further comprising the 
step of: 
retrieving the corresponding document de?nition from a 
plurality of document de?nitions in accordance With an 
identi?er in the received document. 
8. Amethod according to claim 5, Wherein the plurality of 
document de?nitions are provided in a local storage of the 
netWork device. 
9. A method according to claim 1, Wherein the step of 
parsing includes the step of parsing from the document an 
identi?er corresponding to the service.
US 7,313,608 B1 
11 
10. A method according to claim 9, wherein the step of 
parsing further includes the step of parsing from the docu 
ment runtime parameters corresponding to the service. 
11. A method according to claim 5, further including the 
step of: 
instantiating an object corresponding to the service in 
accordance with the parsed identi?er. 
12. A method according to claim 10, further including the 
step of: 
instantiating an object corresponding to the service in 
accordance with the parsed identi?er and the parsed 
runtime parameters. 
13. A method according to claim 1, wherein the network 
device comprises one of a router, a switch, and a hub. 
14. A method according to claim 1, wherein the network 
device comprises a packet forwarding architecture. 
15. Amethod according to claim 1, further comprising the 
step of preparing a response corresponding to the executed 
service. 
16. A method according to claim 14, further comprising 
the step of forwarding the response to a remote requestor of 
the service. 
17. A network device for locally performing a data 
forwarding service in response to a remote request, wherein 
the network device comprises a data forwarding device, the 
data forwarding device including a computer readable stor 
age medium having program code stored thereon, the pro 
gram code comprising: 
means for receiving at the network device a document 
written in accordance with a markup language and a 
corresponding document de?nition, wherein the docu 
ment describes the data forwarding service by speci 
fying a class of objects for the data forwarding service; 
means for parsing by the network device the received 
document in accordance with the corresponding docu 
ment de?nitions, wherein the parsing determines at 
least one parameter describing the data forwarding 
service; and 
means for executing the data forwarding service on the 
network device upon completion of the parsing, in 
accordance with the parsed document, wherein the 
means for executing includes means for instantiating 
and launching the data forwarding service in the data 
forwarding device based on the class of objects for the 
data forwarding service, and wherein the data forward 
ing service con?gures a forwarding architecture in the 
network device operable to ?lter network traf?c. 
18. A network device according to claim 17, wherein the 
means for executing includes means for interfacing with 
hardware and software on the network device. 
19. A network device according to claim 17, wherein the 
markup language is XML. 
20. A network device according to claim 19, wherein the 
corresponding document de?nition is an XML DTD. 
21. A network device according to claim 17, the program 
code further comprising: 
means for retrieving the corresponding document de?ni 
tion from a plurality of document de?nitions in accor 
dance with an identi?er in the received document. 
22. A network device according to claim 21, wherein the 
plurality of document de?nitions are provided in a local 
storage of the network device. 
23. A network device according to claim 19, further 
comprising: 
means for retrieving the corresponding document de?ni 
tion from a plurality of document de?nitions in accor 
dance with an identi?er in the received document. 
5 
20 
30 
35 
50 
55 
65 
12 
24. A network device according to claim 21, wherein the 
plurality of document de?nitions are provided in a local 
storage of the network device. 
25. A network device according to claim 17, wherein the 
means for parsing includes means for parsing from the 
document an identi?er corresponding to the service. 
26. A network device according to claim 25, wherein the 
means for parsing further includes means for parsing from 
the document runtime parameters corresponding to the ser 
vice. 
27. A network device according to claim 21, the program 
code further including: 
means for instantiating an object corresponding to the 
service in accordance with the parsed identi?er. 
28. The network device according to claim 26, the pro 
gram code further including: 
means for instantiating an object corresponding to the 
service in accordance with the parsed identi?er and the 
parsed runtime parameters. 
29. A network device according to claim 17, wherein the 
network device comprises one of a router, a switch, and a 
hub. 
30. A network device according to claim 17, wherein the 
network device comprises a packet forwarding architecture. 
31. A network device according to claim 17, the program 
code further comprising means for preparing a response 
corresponding to the executed service. 
32. A network device according to claim 30, the program 
code further comprising means for forwarding the response 
to a remote requestor of the service. 
33. A network device for locally performing a data 
forwarding service in accordance with a received document 
written in a document markup language, wherein the net 
work device comprises a data forwarding device, the data 
forwarding device including a computer readable storage 
medium having program code stored thereon, the program 
code comprising: 
a parser that is adapted to parse the received document in 
accordance with a document de?nition to obtain an 
identi?er of the service, wherein the parsing determines 
at least one parameter describing the data forwarding 
service by specifying a class of objects for the data 
forwarding service; and 
a service launcher that is adapted to launch the data 
forwarding service corresponding to the identi?er 
parsed from the received document, wherein the ser 
vice launcher instantiates and launches the data for 
warding service in the data forwarding device upon 
completion of the parsing based on the class of objects 
for the data forwarding service, and wherein the data 
forwarding service con?gures a forwarding architec 
ture in the network device operable to ?lter network 
tra?ic. 
34. A network device according to claim 33, the program 
code further comprising: 
a network data transfer service that is adapted to com 
municate with remote devices for receiving the docu 
ment. 
35. A network device according to claim 34, wherein the 
network data transfer service comprises an HTTP server. 
36. A network device according to claim 33, wherein the 
markup language is XML. 
37. A network device according to claim 36, wherein the 
document de?nition is an XML DTD. 
38. A network device according to claim 33, further 
comprising a document de?nition storage coupled to the 
parser that stores a plurality of document de?nitions, the
US 7,313,608 B1 
13 
parser being further adapted to select the document de?ni 
tion from the stored plurality of document de?nitions in 
accordance with a document de?nition identi?er. 
39. A network device according to claim 33, further 
comprising a services storage coupled to the service 
launcher that stores a plurality of services, the service 
launcher being further adapted to select the service from the 
stored plurality of services in accordance with the parsed 
identi?er. 
40. A network device according to claim 33, the program 
code further comprising an Oplet Runtime Environment, the 
service launcher being further adapted to launch the service 
under the Oplet Runtime Environment. 
41. A network device according to claim 33, further 
comprising a packet forwarding switch fabric. 
42. A network device according to claim 41, wherein the 
launched service causes changes in how packets are for 
warded through the packet forwarding switch fabric. 
43. A network device according to claim 41, wherein the 
launched service monitors performance indicators of how 
packets are forwarded through the packet forwarding switch 
fabric. 
44. A network device according to claim 33, further 
comprising device APIs for interoperating with device hard 
ware and software for executing the launched services. 
45. A network device according to claim 40, further 
comprising device APIs for interoperating with device hard 
ware and software for executing the launched services. 
46. A network device according to claim 41, further 
comprising device APIs for interoperating with device hard 
ware and software for executing the launched services. 
47. A method for causing a network device to locally 
perform a data forwarding service, wherein the network 
device comprises a data forwarding device, comprising the 
steps of: 
20 
25 
30 
14 
identifying the data forwarding service to be performed at 
a remote client computer; 
preparing at the remote client computer a document 
written in a markup language in accordance with a 
document de?nition, the document including an iden 
ti?er of the service, wherein the document describes the 
data forwarding service by specifying a class of objects 
for the data forwarding service; 
transmitting the document to the network device; 
identifying at the network device the document de?nition 
corresponding to the transmitted document; 
parsing by the network device the transmitted document 
in accordance with the corresponding document de? 
nition, wherein the parsing determines the class of 
objects for the data forwarding service and at least one 
parameter describing the data forwarding service; and 
executing the data forwarding related service on the 
network device upon completion of the parsing, in 
accordance with the parsed document, wherein the 
executing includes instantiating and launching the data 
forwarding service on the data forwarding device based 
on the class of objects for the data forwarding service, 
and wherein the data forwarding service con?gures a 
forwarding architecture in the network device operable 
to ?lter network traf?c. 
48. A method according to claim 47, wherein the markup 
language is XML. 
49. A method according to claim 48, wherein the corre 
sponding document de?nition is an XML DTD.

More Related Content

PDF
Method and apparatus for using a command design pattern to access and configu...
PDF
Method and apparatus for using a command design pattern to access and configu...
PDF
Curso: Redes y comunicaciones básicas: 03 VPN
PDF
Performance and Power Consumption Analysis of Symmetric Encryption Algorithms...
PDF
Curso: Redes y comunicaciones I: 07 Redes
PDF
A comparative analysis of 802.11b and 802.11g
PDF
Optimizing network connections
Method and apparatus for using a command design pattern to access and configu...
Method and apparatus for using a command design pattern to access and configu...
Curso: Redes y comunicaciones básicas: 03 VPN
Performance and Power Consumption Analysis of Symmetric Encryption Algorithms...
Curso: Redes y comunicaciones I: 07 Redes
A comparative analysis of 802.11b and 802.11g
Optimizing network connections

Viewers also liked (20)

PPT
DWDM-RAM:Enabling Grid Services with Dynamic Optical Networks
PPTX
урок 42
PDF
Аз и буквите_2008
PPTX
пътешествието на доброто
PDF
Device and method for providing enhanced telephony
PPS
маите
PPT
Java SNMP Oplet
PPT
Swine Flu
PPT
Lambda Data Grid: An Agile Optical Platform for Grid Computing and Data-inten...
PPT
Impact of Grid Computing on Network Operators and HW Vendors
PDF
People &amp; Performance UK
 
PPT
Opti cal inc.
PDF
Dynamic Assignment of Traffic Classes to a Priority Queue in a Packet Forward...
PPT
Open Programmability
PDF
How Disposable Chopstick is Made?
PPT
меморандум на едно дете
ODP
" new Mercedes-Benz "
ODP
Top 10; Most Unique Churches in the World
PDF
Method and apparatus for preconditioning data to be transferred on a switched...
PDF
Iii klas
DWDM-RAM:Enabling Grid Services with Dynamic Optical Networks
урок 42
Аз и буквите_2008
пътешествието на доброто
Device and method for providing enhanced telephony
маите
Java SNMP Oplet
Swine Flu
Lambda Data Grid: An Agile Optical Platform for Grid Computing and Data-inten...
Impact of Grid Computing on Network Operators and HW Vendors
People &amp; Performance UK
 
Opti cal inc.
Dynamic Assignment of Traffic Classes to a Priority Queue in a Packet Forward...
Open Programmability
How Disposable Chopstick is Made?
меморандум на едно дете
" new Mercedes-Benz "
Top 10; Most Unique Churches in the World
Method and apparatus for preconditioning data to be transferred on a switched...
Iii klas
Ad

Similar to Method and apparatus for using documents written in a markup language to access and configure network elements (20)

PDF
Grid proxy architecture for network resources
PDF
Grid proxy architecture for network resources
PDF
Grid proxy architecture for network resources
PDF
Interface method and system for accessing inner layers of a network protocol
PDF
Grid proxy architecture for network resources
PDF
Content-aware dynamic network resource allocation
PDF
Programmable command-line interface API for managing operation of a network d...
PDF
Grid proxy architecture for network resources
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 scheduling resources on a switched underlay network
DOCX
Project report,nowrin
PDF
Vivek Santhana Patent US7388946
PDF
Grid proxy architecture for network resources
PDF
IoT, M2M and IoT System Management
PDF
Method and apparatus for accessing network information on a network device
PPTX
dan-web5g.pptx
PDF
Method and apparatus for dynamically loading and managing software services o...
PDF
Analysis Increasing Network Signal of Dongle
PDF
Ir.67 v8.0- enum dns guidelines
Grid proxy architecture for network resources
Grid proxy architecture for network resources
Grid proxy architecture for network resources
Interface method and system for accessing inner layers of a network protocol
Grid proxy architecture for network resources
Content-aware dynamic network resource allocation
Programmable command-line interface API for managing operation of a network d...
Grid proxy architecture for network resources
Content-aware dynamic network resource allocation
Method and apparatus for automated negotiation for resources on a switched un...
Method and apparatus for scheduling resources on a switched underlay network
Project report,nowrin
Vivek Santhana Patent US7388946
Grid proxy architecture for network resources
IoT, M2M and IoT System Management
Method and apparatus for accessing network information on a network device
dan-web5g.pptx
Method and apparatus for dynamically loading and managing software services o...
Analysis Increasing Network Signal of Dongle
Ir.67 v8.0- enum dns guidelines
Ad

More from Tal Lavian Ph.D. (20)

PDF
Ultra low phase noise frequency synthesizer
PDF
Ultra low phase noise frequency synthesizer
PDF
Photonic line sharing for high-speed routers
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
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
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
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
PDF
Systems and Methods for Visual Presentation and Selection of IVR Menu
PDF
Radar target detection system for autonomous vehicles with ultra-low phase no...
Ultra low phase noise frequency synthesizer
Ultra low phase noise frequency synthesizer
Photonic line sharing for high-speed routers
Systems and methods to support sharing and exchanging in a network
Systems and methods for visual presentation and selection of IVR menu
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...
Method and apparatus for scheduling resources on a switched underlay network
Dynamic assignment of traffic classes to a priority queue in a packet forward...
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
Systems and Methods for Visual Presentation and Selection of IVR Menu
Radar target detection system for autonomous vehicles with ultra-low phase no...

Recently uploaded (20)

PPTX
Prograce_Present.....ggation_Simple.pptx
PPTX
Sem-8 project ppt fortvfvmat uyyjhuj.pptx
PPTX
Wireless and Mobile Backhaul Market.pptx
PPTX
02fdgfhfhfhghghhhhhhhhhhhhhhhhhhhhh.pptx
PPT
FABRICATION OF MOS FET BJT DEVICES IN NANOMETER
PPTX
PROGRAMMING-QUARTER-2-PYTHON.pptxnsnsndn
PPTX
Embeded System for Artificial intelligence 2.pptx
PPTX
A Clear View_ Interpreting Scope Numbers and Features
PDF
Dozuki_Solution-hardware minimalization.
PPTX
sdn_based_controller_for_mobile_network_traffic_management1.pptx
PPTX
PLC ANALOGUE DONE BY KISMEC KULIM TD 5 .0
PPTX
Lecture 3b C Library _ ESP32.pptxjfjfjffkkfkfk
PPTX
Nanokeyer nano keyekr kano ketkker nano keyer
PPTX
Embedded for Artificial Intelligence 1.pptx
DOCX
A PROPOSAL ON IoT climate sensor 2.docx
PPT
Lines and angles cbse class 9 math chemistry
DOCX
fsdffdghjjgfxfdghjvhjvgfdfcbchghgghgcbjghf
PDF
Dynamic Checkweighers and Automatic Weighing Machine Solutions
PPTX
Entre CHtzyshshshshshshshzhhzzhhz 4MSt.pptx
PPTX
quadraticequations-111211090004-phpapp02.pptx
Prograce_Present.....ggation_Simple.pptx
Sem-8 project ppt fortvfvmat uyyjhuj.pptx
Wireless and Mobile Backhaul Market.pptx
02fdgfhfhfhghghhhhhhhhhhhhhhhhhhhhh.pptx
FABRICATION OF MOS FET BJT DEVICES IN NANOMETER
PROGRAMMING-QUARTER-2-PYTHON.pptxnsnsndn
Embeded System for Artificial intelligence 2.pptx
A Clear View_ Interpreting Scope Numbers and Features
Dozuki_Solution-hardware minimalization.
sdn_based_controller_for_mobile_network_traffic_management1.pptx
PLC ANALOGUE DONE BY KISMEC KULIM TD 5 .0
Lecture 3b C Library _ ESP32.pptxjfjfjffkkfkfk
Nanokeyer nano keyekr kano ketkker nano keyer
Embedded for Artificial Intelligence 1.pptx
A PROPOSAL ON IoT climate sensor 2.docx
Lines and angles cbse class 9 math chemistry
fsdffdghjjgfxfdghjvhjvgfdfcbchghgghgcbjghf
Dynamic Checkweighers and Automatic Weighing Machine Solutions
Entre CHtzyshshshshshshshzhhzzhhz 4MSt.pptx
quadraticequations-111211090004-phpapp02.pptx

Method and apparatus for using documents written in a markup language to access and configure network elements

  • 1. US007313608B1 (12) United States Patent (10) Patent N0.: US 7,313,608 B1 Swedor et a]. (45) Date of Patent: Dec. 25, 2007 (54) METHOD AND APPARATUS FOR USING 6,542,515 B1 * 4/2003 Kumar et al. ............. .. 370/463 DOCUMENTS WRITTEN IN A MARKUP 6,546,419 B1* 4/2003 Humpleman et a1. . 709/223 LANGUAGE TO ACCESS AND CONFIGURE 6,757,720 B1* 6/2004 Weschler, Jr. ...... .. 709/220 NETWORK ELEMENTS 2002/0032709 A1* 3/2002 Gessner .......... .. 707/540 2003/0014505 A1* 1/2003 Ramberg et al. .......... .. 709/223 (75) Inventors: Olivier K. SWedor, Auvemier (CH); Tal I. Lavian, Sunnyvale, CA (US); OTHER PUBLICATIONS Robert J‘ Duncan’ San Francisco’ CA Ajita et al., “XNAMIiAn extensible SML-based paragigm for (Us) network and application management instrumentation,” 1999, IEE International Conference on Networks, 1999, pp. 115-124 (shown (73) Assignee: Nortel Networks Limited (CA) as pp, 1-10),* Jaeger et a1., “Dynamic Classi?cation in Silicon-based Forwarding ( * ) Notice: Subject to any disclaimer, the term of this Engine Environments,” Nov. 1999, 10th IEEE Worksho on Local patent is extended or adjusted under 35 and Metropolitan Area Networks, 1999, pp. 103-109.* U.S.C. 154(b) by 543 days. (Continued) (21) APP1- N04 09/692,949 Primary ExamineriArio Etienne _ Assistant ExamineriSean Reilly (22) Flled: Oct‘ 20’ 2000 (74) Attorney, Agent, or FirmiMcGuinness & Manaras Related US. Application Data LLP (60) Provisional application No. 60/212,979, ?led on Jun. (57) ABSTRACT 21, 2000. An XML accessible network device is capable of performing (51) Int- Cl- functions in response to an XML encoded request transmit G06F 15/177 (2006-01) ted over a network. It includes a network data transfer G06F 15/173 (2006-01) service, coupled to a network, that is capable of receiving (52) US. Cl. ..................................... .. 709/221; 709/223 XML encoded requests from a client also connected to the (58) Field of Classi?cation Search ...... .. 709/2234224, nctWork. An XML engine is capable of understanding and 709/328, 2204222, 225, 226; 715/513 parsing the XML encoded requests according to a corre See application ?le for complete search history. sponding DTD. The XML engine ?irther instantiates a _ service using parameters provided in the XML encoded (56) References Cited U.S. PATENT DOCUMENTS 5,541,911 A * 7/1996 Nilakantan et a1. ....... .. 370/422 5,835,727 A * 11/1998 Wong et a1. . . . . . . . . . . . .. 709/238 5,951,649 A * 9/1999 Dobbins et a1. 709/238 6,269,398 B1* 7/2001 Leong et a1. ............. .. 709/224 6,463,528 B1* 10/2002 Rajakarunanayake et al. . 713/1 6,529,515 B1* 3/2003 RaZ et a1. ................. .. 370/401 Receive XML encoded wqmi 5102 Pam XML request with mi) 5104 [nsunti?e and Launch s=m== 5706 Inverse! Wllh Native A sw to Execute Service 5703 Retrieve mpom Info 5712 FM'IIIM lll? Forward mm» Message sm request and launches the service for execution on the net work device. A set of device APls interacts with hardware and software on the network device for executing the requested service on the network device. If necessary, a response is further collected from the device and provided to the client in a response message. 49 Claims, 4 Drawing Sheets
  • 2. US 7,313,608 B1 Page 2 OTHER PUBLICATIONS Pal et al., “XML and Quality Objects,” Jun. 1999, IEEE 8th International Workshops on Enabling Technologies: Infrastructure f Collaborative Enterprises, 1999, pp. 315-316.* Ajita et al., “A Java-Based SNMP Agent for Dynamic MIBs,” Dec. 1999, Global Telecommunications Conference, 1999, vol. la, pp. 396-400.* Business Editors et al., “New Management-speci?c XML Dialect From Manage.Com Helps On-line Businesses Control Infrastruc ture, Business Processes,” Dec. 13, 1999, Business Wire, pp. llf.* Mcconnell, “XML Can Tie App Data Better Than SNMP,” Nov. 8, 1999, InternetWeek, Issue 788, pp. 2llf.* Sahai et al., “Managing NeXt Generation E-Services,” Sep. 21, 2000, Hewlett Packard Company, printed from www.hpl.hp.com/ techreports/ZOOO/HPL-2000-l20.pdf.* Jaeger et al., “An Active Network Services Architecture for Routers with Silicon-Based Forwarding Engines,” printed from www.cs. umd.edu/~hollings/papers/lanman99.pdf, date unknown.* Lavian, “Java-enabled Programmable Network Devices,” May 4, 2000, printed from bulfy.eecs.berkeley.edu/ Seminars/ 2000/05 .May/ 000504.lavian.html.* Lavian, “Open Networking Better Networking Through Program mability,” Aug. 2000, Nortel Networks, pp. 1-44, printed from www.c s .princeton .edu/nsg/workshop/tal .ppt. * Duffy, “HP Intros Mgmt. Apps for Router Nets,” Aug. 29, 1994, Network World, vol. 11, Iss. 35, p. l7.* Salamone, “IP Mgm’t Simpli?ed by Lucent,” Feb. 7, 2000, InternetWeek, Iss. 799, p. 21.* Cover, The SGML/ML Web Page; Nov. 1999* Bryan; An Introduction to the Extensible Markup Language (XML); 1997.* Henry; Net Management with XML; Sep. 1999* DMTF; Web-Based Enterprise Management (WBEM) Standars; Oct. 2000* * cited by examiner
  • 3. U.S. Patent Dec. 25, 2007 Sheet 1 of4 US 7,313,608 B1 Network 102 Device 104 ‘K SNMP SNMP Response Response Client 100 FIG. 1 (Prior Art) DTD 202 DTD 202 XML Document Network I 02 Document Network Response Device 104’ Client 100’ FIG. 2
  • 4. U.S. Patent Dec. 25, 2007 Sheet 2 0f 4 US 7,313,608 B1 Network Data Transfer Service 302 4 XML 5 Response Packets Document E containing DTD : I SCML t 202 —_> XML Device ocurnen s - Engine Software and <— 304 ‘—> Hardware ____ __ 306 Packets Services __'> containing 308 response (if Network Device 104’ any) FIG. 3 DTD Services 308 XML Engine 304 V Service Parser L h _> ' aunc er 404 i Device API’s » 406 Response Response ‘ Formatter ' ‘ Reirégval ' FIG. 4
  • 6. U.S. Patent Dec. 25, 2007 Receive XML encoded request S702 l Parse XML request with DTD S704 i Instantiate and Launch Service S706 t Interact with Native HW & SW to Execute Service S708 Response Required? S 71 0 Retrieve Response Info 7 Format and Forward Response Message S714 Sheet 4 0f 4 US 7,313,608 B1 FIG. 7
  • 7. US 7,313,608 B1 1 METHOD AND APPARATUS FOR USING DOCUMENTS WRITTEN IN A MARKUP LANGUAGE TO ACCESS AND CONFIGURE NETWORK ELEMENTS CROSS-REFERENCE TO RELATED APPLICATIONS The present application is based on, and claims priority from US. Provisional Appln. No. 60/212,979, ?led Jun. 21, 2000. The present application is also related to co-pending US. application Ser. No. 09/727,341 (NOR-12675HU), ?led Nov. 29, 2000, and co-pending US. application Ser. No. 09/726,758 (NOR-12678HU), ?led Nov. 29, 2000, both commonly owned by the assignee of the present application. FIELD OF THE INVENTION The present invention relates to network device con?gu ration and monitoring, and more particularly, to a method and apparatus for accessing, con?guring and controlling a device stationed on a network using documents written in a markup language such as XML. BACKGROUND OF THE INVENTION Computer networks continue to proliferate. As they do so, they become increasingly complex and dif?cult to manage. This problem is exacerbated when a variety of network devices, computers, and software are combined together to integrate large intranets with the Internet. As shown in FIG. 1, when a client 100 wants to learn information regarding a remote network device 104 sta tioned on a network 102, code executing on client 100 formats a message requesting such information and sends it to the network device 104. Network device 104 must be preprogrammed with functionality for communicating in the protocol required by client 100’s message and for knowing exactly how to get the information requested. If so, network device 104 can then respond with the requested information. Simple network management protocol (SNMP) is one example of a network protocol that allows clients to learn information about remote network devices. SNMP allows network devices 104 to send alerts to a manager 102, or to send statistical information about traf?c, but it limits the kind of information that can be sent to that which is pre-de?ned in the management information blocks (MIBs) coded into the network device. Accordingly, a new MIB needs to be rede?ned each time a new type of information is maintained or is needed about the device, thus making network management and performance even more problem atic. SUMMARY OF THE INVENTION The present invention relates to an apparatus and method for more ef?ciently accessing, con?guring and controlling a network device using documents written in a markup lan guage such as the Extensible Markup Language (XML). In accordance with one aspect of the invention, an XML accessible network device is capable of performing func tions in response to an XML encoded request transmitted over a network. It includes a network data transfer service, coupled to a network, that is capable of receiving XML encoded requests from a client also connected to the net work. An XML engine is capable of understanding and parsing the XML encoded requests according to a corre 20 25 30 35 40 45 50 55 65 2 sponding document type de?nition (DTD). The XML engine further instantiates a service using parameters provided in the XML encoded request and launches the service for execution on the network device. A set of device APIs interacts with hardware and software on the network device for executing the requested service on the network device. If necessary or desired, a response is further collected from the device and provided to the client in a response message. In accordance with another aspect of the invention, a method for causing a network device to locally perform a service comprises the steps of receiving at the network device a document written in accordance with a markup language and a corresponding document de?nition, parsing by the network device the received document in accordance with the corresponding document de?nition, and executing the service on the network device in accordance with the parsed document. In accordance with another aspect of the invention, a network device for locally performing a service in response to a remote request comprises means for receiving at the network device a document written in accordance with a markup language and a corresponding document de?nition, means for parsing by the network device the received document in accordance with the corresponding document de?nition, and means for executing the service on the network device in accordance with the parsed document. In accordance with another aspect of the invention, a network device for locally performing a service in accor dance with a received document written in a document markup language comprises a parser that is adapted to parse the received document in accordance with a document de?nition to obtain an identi?er of the service and a service launcher that is adapted to launch the service corresponding to the identi?er parsed from the received document. BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and other features, aspects, and advantages of the present invention will become more apparent from the following detailed description when read in conjunction with the following drawings, wherein: FIG. 1 illustrates a conventional architecture for access ing, con?guring and controlling a network device using standard network protocols; FIG. 2 is a functional overview of an apparatus for accessing, con?guring and controlling a network device using XML encoded data in accordance with the present invention; FIG. 3 further illustrates an example of a network device that is con?gured in accordance with the present invention; FIG. 4 further illustrates an XML engine that can be included in a network device according to the invention such as that illustrated in FIG. 3; FIG. 5 is an architectural view of a network device that is con?gured in accordance with the present invention; FIG. 6 is an example implementation of a network device in accordance with the invention and the architecture depicted in FIG. 5; and FIG. 7 illustrates a process for accessing, con?guring and controlling a network device using XML encoded data in accordance with the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will now be described in detail with reference to the accompanying drawings, which are pro
  • 8. US 7,313,608 B1 3 vided as illustrative examples of preferred embodiments of the present invention. Notably, the implementation of certain elements of the present invention may be accomplished using software, hardWare or any combination thereof, as Would be apparent to those of ordinary skill in the art, and the ?gures and examples beloW are not meant to limit the scope of the present invention. Moreover, Where certain elements of the present invention can be partially or fully implemented using knoWn components, only those portions of such knoWn components that are necessary for an under standing of the present invention Will be described, and detailed descriptions of other portions of such knoWn com ponents Will be omitted so as not to obscure the invention. Further, the present invention encompasses present and future knoWn equivalents to the knoWn components referred to herein by Way of illustration. FIG. 2 is a functional overvieW of one embodiment of the present invention. As shoWn, a client 100' is connected in the conventional manner to a netWork such as the Internet or an intranet (i.e. LAN/WAN/MAN) 102, Which in turn is con nected to a netWork device 104' (eg router, sWitch, hub or similar device capable of processing ?xed-length or vari able-length packets in a network). It should be noted that although the features and advantages of the present inven tion are particularly Well suited to routers, sWitches and hubs, and Will be described in more detail beloW With reference to such devices, other netWork-aWare devices can be adapted for use in the present invention, and so the invention is not to be limited to these particular illustrative devices. For example, netWork device 104' may also include gateWays, multiplexers and other knoWn or future equiva lents, including those having a packet forWarding architec ture. As is apparent from FIG. 2, in contrast With the prior art, the present invention provides communications for access ing and con?guring netWork elements using XML docu ments. As is knoWn, XML is a metalanguage built upon the Standard GeneraliZed Markup Language (SGML), and is a tool for de?ning text markup languages, de?ned by the World Wide Web Consortium (W3C). An XML-de?ned language comprises a set of tags, attributes, and constraints on hoW to use them. XML is a simple, open, portable, extensible means of representing data. Unlike HTML, XML tags tell What the data means, instead of just hoW to display it. Further information regarding XML can be found from the W3C Web pages at http://WWW.W3.org/XML. Those skilled in the art, after being taught by the present disclosure, Will appreciate that there are many ?avors of XML and SGML and that many markup languages are equivalent to XML for adaptation and implementation according to the present invention. XML is described in detail in this application because of its Wide acceptance and adoption. HoWever, equivalents to XML that are Within the scope of the invention can include, for example, XSL, XSLT, XPath, XLink, XPointer, HyTime, DSSSL, CSS, SPDL, CGM, ISO-HTML, and others. As is further knoWn, the format of an XML document is de?ned by a Document Type De?nition (DTD). Accord ingly, the present invention includes local copies of DTD 202 at the sending and receiving ends of the XML document. There can be just one DTD 202 that de?nes all communi cations for all applications, or there may be different DTDs 202 for different types of applications, and those skilled in the art Will understand the possible variations. Further, there are many Ways knoWn in the art that such local copies of 20 25 30 35 40 45 50 55 60 65 4 DTD 202 can be retrieved and obtained by netWork device 104', and the details thereof Will not be presented so as not to obscure the invention. Generally, When the client computer 100' Wants to access or con?gure netWork device 104' (i.e., cause netWork device 104' to perform a service locally on the netWork device 104'), it creates an XML request encoded in the format de?ned by DTD 202 but With parameters speci?c to the desired access or con?guration. Client 100' sends the docu ment over the netWork 102, Which document is received by the netWork device 104' in the form of data packets as is conventionally done. In contrast to the conventional netWork device 104, the netWork device 104' has been adapted to include functionality necessary to decode the XML encoded request and to perform tasks necessary to complete the request, including, if required, interacting With the hardWare and softWare of the device to perform a service locally on the netWork device 104'. If further needed or desired by the client computer, netWork device 104' may create and format a response to client computer 100', Which may or may not also be an XML encoded document. FIG. 3 illustrates a netWork device 104' in accordance With the present invention in further detail. As shoWn in FIG. 3, netWork device 104' comprises, in part, a netWork data transfer service 302, an XML engine 304 that accesses local copies of DTD 202 and stored services 308, and device softWare and hardWare 306. It should be apparent that netWork device 104' can contain or include other compo nents for performing conventional sWitching and routing functions, for example. HoWever, the details of such addi tional components are not presented here so as not to obscure the present invention. Further, although DTD 202 and stored services 308 are shoWn as local storages, it should be apparent that such storage need not be permanent. For example, DTDs and services may be retrieved from a remote server via a URL, and just a temporary representation can be resident on device 104' as needed by XML engine 304 according to techniques Well understood by those of skill in the art. Device hardWare and softWare 306 represents conven tional sWitch or router functionality that has been adapted for use in the present invention. In one possible implemen tation, Where netWork device 104' is an Accelar/Passport family router sWitch from Nortel NetWorks, device hardWare and softWare 306 includes anASlC-based forWarding archi tecture, With sWitch ASlCs comprising most of the device’s sWitch fabric and handling most forWarding tasks among sWitch ports in accordance With resident forWarding rules. For such a device 104', device hardWare and softWare 306 further includes a CPU and associated memory coupled to the sWitch fabric that runs the VxWorks real-time OS, and existing applications stored in memory and executed by the CPU that run as VxWorks “tasks” for monitoring and controlling and con?guring the ASIC forWarding hardWare via a sWitch-speci?c APl. It should be apparent that other types of sWitches and routers may be used in accordance With the invention, and that other operating systems such as Linux, PSOS, Vertex and RMX may comprise the device’s operating system. Services stored in database 308 preferably include appli cations that enhance the netWork management capabilities of the device 104' above and beyond that Which is possible With a conventional netWork device 104. Such applications may include means for setting and reporting system variables that are not limited by pre-con?gured MlBs. Such applications may further include means for con?guring the forWarding architecture so as to enable the device to ?lter netWork traf?c
  • 9. US 7,313,608 B1 5 containing packets generated from activities not essential to a company’s business, such as browsing the Internet. Other examples of services can include event loggers and moni tors, means for establishing different levels of quality of service in packet forwarding decisions, and the like. In one example of the invention, device hardware and software 306 also includes an Oplet Runtime Environment (ORETM, a trademark of Nortel Networks), which is a platform for secure downloading, installation, and safe execution of services on a network device such as a switch or router, the downloaded services (i.e. Oplets) being locally stored in services database 308. In such an example of the invention, the network data transfer service 302 and XML engine 304 may actually be implemented as one or more services (i.e. Oplets) managed by the ORETM. The ORETM is described in more detail in other publications, including publications posted at the website www.openetlab.org, and so will not be described in detail here so as not to obscure the invention. Although use of the invention in network devices equipped with an ORETM is considered one pre ferred implementation, the invention is not so limited. Further, the functionalities provided by the ORETM that are useful for the present invention will be apparent to those skilled in the art after being taught by the present speci? cation and can be separately provided. Network data transfer service 302 is, for example, an HTTP server such as one provided by Apache. This is because, in one example of the invention, the XML encoded requests and device responses (if any) are exchanged using the HTTP protocol. As is known, HTTP is an application level protocol that is generic, stateless, and can be used for many tasks other than transferring hypertext, which is its most widely known use. In one example of the invention, the HTTP communications take place over TCP/IP connections. The most widely used HTTP methods for handling commu nications are GET, HEAD and POST. The XML engine 304 is registered with the HTTP server (by port number, for example) so that when XML encoded requests according to the invention are received by service 302, XML engine 304 can be activated and provided with the XML encoded request. HTTP server keeps handles for all received requests pointing to the requesting client’s address (perhaps with a timeout), and when responses from XML engine 304 are received along with the handle, HTTP server provides the response back to the requesting client using HTTP methods. It should be apparent that other techniques for sending XML ?les through the HTTP protocol could be used. Moreover, in another alternative of the invention, responses may be forwarded back to the requesting client in various presentation alternatives such as providing HTML pages for browser access. Device hardware and software 306 is adapted in accor dance with the invention to forward packets using the HTTP protocol and addressed to network device 104' to the net work data transfer service 302, if an HTTP server is not already provided in the device. This can be done in many ways known to those skilled in the art, and may depend on the particular packet forwarding architecture of the device. For example, where packets addressed to the device are automatically forwarded to the device’s CPU, the device’s kernel packet handling need only be aware of, and be able to communicate packets with, the HTTP server. XML engine 304 is generally responsible for receiving XML encoded documents, for causing the device 104' to perform the requested service and, if appropriate, obtaining and formatting a response to the requesting client. 5 20 25 35 50 55 60 65 6 XML engine 304 is further illustrated in FIG. 4. As shown, it includes a parser 402, a service launcher 404, device APIs 406, response retrieval 408 and response for matter 410. Although shown separately for clarity of the invention, the different blocks shown in FIG. 4 can be implemented in various combinations either together or separately. Moreover, some or all of the functionalities may be partially or fully included as functionalities of the ORETM in the example of the invention where the ORETM is included in the network device 104'. Parser 402 receives the XML document from the network data transfer service 302 (preferably along with a handle for the individual request), and retrieves the necessary DTD based on the required identi?er in the XML document. Using the appropriate DTD, parser 402 performs processing based on the XML tags de?ned in the DTD and extracts out the values for each included in the XML document. These parsed-out values are provided to the service launcher 404. There are several different conventionally available XML parsers that can be used to implement parser 402, such as Document Object Model (DOM), Simple API for XML (SAX) and Java Document Object Model (JDOM). At a minimum, the DTD and the XML document should at least specify one of the services 308 to be performed. For example, the DTD may include a de?nition such as: <!ELEMENT service> <!ATTLIST service class CDATA #IMPLIED source CDATA #IMPLIED id ID #IMPLIED> This allows an XML document to specify a “service” having “class,” “source” and “id” parameters. Accordingly, a client wishing to launch a service on a remote device would create an XML document specifying a “service” with at least a desired “class.” Such a corresponding XML document may include the following text (as well as an identi?er of the DTD that de?nes its structure): <service class:“Address” id:“IDi2”> </service> This XML document requests the network device 104' to launch a “service” having a class of “Address.”Accordingly, in this example of the invention, when the network device 104' receives the XML document, parser 402 will retrieve the DTD indicated by the identi?er in the document. Using this DTD, it will understand that a “service” having a class of “Address” should be launched. Accordingly, it will send a message to service launcher 404 to launch a service de?ned by the class “Address,” which can, for example, cause the physical address of the device to be set or reported. If the service includes any runtime parameters, the DTD and XML documents should specify those as well, although the service should be able to execute using default param eters. Depending on the service requested, there may or may not be a requested response to be sent back to the client. For example, one requested service may be to provide traf?c statistics of the device, for which a response would be collected from the device hardware and software and returned to the client. Meanwhile, another requested service may be to adjust priorities of certain traf?c ?ows, for which a response from the device hardware and software would not necessarily be requested. As an example of a requested service with runtime parameters, a requested service may be to report on device throughput, collected a variable number of seconds apart, with the report repeatedly provided back to the client once per variable number of minutes.
  • 10. US 7,313,608 B1 7 Using the above example of the service of class “Address,” the DTD may further include a de?nition such as: <EELEMENT property (value 1 null)*> <EATTLIST property name CDATA #REQUIRED> <EELEMENT value (#PCDATA)*> <EATTLIST value class CDATA #IMPLIED id ID #IMPLIED source IDREF #IMPLIED> This alloWs a “property” With a “name” to be assigned a “value.” A corresponding XML document may then be created by the requesting client that contains the folloWing text: <property name = “city”> <value id=“IDi3”>San Francisco</value> </property> <property name = “country”> When these de?nitions and this text are combined With the previously-described XML-encoded request, the combined XML text could, for example, cause a service of class “Address” to set a city ?eld and a country ?eld in the device address system variables to San Francisco and USA, respec tively. Service launcher 404 receives, at a minimum, an identi?er of the requested service to be executed by the device, as encoded in the XML document and parsed by parser 402. Service launcher 404 then retrieves the requested service from services storage 308 and instantiates a version of the service With any parameters also provided in the XML document and parsed out by parser 402. According to an aspect of the invention, all services do not continually run on the device 104'. Rather, individual services are launched as requested by clients so as to perform functionality When needed. Accordingly, service launcher 404 provides the mechanism for causing a service to be executed on device 104' When it is requested. According to a further aspect of the invention, services are designed to be generic so that E they may be executed on various different devices and With the capability of being particulariZed for a speci?c circumstance. For example, using the illustration above, the “Address” class service can be used on any device With system variables for device location, and can accept any string for insertion into the city and country ?elds. In one example of the invention discussed above, services are encapsulated in Oplets and doWnloaded, installed and managed by the ORETM. HoWever, the present invention is not limited to this example. As another alternative, services may be methods that operate on objects designed in any object-oriented programming language such as C++, Java, etc. Such methods can then be instantiated With the param eters provided in the XML document and compiled into an executable ?le by service launcher 404, Which executable ?le can then be executed as a task on the device CPU under a device operating system such as VxWorks. It should be further apparent that the invention is not limited to object 15 20 25 30 35 40 45 50 55 60 65 8 oriented programming languages, and those skilled in the art Will understand hoW to implement the present invention using other non-object-oriented programming languages such as C, PERL and CORBA. Device APIs 406 includes functionality to interact With device hardWare and softWare 306 to perform the requested service and to receive any responses from the device’s device hardWare and softWare. For example, Where a service requests a netWork parameter of the device such as the device’s name, the device APIs 406 Will interact With the device hardWare and softWare to retrieve the name (eg a string) from the device’s system variables (eg MIB) and provide it to response retrieval 408, along With an identi?er of the service that requested the parameter. It should be appreciated that the actual implementation of device APIs 406 depends on the code used to implement services 308, as Well as the device hardWare and softWare. In one example of the invention, all services 308 use a common code language such as C/C++. In such an example, device APIs 406 comprises APIs that provide a common interface for all such services to the existing code running on the device 104'. Accordingly, services 308 can be designed to execute on various platforms, With a knoWn set of APIs providing a common interface to the services, While provid ing a variable interface With the existing code, depending on the device. The design and implementation of such APIs are Within the skill of those in the art given the existing code, the device operating system and the design of services 308. In another example, device APIs 406 communicate With existing conventional applications of netWork device 104 through a loopback address of the device. For example, the service requested by the received XML document may request access to netWork parameters of the device. Speci? cally, the requested service launched by the XML engine can access the netWork parameters of the device by specifying the loopback address, Which can then access the parameters through a netWork protocol stack such as an SNMP stack. It should be apparent that the above tWo examples are not necessarily mutually exclusive. Further, other example implementations of device APIs 406 are possible. Response retrieval 408 keeps track of the services that require responses from the device hardWare and softWare and initiates response messages to the requesting client When responses are received. It receives from service launcher 404 identi?ers of the services that have been a launched, as Well as handles to the XML encoded request that caused the service to be launched. When responses are received from device APIs 406, they are preferably received along With the identi?er of the service. Response retrieval 408 can then correlate the response to the XML encoded request to Whom the response belongs and forWard the response to response formatter 410 along With the handle to the XML encoded request. Response formatter 410 formats response messages to be sent back to the requesting client. It receives from response retrieval 408 a response along With an identi?er of the XML encoded request, formats a response message for transmis sion back to the requesting client, and forWards the response message to the netWork data transfer service 302. NetWork data transfer service 302 can then send the message back to the requesting client by using the handle of the XML encoded request to retrieve the header information contained in the packets carrying the XML encoded request. In one example of the invention, responses are also XML encoded documents that Will instantiate a response object on the client. In this example, response formatter 410 may also access DTDs such as DTD 202 for formatting a response.
  • 11. US 7,313,608 B1 However, it should be apparent that many other variations of formatting a response other than using XML documents are possible. It should be further apparent that there are many possible Ways of implementing response retrieval 408 and response formatter 410, and that they may be omitted altogether. For example, response retrieval 408 and/or response formatter 410 may be partially or fully implemented by #either or both of services 308 and device APls 406. FIG. 5 is an architectural vieW of an example of netWork device 104' in accordance With the principles of the present invention. As shoWn in this example, interaction With the device hardWare 514 (eg sWitch fabric, ports, memory, etc.) is performed through the device operating system 512 (eg VxWorks). The device code (eg routing softWare, etc.) 502 interacts With the device operating system 512. Application programming interfaces (APl’s) 504 (eg Java, C/C++, etc.) interact directly With the device hardWare 514 and/or via device operating system 512. APl’s 504 may further interact With device hardWare and operating system through device drivers (not shoWn). Java Virtual Machine (JV M) 508 pref erably includes all functionality provided by a conventional JVM and is ported to the device 104' and operating system 512. Oplet Runtime EnvironmentTM (ORE) 506 interacts With the JV M to coordinate the doWnloading, management and execution of services 308. XML engine 304 and services 308 interact With ORE 506 for execution. XML engine 304 and services 308, and transfer service 302, during operation, may also interact With APl’s 504, Which further interact With device code 502. FIG. 6 illustrates an example implementation of a net Work device 104' having the architecture illustrated in FIG. 5. As shoWn, netWork device 104' includes a CPU 602, sWitch fabric 604, storage 608, netWork port 610 and memory 612 all communicating via a bus 614. SWitch fabric 604 further communicates With sWitch ports 606. Storage 608 can comprise memory for storing program and device data. Network port 610 can provide a loopback address for access by services and other netWork management applica tions as described above. Memory 612 includes code for execution by CPU 602. It should be apparent that components corresponding to CPU 602, sWitch fabric 604, sWitch ports 606, storage 608, netWork port 610, memory 612 and bus 614 are also provided in a conventional netWork device 104. Accord ingly, as should be further apparent from FIG. 6, adapting a conventional netWork device 104 in accordance With the invention merely requires updating memory 612 to include executable softWare corresponding to the above-described functionality of the invention. FIG. 7 illustrates an example of a process by Which an XML encoded request received by the netWork device 104' is ful?lled in accordance With the present invention. As shoWn in FIG. 7, When interaction With the netWork device 104' is desired, the client computer 100' encodes the request by constructing an XML encoded document corre sponding to the request and in accordance With a corre sponding DTD. This XML document is sent across the netWork 102 using a standard netWork protocol such as HTTP and received by netWork device 104' (block S702). The XML document is received by the netWork data transfer service 302 running on the netWork device 104' and pro vided to the XML engine 304. The XML engine 304 parses the XML document using the corresponding DTD identi?ed in the document (block S704). The parsed document corre 20 25 30 35 40 45 50 55 60 65 10 sponds to one of the stored services 308, Which is then instantiated With the parameters included in the parsed document. The instantiated service is then launched for execution on the device 104' (block S706). The requested service may require interaction With the device softWare and hardWare for execution, as indicated in block S708. If a response message back to the requesting client 100' is required by the service (determined in block S710), the response from the device hardWare and/or softWare is retrieved (block S712), and a response message is formatted and forWarded to netWork data transfer service 302 for transmission back to client 100' (block S714). Although the present invention has been particularly described With reference to the preferred embodiments, it should be readily apparent to those of ordinary skill in the art that changes and modi?cations in the form and details may be made Without departing from the spirit and scope of the invention. It is intended that the appended claims include such changes and modi?cations. What is claimed is: 1. A method for controlling a data forWarding service in a netWork device comprising a data forWarding device, comprising the steps of: receiving at the netWork device a document Written in accordance With a markup language and a correspond ing document de?nition, Wherein the document describes the data forWarding service by specifying a class of objects for the data forWarding service; parsing by the netWork device the received document in accordance With the corresponding document de?ni tion, Wherein the parsing determines at least one parameter describing the data forWarding service; and executing the data forWarding service on the netWork device upon completion of the parsing, in accordance With the parsed document, Wherein the executing includes instantiating and launching the data forWard ing service in the data forWarding device based on the class of objects for the data forWarding service, and Wherein the data forWarding service con?gures a for Warding architecture in the netWork device operable to ?lter netWork tra?ic. 2. A method according to claim 1, Wherein the step of executing includes the step of interfacing With hardWare and softWare on the netWork device. 3. A method according to claim 1, Wherein the markup language is XML. 4. A method according to claim 3, Wherein the corre sponding document de?nition is an XML DTD. 5. A method according to claim 1, further comprising: retrieving the corresponding de?nition from a plurality of document de?nitions in accordance With an identi?er in the received document. 6. Amethod according to claim 5, Wherein the plurality of document de?nitions are provided in a local storage of the netWork device. 7. A method according to claim 3, further comprising the step of: retrieving the corresponding document de?nition from a plurality of document de?nitions in accordance With an identi?er in the received document. 8. Amethod according to claim 5, Wherein the plurality of document de?nitions are provided in a local storage of the netWork device. 9. A method according to claim 1, Wherein the step of parsing includes the step of parsing from the document an identi?er corresponding to the service.
  • 12. US 7,313,608 B1 11 10. A method according to claim 9, wherein the step of parsing further includes the step of parsing from the docu ment runtime parameters corresponding to the service. 11. A method according to claim 5, further including the step of: instantiating an object corresponding to the service in accordance with the parsed identi?er. 12. A method according to claim 10, further including the step of: instantiating an object corresponding to the service in accordance with the parsed identi?er and the parsed runtime parameters. 13. A method according to claim 1, wherein the network device comprises one of a router, a switch, and a hub. 14. A method according to claim 1, wherein the network device comprises a packet forwarding architecture. 15. Amethod according to claim 1, further comprising the step of preparing a response corresponding to the executed service. 16. A method according to claim 14, further comprising the step of forwarding the response to a remote requestor of the service. 17. A network device for locally performing a data forwarding service in response to a remote request, wherein the network device comprises a data forwarding device, the data forwarding device including a computer readable stor age medium having program code stored thereon, the pro gram code comprising: means for receiving at the network device a document written in accordance with a markup language and a corresponding document de?nition, wherein the docu ment describes the data forwarding service by speci fying a class of objects for the data forwarding service; means for parsing by the network device the received document in accordance with the corresponding docu ment de?nitions, wherein the parsing determines at least one parameter describing the data forwarding service; and means for executing the data forwarding service on the network device upon completion of the parsing, in accordance with the parsed document, wherein the means for executing includes means for instantiating and launching the data forwarding service in the data forwarding device based on the class of objects for the data forwarding service, and wherein the data forward ing service con?gures a forwarding architecture in the network device operable to ?lter network traf?c. 18. A network device according to claim 17, wherein the means for executing includes means for interfacing with hardware and software on the network device. 19. A network device according to claim 17, wherein the markup language is XML. 20. A network device according to claim 19, wherein the corresponding document de?nition is an XML DTD. 21. A network device according to claim 17, the program code further comprising: means for retrieving the corresponding document de?ni tion from a plurality of document de?nitions in accor dance with an identi?er in the received document. 22. A network device according to claim 21, wherein the plurality of document de?nitions are provided in a local storage of the network device. 23. A network device according to claim 19, further comprising: means for retrieving the corresponding document de?ni tion from a plurality of document de?nitions in accor dance with an identi?er in the received document. 5 20 30 35 50 55 65 12 24. A network device according to claim 21, wherein the plurality of document de?nitions are provided in a local storage of the network device. 25. A network device according to claim 17, wherein the means for parsing includes means for parsing from the document an identi?er corresponding to the service. 26. A network device according to claim 25, wherein the means for parsing further includes means for parsing from the document runtime parameters corresponding to the ser vice. 27. A network device according to claim 21, the program code further including: means for instantiating an object corresponding to the service in accordance with the parsed identi?er. 28. The network device according to claim 26, the pro gram code further including: means for instantiating an object corresponding to the service in accordance with the parsed identi?er and the parsed runtime parameters. 29. A network device according to claim 17, wherein the network device comprises one of a router, a switch, and a hub. 30. A network device according to claim 17, wherein the network device comprises a packet forwarding architecture. 31. A network device according to claim 17, the program code further comprising means for preparing a response corresponding to the executed service. 32. A network device according to claim 30, the program code further comprising means for forwarding the response to a remote requestor of the service. 33. A network device for locally performing a data forwarding service in accordance with a received document written in a document markup language, wherein the net work device comprises a data forwarding device, the data forwarding device including a computer readable storage medium having program code stored thereon, the program code comprising: a parser that is adapted to parse the received document in accordance with a document de?nition to obtain an identi?er of the service, wherein the parsing determines at least one parameter describing the data forwarding service by specifying a class of objects for the data forwarding service; and a service launcher that is adapted to launch the data forwarding service corresponding to the identi?er parsed from the received document, wherein the ser vice launcher instantiates and launches the data for warding service in the data forwarding device upon completion of the parsing based on the class of objects for the data forwarding service, and wherein the data forwarding service con?gures a forwarding architec ture in the network device operable to ?lter network tra?ic. 34. A network device according to claim 33, the program code further comprising: a network data transfer service that is adapted to com municate with remote devices for receiving the docu ment. 35. A network device according to claim 34, wherein the network data transfer service comprises an HTTP server. 36. A network device according to claim 33, wherein the markup language is XML. 37. A network device according to claim 36, wherein the document de?nition is an XML DTD. 38. A network device according to claim 33, further comprising a document de?nition storage coupled to the parser that stores a plurality of document de?nitions, the
  • 13. US 7,313,608 B1 13 parser being further adapted to select the document de?ni tion from the stored plurality of document de?nitions in accordance with a document de?nition identi?er. 39. A network device according to claim 33, further comprising a services storage coupled to the service launcher that stores a plurality of services, the service launcher being further adapted to select the service from the stored plurality of services in accordance with the parsed identi?er. 40. A network device according to claim 33, the program code further comprising an Oplet Runtime Environment, the service launcher being further adapted to launch the service under the Oplet Runtime Environment. 41. A network device according to claim 33, further comprising a packet forwarding switch fabric. 42. A network device according to claim 41, wherein the launched service causes changes in how packets are for warded through the packet forwarding switch fabric. 43. A network device according to claim 41, wherein the launched service monitors performance indicators of how packets are forwarded through the packet forwarding switch fabric. 44. A network device according to claim 33, further comprising device APIs for interoperating with device hard ware and software for executing the launched services. 45. A network device according to claim 40, further comprising device APIs for interoperating with device hard ware and software for executing the launched services. 46. A network device according to claim 41, further comprising device APIs for interoperating with device hard ware and software for executing the launched services. 47. A method for causing a network device to locally perform a data forwarding service, wherein the network device comprises a data forwarding device, comprising the steps of: 20 25 30 14 identifying the data forwarding service to be performed at a remote client computer; preparing at the remote client computer a document written in a markup language in accordance with a document de?nition, the document including an iden ti?er of the service, wherein the document describes the data forwarding service by specifying a class of objects for the data forwarding service; transmitting the document to the network device; identifying at the network device the document de?nition corresponding to the transmitted document; parsing by the network device the transmitted document in accordance with the corresponding document de? nition, wherein the parsing determines the class of objects for the data forwarding service and at least one parameter describing the data forwarding service; and executing the data forwarding related service on the network device upon completion of the parsing, in accordance with the parsed document, wherein the executing includes instantiating and launching the data forwarding service on the data forwarding device based on the class of objects for the data forwarding service, and wherein the data forwarding service con?gures a forwarding architecture in the network device operable to ?lter network traf?c. 48. A method according to claim 47, wherein the markup language is XML. 49. A method according to claim 48, wherein the corre sponding document de?nition is an XML DTD.