skip to main content
10.1145/1529282.1529707acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Banzai: a Java framework for the implementation of high-performance servers

Published: 08 March 2009 Publication History

Abstract

This paper presents Banzai a Java framework that uses the Tatoo parser generator to simplify the implementation of high-performance servers based on plain-text protocols. This approach conciliates the use of formally defined grammars for protocol parsing and the efficiency of the implementation. We argue that the use of the formal grammars simplifies the implementation of the protocol and we show that an HTTP server built using the Banzai framework is as efficient as several existing ad-hoc high-performance HTTP servers. The Banzai framework relies on the ability of Tatoo to produce push non-blocking parsers with a fixed memory footprint during parsing and on a generic and efficient server architecture.

References

[1]
Apache HTTP server benchmarking tool. http://httpd.apache.org/docs/2.0/programs/ab.html.
[2]
Apache Software Foundation. The Apache HTTP Server Project. http://httpd.apache.org/.
[3]
G. Back. Datascript: A Specification and Scripting Language for Binary Data. In Proc. of the 1st Conference on Generative Programming and Component Engineering, pages 66--77, London, UK, 2002. Springer-Verlag.
[4]
BEA. Tuxedo. http://www.bea.com. White papers.
[5]
N. Borisov, D. Brumley, H. J. Wang, J. Dunagan, P. Joshi, and C. Guo. A Generic Application-Level Protocol Analyzer and its Language. In Proc. of the 14th Annual Network and Distributed System Security Symposium, 2007.
[6]
L. Burgy, L. Reveillere, J. L. Lawall, and G. Muller. A Language-Based Approach for Improving the Robustness of Network Application Protocol Implementations. In Proc. of the 26th International Symposium on Reliable Distributed Systems, pages 149--160, Washington, USA, 2007.
[7]
J. Cervelle, R. Forax, and G. Roussel. Tatoo: An innovative Parser Generator. In Proc. of the 4th Conference on Principles and Practice of Programming in Java, pages 13--20, Mannheim, Germany, 2006.
[8]
J. Cervelle, R. Forax, and G. Roussel. A simple implementation of grammar libraries. Computer Science and Information Systems, 4(2):65--77, 2007.
[9]
M. A. L. Douglas. MSPL: A Protocol Language For Generating Client-Server Software. PhD thesis, Florida Institute of Technology, May 2000.
[10]
R. T. Fielding. Architectural styles and the design of network-based software architectures. PhD thesis, University of California, Irvine, 2000.
[11]
K. Fisher and R. Gruber. PADS: A Domain-Specific Language for Processing Ad Hoc Data. SIGPLAN Notices, 40(6):295--304, 2005.
[12]
M. Gudgin, M. Hadley, N. Mendelsohn, J.-J. Moreau, H. F. Nielsen, A. Karmarkar, and Y. Lafon. Soap version 1.2. http://www.w3.org/TR/soap12/.
[13]
Hewlett Packard. Httperf. http://www.hpl.hp.com/research/linux/httperf/.
[14]
J. Hu and D. C. Schmidt. Domain-Specific Application Frameworks: Frameworks Experience by Industry, chapter JAWS: A Framework for High-Performance Web Servers, pages 339--376. John Wiley and Sons Ltd, 1999.
[15]
J. C. Hu and D. C. Schmidt. Developing Flexible and High-Performance Web Servers with Frameworks and Patterns. ACM Computing Surveys, 32(1):39--45, Mar. 2000.
[16]
S. Jahn. Serveez. http://www.gnu.org/software/serveez/manual/index.html.
[17]
S. C. Johnson. Yacc: Yet Another Compiler Compiler. In UNIX Programmer's Manual, volume 2, pages 353--387. Holt, Rinehart, and Winston, New York, NY, USA, 1979.
[18]
G. Lefkowitz and I. Shtull-Trauring. Network Programming for the Rest of Us. In Proc. of the USENIX Annual Technical Conference, pages 77--89, San Antonio, USA, June 2003.
[19]
D. T. Lowell. APG: An ABNF Parser Generator, June 2006. http://www.coasttocoastresearch.com/.
[20]
G. Loyauté, R. Forax, and G. Roussel. Saburo: A Tool for I/O and Concurrency Management in Servers. In Proc of the 20th International Parallel and Distributed Processing Symposium, Rhodes Island, Greece, 2006.
[21]
P. J. McCann and S. Chandra. Packet Types: Abstract Specification of Network Protocol Messages. SIGCOMM Computer Communication Review, 30(4):321--333, 2000.
[22]
Mort Bay Consulting, Jetty. Jetty. http://www.mortbay.org/.
[23]
R. Pang, V. Paxson, R. Sommer, and L. Peterson. Binpac: A Yacc for Writing Application Protocol Parsers. In Proc. of the 6th Conference on Internet Measurement, pages 289--300, New York, USA, 2006.
[24]
T. J. Parr and R. W. Quong. ANTLR: A Predicated-LL(k) Parser Generator. Software Practice and Experience, 25(7):789--810, 1995.
[25]
Sun Microsystems. GlassFish / Grizzly Project. https://grizzly.dev.java.net/.
[26]
Sun Microsystems. New I/O APIs. http://java.sun.com/j2se/1.4.2/docs/guide/nio/.
[27]
Apache Tomcat 6.0. http://tomcat.apache.org/tomcat-6.0-doc/index.html.
[28]
M. Welsh, D. E. Culler, and E. A. Brewer. SEDA: An Architecture for Well-Conditioned, Scalable Internet Services. In Proc. of the 8th Symposium on Operating Systems Principles, pages 230--243, Chateau Lake Louise, Canada, 2001.
[29]
K. Wilson and J. Aycok. NEST: NEtwork Server Tool. Technical Report TR-2004-746-11, The University of Calgary, Apr. 2004.
[30]
D. Winer. XML-RPC. http://www.xmlrpc.com/spec.

Index Terms

  1. Banzai: a Java framework for the implementation of high-performance servers

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SAC '09: Proceedings of the 2009 ACM symposium on Applied Computing
    March 2009
    2347 pages
    ISBN:9781605581668
    DOI:10.1145/1529282
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 08 March 2009

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. non-blocking I/O
    2. parsing
    3. protocol
    4. protocol parsing and server architecture
    5. server

    Qualifiers

    • Research-article

    Conference

    SAC09
    Sponsor:
    SAC09: The 2009 ACM Symposium on Applied Computing
    March 8, 2009 - March 12, 2008
    Hawaii, Honolulu

    Acceptance Rates

    Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

    Upcoming Conference

    SAC '25
    The 40th ACM/SIGAPP Symposium on Applied Computing
    March 31 - April 4, 2025
    Catania , Italy

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 200
      Total Downloads
    • Downloads (Last 12 months)1
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 13 Feb 2025

    Other Metrics

    Citations

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media