CN107667361A - Changed for the married operation of multi-user Cooperation application - Google Patents
Changed for the married operation of multi-user Cooperation application Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, 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
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.
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)
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)
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 |
-
2015
- 2015-12-11 CN CN201580067064.6A patent/CN107667361B/en active Active
Patent Citations (8)
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)
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 |