Results 1 - 10
of
12
IO-Lite: A Unified I/O Buffering and Caching System
- ACM Transactions on Computer Systems
, 1997
"... This paper presents the design, implementation, and evaluation of IO-Lite, a unified I/O buffering and caching system. IO-Lite unifies all buffering and caching in the system, to the extent permitted by the hardware. In particular, it allows applications, interprocess communication, the filesystem, ..."
Abstract
-
Cited by 169 (13 self)
- Add to MetaCart
This paper presents the design, implementation, and evaluation of IO-Lite, a unified I/O buffering and caching system. IO-Lite unifies all buffering and caching in the system, to the extent permitted by the hardware. In particular, it allows applications, interprocess communication, the filesystem, the file cache, and the network subsystem to share a single physical copy of the data safely and concurrently. Protection and security are maintained through a combination of access control and read-only sharing. The various subsystems use (mutable) buffer aggregates to access the data according to their needs. IO-Lite eliminates all copying and multiple buffering of I/O data, and enables various cross-subsystem optimizations. Performance measurements show significant performance improvements on Web servers and other I/O intensive applications. 1 Introduction This paper presents the design, the implementation, and the performance of IO-Lite, a unified I/O buffering and caching system. IO-Li...
Programming the Web with High-Level Programming Languages
- In European Symposium on Programming
, 2001
"... Many modern programs provide operating system-style services to extension modules. A Web server, for instance, behaves like a simple OS kernel. It invokes programs that dynamically generate Web pages and manages their resource consumption. Most Web servers, however, rely on conventional operating sy ..."
Abstract
-
Cited by 46 (11 self)
- Add to MetaCart
Many modern programs provide operating system-style services to extension modules. A Web server, for instance, behaves like a simple OS kernel. It invokes programs that dynamically generate Web pages and manages their resource consumption. Most Web servers, however, rely on conventional operating systems to provide these services. As a result, the solutions are inefficient, and impose a serious overhead on the programmer of dynamic extensions. In this paper, we show that a Web server implemented in a suitably extended high-level programming language overcomes all these problems. First, building a server in such a language is straightforward. Second, the server delivers static content at performance levels comparable to a conventional server. Third, the Web server delivers dynamic content at a much higher rate than a conventional server, which is important because a significant portion of Web content is now dynamically generated. Finally, the server provides programming mech...
An Analysis of Web Server Performance
- In Proceedings of GLOBECOM '97
, 1997
"... Web server performance is a critical issue for sites which service a high volume of requests. This paper examines the performance of Web servers under high CPU loads. Simulations are used in conjunction with workloads which were obtained by analyzing Web logs and performance data from several real s ..."
Abstract
-
Cited by 40 (9 self)
- Add to MetaCart
Web server performance is a critical issue for sites which service a high volume of requests. This paper examines the performance of Web servers under high CPU loads. Simulations are used in conjunction with workloads which were obtained by analyzing Web logs and performance data from several real sites. Performance is significantly affected by the percentage of requests for dynamic HTML pages; dynamic HTML pages adversely affect server performance. In order to optimize performance, the number of dynamic pages should be kept as low as possible. When dynamic pages are required, techniques such as fast API's for invoking server programs and caching can be employed to keep the overhead of server programs generating the dynamic pages as low as possible. When the server is operating at or near peak capacity, there is a trade-off between average latencies and the percentage of requests rejected; performance is improved by rejecting a higher percentage of requests. For the real request distri...
Modeling Web Interactions
, 2003
"... Programmers confront a minefield when they design interactive Web programs. Web interactions take place via Web browsers. With browsers, consumers can whimsically navigate among the various stages of a dialog and can thus confuse the most sophisticated corporate Web sites. In turn, Web services ..."
Abstract
-
Cited by 29 (3 self)
- Add to MetaCart
Programmers confront a minefield when they design interactive Web programs. Web interactions take place via Web browsers. With browsers, consumers can whimsically navigate among the various stages of a dialog and can thus confuse the most sophisticated corporate Web sites. In turn, Web services can fault in frustrating and inexplicable ways. The quickening transition from Web scripts to Web services lends these problems immediacy.
SpeechWear: A mobile speech system
- Proceedings of ICSLP '96
, 1996
"... We describe a system that allows ambulating users to perform data entry and retrieval using a speechinterface to a wearable computer. The interface is a speech-enabled Web browser that allows the user to access both locally stored documents as well as remote ones through a wireless link. ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
We describe a system that allows ambulating users to perform data entry and retrieval using a speechinterface to a wearable computer. The interface is a speech-enabled Web browser that allows the user to access both locally stored documents as well as remote ones through a wireless link.
Automatically Restructuring Programs for the Web
, 2003
"... this paper, we show that Web programmers can use existing software engineering methods to develop interactive programs and that well-known, algorithmic transformations can generate standard CGI scripts from these programs. Specifically, we extend a programming language with a primitive for Web inter ..."
Abstract
-
Cited by 10 (3 self)
- Add to MetaCart
this paper, we show that Web programmers can use existing software engineering methods to develop interactive programs and that well-known, algorithmic transformations can generate standard CGI scripts from these programs. Specifically, we extend a programming language with a primitive for Web interactions and show how this extension simplifies the design, development, and maintenance of interactive Web programs; how it allows programmers to migrate legacy programs to the Web; how the resulting programs manage the two kinds of information flows found in Web programs; and how we can adapt existing programming environments in support of this development style
Implementation and use of the PLT Scheme web server
- Higher-Order and Symbolic Computation
, 2007
"... Abstract. The PLT Scheme Web Server uses continuations to enable a natural, console-like program development style. We describe the implementation of the server and its use in the development of an application for managing conference paper reviews. In the process of developing this application, we e ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
Abstract. The PLT Scheme Web Server uses continuations to enable a natural, console-like program development style. We describe the implementation of the server and its use in the development of an application for managing conference paper reviews. In the process of developing this application, we encountered subtle forms of interaction not directly addressed by using continuations. We discuss these subtleties and offer solutions that have been successfully deployed in our application. Finally, we present some details on the server’s performance, which is comparable to that of the widely-used Apache Web server. 1. The Structure of Web Programs Consider the following sequence of Web interactions: 1. A user examines a list of books. 2. The user requests the page for book A. 3. The user presses the “buy now ” button on the page showing book A. As expected, the application registers a purchase for book A. This behavior, which corresponds to a traditional console application, seems entirely reasonable. Consider, however, the following sequence with the same implementation (the Wi name browser windows): 1. The user examines a list of books (W1). 2. The user requests the page for book A in a new browser window (W2). 3. The user switches to W1. 4. The user requests the page for book B in a new browser window (W3). 5. The user switches to W2 and presses the “buy now ” button on it. In some implementations, this sequence of interactions can result in a purchase of book B rather than of A. This is obviously not at all what the user intended.
Advanced Control Flows for Flexible Graphical User Interfaces or, Growing GUIs on Trees or, Bookmarking GUIs
- In Proceedings of the 24th International Conference on Software Engineering (ICSE-02
, 2002
"... Web and GUI programs represent two extremely common and popular modes of human-computer interaction. Many GUI programs share the Web's notion of browsing through data- and decisiontrees. This paper compares the user's browsing power in the two cases and illustrates that many GUI programs fall short ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Web and GUI programs represent two extremely common and popular modes of human-computer interaction. Many GUI programs share the Web's notion of browsing through data- and decisiontrees. This paper compares the user's browsing power in the two cases and illustrates that many GUI programs fall short of the Web's power to clone windows and bookmark applications. It identifies a key implementation problem that GUI programs must overcome to provide this power. It then describes a theoretically well-founded programming pattern, which we have automated, that endows GUI programs with these capabilities. The paper provides concrete examples of the transformation in action.
Modeling web interactions and errors
- Interactive Computation: The New Paradigm, Springer Lecture Notes in Computer Science
, 2006
"... Summary. Programmers confront a minefield when they design interactive Web programs. Web interactions take place via Web browsers. Browsers permit consumers to whimsically navigate among the various stages of a dialog, leading to unexpected outcomes. Furthermore, the growing diversity of browsers me ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Summary. Programmers confront a minefield when they design interactive Web programs. Web interactions take place via Web browsers. Browsers permit consumers to whimsically navigate among the various stages of a dialog, leading to unexpected outcomes. Furthermore, the growing diversity of browsers means the number of interactive operations users can perform continues to grow. To investigate this programming problem, we develop a foundational model of Web interactions that reduces the panoply of browser-supported user interactions to three fundamental ones. We use the model to formally describe two classes of errors in Web programs. The descriptions suggest techniques for detecting both classes of errors. For one class we present an incrementally-checked record type system, which effectively eliminates these errors. For the other class, we introduce a dynamic safety check that employs program annotations to detect errors. 1
Web Server Performance Under Heavy Loads
, 1997
"... Web server performance is a critical issue for sites which service a high volume of requests. This paper examines the performance of Web servers under high CPU loads. Simulations are used in conjunction with workloads which were obtained by analyzing Web logs and performance data from several real s ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Web server performance is a critical issue for sites which service a high volume of requests. This paper examines the performance of Web servers under high CPU loads. Simulations are used in conjunction with workloads which were obtained by analyzing Web logs and performance data from several real sites. Performance is significantly affected by the percentage of requests for dynamic HTML pages; dynamic HTML pages adversely affect server performance. In order to optimize performance, the number of dynamic pages should be kept as low as possible. When dynamic pages are required, techniques such as fast API's for invoking server programs and caching can be employed to keep the overhead of server programs generating the dynamic pages as low as possible. When the server is operating at or near peak capacity, there is a trade-off between average latencies and the percentage of requests rejected; performance is improved by rejecting a higher percentage of requests. For the real request distri...

