RussianPatents.com
|
Multi-client collaboration to access and update structured data elements. RU patent 2504001. |
|||||||||||||||||||||
IPC classes for russian patent Multi-client collaboration to access and update structured data elements. RU patent 2504001. (RU 2504001):
|
FIELD: information technology. SUBSTANCE: disclosed is a method of providing multi-client collaboration on structured data elements which comprises steps of: receiving at least one structured data element within a spreadsheet published at least in part in a first client system; defining a corresponding unique identifier; sending said at least one structured data element and said corresponding unique identifier to a master table; entering said at least one structured data element into the master table; calculating a value of said at least one structured data element; distributing said at least one structured data element and calculated value from the master table to a second client system and distributing the calculated value from the master table to the first client system; receiving a request to edit the master table; in response to receiving a request to edit the master table, determining whether the user making said request has privileges to edit the master table; if so, said changes are applied to the master table scheme and said changes to the master table scheme are synchronised with the first and second client systems. EFFECT: providing multi-client collaboration on structured data elements. 12 cl, 7 dwg
Prior art For many reasons, the users of computer systems and applications become more geographically separated or distributed from each other. Despite this distance or separation, these users may wish to work together on various projects over which they can work. Various applications and utilities can support cooperation to some extent; however, this field is further developments and improvements. The essence of the invention Disclosed tools and techniques for ensuring collaboration between multiple clients to access and update structured data elements. Clients («clients») may represent the user interfaces that provide a library of published data elements that are available for collaboration. Clients can request the selected data items, Recalling unique identifiers associated with the selected data items. Those clients, who publish data elements for a joint work of the other, can provide user interfaces that provide appropriate representation of structured data items, and receive the election of those data items selected for publication. Engaged in publishing customers can then send the selected data items for publication. Client systems can interact with servers or services to work together, which can take structured data elements which published clients to access other. Servers can set the appropriate unique identifiers for published items, the data can send structured data elements and the corresponding unique identifiers for different client systems. The above invention may also be effected as a method, computer-controlled device, computer process, computer system or as a commercial product, such as a machine-readable medium. These and various other features will be obvious from reading the following Detailed Description and view the attached drawings. Section summary of the invention is provided to familiarize with the compilation of concepts in a simplified form, which further described below in the Detailed Description. This is a brief summary of the invention is not intended to identify the key characteristics of the essential features of the claimed invention and it is not envisaged that this brief summary of the invention is used to limit the scope of the claimed invention. Moreover, the claimed invention is not limited to implementation options that solve any or all of the deficiencies identified in the disclosure. Brief description of drawings Fig. 1 is a block diagram illustrating the system or operating environment, which give the opportunity to work for multiple clients to access and update structured data elements. Fig. 2 is a United bloc, data and block diagram of the sequence of operations processes to provide the possibility of working together to client systems to access structured main data from the server. Fig. 3 is a United bloc, data and block diagram of the sequence of operations processes to provide opportunities client systems to use local specifications to structured data elements. Fig. 4 represents a consolidated block, the data and a block diagram of the sequence of processes to handle changes or modifications carried out in relation to these core tables within various customer table. Fig. 5 is a block diagram to illustrate examples of the structure of the main table, shared between two or more structures of the client tables. Fig. 6 is a block diagram showing the updates that can occur when one of the client tables modifies data that were consumed from the main table. Fig. 7 is a block diagram illustrating updates that can be distributed from the main table of updates from one of the client table. Detailed description Following the detailed description is aimed at technology to provide possibility of joint work for multiple clients to access and update structured data elements. The term «structured data elements» is used in this application, without limiting the possible options for implementation, as referring to the data elements that take place within the context of the entire organizational chart. For example, these arrangements can be implemented within a spreadsheet or their components. These components of a spreadsheet can include workbooks, tables, rows, columns, cells or parts of it. Without limiting the possible options for implementation and only to facilitate this discussion, the following hierarchy is presented in respect of terminology illustrative of the spreadsheet: An example of the term spreadsheet Conceptual description Illustrative Role WorkbookModel, the Report or the Application Provides the context in which the table can function. Formulas can refer to the Table. Within the Main Table of the formula inside of the Main Table can reference other data in a workbook, which actually are not in the Main Table TableStructure of the joint work according to Users can work together on the same Table, and different users can have different workbooks. Description of this application may provide for the common work between users on the Table level Row identifier Column ID data points Identifies the data point so that changes relative to Table were applied to the same logical Data/Cell in various workbooks, supported by different users CellPoint data Individual value data Although the present invention described here, is presented in the General context of the program modules which are executed in conjunction with the execution of the operating system and application programs in a computer system, experts in the art to understand that other options for implementation may be performed in combination with other types of software modules. In General, software modules include procedures, programs, components, data structures and other types of structures that perform specific tasks or conduct specific abstract data types. Furthermore, specialists in the art becomes clear what is described here invention can be implemented with different configurations of computer systems, including handheld devices, multi-processor systems based on the microprocessor or soft consumer electronics, mini-computers, General-purpose computing machine etc. The following detailed description, reference is made to the accompanying drawings that are part of the description and shown in the form of illustrative specific variants of the incarnation or examples. With reference to the drawings, in which the same reference position denote these items in several shapes will be described aspects of the tools and techniques for collaborative work for multiple clients to access and update structured data elements. Fig. 1 illustrates the system or operating environment, marked, in General, the position 100, which gives the opportunity for multiple client systems jointly access and update structured data elements. These systems 100 may include one or more server systems 102, and Fig. 1 provides two examples of servers under item 102a and 102n (together, servers 102). However, implementation of this description can include any number of servers. Servers 102 can communicate with one or more client systems 104 Fig. 1 provides two examples of client systems, the marked positions 104a and 104n (together, the client systems 104). The server and client systems can communicate with each other by one or more networks 106, which can be a local or global network created using any suitable signaling technologies and networks. Network 106 may include, for example, the Internet. These networks can provide wireless and/or wired connection. Servers and clients can communicate with networks 106 through appropriate line 108 communication. Fig. 1 illustrates the line 108a, 108b, 108c and 108n due, associated, respectively, with servers 102a and 102n and clients 104a and 104n. These line 108 are hardware and/or software components that allow the server and client systems to connect to networks. These components can include network adapters, Protocol stacks, and the like. Turning to the servers 102 in more detail, servers may include one or more processors 110, which may be a particular type or have a specific architecture, selected as suitable for concrete variants of realization. Processors 110 can join one or more systems 112 tires selected for compatibility with the Intel 110. Servers 102 might include one or more instances readable computer media 114 data, which are connected to the systems 112 tires. System bus processors provide the ability to 110 read the code and/or data from/to a readable computer media 114 data. Media 114 may constitute a storage elements, implemented by any appropriate technology including, but not limited to, semiconductors, magnetic materials, optics, etc. Media 114 portions of memory that can be classified as RAM, ROM, flash memory, or other types, and can also be hard disks. Media 114 data may include one or more modules 116 instructions that while they are being loaded into the processor 110 and performance prescribe server 102 provide a set of services to client systems, which provide possibility of joint work for multiple clients to access and update structured data elements. As detailed throughout this description these server collaboration services can provide the possibility for one or more users (shown in subsequent drawings) on the client systems to access structured data stored within the main table 118. This description provides examples concerning structural data in the context of the application of the spreadsheet, but the principles described in this application could be extended to other applications, not deviating from the extent and nature of this description. In General modules 116 collaboration services control access and transfer data to and from the main table 118, as indicated by the dashed line 120. Turning to the client systems to 104 in more detail, the client system can include one or more processors 122. These processors can be selected as suitable for client systems can be the same or different types), or have similar or different kinds of architecture in relation to the processors 110 in servers. Processors 122 may join one or more systems 124 tires selected for compatibility with the Intel 122, and thus may be the same or different type or to the same or different architecture in relation to systems 112 tyres in servers. Client systems may include one or more copies of a computer-readable media 126 data, which are connected to the systems 124 tyre. 124 tyre can afford processors 122 read the code and/or data from/to a readable computer media 126 data. General descriptions of the media 114 data, generally applicable to holders 126 storage, and thus not been repeated here. Media 126 data may include one or more modules 128 instructions that while they are being loaded into the processor 122 and performance, prescribe client systems 102 interact with server modules 116 to ensure collaboration services. As detailed throughout this description, these client joint services can ensure that users on client systems download structured data from the main table 118 in the client, or local, table 130. In General modules 128 joint services control access and transfer data to and from the customer table 130, as indicated by the dashed line 132. As illustrated in Fig. 1 server services 116 and client services 128 can interact to ensure the possibility of threads sequences performed operations take place between servers and client systems, either generally represented with a dotted line 134. Subsequent drawings and the description additionally specify flows 134 of the performed activities, collaboration, but these flows of operations performed in the General represent flows of commands, data streams and other processing referred to client systems 104 (and associated users), jointly working on structured data stored on servers located at 102. Although Fig. 1 specifies the server components 102n and client system 104n, these descriptions can equally be applied to servers 102a and client system 104a. These descriptions may also refer to a server or a client systems, which are not shown in Fig. 1, but may be included in the options for implementation secured technologies here. Describing a system or operating environment 100, as shown in Fig. 1, the discussion moves on to the descriptions of the process and data streams associated with the joint work for multiple clients to access and update structured data elements, now presented in Fig. 2. In particular Fig. 2 illustrates the process and data flows identified in General position 200, to enable client systems to jointly administer the access to structured main data from the server. For ease of description, but not limited to the possible implementation options Fig. 2 may transfer the reference position with previous drawings for links to these items. Fig. 2 transfers examples client tables 130, with exemplary customer table 130a associated with the client system 104a, with Fig. 1, and exemplary customer table 130n associated with the client system 104n. Fig. 2 transfers approximate the main table 118 associated with the server 102. The relevant instances of the client joint services 128a and 128n managing client tables 130a and 130n, and server-side joint services 116 control the main table 118. Fig. 2 also provides instances flows 134 sequences of operations performed collaboration with these flows 134a performed operations are transferred to/from the client joint service 128a and flows 134n performed operations are transferred to/from the client joint service 128n. When viewing Fig. 2 it is clear that the various data streams, which are shown in Fig. 2, additionally specify flows 134a and 134n performed operations collaboration. Referring to the process and threads 200 data in more detail, unit 202 represents the client system (for example, the client system 104n associated with customer service 128n), representing the user interface (UI)that allows the user to make a request to one or more of structured data elements were published with the client system to the server. Examples of such structured data elements may include tables that represent sets of data structures, placed in rows and columns, cells, defined in their intersections. These cells can contain data, formulas, or labels, as selected or programmed users. Unit 202 may include the provision of UI in response to an explicit user command, or may include the provision of user interface (UI) automatically in response to some set of conditions. In response to the UI given in box 202, user 204 can select one or more tables for publication. For example, a user may have programmed many different tables or spreadsheets to perform various functions, and can choose one or more of these tables or worksheets for publication to allow other users to cooperate in these tables or worksheet. The user may decide to publish multiple tables outside of the same workbook. The user can select all the tables or worksheets for publication or may choose part of them. Fig. 2 shows such elections table position 206, and block 208 processing is the admission of these elections 206. For example, a block 208 may include indications of mouse clicks, elections or other response from the user that is presented in corresponding signals and/or events, as passed to the hardware and/or software. Block 210 represents a parcel or package tables, which the user has selected for publication. Fig. 2 shows the selected table position 212. Although not explicitly indicated in Fig. 2, blocks 202, 208 and 210 can be repeated any number of times to allow users to select multiple instances of structured data to be published to other users. On the server associated with the server service 116, block 214 is a parcel of one or more client systems notices that a table (for example, 212) have been published and are available for consumption. Without limiting the possible variants of implementation, the term «publication»as used herein may relate to the placement of tables in a common pool or library, where any number of other clients (and/or relevant users) can review the published tables and choose one or more of these tables for joint work. In the options for the implementation of this pool or library published tables may be open, in the sense that an undetermined number of clients or users can access the library and receive shared copies of tables for the implementation of the joint work. When a customer publishes a table, the client may not know what other customers, ultimately share a published table. Server systems and client systems can define one or more protocols, which organize a set of suitable data elements, such as tables, information structures collaboration, or any part thereof, as shown in the sample hierarchical structure above), which are available for selection client systems. These protocols can identify which of these bets data were selected specific client systems. For example, these protocols can arrange appropriate data elements and can associate a unique identifier with relevant from the appropriate data elements. For ease of reference, but not to restrict the possible variants of implementation, this description applies to the corresponding unique identifier of the data points that are associated with these bets data. So a block 214 may include binding with the relevant instances of these identifiers with elements within the available tables 216, which are published from the server systems for client systems. Services and 116 128 collaboration support these identifiers are hidden from users, while users clearly want to see IDs. In addition, services 128n collaboration associated with publishing or client can accept identifiers associated with these tables, published or with a particular customer, to facilitate the subsequent monitoring and coordination of changes regarding those published or laid tables. On another client system (for example, 104a)associated with customer service 128a, block 218 depicts the idea of the UI that provides tables, spreadsheets or other structured data elements that have been published by other clients and, thus, are available for consumption by the client system 104a. User 220 associated with the client system 104a, can be viewed UI and choose one or more of the available structured data elements represented in the UI. Fig. 2 represents these elections position 222. In turn, block 224 module represents 128a client services, receiving elections structured data elements (for example, tables, worksheets, rows, columns, or other structures such structured data elements) from the user. For example, a block 224 (like the above block 208) may include indications of mouse clicks, elections or other reactions from the user that is presented in corresponding signals and/or events, as passed to the hardware and/or software. Block 226 is a client system sends indication of what tables the user selected. After the user selects one or more of these available tables, block 226 may notify the server system about which tables or data elements chosen by the user, as indicated by the position of 228. These notifications or display 228 may include identifiers of selected data elements, as shown in Fig. 2. On server systems that support the main table 118, block 230 is receiving elections 228 from client systems. As noted above, the elections 228 can refer to one or more identities corresponding to the selected data items. In turn, block 232 is to retrieve selected data items from the main table (for example, 118). Block 232 may include the use of input identifiers included in the election 228 in the form of indexes in the main table. Block 234 represents a parcel of selected data items on the client system, which has requested these data elements. Figure 2 represents these transferred data elements position 236. On client systems 238 block is receiving the required data items that the user has previously selected (that is, elections 222). Fig. 2 illustrates an example where clients table 130a adopts the elements of the data published from another customer table 130n. However, it should be noted that any number of client tables may request and receive items of data published from the customer table 130n, now as illustrated in Fig. 3. In addition, any number of client tables can publish data elements for collaboration with other users. For the clarity of the description, but not to limit the description of the process and threads 200 data continues to work with Fig. 3, as indicated by the reference outside the main illustrations appearing in Fig. 2. Discussion now moves to the Fig. 3 continue the description. Fig. 3 illustrates the process and data flows, in General, marked the position of 300 to enable client systems to use local formatting to structured key data taken from the server. For ease of description, but not to limit the possible implementation, Fig. 3 may transfer the reference position with previous drawings for links to these items. As shown in Fig. 3, clients table 130a is transferred from Fig. 2. Fig. 3 also provides another client table 130m, supported by another client system, assuming that this other client system also requested and received one or more items of data from the server system. Fig. 3 illustrates the client joint services 128m that support customer table 130m. Data elements adopted by the customer table 130m, may or may not be the same as those required and taken the client table 130a. Turning to the customer table 130a, processing Fig. 2 can go to the block 302, which represents the merging of data elements, taken from the primary table with the local client table 130a. For example, clients table 130a can support some of the data that is private or local to the user associated with the client table 130a, and may ask for some elements of the published data elements to complement local or private data. Block 302 may, therefore, include the integration of published data elements (for example, 236 Fig. 2)that is taken from the server systems, in any local/proprietary information saved in the client table 130a. Block 302 may also include keeping any information identifiers, or indexes adopted with published data elements, with the integration of these data elements in the customer table 130a. As stated below, information identifiers or indexes can provide the opportunity to track the changes made locally within the client table 130a, and can enable the delivery of reports about these changes back to back-end systems and distribution of these changes on multiple systems working together customers. Unit 304 is the application of any local formatting, sorting, filtering or other local settings as requested local user (for example, 220). For example, a local user may request that his or her data were presented with a certain color, borders, shading, etc. In another example, a local user can issue commands to the sorting of the local table in some way. In another example, the local user can issue commands to filter or hide some data in a local table. Unit 306 depicts representing the local user table 220, using any locally defined formatting, filtering, sorting or other operations to the local table and doing the integration of all components of the basic data received from server systems. Unit 306 may include a selection or other indication elements of the basic data to a local user 220 could easily understand what the data is local and what data are external (i.e. those that occur from the server system (or other client systems). Fig. 3 represents the position of the 308 local table presented to the user 220, in response to local specifications 310 (for example, formatting, sorting, filtering, or similar settings). Turning to another host client table 130m and related services 128m collaboration blocks 312, 314 and 316 correspond to the processing described in blocks 302, 304 and 306 as accomplished for other local client table 130m. In particular, the block 314 may include formatting, sorting, filtering or other local configuration of the local client table 130m in response to local specifications or command, 318, user-defined 320. Fig. 3 represents the position 322 local table presented to the user 320. However, local specifications 310 for local client table 130a may differ from local specifications 318 for the local client table 130m. In this case, the client system (specifically, service 128a and 128m) may provide an opportunity for users to 220 and 320 configure their local tables 130a and 130m differently according to their own specifications. For example, users 220 and 230 can sort or filter their local tables 130a and 130m differently. As shown by dashed lines 324 and 326, local tables 130a and 130m may include, at least some elements of the core data that is taken from the server system, with elements of the master data, integrable in local tables. Identifiers can serve for identification and organization of the elements of basic data within local tables. For ease of illustration, but not limited to possible options for implementation, the description of the process and threads 300 data continued in Fig. 4 as indicated illustrated in Fig. 3 reference beyond the page. Starting from a link off the page with Fig. 3, block 402 is acceptance of one or more commands from the user (for example, user 220). In General, these commands may be of any updates for client table 130a, aimed either local or private data, or the basic data received from server systems. Fig. 4 refers to these commands in General position 404. In instances where the user has already updated data elements adopted from the main table, unit 406 represents a parcel data updates main table to the server system (for example, services 116). Fig. 4 refers to these updates position 408, and these updates may refer to identifiers match the items of data that has changed at the client level. Update 408 may include appropriate entries file changes, which may include identifiers that link to the affected column and the new value. Changes can be packaged for efficiency. The changes can when the client disconnects from the network or otherwise is offline. On the server system block 410 is receiving updates 408 relative to the base table. In turn, block 412 represents the merging of these updates received from the client systems with the primary table. Block 412 may include removing the identity of the updates 408, the implementation of access to a part of the main table (for example, 118), which meet the specified ID, and update the relevant parts of the main table. Turning to the component 128m joint services, the services component can give another user (for example, 320) update customer table (for example, 130m in Fig. 3), which is managed by this component 128m. More specifically block 414 represents a welcome update commands from the user 320 outlined in Fig. 4 position 416. In response to commands 416 component 128m services can update customer table, respectively. As discussed above in relation to the unit 402, these updates may include updates towards local/private data and master data updates contained in the client table. In cases where user commands result in changes of elements of the basic data unit 418 is a parcel of any such updates server system, which is associated with the items of the basic data. Fig. 4 refers to these updates position 420. Back to back-end services 116 collaboration block 410 (described above) may include updates from the component 128a client services, but also from the component 128m client services. In other words, block 410 may include updates 408 and/or updates 420, as well as updates from other clients that are not shown on Fig. 4. In addition, the block 412 may include the integration or unification of these updates in the main table, supported by the server system. Identifiers can facilitate this integration or unification by identifying which part of the basic data have been changed on client systems. Collected on all client systems, these identifiers would indicate which parts master data to be updated and republished for clients. Block 422 is the publication of updates for the main table for different customers. More specifically, assuming that the component 128m client services changed some basic data associated with the server system, block 422 may include the publication of these changes or updates to a component 128a client services. Block 422 may also include the publication of these changes for any other client systems that subscribed to this basic data. In the context of the HTTP (Hyper text transfer Protocol) block 422 may involve backend services that respond to the survey from clients. Similarly, if a component 128a client services has made changes in some of the core data that are associated with the server system, then the block 422 may include the publication of these changes for the component 128m client services and any other client systems that subscribed to this basic data. Fig. 4 indicates the position 424 update the main tables that are published for the component 128a of the client services and position 426 refers to upgrading the master table which are published for the component 128m client services. These updates may refer to the IDs of the main tables, which are under the influence of specific changes. Turning to another component 128m client service units 434, 436 and 438 correspond, in General, block 428, 430 432. So a block 434 is receiving updates 426 main table, block 436 represents the merging of these updates in a local visual display of data on the client system and block 438 depicts the presentation of these combined updates to the user on the client system. On both client systems components 128a and 128m client services have unlimited repeat blocks shown in Fig. 4 because users 220 and 320 continue to interact with the data submitted to them. Thus, the component 128a client services can repeat blocks 402, 406, 428, 430 432 any number of times, as indicated by the arrow 440. Similarly, component 128m client services can repeat blocks 414, 418, 434, 436 and 438 any number of times, as indicated by the arrow 442. According to the above method of multiple clients can share access to shared data elements (such as tables in a spreadsheet). In some cases, multiple clients can access to these shared data elements simultaneously. In other cases, some clients may be offline, and any changes made in the state of offline shall be agreed in the next time a customer enters the state of online. Updates can occur simultaneously, in sequence one after another or asynchronously with each other. Any of these clients can update these shared data elements, with updates made by one client, subject to any other clients that share the use of the same data elements. Server system can unite and coordinate these updates or changes, using the identifiers assigned to the shared data elements. Describing flows of 200, 300 and 400 of the process in Fig. 2-4, discussion now moves to the description of working examples of the techniques above to ensure the possibility of joint work for multiple clients to access and update structured data elements that appears now to be together with Fig. 5-7. Fig. 5 illustrates the examples identified in General position 500, the structure of the main table, split between two or more structures of the client tables. For ease of illustration, but not limited to the possible implementation options Fig. 5-7 may carry the reference position with previous drawings to refer to these items. For example, a component 128a client services can manage client table 130a, component 116 core services can manage the main table 118 and component 128m client services can manage client table 130m. For ease of reference and descriptions, Fig. 5 illustrates the fictitious user named «Steve»that accesses the client table 130a through the component 128a joint services, and fictitious user name «Miriam»that accesses the client table 130m through the component 128m joint services. To describe the examples shown in Fig. 5-7, but not limit the possible options for implementation, it is assumed that Steve and Miriam use applications such as a spreadsheet, such as a family of applications EXCEL, available from the Microsoft Corporation of Redmond, Washington. By providing these examples, the description of this application is not limited to these specific products or their versions, and can be implemented in a variety of products and/or versions, is available from any vendor-specific. Fig. 5 provides an example of the basic table 118 called «LiveTable», which contains the workbook Master.Xlsx 502, on the server (for example, 102 in Fig. 1). LiveTable 118 may include computed (that is, «Calc») column 504, which performs some calculations on the basis of the rest of the workbook. As described in the examples below, column calc can contain a formula that calculates a value based on the data residing on the server and/or data provided are working together users, such as Steve, Miriam and others Suggesting that the workbook 502 configuring for tracking and managing inventories, workbook can provide information related to the first item in the line 506 and may provide information regarding the second element on the line 508. Column 510 can provide some number or the number of these items, column 512 may indicate where these items are located, and column 514 can name these elements. The cells defined by the intersections of these rows and columns, provide a description of the specific instances of information, migrated rows and columns. Turning to the customer table 130a, assuming the user Steve is an administrator, he opened workbook 516 called «Admin lnventory.xls», and imported into the client table 130a, at least part of the LiveTable, along with instructions on changing the data consumed from this LiveTable. For example, assume that Steve took the current instances of the values in the rows and 508 506 from the main table. Fig. 5 refers to these imported line positions 506a and 508, as used within the customer table 130a. Suppose also that Steve imported column 504 calc from the main table, as indicated by the position of 504a. Clients table 130a contains the calculated value of 300 to object «Foo» («something»), and the calculated value of 2000 to object «Bar («bar»), as shown in column 504a. In General, the columns in the workbook 516 sorted according to the columns in a workbook 502. Turning to the customer table 130m, assuming the user Miriam is an analyst, it opens the workbook 518 called «Inventory Anaysis.xls». This workbook 518 may contain, at least, part of the LiveTable, this lines 506m and 508m correspond to the rows and 508 506 from the main table 118, and columns workbook 518 in General are ordered according to the columns in a workbook 502. Workbook 518 includes included line 520 marked «Total amount». Line 520 summarizes the calculated values from the calc column 504m, which corresponds calc column 504 in a workbook 502. Workbook 518 Miriam may also include a line 522 that summarizes the number of units «Bar», as reported by Miriam, Steve and any other users who use the data from the main table 118. Cell 524 can define a summation formula used for the calculation of the elements of «Bar». Describing the initial structures workbooks 502, and 518 516, discussion now goes on to describe how the changes are handled in a shared information, as presented together with Fig. 6 and 7. Fig. 6 illustrates updates, identified by, in General, the position of 600, which can occur when one coexistence user updates the data that is consumed from the primary table. In these examples, the user Steve adds a new line 602 his workbook 516 (transferred from Fig. 5). This new line 602 provides additional information for members of «Bar», indicating that 20 of these items are available at location «Redmond». This update a workbook 516 provides an example of threads 408 data, illustrated in Fig. 4, whereby the client system updates the information from the main table. Thus, Fig. 6 underwent a reference position 408, to mark the update for the main table, arising from local changes, and the changes in respect of rows, and cells. In the main table 118 116 module joint services accepts updates 408. In response workbook 502 adds a new row 602n and associates it with the value to identify this new line (for example, row_id ) within structured data elements that are shared amongst the various client systems to work together. Workbook 502 also updates columns 510, 512, 514 and 504 for a new line 602n to incorporate the updates 408. Thus, the table now indicates that 20 copies of electronic object «Bar» are available in Redmond. In addition, a cell 604 within the string 602n includes a new instance of the formula defined within the approximate column 504 calc. Describing how the main table and the associated workbook 502 may change for change implementation from the client workbook 516 Steve, discussion now goes on to describe how these changes can be propagated to the workbooks Steve and Miriam. Fig. 7 illustrates the updates, identified by, in General, the position of 700, which extend from the main table of updates from one of the client table. Continuing the above example, showing the local table Steve and Miriam, the main table 118 and the main worksheet 502 can communicate changes in row/cell worksheet 518 Miriam, resulting from the changes made in respect of the worksheet 516 Steve. Fig. 7 refers to these updates regarding the worksheet Miriam as changes 702 rows/cells. Thus, the 128m collaboration updates the worksheet 518 Miriam new line 602m engine, which matches strings 602 and 602n present in other worksheets. In more detail, ID (for example, the row_id ) link or link a new line 602m engine Miriam to the relevant line 602n in the main table and the corresponding line 602 in worksheet Steve. In this case sheet Miriam is updated to reflect the 20 elements of «Bar» in Redmond. On a worksheet, 516 Steve, in response to update the 704, a joint service of the 128a updates the column 504a calc so that the cell 708a contained value calc, calculated by the formula in the cell 604 main table. In the example shown cell 708a contains the value '8000'. On the sheet 518 Miriam, in response to upgrade 702 and 704, a joint service of the 128m updates the column 504m calc so that the cell 708m contained value calc (for example, '8000')calculated cell 604 main table. Because the column calc now contains the new value (that is, the value '8000' in 708m), line 520 Miriam maintained locally, as indicated by the updated amount '10300' in cell 710. Recall from the description of the relatively Fig. 5 that the table Miriam includes line 522 to sum calculated values that are attributed to the items marked with «Bar». In response to a value of '8000' in the new cell, 708m cell 524 summarizes this value with the previously existing value '2000' in cell 712, resulting in renewed the total value for '10000'. Describing the above-mentioned examples of changes rows and cells that spread through multiple jointly employed clients, description now provides more detailed examples of different types of changes. The operation of adding and deleting rows may include a parcel of relevant information row_id (string ID) for the involved rows. When a client table deletes a row from a shared customer table, the client can send a notification with these row_id on the server. In response main table and other client-side tables, which are connected with public client table, can perform the surgery removing rows of the table relative to the row that has this row_id . When a client table inserts or adds a new row to the end of the table, clients table can generate temporary row_id for the new row. Then the client table can send a notification of the added string to the server, Recalling temporary row_id . A server can generate and return consistent row_id that clients table (and other server or client-side tables) then would have used for a new line. The main table and the other client-side tables associated with it, then add a new row to their tables with constant row_id . The location of the new row within a table can be transferred or may not be dispatched. As a rule, a new row may appear at the bottom of each table, possibly from above, if a user adds a new line. In some embodiments of the notification of the new line can be maintained on the client until some data will not be available to send with him on the server. At least in some embodiments of the sort only apply to the local instance of the client table, for example, in response to local specifications in fact on specific clients (for example, specifications 310 and 318 in Fig. 3). Thus, different users can use their own sort to their own client tables. When new rows, they may not be immediately sorted and automatic sorting does not apply when the data has changed. This approach can protect the user's location within subjected to a table of changes under them, while they injected data. After editorial changes or the insertion is completed, the user can influence the affirmative, to re-sort. Client services can provide the user with the option of sorting in any case, so that the new data is automatically sorted on arrival. This option can be attractive for clients, performing analysis, but does not perform data entry. Client services can provide a filter function that can act as a sort. The filtering function can be performed in response to local specifications of specific clients (for example, 310 and 318 in Fig. 3). Different users can set your own filters, without affecting other users. Such sorting, filters can be adapted not cause a permanent change the location of the data as the user enters data. The option of performing filtering in any case, it may have a meaning similar to the options of sorting in any case. Client services can provide the final line that sums the values that appear in one or more columns. This feature summary row can be local to the customer table (for example, in response to local specifications), when users choose whether they want to view it or see it. Such discussions may relate to the functions of summing up the Subtotal. Assuming this customer table contains one or more columns in calc, client services may not allow the user to the client edit table columns calc in the customer table and put the changes back into the main table, except for the implementation of this Protocol schema changes of the consumer. Outside protocols such columns can be treated as read-only. When the columns calc includes the dependencies, completely internal to the given table (for example, the multiplication of two columns within a table), update the columns calc can be promoted to the client tables from the main table to provide quicker feedback and better experience when offline processing. Main table can provide the option not to advance the formulas for these columns calc, like the features described below in the ratio of columns calc with external dependencies. When the columns calc include at least one dependency external to this table, then consuming client table typically not grade them. Instead, the server can evaluate these columns calc and promote the resulting values to consume client table. For example, these columns calc may contain private formula, and this mechanism provides a method for sending values of the client tables, which are calculated using private formulas, in fact, without the provision of, or exposure of private formulas. Because customers are sent only to the values in these columns, not recalc (re-calculation) of the entire workbook, network volume decrease and any local calculations can be performed in workbooks that use client table. If the column calc has exceptions and includes external dependence, consuming client table can be kept in the dark about these exceptions, and they will take the calculated values for exceptions. If exceptions are in a column that is sent consuming client table, formula exceptions can also be sent. Clients table can add a column calc, which exists only in the customer table. Local column calc client table can fill up these columns calc locally, when new rows, columns calc are calculated and maintained locally. If multiple main tables of the same basic workbook used in one and the same client workbook, the links in the client workbook can be resolved locally on the client, without returning to the main workbook. Thus, any formula based on these links can be calculated locally on the client, without incurring unnecessary costs on the implementation of communication with the main workbook. Mostly formatting is applied to the different client tables separately. Thus, cell formatting in the customer table, you will format only this instance the client table. Below are some exceptions that can be applied in the variants of realization: • Formatting applied to a column in the main table, can be made available as part of the scheme to all consuming client tables to apply to this column. • Block-level formats and cell formats can be extended to consuming client table as formatting priority to the lowest level. • Conditional formats, estimated according to the main tables can be extended to consuming client table as the priority level higher than static basic formatting. • Option may be provided in the main table, so that if this option is provided, then the changes that users make in respect of the formatting in the consuming client tables can be uploaded back to the main table and applied there. • Main table can send formatting down in the client table. In some cases this formatting can be conditional formatting. In some cases, the particular customer can define local specifications (for example, 310 and 318 in Fig. 3) for formatting on this client. In these examples, the module joint services (for example, 128) on this client can negotiate formatting sent down from the main table formatting, certain local specifications on the client. Tracking based on unique identifiers (for example, row_id ) within the client table can be maintained, while the user is offline. Later, when the user goes online, tracking can be consistent with the changes that have since occurred in the main table. If the user has privileges to open the main workbook, he or she can edit the main table to perform the schema changes. Examples of these schema changes may include: • Delete column; • Adding a column; or • Edit a calculation of the computed column, or the like. If users are signs that they want to change the scheme of the main table, they use the joint services can grant them permission to do so, given their powers and settings to the main table for admissibility of such operations. Client service can send a local change user key table, where they will be applied like a change in the main table. The tools and techniques described in this application, can work alongside based on the portal collaboration and document management platforms, such as the SHAREPOINT platform™, and is available from Microsoft, or competing platforms. For example, the Lists (Lists) in SHAREPOINT technologies™ allow you to save and edit data and are suitable for use outside of spreadsheet software. In some cases, these platforms can provide the opportunity of tools and techniques expose APIs database on the primary table to allow the use of these APIs other technologies. In some cases, the List can be connected with the primary table, the List is updated, when the main table one change. Thanks to this feature, the List receives updates, when the main table is updated, or the table may accept the updates from the List when the List changes. Conflicts can be handled through the UI, in some cases, or with the help of characteristic tagging lines. Although the invention presented in this application, described in a language-specific structural features of the computer, methodological action and read by the computer media, you need to understand that the invention, as defined in the attached formula of the invention, not necessarily limited to such specific features, actions or media described here. Rather, certain characteristics, actions and data carriers are disclosed as an exemplary forms of implementation of the claims. Disclosure of the above, provided only in the form of illustrations and should not be considered as limiting. Various modifications and changes can be made in relation to the invention described in this document without following the illustrated and described exemplary embodiments of the incarnation and applications, and without derogating from the true nature and volume of the present invention, which is outlined in the following paragraphs of the claims. 1. Way ensuring collaboration between multiple clients in relation to structured data elements containing the stages at which: take the first client system at least one structured data element within a spreadsheet published, at least partially, for the purposes of joint first access the client system and the second client system; specify the corresponding unique identifier that corresponds to the mentioned at least one structured data item, with the corresponding ID indicates the value of row and column in a spreadsheet; send mentioned at least one structured data element and the corresponding unique identifier in the main table; have mentioned at least one structured data item in the main table, based, at least partially, on the unique identifier; calculate the value of the mentioned at least one structured data item on the basis of the formula in the main table; distribute mentioned at least one structured data element and the calculated value of main table in the second client system on the basis of, at least partially referred to the corresponding unique identifier and spread calculated value from the main table in the first client system on the basis of, at least partially referred to the corresponding unique identifier; take a request to edit the main table to make changes in respect to the main table, and those changes will contain one or more of adding a column in the main table, remove a column from the main table and changes to the calculation of the computed column; reply to a query edit the main table to determine whether the user running the query edit the main table, privileges to edit the main table; and in answer to a determination that the user has the privileges to edit the main table, take the mentioned changes in respect to the main table, and apply those changes to the scheme, the main table and synchronize these changes in respect to the main table with the first and second client systems. 2. The method according to p. 1, which when sending data send data to the second client system at least one network. 3. The method according to p. 1, additionally contains a stage at which accept the choice of the mentioned at least one structured data element, and this choice refers to a unique identifier corresponding to this at least one structured data item. 4. The method according to p. 1, additionally contains a stage where the extract referred to at least one structured data item from the main set of structured data elements. 5. The method according to p. 1, additionally contains a stage at which send the second client system for library containing structured data elements, and structured data elements were published for the implementation of the joint work of other client systems, and many of the structured data elements associated with the corresponding unique identifiers. 6. The method according to p. 1, additionally contains a stage at which take at least update for the mentioned at least one structured data item, at least from additional client system, and this update refers to a unique identifier for the data item. 7. The method according to p. 6, additionally contains a stage at which include, at least, referred to update mentioned at least one structured data item in the main table, based, at least partially, on the unique identifier. 8. The method according to p. 7, additionally contains a stage at which publish referred to update at least for another client systems. 9. The method according to p. 1, which when sending mentioned at least one structured data element sent at least part of the workbook, as defined in the spreadsheet. 10. The method according to p. 1, additionally contains a stage at which calculate at least one column in the main table by reference to at least one value received from at least one client of the table. 11. Machine-readable medium on which you stored the team, which, when performed by a computer prescribe computer: take the first client system at least one structured data element within a spreadsheet published, at least partially, for the purposes of joint first access the client system and the second client system; ask the corresponding unique identifier that corresponds to the mentioned at least one structured data item, with the corresponding ID indicates the row and column values in a spreadsheet; send mentioned at least one structured data element and the corresponding unique the ID of the primary table; make mentioned at least one structured data item in the main table, based, at least partially, on the unique identifier; calculate the value of the mentioned at least one structured data item on the basis of the formula in the main table; distribute mentioned at least one structured data element and the calculated value from the main table in the second client system on the basis of, at least partially referred to the corresponding unique identifier and distribute calculated value from the main table in the first client system on the basis of, at least partially referred to the corresponding unique identifier; accept the request to edit the main table to make changes in respect to the main table, and those changes will contain one or more of adding a column in the main table, remove a column from the main table and changes to the calculation of the computed column; in reply to a query edit the main table, determine whether the user running the query edit the main table, privileges on the edit main table; and in answer to a determination that the user has the privileges to edit the main table, take the mentioned changes in respect to the main table, apply these changes to the scheme, the main table and synchronize these changes in respect to the main table with the first and second client systems. 12. Device for joint work for multiple clients, containing: the Central processor, and memory, which stores team, which, when performed by the Central processor prescribe device: take the first client system at least one structured data element within a spreadsheet published, at least partially, for the purposes of joint first access the client system and the second client system; ask the corresponding unique identifier that corresponds to that referred to in at least one structured data item, with the corresponding ID indicates the row and column values in a spreadsheet; send mentioned at least one structured data element and the corresponding unique identifier in the main table; make mentioned at least one structured data item in the main table, based, at least partially, on the unique identifier; calculate the value of the mentioned at least one structured data item on the basis of the formula in main table; distribute mentioned at least one structured data element and the calculated value from the main table in the second client system on the basis of, at least partially referred to the corresponding unique identifier and distribute the calculated value from the main table in the first client system on the basis of, at least partially referred to the corresponding unique identifier; take at least update for the mentioned at least one structured data element at least from additional client system, and this update refers to a unique identifier for the data item; include at least referred to update for the data item in the main table, based, at least partially, on the unique identifier; accept the request to edit the main table to make the modifications in respect of the scheme; in reply to a query edit the main table, determine whether the user running the query edit the main table, privileges to edit the main table; and the determination of the fact that the user has the privileges to edit the main table, take the mentioned changes in respect to the main table, apply these changes to the scheme, the main table and synchronize these changes in respect to the main table with the first client, the second client system and the additional client system, and the mentioned changes scheme contain one or more of adding a column in the main table, remove a column from the main table and changes to the calculation of the computed column.
|
© 2013-2014 Russian business network RussianPatents.com - Special Russian commercial information project for world wide. Foreign filing in English. |