US20020091721A1 - Providing shared resources - Google Patents
Providing shared resources Download PDFInfo
- Publication number
- US20020091721A1 US20020091721A1 US09/758,491 US75849101A US2002091721A1 US 20020091721 A1 US20020091721 A1 US 20020091721A1 US 75849101 A US75849101 A US 75849101A US 2002091721 A1 US2002091721 A1 US 2002091721A1
- Authority
- US
- United States
- Prior art keywords
- data
- web page
- modified
- user
- current
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
Definitions
- This invention relates to providing shared resources.
- the set of shared resources can include one or more collections of data.
- the collections of data include an inventory database including a list of items for sale, the price of each of the items, the amount of each item currently in stock, and other similar information and a customer database including a list of customer accounts and names, addresses, payment information, order numbers, and other similar information associated with each of the accounts.
- Each user may log in to a system hosting the set of shared resources and gain the ability to edit all or parts of the set of shared resources. While one user is logged in to the system, other users may be prevented from accessing and/or editing all or part of the set of shared resources until that one user logs out of the system. Alternatively, any number of the users may be able to modify the shared resources in whole or in part at any given time. If a user makes a change to the set of shared resources, the user may not know if he or she is changing the most up-to-date version of the shared resources.
- FIG. 1 shows a network configuration
- FIGS. 2 - 3 are flowcharts showing processes of providing and modifying a web page.
- FIG. 4 is a flowchart showing a process of comparing current data on a web page with modified data on the web page.
- a network configuration 100 includes first and second users 102 a and 102 b at first and second workstations 104 a and 104 b, respectively.
- Each user 102 can access a collection of data 106 through a server 108 across a network 110 using communication links 112 a, 112 b, and/or 112 c.
- each of the users 102 may be able to modify some or all of the data included in the collection of data 106 .
- the first user 102 a may request a web page 114 hosted by the server 108 that includes data from the collection of data 106 .
- Data (static and/or dynamic) included in the web page 114 is termed field data 116 .
- the first user 102 a may be able to modify some or all of the field data 116 .
- the subset of modifiable field data, termed original data 118 is cached for later use by the server 108 .
- all of the field data 116 may be modifiable, e.g., not read-only, in which case all of the field data 116 is the same as the original data 118 .
- the first user 102 a may modify some or all of the field data 116 and return a modified web page 114 ′ along with the original data 118 and the modified field data, termed modified data 120 , to the server 108 .
- the collection of data 106 includes current data 122 that reflects the up-to-date, real-time data included in the web page 114 .
- the current data 122 may or may not be the same as the original data 118 sent back to the server 108 from the first workstation 104 a.
- the original data 118 was the same as the current data 122 (although the current data 122 can include more data than just the original data 118 , e.g., include additional databases) and/or data for other web pages.
- the server 108 may not maintain separate current data 122 and field data 116 in the collection of data 106 as shown in FIG. 1. Instead, when the server 108 prepares the web page 114 for transmission to the first user 102 a, the server 108 gathers the appropriate data for the web page 114 from the current data 122 and places it into the field data 116 for the web page 114 .
- a process 124 accessible by the server 108 can compare the original data 118 and the modified data 120 on the modified web page 114 ′ with the current data 122 for the web page 114 . In this way, the process 124 can determine whether the current data 122 changed from when the first user 102 a requested the web page 114 and therefore whether the first user 102 a made modifications to the current version of the web page 114 or to an outdated version of the web page 114 .
- the process 124 can give the first user 102 a the opportunity to confirm the modifications before the server 108 incorporates the modified data 120 into the current data 122 .
- the first user 102 a can modify the web page 114 at his or her leisure, i.e., without locking out other users and without being forced to make changes within a certain window of time.
- the second user 102 b can access and modify the web page 114 without waiting for the first user 102 a to finish modifying the web page 114 or to log out of the system.
- the workstations 104 a and 104 b can each include any device capable of connecting to the network 110 and communicating with the server 108 across the network 110 , such as a mobile computer, a stationary computer, a server, a personal digital assistant, a telephone, a pager, or other similar device.
- the network 110 can include any kind and any combination of networks such as the Internet, a local network, a private network, a public network, or other similar network.
- the server 108 can include any device capable of connecting to the network 110 and executing the process 124 such as a file server, a mobile computer, a stationary computer, or other similar device.
- the communication links 112 a - 112 c between the workstations 104 a and 104 b and the server 108 can be any kind and any combination of communication links such as modem links, cables, point-to-point links, infrared connections, fiber optic links, cellular links, Bluetooth, satellite links, or other similar links.
- Each of the workstations 104 a and 104 b and the server 108 may be remotely located from each other, capable of communicating only across the network 110 using the communication links 112 a, 112 b, and/or 112 c.
- the network configuration 100 is simplified for ease of explanation; the network configuration 100 may include additional elements such as networks, communication links, proxy servers, firewalls or other security mechanisms, Internet Service Providers (ISPs), and other elements.
- the process 124 can be accessible by the server 108 as shown, be included on the server 108 (e.g., as a stand-alone application or as part of another application), or otherwise be accessible to the server 108 (e.g., be included on a network accessible by the server 108 ).
- the collection of data 106 can be structured in any way.
- the collection of data 106 may include data of different structures.
- the collection of data 106 could be structured as a database organized using a database management system, a relational database, a hypertext database, a distributed database, or other similar data structure.
- One example of the web page 114 is a web page including static data (unchangeable by the user) and dynamic data (changeable by the user) wrapped in presentation data such as borders and frames.
- Another example of the web page 114 is a dynamic web page including a bulletin board, a guest book, or other similar interactive feature where users can submit information on the web page 114 , return the modified web page 114 ′, and have the information almost immediately be included as part of the current version of the web page 114 .
- Another example of the web page 114 is a product inventory page where sellers of various products can track the available numbers of those products at a central warehouse. When a seller sells one of the products, the seller can access the product inventory page (the web page 114 ), decrease the available amount of the product, and return that information on the modified web page 114 ′ to the server 108 .
- the web page 114 is discussed here as a single web page.
- the web page 114 and the modified web page 114 ′ can, however, each include any number of web pages, although the modified web page 114 ′ typically would not include more web pages that the web page 114 .
- the web page 114 may include a number of product information web pages, each including different information, that each may be sent in response to different user inquiries. All of the product information web pages would not typically be sent to a single user in response to a single web page request from the user. Rather, the user would receive the appropriate one of the product information web pages.
- FIG. 1 Also for simplicity, only two users 102 a - 102 b are shown in FIG. 1; any number of users may interact with the web page 114 (as limited by the server's, the network's, and/or the communication links' capabilities). Furthermore, an administrator of the server 108 may also be able to modify the web page 114 .
- a process 200 shows one example of the first user 102 a at the first workstation 104 a accessing and modifying the web page 114 .
- the process 200 begins with the first user 102 a requesting 202 the web page 114 .
- the first workstation 104 a typically requests the web page 114 from the server 108 when the first user 102 a requests the web page 114 through a web browser accessible through the first workstation 104 a, e.g., by entering in or clicking on a uniform resource locator (URL).
- URL uniform resource locator
- the server 108 responds to the first workstation's request by transmitting 204 the web page 114 to the first workstation 104 a.
- the server 108 can locate data for the web page 114 in the collection of data 106 .
- the web page 114 reflects the current data 122 for the web page 114 and includes the field data 116 and the original data 118 .
- the server 108 differentiates the field data 116 from the original data 118 by caching the original data 118 within the web page 114 for later use by the server 108 when the web page 114 ′ is submitted by the first user 102 a.
- the server 108 can cache the original data 118 into the web page 114 with any caching technique, e.g., a hidden tagging technique such as applying hypertext markup language (HTML) tags, such as HTML meta tags, or standard generalized markup language (SGML) tags, to the original data 118 .
- HTML hypertext markup language
- SGML standard generalized markup language
- the first user 102 a may modify 206 one or more data values/parameters/fields on the web page 114 included in the field data 116 .
- This modified field data is the modified data 120 .
- the first user 102 a can then submit 208 the modified web page 114 ′, including the original data 118 and the modified data 120 , to the server 108 . Any amount of time may lapse between the time that the first user 102 a receives the web page 114 and the time that the first user 102 a makes and submits modifications to the server 108 .
- the first user 102 a has time-limited access to the web page 114 per server 108 and/or workstation 104 a configurations to prevent other users from modifying data, the first user 102 a would need to submit modifications before reaching his or her access time limit. If the first user 102 a does have time-limited access, the first user 102 a may make relatively fast modifications to the web page 114 , submit the changes to the server 108 , and request the web page 114 again, which can effectively restart the access time limit.
- the server 108 receives the modified web page 114 ′ from the first workstation 104 a.
- the element that actually receives the modified web page 114 ′ at the server 108 may be the server device itself or an application, script, macro, or other program included in or accessible by the server 108 such as a PHP hypertext preprocessor or personal hypertext protocol (both abbreviated by PHP) application, a practical extension and report language (PERL) script, an active server pages (ASP) script, or other similar program.
- the application, script, macro, or other program may include or utilize the process 124 .
- the server 108 compares 210 the original data 118 (including the modified data 120 ) sent by the first workstation 104 a with the current data 122 .
- the process 124 need not compare all data fields included in the current data 122 with the original data 118 .
- the process 124 may exclude a time and date field including the current time and date from comparison because the time constantly changes and thus necessarily varies from the original data 118 to the current data 122 .
- the comparison is performed in a mutually exclusive manner such that the current data 122 may not be altered by the server 108 during the comparison. This “lock-out” prevents near-synchronous modifications to the web page 114 made and submitted to the server 108 by another user from polluting the current data 122 during the comparison.
- process 124 executes this comparing and the subsequent actions discussed below and that the process 124 is part of, or accessible by, the server 108 as described above. In that respect, the server 108 may execute the process 124 or the process 124 may execute on another system.
- the modified data 120 is applied 212 as a change to the current data 122 .
- the modified data 120 is included in the current data 122 so that subsequent requests for the web page 114 can include the modified data 120 as part of the web page 114 .
- the process 124 may directly modify the current data 122 or it may trigger the server 108 or another mechanism to alter the current data 122 . (There may be a time lag in the time that the modified data 120 actually becomes a part of the current data 122 in which case the most immediate subsequent requests for the web page 114 may not return the web page 114 with the modified data 120 .)
- the process 124 may send 214 a confirmation message or web page to the first user 102 a confirming the modifications.
- a confirmation web page can include field data 116 and original data 118 reflecting the current data 122 that now includes the first user's modifications.
- the confirmation web page can be structured like the web page 114 and highlight or otherwise indicate the first user's modifications.
- the confirmation web page is typically sent to the first user 102 a after updating the current data 122 because the first user 102 a modified data that did not change as a result of another user's (including a server administrator's) modifications to the web page 114 from the time the first user 102 a originally requested the web page 114 .
- the server 108 works in a stateless system, meaning that the server 108 processes each request for the web page 114 without any information about previous requests for other web pages (including other web pages that may be included as part of the web page 114 ).
- the server 108 and the process 124 do not maintain information about a particular user's previous request(s) for the web page 114 . This is evidenced by the first user 102 a returning the original data 118 to the server 108 and the process 124 comparing the original data 118 with the current data 122 .
- the server 108 could retain a record of the original data 118 sent to the first user 102 a in the collection of data 106 and the first user 102 a could just return the modified data 120 without the original data 118 .
- the process 124 would compare the stored record of the original data 118 associated with the first user 102 a with the current data 122 before including the modified data 120 in the current data 122 . Retaining a record of the original data 118 sent to each user that requests the web page 114 can potentially require a large amount of storage space, and having each user return the original data 118 reduces the amount of storage space that the server 108 may need.
- the server 108 may also need to have a way of handling expired cached data.
- a new web page is sent 216 to the first user 102 a before any modifications are made to the current data 122 .
- This new web page includes a merger of the modified data 120 and the current data 122 .
- a further explanation of merging data into this new web page is discussed below with reference to FIG. 3.
- the new web page also indicates what changes were detected in the comparison. This indication may simply be the inclusion of the changed data on the new web page or may be a text message notifying the first user 102 a that some changes were detected.
- the first user 102 a can accept or reject the modifications in light of the changes that were made to the web page 114 since the first user 102 a originally accessed the web page 114 .
- the first user 102 a may modify 206 the new web page and submit 208 the new web page, including the (newly) modified data 120 and the (new) original data 118 , to the server 108 as described above.
- the first user 102 a may not modify the new web page, in which case the first user 102 a may submit the same modified data 120 and original data 118 as before.
- the server 108 then handles the user-submitted new web page.
- the first user 102 a may be given the option to click on an accept button or on a reject button on the new web page, or otherwise indicate acceptance or rejection, in which case information regarding the button clicked (or other indicator as appropriate) may be sent back to the server 108 .
- the original data 118 for the new web page would also be sent back to the server 108 since the current data 122 may have changed in the time that the first user 102 a accepts/rejects the new web page.
- the server 108 can then make changes to the current data 122 as appropriate as described above.
- a merger process 300 illustrates an example of how the process 124 (or the server 108 ) may incorporate the modified data 120 into the “new” web page sent to the first user 102 a.
- the process 124 replaces 302 the original data 118 for the new web page with the current data 122 .
- This “new” original data 118 is marked or tagged in a manner that indicates to the first user 102 a the differences between the current data 122 and the modified data 120 that the first user 102 a attempted to submit as a change to the current data 122 .
- the process 124 identifies 304 data, e.g., data fields, that did not change between the original data 118 and the current data 122 .
- the data that did not change is copied 306 into the “new” field data 116 for the new web page.
- the process 124 also identifies 308 data, e.g., data fields, that did change between the original data 118 and the current data 122 .
- the process 124 may identify the changed data concurrent with or separate from identifying the unchanged data.
- the data that did change is cached or tagged 310 (as described above) and added to the new field data 116 for the new web page.
- the data is added to the new field data 116 regardless of the state of the equivalent data in the modified data 120 . Any data in the modified data 120 that does not match the current data 122 is not tagged and added to the new field data 116 (unless the data in the modified data 120 changed between the original data 118 and the current data 122 as described above).
- the modified data 120 may not be applied to the current data 122 at this time because there may be a data field included in the modified data 120 that is semantically or otherwise linked to another data field included in the original data 118 (data that a user may modify). If another user modified that other data field, then the first user 102 a may want to readjust the data in the modified data 120 .
- a process 400 illustrates an example of two users (e.g., the first user 102 a and the second user 102 b ) accessing and editing a web page (e.g., the web page 114 ).
- the second user 102 b submits modifications to the web page 114 after the first user 102 a receives the web page 114 but before the first user 102 a submits its own changes to the web page 114 .
- the first user 102 a is thus given the opportunity to confirm his or her modifications.
- the first user 102 a requests 402 the web page 114 from the server 108 .
- the server 108 responds 404 to the first user 102 a with the requested web page 114 , dynamically populated with the current data 122 .
- the second user 102 b requests 406 the same web page 114 .
- the server 108 responds 408 to the second user 102 b with the requested web page 114 , dynamically populated with the current data 122 .
- the first user 102 a and the second user 102 b may not have received the same content on the web page 114 because the current data 122 may have changed between the first user's and the second user's requests.
- the second user 102 b modifies 410 some (or all) of the field data 116 included in the web page 114 and submits 412 the modifications to the server 108 .
- the modifications are submitted on the modified web page 114 ′ that includes the original data 118 and the modified data 120 .
- the server 108 receives 414 the modified web page 114 ′, compares the original data 118 with the current data 122 , and makes 416 changes as appropriate.
- the server 108 may also send confirmation to the second user 102 b before or after making any changes. Assuming here that the original data 118 and the current data 122 do not differ, the server 108 applies the second user's modifications to the web page 114 and updates the current data 122 .
- the first user 102 a also modifies 416 some (or all) of the field data 116 included in the web page 114 and submits 418 the modifications to the server 108 .
- the modifications are submitted on the modified web page 114 ′ that includes the original data 118 and the modified data 120 .
- the server 108 receives 420 the modified web page 114 ′ and compares the original data 118 with the current data 122 and finds that the original data 118 and the current data 122 differ.
- the original data 118 and the current data 122 differ at least because the second user's modifications altered the web page 114 and hence the current data 122 .
- the second user's changes are the only changes that have been applied to the web page 114 since the server 108 sent the web page 114 to the first user 102 a.
- the server 108 returns 422 to the first user 102 a the first user's modified data 120 in data fields that have not changed from the original data 118 originally sent to the first user 102 a and flags or otherwise indicates data fields that have changed by placing the current data 122 in those data fields (which are the data fields that changed due to the second user's modifications).
- the first user 102 a can evaluate 424 the web page 114 in light of the second user's modifications and can make and submit 426 any additional changes. Whether the first user 102 a makes any changes or not, the first user 102 a submits the original data 118 and the modified data 120 to the server 108 or otherwise confirms or rejects the modifications.
- the server 108 receives 428 the newly modified web page 114 ′ and compares the original data 118 with the current data 122 . For simplicity, assume that the web page 114 has not changed since the server 108 sent the web page 114 including the second user's modifications to the first user 102 a. The server 108 makes changes to the web page 114 and the current data 122 as appropriate and may send confirmation of the changes to the first user 102 a.
- the techniques described here are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment.
- the techniques may be implemented in hardware, software, or a combination of the two.
- the techniques may be implemented in programs executing on programmable machines such as mobile or stationary computers, personal digital assistants, telephones, pagers, and similar devices that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices.
- Program code is applied to data entered using the input device to perform the functions described and to generate output information.
- the output information is applied to one or more output devices.
- Each program may be implemented in a high level procedural or object oriented programming language, such as PERL, PHP, ASP, HTML, C, and other similar languages, to communicate with a machine system such as a computer system.
- PERL PERL
- PHP ASP
- HTML HyperText Markup Language
- C HyperText Markup Language
- the programs can be implemented in assembly or machine language, if desired.
- the language may be a compiled or interpreted language.
- Each such program may be stored on a storage medium or device, e.g., compact disc read only memory (CD-ROM), hard disk, magnetic diskette, or similar medium or device, that is readable by a general or special purpose programmable machine for configuring and operating the machine when the storage medium or device is read by the machine to perform the procedures described in this document.
- a storage medium or device e.g., compact disc read only memory (CD-ROM), hard disk, magnetic diskette, or similar medium or device, that is readable by a general or special purpose programmable machine for configuring and operating the machine when the storage medium or device is read by the machine to perform the procedures described in this document.
- the system may also be considered to be implemented as a machine-readable storage medium, configured with a program, where the storage medium so configured causes a machine to operate in a specific and predefined manner.
Abstract
Providing shared resources includes receiving modified data that is modified from a data field of a source version of a collection of data and other data of the source version of the collection of data, determining if the other data differs from current data included in a current version of a collection of data that corresponds to the other data, and if the other data does not differ, including the modified data in the current data.
Description
- This invention relates to providing shared resources.
- Users at different workstations may each have access to a set of shared resources. The set of shared resources can include one or more collections of data. Examples of the collections of data include an inventory database including a list of items for sale, the price of each of the items, the amount of each item currently in stock, and other similar information and a customer database including a list of customer accounts and names, addresses, payment information, order numbers, and other similar information associated with each of the accounts.
- Each user may log in to a system hosting the set of shared resources and gain the ability to edit all or parts of the set of shared resources. While one user is logged in to the system, other users may be prevented from accessing and/or editing all or part of the set of shared resources until that one user logs out of the system. Alternatively, any number of the users may be able to modify the shared resources in whole or in part at any given time. If a user makes a change to the set of shared resources, the user may not know if he or she is changing the most up-to-date version of the shared resources.
- FIG. 1 shows a network configuration.
- FIGS.2-3 are flowcharts showing processes of providing and modifying a web page.
- FIG. 4 is a flowchart showing a process of comparing current data on a web page with modified data on the web page.
- Referring to FIG. 1, a
network configuration 100 includes first andsecond users second workstations data 106 through aserver 108 across anetwork 110 usingcommunication links data 106. - For example, the
first user 102 a may request aweb page 114 hosted by theserver 108 that includes data from the collection ofdata 106. Data (static and/or dynamic) included in theweb page 114 is termedfield data 116. Thefirst user 102 a may be able to modify some or all of thefield data 116. The subset of modifiable field data, termedoriginal data 118, is cached for later use by theserver 108. Note that all of thefield data 116 may be modifiable, e.g., not read-only, in which case all of thefield data 116 is the same as theoriginal data 118. Thefirst user 102 a may modify some or all of thefield data 116 and return a modifiedweb page 114′ along with theoriginal data 118 and the modified field data, termed modifieddata 120, to theserver 108. - While the
first user 102 a viewed and modified theweb page 114, theweb page 114 may have been requested and modified by thesecond user 102 b. Thus, the collection ofdata 106 includescurrent data 122 that reflects the up-to-date, real-time data included in theweb page 114. Thecurrent data 122 may or may not be the same as theoriginal data 118 sent back to theserver 108 from thefirst workstation 104 a. When theweb page 114 was sent to thefirst workstation 104 a, however, theoriginal data 118 was the same as the current data 122 (although thecurrent data 122 can include more data than just theoriginal data 118, e.g., include additional databases) and/or data for other web pages. - Furthermore, the
server 108 may not maintain separatecurrent data 122 andfield data 116 in the collection ofdata 106 as shown in FIG. 1. Instead, when theserver 108 prepares theweb page 114 for transmission to thefirst user 102 a, theserver 108 gathers the appropriate data for theweb page 114 from thecurrent data 122 and places it into thefield data 116 for theweb page 114. - A
process 124 accessible by theserver 108 can compare theoriginal data 118 and the modifieddata 120 on the modifiedweb page 114′ with thecurrent data 122 for theweb page 114. In this way, theprocess 124 can determine whether thecurrent data 122 changed from when thefirst user 102 a requested theweb page 114 and therefore whether thefirst user 102 a made modifications to the current version of theweb page 114 or to an outdated version of theweb page 114. - If the
original data 118 matches thecurrent data 122, thenweb page 114 has not changed since thefirst user 102 a accessed theweb page 114. Theserver 108 can then incorporate the modifieddata 120 into thecurrent data 122. - If the
original data 118 varies from thecurrent data 122, then theweb page 114 changed since thefirst user 102 a requested theweb page 114. The first user's modifications may no longer be possible or desirable. Thus, theprocess 124 can give thefirst user 102 a the opportunity to confirm the modifications before theserver 108 incorporates the modifieddata 120 into thecurrent data 122. By enabling thefirst user 102 a to modify data on theweb page 114 and to confirm changes before they are made, thefirst user 102 a can modify theweb page 114 at his or her leisure, i.e., without locking out other users and without being forced to make changes within a certain window of time. In this way, thesecond user 102 b can access and modify theweb page 114 without waiting for thefirst user 102 a to finish modifying theweb page 114 or to log out of the system. - The
workstations network 110 and communicating with theserver 108 across thenetwork 110, such as a mobile computer, a stationary computer, a server, a personal digital assistant, a telephone, a pager, or other similar device. Thenetwork 110 can include any kind and any combination of networks such as the Internet, a local network, a private network, a public network, or other similar network. Theserver 108 can include any device capable of connecting to thenetwork 110 and executing theprocess 124 such as a file server, a mobile computer, a stationary computer, or other similar device. The communication links 112 a-112 c between theworkstations server 108 can be any kind and any combination of communication links such as modem links, cables, point-to-point links, infrared connections, fiber optic links, cellular links, Bluetooth, satellite links, or other similar links. Each of theworkstations server 108 may be remotely located from each other, capable of communicating only across thenetwork 110 using thecommunication links network configuration 100 is simplified for ease of explanation; thenetwork configuration 100 may include additional elements such as networks, communication links, proxy servers, firewalls or other security mechanisms, Internet Service Providers (ISPs), and other elements.) Theprocess 124 can be accessible by theserver 108 as shown, be included on the server 108 (e.g., as a stand-alone application or as part of another application), or otherwise be accessible to the server 108 (e.g., be included on a network accessible by the server 108). - The collection of
data 106 can be structured in any way. The collection ofdata 106 may include data of different structures. For example, the collection ofdata 106 could be structured as a database organized using a database management system, a relational database, a hypertext database, a distributed database, or other similar data structure. - One example of the
web page 114 is a web page including static data (unchangeable by the user) and dynamic data (changeable by the user) wrapped in presentation data such as borders and frames. Another example of theweb page 114 is a dynamic web page including a bulletin board, a guest book, or other similar interactive feature where users can submit information on theweb page 114, return the modifiedweb page 114′, and have the information almost immediately be included as part of the current version of theweb page 114. Another example of theweb page 114 is a product inventory page where sellers of various products can track the available numbers of those products at a central warehouse. When a seller sells one of the products, the seller can access the product inventory page (the web page 114), decrease the available amount of the product, and return that information on the modifiedweb page 114′ to theserver 108. - For simplicity, the
web page 114 is discussed here as a single web page. Theweb page 114 and the modifiedweb page 114′ can, however, each include any number of web pages, although the modifiedweb page 114′ typically would not include more web pages that theweb page 114. For example, theweb page 114 may include a number of product information web pages, each including different information, that each may be sent in response to different user inquiries. All of the product information web pages would not typically be sent to a single user in response to a single web page request from the user. Rather, the user would receive the appropriate one of the product information web pages. - Also for simplicity, only two users102 a-102 b are shown in FIG. 1; any number of users may interact with the web page 114 (as limited by the server's, the network's, and/or the communication links' capabilities). Furthermore, an administrator of the
server 108 may also be able to modify theweb page 114. - Referring to FIG. 2, a
process 200 shows one example of thefirst user 102 a at thefirst workstation 104 a accessing and modifying theweb page 114. Theprocess 200 begins with thefirst user 102 a requesting 202 theweb page 114. Thefirst workstation 104 a typically requests theweb page 114 from theserver 108 when thefirst user 102 a requests theweb page 114 through a web browser accessible through thefirst workstation 104 a, e.g., by entering in or clicking on a uniform resource locator (URL). - The
server 108 responds to the first workstation's request by transmitting 204 theweb page 114 to thefirst workstation 104 a. In creating theweb page 114 for transmission to thefirst workstation 104 a, theserver 108 can locate data for theweb page 114 in the collection ofdata 106. As explained above, theweb page 114 reflects thecurrent data 122 for theweb page 114 and includes thefield data 116 and theoriginal data 118. - The
server 108 differentiates thefield data 116 from theoriginal data 118 by caching theoriginal data 118 within theweb page 114 for later use by theserver 108 when theweb page 114′ is submitted by thefirst user 102 a. Theserver 108 can cache theoriginal data 118 into theweb page 114 with any caching technique, e.g., a hidden tagging technique such as applying hypertext markup language (HTML) tags, such as HTML meta tags, or standard generalized markup language (SGML) tags, to theoriginal data 118. Using hidden tags as an example, theserver 108 tags each item oforiginal data 118 that thefirst user 102 a may edit or modify. Thefirst user 102 a does not see the hidden tags on the displayed version of theweb page 114. - After receiving the
web page 114, thefirst user 102 a may modify 206 one or more data values/parameters/fields on theweb page 114 included in thefield data 116. This modified field data is the modifieddata 120. Thefirst user 102 a can then submit 208 the modifiedweb page 114′, including theoriginal data 118 and the modifieddata 120, to theserver 108. Any amount of time may lapse between the time that thefirst user 102 a receives theweb page 114 and the time that thefirst user 102 a makes and submits modifications to theserver 108. However, if thefirst user 102 a has time-limited access to theweb page 114 perserver 108 and/orworkstation 104 a configurations to prevent other users from modifying data, thefirst user 102 a would need to submit modifications before reaching his or her access time limit. If thefirst user 102 a does have time-limited access, thefirst user 102 a may make relatively fast modifications to theweb page 114, submit the changes to theserver 108, and request theweb page 114 again, which can effectively restart the access time limit. - The
server 108 receives the modifiedweb page 114′ from thefirst workstation 104 a. The element that actually receives the modifiedweb page 114′ at theserver 108, e.g., is the modified web page's destination, may be the server device itself or an application, script, macro, or other program included in or accessible by theserver 108 such as a PHP hypertext preprocessor or personal hypertext protocol (both abbreviated by PHP) application, a practical extension and report language (PERL) script, an active server pages (ASP) script, or other similar program. The application, script, macro, or other program may include or utilize theprocess 124. - The
server 108 compares 210 the original data 118 (including the modified data 120) sent by thefirst workstation 104 a with thecurrent data 122. Note that theprocess 124 need not compare all data fields included in thecurrent data 122 with theoriginal data 118. For example, theprocess 124 may exclude a time and date field including the current time and date from comparison because the time constantly changes and thus necessarily varies from theoriginal data 118 to thecurrent data 122. The comparison is performed in a mutually exclusive manner such that thecurrent data 122 may not be altered by theserver 108 during the comparison. This “lock-out” prevents near-synchronous modifications to theweb page 114 made and submitted to theserver 108 by another user from polluting thecurrent data 122 during the comparison. - It is possible that other data in the collection of
data 106 included in another web page maintained by the server 108 (including other parts of theweb page 114 if theweb page 114 includes multiple web pages) may have changed since thefirst user 102 a requested theweb page 114. The comparison, however, involves thecurrent data 122 as pertaining to theweb page 114, not other web pages (or other parts of theweb page 114 if theweb page 114 includes multiple web pages 114) so those other changes would not effect the first user's modifications or be affected themselves. - Note that the
process 124 executes this comparing and the subsequent actions discussed below and that theprocess 124 is part of, or accessible by, theserver 108 as described above. In that respect, theserver 108 may execute theprocess 124 or theprocess 124 may execute on another system. - If the
original data 118 is the same as thecurrent data 122, then the modifieddata 120 is applied 212 as a change to thecurrent data 122. In other words, the modifieddata 120 is included in thecurrent data 122 so that subsequent requests for theweb page 114 can include the modifieddata 120 as part of theweb page 114. Theprocess 124 may directly modify thecurrent data 122 or it may trigger theserver 108 or another mechanism to alter thecurrent data 122. (There may be a time lag in the time that the modifieddata 120 actually becomes a part of thecurrent data 122 in which case the most immediate subsequent requests for theweb page 114 may not return theweb page 114 with the modifieddata 120.) - The process124 (or the server 108) may send 214 a confirmation message or web page to the
first user 102 a confirming the modifications. A confirmation web page can includefield data 116 andoriginal data 118 reflecting thecurrent data 122 that now includes the first user's modifications. The confirmation web page can be structured like theweb page 114 and highlight or otherwise indicate the first user's modifications. The confirmation web page is typically sent to thefirst user 102 a after updating thecurrent data 122 because thefirst user 102 a modified data that did not change as a result of another user's (including a server administrator's) modifications to theweb page 114 from the time thefirst user 102 a originally requested theweb page 114. - The
server 108 works in a stateless system, meaning that theserver 108 processes each request for theweb page 114 without any information about previous requests for other web pages (including other web pages that may be included as part of the web page 114). Theserver 108 and theprocess 124 do not maintain information about a particular user's previous request(s) for theweb page 114. This is evidenced by thefirst user 102 a returning theoriginal data 118 to theserver 108 and theprocess 124 comparing theoriginal data 118 with thecurrent data 122. - The
server 108 could retain a record of theoriginal data 118 sent to thefirst user 102 a in the collection ofdata 106 and thefirst user 102 a could just return the modifieddata 120 without theoriginal data 118. In that case, theprocess 124 would compare the stored record of theoriginal data 118 associated with thefirst user 102 a with thecurrent data 122 before including the modifieddata 120 in thecurrent data 122. Retaining a record of theoriginal data 118 sent to each user that requests theweb page 114 can potentially require a large amount of storage space, and having each user return theoriginal data 118 reduces the amount of storage space that theserver 108 may need. Theserver 108 may also need to have a way of handling expired cached data. - If the
original data 118 is not the same as thecurrent data 122, then a new web page is sent 216 to thefirst user 102 a before any modifications are made to thecurrent data 122. This new web page includes a merger of the modifieddata 120 and thecurrent data 122. A further explanation of merging data into this new web page is discussed below with reference to FIG. 3. The new web page also indicates what changes were detected in the comparison. This indication may simply be the inclusion of the changed data on the new web page or may be a text message notifying thefirst user 102 a that some changes were detected. - After receiving the new web page, the
first user 102 a can accept or reject the modifications in light of the changes that were made to theweb page 114 since thefirst user 102 a originally accessed theweb page 114. Thefirst user 102 a may modify 206 the new web page and submit 208 the new web page, including the (newly) modifieddata 120 and the (new)original data 118, to theserver 108 as described above. Alternatively, thefirst user 102 a may not modify the new web page, in which case thefirst user 102 a may submit the same modifieddata 120 andoriginal data 118 as before. Theserver 108 then handles the user-submitted new web page. - Alternatively, the
first user 102 a may be given the option to click on an accept button or on a reject button on the new web page, or otherwise indicate acceptance or rejection, in which case information regarding the button clicked (or other indicator as appropriate) may be sent back to theserver 108. Theoriginal data 118 for the new web page would also be sent back to theserver 108 since thecurrent data 122 may have changed in the time that thefirst user 102 a accepts/rejects the new web page. Theserver 108 can then make changes to thecurrent data 122 as appropriate as described above. - Referring to FIG. 3, a
merger process 300 illustrates an example of how the process 124 (or the server 108) may incorporate the modifieddata 120 into the “new” web page sent to thefirst user 102 a. Theprocess 124 replaces 302 theoriginal data 118 for the new web page with thecurrent data 122. This “new”original data 118 is marked or tagged in a manner that indicates to thefirst user 102 a the differences between thecurrent data 122 and the modifieddata 120 that thefirst user 102 a attempted to submit as a change to thecurrent data 122. - The
process 124 identifies 304 data, e.g., data fields, that did not change between theoriginal data 118 and thecurrent data 122. The data that did not change is copied 306 into the “new”field data 116 for the new web page. - The
process 124 also identifies 308 data, e.g., data fields, that did change between theoriginal data 118 and thecurrent data 122. Theprocess 124 may identify the changed data concurrent with or separate from identifying the unchanged data. The data that did change is cached or tagged 310 (as described above) and added to thenew field data 116 for the new web page. The data is added to thenew field data 116 regardless of the state of the equivalent data in the modifieddata 120. Any data in the modifieddata 120 that does not match thecurrent data 122 is not tagged and added to the new field data 116 (unless the data in the modifieddata 120 changed between theoriginal data 118 and thecurrent data 122 as described above). The modifieddata 120 may not be applied to thecurrent data 122 at this time because there may be a data field included in the modifieddata 120 that is semantically or otherwise linked to another data field included in the original data 118 (data that a user may modify). If another user modified that other data field, then thefirst user 102 a may want to readjust the data in the modifieddata 120. - Referring to FIG. 4, a
process 400 illustrates an example of two users (e.g., thefirst user 102 a and thesecond user 102 b) accessing and editing a web page (e.g., the web page 114). In this example, thesecond user 102 b submits modifications to theweb page 114 after thefirst user 102 a receives theweb page 114 but before thefirst user 102 a submits its own changes to theweb page 114. Thefirst user 102 a is thus given the opportunity to confirm his or her modifications. - The
first user 102 a, through thefirst workstation 104 a, requests 402 theweb page 114 from theserver 108. Theserver 108 responds 404 to thefirst user 102 a with the requestedweb page 114, dynamically populated with thecurrent data 122. After the first user's request, thesecond user 102 b, through thesecond workstation 104 b, requests 406 thesame web page 114. Theserver 108 responds 408 to thesecond user 102 b with the requestedweb page 114, dynamically populated with thecurrent data 122. Thefirst user 102 a and thesecond user 102 b may not have received the same content on theweb page 114 because thecurrent data 122 may have changed between the first user's and the second user's requests. - The
second user 102 b modifies 410 some (or all) of thefield data 116 included in theweb page 114 and submits 412 the modifications to theserver 108. The modifications are submitted on the modifiedweb page 114′ that includes theoriginal data 118 and the modifieddata 120. Theserver 108 receives 414 the modifiedweb page 114′, compares theoriginal data 118 with thecurrent data 122, and makes 416 changes as appropriate. Theserver 108 may also send confirmation to thesecond user 102 b before or after making any changes. Assuming here that theoriginal data 118 and thecurrent data 122 do not differ, theserver 108 applies the second user's modifications to theweb page 114 and updates thecurrent data 122. - The
first user 102 a also modifies 416 some (or all) of thefield data 116 included in theweb page 114 and submits 418 the modifications to theserver 108. The modifications are submitted on the modifiedweb page 114′ that includes theoriginal data 118 and the modifieddata 120. Theserver 108 receives 420 the modifiedweb page 114′ and compares theoriginal data 118 with thecurrent data 122 and finds that theoriginal data 118 and thecurrent data 122 differ. Theoriginal data 118 and thecurrent data 122 differ at least because the second user's modifications altered theweb page 114 and hence thecurrent data 122. For simplicity, assume here that the second user's changes are the only changes that have been applied to theweb page 114 since theserver 108 sent theweb page 114 to thefirst user 102 a. - The
server 108 returns 422 to thefirst user 102 a the first user's modifieddata 120 in data fields that have not changed from theoriginal data 118 originally sent to thefirst user 102 a and flags or otherwise indicates data fields that have changed by placing thecurrent data 122 in those data fields (which are the data fields that changed due to the second user's modifications). In this way, thefirst user 102 a can evaluate 424 theweb page 114 in light of the second user's modifications and can make and submit 426 any additional changes. Whether thefirst user 102 a makes any changes or not, thefirst user 102 a submits theoriginal data 118 and the modifieddata 120 to theserver 108 or otherwise confirms or rejects the modifications. Theserver 108 receives 428 the newly modifiedweb page 114′ and compares theoriginal data 118 with thecurrent data 122. For simplicity, assume that theweb page 114 has not changed since theserver 108 sent theweb page 114 including the second user's modifications to thefirst user 102 a. Theserver 108 makes changes to theweb page 114 and thecurrent data 122 as appropriate and may send confirmation of the changes to thefirst user 102 a. - The techniques described here are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment. The techniques may be implemented in hardware, software, or a combination of the two. The techniques may be implemented in programs executing on programmable machines such as mobile or stationary computers, personal digital assistants, telephones, pagers, and similar devices that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code is applied to data entered using the input device to perform the functions described and to generate output information. The output information is applied to one or more output devices.
- Each program may be implemented in a high level procedural or object oriented programming language, such as PERL, PHP, ASP, HTML, C, and other similar languages, to communicate with a machine system such as a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
- Each such program may be stored on a storage medium or device, e.g., compact disc read only memory (CD-ROM), hard disk, magnetic diskette, or similar medium or device, that is readable by a general or special purpose programmable machine for configuring and operating the machine when the storage medium or device is read by the machine to perform the procedures described in this document. The system may also be considered to be implemented as a machine-readable storage medium, configured with a program, where the storage medium so configured causes a machine to operate in a specific and predefined manner.
- Other embodiments are within the scope of the following claims.
Claims (21)
1. A method comprising:
receiving modified data that is modified from a data field of a source version of a collection of data and other data of the source version of the collection of data;
determining if the other data differs from current data included in a current version of a collection of data that corresponds to the other data; and
if the other data does not differ, including the modified data in the current data.
2. The method of claim 1 further comprising transmitting the modified data to a location having access to the current data.
3. The method of claim 1 further comprising, if the other data does differ from the current data, enabling verification of the modified data before including the modified data in the current data.
4. The method of claim 3 further comprising receiving verification and including the modified data in the current data.
5. The method of claim 1 in which the collection of data includes a web page.
6. The method of claim 1 in which the other data includes hidden data.
7. An article comprising:
a machine-readable medium which stores machine-executable instructions, the instructions causing a machine to:
receive modified data that is modified from a data field of a source version of a collection of data and other data of the source version of the collection of data;
determine if the other data differs from current data included in a current version of a collection of data that corresponds to the other data; and
if the other data does not differ, include the modified data in the current data.
8. The article of claim 7 further causing a machine to transmit the modified data to a location having access to the current data.
9. The article of claim 7 further causing a machine to, if the other data does differ, enable verification of the modified data before including the modified data in the current data.
10. The article of claim 9 further causing a machine to receive verification and include the modified data in the current data.
11. The article of claim 7 in which the collection of data includes a web page.
12. The article of claim 7 in which the other data includes hidden data.
13. A system comprising:
a device configured to communicate with a network; and
a mechanism accessible by the device and configured to receive a web page across the network from a user including original data and modified data that is modified from the original data,
determine if the original data differs from current data included in a current version of the web page,
include the modified data in the current data if the original data does not differ from the current data, and
enable the user to verify the modified data before including the modified data in the current data if the original data does differ from the current data.
14. The system of claim 13 in which the mechanism is also configured to transmit the web page including the original data to the user.
15. The system of claim 13 in which the mechanism is also configured to transmit the current version of the web page to the user.
16. The system of claim 13 in which enabling the user to verify the modified data includes
inserting the modified data into the current version of the web page,
noting the differences between the original data and the current data on the current version of the web page,
transmitting the current version of the web page to the user, and
receiving verification of the current version of the web page from the user.
17. The system of claim 16 in which the mechanism is also configured to include the modified data in the current data after the user verifies the data modified from the original data.
18. A method comprising:
transmitting a web page including hidden data to a user;
receiving a web page from the user including the hidden data and modified data that is modified from the hidden data;
determining if the hidden data differs from current data included in a current version of the web page;
if the hidden data does not differ from the current data, including the modified data in the current version of the web page;
if the hidden data does differ from the current data, enabling the user to verify the data modified from the hidden data before including the modified data in the current version of the web page.
19. The method of claim 18 further comprising transmitting the current version of the web page to the user.
20. The method of claim 18 in which enabling the user to verify the data modified from the hidden data includes inserting the modified data into the current version of the web page,
noting the differences between the hidden data and the current data on the current version of the web page,
transmitting the current version of the web page to the user, and
receiving verification of the current version of the web page from the user.
21. The method of claim 20 further comprising, after receiving verification of the current version of the web page from the user, including the modified data in the current version of the web page.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/758,491 US6917950B2 (en) | 2001-01-10 | 2001-01-10 | Modifying a shared resource |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/758,491 US6917950B2 (en) | 2001-01-10 | 2001-01-10 | Modifying a shared resource |
Publications (2)
Publication Number | Publication Date |
---|---|
US20020091721A1 true US20020091721A1 (en) | 2002-07-11 |
US6917950B2 US6917950B2 (en) | 2005-07-12 |
Family
ID=25051915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/758,491 Expired - Fee Related US6917950B2 (en) | 2001-01-10 | 2001-01-10 | Modifying a shared resource |
Country Status (1)
Country | Link |
---|---|
US (1) | US6917950B2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093427A1 (en) * | 2001-11-09 | 2003-05-15 | Wen-Lian Hsu | Personalized web page |
US20050131885A1 (en) * | 2003-12-12 | 2005-06-16 | Jun Komatsu | Information processing apparatus and method, and program |
US20060117320A1 (en) * | 2004-12-01 | 2006-06-01 | Bea Systems, Inc. | Sharing dynamically changing resources in software systems |
US7107336B2 (en) * | 2001-02-23 | 2006-09-12 | International Business Machines Corporation | Method and apparatus for enhanced server page execution |
US20070185927A1 (en) * | 2006-01-27 | 2007-08-09 | International Business Machines Corporation | System, method and computer program product for shared user tailoring of websites |
US20090144513A1 (en) * | 2007-12-03 | 2009-06-04 | Pitney Bowes Inc. | Database update method |
US20150120804A1 (en) * | 2013-10-24 | 2015-04-30 | Jeffrey T. Eschbach | Method and system for capturing web content from a web server |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069192B1 (en) * | 2000-08-25 | 2006-06-27 | Hewlett-Packard Company | CAD system |
US7533386B2 (en) * | 2001-09-28 | 2009-05-12 | Siebel Systems, Inc. | Computing system and method to perform run-time extension for world wide web application |
US7853933B2 (en) * | 2001-09-29 | 2010-12-14 | Siebel Systems, Inc. | Computing system and method to perform compile-time extension for world wide web application |
US20030177232A1 (en) * | 2002-03-18 | 2003-09-18 | Coughlin Chesley B. | Load balancer based computer intrusion detection device |
US7634729B2 (en) * | 2002-11-10 | 2009-12-15 | Microsoft Corporation | Handwritten file names |
US7284200B2 (en) * | 2002-11-10 | 2007-10-16 | Microsoft Corporation | Organization of handwritten notes using handwritten titles |
US7451321B2 (en) * | 2003-10-07 | 2008-11-11 | Joseph Ernest Dryer | Electronic signature management method |
US20070168975A1 (en) * | 2005-12-13 | 2007-07-19 | Thomas Kessler | Debugger and test tool |
US7653640B2 (en) * | 2006-07-31 | 2010-01-26 | Microsoft Corporation | Two-way and multi-master synchronization over web syndications |
US8832303B2 (en) * | 2007-06-15 | 2014-09-09 | Sony Corporation | Method and apparatus for creating dynamic phone pages due to triggering events from an external source |
US20090106322A1 (en) * | 2007-10-18 | 2009-04-23 | Chen Jen-Yeu T | Two-set method for avoiding data loss when multiple users simultaneously edit the same data |
US8245192B1 (en) * | 2008-11-18 | 2012-08-14 | Sprint Communications Company L.P. | Independent software development zones |
US8718978B2 (en) * | 2011-02-28 | 2014-05-06 | Apple Inc. | Performance logging framework |
US9395979B1 (en) | 2012-12-20 | 2016-07-19 | Sprint Communications Company L.P. | Pre-emptive development conflict resolution |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832514A (en) * | 1996-06-26 | 1998-11-03 | Microsoft Corporation | System and method for discovery based data recovery in a store and forward replication process |
US5870733A (en) * | 1996-06-14 | 1999-02-09 | Electronic Data Systems Corporation | Automated system and method for providing access data concerning an item of business property |
US6282175B1 (en) * | 1998-04-23 | 2001-08-28 | Hewlett-Packard Company | Method for tracking configuration changes in networks of computer systems through historical monitoring of configuration status of devices on the network. |
US20020080170A1 (en) * | 2000-03-13 | 2002-06-27 | Goldberg Elisha Y. | Information management system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5008853A (en) * | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
US6366933B1 (en) * | 1995-10-27 | 2002-04-02 | At&T Corp. | Method and apparatus for tracking and viewing changes on the web |
US5729743A (en) * | 1995-11-17 | 1998-03-17 | Deltatech Research, Inc. | Computer apparatus and method for merging system deltas |
US5926816A (en) * | 1996-10-09 | 1999-07-20 | Oracle Corporation | Database Synchronizer |
US6012087A (en) * | 1997-01-14 | 2000-01-04 | Netmind Technologies, Inc. | Unique-change detection of dynamic web pages using history tables of signatures |
US5898836A (en) * | 1997-01-14 | 1999-04-27 | Netmind Services, Inc. | Change-detection tool indicating degree and location of change of internet documents by comparison of cyclic-redundancy-check(CRC) signatures |
US6324587B1 (en) * | 1997-12-23 | 2001-11-27 | Microsoft Corporation | Method, computer program product, and data structure for publishing a data object over a store and forward transport |
US6393437B1 (en) * | 1998-01-27 | 2002-05-21 | Microsoft Corporation | Web developer isolation techniques |
US6324544B1 (en) * | 1998-10-21 | 2001-11-27 | Microsoft Corporation | File object synchronization between a desktop computer and a mobile device |
US6449622B1 (en) * | 1999-03-08 | 2002-09-10 | Starfish Software, Inc. | System and methods for synchronizing datasets when dataset changes may be received out of order |
US6401103B1 (en) * | 1999-08-06 | 2002-06-04 | International Business Machines Corporation | Apparatus, method, and article of manufacture for client-side optimistic locking in a stateless environment |
WO2001055831A1 (en) * | 2000-01-25 | 2001-08-02 | Autodesk, Inc. | Method and apparatus for providing access to and working with architectural drawings on the internet |
-
2001
- 2001-01-10 US US09/758,491 patent/US6917950B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870733A (en) * | 1996-06-14 | 1999-02-09 | Electronic Data Systems Corporation | Automated system and method for providing access data concerning an item of business property |
US5832514A (en) * | 1996-06-26 | 1998-11-03 | Microsoft Corporation | System and method for discovery based data recovery in a store and forward replication process |
US6282175B1 (en) * | 1998-04-23 | 2001-08-28 | Hewlett-Packard Company | Method for tracking configuration changes in networks of computer systems through historical monitoring of configuration status of devices on the network. |
US20020080170A1 (en) * | 2000-03-13 | 2002-06-27 | Goldberg Elisha Y. | Information management system |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107336B2 (en) * | 2001-02-23 | 2006-09-12 | International Business Machines Corporation | Method and apparatus for enhanced server page execution |
US20030093427A1 (en) * | 2001-11-09 | 2003-05-15 | Wen-Lian Hsu | Personalized web page |
US7099870B2 (en) * | 2001-11-09 | 2006-08-29 | Academia Sinica | Personalized web page |
US20050131885A1 (en) * | 2003-12-12 | 2005-06-16 | Jun Komatsu | Information processing apparatus and method, and program |
US20060117320A1 (en) * | 2004-12-01 | 2006-06-01 | Bea Systems, Inc. | Sharing dynamically changing resources in software systems |
US7689999B2 (en) * | 2004-12-01 | 2010-03-30 | Bea Systems, Inc. | Sharing dynamically changing resources in software systems |
US20070185927A1 (en) * | 2006-01-27 | 2007-08-09 | International Business Machines Corporation | System, method and computer program product for shared user tailoring of websites |
US7676505B2 (en) * | 2006-01-27 | 2010-03-09 | International Business Machines Corporation | System, method and computer program product for shared user tailoring of websites |
US20090144513A1 (en) * | 2007-12-03 | 2009-06-04 | Pitney Bowes Inc. | Database update method |
US20150120804A1 (en) * | 2013-10-24 | 2015-04-30 | Jeffrey T. Eschbach | Method and system for capturing web content from a web server |
US9729410B2 (en) * | 2013-10-24 | 2017-08-08 | Jeffrey T Eschbach | Method and system for capturing web content from a web server |
Also Published As
Publication number | Publication date |
---|---|
US6917950B2 (en) | 2005-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6917950B2 (en) | Modifying a shared resource | |
US7467183B2 (en) | Method, apparatus, and user interface for managing electronic mail and alert messages | |
KR101444389B1 (en) | Message catalogs for remote modules | |
US10498847B2 (en) | System and method for mobile application deep linking | |
US9569074B2 (en) | Method and system for using an intermediary server | |
US7349929B2 (en) | Accessing data based on user identity | |
US7426543B2 (en) | Accessing data stored in multiple locations | |
US8452925B2 (en) | System, method and computer program product for automatically updating content in a cache | |
US7730082B2 (en) | Remote module incorporation into a container document | |
KR100791430B1 (en) | Method and system for network caching | |
US20150169514A1 (en) | Module Specification for a Module to be Incorporated into a Container Document | |
US20030158953A1 (en) | Protocol to fix broken links on the world wide web | |
US7506069B2 (en) | Accessing data in a computer network | |
CN111066012A (en) | Web presentation pages of links associated with top-level domains | |
US20140181129A1 (en) | System and method for providing an updating on-line forms and registrations | |
US8856094B2 (en) | Remote segmentation system and method | |
US8364688B1 (en) | System and method for providing and updating on-line forms and registrations | |
Σαπουντζή | Progressive web apps: development of cross-platform and cross-device apps using modern web architectures and technologies | |
Cardoso | Realtime Web Analytics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MCBRIDE, AARON A.;WATSON, DAVID B.;BURR, DALE E.;REEL/FRAME:011453/0148 Effective date: 20010109 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
SULP | Surcharge for late payment |
Year of fee payment: 7 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20170712 |