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 modules for access by the web server application program;
wherein the modules are not built into the web server application and are selectively loaded, enabled and executed by the web server application during a runtime of the web server application program to perform a specific task and removed, and disabled and removed by the web server application during the runtime after performing the specific task;
wherein the modules include native modules and managed modules, wherein the native modules and the managed modules are not built in the web server application program and are configured for desired services in the web server application program, wherein the native modules are created using a native set of Application Programming Interfaces (APIs) and wherein the managed modules are created using a managed set of APIs provided by an application development platform for developing web applications;
wherein the native set of APIs are different from the managed set of APIs;
receiving a request for a resource in the web server application program;
wherein the resource is available within at least one of the plurality of removable modules;
determining from both the native modules and the managed modules at least one of the plurality of modules for providing the requested resource during request processing;
after determining the at least one of the plurality of modules for providing the requested resource loading and enabling the at least one of the plurality of modules determined to provide the requested resource;
wherein the at least one of the plurality of modules determined to provide the requested resource is enabled while the web server application program is running; 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.
16 Citations
16 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 modules for access by the web server application program;
wherein the modules are not built into the web server application and are selectively loaded, enabled and executed by the web server application during a runtime of the web server application program to perform a specific task and removed, and disabled and removed by the web server application during the runtime after performing the specific task;
wherein the modules include native modules and managed modules, wherein the native modules and the managed modules are not built in the web server application program and are configured for desired services in the web server application program, wherein the native modules are created using a native set of Application Programming Interfaces (APIs) and wherein the managed modules are created using a managed set of APIs provided by an application development platform for developing web applications;
wherein the native set of APIs are different from the managed set of APIs;receiving a request for a resource in the web server application program;
wherein the resource is available within at least one of the plurality of removable modules;determining from both the native modules and the managed modules at least one of the plurality of modules for providing the requested resource during request processing; after determining the at least one of the plurality of modules for providing the requested resource loading and enabling the at least one of the plurality of modules determined to provide the requested resource;
wherein the at least one of the plurality of modules determined to provide the requested resource is enabled while the web server application program is running; andexecuting the at least one of the plurality of enabled modules for processing the request. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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 pre-loaded 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;
wherein the managed modules are selectively loaded, enabled and executed by the web server application during a runtime of the web server application program to perform a specific task and removed, and disabled and removed by the web server application during the runtime after performing the specific task;
wherein the native modules are created using a native set of Application Programming Interfaces (APIs) and wherein the managed modules are created using a managed set of APIs provided by an application development platform for developing web applications;
wherein the native set of APIs are different from the managed set of APIs;
wherein the native modules and the managed modules are not built in the web server application program and are configured for desired services in the web server application program;upon receiving the request event in the server pipeline, first forwarding the request event to the 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; when 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 load and execute the at least one of the plurality of managed modules; and when 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;
wherein the module selected to process the request event is enabled while the web server is running. - View Dependent Claims (9, 10)
-
-
11. 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 (APIs) 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;
wherein the native APIs are different from the managed APIs;
wherein the managed module is developed using an application development platform for developing web applications;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 during execution 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 during execution 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;
wherein the managed module is selectively loaded, enabled and executed by the web server application during a runtime of the web server application program to perform a specific task and removed and disabled and removed by the web server application during the runtime after performing the specific task. - View Dependent Claims (12, 13, 14)
-
-
15. 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; wherein the native modules and the managed modules are not built into the web server and are selectively loaded, enabled and executed by the web server application during a runtime of the web server to perform a specific task and removed, and disabled and removed by the web server during the runtime after performing the specific task; wherein the native modules are created using a native set of Application Programming Interfaces (APIs) and wherein the managed modules are created using a managed set of APIs provided by an application development platform for developing web applications;
wherein the native set of APIs are different from the managed set of APIs;receiving an event comprising a request for a service in the web server while the web server is running; and determining while the web server is running whether to load and execute at least one of a native module and a managed module as part of the web server already running for processing the event based on the one or more preconditions. - View Dependent Claims (16)
-
Specification