Optimizing client code through automated server specialization
First Claim
1. A method of client/server communication comprising the steps of:
- identifying characteristics of a client and a predetermined service to be obtained for said client from an application server, said client being a thin client operating in a first platform-independent environment, said application server operating in a second platform-independent environment;
responsively to determining said characteristics of said client and said predetermined service, and external to said client;
automatically compiling a client program for said client from a platform-independent source code,automatically defining a first message format for use by said client program that is optimized according to said characteristics and said predetermined service, andautomatically generating a mediator program corresponding to the client program, said mediator program being adapted to process messages encoded in said first message format;
sending said client program to said client;
wherein said client program enables said client to generate a request for said predetermined service and encode said request according to said first message format to define an encoded message;
receiving said encoded message from said client at a mediator server disposed external to said client;
executing said mediator program in said mediator server to re-encode said encoded message into a second message format that is acceptable to said predetermined service of said application server to define a re-encoded message, wherein a size of said re-encoded message exceeds a size of said encoded message; and
transmitting said re-encoded message to a provider of said predetermined service,wherein said client program is compiled from application of input data to a predefined template, wherein said template includes data and a logic specific to at least one of said client or said predetermined service andwherein said mediator program corresponding to said client program is generated responsively to said predefined template.
1 Assignment
0 Petitions
Accused Products
Abstract
Improved end-to-end server-client communication is achieved, wherein a thin client requests services from a server using a condensed optimized protocol. A mediator is provided on the server, which translates encoded messages from the client into standard web service request formats. Results are re-encoded at the server and returned to the client. A code generator is provided to automatically create optimized and specialized client and server code using templates, in which the code is optimized according to the characteristics of the client and the specified services. Grouped messages are supported. Bandwidth consumption is reduced by the technique, which increases the performance of resource-constrained clients, such as small wireless devices.
23 Citations
57 Claims
-
1. A method of client/server communication comprising the steps of:
-
identifying characteristics of a client and a predetermined service to be obtained for said client from an application server, said client being a thin client operating in a first platform-independent environment, said application server operating in a second platform-independent environment; responsively to determining said characteristics of said client and said predetermined service, and external to said client; automatically compiling a client program for said client from a platform-independent source code, automatically defining a first message format for use by said client program that is optimized according to said characteristics and said predetermined service, and automatically generating a mediator program corresponding to the client program, said mediator program being adapted to process messages encoded in said first message format; sending said client program to said client; wherein said client program enables said client to generate a request for said predetermined service and encode said request according to said first message format to define an encoded message; receiving said encoded message from said client at a mediator server disposed external to said client; executing said mediator program in said mediator server to re-encode said encoded message into a second message format that is acceptable to said predetermined service of said application server to define a re-encoded message, wherein a size of said re-encoded message exceeds a size of said encoded message; and transmitting said re-encoded message to a provider of said predetermined service, wherein said client program is compiled from application of input data to a predefined template, wherein said template includes data and a logic specific to at least one of said client or said predetermined service and wherein said mediator program corresponding to said client program is generated responsively to said predefined template. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of establishing access by a client to predetermined server-side services, comprising the steps of:
-
identifying characteristics of said client and said predetermined services; external to said client, automatically defining a first protocol for use by said client that is optimized according to said characteristics of said client and said predetermined services; installing proxy code in said client that is customized responsively to said characteristics and said predetermined services to provide an interface with an application program executing therein, wherein requests for said predetermined server-side services are generated by said application program and said proxy code is adapted to reformulate said requests as first messages according to said first protocol, said client being a thin client; automatically generating said proxy code and sending said proxy code to said client for installation; automatically generating a mediator program corresponding to the proxy code that is operative for receiving messages according to said first protocol; and executing said mediator program in a computing device external to said client, said mediator program accepting input from said client according to said first protocol and being further adapted to reformulate said first messages as second messages according to a second protocol, said computing device being capable of communicating said second messages to a provider of said predetermined server-side services, wherein said proxy code is generated from application of input data to a predefined template, wherein said template includes data and a logic specific to at least one of said client or said predetermined service and wherein said mediator program corresponding to said proxy code is generated responsively to said predefined template. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer software product, comprising a non-transitory computer-readable medium in which computer program instructions are stored, which instructions, when read by a computer, cause the computer to perform a method of communication between a client operating in a first platform-independent environment and a server operating in a second platform-independent environment to obtain a predetermined service for said client via said server, comprising the steps of:
-
accepting, as an input, characteristics of said client and an identification of said predetermined service, said client being a thin client; responsively to said characteristics of said client and said identification of said predetermined service, and external to said client, automatically compiling a client program for said client from a platform-independent source code, automatically defining a first message format for use by said client program that is optimized according to said characteristics and said predetermined service, and automatically generating a mediator program corresponding to the client program, said mediator program being adapted to accept said first format; sending said client program to said client; wherein said client program enables said client to encode a request for said predetermined service according to said first message format to define an encoded message; receiving said encoded message at a mediator server disposed external to said client; at said mediator server, executing said mediator program for re-encoding said encoded message into a second message format to define are-encoded message, wherein a size of said re-encoded message exceeds a size of said encoded message; and transmitting said re-encoded message to a provider of said predetermined service, wherein said client program is compiled from application of input data to a predefined template, wherein said template includes data and a logic specific to at least one of said client or said predetermined service and wherein said mediator program corresponding to said client program is generated responsively to said predefined template. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A computer software product, comprising a non-transitory computer-readable medium in which computer program instructions are stored, which instructions, when read by a computer, cause the computer to perform a method of establishing access by a client operating in a first platform-independent environment to a server operating in a second platform-independent environment to obtain predetermined server-side services, comprising the steps of:
-
accepting, as input, characteristics of said client and said predetermined services, said client being a thin client; automatically generating proxy code for installation in said client to provide an interface with an application program executing therein, wherein requests for said predetermined server-side services are generated, by said application program and said proxy code is adapted to reformulate said requests as first messages according to a first protocol, wherein said instructions cause the computer to configure said first protocol according to said characteristics of said client and said predetermined server-side services for use by said user; and sending said proxy code to said client; and responsively to said characteristics and said predetermined services, automatically generating a mediator program corresponding to the proxy code for installation in a computing device external to said client, said mediator program accepting input from said client according to said first protocol and being further adapted to reformulate said first messages as second messages according to a second protocol, said computing device being capable of communicating said second messages to a provider of said predetermined server-side services, wherein said proxy code is generated from application of input data to a predefined template, wherein said template includes data and a logic specific to at least one of said client or said predetermined service, and wherein said mediator program corresponding to said proxy code is generated responsively to said predefined template. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A computer software product, comprising a non-transitory computer-readable medium in which computer program instructions are stored, which instructions, when read by a computer, cause the computer to perform a method of establishing an interaction between a client operating in a first platform-independent environment to a server operating in a second platform independent environment over a data network to obtain a supported predetermined service for said client via said server, comprising the steps of:
-
identifying characteristics of said client and identifying said predetermined service, said client being a thin client; external to said client, responsively to said characteristics and said predetermined service, automatically generating a first program for installation in said client, which when executed by said client causes said client to perform the steps of; encoding a request for said predetermined service according to a first format to define an encoded message, said first format being defined and configured in said first program responsively to said characteristics of said client and said predetermined services; and transmitting said encoded message to said server via said data network; and sending said first program to said client; automatically generating a second program corresponding to said first program for installation in said server, said second program being adapted to accept said first format, wherein said second program, when executed by said server causes said server to perform the steps of; re-encoding said encoded message into a second format to define a re-encoded message, wherein a size of said re-encoded message exceeds a size of said encoded message; and transmitting said re-encoded message to a provider of said predetermined service via said data network, wherein said first program is generated from application of input data to a predefined template, wherein said template includes data and a logic specific to at least one of said client and said predetermined service and wherein said second program corresponding to said first program is generated responsively to said predefined template. - View Dependent Claims (40, 41, 42, 43, 44)
-
-
45. A development system for establishing access by a client to predetermined server-side services, comprising:
-
a computer having a code generator executing therein within a first platform-independent environment, said code generator being configured to (1) accept as an input characteristics of said client and said predetermined server-side services, said client being a thin client, and to (2) external to said client, automatically generate proxy code executable in said client to provide an interface with an application program executing in said client and to send the proxy code to said client, said proxy code being configured responsively to said characteristics and said predetermined server-side services, wherein requests for said predetermined server-side services are generated by said application program and said proxy code is adapted to reformulate said requests as first messages according to a first protocol, wherein said client operates in a second platform-independent environment; and said code generator being further adapted to automatically generate a mediator program corresponding to said proxy code for a computing device external to said client, said mediator program accepting input from said client according to said first protocol and being further adapted to reformulate said first messages as second messages according to a second protocol, said computing device being capable of communicating said second messages to a provider of said predetermined server-side services, wherein said proxy code is generated from application of input data to a predefined template, wherein said template includes data and a logic specific to at least one of said client or said predetermined service and wherein said mediator program corresponding to said proxy code is generated responsively to said predefined template. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
-
Specification