throbber
INTERNATIONAL JOURNAL OF NETWORK MANAGEMENT
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`AnefficientandlightweightembeddedWebserver
`forWeb-basednetworkelementmanagement
`
`ByHong-TaekJu,(cid:3) Mi-JoungChoiandJamesW.Hong
`
`An Embedded Web Server (EWS) is a Web server which runs on an
`embedded system with limited computing resources to serve embedded
`Web documents to a Web browser. By embedding a Web server into a
`network device, it is possible to provide a Web-based management user
`interface, which are user-friendly, inexpensive, cross-platform, and
`network-ready. This article explores the topic of an efficient and
`lightweight embedded Web server for Web-based network element
`management. Copyright (cid:211) 2000 John Wiley & Sons, Ltd.
`
`Introduction
`
`A s the World-Wide Web (or Web) contin-
`
`ues to evolve, it is clear that its under-
`lying technologies are useful for much
`more than just browsing the Web. Web browsers
`have become the de facto standard user interface
`for a variety of applications. This is because Web
`browsers can provide a GUI interface to var-
`ious client/server applications without a client
`application. An increasing number of Web tech-
`nologies can also be applied to network element
`management.
`
`Web-based network element management gives
`an administrator the ability to configure and
`monitor network devices over the Internet using a
`Web browser. The most direct way to accomplish
`this is to embed a Web server into a network
`device and use that server to provide a Web-
`based management user interface constructed
`using HTML,5 graphics and other features common
`to Web browsers.4 Information is provided to the
`user by simply retrieving pages, and information
`is sent back to the device using forms that the user
`completes. Web-based management user interfaces
`(WebMUIs) through embedded Web servers have
`
`Hong-Taek Ju received his BS degree in computer science from Korea Advanced Institute of Science and Technology (KAIST) in 1989 and MS
`degree in Computer Science and Engineering from Pohang University of Science and Technology (POSTECH) in 1991. From 1991 to 1997, he
`worked at DAEWOO Telecom. Currently, he is a PhD candidate in the Department of Computer Science and Engineering, POSTECH. His
`research interests include distributed processing and network management.
`
`Mi-Joung Choi received her BS degree in computer science from Ewha Womans University. She is currently a graduate student in the Department
`of Computer Science and Engineering, POSTECH. Her research interests include Web-based network management and policy-based network
`management.
`
`James W. Hong is an associate professor in the Department of Computer Science and Engineering, POSTECH, Pohang, Korea. He has been
`with POSTECH since May 1995. Prior to joining POSTECH, he was a research professor in the Department of Computer Science, University
`of Western Ontario, London, Canada. Dr Hong received BSc and MSc degrees from the University of Western Ontario in 1983 and 1985,
`respectively, and PhD degree from the University of Waterloo, Waterloo, Canada in 1991. He has been very active as a participant, program
`committee member and organizing committee member for IEEE CNOM sponsored symposiums such as NOMS, IM, DSOM and APNOMS.
`For the last several years, he has been working on various research projects on network and systems management, which utilize Web, Java
`and CORBA technologies. His research interests include network and systems management, distributed computing and traffic engineering and
`planning. He is a member of IEEE, KICS, KNOM and KISS.
`
`(cid:3)
`
`Correspondence to: Hong-Taek Ju, DPNM Laboratory, Department of Computer Science and Engineering, Pohang University of Science and
`Technology, San 31, Hyojadong, Namgu, Pohang, Korea.
`Email: juht@postech.ac.kr
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`ZSCALER Ex. 1011 p.1
`
`

`

`262
`
`H.-T. JU ET AL.
`
`many advantages: ubiquity, user-friendliness, low
`development cost and high maintainability.
`Embedded Web Servers (EWSs)1 – 3 have different
`requirements, such as low resource utility, high
`reliability, security and portability,
`for which
`general Web server technologies are unsuitable.
`Above all, due to resource scarcity in embedded
`systems it is important to make EWSs efficient
`and lightweight. There are also design issues such
`as HTTP6;7 and embedded application interface.
`In embedded Web server usage, Java applets can
`play an important role for making embedded Web
`servers truly useful for management applications.
`In this paper, we present our research to develop
`an efficient and lightweight EWS for Web-based
`network element management. We first propose
`the architecture of an embedded Web server that
`can provide a simple but powerful application
`interface for network element management. We
`then present the design and implementation of
`POS-EWS, an embedded Web server that we
`have developed for Web-based network element
`management. Finally, we present the results of
`POS-EWS’s performance and EWS optimization
`methods for making an efficient and lightweight
`EWS. There are many commercial EWS products
`on the market for Web appliances, but our work is a
`good example of making an efficient EWS suitable
`for Web-based network element management.
`The organization of the paper is as follows.
`In the second section we present an overview
`of EWSs, and describe the EWS-WebMUI and
`EWS requirements. In the next two sections we
`present the EWS design and implementation of
`our proposed EWS architecture, respectively. In the
`fifth section we evaluate POS-EWS’s performance
`and explain our methods for optimizing POS-
`EWS. In the sixth section we briefly investigate
`the available offerings of EWS products focusing
`on their features and the approximate code size
`needed. In the final section we summarize our
`work and discuss possible future work.
`
`Embedded Web Servers and
`Web-based Management User
`Interface
`In this section, we briefly overview embedded
`Web servers, comparing them with general Web
`servers. Also, we describe the EWS-WebMUI and
`
`EWS requirements that we must consider during
`development.
`
`—Embedded Web Server—
`
`General Web servers, which were developed for
`general-purpose computers such as NT servers
`or Unix and Linux workstations, typically require
`megabytes of memory, a fast processor, a pre-
`emptive multitasking operating system, and other
`resources. A Web server can be embedded in a
`device to provide remote access to the device from
`a Web browser if the resource requirements of
`the Web server are reduced. The end result of this
`reduction is typically a portable set of code that can
`run on embedded systems with limited computing
`resources. The embedded system can be utilized
`to serve the embedded Web documents, including
`static and dynamic information about embedded
`systems, to Web browsers. This type of Web server
`is called an Embedded Web Server (EWS).1 – 3
`EWSs are used to convey the state informa-
`tion of embedded systems, such as a system’s
`working statistics, current configuration and oper-
`ation results, to a Web browser. EWSs are also
`used to transfer user commands from a Web
`browser to an embedded system. The state infor-
`mation is extracted from an embedded system
`application and the control command is imple-
`mented through the embedded system application.
`In many instances,
`it is advisable for embed-
`ded Web software to be a lightweight version
`of Web software. For network devices, such as
`routers, switches and hubs, it is possible to place
`an EWS directly in the devices without additional
`hardware.
`
`—EWS-WebMUI—
`
`WebMUI and EWS-WebMUI—The rapid
`proliferation of Web-based management makes
`it clear that schemes using HTTP and standard
`Web browsers provide benefits to both users and
`developers. Most Web-based management appli-
`cations provide an interface to the status reporting,
`configuration, and control features of managed
`objects. Several such Web management approaches
`have been proposed thus far. Sun Micro-systems
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.2
`
`

`

`AN EMBEDDED WEB SERVER
`
`263
`
`is pushing its Java Management eXtension (JMX)8
`and Microsoft, Compaq and Intel are touting Web-
`based Enterprise Management (WBEM).9 How-
`ever, both approaches are sufficiently complex that
`many small network devices would find it very
`difficult to implement them.
`By embedding a Web server, Web documents
`and management applications into an embedded
`system, a Web-based Management User Interface
`(WebMUI) can be provided directly to system
`administrators (an EWS-WebMUI). Therefore, an
`EWS-WebMUI is the direct result of embedding
`a Web server, Web documents and management
`applications into an embedded system. The Web
`documents give a display form of management
`information, a collection of manageable data that
`is monitored or configured for managing an
`embedded system.
`
`B y embedding a Web server in a network
`
`device, the device can serve up Web
`documents to any Web browser.
`
`Advantages of EWS-WebMUI—By embed-
`ding a Web server in a network device, the device
`can serve up Web documents to any Web browser.
`These Web documents become the GUI inter-
`face to the device. Consequently, few techniques
`need to be learned for management interface of
`the new device. Because Web documents can be
`displayed directly from files that may be edited
`with either ordinary text editors (for HTML) or
`specialized authoring tools, it is easy to quickly
`prototype the look and feel of a WebMUI. Alterna-
`tives can be explored and reviewed without ever
`actually embedding the interface into the system.
`If the mechanisms used to embed the interface are
`properly designed, changes made to the Web doc-
`uments can be quickly imported to the embedded
`system with little or no change to the management
`application code. This translates into the potential
`for better, more useful interfaces in less develop-
`ment time.
`EWS-WebMUIs also have the advantage of a
`platform independent graphical user interface. The
`SNMP10 management scheme usually consists of
`an SNMP based Network Management System
`(NMS). Most NMSs give users the option of using
`
`a graphical interface based on MS-Windows or
`X-Window as opposed to the command line inter-
`face. Most NMS users demand specific platforms,
`such as OS, or computer hardware in order to
`install and execute the NMS. By contrast, an EWS-
`WebMUI does not demand any specific platform
`because Web browsers are available for virtually
`all computers.
`While the EWS-WebMUI concept appears stra-
`ightforward and perhaps even commonplace, the
`implications are deeper than first appears. By plac-
`ing the GUI within the device itself, the device
`is now self-contained and need not be matched
`with a corresponding version of a user manage-
`ment application program; the problems inherent
`in providing separate user interface software dis-
`appears; there is no risk of the user having an
`old version of the user application software that
`does not support all the features of latest devices;
`and users can upgrade some systems to the latest
`release without having to change the management
`software they use because the necessary part of
`upgrade is only the EWS-WebMUI. Consequently,
`there are no porting or distribution efforts for the
`user application program.
`Additionally, it is usually possible to upload
`Web documents to the embedded system so that a
`device can receive an upgrade to its management
`interface from a remote location on the network.
`This feature makes it possible for developers to
`upgrade all devices over the network from the one
`point. High maintainability for EWS-WebMUI is a
`direct result of ease of Web document development
`and one point upgrade.
`
`Design
`In this section, we present our design result that
`includes a functional architecture and a process
`structure of EWS.
`
`—EWS Architecture—
`
`We have designed an EWS that consists of five
`parts: an HTTP engine, an application interface
`module, a virtual file system, a configuration
`module, and a security module. The design
`architecture of our EWS is illustrated in Figure 1.
`The most important part of the EWS is an
`HTTP engine, which serves a client’s request. The
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.3
`
`

`

`264
`
`H.-T. JU ET AL.
`
`Figure 1. EWS architecture
`
`minimum requirement for an HTTP engine is that
`it must be compliant with HTTP specifications.
`Unlike general Web servers that start a new
`thread or process whenever a new connection is
`made, normally an HTTP engine supports multiple
`simultaneous users while running as a single
`process. The number of processes that the server
`requires can impact on both RAM usage, due to
`the stack space per task, and CPU usage. Next, we
`explain an HTTP transaction process using a state
`transition diagram.
`In an EWS, the application interface module
`enables developers to add new management func-
`tionality. With any off-the-shelf Web authoring
`tool, it can merge Web documents with manage-
`ment application programs to generate specific
`dynamic management information. This module
`provides mechanisms for interacting with the
`embedded application. Embedded Web server
`software must provide mechanisms for the embed-
`ded application to generate and serve Web pages
`to the browser, and to process HTML form data
`submitted by the browser. One possible solution
`is modeled after the Common Gateway Interface
`(CGI)15 found in many traditional Web servers.
`In this model, each URL16 is mapped to a CGI
`script that generates the Web page. In a typical
`embedded system, the script would actually be
`implemented by a function call to the embedded
`application. The application could then send raw
`HTML or other types of data to the browser by
`using an interface provided by the embedded Web
`server software.
`
`Another solution is to use Server-Side Include
`(SSI).5 With this approach, Web pages are first
`developed and prototyped using conventional
`Web authoring tools and browsers. Next, propri-
`etary markup tags that define server-side scripts
`are inserted into the Web pages. The marked-up
`Web pages are then stored in the device. When
`a marked-up Web page is served, the embedded
`Web server interprets and executes the script to
`interface with the embedded application. In order
`to offload substantial Web server processing from
`the embedded system at run time, a preproces-
`sor tool can be used. The preprocessor enables
`sophisticated dynamic Web-page capabilities by
`performing complex tasks up front and generating
`an efficient and tightly integrated representation
`of the Web pages and interfaces in the embedded
`system.
`The virtual file system (VFS) provides the EWS
`with virtual file services, which are file open for
`opening the file, file read for reading the file, and
`file close for closing the file after reading. The file
`system has a data structure storing file information
`such as file size, last modified date, etc. The data
`structure for an HTML documents file needing
`dynamic information must store the pointer of the
`script and the function name called by the script.
`To construct this VFS we need a Web compiler.
`The Web compiler supports any format, such as
`Java, GIF, JPEG, PDF, TIFF, HTML, text, etc. It
`compiles these files into intermediate C-codes and
`then compiles & links them with the Web Server
`codes. The resulting structure does not require a
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.4
`
`

`

`AN EMBEDDED WEB SERVER
`
`265
`
`Figure 2. Process of a web server making a virtual file system
`
`file system, yet the files are organized like in a file
`system—a virtual file system. The Web browser
`traverses this virtual file system just as if it were an
`actual file system. Figure 2 illustrates the process
`of a Web server making a virtual file system.
`Security is an important concern in network
`management. Therefore, an EWS generally has a
`security and/or configuration module. Security
`is accomplished by defining security realms on
`a server and username/password access to each
`realm. When a request comes in for an object
`in a protected realm, the server responds with
`a response code of 401 (Unauthorized). This will
`force a browser to prompt the user for a user-
`name/password pair. The original object request
`will be resubmitted with the username/password,
`base-64 encoded, in the request header. If the
`server finds the login correct, then it will return
`the requested object, otherwise, a 403 forbidden
`response is returned. The configuration module
`provides the administrator with the functionality
`
`to set the embedded Web server configuration from
`any standard Web browser. The configuration
`environment variables passed at startup define
`the number of concurrent connections, socket port,
`own host name, root file path, default ‘index’,
`inactivity timeout and time zone. Common usage
`of Web browsers makes it a more important
`matter to protect abnormal access to the sensi-
`tive information of network devices, especially
`those that involve equipment configuration or
`administration.
`
`—EWS Process Structure—
`
`We designed an EWS as a finite state machine
`(FSM), which processes an HTTP request in a
`sequence of discrete steps. Figure 3 shows the state
`transition diagram of the HTTP engine. In order
`to support multiple connections in a single thread
`environment, multiple finite state machines are run
`by a scheduling system which uses a lightweight
`
`Figure 3. EWS finite state machine
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.5
`
`

`

`266
`
`H.-T. JU ET AL.
`
`task structure. It consists of a pointer to the function
`being run, a variable holding the state in the FSM,
`and a flag indicating whether the FSM can be run
`or blocked. The scheduling system allocates an
`available FSM for an accepted connection, checks
`each FSM to see if it is blocked or runable and, if it
`is runable, moves the FSM one step.
`Each state in an FSM can check for the presence
`of data that is ready to be processed at the entry
`point; if none is ready, the FSM can block itself
`until data arrives. When data becomes available at
`the entry point, the FSM can then be unblocked so
`its handler can perform the task of state, and turn
`over the result to the next state by changing the
`state flag and pointer to the handler.
`The following list describes the behavior of each
`state.
`(cid:15) Set up Initial State: Set up the task structure for
`an FSM. The task of this state is performed at
`the server initial time for all FSMs.
`(cid:15) Listen Connection: Check to see if any request
`is allocated to this FSM.
`(cid:15) Parse Request Header: Read the HTTP message,
`parse the HTTP header and store the parsing
`result.
`(cid:15) Map URL to Web Document: Determine type of
`application interface and store a pointer to the
`handler.
`(cid:15) Check Authentication: Force authentication of
`the user upon the URL and user name/pass-
`word.
`(cid:15) Read Web Document: Read Web document from
`virtual file system.
`(cid:15) Application Interface: Call application function
`upon the URL.
`(cid:15) Create Response: Create HTTP response header.
`(cid:15) Send Response: Send HTTP header and Web
`document.
`(cid:15) Wait new Request: Wait for a new HTTP request
`from the same TCP connection if the received
`request says HTTP/1.1 support.
`(cid:15) Close connection: Close the TCP connection.
`
`—EWS Extended Architecture for EWS
`WebMUI—
`
`As mentioned earlier, only the scheme of HTTP
`and HTML is client-driven. One side effect is that
`once a page is served to the Web browser it becomes
`static: it does not change even if management data
`
`has been altered on the server side. For a user
`seeking a device, which is dynamic, this is not very
`appealing.
`To be useful for management applications, pages
`must be constructed dynamically so that real-
`time data can be placed alongside static HTML
`in the same page. For common types of real-
`time data, such as traffic monitoring and CPU
`load, users want
`to see data displayed in a
`dynamic graphic form. This is where Java applets17
`and/or CORBA18;19 objects come in. Java applets
`are automatically downloaded by a browser as
`separate applications that get used within an
`HTML page. Once the applet is loaded, it has
`control over where it gets its data and how to
`display or manipulate that data. Java applets by
`nature are cross-platform and will act the same
`within any browser.
`Protocol
`Simple Network Management
`(SNMP)10;20 is the most widely used management
`framework for managing network devices on the
`Internet. Its protocol is simple enough that it can be
`implemented in small platforms without much dif-
`ficulty. Now most network devices are equipped
`with an SNMP agent. With integration of SNMP
`and the EWS-WebMUI, the advantages of EWS-
`WebMUI are preserved without the giving up the
`SNMP implementations.
`The EWS extended architecture gives an inte-
`gration platform. Figure 4 illustrates the EWS
`extended architecture for an EWS-WebMUI. The
`ultimate solutions is to make the EWS-WebMUI a
`user interface to communicate with the network
`device via SNMP. Java implementation of SNMP
`mediates between an SNMP agent and a Web
`browser. The Java SNMP source code is written
`and compiled to produce a Java SNMP applet. This
`applet is stored in a network device and is trans-
`ferred by the EWS to the browser over the network
`at run time. After loading on the JVM of a browser,
`the Java SNMP applet communicates with the
`SNMP agent in the network device and enables
`the administrator to control and monitor the net-
`work device through the browser, using SNMP
`messages. In addition to the Java SNMP applet,
`the network device in this scenario must store at
`least one HTML document containing reference to
`the applet. The HTML document is loaded into the
`Web browser and then the Web browser would
`automatically request the Java SNMP applet refer-
`enced by the previous HTML.
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.6
`
`

`

`AN EMBEDDED WEB SERVER
`
`267
`
`Figure 4. EWS extended architecture for WebMUI
`
`The code size of a Java SNMP applet is small
`enough to be embedded into the network device
`because SNMP is simple (three basic massage types
`and a simple message format) and light protocol
`(uses UDP as its transport protocol, and thus does
`not have connection setup and acknowledgement
`overhead). SNMP defines an alert message and
`traps, which can be directed toward one or more
`trap receiver stations. If a trap management appli-
`cation is implemented as the Java SNMP applet
`and loaded from the network device, traps can be
`collected and viewed together by the Java SNMP
`applet where appropriate responses will follow.
`
`Implementation
`We have implemented an HTTP/1.1 compliant
`embedded Web server based on the EWS design
`presented in the previous section. We call this
`system POS-EWS, which stands for POStech-
`Embedded Web Server. To demonstrate how POS-
`EWS works, we have applied our POS-EWS to
`the element management of a commercial Internet
`router. The C programming language, commonly
`used in an embedded system, is used throughout
`the server implementation. We have implemented
`POS-EWS on the Xinu OS using the MPC 860
`processor.
`
`—Features of POS-EWS—
`POS-EWS implements a subset of the HTTP
`features typically required for use in an embedded
`
`system. To reduce the TCP connection resources,
`HTTP/1.1 permits a persistent TCP connection to
`be established for as long as the Web browser
`requires access to the server. For providing up-
`to-date dynamic information, the server needs to
`control the cache mechanism that is also included
`in HTTP/1.1. The cache control and persistent TCP
`connection is essential for an EWS, and POS-EWS
`supports these two features.
`In an embedded software system, dedicating a
`unique process or thread to every incoming con-
`nection is usually impractical due to the memory
`overhead required and, in some cases, to the lack
`of embedded OS support for multiple processes.
`When developing POS-EWS, we approached the
`problem of supporting multiple connections in
`the context of a single thread by implementing
`a finite state machine, which processes a request as
`a sequence of discrete steps. With multiple finite
`machines in a single thread, several connections
`can be activated at once, where each state machine
`representing a specific connection is scheduled
`to process in a round-robin manner. POS-EWS
`imposes a deterministic scheduler for handling
`multiple finite state machines.
`For an embedded system, which may not need
`the full features of a file system, POS-EWS uses
`a Virtual File System (VFS) which can provide
`a limited set of read-only files built into the
`ROM. The VFS can be used with or without a
`real file system. If a real file system exists, the
`VFS will forward the file request to it. Using the
`VFS generator, which is one component of the
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.7
`
`

`

`268
`
`H.-T. JU ET AL.
`
`POS-EWS preprocessor compiler, the compressed
`HTML file for use by the EWS is created. The file
`will be decompressed by the VFS prior to use by
`POS-EWS.
`POS-EWS supports the SSI style application
`interface. A proprietary tag can be included in
`a Web page so that when the page is requested
`it will cause POS-EWS to execute the function
`specified in the Web page using the tag. The
`function returns string data directly to POS-EWS
`to be used as part of the requested Web document.
`This allows the inclusion of dynamic management
`data directly into a loading HTML document,
`such as the current time or communication port
`status. We implemented this interface style via a
`table of name and pointer to functions. The table
`is constructed from the POS-EWS preprocessing
`compiler using the construction method explained
`below. Another application interface method is the
`FORM processing interface method.5 The HTML
`FORM keyword allows the browser to send input
`back to the server by issuing a POST HTTP
`message. This feature is useful if there are control
`commands or configuration settings that need to
`be sent to management applications. Upon receipt
`of a POST message, POS-EWS calls a function that
`parses input from the browser and performs an
`action based on what it found in the input. Like
`the SSI style interface, this type of interface is also
`implemented by a table and preprocessing.
`POS-EWS also supports state management using
`HTTP cookies.21 A cookie is a record that contains
`management data for a manager to set. It is stored
`
`on Web browsers, and is sent to Web servers each
`time a manager sends a request to a Web server.
`Cookies are useful for having a Web browser
`remember some specific information which the
`Web server can later retrieve. A server, when
`returning an HTTP object to a client, may also
`send a piece of state information which the client
`will store. This simple mechanism can be used in
`management applications.
`
`—POS-EWS Web Compiler—
`
`We have also developed a Web compiler22 for
`constructing a virtual file system (VFS) and efficient
`SSI application interface. Interpreting scripts at run
`time results in full scanning for the HTML file,
`which may impact system performance. The Web
`compiler can offload POS-EWS’s scanning results
`by recording the position of a tag with the HTML
`file in the VFS. The server reads the HTML file
`before the starting point of a tag, calls the script
`function and proceeds with reading the HTML.
`An example of an HTML and a subset of a
`compilation result are shown in Figure 5. In this
`example, the content of sysname.html is converted
`into a character array by the name of sysname html,
`which is the result of simple conversion from file
`name to C language array name, i.e., changing the
`dot to an under-score.
`The structure vf is a container for storing file
`information such as file size, last modified date,
`etc. The pointer value of the converted character
`
`Figure 5. Virtual file system code
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.8
`
`

`

`AN EMBEDDED WEB SERVER
`
`269
`
`array, data, is one of the most important elements in
`the structure because this value is used to read real
`content by POS-EWS at run time. The structure
`sc list is used to make a linked list for script
`functions. The header pointer for the linked list is
`also one element in the vf structure. POS-EWS uses
`this pointer value for calling the script function.
`The structure vf has an additional variable for
`supporting the file interface functions, for example,
`file read pointer, file state flag, etc. With the file
`interface functions such as file open (vf open), file
`read (vf read) and file close (vf close), generated C
`codes become a complete virtual file.
`Optionally, the Web compiler can also compress
`the Web documents. HTML is easily compressed
`as much as 50% with almost no run time memory
`required for decompression. HTTP/1.1 supports
`compressed file transfer from the Web server
`to Web browser. The Web document is stored
`in compressed form, transmitted directly, and
`decompressed by the Web browser. HTTP/1.1 can
`convey the information of compressed documents
`in the Accept-Encoding and Content-Encoding header
`fields. More importantly, it indicates what decom-
`pression algorithm will be required to remove
`the compression encoding. The following algo-
`rithms, as well as others, are registered in standard
`HTTP/1.1: gzip (generated by the GNU gzip pro-
`gram), and compress (produced by the common
`UNIX file compression program compress). Because
`the algorithms minimize the ROM space used, stor-
`ing a reasonable size of Web documents on the
`
`device has a negligible impact on embedded sys-
`tem resources. For POS-EWS, we have used the
`gzip algorithm to compress at preprocessing and
`decompress at run time.
`The results of implementation can be summa-
`rized as follows: the POS-EWS Web compiler
`converts Web documents to be stored in the vir-
`tual file system to compressed C arrays as a virtual
`file. Then it creates a directory data structure in
`order to store the file information in the virtual file
`system. Library functions for the file interface are
`supported without any RTOS dependency.
`
`—POS-EWS Management Application
`Example—
`
`Management information can be classified by
`the update period, direction of information flow or
`object of information source. From the viewpoint
`of update period, some management information
`changes dynamically, and some does not change
`at all. Furthermore, some information possesses
`real-time characteristics. Regarding the direction of
`information flow, some information can originate
`from a Web browser and go to a Web server and
`vice-versa.
`As shown in Figure 6, there are four methods
`to retrieve data from an embedded system using
`POS-EWS. Method (a) is the most basic method to
`display data in a Web browser. POS-EWS reads
`data from a file and sends it to the browser. It
`
`Figure 6. POS-EWS WebMUI mechanism
`
`Copyright (cid:211)
`
`2000 John Wiley & Sons, Ltd.
`
`Int. J. Network Mgmt 2000; 10:261 – 275
`
`ZSCALER Ex. 1011 p.9
`
`

`

`270
`
`H.-T. JU ET AL.
`
`is suitable for static information like menu, image
`and so on. Method (b) is the second method, where
`POS-EWS reads the requested HTML file, calls an
`embedded application function in accordance with
`the script tags, replaces the tags of HTML with the
`result of the application function all format, and
`sends it to the browser. This method is suitable
`for showing dynamic information of the system.
`Circle (b) in Figure 7 shows the user-selectable port
`name retrieved by this method.
`Method (c) is the same as (b) except for the infor-
`mation provider. POS-EWS retrieves an SNMP
`MIB value instead of an application function
`return value in replacing tags in HTML. It is
`suitable if management information is defined in
`SNMP MIB. It has the advantage of showing static
`and dynamic information of a system using an
`SNMP MIB database without additional SNMP
`traffic.
`In method (d), POS-EWS sends the Java SNMP
`manager applets to the Web browser when
`requested, and the browser executes them. The
`Java SNMP manager continuously sends SNMP
`GET messages to the SNMP agent in the system for
`displaying real-time data. This method is suitable
`for showing real-time changes of system status and
`SNMP Trap information. Circle (d) in Figure 7 is
`
`Java applet which displays status of each port in
`real-time.
`For validation of our work on the design and
`implementation of an efficient and lightweight
`EWS, we have used our POS-EWS for the network
`element management of a commercial Internet
`router. Figure 7 shows the display result of the
`WebMUI. Circles (a), (b), (c), (d) in Figure 7
`show four different ways to retrieve data from an
`embedded system

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket