Modular server architecture for multi-environment HTTP request processing
First Claim
1. A method for utilizing a plurality of modular components for dynamically implementing services in a web server application program, comprising:
- exposing a plurality of removable modules for access by the web server application program;
receiving a request for a resource in the web server application program;
determining at least one of the plurality of modules for providing the requested resource during request processing;
enabling the at least one of the plurality of modules determined to provide the requested resource; and
executing the at least one of the plurality of enabled modules for processing the request.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods are provided for utilizing a modular server architecture for processing requests for services, such as authorization and authentication, in a web server. The modular server architecture includes self-contained modular components that can be plugged in and out of the web server, as needed, to provide requested web services. The modular server architecture is also extensible in that it provides set of server APIs for processing requests for supporting built-in server functionality as well as functionality provided by third party modular components. The modular server architecture also supports the integration of request processing tasks for both native and managed modular components, such as ASP.NET modules, by virtue of a managed module host component. The modular server architecture also optimizes server performance by only providing modular component functionality when needed. By utilizing the modular server architecture, server functionality is extended, duplication of request processing tasks is eliminated and performance administrative overhead is reduced.
-
Citations
19 Claims
-
1. A method for utilizing a plurality of modular components for dynamically implementing services in a web server application program, comprising:
-
exposing a plurality of removable modules for access by the web server application program;
receiving a request for a resource in the web server application program;
determining at least one of the plurality of modules for providing the requested resource during request processing;
enabling the at least one of the plurality of modules determined to provide the requested resource; and
executing the at least one of the plurality of enabled modules for processing the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 10)
-
-
11. A method for integrating a plurality of native and managed modules to provide services for processing request events in a web server, comprising:
-
receiving a request event in a server pipeline, wherein the server pipeline is in communication with a plurality of native modules in the web server, the plurality of native modules including a managed module host, wherein the managed module host hosts a plurality of managed modules;
upon receiving the request event in the server pipeline, forwarding the request event to the [eo2]plurality of native modules including the managed module host;
executing the managed module host to determine if at least one of the plurality of managed modules hosted by the managed module host provides a service for processing the request event;
determining if any of the remaining plurality of native modules provides a service for processing the request event;
if at least one of the plurality of managed modules provides a service for processing the request event, then sending a notification from the managed module host to execute the at least one of the plurality of managed modules; and
if at least one of the remaining plurality of native modules provides a service for processing the request event, then sending a notification directly to the at least one of the remaining plurality of native modules to execute the at least one of the remaining plurality of native modules. - View Dependent Claims (12, 13)
-
-
14. A method for extending the functionality of a web server for processing a plurality of server functions, comprising:
-
providing a rich set of native application programming interfaces for creating a native module for controlling the operation of the web server by utilizing a plurality of server functions;
providing a rich set of managed application programming interfaces for creating a managed module for controlling the operation of the web server by utilizing a plurality of server functions;
providing a managed module host for providing runtime translation of the server functions provided by the native set of application programming interfaces, to the server functions provided by the set of managed application programming interfaces. compiling a native module dynamic link library, utilizing the set of native application program interfaces, to create the native module;
registering the native module dynamic link library with a configuration for the web server to enable the native module to be loaded and executed on the web server in response to a web server event;
compiling an executable managed binary, utilizing the set of managed application programming interfaces, to create the managed module; and
registering the managed module with the configuration for the web server to enable the managed module to be loaded and executed on the web server in response to a web server event, wherein registering the managed module comprises indicating that the managed module is to be hosted within the managed module host. - View Dependent Claims (15, 16, 17)
-
-
18. A method for configuring the execution of a plurality of modules for processing events in a web server, comprising:
-
configuring one or more preconditions for determining the loading and execution of native modules and managed modules in the web server, wherein the native and managed modules are selectively associated with the one or more preconditions;
receiving an event comprising a request for a service in the web server; and
determining at runtime whether to load and execute at least one of a native module and a managed module for processing the event based on the one or more preconditions. - View Dependent Claims (19)
-
Specification