← Back to Patent Explorer
EP1122654A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Reformatting with modular proxy server

Assignee: Microsoft Corp
•
Filing: 2001-01-15
•
Granted: —
•
Expires: 2021-01-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A proxy server "platform" is provided that is easily modified and customized to reformat web content in a particular way under certain conditions as determined by the operator of the proxy server. The proxy server retrieves from the Internet web content requested by a client, reformats it into a suitable format for the requesting client, and then forwards the reformatted web content to the requesting client. The proxy server evaluates operator-alterable rules to determine, based on capabilities of the requesting client (and/or on request variables), specifically how to reformat the requested web content so that it will be suitable for passing on to the requesting client. The platform has a "modular" architecture wherein content reformatting is performed by one or more "modules".. The modules are dynamically-linkable into the executing proxy server platform software at run time. The platform is easily customizable by the operator because modules can be deleted and/or added without affecting other modules. Modules are, in one embodiment, written in accordance with the COM modular programming standard so that individual modules can be removed, replaced and/or added without having to modify or recompile other modules. In one embodiment, web content cached on the proxy server is deemed suitable for passing to a requesting client if evaluation of the rules for the request from the client matches the prior evaluation of the rules that gave rise to the original reformatted web content as cached.

Inventors

  • 👤 Sarah C. Moussa
  • 👤 Jay D. Logue

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-08 20:13
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/25; G06F16/258

Claims Analysis

Total Claims: 52
Claim 1
Independent Claim 120 words
A method, comprising: a. retrieving onto a proxy server content from a remote server, the proxy server comprising a first module and a second module; b. reformatting the content into first reformatted content using the first module and not using the second module; c. reformatting the content into second reformatted content using the second module and not using the first module; d. receiving a request from a first client onto the proxy server for the content; e. supplying the first reformatted content to the first client from the proxy server; f. receiving a request from a second client onto the proxy server for the content; and g. supplying the second reformatted content to the second client from the proxy server.
Claim 2
Dependent Claim 58 words
The method of Claim 1, wherein the first module is a portion of executable code that is dynamically linked into the proxy server at a run time of the proxy server, and wherein the second module is a portion of executable code that is dynamically linked into the proxy server at the run time of the proxy server.
Claim 3
Dependent Claim 135 words
The method of Claim 2, wherein: the supplying of the first reformatted content to the first client from the proxy server involves determining that the first reformatted content is to be supplied to the first client based at least in part on information indicative of client capabilities of the first client, the information indicative of client capabilities of the first client being present in the request from the first client, and the supplying of the second reformatted content to the second client from the proxy server involves determining that the second reformatted content is to be supplied to the second client based at least in part on information indicative of client capabilities of the second client, the information indicative of client capabilities of the second client being present in the request from the second client.
Claim 4
Dependent Claim 49 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication of an amount of memory storage space on the first client, and wherein the client capabilities of the second client includes an indication of an amount of memory storage on the second client.
Claim 5
Dependent Claim 49 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication of an amount of disk storage space on the first client, and wherein the client capabilities of the second client includes an indication of an amount of disk storage on the second client.
Claim 6
Dependent Claim 48 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication of a resolution of a display of the first client, and wherein the client capabilities of the second client includes an indication of a resolution of a display of the second client.
Claim 7
Dependent Claim 48 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication of a performance of a connection to the first client, and wherein the client capabilities of the second client includes an indication of a performance of a connection to the second client.
Claim 8
Dependent Claim 28 words
The method of Claim 7, wherein the connection to the first client is a dial-up connection, and wherein the connection to the second client is a dial-up connection.
Claim 9
Dependent Claim 28 words
The method of Claim 7, wherein the connection to the first client is a DSL connection, and wherein the connection to the second client is a DSL connection.
Claim 10
Dependent Claim 30 words
The method of Claim 7, wherein the connection to the first client is a cable modem connection, and wherein the connection to the second client is a cable modem connection.
Claim 11
Dependent Claim 48 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication of an amount of cache memory on the first client, and wherein the client capabilities of the second client includes an indication of an amount of cache memory on the second client.
Claim 12
Dependent Claim 52 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication that the first client is enabled for a particular image data format, and wherein the client capabilities of the second client includes an indication that the second client is enabled for a particular image data format.
Claim 13
Dependent Claim 52 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication that the first client is enabled for a particular audio data format, and wherein the client capabilities of the second client includes an indication that the second client is enabled for a particular audio data format.
Claim 14
Dependent Claim 46 words
The method of Claim 3, wherein the client capabilities of the first client includes an indication of a processor clock speed of the first client, and wherein the client capabilities of the second client includes an indication of a processor clock speed of the second client.
Claim 15
Dependent Claim 99 words
The method of Claim 2, wherein: the supplying of the first reformatted content to the first client from the proxy server involves determining that the first reformatted content is to be supplied to the first client based at least in part on a request variable from the request from the first client, and the supplying of the second reformatted content to the second client from the proxy server involves determining that the second reformatted content is to be supplied to the second client based at least in part on a request variable from the request from the second client.
Claim 16
Independent Claim 112 words
A method, in a computer network system involving a first client, a second client, a proxy server, and a remote server, comprising: receiving onto the proxy server a first request from the first client for content from the remote server; obtaining first information indicative of capabilities of the first client; supplying the content reformatted in a first way from the proxy server to the first client; receiving onto the proxy server a second request from the second client for the content from the remote server; obtaining second information indicative of capabilities of the second client; and supplying the content reformatted in a second way from the proxy server to the second client.
Claim 17
Dependent Claim 102 words
The method of Claim 16, wherein the proxy server includes a first module of dynamically-linkable executable code and a second module of dynamically-linkable executable code, the method further comprising: using the first module to reformat the content from the remote server to generate the content formatted in the first way, the second module not being used to generate the content reformatted in the first way; and using the second module to reformat the content from the remote server to generate the content formatted in the second way, the first module not being used to generate the content reformatted in the second way.
Claim 18
Dependent Claim 25 words
The method of Claim 17, wherein the first information includes a first software build number, and the second information includes a second software build number.
Claim 19
Dependent Claim 24 words
The method of Claim 17, wherein the first information includes a software version number, and the second information includes a second software version number.
Claim 20
Dependent Claim 96 words
The method of Claim 17, wherein in addition to the first information the proxy server receives an indication of a content-type associated with the first request, the proxy server using the indication of the content-type to determine to use the first module to reformat the content in the first way, and wherein in addition to the second information the proxy server receives an indication of a content-type associated with the second request, the proxy server using the indication of the content-type to determine to use the second module to reformat the content in the second way.
Claim 21
Dependent Claim 54 words
The method of Claim 20, wherein the indication of the content-type associated with the first request is received by the proxy server in a response from the remote server, and wherein the indication of the content-type associated with the second request is received by the proxy server in a response from the remote server.
Claim 22
Dependent Claim 128 words
The method of Claim 17, wherein the proxy server uses the information indicative of capabilities of the first client to determine client capabilities of the first client, the proxy server receiving request variable information associated with the first request, the proxy server using the client capabilities and the request variable information to determine to use the first module to reformat the content from the remote server, and wherein the proxy server uses the information indicative of capabilities of the second client to determine client capabilities of the second client, the proxy server receiving request variable information associated with the second request, the proxy server using the client capabilities and the request variable information to determine to use the second module to reformat the content from the remote server.
Claim 23
Dependent Claim 32 words
The method of Claim 22, wherein the request variable information associated with the first request is a content-type, and wherein the request variable information associated with the second request is a content-type.
Claim 24
Dependent Claim 32 words
The method of Claim 22, wherein the request variable information associated with the first request is a content-length, and wherein the request variable information associated with the second request is a content-length.
Claim 25
Dependent Claim 29 words
The method of Claim 17, wherein the first information includes a client capability of the first client, and the second information includes a client capability of the second client.
Claim 26
Dependent Claim 40 words
The method of Claim 17, wherein the first information includes an indication of a connection speed of a connection to the first client, and the second information includes an indication of a connection speed of a connection to the second.
Claim 27
Dependent Claim 39 words
The method of Claim 17, wherein the first information includes an indication of a resolution of a display of the first client, and the second information includes an indication of a resolution of a display of the second client.
Claim 28
Dependent Claim 37 words
The method of Claim 17, wherein the first information includes an indication of an amount of memory on the first client, and the second information includes an indication of an amount of memory on the second client.
Claim 29
Dependent Claim 52 words
The method of Claim 16, wherein the proxy server comprises a tokenizer module and a tokenizer sub-module, the proxy server generating the content reformatted in the first way by: causing the tokenizer module to process the content so as to output tokens; and causing the tokenizer sub-module to operate on the tokens.
Claim 30
Dependent Claim 82 words
A proxy server, comprising: a first dynamically-linkable module that reformats content in a first way; a second dynamically-linkable module that reformats content in a second way; and means for retrieving content requested from a remote server by a client, and for determining whether to use either the first module or the second module to reformat the content requested, the means making the determination based at least in part on one of the group consisting of: a request variable and a client capability.
Claim 31
Dependent Claim 41 words
The proxy server of Claim 30, wherein the means uses the one of the group to evaluate a set of rules and thereby to generate a list of modules to be used in reformatting the content requested from the remote server.
Claim 32
Dependent Claim 24 words
The proxy server of Claim 31, wherein the rules can be altered without altering or recompiling either the first module or the second module.
Claim 33
Dependent Claim 16 words
The proxy server of Claim 32, wherein the one of the group is a client capability.
Claim 34
Dependent Claim 26 words
The proxy server of Claim 32, wherein the one of the group is a request variable taken from the group consisting of: content-length, content-type, and user-agent.
Claim 35
Dependent Claim 44 words
A proxy server, comprising: means for evaluating a set of rules to determine which of a plurality of ways to reformat content requested by a client; and means for changing the set of rules without recompiling the means for evaluating the set of rules.
Claim 36
Dependent Claim 39 words
The proxy server of Claim 35, wherein the means for changing receives a text file containing rule information, the means for changing passing the rule information to the means for evaluating such that the set of rules is changed.
Claim 37
Dependent Claim 57 words
The proxy server of Claim 35, further comprising: a first dynamically-linkable module which when executed reformats content a first way; and a second dynamically-linkable module which when executed reformats content a second way, the means for evaluating determining if the first dynamically-linkable module or if the second dynamically-linkable module will reformat the content requested by the client.
Claim 38
Independent Claim 181 words
A system, comprising: a first modular proxy server coupled to the Internet and operated by a first operator, the first modular proxy server having a control portion, a first set of rules, and a plurality of dynamically-linkable modules, the control portion determining based on an evaluation of the first set of rules which of the plurality of dynamically-linkable modules of the first modular proxy server will process a particular web content; and a second modular proxy server coupled to the Internet and operated by a second operator, the second modular proxy server having a control portion, a second set of rules, and a plurality of dynamically-linkable modules, the control portion determining based on an evaluation of the second set of rules which of the plurality of dynamically-linkable modules of the second modular proxy server will process a particular web content, the control portion of the first modular proxy server and the control portion of the second modular proxy server being substantially identical, the second modular proxy server containing a dynamically-linkable module that is not present in the first modular proxy server.
Claim 39
Dependent Claim 40 words
The system of Claim 38, wherein the second set of rules is different from the first set of rules, the second operator having altered the second set of rules, the second operator not having altered the first set of rules.
Claim 40
Dependent Claim 67 words
The system of Claim 38, wherein one of the plurality of dynamically-linkable modules of the first modular proxy server is identical to one of the plurality of dynamically-linkable modules of the second modular proxy server, and wherein another of the plurality of dynamically-linkable modules of the first modular proxy server is not identical to any of the plurality of dynamically-linkable modules of the second modular proxy server.
Claim 41
Dependent Claim 34 words
The system of Claim 38, wherein the first modular proxy server comprises a tokenizer module, and a tokenizer sub-module, the tokenizer module converting web content into tokens, the tokenizer sub-module operating on the tokens.
Claim 42
Independent Claim 124 words
A method of customizing a modular proxy server, the modular proxy server having a control portion and a plurality of dynamically-linkable modules, a first of the plurality of dynamically-linkable modules reformatting content a first way, a second of the plurality of dynamically-linkable modules reformatting content a second way, the method comprising: generating a third dynamically-linkable module after the first and second dynamically-linkable modules are present on the modular proxy server; loading the third dynamically-linkable module onto the modular proxy server to be present on the modular proxy server along with the control portion, the first dynamically-linkable module and the second dynamically-linkable module; and using the third dynamically-linkable module with the control portion to reformat content requested by a client of the modular proxy server.
Claim 43
Dependent Claim 86 words
The method of Claim 42, further comprising: (a) before the generating of the third dynamically-linkable module, using the control portion and at least one of the first and second dynamically-linkable modules to reformat content, wherein the generating of the third dynamically-linkable module involves compiling code to obtain the third dynamically-linkable module without compiling the control portion, and wherein the using of the third dynamically-linkable module with the control portion involves executing the same control portion executed in (a), the control portion not being compiled after (a).
Claim 44
Dependent Claim 85 words
A proxy server, comprising: a plurality of modules, a first of the modules reformatting content a first way, a second of the modules reformatting content a second way; software for determining, based on client capabilities of a requesting first client, which of the plurality of modules to use in reformatting content requested by the first client; and a cache containing the requested content along with an indication of which of the plurality of modules were used in reformatting the content requested by the first client.
Claim 45
Dependent Claim 129 words
The proxy server of Claim 44, further comprising: software for determining, based on client capabilities of a second requesting client, which of the plurality of modules to use in reformatting content requested by the second client, the software also determining whether the plurality of modules to use in reformatting content requested by the second client matches the stored indication of which of the plurality of modules were used in reformatting the content requested by the first client, and wherein if it matches then the proxy server passes the content cached back to the requesting second client, but if it does not match then the proxy server retrieves the requested content from a remote server, reformats the retrieved content, and then passes the reformatted content back to the second client.
Claim 46
Dependent Claim 74 words
The proxy server of Claim 45, wherein input control parameters for controlling operation of the modules used in reformatting the content requested by the first client are determined based on the client capabilities of the first client, and wherein these input control parameters are stored in the cache along with the requested content and the indication of which of the plurality of modules were used in reformatting the content requested by the first client.
Claim 47
Dependent Claim 76 words
The proxy server of Claim 46, wherein the software that determines which of the plurality of modules to use in reformatting the content requested by the second client determines input control parameters associated with the request of the second client, and wherein the content cached is only passed back to the requesting second client if the input control parameters determined for the request of the second client match the input control parameters stored in the cache.
Claim 48
Independent Claim 240 words
A method, comprising: on a proxy server, performing an evaluation of a set of rules to determine which of a plurality of modules to use in reformatting content requested by a first client; storing information indicative of an outcome of the evaluation of the set of rules, the information being stored in a cache on the proxy server in association with the content requested by the first client; on the proxy server, performing a second evaluation of the set of rules to determine which of the plurality of the modules to use in reformatting content requested by a second client; obtaining information indicative of an outcome of the second evaluation of the set of rules; and comparing the information indicative of the outcome of the second evaluation with the information indicative of the evaluation of the rules stored in the cache, wherein if the comparing indicates that the information indicative of the outcome of the second evaluation is identical to the information indicative of the evaluation stored in the cache then the content stored in the cache is supplied to the second client, but if the comparing indicates that information indicative of the outcome of the second evaluation is not identical to the information indicative of the evaluation stored in the cache then the proxy server reformats the content consistent with the information indicative of the second evaluation and then passes the content so reformatted back to the second client.
Claim 49
Independent Claim 107 words
A method, comprising: a. receiving onto an email server an email message having an attachment, the email message being addressed to a client, the attachment being in a first format, the client not being able to decipher attachments in the first format but being able to decipher attachments in a second format; b. receiving onto the email server from the client information indicative of client capabilities of the client; c. the email server using the information indicative of client capabilities to reformat the attachment into the second format; and d. the email server supplying the email message and the attachment in the second format to the client.
Claim 50
Dependent Claim 64 words
An email server, comprising: means for reformatting, based on information indicative of client capabilities of a client, an email attachment from a first format into a second format, the client being unable to decipher attachments in the first format, the client being able to decipher attachments in a second format; and means for supplying the email attachment in the second format to the client.
Claim 51
Dependent Claim 16 words
The email server of Claim 50, wherein the means for reformatting is a page patcher module.
Claim 52
Dependent Claim 34 words
The email server of Claim 50, wherein the means for reformatting comprises a tokenizer module and a tokenizer sub-module, the tokenizer module converting the attachment into tokens, the tokenizer sub-module operating on the tokens.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag