Conference Paper

NEST: NEtwork server tool

Dept. of Comput. Sci., Calgary Univ., Alta.
DOI: 10.1109/APCC.2005.1554236 Conference: Communications, 2005 Asia-Pacific Conference on
Source: IEEE Xplore


NEST (network server tool) can be used to automatically generate code infrastructure for TCP-based network servers. It uses a specification language to describe client-server interaction and state transitions within the server. This specification language has some similarities to the compiler tools Lex and Yacc, and its design makes network server specification straightforward. One of the main features of NEST is that it can generate three different types of server from the same basic specification: process-based, threaded, and event-driven. Our performance results show that we can produce server code for all three models which is competitive with established, highly-tuned servers

  • Source
    • "One of the drawbacks of this approach is that it does not give access to the underlying implementation lan- guage. NEST [18] is a specification language approach close to Lex and Yacc allowing to generate the server code automatically from a grammatical description of the protocol. One of the principal characteristics of this approach is the possibility of generating three types of servers (multi-process, multi-threads and event-driven). "
    [Show abstract] [Hide abstract]
    ABSTRACT: This paper presents a Java framework based on separation of concerns and code generation concepts that facilitates development of concurrency and I/O in servers. In this approach, the application is modeled by a graph whose vertices correspond to units of treatment connected by channels. It allows to build all kind of servers: multithreaded, single-process event-driven, staged event driven architecture, etc. without modification of the functional part. This architecture also permits to extend very easily an application, adding vertices and edges to the graph. The aim of our development tool is to improve programmer productivity and portability, decreasing development time, and reducing bugs or deadlock problems
    Full-text · Conference Paper · May 2006
  • [Show abstract] [Hide abstract]
    ABSTRACT: This paper presents how the Tatoo parser generator enables the implementation of Java high-performance servers using the Banzai generic server shell. The performance of these servers relies on the ability of Tatoo to produce push non-blocking parsers with a fixed memory footprint during parsing and on the generic and efficient server architecture of Banzai. This approach reconciles 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+Tatoo is as efficient as several existing specially tuned high-performance HTTP servers.
    No preview · Article · Aug 2012 · Science of Computer Programming