WO2014005640A1 - Procédé et système pour rejeter des événements d'application internet conflictuels - Google Patents
Procédé et système pour rejeter des événements d'application internet conflictuels Download PDFInfo
- Publication number
- WO2014005640A1 WO2014005640A1 PCT/EP2012/063164 EP2012063164W WO2014005640A1 WO 2014005640 A1 WO2014005640 A1 WO 2014005640A1 EP 2012063164 W EP2012063164 W EP 2012063164W WO 2014005640 A1 WO2014005640 A1 WO 2014005640A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- changes
- participants
- session
- conflicting
- master coordinator
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Definitions
- the present invention relates to a method for performing a distributed web application session, in particular a collaborative web browsing session, wherein a session has at least two participants initiating via their browsers events that cause changes of a web document, and wherein each participant reports changes to the browsers of the respective other participants of said session and to a master coordinator.
- the present invention relates to a system for performing a distributed web application session, in particular a collaborative web browsing session, comprising at least two participants being configured to participate in a session by initiating via their browsers events that cause changes of a web document, and a master coordinator, wherein each participant is configured to report changes to the browsers of the respective other participants of said session and to said master coordinator.
- DOM Document Object Model
- browser events are propagated to other participants' browsers, where they are replayed. More specifically, once an event occurs in a participant's browser, it is send to a coordinator, which sorts the events and propagates them in the same order to the browsers of all participants where the events are replayed.
- This method is rather light-weight, but has the trade-off that consistency of the respective web document, e.g. HTML, cannot be ensured.
- a web page e.g. a HTML document
- tags can be destroyed when handling a conflict (e.g. ⁇ ul> may become ⁇ ulb/). This means the web page cannot be correctly rendered in the browser.
- the aforementioned object is accomplished by a method comprising the features of claim 1 .
- said master coordinator performs the steps of analyzing changes it receives from participants of said session, detecting among said received changes concurrent changes, which are conflicting, and instructing the participants of said session to not apply detected conflicting changes.
- a system comprising the features of claim 14.
- said master coordinator comprises a module for analyzing changes it receives from participants of said session and for detecting among said received changes concurrent changes, which are conflicting, and communication means for instructing the participants of said session to not apply detected conflicting changes.
- participant By applying the invention participants of a co-browsing session have the same view on a collaboratively viewed web page. Moreover, the collaboration is improved due to less confusion since every participant has the same information and a consistent web page with an acceptable user experience.
- the present invention covers the entire spectrum of web pages, particularly the emerging trend towards more sophisticated web pages that allow dynamic changes, such as shopping sites or business intelligence reports. Apart from collaborative web browsing, the present invention can be suitably applied in co- shopping applications or in connection with interactive Web TV, to name just two further applications.
- the process of detecting concurrent changes may be performed by using vector clocks (sometimes also denoted clock-vectors), which constitute a framework for generating a partial ordering of events in distributed systems. Since those skilled in the art are sufficiently familiar with the mechanism of vector clocks, details can be omitted here. However, detailed aspects of vector clocks can be found in F.
- matrix clock instead of a vector clock, is attached to every change of a web document that is submitted to the other participants as well as to the master coordinator.
- matrix clocks are a generalization of the notion of vector clocks.
- a matrix clock maintains a vector of the vector clocks for each participant's browser. Every time a message is exchanged (e.g.
- the sending participant's browser increases its own clock and sends his clock together with the change as well as the state of clocks he knows from the other participants' browser, when receiving their changes and attached vector clocks, to the other participants' browser and the master coordinator.
- the master coordinator who receives all changes, may identify concurrent changes by comparing the vector clocks (or the matrix clocks, alternatively) it received from a participant each time something is sent to the master coordinator. Pairwise comparison of vector clocks attached to the changes sent by each participants, can show that if Vector V1 of a Change 1 and Vector V2 of a Change 2 are
- Vl(x i ) ⁇ V2(y i )Vi and Vl ⁇ V2 with x is the i-th element of V1 and y i is the i-th elment of V2
- browser participants that receive changes may apply them in the order defined by the vector/matrix clocks. In case of receiving concurrent changes, they may apply only one of them and then wait for the master coordinators decision. In this regard is important to note that browsers know if a non-concurrent change is missing by deriving this information from the vector/matrix clock attached to the change.
- an efficient detection of conflicts among concurrent changes it is important to note that basically a conflict occurs when one tries to insert a child node (within the DOM tree of a web document) into a parent node which has been concurrently deleted or when one tries to modify concurrently the same child node.
- the master coordinator in order to avoid problems with respect to failing identification, all elements in the DOM tree of a web document have assigned different IDs.
- the master coordinator in order to detect conflicting changes, may determine whether changes are dependent or independent by comparing the respective parent nodes.
- Handling means that some changes are made to the documents of the participants that they have a converging view.
- conflicting changes are highlighted to them.
- the master coordinator in case of detecting concurrent changes that are conflicting, will select a particular of the conflicting changes and instruct participants to apply only a particular change and to not apply other changes of the detected conflicting changes. Decisions on conflict are made eventually, i.e. there might be an inconsistent state at the participants for a short time before reaching a consistent state.
- the master coordinator maintains a list of changes, which assists master coordinator in detecting conflicting changes. The list may be garbage collected at one point in time, so that it does not grow exponentially.
- the browsers of the participants of a session synchronize each other on a regular basis.
- Such synchronization is favorable in order to rule out incomplete propagation of changes (e.g. some browsers receive changes and others not) and to detect missing changes. They may also regularly synchronize with the master coordinator to detect missing decisions. Although both measures cause more traffic, the reliability of the system is significantly increased.
- FIG. 1 is a schematic view illustrating a collaborative web browsing scenario according to a first embodiment of the present invention, and is a diagram illustrating the steps being performed by participants of a collaborative web browsing session according to a second embodiment of the present invention.
- Fig. 1 illustrates - schematically - a collaborative web browsing scenario with a total of n browser participants 1 that participate in a web browsing session, in which they access a particular web document 2. For the purpose of clarity, only three participants 1 are depicted in Fig. 1.
- each participant 1 transmits changes to all other participants 1 of the session. Thus, they have eventually the same view on the web page 2 as intended by collaborative web browsing. It is noted that only the changed parts of the web document 2 are submitted to others and not the whole document.
- a master coordinator 3 is provided to which participants 1 also propagate their changes. After a change to the web document 2 has been made and has been reported to the master coordinator 3, the following procedure applies:
- the master coordinator 3 detects concurrent changes, which are conflicting.
- the second step is about handling conflicting changes.
- the master coordinator 3 decides just on conflicting changes. Therefore, it is not a bottleneck, because it does not have to propagate all changes, but just decisions on conflicting changes.
- Detecting concurrent changes which are conflicting is performed by using a mechanism that preserves the causal order of changes, for instance a vector clock or a matrix clock approach. For instance, to every change of the web page 2 a vector clock is submitted to the other participants 1 and to the master coordinator 3.
- the master coordinator 3 receives all changes and can identify concurrent changes by comparing vector clocks.
- the master coordinator 3 has to identify among these changes those changes that are conflicting.
- a conflict occurs, for instance, in case a child node is inserted into a parent node which has been concurrently deleted, or when the same child node is concurrently modified. Therefore, the master coordinator 3 either checks all parent nodes up to the root node involved in a change, or it checks whether changes are dependent or independent. Once concurrent changes that are conflicting have been detected, these changes will be handled as follows:
- the challenge is that conflicting changes do not arrive necessarily at the same time.
- a na ' ive solution would imply that the master coordinator 3 waits a period of time for all changes to arrive, however, this waiting period is unpredictable and may lead to problems if a conflicting change arrives after waiting period.
- the master coordinator 3 upon arrival of a received change, the master coordinator 3 checks if it is concurrent conflicting with other changes, as already explained above. If this is not the case, the master coordinator 3 will not perform any further action. However, in case a change is concurrent conflicting with already propagated changes, the master coordinator 3 informs the other participants 1 , which one of the changes which are conflicting should not be applied. The participants 1 then apply the decision of the master coordinator. This means that participants 1 are informed about unexpected changes in the web document 2 (from their perspective) so that they are not confused and that no exceptions are raised in the browser systems or an inconsistent document is created.
- FIG. 2 is a diagram that schematically illustrates the steps being performed by participants of a collaborative web browsing session according to another embodiment of the present invention.
- the basic assumptions underlying the illustrated scenario are as follows: One participant 1 - browser participant 1A - initiates an event, denoted X, that changes the web document subject to the co-browsing session.
- Browser participant 1A determines the change, denoted C, to the web document affected by event X and propagates the change C to the other participants 1 of the session, which are depicted in Fig. 2 as a composite browser participant being denoted 1 B.
- browser participant 1A transmits the event X and a clock vector V together with change C. The same information is propagated to master coordinator 3.
- the master coordinator 3 when changes are propagated to the browsers of the other participants 1 B and the master coordinator 3, the browsers of the other participants 1 B apply these changes directly. Due to the implemented vector clock approach, the master coordinator 3 does not need to perform an ordering of changes, because this can be figured out by the participants 1 themselves, e.g. by deriving the respective information from the vector clock attached to the changes. The master coordinator 3 just decides which changes can be applied and which not. To this end, master coordinator 3 analyzes changes received from participants 1 to find out, in a first step, whether changes are concurrent. In a next step, changes that are concurrent are further analyzed to find out whether they are also conflicting. If so, master coordinator 3 performs a conflict resolution. The respective conflict resolution decision, denoted D, is propagated to the browsers of all participants 1 of a session, which then implement the decision.
- D The respective conflict resolution decision
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2012/063164 WO2014005640A1 (fr) | 2012-07-05 | 2012-07-05 | Procédé et système pour rejeter des événements d'application internet conflictuels |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2012/063164 WO2014005640A1 (fr) | 2012-07-05 | 2012-07-05 | Procédé et système pour rejeter des événements d'application internet conflictuels |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014005640A1 true WO2014005640A1 (fr) | 2014-01-09 |
Family
ID=46682799
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2012/063164 Ceased WO2014005640A1 (fr) | 2012-07-05 | 2012-07-05 | Procédé et système pour rejeter des événements d'application internet conflictuels |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2014005640A1 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10051020B2 (en) | 2015-06-26 | 2018-08-14 | Microsoft Technology Licensing, Llc | Real-time distributed coauthoring via vector clock translations |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003007107A2 (fr) * | 2001-07-11 | 2003-01-23 | Kirusa, Inc. | Synchronisation d'une pluralite de navigateurs |
| WO2003073198A2 (fr) * | 2002-02-27 | 2003-09-04 | Motorola Inc. | Systeme et procede de communication multimodale concurrente |
-
2012
- 2012-07-05 WO PCT/EP2012/063164 patent/WO2014005640A1/fr not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003007107A2 (fr) * | 2001-07-11 | 2003-01-23 | Kirusa, Inc. | Synchronisation d'une pluralite de navigateurs |
| WO2003073198A2 (fr) * | 2002-02-27 | 2003-09-04 | Motorola Inc. | Systeme et procede de communication multimodale concurrente |
Non-Patent Citations (5)
| Title |
|---|
| ANTHONY BAXTER, JOCHEN BEKMANN, DANIEL BERLIN, SOREN LASSEN, SAM THOROGOOD: "Google Wave Federation Protocol Over XMPP", 21 July 2009 (2009-07-21), XP002687582, Retrieved from the Internet <URL:http://web.archive.org/web/20110104133730/http://www.waveprotocol.org/protocol/draft-protocol-specs/draft-protocol-spec> [retrieved on 20121115] * |
| MARC SHAPIRO, NUNO PREGUICA, CARLOS BAQUEERO, MAREK ZAWIRSKI: "Conflict-free Replicated Data Types", 31 December 2011 (2011-12-31), XP002687584, Retrieved from the Internet <URL:http://hal.inria.fr/inria-00609399/en/> [retrieved on 20121115] * |
| MATTERN F: "VIRTUAL TIME AND GLOBAL STATES OF DISTRIBUTED SYSTEMS", PARALLEL AND DISTRIBUTED ALGORITHMS. PROCEEDINGS OF THEINTERNATIONAL WORKSHOP ON PARALLEL AND DISTRIBUTED ALGORITHMS, XX, XX, 3 October 1988 (1988-10-03), pages 215 - 226, XP000614841 * |
| TORBEN WEIS ET AL: "Federating Websites with the Google Wave Protocol", IEEE INTERNET COMPUTING, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 15, no. 3, 1 May 2011 (2011-05-01), pages 51 - 58, XP011354797, ISSN: 1089-7801, DOI: 10.1109/MIC.2011.28 * |
| WIKIPEDIA: "Operational Transformation", 18 May 2010 (2010-05-18), XP002687583, Retrieved from the Internet <URL:http://web.archive.org/web/20100518122208/http://en.wikipedia.org/wiki/Operational_transformation> [retrieved on 20121115] * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10051020B2 (en) | 2015-06-26 | 2018-08-14 | Microsoft Technology Licensing, Llc | Real-time distributed coauthoring via vector clock translations |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8775476B2 (en) | System and method for creating, deploying, integrating, and distributing nodes in a grid of distributed graph databases | |
| Cretu | Smart cities design using event-driven paradigm and semantic web | |
| US20130117064A1 (en) | Business process analysis combining modeling, simulation and collaboration with web and cloud delivery | |
| US9269076B2 (en) | Techniques to facilitate collaborative social coding | |
| EP1387262A1 (fr) | Procédé pour la géneration des contrats de synchronisation pour les composants de logiciels et de services web | |
| Ou-Yang et al. | BPMN-based business process model feasibility analysis: a petri net approach | |
| Abukwaik et al. | Interoperability-related architectural problems and solutions in information systems: A scoping study | |
| Scholtz et al. | An analysis of the adoption and usage of enterprise architecture | |
| Cavalcante et al. | Looking back and forward: A retrospective and future directions on software engineering for systems‐of‐systems | |
| Tchoua et al. | ADIOS visualization schema: A first step towards improving interdisciplinary collaboration in high performance computing | |
| Li et al. | Breeze graph grammar: a graph grammar approach for modeling the software architecture of big data‐oriented software systems | |
| Campos et al. | A survey of formalization approaches to service composition | |
| WO2014005640A1 (fr) | Procédé et système pour rejeter des événements d'application internet conflictuels | |
| Sun et al. | Real differences between OT and CRDT in building co-editing systems and real world applications | |
| CN104184792A (zh) | 用于dhtmlx界面控件库的会话超时方法 | |
| Chopra | Web engineering | |
| Guerrero-Contreras et al. | A collaborative semantic annotation system in health: towards a SOA design for knowledge sharing in ambient intelligence | |
| Bonduel et al. | Sparql-visualizer: A communication tool for collaborative ontology engineering processes | |
| Tan et al. | Service‐Oriented Workflow Systems | |
| Ebadi et al. | A collaborative Web-based issue based information system (IBIS) framework | |
| Carruth et al. | A Collaborative Scheduling Environment for NASA's Deep Space Network | |
| Javed et al. | Model driven upstream and downstream artifacts | |
| Sousa et al. | Sociomaterial enactment drive of business/IT alignment: from small data to big impact | |
| Calache et al. | Graphical and collaborative annotation support for semantic Web services | |
| Gadea et al. | New algorithms and methods for collaborative co-editing using HTML DOM synchronization |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12747984 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 12747984 Country of ref document: EP Kind code of ref document: A1 |