Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Developing flexible and high-performance Web servers with frameworks and patterns
ACM Computing Surveys (CSUR)
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Cooperative Task Management Without Manual Stack Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Network programming for the rest of Us
ATEC '03 Proceedings of the annual conference on USENIX Annual Technical Conference
Flash: an efficient and portable web server
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
A Java toolkit for the design and the automatic checking of server architectures
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Banzai: a Java framework for the implementation of high-performance servers
Proceedings of the 2009 ACM symposium on Applied Computing
Banzai+Tatoo: Using cutting-edge parsers for implementing high-performance servers
Science of Computer Programming
Hi-index | 0.00 |
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.