CN107667361A - Changed for the married operation of multi-user Cooperation application - Google Patents

Changed for the married operation of multi-user Cooperation application Download PDF

Info

Publication number
CN107667361A
CN107667361A CN201580067064.6A CN201580067064A CN107667361A CN 107667361 A CN107667361 A CN 107667361A CN 201580067064 A CN201580067064 A CN 201580067064A CN 107667361 A CN107667361 A CN 107667361A
Authority
CN
China
Prior art keywords
change
document
opaque
server
user
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
Application number
CN201580067064.6A
Other languages
Chinese (zh)
Other versions
CN107667361B (en
Inventor
D·L·纳尔逊
A·D·克拉夫特
E·R·罗德
A·K·多雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Leaf Looper Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Leaf Looper Ltd By Share Ltd filed Critical Leaf Looper Ltd By Share Ltd
Priority claimed from US14/966,216 external-priority patent/US10171581B2/en
Publication of CN107667361A publication Critical patent/CN107667361A/en
Application granted granted Critical
Publication of CN107667361B publication Critical patent/CN107667361B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

Multi-user Cooperation software application can between multiple users or multiple equipment synchrodata.A variety of existing modes for synchrodata be present.Certain methods (for example, file locking) in these synchronous method are easily achieved, but have performance or functional defect.Operation conversion (OT) is a kind of high performance synchronous method, but implements in many cases difficult and time consuming, and can not partly be realized in the entire system.Method and system, which provides, to be used for:Operation conversion is mixed with other synchronous method in the application of identical collaboration software, it is allowed in the case where operation conversion can not be realized in the entire system using operation conversion.

Description

Changed for the married operation of multi-user Cooperation application
Related application
It is entitled " for the married operation conversion (BLENDED of multi-user Cooperation application this application claims enjoying OPERATIONAL TRANSFORMATION FOR MULTI-USER COLLABORATIVE APPLICATIONS) " and carry The U.S. Patent application No.14/966 that day is on December 11st, 2015,216 priority are handed over, entitled " pin is enjoyed in this application requirement (BLENDED OPERATIONAL TRANSFORMATION FOR MULTI- are changed to the married operation of multi-user Cooperation application USER COLLABORATIVE APPLICATIONS) " and submitting day be on December 11st, 2014 U.S. Provisional Patent Application No.62/090,621 priority, these applications are incorporated herein by reference.
Background technology
Operation conversion (OT) allows to create collaboration applications, collaboration applications can to from multiple users to shared document or The change that system mode is carried out synchronizes.Realize the adaptability that the difficulty of OT systems has made computer application use cooperation Slow down.In the presence of the demand for " mixing " OT, " mixing " OT allow by developer decide in its sole discretion from complete OT graceful degradations to Less complicated/desired aggregated form.
The content of the invention
Present invention is provided so as to further to be introduced into following embodiment chapters and sections in simplified form The series of concepts of description.Present invention is not intended to identify the key feature or essential feature of theme claimed, Also it is not intended to the auxiliary for being used as determining the scope of theme claimed.
Multi-user Cooperation software application can between multiple users or multiple equipment synchrodata.A variety of be used for together be present The existing way of step data.Some synchronous method (for example, file locking) in these synchronous method are easily achieved, but are had Performance or functional defect.Operation conversion (OT) is a kind of high performance synchronous method, but implements difficulty in many cases And it is time-consuming, and can not partly realize in the entire system.Such method and system is described in terms of the disclosure:With Mixed in changing operation in the application of identical collaboration software with other synchronous method, it is allowed to can not in operation conversion Operation conversion is used in the case of realizing in the entire system.In the whole disclosure, such implementation can be referred to as " married operation conversion ".
The details of one or more aspects is elaborated in accompanying drawing and following specification.Implemented in detail below by reading Mode and associated accompanying drawing of reading, further feature and advantage will be apparent.
Brief description of the drawings
By reference to the following drawings, the further feature of the disclosure, aspect and advantage will become better understood, Wherein element is not drawn to scale, and in order to be shown more clearly that details, and wherein same reference is some Same element is indicated in view.
Fig. 1 is the block diagram for showing the system for collaborative editing.
Fig. 2 is the block diagram for showing the operating environment for collaborative editing.
Fig. 3 shows the aspect using multiple operations of the aspect according to the disclosure.
Fig. 4 shows the application in transition period convergence property.
How Fig. 5 can realize team in illustrating in greater detail in terms of the disclosure by client control algolithm Row.
Fig. 6 is to show general rank involved in the exemplary method for being used to propagate document change according to the aspect of the disclosure The flow chart of section.
Fig. 7 is to show general rank involved in the exemplary method for being used to propagate document change according to the aspect of the disclosure The flow chart of section.
Fig. 8 is the block diagram of an example of the physical assemblies for showing computing device.
Fig. 9 A and Fig. 9 B are the simplified block diagrams of mobile computing device.
Embodiment
Following embodiment refer to the attached drawing.As much as possible, identical is used in accompanying drawing and following specification Reference indicates same or similar element.Although the aspect of the disclosure can be described, modification, change, Yi Jiqi It is achieved in that possible.For example, replacement, addition or modification can be made to the element shown in accompanying drawing, and can lead to Cross and be replaced, resequence or add the stage to disclosed method to change approach described herein.Therefore, below Embodiment be nonrestrictive, and on the contrary, appropriate scope is defined by the following claims.Example can adopt Take the form of hardware implementation mode or complete software implementation or the implementation of integration software and hardware aspect.Therefore, What following embodiment was not considered in a limiting sense.
Mixing OT allows to be decided in its sole discretion from complete OT graceful degradations to less complicated/desired concurrent shape by developer Formula.The strategy allows incrementally to improve as implementation becomes more complicated.These improvement can by user, business or Technology priority driven.Mixing OT can be realized by the content editing procedures for allowing cooperation to use.
A kind of existing concurrency policies are " lockings/editor/unblock ".The strategy is easily achieved, but causes the concurrent of difference Property.For example, to be likely to remain in locking too long by a user, and prevent other users, though other users wish with logic that This independent mode edits the different piece of shared state or document.
Second of concurrency policies is " renewal/editor/submission ".When user works in different zones, the strategy has good Good concurrency performance, but need to carry out three-dimensional merging in the case where other users are made that any change.If other are used Quick change is made at family, then the strategy being capable of real-time lock.In real-time lock, user is because always there is incoming change to wait It is merged and can never submits change.
Finally, even if when the editor of user affects one another, OT concurrency policies also have fine-grained (fine- Grained) concurrency and good performance, but it is probably difficult to realize.Existing application transform it is particularly difficult, and And usually require fully achieving for all types of editors.
It is worth noting that, in the different piece of content editing procedures and document in itself, different types of editor may Need the concurrency of different stage:1) there is the editor of complete OT supports and quick, fine-grained concurrency (for example, creating, deleting Remove and mobile object;Edit text);2) be difficult or impossible to determine for OT systems the change made of user but It is the known editor that change is had occurred that in specific region (for example, the inline object that is defined by third party of editor;Edit OT The up to the present unknown object of system);3) document is made thoroughly change but need not to OT systems expose be what or Editor where (for example, change Color scheme, theme, page-size, template or slide master);And 4) OT systems are not known Whether some contents in road are modified and can not distinguish the modified volume of what content by being checked document Volume.These editors are fully opaque for system.
For pure OT methods, significant obstacle is presented in all editors in addition to the editor of the first kind.Relatively it is difficult to Many in the editor of the type of processing actually need not be completely concurrent, or is permitted in the editor of more reluctant type More with being orthogonal (or almost such) on other, more fine-grained editing essence.For operating and its changing by well Type (1) editor of understanding, mixed method use complete OT.It is desirable with such user mutual as much as possible 's.The mixing OT methods in view of these targets are provided in terms of the disclosure.
Edited for type (2), the opaque expression of change is encapsulated as opaque operation by the aspect of mixing OT methods.Begin Operation metadata and data can be sent to server by hair client, without in the identical time.Other client kimonos Business device can rapidly receive metadata, and alternatively locking (lock-out) other users so that they can not make further Change (for example, utilizing the progress bar on impacted region).Then other users receive data when data are made available by. Once receive all data, then finally being capable of intactly application operating, and discharge locking.If understand that data never change (for example, because originating user disconnects in advance) must be can use, then cancels operation (via OT revocation mechanisms) and discharges locking.
In certain aspects, the opaque expression (for example, binary system blob (binary large object)) of change can be created. In these aspects, this opaque operation can be applied, but regardless of the virtual condition of the impacted part of document.For example, such as Fruit is opaque to operate the state that have modified the inline object defined by third party, then operation will require that object exists and is in pre- Phase position, it is not required that the object is in particular state.This allows to carry out two opaque operations to the same section of document, Opaque to represent come simple and unadorned to change by each other by simply replacing.
Opaque operation is similar to renewal/editor/submission model, because three-dimensional, which merges, always utilizes incoming state To replace current state.State through replacement is not necessarily lost, but is resumed if desired, and the state through replacement can retain In revision history.This causes developer from for the complete OT of difficult object implementatio8, and the concurrency through degradation only limits In the opaque section of document.
In in terms of the disclosure, type (3) can be directed to and (4) edit and use binary synchronous (binary-sync) Operation.Whole document can be scanned first against change, and any caused operation is sent to server.In this scene In, it still there may be the uncomprehending change of OT systems.When making incremental improvements to OT implementations, or work as and transform OT Into during existing application, this is particularly likely to.In order to rightly replicate these opaque changes, the aspect of mixing OT methods will be whole Document representation regards opaque blob as.Because the blob can not be typically changed by other operations, and because with it is other not The Merge Scenarios that transparent operation is used together risks the risk for the excessive content (being probably whole document) for replacing user job, institute Otherwise the change that other existing operations can not represent must only be represented with blob, and it must be service that it, which operates context, Version known to device and other users.In order to send and be operated using such, the more special method of use, referred to herein as " binary synchronous " operates.
In aspect, binary synchronous can be handled, either in operation stream or on wing passage.In order to For the sake of simplicity, it is pending once there was only a binary synchronous.Wish to submit while another binary synchronous is pending The client of binary synchronous may being serviced device refusal.On the contrary, its opaque blob can be added to by such client Revision history is as the state through replacement.Client can not submit binary synchronous, unless the client proves its change is The binary synchronous completed based on server most recent.
When receiving the request for submitting binary synchronous, server conditionally receives binary synchronous first, at it The other binary synchronous of locking are attempted when receiving from the data for submitting client.As optimization, server can be opened alternatively Begin to stream to data into the other clients for it is expected to receive binary synchronous.If server fails that data (example is correctly received Such as, due to network failure), then server stops binary synchronous and discharges the locking attempted other binary synchronous.Once Server has all data, and the server just completes binary synchronous, and signals other clients and carry out again It is synchronous.
Other clients can be by obtaining opaque blob to carry out re-synchronization from server first.Due to transmitting not Time required for transparent blob, other operations may be applied to the document status of client.Receive client according to Opaque blob initializes to the backstage copy of document status, and is applied to newer operation.Because using these behaviour Work may take various time quantums, and client repeatedly checks the operation without application, and is applied to backstage document, until The backstage document is in server finally known state.
Now, opaque change is only difference is between backstage copy and the active copy being edited by And any change that user makes recently but not yet being serviced device receives.Client is received now by the operation of user's most recent Backstage document is copied to from active document.Finally, be only difference is between active document and backstage document be intended to by Change send or replace, hiding, opaque, receives client exchange active document and backstage document.In the process knot At beam, all users are editing the documentation release wherein changed and otherwise hidden to OT systems.
Fig. 1 is the block diagram for the system for collaborative editing for showing the aspect according to the disclosure.As shown in figure 1, system 100 Including the first user calculating equipment 102 that can be operated by the first user U1, and server computing device 104.User calculates Equipment 102 and server computing device 104 are communicated by network.User calculating equipment 102 includes content editor 106. In the example depicted in fig. 1, content file 110a can be sent to the first user calculating equipment from server computing device 104 102。
System 100 can also include the second user computing device 108 for being connected to server computing device 104, and it can Operated by second user U2.Second user computing device 108 and server computing device 104 are communicated by network.Second User calculating equipment 108 includes content editor 110.In the example depicted in fig. 1, can be by content file 110b from server Computing device 104 is sent to second user computing device 102.
It should be appreciated that both the first user U1 and second user U2 can edit identical document using content editor Separation version.In this case, the first user U1 is editing documentation release 110a, and second user U2 edits text Shelves version 110b.Documentation release 110a and 110b are the versions of identical document.User just edits document in Collaborative environment, wherein The change made by two users should all be updated to the key plate sheet of document.
System 100 represents to be cooperated with shared state with the user of client software (for example, content editor) interaction Interactive general topology, wherein the change to state travels to via central server (for example, server 104) and utilizes other visitors The other users (can be any amount of further user) of family end software, but many other methods are (for example, end-to-end friendship It is mutually) possible.In certain aspects, content editor (for example, content editor 106 and 110) is with cooperation operable The application run in the user calculating equipment of ground content of edit file.In addition, in certain aspects, content editor and server Computing device 104 interacts.In some instances, content editor can be it is operable with based on by remote computing device (for example, Server computing device 104) or the content of another computing device supply generate the browser application of collaborative editing.According to showing Example, extension are mounted the plug-in unit or adapter for being used as browser application (that is, content editor 106) on the user computing device, Or it is embedded in browser application.
In this example, content editor is collaborative document editing machine (for example, the Microsoft from Redmond, Washington is public The WORD document editors of department), or spreadsheet editors are (for example, also from MicrosoftElectronics Table edit device).It is public that similar non-limiting example content editor can include the Microsoft from Redmond, Washington DepartmentPresentation Graphics program.
Fig. 2 is for will change the detailed frame of an example of the system 200 that another document is traveled to from a document Figure.System 200 can be included with multiple client (for example, mobile client 210, the first client 215 and the second client 220) server 205 that end communicates.Server 205 can safeguard basic file, for example, exemplary basis PowerPoint files 225.Basic PowerPoint files 225 can be such file:Mobile client 210, the first client 215, Yi Ji Each in two clients 220 is being cooperated and is providing editor to server 205 thereon.The attended operation of server 205 History 230.Operation history 230 can include sending each behaviour for basic PowerPoint files 225 and server 205 Make the record changed.Server 205 can also safeguard the list of the note 2 35 for basic PowerPoint files 225.
In exemplary operations in system 200, mobile client 210 can provide to basic PowerPoint files 225 Text editing.In in terms of the disclosure, such text editing can be supported using complete OT to handle.Client 220 can With for the use of the opaque mixing OT methods for representing to be provided as opaque operation of change are encapsulated to basis PowerPoint files 225 provide change, and the change is delivered to server 205.Client 215 can be to basic PowerPoint File 225, which provides, includes that the change of the two can be changed via the opaque operation of binary synchronous transmission and image.
User calculating equipment 102, server computing device 104, server 205, mobile client 210, the first client 215 and second client 220 be illustrating for a large amount of computing systems, including but not limited to desk side computer system, wired With wireless computing system, mobile computing system (for example, mobile phone, net book, flat or template computer, notebook meter Calculation machine and laptop computer), handheld device, multicomputer system, based on microprocessor or programmable consumer electronics Product, microcomputer and mainframe computer.
In addition, aspects described herein and function can be grasped in distributed system (for example, computing system based on cloud) Make, wherein application function, memory, data storage and search and various processing functions pass through distributed computing network (example Such as, internet or Intranet) it is operating remotely to each other.According on one side, via airborne computing device display or via with One or more computing devices associated remote display units shows various types of user interfaces and information.It is for example, each The user interface and information of type are shown on wall surface and interaction, and various types of user interfaces and information projection arrive On wall surface.With for put into practice aspect a large amount of computing systems carry out interact including:Thump input, touch-screen input, language Sound or other audio inputs, gesture input (wherein associated computing device equipped with for capture and explain user gesture with For detection (for example, camera) function for the function of controlling computing device) etc..
Fig. 3 shows the aspect that multiple operations are applied according to the aspect of the disclosure.Basic file (version 1) can include text This phrase " foo ".User A and user's B both can be with the collaborative editing basic files.User A can be attempted in basic file Text " bar " is inserted at index position 3.Similarly, user B can attempt to insert text " quux " at index position 3.By with The editor that family A is carried out can cause documentation release 2 to include text " foobar ".The editor carried out by user B can cause document Version 3 includes text " fooquux ".Therefore, OT systems need to use documentation release comprising conversion, are rightly included with creating The documentation release 4 of text editing twice.Documentation release 4 should include final text results " foobarquux ".In some respects In, as a result can also be " fooquuxbar ", " foo " or simply null character string.Each result in these results is still Uniformity property can so be met.The draughtsman of conversion can determine which result is desired.
Application set forth α '=IT (α, β) comprising conversion (IT).This is the first user action α and second user action β Comprising conversion.In other words, α ' is with having the operation of same effect to the document application α for having applied β.This is followed unanimously Property property, it is stated that:If α '=IT (α, β) and β '=I Τ (β, α), then alpha+beta '=β+α '.
Fig. 4 shows the application of transition period convergence property.Each change operation can impliedly with the operation application In document status be associated.IT can produce the new operation with same effect, but new operation can from it is different Document status is associated.In other words, β '2=β '1+α=Ι Τ (β1, α1), to cause new context to include α effect, and make It is identical to obtain the context of user action in IT.Wherein, subscript here has explicitly indicated that (operation is applied to context Document status).Document context is omitted from other equatioies in order to mark, and can be pushed off.
The change that cooperation is substantially simultaneously simultaneously propagated user and made to the document of another user using being related to, and instead It is as the same.If you can reduce the size of the cooperation message sent by network, cooperation use can be particularly suited for real-time Carry out.Merge with sending whole document and then performing three-dimensional on the client on the contrary, sending individually change operation (at this Position insertion character, insertion lantern slide, mobile shape etc.) can be favourable.
Individually change operation can be sent by network, to apply them to the document of other users in opposite side. Then may no longer be position 3 in opposite side, this is due to another if necessary to insert character in ad-hoc location (for example, position 3) User keys in some contents before change operates, and causes to be inserted in and carried out at position 12.In another example, a use Family can attempt to enter shape edlin, and the shape is deleted in the document of other users.Operation conversion is used to turn These operations are changed, to cause these operations to be properly applied to the document of long-distance user.
In aspect, in each document for operating and being intended to apply to, the operation can have implicit context.Conversion will The logical file that the operation is applied to is changed to other documents of user from source document.How to write conversion is probably difficult ask Topic, because each operation allows for being changed for each other operations in pairs.Accordingly, it may be desirable to substantial amounts of front end Effort, to ensure all presence in these conversions and correctly run and meet all properties or document.
The aspect of the disclosure does not realize complete OT systems, and obtains OT benefit.This can be by being defined to change To cause some operations (for example, text based change operation) that there is very high performance to realize for a user.
Then more difficult change operation can be handled using lower-performance system.The aspect of the disclosure can create The batch object to be sent by network, this represents more complicated change operation.Although the benefit of small network packet can It can lose, but changing operation can exclude from transition matrix and be sent as opaque object.In other words, mixing OT will Abundant object mixes with conversion and opaque object.In order to avoid the conflict between the change of two users, can use real Shi Genggai exist notice come alert two users they will being at war with property editor.Alternately, when user tends to be different The fact that edit these objects can be used for avoiding conflicting.
If user makes specified modification, document is not influenceed on this change remainder be it is uncertain, then Mixing OT aspect uses binary synchronous.For example, change document subject matter can cause to influence many objects in whole document Thorough change.It is determined that each change of generation can be proved to be poor efficiency in a document.Therefore, can be only for Change with associated change operation operates to generate OT.The change behaviour that other more complicated changes can not be associated Make.The other part of change can be sightless for OT systems.
The change of these " invisible " can be sent to by server with slower rhythm.In certain aspects, can be first First preserve document.It is then possible to whole document is sent to by another user by network.Because this process spends the time, institute The dependence for the fact be present:The change included in the document is sightless for OT systems.Simultaneously, it is seen that Change has been a part for OT systems, because previously generating operation for visible change.
When the document reaches opposite side, the document may be upgraded to the version beyond the document comprising invisible change This.For example, change document may generate in version 25, once but at change document arrival other users, the user may It has been upgraded to version 60.This may cause tens in the current document of user to operate not in incoming change document In.Therefore, it is necessary to by being positioned as close to current revision to change document application OT operation change documents.
In order to which operation is applied into document, document can be opened on backstage.Once document reaches the shape residing for active user State, only content not in the document of backstage in the document of active user be exactly user just done it is whatsoever interior Hold, particularly not yet create the change of any operation for which.In certain aspects, user can be with the of short duration period It is blocked so that the change of these most recents is copied into backstage document.Then it can not pay attention in user or user does not note substantially Switch document in the case of meaning.And in present (otherwise it is sightless for OT systems) these changes all will be for Second or the 3rd user show.
In some aspects of the disclosure, multiple users can attempt to carry out binary synchronous simultaneously.If for example, first The first binary synchronous for including theme change is made to server, then the server will be refused to include the of page layout change The binary synchronous of two users.This collision can be mitigated by rule and status indicator.For example, when the first binary system is same When step is in transmission, such notice can be shown for each user:Instruction user before the second thorough change is made It should wait untill completing the first binary synchronous.In alternative aspect, rule can in place with certain rhythm regularly Send binary synchronous.In addition, include when that can detect that user have changed document and document be present for OT systems During certain possibility of sightless change, binary synchronous can be triggered.Include being used for global change for example, user uses The drop-down menu of function may be used as trigger so that binary synchronous can by relatively early triggering rather than later triggering, with Make when making change and another user see before change between time minimize.
In in terms of the disclosure, the first change flow from user to server is established.In certain aspects, service Device can represent the every other user being operated to identical document.In certain aspects, the flow can be not related to The end-to-end process of server.
First user can make change to document.Then these changes can be sent to service via first pass Device.Then, other users and system are received and must be implemented in document more by what server was made by other users Change.When these operations pass through each other, they must be changed, or in the case of opaque operation, an operation will be excellent Prior to another operation.In such a case, it is possible to the OT operations for representing opaque state change are realized, and conversion causes simply Ground abandons a state or another state.
In the case of opaque object, it is thus necessary to determine that whether user, which has been completed, is made specific change.For example, with Family can indicate that to the change that special object is carried out be complete to system.The instruction can be clearly referring to based on system convention Show (for example, preserving documentation release) or the instruction through deduction.The non-limiting example of instruction through deduction can include working as user When typically carrying out thump with specific frequency and stopping suddenly.Another non-limiting example can be when user is such asEdition Contains software in change lantern slide when.Once make the instruction, system can start by Change travels to server.
Then the expression of change can be collected.For example, the modified partial sequenceization of document can be arrived disk.It is alternative Ground, change object, some of which shape (such as picture or video or sound or intelligent artistic character/image) can be determined in shape rank It will be saved as changing object.
Next, system can determine actually whether be made that change.Using some opaque objects, it is known that with Family is there and user clicks on everywhere, but may be unaware that and actually whether be made that substantive change.The process It can be used for preventing from sending unnecessary packet by network.Compare for example, binary system can be made using previous state. Furthermore it is possible to open generated state, and the various parts of the state generated can be compared with previous state Compared with.
The operation that these changes can be encapsulated as in OT systems.The operation can be used for state being changed to up to another with working as The identifier of the position comprising change is together during side.Operation can also include conversion, if for determining to change Object then be deleted and perform action or for conflict change priority.Operation can also include timestamp and believe Breath solves to conflict for help., can be based on the preferential of the author of corresponding conflict change in some aspects of the disclosure Level rank solves to conflict.
Encapsulated operation is sent to by server and other users by network.With encapsulated operation traverses network And pass through server and potential intermediate node, and other clients (user) are reached, server can perform some conversions.
Then encapsulated operation can be applied at another client., can will be through using client OT control algolithms The operation conversion of encapsulation is for ready for applied to document.In certain aspects, encapsulated operation may be due in these conversions In one conversion in lose and be dropped.In another aspect, the position that encapsulated operation is intended to apply to may be It is deleted, any operation can not be carried out in this case, and encapsulated operation is dropped.However, the position can letter It is singly mobile, and conversion can be applied to ensure that encapsulated operation is applied to correct position.Furthermore if two users Change identical object is attempted, then one in change operation can be dropped.
Once encapsulated operation is ready to be applied to correct object's position, then the object can be by unserializing.Change Yan Zhi, object become real object from its state through serializing.In certain aspects, this may relate to open warp on backstage The Obj State of serializing, and be copied into the correct position of existing PowerPoint.If object is image, can make Realize that size and location adjusts with insertion image API.Once realizing change, object can be apparent in the document of user. If there is another pair as that can delete or replace previous object in the opening position.
, can be simply according at it if another user attempts editor and is modified the same object that operation is replaced The object is deleted below.In some aspects of the disclosure, user can be warned incoming destructive volume for object to be present Volume.This can provide a user chance, either preserve the copy of the object or refuse the incoming change and its is modified Object as new version resend to it is other everyone.
In in terms of the disclosure, it may be determined that need binary synchronous being sent to server.For example, actually user It can click on to start binary synchronous.Enter for example, being modified to the animation in content editing procedures and can trigger transmission two System is synchronous, because assume that multiple users while may not enter edlin to animation compared with making text change. Therefore, if user opens animation pane, instruction can be presented to user several times before the pane is opened may not The notice of such change is supported in real time.Lockage button can be clicked on instruction user, or user can wait and count next time The synchronization drawn.In certain aspects, each user opens animation pane, and lockage button can be indicated (for example, (red using color Color)), until binary synchronous is sent.
Alternately, binary synchronous can be sent based on system timer.There may be between binary synchronous The predefined minimum time passed through, to avoid too fast sending synchronization.Predefined maximum time interval can also be used, Binary synchronous will be sent after the predefined maximum time interval, irrespective of whether it is same to receive binary system as needs The instruction of step.Such time interval can be opened when user opens document and is actually interacted with the document opened Begin.In addition, if user receives binary synchronous, then before user interacts with document again, time interval may It will not start again at.
In the case where due to damage user document correctly can not be opened, urgent binary synchronous can be used, its In client in hot water will be complained to server.Server can be sent out by requiring the client of all connections to the user Sending, which can allow user directly to open document and attempting, recovers the binary synchronous of its state to be responded.
Fig. 5 illustrate in greater detail in mixing OT systems such as how client control algolithm 500 in terms of realize team Row.Operation can receive server operation queue 505 as the part for receiving circulation 510 from server.Determining to send After binary synchronous, control algolithm can more new incoming and the queue of outflow operation.Control algolithm can keep tracking each What version operation is applied to, and these operate whether need it is to be converted.Once user stops editor's document and queue is complete Portion empties, and customer documentation will be in synchronous and consistent.In other words, server receive and store the binary synchronous so that its The operation for reaching correct rank is not limited to the operation that particular clients are seen.The property of binary synchronous state can be known as Clean.Therefore, serializing is carried out to the state in client ensures that its user without any unidentified generation grasps After work, the clean of document, the version of server approval can be sent.
Operation can advance to application queue 515 from server operation queue 505.Then operation can be applied to agency (proxy) 520, agency 520 is a part for polling loop (polling loop) 525.Agency 520 can be using operation as benefit Fourth function is supplied to application state manager, for example, PowerPoint OM 530.
Next, agency 520 can be using taking (GET) function to be provided to from PowerPoint OM530 to access Server is for realization to the operation in basic file.Agency 520 can be communicated with previous agent 535.To first former generation The comparison that difference between reason 535 and agency 520 is carried out helps in notifying that client control algolithm 500 is right about whether existing The actual change that basic file is made.The process can be used for preventing from sending unnecessary packet by network.For example, can be with Binary system comparison is carried out using previous state.Furthermore, it is possible to generated state is opened, and the state that will can be generated Various parts compared with previous state.
If there is the actual change to be sent, then operation is moved to the operation queue 540 do not submitted.The operation do not submitted Queue 540 can send a part for circulation 545.The operation queue 540 do not submitted, which can wait, to be received comes from pending submission The submission of block 550 confirms.This provides the superior method for real-time lock, and wherein user can never submit change, because It is merged always to there is incoming change to wait.When receiving confirmation, binary synchronous can be provided back to server.
As discussed above, when binary synchronous starts, its one kind that may be in both of which, explicit (explicit) and passively.Under explicit mode, user clicks on button to start binary synchronous, and user then waits for It is synchronous to pass through.In certain aspects, mode progress object (for example, bar) can be presented to user to prevent user from being done to document Go out further change and allow outflow queue to be drained.During the time, it is understood that there may be the queue of the operation generated.One Denier server provides response for pending operation, it is possible to sends any remaining operation.This produces the server for document Version number.Then, state can be preserved and sent together., can be with locking user when queue is drained in the case of explicit. Under passive situation, the chance point that outflow queue is drained can be directed to queue is monitored.For example, document is not edited in user The of short duration period in, queue can be drained.If have passed through the too long of period when waiting chance point, system can be cut Change to explicit mode.Here, when queue is drained and state is saved, using progress bar come locking user.
Once establish state, it is possible to which state is sent to server., can be with the shape in some aspects of the disclosure State retains Liang Ge version numbers together.The OT versions that one version number can be saved with state are associated.This can represent to include The version of the revision of the last receiving of the document.The second edition number can be the identifier of previous binary synchronous.Then can be with Regard document status as binary synchronous plus the list applied to its operation.The two version numbers can be used for identifying its Where state stream.Then, server can verify that binary synchronous is based on the most recent known to server Binary synchronous.In certain aspects, server can be responsible for ensuring in stream once there was only a binary synchronous.
In certain aspects, when sending the message of request binary synchronous, if locking is in place and permits to be allowed, Then binary synchronous data will start to send.If user is offline within the period, server can provide pre-determining Period is used to return, and then release locking.In this case, binary synchronous will not pass through, because server The partial data for binary synchronous can not be received.
After the license for starting binary synchronous is provided, server can also accelerate to transmit.In this case, service Device can give notice to all other client, and alerting them may have binary synchronous to carry out, it is assumed that upload client Actually try to complete to upload in end.Here, server can start to stream out binary synchronous, even if the server does not have also Whole in data.The whole that another client will be prefetched in the binary synchronous data, and then once upload client Successfully complete, server will just state the version as next binary synchronous version, and the version is broadcast to all Client.
The exemplary architecture and other side of the disclosure are described by reference to Fig. 1-5 above, Fig. 6 and Fig. 7 are to show to be used for Propagate the flow chart in general stage involved in the exemplary method of the method for document change.
Then referring to Fig. 6, method 600 is starting to start at step 605, and proceeds to step 610.At step 610, Complete operation can be used to change the text change carried out to basic file is traveled into server.Server can with basis The multiple users communication to be cooperated on document.In addition to text change, other changes can also be by using complete operation Change to propagate.It is, for example, possible to use complete operation is changed to propagate on the shape attribute in basic file and create/institute The change of the lantern slide of deletion.
At step 620, opaque object can be used to travel to service to the opaque change that basic file is carried out Device.Opaque change can include the change that operation is not present for which.In certain aspects, opaque object can be base In state.Some opaque objects can represent big state.For example, representing the opaque object of big state can wrap Include one or more of following:Picture, video and Embedded Object link and embedded (OLE) object.This big shape The opaque object of state can be sent to server by band other places.In certain aspects, can be when propagating opaque change to Progress bar is presented in one user.In some cases, it there may be conflict between multiple opaque changes.In this scene, Priority rule can be quoted to determine that the priority which is changed will be realized in basic file.
At step 630, binary synchronous can be used to be traveled to the unsustained change that basic file is carried out Server.In certain aspects, unsustained change includes the global change carried out to basic file.In some of the disclosure In aspect, unsustained change can include changing the theme that basic file is carried out.
Then referring to Fig. 7, method 700 is starting to start at step 705, and proceeds to step 710.At step 710, Document can be scanned to detect the editor class associated with the document change made in Collaborative environment by the first user Type.
At step 720, if editing type has complete operation, conversion is supported, can use complete operation conversion will Document change travels to server.
At step 730, if occurring in the specific region of editing type instruction document change in a document but not referring to Show the details of document change, then can use opaque operation that document change is traveled into server.For example, opaque operation can With the binary system blob including representing document change.In in terms of the disclosure, when opaque operation is transmitted, it will can assist The other users made in environment are locked in outside document.Furthermore, it is possible to opaque operation is realized, but regardless of the impacted portion of document The state divided.
At step 740, if editing type is fully opaque, document can be changed using binary synchronous Travel to server., can if editing type instruction document change influences the entirety of document in some aspects of the disclosure So that document change is traveled into server using binary synchronous.Only representing can not be by opaque operation or complete operation conversion branch The opaque blob for the change held can be created for binary synchronous.In certain aspects, in the first binary synchronous phase Between other binary synchronous can be blocked.
Fig. 8-9A and Fig. 9 B and associated description provide the various operations of the example to putting into practice the disclosure wherein The discussion of environment.However, on being in order at example and explanation with the equipment and system discussed shown by Fig. 8-9A and Fig. 9 B Purpose, rather than a large amount of computing devices configuration for putting into practice aspects described herein is limited.
Fig. 8 is the block diagram for the physical assemblies (that is, hardware) for showing computing device 800, and the example of the disclosure can utilize meter Equipment 800 is calculated to put into practice.In basic configuration, computing device 800 includes at least one processing unit 802, and system storage Device 804.According on one side, configuration and type depending on computing device, system storage 804 include but is not limited to volatibility Storage device (for example, random access memory), non-volatile memory device (for example, read-only storage), flash memory or Any combinations of these memories.According on one side, system storage 804 includes operating system 805, and is wrapped suitable for operation Include one or more program modules 806 of the software application 850 of content editor 106.According to one side, system storage 804 include being used to propagate the software that document is changed in collaborative editing system.For example, operating system 805 is suitable to computing device 800 operation is controlled.In addition, aspect is put into practice with reference to shape library, other operating systems or any other application program, And it is not limited to any specific application or system.The basic configuration is shown by those components in dash line 808 in fig. 8. According on one side, computing device 800 has supplementary features or function.For example, according on one side, computing device 800 includes Additional data storage device (removable and/or non-removable), for example, for example, disk, CD or tape.This The additional memory devices of sample are shown by removable storage device 809 and non-removable storage device 810 in fig. 8.
As set forth above, according on one side, multiple program modules and data file are stored in system storage 804 In.When being performed on processing unit 802, program module 806 in collaborative editing system (for example, for propagating document change Software) implementation procedure, one or more of including but not limited to Fig. 6 and the stage of method 600 and 700 shown in Fig. 7 rank Section.According to one side, other program modules can be used according to the example of the disclosure, and other program modules are included such as Email and contact application, text processing application, spreadsheet application, database application, slide presentation application, drawing Or the application of computer-assisted application program etc..
The aspect of the disclosure is in the electronic circuit including discrete electronic component, the encapsulation comprising gate or integrated electronic core Piece, using being put into practice in the circuit of microprocessor, or put into practice on the one single chip comprising electronic component or microprocessor.Example Such as, aspect is put into practice via on-chip system (SOC), and perhaps multicompartment is integrated into list to each component in the component wherein shown in Fig. 8 On individual integrated circuit.According on one side, this SOC devices include one or more processing units, graphic element, communication unit Member, system virtualization unit and various application functions, it, which is fully integrated (or " burning "), turns into single collection to chip substrate Into circuit.When being operated via SOC, single integrated circuit is integrated into via together with other components of computing device 800 Special logic on (chip) operates to functions described herein.According on one side, using being able to carry out logical operation Other technologies of (for example, for example, with (AND) or (OR) and non-(NOT)) put into practice the aspect of the disclosure, including but It is not limited to machinery, optics, fluid and quantum techniques.In addition, aspect in all-purpose computer or in any other circuit or is Put into practice in system.
According on one side, computing device 800 has one or more input equipments 812, for example, keyboard, mouse, pen, Audio input device, touch input device etc..According on one side, in addition to output equipment 814, for example, display, raising one's voice Device, printer etc..The said equipment is example, and can use miscellaneous equipment.According on one side, computing device 800 includes Allow the one or more communication connections 816 to be communicated with other computing devices 818.The example of suitable communication connection 816 Including but not limited to, RF emitters, receiver, and/or transceiver circuit;It is USB (USB), parallel, and/or serial Port.
Term computer-readable medium as used herein includes computer-readable storage medium.Computer-readable storage medium includes easy The property lost and non-volatile, removable and nonremovable medium, it is in any method or technology is realized for storage information, example Such as, computer-readable instruction, data structure or program module.System storage 804, removable storage device 809 and not Removable storage device 810 is entirely computer-readable storage medium example (that is, memory storage).According to one side, computer Storage medium includes RAM, ROM, Electrically Erasable Read Only Memory (EEPROM), flash memory or other memory skills Art, CD-ROM, digital universal disc (DVD) or other light storage devices, cassette, tape, disk storage equipment or other magnetic are deposited Equipment is stored up, or can be used in storage information and any other product that can be accessed by computing device 800.According to a side Face, any such computer-readable storage medium are all a parts for computing device 800.Computer-readable storage medium include carrier wave or The data-signal of other propagation.
According on one side, communication media passes through computer-readable instruction, data structure, program module or modulation data Other data (for example, carrier wave or other transmission mechanisms) in signal are implemented, and including any information delivery media or biography Defeated medium.According to one side, signal as term " modulated data signal " description:It, which has, enables to in signal The mode that is encoded of information come one or more characteristics for being set or changed.By way of example, and not limitation, communicate Medium includes wire medium (for example, cable network or direct wired connection) and wireless medium (for example, acoustics, radio frequency (RF), red Outside and other wireless mediums).
Fig. 9 A and Fig. 9 B show mobile computing device 900 (for example, mobile phone, smart phone, flat individual calculus Machine, laptop computer etc.), aspect can be put into practice using mobile computing device 900.With reference to figure 9A, show for realizing The example of mobile computing device 900 in terms of these.In basic configuration, mobile computing device 900 be with input element and The handheld computer of both output elements.Mobile computing device 900 typically comprises display 905 and allows user by information It is input to one or more of mobile computing device 900 load button 910.According on one side, mobile computing device 900 Display 905 is used as input equipment (for example, touch-screen display).If including optional Side input element 915, it is permitted Perhaps further user's input.According on one side, Side input element 915 is rotary switch, button or any other type Manual input element.In alternative exemplary, mobile computing device 900 includes more or less input elements.For example, one In a little examples, display 905 can not be touch-screen.In alternative exemplary, mobile computing device 900 is such as cell phone Portable telephone system.According on one side, mobile computing device 900 includes optional keypad 935., can according to one side The keypad 935 of choosing is physics keypad.According on the other hand, optional keypad 935 is " soft " generated on touch-screen display Keypad.In various aspects, output element includes being used for display 905, the visual detector for showing graphic user interface (GUI) 920 (for example, light emitting diodes), and/or audio converter 925 (for example, loudspeaker).In some instances, mobile computing is set Standby 900 include the vibratory transducer for being used for providing a user touch feedback.In another example, mobile computing device 900 includes For sending signal or the peripheral device port 940 from external equipment reception signal to external equipment, for example, audio input (example Such as, microphone jack), audio output (for example, earphone jack) and video frequency output (for example, HDMI ports).
Fig. 9 B are the block diagrams of the framework for an example for showing mobile computing device.That is, mobile computing device 900 Include the system (that is, framework) 902 for realizing some examples.In one example, system 902 is implemented as that one can be run It is individual or it is multiple application (for example, browser, Email, calendar, contact manager, messaging client, game and Media client/player) " smart phone ".In some instances, system 902 is integrated into computing device, for example, integrated Personal digital assistant (PDA) and radio telephone.
According on one side, one or more application programs 950 are loaded into memory 962, and in operating system 964 Upper operation is run in association with operating system 964.The example of application program includes Phone Dialer, Email journey Sequence, personal information management (PIM) program, word processing program, spreadsheet program, the Internet browser programs, message transmission Program, content editor 106 etc..According on one side, the software for propagating document change in collaborative editing system is added It is downloaded in memory 962.System 902 also includes the nonvolatile storage 968 in memory 962.Nonvolatile storage Domain 968 is used to store permanent message, if system 902 powers off, permanent message should not be lost.Application program 950 can make With and store the information in nonvolatile storage 968, for example, Email or other being disappeared by what e-mail applications used Breath etc..Synchronous applications (not shown) is also resided in system 902, and is programmed to and resident on a host computer corresponding Synchronous applications interact, and with the information for be stored in nonvolatile storage 968 and are stored at host computer Corresponding informance keep synchronous.As will be appreciated that, other application can be loaded into memory 962 and in mobile computing Run in equipment 900.
According on one side, system 902 has power supply supply 970, and power supply supply 970 is implemented as one or more electricity Pond.According on one side, power supply supply 970 also includes external power source, for example, AC adapters or being supplemented battery or again The power supply docking support of charging.
According on one side, system 902 includes performing the radio 972 for sending and receiving radio communication function.Radio 972 promote to carry out wireless connection between system 902 and " external world " via communications carrier or service provider.To radio 972 Transmission and carried out from the transmission of radio 972 under the control of operating system 964.In other words, can be via operating system The communication received by radio 972 is disseminated to application program 950 by 964, and vice versa.
According on one side, visual detector 920 is used to provide visual notification, and/or COBBAIF 974 is used for via sound Frequency converter 925 produces audible notice.In shown example, visual detector 920 is luminous diode (LED), and audio converter 925 is loudspeaker.These equipment may be coupled directly to power supply supply 970 so that it is proper this When a little equipment are activated, even if processor 960 and other components may be closed to save battery electric power, these equipment are by notifying Also retain in the duration that mechanism determines and connect.LED can be programmed to indefinitely retain connection, until user take it is dynamic Untill work carrys out the "on" position of instruction equipment.COBBAIF 974 is used to provide a user audible signal and received from user Audible signal.For example, in addition to being coupled to audio converter 925, COBBAIF 974 be also coupled to microphone with Audible input is received, for example, for promoting telephone conversation.According on one side, system 902 also includes video interface 976, It causes the operation of on-board camera 930 to be able to record static image, video flowing etc..
Mobile computing device 900 according to system 902 on one side, is realized has additional feature or function.For example, move Dynamic computing device 900 includes additional data storage device (removable and/or non-removable), for example, disk, CD, Or tape.This additional storage is shown by nonvolatile storage 968 in figures 9 b and 9.
According to one side, the data/letter for being generated or being captured by mobile computing device 900 and stored via system 902 Breath is stored in the local on mobile computing device 900, as described above.According on the other hand, data storage is in any number In the storage medium of amount, any amount of storage medium can be set by equipment via radio 972 or via mobile computing Standby 900 and the separation associated with mobile computing device 900 computing device (for example, the server in distributed computing network Computer) between wired connection (for example, internet) conduct interviews.As it should be appreciated that, these data/informations can be through Conducted interviews by mobile computing device 900 via radio 972 or via distributed computing network.Similarly, according to one Individual aspect, these data/informations are easily transmitted for the data/information transmission known to and deposited between computing devices Storage means (including Email and collaboration data/information sharing system) are stored and used.
For example, the block diagram and/or operating instruction above with reference to method, system and computer program product describe this Disclosed aspect.Function/the action pointed out in frame can not occur according to the order shown in any flow chart.For example, depend on Involved function/action, two frames continuously shown can essentially be performed substantially concurrently, or have time-frame can be with Opposite is sequentially executed.
The description of one or more examples provided herein and explanation are not intended to limit or constrain in any way The scope of the present disclosure claimed.Aspect, example and details provided herein is considered as being enough passing on all Power, and other technical staff are made and using optimal mode claimed.The disclosure is not necessarily to be construed as It is limited to any aspect, example or details provided herein.Either still individually show and describe in combination, it is various Feature is intended to (both structure and method) optionally to be included or is omitted to produce showing with special characteristic set Example.In the case where being provided with the description of the present application and explanation, those skilled in the art, which are contemplated that, to be fallen into this application in fact Modification, modification and alternative exemplary within the spirit of the broad aspect for the present general inventive concept applied, this is without departing from the disclosure Relative broad range.

Claims (20)

1. a kind of method for being used to propagate document change, comprises the following steps:
Changed using complete operation and the text change carried out to basic file traveled into server, wherein, the server with The multiple users communication to be cooperated on the basic file;
The opaque change carried out to the basic file is traveled into the server using opaque object, wherein, it is described Opaque change includes the change that operation is not present for which;And
The unsustained change carried out to the basic file is traveled into the server using binary synchronous.
2. according to the method for claim 1, wherein, the unsustained change includes what the basic file was carried out Overall situation change.
3. according to the method for claim 1, wherein, the opaque object is based on state.
4. according to the method for claim 1, in addition to the opaque object band other places for representing big state is sent to institute State server.
5. according to the method for claim 4, wherein, represent big state the opaque object include it is following in one It is individual or multiple:Picture, video and Embedded Object link and embedded (OLE) object.
Used 6. according to the method for claim 1, being additionally included in when opaque change is traveled into the server to first Progress bar is presented in family.
7. according to the method for claim 1, also changed including the use of complete operation by the shape in the basic file The change that attribute is carried out travels to server.
8. according to the method for claim 1, in addition to using priority rule determine the opaque change of multiple conflicts Between priority.
9. according to the method for claim 1, wherein, the unsustained change includes what the basic file was carried out Theme is changed.
10. a kind of method for being used to propagate document change in Collaborative environment, including:
The detection editing type associated with the document change made in the Collaborative environment by the first user;
If the editing type has complete operation, conversion is supported, is changed the document using complete operation conversion and is propagated To server;
If the editing type indicates to occur in the specific region of the document change within said document but does not indicate institute The details of document change is stated, then document change is traveled into server using opaque operation;And
If the editing type is fully opaque, document change is traveled into service using binary synchronous Device.
11. according to the method for claim 10, in addition to if the editing type indicates that the document change influences institute The entirety of document is stated, then document change is traveled into server using binary synchronous.
12. the method according to claim 11, wherein, when the opaque operation is transmitted in the Collaborative environment Other users are locked in outside the document.
13. according to the method for claim 10, wherein, opaque operation includes representing the binary system of the document change blob。
14. according to the method for claim 10, in addition to the opaque operation is realized, but regardless of the document by shadow Ring the state of part.
15. create according to the method for claim 10, in addition to for the binary synchronous and only represent not opaque The opaque blob for the change that operation or complete operation conversion are supported.
16. according to the method for claim 10, the other binary synchronous of locking during being additionally included in the binary synchronous.
17. a kind of system for being used to propagate document change in Collaborative environment, including:
Multiple client, it is configured as providing editor to basic file;
Server, it is with the client communication that is configured to safeguard the basic file and the operation history for main document;
One or more processors, it is configured as performing the instruction of storage in memory, and the instruction includes:
Changed using complete operation and the text change carried out to the basic file is traveled into the server;
The opaque change carried out to the basic file is traveled into the server using opaque object, wherein, it is described Opaque change includes the change that operation is not present for which;And
The unsustained change carried out to the basic file is traveled into the server using binary synchronous.
18. system according to claim 17, wherein, one or more of processors are further configured to execution and referred to Order, the instruction also include:
By providing opaque blob, the multiple client of re-synchronization after binary synchronous to the multiple client End.
19. system according to claim 17, wherein, one or more of processors are further configured to execution and referred to Order, the instruction also include:
The change carried out to backstage document do not applied is repeatedly checked, until the backstage document is in the basic file Untill identical state.
20. system according to claim 19, wherein, one or more of processors are further configured to execution and referred to Order, the instruction also include:
Platform document is in after identical state with the basic file in the rear, for one in the multiple client Client exchanges the backstage document using active document.
CN201580067064.6A 2015-12-11 2015-12-11 Method, system, and computer-readable medium for propagating document changes Active CN107667361B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/966,216 US10171581B2 (en) 2014-12-11 2015-12-11 Blended operational transformation for multi-user collaborative applications
PCT/US2015/065367 WO2016094856A1 (en) 2014-12-11 2015-12-11 Blended operational transformation for multi-user collaborative applications
US14/966,216 2015-12-11

Publications (2)

Publication Number Publication Date
CN107667361A true CN107667361A (en) 2018-02-06
CN107667361B CN107667361B (en) 2021-06-01

Family

ID=61115890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580067064.6A Active CN107667361B (en) 2015-12-11 2015-12-11 Method, system, and computer-readable medium for propagating document changes

Country Status (1)

Country Link
CN (1) CN107667361B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112751903A (en) * 2019-10-30 2021-05-04 苹果公司 Collaboration environment supporting offline editing of shared documents

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477545B1 (en) * 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
US20030093694A1 (en) * 2001-11-15 2003-05-15 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US20110078246A1 (en) * 2009-09-28 2011-03-31 Bjorn Michael Dittmer-Roche System and method of simultaneous collaboration
CN102262620A (en) * 2011-08-04 2011-11-30 无锡永中软件有限公司 Document cooperation method
CN103109323A (en) * 2010-06-08 2013-05-15 吉比媒体集团公司 Systems and methods for multimedia editing
US8595202B2 (en) * 2007-10-03 2013-11-26 Siemens Aktiengesellschaft Method and system for intra-document object locking in collaborative authoring
US8712893B1 (en) * 2012-08-16 2014-04-29 Allstate Insurance Company Enhanced claims damage estimation using aggregate display
US20150339301A1 (en) * 2014-05-20 2015-11-26 Syn Holdings LLC Methods and systems for media synchronization

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477545B1 (en) * 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
US20030093694A1 (en) * 2001-11-15 2003-05-15 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US8595202B2 (en) * 2007-10-03 2013-11-26 Siemens Aktiengesellschaft Method and system for intra-document object locking in collaborative authoring
US20110078246A1 (en) * 2009-09-28 2011-03-31 Bjorn Michael Dittmer-Roche System and method of simultaneous collaboration
CN103109323A (en) * 2010-06-08 2013-05-15 吉比媒体集团公司 Systems and methods for multimedia editing
CN102262620A (en) * 2011-08-04 2011-11-30 无锡永中软件有限公司 Document cooperation method
US8712893B1 (en) * 2012-08-16 2014-04-29 Allstate Insurance Company Enhanced claims damage estimation using aggregate display
US20150339301A1 (en) * 2014-05-20 2015-11-26 Syn Holdings LLC Methods and systems for media synchronization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112751903A (en) * 2019-10-30 2021-05-04 苹果公司 Collaboration environment supporting offline editing of shared documents

Also Published As

Publication number Publication date
CN107667361B (en) 2021-06-01

Similar Documents

Publication Publication Date Title
US11656859B2 (en) Data model API for live applications in a cloud collaboration platform
CN104094251B (en) Collaborative communication in Web application
US10733553B2 (en) Action item extraction for work item creation
CN101896915B (en) Collaborative authoring modes
CN104221011B (en) Common creation conflict is tracked using document review
US10880372B2 (en) Blended operational transformation for multi-user collaborative applications
US11106862B2 (en) Combining modalities for collaborating while editing and annotating files
CN101983380B (en) Simultaneous collaborative review of document
KR102239587B1 (en) Automated system for organizing presentation slides
CN104081384B (en) For providing the system and method for calculating web services for online document
US10574599B2 (en) Method, system and recording medium for providing contents in messenger
US20160224549A1 (en) Methods, systems and recording mediums for managing conversation contents in messenger
KR20160014673A (en) Notes page sharing and notification features
EP3230893B1 (en) Method and system for concurrent collaborative undo operations in computer application software
US10063603B2 (en) Method and system for concurrent collaborative undo operations in computer application software
CN104067229B (en) Method and system for calculation of properties of objects/shapes across versions of applications
EP3230894B1 (en) Blended operational transformation for multi-user collaborative applications
CN104731765A (en) Resolving Content Editing Conflicts Arising From Concurrent Drafts
CN107667361A (en) Changed for the married operation of multi-user Cooperation application
CN109445966A (en) Event-handling method, device, medium and calculating equipment
US9563879B2 (en) Providing accurate recipient lists by correlating tagged keywords to recipient lists
CN106527961B (en) Method and apparatus for guaranteeing data consistency
US20240078373A1 (en) Dynamically composing and managing long form notes from short form note fragments

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200914

Address after: 98052 Microsoft Avenue, Redmond, Washington, USA

Applicant after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Delaware, USA

Applicant before: LIVELOOP, Inc.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant