Abstract: Under the present invention, a request for a Uniform Resource Locator (URL) is received from a client on a server. Upon receipt, a corresponding session object is obtained, and a response identifier is generated. Based on the response identifier, it is determined whether the URL was previously requested by the client. If not, generation of a final response begins. As the response is being generated, a response refresh header is generated and returned to the client with a temporary response. The response refresh header contains a time value for causing the client to automatically send a subsequent request for the URL. After generation of the final response is complete, it is stored in a cache according to the response identifier. Then, when the subsequent request is received from the client, the final response is retrieved from the cache and served to the client.
WO 2005/013579 PCT/EP20O4/0S1509
2
cannot generally initiate a connection with a client Rather, the client must initiate a connection with the server. Accordingly, if the connection between the client and server is terminated while a request is being processed, only the client can initiate a new connection to receive the response. Currently, no existing technology allows for the connection between the client and server to be terminated as the request is being processed, while not requiring deliberate/manual modification of the client to reestablish the connection at a later time. Disclosure of Invention
Advantageously, the present invention allows a connection between a client and a server to be terminated while a request from the client is being processed and allows the client to automatically establish a new connection with the server at a later time without requiring modification or deliberate action on the part of me client
In general, the present invention provides a method, system and program product for asynchronously .processing requests. Specifically, under the present invention, a request for a Uniform Resource Locator (URL) is received from a client on a server. Upon receipt, a corresponding session object is obtained, and a response identifier is generated. Based on the response identifier, it is determined whether the URL was previously requested by the client If not, generation of a final response begins. As the response is being generated, a response refresh header is generated and returned to the client with a temporary response. The response refresh header contains a time value for causing the client to automatically send a subsequent request for the URL. After generation of the final response is complete, it is stored in a cache according to the response identifier. Then, when the subsequent request is received from the client after expiration of the time value in the response refresh header, the final response is retrieved from the cache based on the response identifier, and served to the client
A first aspect of the present invention provides a method for asynchronously processing requests, comprising: receiving a request for a Uniform Resource Locator (URL) from a client, and obtaining a session object corresponding to the request; generating a response identifier based on a session identifier and the URL; determining if the URL was previously requested by the client based on the response identifier, and generating a response refresh header that includes a time value for causing the client to automatically send a subsequent request for the URL.
A second aspect of the present invention provides a method for asynchronously processing requests, comprising: receiving a request for a Uniform Resource Locator (URL) from a client, and obtaining a session object corresponding to the request; generating a response identifier based on a session identifier and the URL; determining if the URL was previously requested by the client based on the response identifier,
WO 2005/013579 PCT/EP2004/051509
1
Description
METHOD, SYSTEM AND PROGRAM PRODUCT FOR ASYN-CHRONOUSLY PROCESSING REQUESTS
Technical Field
[001 ] The present invention generally relates to a method, system and program product for asynchronously processing requests. Specifically, the present invention allows network-based requests (e.g., web requests) to be processed by an application server without maintaining a constant connection with a client. Background Art
[002] As use of the Internet becomes more popular, web users arc increasingly relying on the world wide web as a source of information. In a typical implementation, a user will operate a web browser on a client, and submit a "request" for a particular web page to a server. One or more "scrvlets" (or the like) on the server will process the request and return the appropriate web page to the browser. To this extent, one specific technology that is gaining widespread use is the concept of web portal pages. In general, web portal pages provide a mechanism for a user to receive targeted and personalized content. Typically, a portal page includes sections or visual portlets that each contain particular portal content that is selected and formatted according to a user"s preferences. For example, a user could establish his/her own portal page that has sections for news, weather and sports. When the portal page is requested, a portal program on the server would obtain the desired content from the appropriate content providers. Once obtained, the portal content would be aggregated, and then displayed in the appropriate sections as a web portal page. This technology has lead to the explosion of personalized "home*1 pages for individual web users.
[003] Unfortunately, in each of these instances, the handling of a request and response is
done synchronously. That is, a request is sent to the server, and the connection between the client and server is maintained until the response is returned. Maintaining a connection in this manner could not only limit or prevent the client"s capability to perform other tasks, but it also could limit or prevent the capability of the server to connect with other clients. This is especially the case where the response must be processed by servlets/portlets. For example, in the case of a portal page, creating a response to the request could require interfacing with numerous content sources. As such, creation of the response could take several seconds. If the connection between the client and server is maintained for this entire time, the above-indicated problems could arise.
[004] As known in the art, under the Hypertext Transfer Protocol (HTTP), a server
WO2005/013579 PCT/EP2004/051509
4
identifier is generated. Based on the response identifier, it is determined whether the URL was previously requested by the client If not, generation of a final response begins. As the response is being generated, a response refresh header is generated and returned to the client with a temporary response. The response refresh header contains a time value for causing the client to automatically send a subsequent tequest for the URL. After generation of the final response is complete, it is stored in a cache according to the response identifier. Then, when the subsequent request is received from the client after expiration of the time value in the response refresh header, the final response is retrieved from the cache based on the response identifier, and served to the client The teachings herein can thus be implemented in conjunction with all browsers/systems supporting Hypertext Transfer Protocol (HTTP).
It should be understood in advance that as used herein, the term "request" is intended to refer to a network-based request issued from a client to a server such as a. web request. Typically, the request is for a particular Uniform Resource Locator (URL). To this extent, as will be further explained below, the request can be processed on the server by one or more servlets, portlets or the like.
Referring now to Fig. 1, a system 10 for asynchronously processing a request is shown. Under the present invention, client 12 and server 14 can represent any type of computerized systems. For example, client 12 and/or server 14 could be a personal computer, workstation, laptop, hand-held device, etc. In general, client 12 communicates with server 14 over a network. Moreover, as will be further described below communication between client 12 and server 14 can occur over any type of public network such as the Internet, or any type of private network such as a local area network (LAN), wide area network (WAN), a virtual private network (VPN), etc. In one embodiment, server 14 is an application server such as a portal server that delivers portal pages to client 12. In any event, a user 16 will operate a web browser 18 on client 12 to request a web page from a server 14. The server 14 will generate the web page (e.g., a final response to the request) by obtaining content from the various content sources 20. Once generated, the web page is sent back to the requesting client 12.
As shown, server 14 generally comprises central processing unit (CPU) 22, memory 24, bus 26, input/output (I/O) interfaces 28, external devices/resources 30 and storage unit 32. CPU 22 may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client and computer system. Memory 24 may comprise any known type of data storage and/or transmission media, including magnetic media, optical media, random access memory (RAM), readonly memory (ROM), a data cache 40, a data object etc. Moreover, similar to CPU 22, memory 24 may reside at a single physical location, comprising one or more types of
WO 2005/013579 PCT/EP2004/051509
6
such, the subsystems thereof could be implemented as mote or fewer subsystems. For example, input system SO and output system 68 can be combined into a single "communication system." In any event, under the present invention, when a request is sent from client 12, it is received by input system SO. Upon receipt, object system 52 will obtain a session object corresponding to the session between client 12 and server 14. The session object typically sets forth, among other things, a session identifier corresponding to the session. If the session is a new session, object system 52 will create the session object and store the same in storage unit 32. Conversely, if the session was previously created, object system 52 can retrieve the session object from storage unit 32. Regardless, once the session object is obtained, response identifier system 54 will generate a response identifier. Typically, the response identifier includes the session identifier from the session object, and a hash of the Uniform Resource Locator (URL) that was requested. This allows it to reference both the particular session and the URL requested.
Once the response identifier is generated, request checking system 56 will determine whether the URL was previously requested by client 12. Specifically, request checking system 56 will access a "request" table in the session object. If the response identifier is listed therein, it means that the URL was previously requested by client 12. In this case, cache checking system 58 .will check cache 40 to determine if a final response to the request is complete. In general, final responses to requests are cached by response caching system 66 according to the response identifier. Accordingly, cache checking system can check cache 40 for a matching response identifier. If the final response is complete, it is returned to client 12 via output system 68.
However, if request checking system 56 determines the response identifier is not listed in the request table of the session object (Le., the URL was not previously requested by client 12), it will communicate the request with an instruction to response caching system 66. The instruction indicates that the final response to the request is to be stored in cache 40 according to the response identifier. On or around the same time, response creation system 64 will commence generation of a final response. In a typical embodiment, response creation system 64 will call one or more servlets/portlets 38 (Fig. 1) that will obtain the corresponding content from content sources 20. To this extent, servlets/portlets 38 could include standard or remote portlets (e.g., Web Services for Remote Portals), while content sources 20 could include independent organizations, data structures, storage units, etc. In any event, as the final response is being generated, header generation system 60 will generate a response refresh header that includes a time value for causing client 12 to automatically send a subsequent request for the same URL. The time value can be established by programmer 44 (Fig.
WO 2005/013579 PCT/EP2004/051S09
6
such, the subsystems thereof could be implemented as mote or fewer subsystems. For example, input system SO and output system 68 can be combined into a single "communication system." In any event, under the present invention, when a request is sent from client 12, it is received by input system SO. Upon receipt, object system 52 will obtain a session object corresponding to the session between client 12 and server 14. The session object typically sets forth, among other things, a session identifier corresponding to the session. If the session is a new session, object system 52 will create the session object and store the same in storage unit 32. Conversely, if the session was previously created, object system 52 can retrieve the session object from storage unit 32. Regardless, once the session object is obtained, response identifier system 54 will generate a response identifier. Typically, the response identifier includes the session identifier from the session object, and a hash of the Uniform Resource Locator (URL) that was requested. This allows it to reference both the particular session and the URL requested.
Once the response identifier is generated, request checking system 56 will determine whether the URL was previously requested by client 12. Specifically, request checking system 56 will access a "request" table in the session object. If the response identifier is listed therein, it means that the URL was previously requested by client 12. In this case, cache checking system 58 will check cache 40 to determine if a final response to the request is complete. In general, final responses to requests are cached by response caching system 66 according to the response identifier. Accordingly, cache checking system can check cache 40 for a matching response identifier. If the final response is complete, it is returned to client 12 via output system 68.
However, if request checking system 56 determines the response identifier is not listed in the request table of the session object (Le., the URL was not previously requested by client 12), it will communicate the request with an instruction to response caching system 66. The instruction indicates that the final response to the request is to be stored in cache 40 according to the response identifier. On or around the same time, response creation system 64 will commence generation of a final response. In a typical embodiment, response creation system 64 will call one or more servlets/portlets 38 (Fig. 1) that will obtain the corresponding content from content sources 20. To this extent, servlets/portlets 38 could include standard or remote portlets (e.g., Web Services for Remote Portals), while content sources 20 could include independent organizations, data structures, storage units, etc. In any event, as the final response is being generated, header generation system 60 will generate a response refresh header that includes a time value for causing client 12 to automatically send a subsequent request for the same URL. The time value can be established by programmer 44 (Kg.
WO 2005/013579 PCT/EP2004/051509
7
1) and is approximately the amount of time that it will take to create the final response. For example, if a final response to this request generally takes ten seconds to generate and return, the time value in the response refresh header can be eleven seconds. This allows the connection between client 12 and server 14 to be terminated while the final response is being generated.
The response refresh header is returned to the client by output system 68 along with a temporary response that is generated by temporary response system 62. Similar to the time values, the temporary response is definable by programmer 44. For example, the temporary response could be a page that states "Request is Being Processed." Once the final response is complete, response caching system 66 will store it in cache 40 according to the response identifier so that it can be easily cross-referenced.
Client 12 will receive the temporary response and response refresh header in browser 18. After expiration of the time value in the response refresh header, browser 18 will automatically send a subsequent request for the URL to server 14. Specifically, under HTTP, browser 18 can be configured to handle and process headers such as the response refresh header of the present invention to automatically generate and send a request without any deliberate or manual action on the part of user 16. Accordingly, the response refresh header allows the request process to be asynchronous, without any modification of client 12 or browser 18.
The subsequent response is received by input system SO. Similar to the previous request, object system 52 will obtain the corresponding session object Since this is a subsequent response, the session object should already exist Accordingly, object system 52 can retrieve the same from storage unit 32. After obtaining the session object, the response identifier is regenerated by response identifier system 54. As indicated above, the response identifier includes the session identifier and a hash of the requested URL. Using the response identifier, request checking system 56 will determine whether the URL was previously requested. Specifically, request checking system 56 will check the request table in the session object Since the URL was requested previously by client 12, the response identifier should be listed in the request table. Accordingly, cache checking system 58 will check cache 40 to determine if the final response is complete. Specifically, cache checking system 58 will check for the final response using the response identifier. If the final response is complete, it is retrieved from cache 40 by cache checking system 58 and sent to client 12 via output system 68 for display in browser 18. However, if the final response is not yet complete, header generation system 60 will generate a new response refresh header with a time value. The time value can be the same as in me previous response refresh header, or it could be a new different time. In any event, the new response refresh header is sent to
WO 2005/013579 PCT/EP2004/051509
8
client 12 via output system 68 with a new temporary response. After expiration of the time value in the new response refresh header, client 12 will submit another request for the URL, which will be processed hi a similar manner.
Referring now to Fig. 3, a flow diagram 100 of the present invention is shown. As depicted, a request for a URL is received hi step S1. In step S2, a session object is obtained, and hi step S3 a response identifier is generated. In step S4, it is determined whether the URL was previously request by the client based on the response identifier. If the URL was not previously requested, generation of a final response is commenced hi step S5. In step S6, an instruction is passed with the request to the response caching system to store the final response, when complete, in the cache according to the response identifier. As the final response is being generated, a response refresh header is generated hi step S7. The response refresh header is returned to the client along with a temporary response in step S8.
After, expiration of the time value in the response refresh header, the client will send a subsequent request for the URL hi step S9. Upon receipt hi step SI, steps S2-S4 will be repeated. Specifically, the session object will be obtained, the response identifier will be generated, and it will be determined whether the URL was previously requested by the client Since the URL was previously requested by the client, the cache will be checked hi step S10 to determine whether the final response to the request is complete. If so, the final response is retrieved from the cache and returned to the client hi step S11. If the final response is not yet complete, a new response refresh header will be generated hi step S7 and returned to the client with a new temporary response hi step S8. The process can continue to repeat until the final response is returned to the client.
It should be understood that the present invention can be realized in hardware, software, or a combination of hardware and software. Any kind of computer/computer system(s) - or other apparatus adapted for carrying out the methods described herein -is suited. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when loaded and executed, carries out the respective methods described herein. Alternatively, a specific use computer, containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized. The present invention can also be embedded hi a computer program product, which comprises all the respective features enabling the implementation of the methods described herein, and which - when loaded hi a computer system - is able to carry out these methods. Computer program, software program, program, or software, hi the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or
WO 2005/013579 PCT/EP2004/051509
9
after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
The foregoing description of the preferred embodiments of mis invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of this invention as defined by the accompanying claims.
WO 2005/013579 PCT/EP2O04/051509
3
checking a cache for a final response to the request based on the response identifier, if the URL was previously requested by the client; and generating a response refresh header that includes a time value for causing the client to automatically send a subsequent request for the URL if the final response is not complete. A third aspect of the present invention provides a system for asynchronously processing requests, comprising: an object system for obtaining a session object for a request for a Uniform Resource Locator (URL) received from a client; a response identifier system for generating a response identifier based on a session identifier and the URL; a request checking system for determining whether the URL was previously requested by the client; and a header generation system for generating a response refresh header that includes a time value for causing the client to automatically send a subsequent request for the URL.
A fourth aspect of the present invention provides a program product stored on a recordable medium for asynchronomry processing requests, which when executed, comprises: program code for obtaining a session object for a request for a Uniform Resource Locator (URL) received from a client; program code for generating a response identifier based on a session identifier and the URL; program code for determining whether the URL was previously requested by the client; and program code for generating a response refresh header that includes a time value for causing the client to automatically send a subsequent request for the URL. Brief Description of the Drawings
The present invention will now be described, by way of example only, with reference to preferred embodiments thereof, as illustrated in the following drawings, in which:
Fig. 1 depicts a system for asynchronously processing requests, according to the present invention.
Fig. 2 depicts the request processing system of Fig. 1 in greater detail.
Pig. 3 depicts a method flow diagram, according to the present invention.
The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements. Best Mode for Carrying Out the Invention
As indicated above, the present invention provides a method, system and program product for asynchronously processing requests. Specifically, under the present invention, a request for a Uniform Resource Locator (URL) is received from a client on a server. Upon receipt, a corresponding session object is obtained, and a response
WO 2005/013579 PCT/EP2004/051509
1
Claims
A method for asynchronously processing requests, comprising the steps of:
obtaining a session object for a Uniform Resource Locator (URL) received from
a client; generating a response identifier based on a session identifier and the
URL; determining if the URL was previously requested by the client based on
the response identifier, and generating a response refresh header that includes a
time value for causing the client to automatically send a subsequent request for
the URL.
The method of claim 1, further comprising the step of: sending a temporary
response to the request and the response refresh header to the client
The method of claim 1 or claim 2, further comprising the step of: sending the
request to a response caching system with an instruction to cache a final response
to the request according to the response identifier.
The method of any preceding claim, wherein the request is a web request
The method of any preceding claim, wherein the response identifier comprises
the session identifier and a hash of the URL.
The method of any preceding claim, further comprising the steps of: determining
if a final response to the request is complete, prior to the generating step; and
sending the final response to the client if the final response is complete, wherein
the refresh header is not generated and sent to the client with the temporary
response if the final response is complete.
The method of any preceding claim, further comprising the steps of:
commencing generation of a final response to the request; and storing the final
response in a cache according to the response identifier when the filial response
is complete.
The method of claim 7, further comprising the steps of: receiving a subsequent
request for the URL from the client after expiration of the time value in the
response refresh header; obtaining the session object; generating the response
identifier; determining whether the URL was previously requested based on the
response identifier, checking the cache for the final response to request based on
the response identifier; and sending the final response to the client if the final
response complete, wherein a new refresh header is generated and sent to the
client with a new temporary response if me final response is not complete.
The method of any preceding claim, wherein the determining step comprises
checking a table in the session object for the response identifier to determine if
the URL was previously requested by the client.
The method of any preceding claim, further comprising the step of: receiving a
WO 2005/013579 PCT/EP2004/051509
2
request for a Uniform Resource Locator (URL) from a client The method of any of claims 2 to 10, further comprising the step of: checking a cache for the final response to the request based on the response identifier, if the URL was previously requested by the client
A system for asynchronously processing requests, comprising: an object system for obtaining a session object for a request for a Uniform Resource Locator (URL) received from a client; a response identifier system for generating a response identifier based on a session identifier and the URL; a request checking system for determining whether the URL was previously requested by the client; and a header generation system for generating a response refresh header that includes a time value for causing the client to automatically send a subsequent request for the URL.
The system of claim 12, further comprising a response caching system for storing . a final response to the request in a cache according to the response identifier. The system of claim 12 or claim 13, further comprising a cache checking system for checking a cache for a final response to the request based on the response identifier, wherein the final response is sent to the client if complete. The system of any of claims 13 to 14, further comprising an output system for sending the response refresh header and a temporary response to the request to the client
The system of any of claims 13 to 15, wherein the response identifier comprises the session identifier and a hash of the URL.
The system of any of claims 13 to 16, wherein the request checking system checks a table of the session object to determine whether the URL was previously requested by the client
The system of any of claims 13 to 17, further comprising an input system for receiving the request.
The system of any of claims 13 to 18, further comprising an input system for receiving a subsequent request for the URL from the client after expiration of the time value in the response refresh header.
The system of claim 19 further comprising: means for obtaining the session object; means for generating the response identifier; means for determining whether the URL was previously requested based on the response identifier; means for checking the cache for the final response to request based on the response identifier; and means for sending the final response to the client if the final response complete, wherein a new refresh header is generated and sent to the client with a new temporary response if the final response is not complete. A computer program comprising program code means adapted to perform all the
WO 2005/013579 PCT7EP2004/051509
3 steps of any one of claims 1 to 11 when said program is run on a computer.
| # | Name | Date |
|---|---|---|
| 1 | 02293-kolnp-2006 form-13.pdf | 2017-02-15 |
| 1 | abstract-02293-kolnp-2006.jpg | 2011-10-07 |
| 2 | 2293-KOLNP-2006-(30-07-2012)-CORRESPONDENCE.pdf | 2012-07-30 |
| 2 | 2293-KOLNP-2006-GPA.pdf | 2011-10-07 |
| 3 | 2293-KOLNP-2006-FORM 13.pdf | 2011-10-07 |
| 3 | 2293-KOLNP-2006-(30-07-2012)-PA.pdf | 2012-07-30 |
| 4 | 2293-KOLNP-2006-CORRESPONDENCE.pdf | 2011-10-07 |
| 4 | 2293-KOLNP-2006-(20-03-2012)-CORRESPONDENCE.pdf | 2012-03-20 |
| 5 | 2293-KOLNP-2006-(20-03-2012)-DRAWINGS.pdf | 2012-03-20 |
| 5 | 02293-kolnp-2006-form-18.pdf | 2011-10-07 |
| 6 | 2293-KOLNP-2006-(20-03-2012)-FORM-1.pdf | 2012-03-20 |
| 6 | 02293-kolnp-2006-correspondence-1.1.pdf | 2011-10-07 |
| 7 | 2293-KOLNP-2006-(20-03-2012)-FORM-13.pdf | 2012-03-20 |
| 7 | 02293-kolnp-2006 priority document.pdf | 2011-10-07 |
| 8 | 2293-KOLNP-2006-(20-03-2012)-FORM-2.pdf | 2012-03-20 |
| 8 | 02293-kolnp-2006 pct request.pdf | 2011-10-07 |
| 9 | 02293-kolnp-2006 pct others.pdf | 2011-10-07 |
| 9 | 2293-KOLNP-2006-(20-03-2012)-FORM-6.pdf | 2012-03-20 |
| 10 | 02293-kolnp-2006 international search authority report.pdf | 2011-10-07 |
| 10 | 2293-KOLNP-2006-(20-03-2012)-PA.pdf | 2012-03-20 |
| 11 | 02293-kolnp-2006 abstract.pdf | 2011-10-07 |
| 11 | 02293-kolnp-2006 international publication .pdf | 2011-10-07 |
| 12 | 02293-kolnp-2006 claims.pdf | 2011-10-07 |
| 12 | 02293-kolnp-2006 form-5.pdf | 2011-10-07 |
| 13 | 02293-kolnp-2006 correspondence others.pdf | 2011-10-07 |
| 13 | 02293-kolnp-2006 form-3.pdf | 2011-10-07 |
| 14 | 02293-kolnp-2006 description(complete).pdf | 2011-10-07 |
| 14 | 02293-kolnp-2006 form-1.pdf | 2011-10-07 |
| 15 | 02293-kolnp-2006 drawings.pdf | 2011-10-07 |
| 16 | 02293-kolnp-2006 description(complete).pdf | 2011-10-07 |
| 16 | 02293-kolnp-2006 form-1.pdf | 2011-10-07 |
| 17 | 02293-kolnp-2006 form-3.pdf | 2011-10-07 |
| 17 | 02293-kolnp-2006 correspondence others.pdf | 2011-10-07 |
| 18 | 02293-kolnp-2006 form-5.pdf | 2011-10-07 |
| 18 | 02293-kolnp-2006 claims.pdf | 2011-10-07 |
| 19 | 02293-kolnp-2006 abstract.pdf | 2011-10-07 |
| 19 | 02293-kolnp-2006 international publication .pdf | 2011-10-07 |
| 20 | 02293-kolnp-2006 international search authority report.pdf | 2011-10-07 |
| 20 | 2293-KOLNP-2006-(20-03-2012)-PA.pdf | 2012-03-20 |
| 21 | 02293-kolnp-2006 pct others.pdf | 2011-10-07 |
| 21 | 2293-KOLNP-2006-(20-03-2012)-FORM-6.pdf | 2012-03-20 |
| 22 | 02293-kolnp-2006 pct request.pdf | 2011-10-07 |
| 22 | 2293-KOLNP-2006-(20-03-2012)-FORM-2.pdf | 2012-03-20 |
| 23 | 02293-kolnp-2006 priority document.pdf | 2011-10-07 |
| 23 | 2293-KOLNP-2006-(20-03-2012)-FORM-13.pdf | 2012-03-20 |
| 24 | 02293-kolnp-2006-correspondence-1.1.pdf | 2011-10-07 |
| 24 | 2293-KOLNP-2006-(20-03-2012)-FORM-1.pdf | 2012-03-20 |
| 25 | 2293-KOLNP-2006-(20-03-2012)-DRAWINGS.pdf | 2012-03-20 |
| 25 | 02293-kolnp-2006-form-18.pdf | 2011-10-07 |
| 26 | 2293-KOLNP-2006-CORRESPONDENCE.pdf | 2011-10-07 |
| 26 | 2293-KOLNP-2006-(20-03-2012)-CORRESPONDENCE.pdf | 2012-03-20 |
| 27 | 2293-KOLNP-2006-FORM 13.pdf | 2011-10-07 |
| 27 | 2293-KOLNP-2006-(30-07-2012)-PA.pdf | 2012-07-30 |
| 28 | 2293-KOLNP-2006-GPA.pdf | 2011-10-07 |
| 28 | 2293-KOLNP-2006-(30-07-2012)-CORRESPONDENCE.pdf | 2012-07-30 |
| 29 | abstract-02293-kolnp-2006.jpg | 2011-10-07 |
| 29 | 02293-kolnp-2006 form-13.pdf | 2017-02-15 |