| Reactor, Acceptor-Connector, Leader/Followers, Monitor Object, Caching, Evictor, Singleton, Scoped Locking, Strategized Locking, Double-Checked Locking, Wrapper Facade Constructing a WebServers with Patterns 一、Case Study - A High-Performance Web Server 1. Event Demutiplexing Reactor 2. Connection Establishment Acceptor-Connector 3. Concurrency Leader/Followers
4. Concurrency Coordination Monitor
5. Efficient Content Access Cache One Cache Only Cache Management Evictor Flexible Cache Management -> strategies
6. Reliable Synchronization Scoped Locking
7. Efficient Synchronization Strategized Locking -> template Double-Checked Locking
8. Accessing OS APIs Wrapper Facade
Patterns helped us realizing a highly efficient yet flexible web server: 1) Reactor defines the fundamental event handling architecture of the web server. 2) Acceptor-Connector improves availability by separating connection establishment from HTTP processing 3) Leader/Followers and Monitor Object provide a high-performance concurrency architecture. 4) Caching and an Evictor with associated eviction Strategies speed up accessing frequently used URLs. 5) Singleton ensures the uniqueness of the server's virtual file system. 6) Scoped Locking, Strategized Locking, and Double-Checked Locking ensure that the virtual file system is thread-safe without incurring locking overhead. 7) Wrapper Facade ensures portability. 二、Further Refinements 1. Abstractions 2. Layers 3. Out-of-the-Band Functionality 4. Interceptor 5. Runtime Configuration Component Cnofigurator |