Server Patterns

ServerPatterns are design or architectural patterns for servers, i.e. systems that process requests from clients. Note that a server is not application code -- it is an execution context that provides resources needed to run application code. ApplicationPatterns are covered elsewhere.

For example, an EjbServer consists of a JavaVirtualMachine, an EjbContainer, and various underlying services (transactions, security, etc.). The ServerPatterns in this context use JavaTwoEnterpriseEdition terminology.

Generalising somewhat, a particular request enters the server via some type of communications transport protocol carrying an application-level protocol, such as the CommonObjectRequestBrokerArchitecture (CORBA) InternetInterOrbProtocol (IIOP). The request is analyzed (validated, security checked, etc.), allocated various resources (such as memory, CPU, etc), and demultiplexed and dispatched to an appropriate request handler that processes it. As it runs, it may lose control if it attempts to acquire additional resources and will be re-dispatched when those resources become available.

ServerPatterns are concerned with connection and memory management, event handling, synchronization, concurrency, security, dependability and fault isolation, and other infrastructure issues.


A wide variety of ServerPatterns can be found in PatternOrientedSoftwareArchitectureTwo.


CategoryPattern


EditText of this page (last edited April 21, 2001) or FindPage with title or text search