CN1738254A - Method, system, and apparatus for enabling collaboration near to real time on electronic document through plurality of computer systems - Google Patents

Method, system, and apparatus for enabling collaboration near to real time on electronic document through plurality of computer systems Download PDF

Info

Publication number
CN1738254A
CN1738254A CN 200510066832 CN200510066832A CN1738254A CN 1738254 A CN1738254 A CN 1738254A CN 200510066832 CN200510066832 CN 200510066832 CN 200510066832 A CN200510066832 A CN 200510066832A CN 1738254 A CN1738254 A CN 1738254A
Authority
CN
China
Prior art keywords
token
synchronous
computer
synchronous token
computer system
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
CN 200510066832
Other languages
Chinese (zh)
Other versions
CN100571146C (en
Inventor
S·P·克拉克
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
Microsoft Corp
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
Priority claimed from US10/920,640 external-priority patent/US7818679B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1738254A publication Critical patent/CN1738254A/en
Application granted granted Critical
Publication of CN100571146C publication Critical patent/CN100571146C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

A method, system, and apparatus are provided for collaborating on an electronic document. According to the method, a data structure may be maintained at each of the computer systems participating in the collaborative session that represents the contents of a shared document. When user input is received at one of the computer systems modifying the document, the data structure is updated to reflect the modification. In response to the modification, the changes to the data structure are periodically identified and collected as a revision that identifies only the changes made to the data structure as a result of the edits made since the previous revision was taken. The revision is packaged and transmitted to each of the participants in the sharing session. The revisions are merged into the copy of the data structure stored at the participating computer systems.

Description

Can carry out the nearly mthods, systems and devices of cooperation in real time by a plurality of computer systems for electronic document
The cross reference of related application
The sequence number that this statement of requirement was submitted on April 20th, 2004 is 60/563.685, denomination of invention is the priority of the U.S. Provisional Patent Application of " OneNote shares session characteristic ", and this patent application integral body is quoted at this as a reference.
Technical background
Along with the arrival and the development of internet, produced the network calculations that allows remote client computer to work together and used for common task.For example, exist to allow the long-distance user to watch common blank, watch and interactive, each other chat and carry out other function in the mode of cooperation for a slideshow.For needing collaborative work but the remote user of being separated by, this program technic has improved operating efficiency usually.
Before coming a shortcoming of solution that a task is cooperated by computer network is at the user collaboration duration of work, and satisfied user experience can not be provided.For example, because lot of data will constantly send to all participants, previous described solution generally can make the decreased performance of network.In many cases, when data are transmitted, application program can sharply slow down or even hinder the user and import.Perhaps even become and feel disappointed to using software in this case, the user will perceive shared procedure significantly and carry out, and.
User experience becomes another poor fact and originates from, when cooperating by previous solution, for one group of given partner, they can with the network bandwidth and wait for that time-delay has very big-difference.Such as, in a given collaboration session, several users may be connected to high-speed local area network and connect, and other user may be limited by the connection of the Dial-up Network of low speed.Use previous solution, the user by dial-up connection may have great difficulty receiving and upgrade shared file.This also is very dejected concerning the user.
Various embodiment of the present invention just is being based on these factors and other consideration is made.
Summary of the invention
According to the specific embodiment of the present invention, above-described and other problem is by carrying out the nearly method of cooperation in real time by two or more computer systems to e-file, and system and device solve.The real-time mode of invention allows two or more users to participate in a shared session, by computer network, alternatively produces or revise e-file.Even the change of e-file in the high stand-by period, under the network condition of low bandwidth, still allows the nearly mode that takes place in real time of cooperation to be identified with a kind of, pack and send each user to.In addition,, send the participant then to, there is no need to transmit mass data and make nearly cooperation in real time become possibility because the change of file is packaged as the revision version of increment.
According to an aspect of the present invention, providing a kind of comes electronic document is carried out the nearly method of cooperation in real time by two or more computers.According to described method, a kind of data structure of shared file content of representing all can be kept on the computer system of each participation collaboration session.When the input of user's modification file was received by one of aforementioned calculation machine system, data structure just was updated to reflect this modification.For response modification, the revised edition as edited result is periodically discerned and is gathered in the change of data structure, and this version is only discerned the change of making.Revised edition identification change to making as the core data model of the file of any edited result.
In order to ensure the correct process in the editing mode, to judge earlier when sending revised edition to other participant whether the backup of the data structure of keeping on the computer system of accepting to edit is latest edition in all participants.If described data structure is not a current version, should from other participants, retrieves and to make described data structure become the revision version of current needed version, and be applied in the above-mentioned data structure and go.In case data structure is current, revision version is just packaged, is sent to the participant that each participates in sharing session.Revision version is received continually, is small enough to so that transmit fast by computer network to guarantee revision version.
When other computer systems that participate in session received revised edition, these revision versions just were merged into the backup that is stored in the data structure in the participating computer system.Then, this data structure is used to refresh the demonstration of shared file, thereby shows the nearly real time modifying in the computer system of any participation session.Editor can be received by the computer system of arbitrary participation session, and sends other participants in a similar manner to.
In order to guarantee the valid process of the editor in different participants further, synchronous token can be used.Synchronous token is a kind of data structure that transmits between the participant.The computer system that only has synchronous token just is allowed to the data structure is produced new revision.Therefore, before doing any revision, the participating computer system must Xian confirm earlier whether it has had synchronous token.If it has had synchronous token, it can formulate new revision version, and sends revision version to other participant.If it does not have synchronous token, it must be filed a request to the participating computer system that have synchronous token this moment so, the request synchronous token.
In the fairness that participates in transmitting between the computer system of session, the data that the computer system that shows request has been waited for the time of token have been comprised in order to ensure synchronous token for the request of token.If do not receive response for request, another request can be sent out and show that computer system waiting for the prolongation duration of this token always.When the synchronous token owner receives the request of asking for token, it can detect each request, determines to receive the longest participant of stand-by period in the token waiting for, then token is sent to that computer system.
Other mechanism also is used to guarantee in all participants, one and have only a token to exist.For example, if the request for token is not finished within the predetermined time, a new token can be produced.This situation can take place in following example, if a computer system that has token breaks connection from network.On the other hand, can periodically detect whether in the participant, there are two or more tokens.If there are two synchronous tokens to exist, deterministic algorithm can move on each has the computer system of token, should be abolished to determine which token.
Mechanism also is provided and is used for guaranteeing that the computer system by low bandwidth connects can be authorized token liberally.A plurality of tokens also can exist, but are to be used to minimize duplicate.According to this mechanism, when receiving the request that needs token, a judgement that judges whether that token has been transmitted to the another one participant is made.If token is transmitted, the value of " existence number of times " will reduce in the request.If it is expired that the existence number of times does not have, the request of asking for token is forwarded to the owner of new synchronous token.By this method, injected high bandwidth network effectively from low bandwidth connection participant's request.
The present invention may be implemented as computer procedures, a calculation element or the conduct a kind of goods as computer program and computer-readable medium.Computer program can be the computer-readable storage medium of computer system-readable and the program to the coding of computer program instructions that is used for that computer program carries out.
Read following detailed description in conjunction with the accompanying drawings, can obviously understand above-mentioned and others of the present invention, feature and advantage.
Brief description
Fig. 1 is the computer network figure that shows the each side of illustrative running environment with regard to various embodiment of the present invention.
Fig. 2 is the Computer Systems Organization figure of the each side of the computer system that provides and use with regard to various embodiment of the present invention.
Fig. 3 A is computer software architecture figure, and the each side of the more employed software sections of relevant various embodiment of the present invention has been described.
Fig. 3 B is a flow chart, has illustrated according to one embodiment of present invention and the process of a new shared session of initialization.
Fig. 4 A is computer software architecture figure, and the each side of the software component that is used has been described when adding an existing shared session.
Fig. 4 B is a flow chart, and an embodiment in having illustrated according to the present invention adds the process of an existing shared session.
Fig. 5 A is a screen map, and the screen display that is applied in embodiments of the present invention has been described.
Fig. 5 B is a data structure diagram, and the each side of the graphic data structure that is applied in embodiments of the present invention has been described.
Fig. 6 A and Fig. 6 B are data structure diagrams, and the process that produces revision version in different embodiments of the invention has been described.
Fig. 7 is computer software architecture figure, and the each side of some software parts that use in different embodiments of the invention has been described.
Fig. 8-the 12nd, state diagram, having illustrated according to different embodiments of the invention provides some steps of cooperating near in real time for electronic document.
Summary of the invention
Referring now to accompanying drawing, numbering similar among the figure is represented similar element, and various aspects of the present invention will be described.Particularly, Fig. 1 and corresponding the discussion are the brief and general descriptions that is used to provide the computing environment that is suitable for the present invention's realization.Although the present invention will describe in the general context of program module, this program module and operate in operating system on the personal computer together with execution those skilled in the art will recognize that the present invention's program module of also can unifying in conjunction with the department of computer science of other type realizes.
Generally speaking, program module comprises the execution special duty of routine, program, assembly, data structure and other type or moves the structure of special abstract data type.In addition, those technical staff in this area will understand also available other computer system configurations of the present invention and implement, these configurations comprise handheld device, multicomputer system, based on microprocessor or programmable consumer electronics, minicomputer, main frame, and similarly configuration.The present invention also can implement in distributed computing environment (DCE), and wherein task is by carrying out by the teleprocessing device of communication network link.In distributed computing environment (DCE), program module both can be placed in this locality and also can be placed in the remote memory storage device.
Referring now to Fig. 1, the illustrative running environment of several specific embodiments of the present invention is described.As shown in Figure 1, network 4 interconnects many computer systems (2A-2D).Should be realized that network 4 can comprise the computer network of any kind, comprise Local Area Network or as the wide area network (WAN) of internet and so on.Network 4 provides that the communication between any member becomes possible medium in the computer system that makes 2A-2D, also will make with other computer network that is connected by network 4 between communication become possibility.According to a specific embodiment of the present invention, network 4 has comprised a transmission control protocol/Internet protocol such as the internet (TCP/IP) network.
Each computer system in 2A-2D has comprised general desktop, portable computer, board or other can carry out the computer of one or more application programs.Particularly, according to various embodiments of the present invention, computer 2 is carried out the application of recording the note.Those skilled in the art understands, and the notes application program provides the function of catching and organizing the record that comprises text, handwriting, image, drawing, voice and out of Memory.
According to embodiments of the invention, the notes application program also allows used the nearly cooperation in real time of the file that produces by notes.Just as described herein, closely be in real time instigate refreshing of file on each computer system (2A-2D) that participates in collaboration session can accomplish with network 4 allowed the same fast.When computer system 2A-2D being connected under the situation of network 4 with high bandwidth network, the response time will be near in real time.When connecting with slower network, the response time is with slack-off.Then, just as will be below in greater detail, provide many mechanism also can enjoy good response performance, and the performance that is unlikely using the participant that higher bandwidth connects is subjected to negative effect to guarantee the computer system of sharing session by the participation that connects more slowly.
Comprise the fair transmission of synchronous token 6 even be used for guaranteeing the user also will have a response experience when connecting slowly a kind of method.Synchronous token 6 transmits between the computer system 2A-2B that participates in shared session.Synchronous token 6 is a kind of data structures, and its feasible computer system that has it of authorization computer system can refresh shared file to current state.The ownership of token will not stop the user to do local change.Relevant utilization synchronous token 6 provides the more details of nearly cooperation in real time to provide in about Fig. 2-11 following.
Should be appreciated that according to one embodiment of present invention the ONENOTE notes application program that comprises from the Microsoft of Redmond is used in notes.Yet should be appreciated that various aspects of the present invention described here also can with from other producer the notes application program use together.In addition, though many aspects of the present invention described here are introduced in the context with the notes application program, the application program that is to be understood that other type also can be used for implementing various aspects of the present invention.For example, various aspects of the present invention can be used with word processing program, electronic chart program, mapping program, computer-aided design system, display routine and any computer program that can be used to other type that document content is cooperated with one or more users.
Referring now to Fig. 2, description is used in the illustrative computer architecture of the computer 2 among the various embodiment of the present invention.Computer architecture shown in Figure 2 shows conventional desktop computer, portable computer or notebook, comprises central processing unit (CPU) 8, has comprised system's storage 12 of random-access memory (ram) 18 and read-only memory (ROM) 20 and the system bus 10 that memory is linked to each other with CPU8.One comprises help and is stored among the ROM20 such as the basic input/output that transmits the base program of information between the starting period in the computer-internal parts.In addition, computer 2 also comprises and is used for the big storage capacity device device 14 of storage operating system 32, application program and other program module, will be described in detail below.
Big storage capacity device device 14 is connected to CPU8 by the big storage capacity controller (not shown) that is connected on the bus 10.Big storage capacity device device 14 and the computer-readable medium that interrelates with it provide non-volatile memories for computer 2.Though be meant that for the description of computer-readable medium big storage capacity device device such as hard disk or CD drive, those those of skill in the art should think here, computer-readable medium can be any medium that can be visited by computer 2.
As an example, and unrestricted, computer-readable medium can comprise computer-readable storage medium and communication media.Computer-readable storage medium comprises any medium that is used for storing such as the method for information such as computer-readable instruction, data structure, program module or other data or volatibility that technology is used and non-volatile, mobility and non-mobility.Computer-readable storage medium comprises, but non-being confined to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state storage technologies, CD-ROM, Digital video disc (DVD) or other optical memory, cassette tape, tape, magnetic disc store or other magnetic memory device, perhaps any other can be used to store needed information and can be by the medium of computer 2 accesses.
According to various embodiments of the present invention, computer 2 can be an employing by TCP/IP network 4, is connected to such as the logic of internet in the networked environment of remote computer to move.Computer 2 can be connected to network 4 by a network interface unit 16 that is connected to bus 10.Should be appreciated that network interface unit 16 also can be used for being connected to the network and the remote computer system of other type.Computer 2 also can comprise being used for receiving and handling and comprises the i/o controller 22 of the input of keyboard, mouse or electronics input pen (not demonstrating) device from many other in Fig. 2.Similarly, i/o controller 22 can be provided to the output device output of display screen, printer or other type.
Briefly mention just as above, many program modules and data file, comprise such as personal computer operation's the operating system 32 that is suitable for controlling networking, can be stored in the big storage capacity device 14 and RAM18 in the computer 2 from the WINDOWS XP operating system of Washington state Lei Mengde Microsoft.Big storage capacity device 14 and RAM18 also can store one or more program modules.Particularly as mentioned above, big storage capacity device 14 and RAM18 can store notes application program 24.Use 24 just as the notes of above Short Description and comprise the application program of catching and organizing the record that can comprise text, handwriting, picture, drawing, voice or out of Memory.
Record can be used 24 by notes and be organized in notebook, file, page or leaf and the joint.In a page, annotation can be placed everywhere and can be relocated subsequently.In addition, can be by adding mark of emphasis and tabulation mode, also serviceable indicia and highlighted mode and annotation is emphasized.Font, style, size and color also can be controlled fully.When the user withdrawed from notes and uses 24, the content in the notebook can be stored in the note document 26 on big storage capacity device 14.Other details of relevant ONENOTE notes application program operation can openly be obtained from Redmond Microsoft.
Share the session document in order to create, notes are used 24 and are used equity (" P2P ") API (" API ") 28.P2P API 28 utilization network port API30 are provided at transmission protocol layer and the session protocol layer and internet services media independent.The media independent of P2P API is meant that collaboration session can be at the TCP/IP network, and IPX network and other move on direct-connected modulator-demodulator and serial cable.P2P API 28 can create the p2p foundation structure that transmission of messages, message are cut apart and reorganization, traffic flow restraining, message priority, connection statistics amount and session specification are inquired about of transmission of messages, order and the non-order of the networking session, management and group, assurance and the non-assurance that comprise client/server and equity.
According to concrete an enforcement of the present invention, P2P API 28 comprises the DIRECTPLAYAPI from Microsoft.DIRECTPLAY API is a disclosed API, and more other details of using and realizing about it can openly be obtained from Microsoft.Should think that other technology that can obtain from other manufacturer also can be in order to produce equity networking session between computer 2A-2D.
Big storage capacity device 14 and RAM18 also can storage of e-mails client applications 34.Email application 34 can be used for sending and receive to comprise adding the Email of sharing session invitation.For example, the user of one of computer 2A-2D can use in notes and begin in 24 to share session, and wherein one or more pages of note document 26 are shared.In order to invite other participants to share session, client email is used 34 and can be used for creating and point to other and planned the participant's that participates in Email.This Email can comprise one with the relevant annex of notes application program 24, comprise in the annex for being connected to the shared required information (internet protocol address etc.) of session.
When one of them plans the recipient of participant session when receiving from email message that session initiator is sent, the annex in this message can be selected and be carried out.The execution of annex can cause taking down notes application 24 and carry out and be connected in the shared session with the data that comprised in the annex.In case be connected to shared session, a copy that is formed by shared document all can be arranged in each participant's the computer system.By this mode, when the user joined shared session, the page can be used 24 by notes and be inserted in the notebook that is stored in their computer.Along with each participant who shares in the session has done editor for document, the various copies of document subsequently just can synchronized with each otherization.Session initiator can stipulate whether the user can be based on individual or the shared document of global editing.
Synchronized other details of relevant electronic document change will provide below.Be to be understood that and invitation email must do not sent to the participant who shares session.The network address of sharing session can manually or by other approach be provided by the participant.The network address can be used for subsequently with manual mode and shared session connection.
Forward Fig. 3 A now to, the more relevant details of creating new shared session will be provided.As shown in Figure 3A, document 26 comprises one or more sharable page 40A-40C.When the request of beginning new session is received,, asks promptly to be sent to the 24 session API 44 that have been shared that provide are provided by notes such as by selecting user interface button or menu option 46.The creation of the shared session of shared session API 44 coordinations and adding, managing conversation call this P2P API 28 to carry out communication; In addition, API 44 also carries out other functions described herein.
When creating new shared session, the page synchronization object 42A-42C that the session API 44 that has been shared is promptly new to the establishment one of each page 40A-40C that will be shared.Each page synchronization object 42A-42C is connected to and has shared page 40A-40C accordingly.Just as what will encyclopaedize below, each page synchronization object 42A-42C be responsible for monitoring each page based on the change of data model, create the revised edition of describing this data model of change, and revised edition is sent to the corresponding page synchronization object of carrying out on the computer system of each participation session.Page synchronization object 42A-42C also is responsible for receiving, merging the revised edition that receives from other computer system, also is responsible for carrying out other function described here.
With reference to Fig. 3 B, a routine 300 now will be described, the process of being carried out by notes application program 24 that is used for a new document sharing session of initialization is described.When reading, be to be understood that logical operation among the various embodiment of the present invention is implemented as sequence or program module and/or (2) interconnective logic of machine circuit or circuit module in computing system that (1) operates in computer implemented action on the computing system in this represented discussion to routine and state machine.This realization is a problem that makes a choice according to realization computing system operation demand of the present invention.Therefore, logical operation and realization the specific embodiment of the present invention described here at this description status figure that discusses all are meant various operations, structure devices, action or module.Person of skill in the art will appreciate that these operations, structure devices, action or module can realize with software, firmware, special digital logic and any combination thereof, and do not depart from the spirit and scope of the present invention cited in this claims.
Routine 300 begins at operation 302 places, is received such as a request from the user, in order to share one or more pages of current notes file herein.As to request responding, routine 300 proceeds to operation 304, calls P2P API 28 to create a new peering session at this session API 44 that shares.Routine 300 proceeds to operation 306 from operating 304, for each page 40A-40C that will be shared, creates a new page synchronization object 42A-42C at this in new session.Each page synchronization object 42A-42C is linked to page 40A to 40C, and is connected to new shared dialogue.Be to be understood that the page synchronization object on participant's computer system also is initialised, with the renewal of the page of control store on computer system when a participant adds in the previous session of creating.
From operating 306, routine 300 proceeds to operation 308, can be invited this participant to add new shared session.With regard to the above, adding the invitation letter of sharing session can send other participants to by email message.Perhaps, alternate manner also can be used to invite the participant and the network address of shared session is sent to other participant.Routine 300 proceeds to operation 310 again from operating 308, at this, determines whether that other participants have joined in the shared dialogue.Be to be understood that when waiting for that other participants add shared session and during shared session, notes are used 24 and can be moved in a usual manner.
If, at operation 310 places, to determine not have other participant to join and share in the session, routine 300 just turns back to operation 310, makes another similar determining at this.Yet if other users have joined in the new shared session, routine 300 just proceeds to operation 312.In operation 312, the latest revision of each shared page 40A-40C is transmitted to each new participant.As will encyclopaedizing below, revised edition has identified for the change that is used for representing as the core data model of the document 26 of any edited result.Because there is not revised edition to send the participant to before, first revised edition has comprised the good working condition of shared file.This is transmitted to other participant in operation 312.
Routine 300 proceeds to operation 314 again from operating 312, and at this, the change of being made by any participant to shared document is exchanged and synchronization.Go by exchanging revised edition in mode described here and revised edition being merged in the shared document, nearly cooperation in real time can be performed, even the user is connected to network 4 by slow speed network.Synchronized other details of relevant shared file will contrast Fig. 8-11 below and provide.
From operating 314, routine 300 proceeds to decision operation 316, has determined at this whether share session finishes.Do not finish as yet if share session, routine 300 rotates back into operation 314, continues the synchronization process at this.If session finishes, routine 300 proceeds to operation 318, and in this end.
Referring now to Fig. 4 A, the relevant more details that add the previous shared session of creating will be provided.As mentioned above, email message can be transmitted as adding the invitation letter of sharing session.This Email can comprise annex 50, and this annex comprises the session address 52 of sharing session.When annex 50 is downloaded to a computer system, be called in an adding method 54 that has on the shared session API44 of session address 52.As to calling the response of adding method 54, share one of session API 44 usefulness and add shared session instruction calls P2P API 28, in response, P2P API 28 can be connected to shared session by network 4.More details of relevant this process contrast Fig. 4 B below and describe.
Fig. 4 B has represented the process of the previous shared session of creating of an illustrative adding.Routine 400 is received the invitation letter that adds existing shared session from operating 402 at this.Invite when selected when this, routine 400 proceeds to operation 404, is stored in the request of the existing shared session of P2P API 28 usefulness adding on participant's computer system at this.Whether then, routine 400 proceeds to operation 406, be determined to the connection of sharing session at this and set up.Can not set up if connect, routine 400 proceeds to operation 414 and finishes.Be established if connect, routine 400 just proceeds to operation 408 from operating 406.
At operation 408 places, the current revised edition 408 of shared document is received by participant's computer.Because the revised edition of before not accepting, first revised edition just comprises the state of document when the participant adds session.In case receive current revised edition, routine 400 proceeds to operation 410, and the content of all participants' in sharing session the shared page is synchronized at this.More relevant synchronized details of the page of sharing will provide at Fig. 8-11.
From operating 410, routine 400 proceeds to decision operation 412, makes at this and shares definite that whether session has finished.Do not finish as yet if share session, routine 400 turns back to operation 410, continues synchronized process at this.If session finishes, just routine 400 proceeds to operation 414 and finishes.Can add shared session at 4A and the described method of 4B no matter should be appreciated that how many participants.
Referring now to Fig. 5 A and 5B, use 24 operation and notes about notes and use the 24 more details of data structure that are used for representing pages and will be provided.Fig. 5 has represented to be used by notes the illustrated examples of 24 screen displays that provide.Shown in the example page of showing out on Fig. 5 A, on behalf of a user, this screen display can be the page 40D of annotation in the above.Particularly, the user can use notes to use 24 outline object 60A is added to page 40D to get on.This outline object 60A can comprise one or more outline elements, such as text 62A and handwriting 62B.Text 62A can import with keyboard, and person's handwriting 62B can use electronic pen to draw.Picture 64 also can insert page 40D.Should think that the demonstration shown in Fig. 5 A is exemplary, the data of other type also can be added page-in 40D.
Fig. 5 B has shown by notes and has used 24 data structures of keeping in order to the content of the page 40D shown in the representative graph 5A.Particularly, directed acyclic graph (DAG) 70A is used to the content in inner representing pages.On the top of DAG70A, node 72A creates corresponding to page 40D.Below node 72A, node 73A creates corresponding to outline elements 60A, and node 80 is created corresponding to picture 64.Below node 73A, node 74A and 74B are corresponding to profile 62A and 62B and create.Below node 74A, node 76A is created in order to the storage actual content, and in this situation, for profile 62A, text is " hello ", similarly, below node 74B, node 78 is created in order to be stored in the handwriting among the profile 62B.By this way, notes application 24 can be represented and have careless what the data objects and the careless how high page of complexity.Be to be understood that DAG70A is to using 24 each page of keeping by notes and being created.The content that also is to be understood that DAG is unimportant for synchronized process.Data in any DAG of being contained in node can be synchronized.In this way, feature can be added in the notes application 24 and go, and also can use 24 from notes and remove, and can not influence synchronization mechanism., can be identified and in sharing session, send other participants to more detailed description as below the change of each page DAG as revised edition.
Referring now to Fig. 6 A and Fig. 6 B, the details of the process of a DAG revised edition of the shared page of relevant captured representative will be described.Fig. 6 A illustrates an illustrative page 40E who comprises outline object 60B and be included in the text 62C in the outline object.The content of DAG 70B representing pages 40E.Particularly, node 72B representing pages object, node 73B represents outline object 60B, and node 76B represents text 62C.When a new shared session began, any content of DAG did not all send other participants to.Therefore, whole DAG is considered to a revised edition 80A that must be transmitted to other participant.In case other participants receive DAG 70B, have only the change that DAG 70B is made between the participant, to exchange.This process is shown in Fig. 6 B.
Fig. 6 B demonstrates above-mentioned at the described page 40E of Fig. 6 A, the additional text 62D that adds.Text " BAR " be added among the page 40E by the user.As a result, DAG70B has been updated and has comprised that new node 76C represents new text.For the change among the DAG 70B being propagated to other participants in sharing session, a new revised edition 80B is got makes the data structure.
New revised edition 80B only comprises from nearest revised edition by that part of by the DAG of user change after obtaining.Therefore, new revised edition 80B only comprises the node 76C of the text that has comprised new interpolation.As will encyclopaedizing below, in case be hunted down, revised edition 76C can be serialized into byte stream and be propagated to other participants.When revised edition 76C was received by other participants, its content was added in the copy of the local DAG70B that stores, with the change of being made by the user in each participating computer system place reflection.DAG70B is used to present the page on each computer system then, reflects change thus, but the participant must have desired related amendments version.If relevant revised edition does not exist, they must be requested.Increase progressively because present, so be effectively and rapidly.About more details of transmission, synchronization and the merging of revised edition will provide below.
Referring now to Fig. 7, about the more details of mechanism that transmit and use revised edition among each participant who is used in sharing session will be provided.Fig. 7 has illustrated computer system 2A and the computer system 2B that participates in sharing session.As mentioned above, computer system 2A and 2B all keep the copy of sharing page 40F and 40G.In addition, computer system 2A and 2B each also all keep and be linked to the page synchronization object of sharing the page.Computer system 2A keeps and is linked to page 40F and 40G corresponding page synchronization object 42F and 42G respectively.Computer system 2B keeps page synchronization object 42H and the 42J that is linked to page 40F and 40G respectively.
Share the communication between the participant in the session in order to simplify, peer-to-peer network is divided into many passages.The designated gap marker of each information that between the participant, exchanges number, and also transmit with message in order to the data of identification channel number.Each page synchronization object " is listened to " information on the passage of oneself.For example, as shown in Figure 7, page synchronization object 42F and 42H communicate by transmit a channel information 90A on article one communication port.Similarly, page synchronization object 42G and 42J communicate by transmit a path message 90B on the second communication port.Other page synchronization objects can communication in a similar manner on other passages.
When a new participant added existing shared session, a piece of news was transmitted to the computer system that session is begun.As to receiving the response of this message, main frame sends current revised edition to new participant in the mode of foregoing description.Each page all transmits on a new passage.When a participant receives a piece of news on passage, just this passage is created a new page synchronization object.The participant also creates a new page and new page link is arrived new synchronization object.When current revised edition is transmitted for the first time and other revised edition and onrelevant, so the revised edition that receives can be used to replace the new page of creating.By this way, the new page and new page synchronization object are created in a kind of automatic mode on each participates in the computer system of session.
Should be appreciated that also, transmit for the basis that the user can edit the different pages and the possibility that do not cause clashing simultaneously in editor and revised edition because page message is based on by passage.Yet if a plurality of user edits the identical page simultaneously, comprising the possibility that revised edition that each user edits all can be removed simultaneously and be placed on the network will occur.This state that may cause another possibility promptly to occur on network is inconsistent.For fear of this possibility, various embodiments of the present invention are used in the synchronous token that transmits among the participant.This synchronous token is the data structure that a kind of person that can ratify to have the token produces the next revised edition of DAG data structure.And if only if, and a participant has had synchronous token, just can go through the data structure is declared revision.Should be appreciated that the locality modification that will make does not need to have synchronous token.The process of utilization synchronous token will be described below at Fig. 8.
Referring now to Fig. 8, an explanation specifies the illustrative state machine of the process of a newly revised edition to be described to shared data structure.State machine starts from state 802, judges for data structure whether made local change at this.If do not make any change as yet, just there is no need to declare new revised edition.Therefore, if do not make any change as yet, state is got back to state 802.If there is change to be made, state machine carries out the transition to state 803.At state 803, before creating a revised edition, to spend one section preset time and wait for.This guarantees the unlikely taking-up too continually of revised edition.
From state 803, state machine carries out the transition to state 808.At state 808, the computer system that judges whether to make editor is the owner of current synchronous token.If this computer system is current owner, state machine carries out the transition to state 804.If this computer system is not current owner, state machine carries out the transition to state 810, is transmitted to the current owner of token in this request of asking for token.State machine carries out the transition to state 812 then.
At state 812, judge whether that synchronous token is received.If token is received, state machine carries out the transition to state 804.If token is not received as yet, state machine carries out the transition to state 814.At state 814, waiting for that always the time of the computer system that receives synchronous token is increased.As following will the detailed description in detail, the time of stand-by period with the request synchronous token is included in.When which computer system the decision synchronous token should send to, these data were utilized by a participant.Especially, wait for that the longest computer system of synchronous token time is given synchronous token.More details of relevant this process will be described below.
From state 814, state machine carries out the transition to state 816.At state 816, judge also do not obtain any response when whether using up at the fixed time about the synchronous token request.If the time cycle of an elongated segment uses up, this just can illustrate that token loses, and for example the token owner just disconnects from network 4 and connecting.Therefore, if should pass by the time cycle, state machine carries out the transition to state 818, creates a new token at revised edition/state that this utilization is current as the basis.If should the time cycle not in the past, state return state 810 is asked for the request of synchronous token and stand-by period of upgrading is transmitted together in this another one.The token owner also can select the refusal request, will receive a refuse information in this case.The requestor will wait for a period of time, and then request, just rotate back into state 810.
From state 818, status transition is to state 804, judges at this whether the current state of DAG has been caught up with every other by revised edition that other participants did.If this chart is not current up-to-date, status transition makes the necessary revised edition of currentization of data structure be requested here, and is received from other participants there to state 806.In case essential revised edition is received, state machine turns back to state 804 from state 806.
If at state 804, the specified data structure is current, and state machine is transferred to state 822, is removed with said method in this revised edition, and is serialized so that transmit by network 4.Status transition is to state 826 then, and one of them reference with the ID form is placed into token.Status transition is pushed to all participants in shared session to state 828 at this token and revised edition then.If the user is not limited described as following, state just turns back to state 802 from state 828 so.According to the specific embodiment of the present invention, there is restriction scheme, so that have only when the participant has finished processing to other received nearest revised editions revised edition just to push this participant to.When the participant finishes processing to its nearest revised edition, up-to-date revised edition just is sent out thereupon.If the participant can not be synchronous with the flow process of revision, some revised edition will be leaked so.This is equivalent to reduce " frame rate " for the participant.About the existence of the revised edition that receives being integrated with data structure, detection and a plurality of tokens of correction, receive and the details that responds the request of asking for token will be discussed in more detail below at Fig. 9-11 in a kind of mode of justice.
Forward Fig. 9 now to, an illustrative state machine 900 will be described the process that receives the token that comprises a revised edition with explanation.State machine 900 starts from state 902, is received in this a synchronous token notice.It is signs of the owner of token that the token owner propagates them continually.If such sign is received, state machine 900 will proceed to operation 904 thereupon, determines whether there are two synchronous tokens in the participant of shared session at this.This determines that whether having had token with the participant who determines to receive this notice makes.If so just there are two tokens.If there is no two tokens, status transition is to state 912.If truly have two tokens to exist, just state carries out the transition to state 906.
906, one of states with deciding in two tokens " competition " which should which should be abolished by utilization be performed.This competition comprises one and has the certainty algorithm of all carrying out on the computer of synchronous token at two.For example, which this algorithm integer identification number that can simply relatively be assigned to each fellow's uniqueness decides bigger.There is the bigger fellow of identification number to win competition, has the less fellow of identification number then to lose competition.The certainty algorithm that will be understood that other types also can use.
If at state 906, this computer system is determined and wins competition, and status transition is to state 908, and the instruction of deleting its token this instruction fellow is transmitted to fellow's body that other have token.State is transferred to state 912 thereupon, and in this end.By this way, the lawful owner of token can continue its process in normal mode.
As at state 906, this computer system has been lost this competition, and status transition is to state 910, and deleted at this token of receiving, state carries out the transition to state 912 thereupon, this token owner and recently the ID of revised edition be recorded so that quote in the future.This information is used to later on learn from whom asks token there.From state 912, state machine 900 carries out the transition to state 916 and in this end.Should be appreciated that in the process shown in Fig. 8,9,10 and 12 and moved independently, and may be by parallel running.
Forward Figure 10 now to, receive and respond the illustrative state machine 1000 of asking for the synchronous token request and will be described in a kind of mode of justice.State machine 1000 starts from state 1002, is received in this request of asking for synchronous token.State machine carries out the transition to state 1004 from state 1002, at this, wants one period predetermined time period before continuing.Status transition determines at this whether synchronous token has been forwarded to an other fellow to state 1006 then.If synchronous token is not forwarded, state machine 1000 carries out the transition to state 1008.
At state 1008, if receive the request of asking for token more than, the request time of making definite which token such as grade is the longest.State machine 1000 carries out the transition to state 1010 subsequently, this token be sent to send ask for the synchronous token request after the longest computer system of stand-by period.In this way, wait the longest fellow of token time will receive token.From state 1010, state machine 1000 carries out the transition to 1012 and in this end.
If determine that at state 1006 token has been sent to another fellow, state machine carries out the transition to state 1014.At state 1014, " existence number of times " value of setting up in the request of asking for synchronous token subtracts 1.Existence time numerical value referred to before it is expired, transmitted the number of times of request should for new synchronous token owner.Whether state machine is carried out the transition to state 1016 then, ask expired in this judgement.If ask expiredly, state machine carries out the transition to state 1012 and in this end from state 1016.If it is expired that request does not have, according to existence time numerical value, status transition is forwarded to new synchronous token owner to state 1018 in this request (the existence time numerical value that comprises minimizing).By this formula, one for synchronous token evening to request also can be injected in the express network.From state 1018, status transition is to state 1012 and in this end.
Forward Figure 11 now to, illustrative state machine 1100 will be described to show that the present invention is in collaboration session each user being assigned the independent characteristic of cancelling storehouse for each.State machine 1100 is kept on the computer system of the shared session of each participation at this storehouse of cancelling for each page from state 1102.This cancels stack trace to the change that DAG did, so that these changes can " be cancelled " afterwards according to client's request.
From state 1102, state machine 1100 carries out the transition to state 1104, determines whether to receive one at this and cancels request.If anyly cancel request and do not receive that all state machine 1100 turns back to state 1102.If receive the request of cancelling, status transition at this, is carried out oppositely merging editor to determine be undone for DAG to state 1106.Status transition is created one at this and is comprised the new revised edition of cancelling editor to state 1108 then.State machine carries out the transition to state 1110 subsequently, is propagated to other participants that share in the session in this this new revised edition.By this way, each can easily be cancelled by the editor that any personal user does at any independent page.From state 1110, state machine 1100 carries out the transition to state 1102 and in this end.
Referring now to Figure 12, the illustrative state machine 1200 of a merging to the revision of picture described.State receives revised edition from state 1202 at this from network.If revised edition is the recent release (if just old revised edition is received, they are not used among the DAG) for DAG, state carries out the transition to state 1204 subsequently, determines whether to exist local change at this.If do not do local change, status transition is directly used on the picture in this revised edition that receives to state 1212.State carries out the transition to state 1210 subsequently and returns at this.
At state 1204, to make if determine the limitation change, status transition is to state 1206.At state 1206, determined whether that synchronous token is available.If token is for using, status transition returns to state 1210 and at this.In this way, if receive new revised edition and document has been made change, at state 1208,3 tunnel merging are performed and this locality change are added on the revised edition of just having received.Any local change all sends other participants in above-mentioned process in conjunction with Fig. 8 general description.
If at state 1206, determining does not have token available, and status transition has been carried out the road merging to state 1208 at this.Being input as of 3 tunnel merging:, come the renewal (from revised edition, deriving) and the local change of automatic network as the baseline of the nearest revised edition that from network, receives.By the current state to picture, local editor and the revised edition that receives have been carried out the road merging, and the nearest revised edition of a picture can be calculated, and is compiled as revised edition and still keep this locality, so that when having token to provide in the future, send other participants to.From state 1208, status transition is to state 1210 and in this end.
According to the above, should think that various embodiment of the present invention comprises electronic document nearly a kind of method, system, establishing and the computer-readable medium of cooperation in real time.Above detailed description, example and data provide a relevant complete description of making and using composition of the present invention of finishing.Because many embodiment of the present invention can finish under the situation that does not depart from spirit and scope of the invention, the present invention belongs in the hereinafter additional claim.

Claims (20)

1. can make the nearly method of cooperation in real time to electronic document by a plurality of computer systems for one kind, this method comprises:
Keep the data structure of representing the entire electronic document content;
Receive user's input on first computer system of a plurality of computer systems, above-mentioned user's input comprises the modification for data structure;
In response to modification, create only identifying the revised edition that the data structure is made an amendment to the data structure; With
Revised edition is sent to each computer system except making this input thereon.
2. method according to claim 1 further comprises:
Receive described revised edition on second in a plurality of computer systems;
Revised edition merged into the data structure version on second computer system that maintains in a plurality of computer systems;
The content of video data structure on second computer system in a plurality of computer systems.
3. method according to claim 2 further comprises prior to sending revision version:
Whether the specified data structure is current on first computer system; With
If data structure is not current, extract and be merged into essential revised edition so that currentization of data structure.
4. method according to claim 3 further comprises prior to sending revised edition:
On first computer system, determine whether the owner that this first computer system is a synchronous token;
In response to first computer system is not the definite of synchronous token owner, and the owner asks synchronous token to synchronous token; With
In response to first computer system is determining of synchronous token owner, revised edition is sent to each of a plurality of computer systems outside the computer system of making this input thereon.
5. method according to claim 4 is characterized in that asking synchronous token to comprise from the synchronous token owner:
Produce a request of asking for synchronous token, described request comprises and shows that first computer system waited for the data of the duration of synchronous token;
Request is sent to the computer system that has synchronous token;
Determine whether synchronous token is received;
In response to determining that synchronous token is not received as yet, produce a new request of asking for synchronous token, described new request comprises and shows that first computer system waited for the data of duration of the prolongation of synchronous token; With
New request is sent to the computer system that has synchronous token.
6. method according to claim 5 further comprises:
Receive synchronous token;
Determine whether to exist two synchronous tokens; With
In response to there being determining of two synchronous tokens, carrying out one and calculate to determine which token should be deleted in two tokens.
7. method according to claim 5 further comprises:
Receive a request of asking for synchronous token;
In response to this request, determine whether synchronous token before had been sent in a plurality of computer systems;
If synchronous token before was not sent out as yet, the longest request to synchronous token of synchronous token elapsed time is waited in identification; With
With synchronous token send to send ask for the synchronous token request after the stand-by period through the longest computer system.
8. method according to claim 7 further comprises:
If synchronous token before had been sent out,
The survival value of asking in the synchronous token request is subtracted once,
Judge the survival value number of times whether greater than 0 and
If the survival value number of times greater than 0, is transmitted to request the current owner of synchronous token.
9. method according to claim 8, data structure wherein comprise a directed acyclic graph.
10. one has computer executable instructions to be stored in wherein computer-readable medium, when above-mentioned instruction is carried out by computer, can cause the computer enforcement of rights to require 1 described method.
11. an energy enforcement of rights requires the computerized equipment of 1 described method.
12. the method that can carry out nearly real-time cooperation for a page of electronic document by a plurality of computer systems, said method comprises:
Keep a chart on each computer system, the chart of this connection has identified the content of the electronic document page;
First computer system receives the change for the page in a plurality of computer systems, causes the change of corresponding chart for the change of the page;
The revised edition that produces chart is to respond described change, and described revised edition comprises change has been carried out in only identification to chart data;
First the revised edition of rice in a plurality of computer systems sent to other each computer systems; With
Revised edition is integrated with in the chart that maintains on other each computer systems.
13., further comprise prior to sending revised edition according to the described method of claim 12:
Determine whether that in a plurality of computer systems first is the owner of synchronous token; With
Only when being the owner of synchronous token, first computer system transmits revised edition.
14., further comprise according to the described method of claim 13:
Receive one or more requests of asking for synchronous token from other computers on first computer system, each request has indicated the computer of the request of sending for receiving the time quantum that synchronous token has been waited for;
In response to receiving one or more requests of asking for synchronous token, determine in request, to have waited for the longest computer of synchronous token time;
Synchronous token is sent to the longest computer of waiting time.
15., further comprise in response to receiving one or more requests of asking for synchronous token according to the described method of claim 14:
Determine whether synchronous token before was forwarded; With
Before be forwarded in response to definite synchronous token, in the request of asking for synchronous token that each receives, survival value reduced once, and forwarded the request to the current owner of synchronous token.
16., further comprise according to the described method of claim 15:
Determined whether that two synchronous tokens exist; With
Exist in response to defining two synchronous tokens, carrying out a recognizer on each has the computer system of synchronous token should be deleted with which synchronous token of determining two synchronous tokens.
17., further comprise according to the described method of claim 16:
Carry out a page synchronization object in a plurality of computer systems each, described synchronization object can be operated the revised edition that is used for listening to the page on communication port, receives the revised edition to the page, and revises chart when revised edition is received.
18. according to the described method of claim 17, wherein electronic document comprises a plurality of pages, and wherein all creates a synchronous object for each page.
19. one has computer executable instructions to be stored in wherein computer-readable medium, when above-mentioned instruction is carried out by computer, can cause the computer enforcement of rights to require 21 described methods.
20. an energy enforcement of rights requires the computerized equipment of 12 described methods.
CNB2005100668324A 2004-04-20 2005-04-20 Can carry out the nearly mthods, systems and devices of cooperation in real time by a plurality of computer systems for electronic document Expired - Fee Related CN100571146C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US60/563,685 2004-04-20
US10/920,640 US7818679B2 (en) 2004-04-20 2004-08-18 Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
US10/920,640 2004-08-18

Publications (2)

Publication Number Publication Date
CN1738254A true CN1738254A (en) 2006-02-22
CN100571146C CN100571146C (en) 2009-12-16

Family

ID=36080922

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100668324A Expired - Fee Related CN100571146C (en) 2004-04-20 2005-04-20 Can carry out the nearly mthods, systems and devices of cooperation in real time by a plurality of computer systems for electronic document

Country Status (1)

Country Link
CN (1) CN100571146C (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060504B (en) * 2007-04-13 2010-12-08 中兴通讯股份有限公司 A method for negotiating the next generation of network media gateway fax switching mode
CN102147660A (en) * 2011-03-22 2011-08-10 百度在线网络技术(北京)有限公司 Method and device for input based on multi-user cooperative editing
CN103946794A (en) * 2011-09-30 2014-07-23 Emc公司 Cross-reference and priority claim to related applications
US9330122B2 (en) 2011-09-30 2016-05-03 Emc Corporation System and method of dynamic data object upgrades
CN109918345A (en) * 2019-02-22 2019-06-21 腾讯科技(深圳)有限公司 Document processing method, device, terminal and storage medium
CN110413202A (en) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 Data copy method, equipment and computer program product
CN111542790A (en) * 2018-05-17 2020-08-14 贝克霍夫自动化有限公司 Method for processing software items

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1146816C (en) * 2001-10-25 2004-04-21 英业达股份有限公司 Multimedia program system and method for managing story of play

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060504B (en) * 2007-04-13 2010-12-08 中兴通讯股份有限公司 A method for negotiating the next generation of network media gateway fax switching mode
CN102147660A (en) * 2011-03-22 2011-08-10 百度在线网络技术(北京)有限公司 Method and device for input based on multi-user cooperative editing
US10242044B2 (en) 2011-09-30 2019-03-26 Emc Corporation System and method of rolling upgrades of data traits
US9330122B2 (en) 2011-09-30 2016-05-03 Emc Corporation System and method of dynamic data object upgrades
CN103946794B (en) * 2011-09-30 2017-03-29 Emc 公司 The system of the rolling upgrade of data characteristicses, apparatus and method
US9977799B2 (en) 2011-09-30 2018-05-22 Emc Corporation System and method of dynamic data object upgrades
CN103946794A (en) * 2011-09-30 2014-07-23 Emc公司 Cross-reference and priority claim to related applications
US10747735B2 (en) 2011-09-30 2020-08-18 Emc Corporation System and method of dynamic data object upgrades
CN110413202A (en) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 Data copy method, equipment and computer program product
CN110413202B (en) * 2018-04-28 2024-03-08 伊姆西Ip控股有限责任公司 Data replication method, apparatus and computer program product
CN111542790A (en) * 2018-05-17 2020-08-14 贝克霍夫自动化有限公司 Method for processing software items
CN111542790B (en) * 2018-05-17 2023-09-01 贝克霍夫自动化有限公司 Method for processing software items
CN109918345A (en) * 2019-02-22 2019-06-21 腾讯科技(深圳)有限公司 Document processing method, device, terminal and storage medium
CN109918345B (en) * 2019-02-22 2023-11-03 腾讯科技(深圳)有限公司 Document processing method, device, terminal and storage medium

Also Published As

Publication number Publication date
CN100571146C (en) 2009-12-16

Similar Documents

Publication Publication Date Title
US7818679B2 (en) Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
US8024661B2 (en) Collaboration framework
EP2414947B1 (en) System and method for editing a conversation in a hosted conversation system
JP4203657B2 (en) Collaboration server, collaboration system, method and program thereof
JP5468547B2 (en) Joint authoring
CN101427257B (en) Tracking and editing a resource in a real-time collaborative session
CN1738254A (en) Method, system, and apparatus for enabling collaboration near to real time on electronic document through plurality of computer systems
KR101076857B1 (en) Instant messaging object store
TWI628604B (en) Apparatus, computer-implemented method and system for managing a collaborative working environment
US20120331402A1 (en) System and Method to Create a Collaborative Web-based Multimedia Contextual Document
US20090307189A1 (en) Asynchronous workflow participation within an immersive collaboration environment
US9813365B2 (en) Integrated real-time digital communication platform
US20100257457A1 (en) Real-time content collaboration
EP1745369A2 (en) Synchronous and asynchronous collaboration between heterogeneous applications
GB2483132A (en) Multi-model collaboration space
CN1478352A (en) Managing negotiations between users of computer network
CN1609858A (en) System and method for file sharing in peer-to-peer group shared spaces
CN102916984A (en) Picture editing action sharing method and system
CN105184469A (en) Method and device for collaborative editing of documents
CN101588350A (en) Method and system for realizing file sharing
TW200404437A (en) Annotating and routing message content
US20170149726A1 (en) Method for establishing social network and storage medium thereof
JP2005149513A (en) Active agenda
JP2021507333A (en) Methods and equipment for sharing data between groups
KR20200111084A (en) Platform system for producing responsive content and method thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091216