Modular server architecture for multi-environment HTTP request processing
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/44
G06F-009/45
G06F-003/00
출원번호
UP-0140192
(2005-05-27)
등록번호
US-7721278
(2010-06-10)
발명자
/ 주소
Alam, Bilal
Olson, Erik B.
Ruia, Anil K.
Volodarsky, Michael D.
Wang, David
Dunajsky, Jaroslav
출원인 / 주소
Microsoft Corporation
대리인 / 주소
Merchant & Gould, P.C.
인용정보
피인용 횟수 :
3인용 특허 :
3
초록▼
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
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.
대표청구항▼
We 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 applic
We 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. The method of claim 1 further comprising: determining at least one of the plurality of modules not needed for providing the requested resource; and disabling and removing the at least one of the plurality of modules determined to be not needed during request processing. 3. The method of claim 2, wherein disabling the at least one of the plurality of modules determined to be not needed for providing the request comprises disabling at least one feature of the at least one of the plurality of modules. 4. The method of claim 1, wherein enabling the at least one of the plurality of modules determined to provide the requested resource, comprises: loading the at least one of the plurality of modules determined to provide the requested resource; and executing the loaded modules in a predetermined order. 5. The method of claim 4, wherein enabling the at least one loaded module comprises enabling at least one feature of the at least one loaded module for providing the requested resource. 6. The method of claim 1, wherein exposing the plurality of managed modules comprises exposing a plurality of ASP.NET modules. 7. The method of claim 1, wherein receiving a request for a resource provided by the web server application program comprises receiving a request for at least one server application for providing the resource. 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. 9. The method of claim 8, wherein the managed module host and the remaining plurality of native modules are executed according to a preconfigured prioritized order. 10. The method of claim 8, wherein then sending a notification from the managed module host to execute the at least one of the plurality of managed modules comprises sending a notification to execute at least one ASP.NET module which provides a service for processing the request event. 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. 12. The method of claim 11, wherein the plurality of server functions comprise receiving one or more server events from a single server source and performing processing which extends the functionality of the web server. 13. The method of claim 11, wherein the managed module host is a native module compiled utilizing the set of managed application programming interfaces. 14. The method of claim 11, wherein the native dynamic link library includes defined entry points into the web server. 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. 16. The method of claim 15, wherein determining 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 comprises determining whether to load and execute at least one of a native module and a managed module for processing the server event based on the type of module needed for processing the event.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (3)
Vertes,Marc Philippe, Method and system for managing shared-library executables.
Ginter Karl L. ; Shear Victor H. ; Sibert W. Olin ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.