Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Workshop on design patterns for concurrent, parallel, and distributed object-oriented systems
Addendum to the proceedings of the 10th annual conference on Object-oriented programming systems, languages, and applications (Addendum)
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Applying a pattern language to develop application-level gateways
Design patterns in communications software
A Design Framework for Highly Concurrent Systems
A Design Framework for Highly Concurrent Systems
An architecture for highly concurrent, well-conditioned internet services
An architecture for highly concurrent, well-conditioned internet services
The Reverse C10K Problem for Server-Side Mashups
Service-Oriented Computing --- ICSOC 2008 Workshops
Performance, overhead, and packetization characteristics of Java application level protocols
ACM SIGITE Research in IT
Hi-index | 0.01 |
A server infrastructure in web servers, message servers and other parallel systems use a variation of two software architectures for providing concurrency: threaded or event-driven. This paper analyzes the performance limitations of concurrent applications implemented in Java. Both architectures have been evaluated and compared with various design patterns, which combine the best practices from both architectures. For each architecture the suitability for handling a large volume of client requests, the efficient management of a server load, the influence of client request structures, and the physical size of a client request, have been studied. The discussed Java APIs are core technologies for high-level APIs, used in developing web and distributed applications. The research also includes performance comparison on various platforms and discusses performance variation on various versions of a Java runtime. The paper contributes to the understanding of Java-based server architecture capabilities. Core server software architectures and required Java libraries are compared, the reasons for the limitations are identified and guidelines for choosing proper combinations are given.