WO2000058853A1 - Optimisation adaptative d'une mise en antememoire client d'objets repartis - Google Patents
Optimisation adaptative d'une mise en antememoire client d'objets repartis Download PDFInfo
- Publication number
- WO2000058853A1 WO2000058853A1 PCT/US2000/000739 US0000739W WO0058853A1 WO 2000058853 A1 WO2000058853 A1 WO 2000058853A1 US 0000739 W US0000739 W US 0000739W WO 0058853 A1 WO0058853 A1 WO 0058853A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- client
- server
- computer
- objects
- attributes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
Definitions
- a method for processing information in a client-server computer system comprising: initiating a request at a client for multiple objects from an associated server; transmitting selected attributes associated with each of said multiple objects from said server to said client; storing said selected attributes in a cache memory at said client; displaying said selected attributes at said client for user operation; fetching at least one additional attribute required by said user operation on one of said multiple objects from said cache memory if previously stored therein; and alternatively fetching said at least one additional attribute from said server and additionally storing said at least one additional attribute in said cache memory.
- the method of claim 1 further comprising the step of: committing a change at said client to one of said attributes associated with one of said multiple objects; and communicating said committed change to said server.
- the method of claim 4 further comprising the step of: updating data at said server associated with said change to one of said attributes associated with one of said multiple objects.
- the method of claim 5 further comprising the step of: notifying other clients associated with said server affected by said change to one of said attributes associated with one of said multiple objects.
- the method of claim 6 further comprising the step of: storing said change to one of said attributes associated with one of said multiple objects to a cache memory at said other affected clients.
- a client-server computer system comprising: a client computer having an associated cache memory; a server computer bi-directionally coupled to said client computer by means of a data communications path; wherein said client computer is operational to request from said server computer at least one object having a number of attributes associated therewith, said server computer responsively transmitting a selected subset of said number of attributes associated with said object to said client computer in response to said request and said client computer automatically fetching a required additional attribute for said object other than said selected subset from said associated cache memory or said server computer.
- said client computer further comprises a display for displaying said selected subset of said number of attributes associated with said object.
- the client-server computer system of claim 12 wherein said server computer is operational to update a corresponding attribute in response to said change committed at said client computer.
- the client-server computer system of claim 13 further comprising: an additional client computer having an associated cache memory associated with said server computer by another data communications path.
- the client-server computer system of claim 14 wherein said server computer is operational to notify said additional client computer of said change committed at said client computer if said additional client computer has said corresponding attribute stored in its associated cache memory.
- a computer program product comprising: a computer usable medium having computer readable code embodied therein for processing information in a client-server computer system comprising: computer readable program code devices configured to cause a computer to effect initiating a request at a client for multiple objects from an associated server; computer readable program code devices configured to cause a computer to effect transmitting selected attributes associated with each of said multiple objects from said server to said client; computer readable program code devices configured to cause a computer to effect storing said selected attributes in a cache memory at said client; computer readable program code devices configured to cause a computer to effect displaying said selected attributes at said client for user operation;
- the computer program product of claim 16 further comprising: computer readable program code devices configured to cause a computer to effect also displaying said additional attribute at said client.
- the computer program product of claim 16 further comprising: computer readable program code devices configured to cause a computer to effect committing a change at said client to one of said attributes associated with one of said multiple objects; and computer readable program code devices configured to cause a computer to effect communicating said committed change to said server.
- the computer program product of claim 19 further comprising: computer readable program code devices configured to cause a computer to effect updating data at said server associated with said change to one of said attributes associated with one of said multiple objects. 21 .
- the computer program product of claim 20 further comprising:
- the computer program product of claim 21 further comprising: computer readable program code devices configured to cause a computer to effect storing said change to one of said attributes associated with one of said multiple objects to a cache memory at said other affected clients.
- the present invention relates, in general, to the field of client- server computer systems. More particularly, the present invention relates to a system and method for adaptive optimization of client caching of distributed objects in a client server computer system.
- conventional distributed object computer systems have been implemented using two basic models.
- data and objects may reside on a first system which can then respond to messages to process data input to a second system to which it is coupled.
- An example of this technique in a client-server system configuration would be one in which the server maintains all data and objects and then conducts all processing at the client's request for presentation of only the results at the client.
- this is not a particularly effective methodology due to the fact that a great deal of time and system interconnect resources must be utilized to process any given request and then present the results at the requesting system, thereby unacceptably slowing overall system operation.
- An alternative technique that ameliorates some of the problems inherent in the foregoing model is one in which the client system would initially pull all requested objects and their attributes from the server and then process the information at the client itself.
- the wait for the transfer of all of the objects and their attributes, and the attendant load this places on the client-server interconnect, memory and central processing unit make this also an unacceptably slow solution in addition to a very clumsy programming model as the client will ultimately have to wait for all of the objects to be transferred before any operations can be performed on them.
- Such methodology also results in which the client system would initially pull all requested objects and their attributes from the server and then process the information at the client itself.
- a client system when a client system requests multiple objects from an associated server, a subset of the selected object attributes is initially transmitted to the client and cached locally prior to display (or manipulation) of certain ones of the object attributes for operation. If a user operation then requires the fetch of an additional attribute for one of the requested objects, it is either fetched from the client cache if already cached, or automatically and transparently fetched from the server for subsequent caching at the client, whereupon the additional attribute is then displayed or manipulated.
- the associated server updates its own data and notifies any other clients and their applications that also have the particular object attribute to update their local cache as well.
- the selected attributes to be transmitted to the client from the server may only initially include their names and phone numbers, even though there are also a large number of other attributes for each insurance provider object.
- computer programs may be implemented that, in essence, request a relatively large number of objects from a server, effectuate the processing of the object attributes at the client and not incur the system interconnect, memory and central processing load and delay penalties inherent in conventional client-server processing methodologies.
- ChannelPoint, Inc. assignee of the present invention, has defined an object infrastructure for implementation of the system and method of the present invention in the form of a "huskobject".
- the server transmits these huskobjects to the client in response to a request for multiple objects as to which only certain attributes are initially of interest or otherwise specified by the client where they are then cached.
- the huskobjects do not contain all of the attributes of the objects but only those that are required for initial operation at the client. Should the client thereafter require an attribute not present in the huskobject and not found in the local cache, a request is automatically sent to the server to send the additional attribute. In operation, this request is transparent and it appears to the client that all of the attributes of the objects have previously been transmitted from the server. In this manner, interconnect traffic between the client and server is minimized.
- the server updates its own data and also addresses the applications and caches on the other system clients which it knows have the same object attribute and would be affected by the change.
- the method comprises the steps of initiating a request at a client for multiple objects from an associated server, transmitting selected attributes associated with each of the multiple objects from the server to the client and storing the selected attributes in a cache memory at the client.
- the selected attributes are stored at the client for user operation and at least one additional attribute required by user operation on one of the multiple objects is fetched from the cache memory if previously stored therein or alternatively fetched from the server and additionally stored in the cache memory.
- a client-server computer system which comprises a client computer having an associated cache memory and a server computer bi-directionally coupled to the client computer by means of a data communications path.
- the client computer is operational to request from the server computer at least one object having a number of attributes associated therewith and the server computer responsively transmits a selected subset of the number of attributes associated with the object to the client computer in response to the request.
- the client computer automatically fetches a required additional attribute for the object other than the selected subset from the associated cache memory or the server computer.
- Fig. 1 illustrates an exemplary general distributed computing system for possible use in conjunction with the system, method and computer program product of the present invention wherein general purpose computers, workstations or personal computers are connected via communications links of various types;
- FIG. 2 is a simplified representation of a client-server computer system illustrating a number of different objects and the relationship between client controllers and server controllers;
- Fig. 3 is an additional simplified representation of the interrelationship between a client controller and server controller wherein a commit, delete or query operation is initiated by a given client controller and the associated server controller then notifies all affected other client controllers of that operation;
- Fig. 4 is a representative logic flowchart of a method in accordance with a particular implementation of the present invention.
- FIG. 1 the environment in which the present invention may be used is illustrated as encompassing a general distributed computing system 10 wherein general purpose computers, workstations or personal computers are connected via communications links of various types, for example a client-server arrangement, and wherein programs and data, many in the form of objects, are made available by various members of the system 10 for execution and access by other members of the system.
- a representative computer system 10 includes a general purpose workstation 12 (which may function as a "client" in a client- server computer system 10) and associated server 14 coupled together through an appropriate communications medium 16.
- the workstation 12 may include input/output (“I/O"), central processing unit (“CPU”) and memory sections (not shown) forming a portion of a computer 18 having an associated monitor 20.
- I/O input/output
- CPU central processing unit
- memory sections not shown
- a keyboard 22 as well as other manual input devices, such as mouse 24, form a portion of the workstation 12 and are coupled to the I/O section of the computer 18 to provide user input data thereto.
- the monitor 20 is coupled to receive output from the I/O section to provide visually discernible user output in the form of a graphical user interface ("GUI") or other form of user interface.
- GUI graphical user interface
- Various types of computer mass storage devices may also be coupled to the I/O section of the computer 18 including a tape drive 26, a hard disk drive 28, a floppy disk drive 30 or a CDROM drive 32 for read/write or read only storage of data.
- Data may also be communicated to the server 14 by means of the communications medium 16 (such as a local area network “LAN” or wide area network “WAN”) intercoupling the I/O portions of the workstation 12 and server 14.
- the server 14 may comprise, for example, computer tower 34, an associated monitor 36, a keyboard 38 and computer mass storage device 40.
- the computer program products containing mechanisms to effectuate the apparatus and methods of the present invention may reside in the memory portions of the workstation 12 or server 14 or any of the various associated computer mass storage devices such as tape drive 26, hard disk drive 28, floppy disk drive 30, CDROM drive 32, the communications medium 16, the computer mass storage device 40 or any other device or mechanism for retaining computer program data.
- the computer system 200 includes a number of client computers 202, 204 on which are running various application programs denominated Application 1 and Application 2 respectively.
- a Server Process is illustrated as running on server computer 206.
- FIG. 3 an additional simplified representation of a client-server computer system 300 is shown illustrating the interrelationship between a client controller 302 and a server controller 304.
- a commit, delete or query operation is initiated by a given client (for example, client controller 302) with respect to one of a number of huskobjects 306, knowledge of this operation is then passed to the server controller 304.
- the associated server controller 304 modifies its own corresponding data accordingly and further notifies all other affected client controllers of that operation such that the change can be acted upon by their application program and any new value of the attribute added to their respective cache.
- the query from the client controller 302 to the server 304 is used to specify the objects desired and the attributes associated with those objects that are requested to be transmitted because of their immediate interest to the client application.
- a representative process 400 in accordance with the present invention is shown.
- the process 400 is initiated when a given client in a client-server computer system requests multiple objects from an associated server at step 402.
- the server responsively transmits selected attributes of the requested objects to the client instead of transmitting all attributes associated with the requested objects.
- the requested objects with their selected attributes are received at the client, they are cached locally at step 406 and then displayed (or manipulated) for user operation at step 408.
- the server is made aware of this and then proceeds to update its own data as well as notify any other affected clients and their applications to update the data and their local cache at step 424.
- An exemplary illustration of the system and method of the present invention is for a client user to request all insurance providers (i.e. objects) in a given geographic location.
- the client system will display or manipulate them, and from that displayed list, select the one of interest.
- huskobjects containing only the name and address of the insurance providers requested is really all that is needed initially.
- objects can be dealt with at the client location as if the objects and their attributes were completely present without having to transmit everything from the server in bulk.
- Those attributes that are initially requested may be set by the application software based on the likelihood that certain attributes of the objects are the ones most likely to be needed at first and those associated with them that is most likely to be needed next once an object of interest has been determined.
- the application software can also determine that if certain attributes (e.g. x, y and z) are initially requested, then there is a high probability that attribute "q" will be needed later. In this example, attributes "x", "y', "z” and "q" may be sent at one time.
- objects and their attributes can be fetched by following links to other objects or by query which specifies the attributes of particular interest when a number of objects are requested from the server.
- attributes can be pinned to each other such that, for example, a request for attribute "x" would also always bring over "y” if the latter where pinned to the former.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
L'invention concerne un système et un procédé d'optimisation adaptative d'une mise en antémémoire client d'objets répartis (306) dans un système serveur-client (300) consistant à faire en sorte que lorsqu'un système client (302) demande de multiples objets (306) d'un serveur associé (304), un sous-ensemble d'attributs d'objets sélectionnés soit d'abord transmis au système client (302) et mis en antémémoire locale avant l'affichage de certains des attributs. Si une opération utilisateur nécessite l'extraction d'un attribut supplémentaire pour un des objets demandés, il peut être extrait de l'antémémoire du système client (302) s'il s'y trouve ou extrait de manière automatique et transparente du serveur (304) en vue d'une mise en antémémoire au niveau du système client (302), suivi de l'affichage de l'attribut supplémentaire. Lorsqu'un système client particulier (302) dans le système serveur-client (300) modifie un des attributs objet, quel qu'il soit, le serveur associé (304) met à jour ses données et informe les autres clients et leurs applications ayant aussi l'attribut objet en question de la nécessité de mettre à jour leur antémémoire locale.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU26085/00A AU2608500A (en) | 1999-03-31 | 2000-01-12 | Adaptive optimization of client caching of distributed objects |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US28307799A | 1999-03-31 | 1999-03-31 | |
| US09/283,077 | 1999-03-31 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2000058853A1 true WO2000058853A1 (fr) | 2000-10-05 |
Family
ID=23084398
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2000/000739 Ceased WO2000058853A1 (fr) | 1999-03-31 | 2000-01-12 | Optimisation adaptative d'une mise en antememoire client d'objets repartis |
Country Status (2)
| Country | Link |
|---|---|
| AU (1) | AU2608500A (fr) |
| WO (1) | WO2000058853A1 (fr) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2387934B (en) * | 2001-12-03 | 2004-07-28 | Sun Microsystems Inc | Transparent optimization of network traffic in distributed systems |
| WO2003102779A3 (fr) * | 2002-05-29 | 2004-08-26 | Flyingspark Ltd | Procedes et systeme d'utilisation de memoires cache |
| CN103581119A (zh) * | 2012-07-24 | 2014-02-12 | 上海宝信软件股份有限公司 | 一种生产过程数据高速显示系统及方法 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5737536A (en) * | 1993-02-19 | 1998-04-07 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
| US5842216A (en) * | 1996-05-03 | 1998-11-24 | Mitsubishi Electric Information Technology Center America, Inc. | System for sending small positive data notification messages over a network to indicate that a recipient node should obtain a particular version of a particular data item |
| US5884046A (en) * | 1996-10-23 | 1999-03-16 | Pluris, Inc. | Apparatus and method for sharing data and routing messages between a plurality of workstations in a local area network |
| US5925100A (en) * | 1996-03-21 | 1999-07-20 | Sybase, Inc. | Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application |
| US6021470A (en) * | 1997-03-17 | 2000-02-01 | Oracle Corporation | Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system |
-
2000
- 2000-01-12 WO PCT/US2000/000739 patent/WO2000058853A1/fr not_active Ceased
- 2000-01-12 AU AU26085/00A patent/AU2608500A/en not_active Abandoned
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5737536A (en) * | 1993-02-19 | 1998-04-07 | Borland International, Inc. | System and methods for optimized access in a multi-user environment |
| US5925100A (en) * | 1996-03-21 | 1999-07-20 | Sybase, Inc. | Client/server system with methods for prefetching and managing semantic objects based on object-based prefetch primitive present in client's executing application |
| US5842216A (en) * | 1996-05-03 | 1998-11-24 | Mitsubishi Electric Information Technology Center America, Inc. | System for sending small positive data notification messages over a network to indicate that a recipient node should obtain a particular version of a particular data item |
| US5884046A (en) * | 1996-10-23 | 1999-03-16 | Pluris, Inc. | Apparatus and method for sharing data and routing messages between a plurality of workstations in a local area network |
| US6021470A (en) * | 1997-03-17 | 2000-02-01 | Oracle Corporation | Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2387934B (en) * | 2001-12-03 | 2004-07-28 | Sun Microsystems Inc | Transparent optimization of network traffic in distributed systems |
| US7165101B2 (en) * | 2001-12-03 | 2007-01-16 | Sun Microsystems, Inc. | Transparent optimization of network traffic in distributed systems |
| WO2003102779A3 (fr) * | 2002-05-29 | 2004-08-26 | Flyingspark Ltd | Procedes et systeme d'utilisation de memoires cache |
| CN103581119A (zh) * | 2012-07-24 | 2014-02-12 | 上海宝信软件股份有限公司 | 一种生产过程数据高速显示系统及方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2608500A (en) | 2000-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11606411B1 (en) | Application state server-side cache for a state-based client-server application | |
| US10732836B2 (en) | Remote one-sided persistent writes | |
| US7320023B2 (en) | Mechanism for caching dynamically generated content | |
| US5442771A (en) | Method for storing data in an interactive computer network | |
| US6442651B2 (en) | Shared cache parsing and pre-fetch | |
| EP1442398B1 (fr) | Systeme et procede permettant de vider une memoire cache d'architecture bean | |
| US10353993B2 (en) | Phased generation and delivery of structured documents | |
| CN111078147B (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
| EP1214667B1 (fr) | Procedes et appareil servant a transmettre efficacement des donnees d'application interactives entre un client et un serveur a l'aide d'un langage de balisage | |
| US10802766B2 (en) | Database with NVDIMM as persistent storage | |
| US6263360B1 (en) | System uses filter tree and feed handler for updating objects in a client from a server object list | |
| US6701368B1 (en) | Providing a stream of data to a browser to update properties on a page | |
| EP3688598B1 (fr) | Procédé de lecture de données mémorisées dans une mémoire cache non volatile à l'aide d'un rdma | |
| EP1267278A1 (fr) | Transmission en continu de données temps réel vers un browser | |
| JP6484667B2 (ja) | 構造化文書のページレットのキャッシング | |
| US20100325363A1 (en) | Hierarchical object caching based on object version | |
| JP2002542542A (ja) | 問合せ可能なダイナミック・キャッシュを有するウェブサーバ | |
| US20060015817A1 (en) | Method to dynamically customize a web user interface | |
| US11163590B2 (en) | Graphical user interface command pattern | |
| WO2000058853A1 (fr) | Optimisation adaptative d'une mise en antememoire client d'objets repartis | |
| US20140040195A1 (en) | Offline Web Application System | |
| CN115840862B (zh) | 一种网络靶场大规模场景中靶标的快速查询方法与系统 | |
| US6981098B2 (en) | Methods and apparatus for coordinating a plurality of updates to a cache | |
| CN116126411A (zh) | 一种数据采集方法、装置、电子设备及存储介质 | |
| JP2005503600A (ja) | インターネット上でダイナミック・ページ・ビルダでメッセージ・パブリッシングを提供するための方法およびシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU CA JP NZ |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| 122 | Ep: pct application non-entry in european phase |