Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The case for persistent-connection HTTP
SIGCOMM '95 Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
Catching bugs in the web of program invariants
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Design considerations for the Apache server API
Proceedings of the fifth international World Wide Web conference on Computer networks and ISDN systems
Web server workload characterization: the search for invariants
Proceedings of the 1996 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
The Flux OSKit: a substrate for kernel and language research
Proceedings of the sixteenth ACM symposium on Operating systems principles
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
IO-lite: a unified I/O buffering and caching system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Resource containers: a new facility for resource management in server systems
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Programming languages as operating systems (or revenge of the son of the lisp machine)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
The influence of browsers on evaluators or, continuations to program web servers
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Design and Evaluation of an Extensible Web & Telephony Server based on the J-Kernel
Design and Evaluation of an Extensible Web & Telephony Server based on the J-Kernel
Linguistic reuse
Measuring the capacity of a web server
USITS'97 Proceedings of the USENIX Symposium on Internet Technologies and Systems on USENIX Symposium on Internet Technologies and Systems
Scalable content-aware request distribution in cluster-based networks servers
ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Web Programming with SMLserver
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
The CONTINUE Server (or, How I Administered PADL 2002 and 2003)
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
Automatically Restructuring Programs for the Web
Proceedings of the 16th IEEE international conference on Automated software engineering
DrScheme: a programming environment for Scheme
Journal of Functional Programming
Verifying Interactive Web Programs
Proceedings of the 19th IEEE international conference on Automated software engineering
The Essence of Form Abstraction
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Server enforced program safety for web application engineering
Journal of Web Engineering
The role of programming languages in future data-centric and net-centric applications
ICDCIT'06 Proceedings of the Third international conference on Distributed Computing and Internet Technology
Hi-index | 0.00 |
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 mechanisms for the dynamic generation of Web content that are difficult to support in a conventional server architecture.