ABSTRACT
This paper describes Omniware, a system for producing and executing mobile code. Next generation Web applications will use mobile code to specify dynamic behavior in Web pages, implement new Web protocols and data formats, and dynamically distribute computation between servers and browsers, Like all mobile code systems, Omniware provides portability and safety. The same compiled Omniware module can be executed transparently on different machines, and a module's access to host resources can be precisely controlled. In addition to portability and safety, Omniware has two unique features. First, Omniware is open. Omniware uses software fault isolation (SFI) to enforce safe execution of standard programming languages, enabling Web developers to leverage the vast store of existing software and programming expertise. For example, Omniware developers can use C++ to create programs for Web pages. Second, Omniware is fast. We evaluated Omniware under the Solaris 2.4 operating system on a SPARCstation 5 using eight C benchmark programs, including five programs from the C SPEC92 benchmark suite. We evaluated the performance of Omniware in two ways. First, we showed that Omniware modules can be represented compactly, reducing the space consumption compared to Sun-Pro cc shared object files by an average of 38%. Second, we showed that Omniware modules execute at near native speeds. Including the runtime overhead necessary to ensure that Omniware modules are both portable and safe, our benchmark programs ran within 6% of native performance.
- J. L. Stefen, "Adding Run-Time Checking to the Portable C Compiler," Software---Practice and Experience, April 1992, vol. 22, no.4, p. 305--16.Google Scholar
- R. Brooks, "Trading Data Space for Reduced Time and Code Space in Real-Time Garbage Collection on Stock Hardware," ACM Software Engineering Symposium on Practical Software Development Environments, 1984, p. 256--262.Google Scholar
- B. Zorn, "The Measured Cost of Conservative Garbage Collection," Software---Practice and Experience, vol. 23, no. 7, July 1993, p. 733--56.Google ScholarDigital Library
- T. Lord, "The Guile Architecture for Ubiquitous Computing," to appear in: Usenix Tcl/Tk Workshop, 1995.Google Scholar
- I. S. Graham. The HTML Sourcebook, Wiley: New York, 1995.Google ScholarDigital Library
- IEEE Standard 754--1985. IEEE Standard for Binary Floating-Point Arithmetic. IEEE: New York, 1985.Google Scholar
- J. P. Fitch and A. C. Norman, "Implementing LISP in a High-Level Language," Software---Practice and Experience, vol. 7, 1977, p. 713--725.Google ScholarCross Ref
- J. Gosling. "Java Intermediate Bytecodes," ACM SIGPLAN Workshop on Intermediate Representations (IR '95), San Francisco, CA, Jan. 1995.Google Scholar
- Pentium Processor User's Manual, Intel Corporation: Mt. Prospect, IL, 1994.Google Scholar
- L. Wall and R. L. Schwartz, Programming Perl, O'Reilly and Associates: Sebastopol, CA, 1992.Google Scholar
- http://minsky.med.virginia.edu/sdm7g/Projects/Python/SafePython.htmlGoogle Scholar
- N. S. Borenstein, "Email With a Mind of its Own: The Safe-Tcl Language for Enabled Mail," IFIP International Conference, Barcelona, Spain, June 1994.Google Scholar
- J. Rees and W. Clinger, eds., "The Revised Report on the Algorithmic Language Scheme," ACM Lisp Pointers, vol. 4, no. 3, 1991.Google Scholar
- R. Wahbe, S. Lucco, T. Anderson, and S. L. Graham. "Efficient Software-Based Fault Isolation," 14th ACM Symposium on Operating Systems Principles, Ashville, NC, Dec. 1993.Google Scholar
- SPEC92 Release Notes. Standard Performance Evaluation Corporation (SPEC): Fairfax, VA, 1992.Google Scholar
- J. Ousterhout, Tcl and the Tk Toolkit, Addison-Wesley: Reading, Mass., 1994.Google ScholarDigital Library
- "Telescript Technology: The Foundation for the Electronic Marketplace," General Magic: Sunnyvale, CA, 1993.Google Scholar
- T. Berners-Lee, R. Cailliau, A. Loutonen, H. F. Nielsen, and A. Secret. "The World-Wide Web," Communications of the ACM, vol. 37, no. 8, August 1994, p. 76--82.Google ScholarDigital Library
Index Terms
- Omniware: A Universal Substrate for Web Programming
Recommendations
Tierless Web Programming in the Large
WWW '18: Companion Proceedings of the The Web Conference 2018Tierless Web programming languages allow combining client-side and server-side programming in a single program. This allows defining expressions with both client and server parts, and at the same time provides good static guarantees regarding client-...
Comments