IP Library Granted Patent US 7,584,193
Granted Patent B2
US 7,584,193 · App. 11/015,616 · Granted Sep 1, 2009

Client-server data communication

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,584,193
App. No.
11/015,616
Granted
Sep 1, 2009
Kind
B2
Abstract

Methods and apparatus, including computer program products, using placeholder objects in the communication of structures of data objects. A server can respond to a request for a complete structure of data objects with a partial structure that includes placeholder objects, each having a position in the partial structure, each representing content that is present in the complete structure but omitted in the partial structure. A client can accept the partial structure instead of the complete structure, can transmit a placeholder substitution request to the server identifying a placeholder object, and can receive in response to the request a further structure of data objects to replace the identified placeholder object.

Claims (73)

1. A client-server system comprising:

a server operable to:

receive from a client, over a network, a request for a structure comprising data objects;

receive, from the client, an available bandwidth for client-server communication over the network;

prepare a partial structure of data objects, the partial structure differing from the requested structure in that the partial structure comprises a first subset of the data objects comprising the requested structure and one or more placeholder objects in place of a second subset of the data objects comprising the requested structure, thereby omitting the second subset of data objects comprising the requested structure from the partial structure; and

transmit the partial structure over the network to the client in place of the requested structure,

wherein:

the placeholder objects have positions in the partial structure corresponding to positions of the omitted second subset of data objects in the requested structure,

the placeholder objects in the partial structure require less bandwidth to transmit than the omitted second subset of data objects, and

the server varies the number of placeholder objects and the number of data objects in the partial structure to conform the bandwidth required to transmit the partial structure over the network to the available bandwidth received from the client.

2. The system of claim 1 , further comprising:

the client, the client being operable to accept the partial structure of data objects instead of the requested structure, the client being operable to transmit a placeholder substitution request to the server identifying one of the placeholder objects in the partial structure and to receive in response to the placeholder substitution request a further structure of data objects to replace the identified placeholder object.

3. The system of claim 1 , wherein:

the server is further operable to respond to a placeholder substitution request identifying a placeholder object with a further structure of data objects to replace the identified placeholder object in the partial structure.

4. The system of claim 3 , wherein the further structure of data objects is partial and contains one or more placeholder objects and omits one or more data objects.

5. The system of claim 2 , wherein:

the client implements a data object model, the data object model defining a data structure for representing the partial structure of data objects, and an interface for operating on the partial structure of data objects.

6. The system of claim 5 , wherein the data objects represent user interface elements, and the data object model is a user interface object model.

7. The system of claim 5 , wherein the data objects represent data types, and the data object model is a data type object model.

8. The system of claim 5 , wherein the data object model is an XML document object model.

9. A computer program product, tangibly embodied in a computer-readable storage device, the computer program product comprising instructions operable to cause a server to:

receive from a client, over a network, a request for a structure comprising data objects;

receive, from the client, an available bandwidth for client-server communication over the network;

prepare a partial structure of data objects, the partial structure differing from the requested structure in that the partial structure comprises a first subset of the data objects comprising the requested structure and one or more placeholder objects in place of a second subset of the data objects comprising the requested structure, thereby omitting the second subset of data objects comprising the requested structure from the partial structure; and

transmit the partial structure over the network to the client in place of the requested structure,

wherein:

the placeholder objects have positions in the partial structure corresponding to positions of the omitted second subset of data objects in the requested structure,

the placeholder objects in the partial structure require less bandwidth to transmit than the omitted second subset of data objects, and

the server varies the number of placeholder objects and the number of data objects in the partial structure to conform the bandwidth required to transmit the partial structure over the network to the available bandwidth received from the client.

10. The computer program product of claim 9 , further comprising instructions operable to cause data processing apparatus to:

receive a placeholder substitution request identifying a first one of the placeholder objects; and

transmit placeholder content represented by the first placeholder object.

11. A method comprising steps implemented by a server of:

receiving from a client, over a network, a request for a structure comprising data objects;

receiving, from the client, an available bandwidth for client-server communication over the network;

preparing a partial structure of data objects, the partial structure differing from the requested structure in that the partial structure comprises a first subset of the data objects comprising the requested structure and one or more placeholder objects in place of a second subset of the data objects comprising the requested structure, thereby omitting the second subset of data objects comprising the requested structure from the partial structure; and

transmitting the partial structure over the network to the client in place of the requested structure,

wherein:

the placeholder objects have positions in the partial structure corresponding to positions of the omitted second subset of data objects in the requested structure,

the placeholder objects in the partial structure require less bandwidth to transmit than the omitted second subset of data objects, and

the server varies the number of placeholder objects and the number of data objects in the partial structure to conform the bandwidth required to transmit the partial structure over the network to the available bandwidth received from the client.

12. The method of claim 11 , further comprising:

receiving a placeholder substitution request identifying a first one of the placeholder objects; and

transmitting placeholder content represented by the first placeholder object.

13. The method according to claim 12 , wherein the placeholder objects sent in response to the request contain a placeholder object identifier that uniquely identifies the placeholder object.

14. A client-server system comprising:

a server operable to:

receive from a client, over a network, a request for a structure comprising data objects;

receive, from the client, a specified maximum number of data objects to transmit in response to the request;

prepare a partial structure of data objects, the partial structure differing from the requested structure in that the partial structure comprises a first subset of the data objects comprising the requested structure and one or more placeholder objects in place of a second subset of the data objects comprising the requested structure, thereby omitting the second subset of data objects comprising the requested structure from the partial structure; and

transmit the partial structure over the network to the client in place of the requested structure,

wherein:

the placeholder objects have positions in the partial structure corresponding to positions of the omitted second subset of data objects in the requested structure,

the placeholder objects in the partial structure require less memory capacity than the omitted second subset of data objects, and

the server varies the number of placeholder objects and the number of data objects in the partial structure to conform the number of data objects in the partial structure transmitted over the network to the client-specified maximum number.

15. A computer program product, tangibly embodied in a computer-readable storage device, the computer program product comprising instructions operable to cause a server to:

receive from a client, over a network, a request for a structure comprising data objects;

receive, from the client, a specified maximum number of data objects to transmit in response to the request;

prepare a partial structure of data objects, the partial structure differing from the requested structure in that the partial structure comprises a first subset of the data objects comprising the requested structure and one or more placeholder objects in place of a second subset of the data objects comprising the requested structure, thereby omitting the second subset of data objects comprising the requested structure from the partial structure; and

transmit the partial structure over the network to the client in place of the requested structure,

wherein:

the placeholder objects have positions in the partial structure corresponding to positions of the omitted second subset of data objects in the requested structure,

the placeholder objects in the partial structure require less memory capacity than the omitted second subset of data objects, and

the server varies the number of placeholder objects and the number of data objects in the partial structure to conform the number of data objects in the partial structure transmitted over the network to the client-specified maximum number.

16. A method comprising steps implemented by a server of:

receiving from a client, over a network, a request for a structure comprising data objects;

receiving, from the client, a specified maximum number of data objects to transmit in response to the request;

preparing a partial structure of data objects, the partial structure differing from the requested structure in that the partial structure comprises a first subset of the data objects comprising the requested structure and one or more placeholder objects in place of a second subset of the data objects comprising the requested structure, thereby omitting the second subset of data objects comprising the requested structure from the partial structure; and

transmitting the partial structure over the network to the client in place of the requested structure,

wherein:

the placeholder objects have positions in the partial structure corresponding to positions of the omitted second subset of data objects in the requested structure,

the placeholder objects in the partial structure require less memory capacity than the omitted second subset of data objects, and

the server varies the number of placeholder objects and the number of data objects in the partial structure to conform the number of data objects in the partial structure transmitted over the network to the client-specified maximum number.

Assignments (3)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0334 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2009
From: KRANE, ROLF; NIESSEN, RUDOLF
To: SAP AKTIENGESELLSCHAFT
Reel/Frame 022649/0734 →
CHANGE OF NAME Recorded Dec 21, 2005
From: SAP AKTIENGESELLSCHAFT
To: SAP AG
Reel/Frame 017364/0758 →