Collaborative CAD Synchronization Based on a

0 downloads 0 Views 5MB Size Report
Received: 4 March 2017; Accepted: 18 April 2017; Published: 23 April 2017 ... Keywords: collaborative computer aided design (Co-CAD); concurrent control; ...
SS symmetry Article

Collaborative CAD Synchronization Based on a Symmetric and Consistent Modeling Procedure Yiqi Wu 1 , Fazhi He 1,2, * and Soonhung Han 3 1 2 3

*

School of Computer, Wuhan University, Wuhan 430072, China; [email protected] State Key Laboratory of Digital Manufacturing Equipment and Technology, Huazhong University of Science and Technology, Wuhan 430074, China Division of Ocean Engineering, Korea Advanced Institute of Science and Technology, Daejeon 34141, Korea; [email protected] Correspondence: [email protected]; Tel.: +86-27-6877-5731; Fax: +86-27-6877-5833

Academic Editor: Saeid Nahavandi Received: 4 March 2017; Accepted: 18 April 2017; Published: 23 April 2017

Abstract: One basic issue with collaborative computer aided design (Co-CAD) is how to maintain valid and consistent modeling results across all design sites. Moreover, modeling history is important in parametric CAD modeling. Therefore, different from a typical co-editing approach, this paper proposes a novel method for Co-CAD synchronization, in which all Co-CAD sites maintain symmetric and consistent operating procedures. Consequently, the consistency of both modeling results and history can be achieved. In order to generate a valid, unique, and symmetric queue among collaborative sites, a set of correlated mechanisms is presented in this paper. Firstly, the causal relationship of operations is maintained. Secondly, the operation queue is reconstructed for partial concurrency operation, and the concurrent operation can be retrieved. Thirdly, a symmetric, concurrent operation control strategy is proposed to determine the order of operations and resolve possible conflicts. Compared with existing Co-CAD consistency methods, the proposed method is convenient and flexible in supporting collaborative design. The experiment performed based on the collaborative modeling procedure demonstrates the correctness and applicability of this work. Keywords: collaborative computer aided design (Co-CAD); concurrent control; symmetry; modeling procedure

1. Introduction Given the rapid development of economic globalization, collaborative design, collaborative product development, and cloud manufacturing have become unavoidable strategic means of competition [1–3]. In this way, product design work is done by different enterprises or departments in different locations. Computer-supported cooperative work (CSCW) is a common task for a collaborative work group in a computer-supported network environment and originated in the 1980s [4]. The technology and advantages of CSCW create more competitiveness in industrial manufacturing. Specifically, in collaborative design the computer aided design (CAD) technology has been combined with CSCW and the concept of collaborative CAD (Co-CAD) emerges [5–9]. Typical studies of Co-CAD systems of replicated architecture assume that the execution orders are different among the cooperative sites and then try to maintain a consistent result after the operations are received and executed on different sites with divergent orders [10–12]. This assumption comes from co-editing systems of replicated architecture, in which a lot of tricky algorithms are proposed to address the challenge of how to achieve consistent results in a non-consistent (dis-ordered) operations sequence. This challenge makes sense in co-editing systems where both the text data structure and text operations semantics are simple. Symmetry 2017, 9, 59; doi:10.3390/sym9040059

www.mdpi.com/journal/symmetry

Symmetry 2017, 9, 59

2 of 20

However, in Co-CAD systems, the data structure and operations semantics are much more complicated than in co-editing systems. The disordered operations sequence will result in many complex problems, such as collaborative name matching or feature conflict [13–18]. Therefore, the Co-CAD system is more complicated than a co-editing system and so it is difficult to achieve consistent results with a non-consistent 3D modeling operation sequence [19]. Furthermore, even if consistent (geometric) results are achieved with divergent modeling histories, a new problem comes into being. Modern CAD systems are history-based and the modeling history represents the design intent [20,21]. Divergent modeling histories with the same geometric result are not valid for a given design intent. Unfortunately, this problem is generally neglected by almost all previous studies of Co-CAD. This paper proposed a novel synchronization method for Co-CAD to avoid the above problems. By this method, operations are first organized according to their causal relationship. Then the concurrent operations are retrieved. A symmetric concurrency control mechanism is proposed to form a unique operation sequence. While preserving the design intent of all sites as much as possible, an operation that would cause conflict is determined and withdrawn during the procedure. Then a symmetric and consistent modeling operation procedure is generated in all sites to achieve a unique and valid modeling result. Meanwhile, the modeling history in each site remains consistent. The rest of the paper is organized as follows: in Section 2, some related work of collaborative design is reviewed. In Section 3, some related concepts and definitions are presented and then the overall methodology of the paper is proposed. In Section 4, the technical details of the proposed symmetric synchronization model for Co-CAD are introduced. In Section 5, a collaborative design process is presented as a case study to demonstrate the method of this paper and Section 6 gives the conclusions of this paper. 2. Related Work In an ideal collaborative design environment, co-designers from different design sites could accomplish the design task in a sharing workspace. The Co-CAD system should offer tools and technical support for mutual awareness, collaboration, and interaction in the collaborative design environment [22–24]. Early Co-CAD architecture is centralized. All modeling operations must be transmitted to the server execution, which hinders a quick local response. Compared with the Co-CAD system with centralized architecture, the one based on replicated architecture is better for the effective local response [25]. At present, research into Co-CAD mainly focuses on replicated concurrency control methods. A typical type of Co-CAD solution is authority-based methods. The basic idea is that each site acquires the operation privilege by a certain rule so all the operations can be executed sequentially. Dietrich [26] designed a strict concurrency control system that uses the “floor control” mechanism. Only when a site has a token can it execute the corresponding modeling operation, while other sites cannot execute modeling operations on the shared model but only by observing the basic state of the model. Stork et al. [27,28] used an optimistic object locking mechanism and common rules and protocols to achieve concurrency control, thereby achieving consistency of results. Li developed a cooperative design system based on neutral modeling commands that adopts a feature granularity locking mechanism to realize concurrency control and maintain consistency [29,30]. This method reduces the granularity of the lock mechanism to the feature level. The Replicated Collaborative CAD System (RCCS) system used a local locking mechanism to achieve concurrency control [15]. Yang used a fine granular locking mechanism for a replicated collaboration system [31]. The analysis shows that, with the authority-based mechanism, only one user is allowed to edit the sharing model at a time, which does not meet the demands of free multi-user concurrent design well. An important and successful application of CSCW is a collaborative editing system for text documents. In the co-editing system, operation transformation (OT) is an effective idea that attempts to adjust the editing parameters of disordered editing operations for a consistent editing result among

Symmetry 2017, 9, 59

3 of 20

co-editing sites. Based on this thought, a lot of OT algorithms are proposed [32–40]. Inspired by co-editing, OT algorithms are used in 3D collaborative design. Liu proposed a 3D semantic-based OT method to support less constrained multi-user interaction and achieve consistency in Co-CAD systems [41]. However, adopting OT for 3D models requires complicated model geometry computation and involves complex topological naming issues. In Co-CAD, concurrent operation may cause operation conflicts or divergent modeling results by operation interactions. Therefore, many studies focus on conflict detection and solutions [42–46]. Yu [47] proposed a collaborative design framework using the X3D operation models for conflict detection and resolution. Cheng [19] extended commutative replicated data type (CRDT) capability to meta operation conflict resolution from 1D to 3D applications. Cai [48] developed a homogeneous CAD online integrated system. The relationships between collaborative CAD modeling operations are divided into commutative and non-commutative. Concurrency control and result consistency maintenance are realized. Due to the current mainstream CAD system having adopted the historical parametric feature modeling technology, modeling history information is useful and important for Co-CAD, such as for reverse engineering design analysis or as important modeling knowledge sharing [49]. The existing Co-CAD solutions lack the consideration of modeling history consistency. Divergent modeling history in each collaborative site would recede the significance of modeling history. Moreover, traditional Co-CAD consistency methods have the disadvantages of inflexible interaction or problems with geometric computation and collaborative naming. These shortcomings impede the widespread adoption and acceptance of Co-CAD. Therefore, this paper aims at not only a convenient and valid solution for the consistent modeling result in Co-CAD, but also the maintenance of modeling history consistency. 3. Overall Methodology and Related Concepts The most basic goal of Co-CAD is to get consistent results through collaborative design operations from all collaborative sites, which is similar to co-editing. In Co-CAD, the co-operation objects are shaped 3D models, different from characters in co-editing. Hence, it is not possible to apply collaboration consistency maintenance methods directly. Before proposing the Co-CAD synchronization methodology, some related definitions and concepts in Co-CAD process are presented. 3.1. Preliminaries 3.1.1. Related Definitions in Co-CAD Modeling According to Lamport’s “happened-before” theoretical basis [50], this paper presents the following set of definitions used in collaborative CAD processes, including features, state vectors, modeling operations, result models, causality, concurrency, and partial concurrency. Definition 1. Features. The generalized conception of features is a geometrical entity that is meaningful to design or manufacturing activities. The narrow concept of features is the basic modeling operations provided by mainstream commercial CAD systems to reflect specific engineering semantics, such as convex, shell, fillet, and so on. Definition 2. The state vector. A state vector SV [51] is saved on each collaboration site. It is an n-dimensional vector, where n is the number of collaborative sites. The state vector of site j is denoted as SVj [i], i ∈ {1, 2, . . . , n − 1}, which records the number of operations that the site j has executed from the site i. The state vector of the operation O issued by site j is recorded as SVO [k], k ∈ {1, 2, . . . , n − 1}, which records the number of operations from site k that have been executed on site j when O is executed on site j. Definition 3. Modeling operations. Collaborative CAD modeling operations O can be defined as . S is the site that generates the modeling operation O. SV is the state vector of modeling

Symmetry 2017, 9, 59

4 of 20

Definition 3. Modeling operations. Collaborative CAD modeling operations O can be defined as . S is the site that generates the modeling operation O. SV is the state vector of modeling operation O when being executed on site S. Feature(O) is the feature of modeling operation O on site S. T(O) operation O when being executed on siteincluding S. Feature(O) is themodification, feature of modeling operationdenoted O on siteasS.T(O) T(O) ∈ is is the type of modeling operations, creation, and deletion, the type of modeling operations, including creation, modification, and deletion, denoted as T(O) ∈ {CREATION, {CREATION, MODIFICATION, DELETION}. MODIFICATION, DELETION}. Definition 4. Result model. Geometric result of a feature model after executing one or more modeling Definition 4. Result model. Geometric result of a model, feature and model after executing one or more modeling operations. Design history is stored in the feature expressed as operation sequence. Eachoperations. operation Design history is stored in the feature model, and expressed as operation sequence. Each operation sequence sequence corresponds to a final geometric result, and the final geometric result is represented by the boundary corresponds to a final geometric result, and the final geometric result is represented by the boundary model. model. Symmetry 2017, 9, 59

Definition Definition5.5.Causality Causalityrelationship. relationship.Suppose Supposethere thereisisan anarbitrary arbitrarypair pairofofmodeling modelingoperations operationsOOa aand andOObb sent there three conditions: (1)(1) Si and Sj are thethe same site,site, andand Oa isOgenerated before Ob ; sentby bysite siteSSi and i andSS j and thereareare three conditions: Si and Sj are same a is generated before j and (2) Sj are sites, andand Oa is before Ob O inb in sitesite Si ;S(3) there is is anan operation OOxx Ob;S(2) Si and Sj different are different sites, Oagenerated is generated before i; (3) there operationOO ,O a→ x , xO a→ i and and and Obb satisfy satisfy any any one one condition condition above, there is a causal andO Oxx→ →O Obb. If and only if Oaa and causal relationship relationshipbetween betweenOOaa and andO Obb (denoted (denoted as as O Oaa→Obb).). In and O O0,3 aresent sentby bythe thesame samesite siteS0S.0O . 0,2 O0,2 creates extruded In Figure Figure 1, 1, Operation Operation O O0,2 0,2 and creates anan extruded cutcut on 0,3are on the boss created by O , denoted as Feature(O ). O creates a fillet in Feature(O ), denoted as the boss created by O0,10,1 , denoted as Feature(O0,20,2). O0,30,3creates a fillet Feature(O0,2 0,2 as Feature(O Feature(O0,3 0,3). ). According Accordingto toDefinition Definition5,5,OO 0,2→ →OO0,3 0,3 and and Feature(O Feature(O0,3 0,3) depends dependson onFeature(O Feature(O0,20,2).). When When 0,2 O is put put in the collaborative waiting operational list (CoWOL). O0,3 0,3 arrives at site site SS11 before before O O0,2 0,2, O0,3 (CoWOL). 0,3 is When When the the causality causality relationship relationship ofofOO0,20,2 and and OO0,3 0,3 is is satisfied satisfied (O (O0,2 0,2 arrives at site site SS11 and and has has been been executed), executed),O O0,3 0,3 can be taken from CoWOL and executed.

Figure1.1. Causality Causalityrelationship. relationship. Figure

Definition 6. Concurrency and partial concurrency relationship. Suppose there is an arbitrary pair of modeling operations Oa and Oand b sent by site Si and site Sj (Si ≠ Sj). When Oa and Ob satisfy neither Oa→Ob nor Definition 6. Concurrency partial concurrency relationship. Suppose there is an arbitrary pair of Ob→Oa, and Oa andO Ob and are executed onsite the Ssame model states, there is a concurrency relationship between Oa modeling operations O sent by a b i and site Sj (Si 6 = Sj ). When Oa and Ob satisfy neither Oa →Ob and O b, denoted as Oa‖Ob. nor O →O , and O and O are executed on the same model states, there is a concurrency relationship between b

a

a

b

Oa and Ob , denoted asisOan a kO b. Suppose there arbitrary pair of modeling operations Oa and Ob sent by site Si and site Sj (Si

≠ Sj). If and only if Oa and Ob are executed on different model states, Oa and Ob are in a partial Supposesituation, there is an arbitrary pair of modeling operations Oa and Ob sent by site Si and site Sj concurrency denoted as O aOb. (Si 6= As Sj ).shown If and in only if O and O are executed on0,2different model states, O and Ob areFeature(O in a partial a b Figure 2, O0,2 creates Feature(O ) above Feature(O 0,1) and aO1,1 creates 1,1) concurrency situation, denoted as O ⊥ O . a definition b above Feature(O0,1). According to the of a concurrency relationship, O0,2‖O1,1. O1,2 modifies As shown in Figure 2, O0,2 creates Feature(O ) above Feature(O0,1 ) and on O1,1different creates Feature(O 0,2 O 1,1 ) Feature(O 1,1) with a draft feature Feature(O 1,2). For 0,2 and O1,2 are executed model states, above Feature(O ). According to the definition of a concurrency relationship, O k O . O modifies 0,2 1,1 1,2 giving O0,2O1,1.0,1 Feature(O1,1 ) with a draft feature Feature(O1,2 ). For O0,2 and O1,2 are executed on different model states, giving O0,2 ⊥O1,1 .

Symmetry 2017, 9, 59 Symmetry 2017, 9, 59

5 of 20 5 of 20

Figure 2. Concurrency and partial concurrency relationships. Figure 2. 2. Concurrency Concurrency and and partial partial concurrency concurrency relationships. relationships. Figure

3.1.2. Dependency between Features 3.1.2. Dependency Dependency between between Features Features 3.1.2. CAD systems are complex constraint systems and the mainstream CAD systems take modeling CAD systems aregranularity. complex constraint constraint systems and to thejudge mainstream CAD systems systems take modeling modeling CAD are complex systems and the mainstream CAD take features assystems operating Therefore, in order the relationship between features as as operating operating granularity. Therefore, inrelationship order to to judge judge the relationship relationship between modeling features order the operations, this papergranularity. analyzes theTherefore, constraintin between features. It between is knownmodeling that the operations, this paper analyzes the constraint relationship between features. It is known that the the operations, this paper analyzes constraint between features. It iswith known that constraint relationship betweenthethe featuresrelationship is dependency. While dealing concurrent constraintrelationship relationship between the features is a dependency. While with dealing with concurrent constraint between the whether features is dependency. Whilerelationship dealing concurrent operations, it is necessary to judge there is dependent between the operations, features of operations, it is necessary to judge whether there is a dependent relationship between the features of it is remote necessary to judgeand whether there isofathe dependent relationship the features of the remote the operation the features local operation. Then,between the concurrent processing can be the remote operation and the features of the local operation. Then, the concurrent processing can be operation executed. and the features of the local operation. Then, the concurrent processing can be executed. executed. Figure 33shows feature-based modeling procedure of theofcover of a gear showsthe the feature-based modeling procedure the cover of pump, a gearwhich pump,includes which Figure 3 shows the feature-based modeling procedure of the cover of a gear pump, which 10 modeling steps. Thesteps. dependent relationshiprelationship of features can be mapped a directed graph, called includes 10 modeling The dependent of features can onto be mapped onto a directed includes 10 modeling steps. The dependent relationship of features can be mapped onto a directed a feature-dependent graph. When multiple sites execute modeling tasks collaboratively, each site graph, called a feature-dependent graph. When multiple sites execute modeling tasks collaboratively, graph, called a feature-dependent graph. When multiple sites execute modeling tasks collaboratively, maintains a collaborative feature-dependent graph (CoFDG). According to the feature dependencies in each site maintains a collaborative feature-dependent graph (CoFDG). According to the feature each site maintains athe collaborative feature-dependent graph (CoFDG). feature the model of Figure feature-dependent graph is shown ingraph Figure A According feature-dependent graph dependencies in the 3, model of Figure 3, the feature-dependent is 4. shown in Figureto4.the A featuredependencies in the model of Figure 3,characteristics: theorder, feature-dependent graph is shownand in Figure 4. A featurehas three important partial transitive, acyclic. dependent graph hascharacteristics: three important partialand order, transitive, acyclic. dependent graph has three important characteristics: partial order, transitive, and acyclic.

1. Extruded 1. Boss Extruded 1 Boss 1

2. Extruded 2. Boss Extruded 2 Boss 2

3. Extruded 3. Extruded Cut 1 Cut 1

6. Circular 6. Circular Pattern 1 Pattern 1

5. Extruded 5. Extruded Cut 3 Cut 3

4. Extruded 4. Extruded Cut 2 Cut 2

7.Mirror 7.Mirror

8. Fillet 1 8. Fillet 1

9. Fillet 2 9. Fillet 2

Result Model Result Model

10. Fillet 3 10. Fillet 3

Figure 3. Feature-based modeling process. Figure 3. Feature-based modeling process.

Symmetry 2017, 9, 59 Symmetry 2017, 9, 59

6 of 20 6 of 20

1. Extruded Boss 1

2. Extruded Boss 2

8.Fillet 1

3. Extruded Cut 1

9.Fillet 2

10.Fillet 3

4. Extruded Cut 2

5. Extruded Cut 3

6. Circular Pattern 1

7.Mirror

Figure 4. Collaborative feature-dependent graph.

(1) Partial (1) Partial order order Partial order means the arbitrary dependency between two features are unidirectional, rather order means dependency between two features are unidirectional, rather than than Partial mutual. There are the twoarbitrary features, feature1 and feature 2, in the model. If feature1 depends on mutual. twonot features, feature in the 1model. If 2feature on feature 1 and1,feature 1 depends 2, feature2, There featureare 2 does depend on feature that is:2 ,feature < feature => feature 2 ≮ feature 1. feature2 does not depend on feature1 , that is: feature1 < feature2 => feature2 6< feature1 . (2) Transitivity (2)

Transitivity means the transmission of feature dependency is unidirectional. Set three arbitrary Transitivity features in the model: feature1, feature2, and feature3; if feature1 depends on feature2 and feature2 Transitivity means the transmission of feature dependency is unidirectional. Set three arbitrary depends on feature3, then feature1 depends on feature3, that is: feature1 < feature2&&feature2 < feature3 features in the model: feature1 , feature2 , and feature3 ; if feature1 depends on feature2 and feature2 => feature1 < feature3. Among them, feature1 is directly dependent on feature2 and feature1 is indirectly depends on feature3 , then feature1 depends on feature3 , that is: feature1 < feature2 &&feature2 < dependent on feature3. feature3 => feature1 < feature3 . Among them, feature1 is directly dependent on feature2 and feature1 is (3) Acyclic indirectly dependent on feature3 .

(3) Acyclic Acyclic means that there is no cyclic dependency among the features of the model. Set three arbitrary features in the model: feature1, feature2, and feature3; if feature1 depends on feature2 and feature 2 depends on that feature 3, then feature doesamong not depend on feature 1. Acyclic means there is no cyclic3 certainly dependency the features of the model. Set three In CAD systems, are established according to feature the feature arbitrary features in the dependencies model: feature1among , featurefeatures , and feature ; if feature depends on 2 3 1 2 and modeling procedure. Only newly ondepend existingon features feature on feature feature3features certainlydepend does not featurein 2 depends 3 , then created 1 . the model, but an existing feature depends on a newlyamong createdfeatures featureare or aestablished feature notaccording created yet. In CAD systems, dependencies to the feature modeling procedure. Only newly created features depend on existing features in the model, but an existing 3.1.3. Operation feature depends Queue on a newly created feature or a feature not created yet.

When a local modeling operation is executed on a collaborative site, the local site generates the 3.1.3. Operation Queue corresponding modeling operation command and then sends it to other collaborative sites. When atolocal modeling operation is executed on command a collaborative local site generates the According Definition 3, the modeling operation is ; these corresponding commands willmodeling be savedoperation to the twocommand queues. and then sends it to other collaborative sites. According to Definition 3, the modeling operation command is ; these commands will  Collaborative Feature Operational List (CoFOL) be saved to the two queues. Each collaborative site holds a CoFOL for storing the executed operations. The executed • Collaborative Operational List modeling operationFeature commands are stored in (CoFOL) the CoFOL in accordance with their execution sequence.  Collaborative Waiting Operational List Each collaborative site holds a CoFOL for(CoWOL) storing the executed operations. The executed modeling operation commands are stored in the CoFOL in accordance with their execution sequence. Each collaborative site holds a CoWOL for storing operations waiting for execution. Those modeling operating commands that do not List meet(CoWOL) the execution conditions (e.g., non-causal) are placed • Collaborative Waiting Operational in an execution queue, CoWOL. When the execution condition is satisfied, the operation command is removed from the CoWOL and executed.

Symmetry 2017, 9, 59

7 of 20

Each collaborative site holds a CoWOL for storing operations waiting for execution. Those modeling operating commands that do not meet the execution conditions (e.g., non-causal) are placed in an execution queue, CoWOL. When the execution condition is satisfied, the operation command is removed from the CoWOL and executed. 3.2. Overall Methodology In text-based co-editing, as long as the co-editing result is consistent, the order of operations of 2017, 9, 59 7 of 20 each Symmetry site is irrelevant and insignificant. In Co-CAD, the order of operations for each site has greater significance for the following reasons: 3.2. Overall Methodology

(1)

(2)

(3)

(4)

Modeling features have a dependent Therefore, operations executed on features In text-based co-editing, as long as therelationship. co-editing result is consistent, the order of operations of each is irrelevant and insignificant. In Co-CAD, relationship the order of operations each site has greater with site dependency should follow the dependent to keep a for valid modeling procedure. significance forFigure the following As shown in 5, the reasons: extruded cut feature depends on the initial boss feature. So, in the modeling procedure, the extruded cutrelationship. must be executed after the creation of the feature. (1) Modeling features have a dependent Therefore, operations executed on boss features Otherwise, the cut operation is meaningless and non-executable. with dependency should follow the dependent relationship to keep a valid modeling procedure. As shown in Figure 5, the extruded cut feature on the bossorder feature. in the modeling Modeling operations may interact withdepends each other. A initial different of So, operations could lead procedure, extrudedresults. cut mustAs be shown executedinafter the creation of the boss feature. Otherwise, the to variousthe modeling Figure 5, the different order of operations for the cut operation is meaningless and non-executable. extruded cut and extruded boss create a dissimilar results model. Hence, a reasonable and unique (2) Modeling operations may interact with each other. A different order of operations could lead to modeling order should be determined in each site to produce consistent modeling results. various modeling results. As shown in Figure 5, the different order of operations for the extruded cut Moreover, collaborative modeling operations from different sites may and extrudedduring boss create a dissimilardesign, results model. Hence, a reasonable and unique modeling ordercause operational conflicts. As shown in Figure 6, operation O creates a rib feature in the slot of should be determined in each site to produce consistent modeling1results. the initial model. O2collaborative modifies the widthmodeling of the initial model. O2cause are from (3) Moreover, during design, operations fromSuppose differentOsites may 1 and collaborative sites. Both operations are6,executable at1 their own sites but in would trigger operational conflicts. As shown in Figure operation O creates a rib feature the slot of theoperational initial model. 2 modifiesthe the rib width of the model. Suppose O1 andafter O2 areOfrom sites.some conflictObecause does notinitial intersect with the model this situation, 2 . Incollaborative Both operations are executable at their own sites but would trigger operational conflict because the operations are selected to be executed while others have to be revoked; all sites should conform rib does not intersect with the model after O 2. In this situation, some operations are selected to be to the same operation selection in their modeling procedure to maintain the consistency of the executed while others have to be revoked; all sites should conform to the same operation selection in collaborative design results. In the case of Figure 6, either O1 or O2 has to be abandoned, and the their modeling procedure to maintain the consistency of the collaborative design results. In the case other one is chosen to be executed. of Figure 6, either O1 or O2 has to be abandoned, and the other one is chosen to be executed. The The design history ofofa amodel importantinformation information in Co-CAD, the aspects (4) design history model is is important in Co-CAD, such such as foras thefor aspects of of model reuse, modeling knowledge, intentand sharing so on.it Therefore, important model reuse, modeling knowledge, intent sharing so on. and Therefore, is importantittoismaintain a to maintain modeling a consistent modeling in each site of Co-CAD. consistent history in eachhistory site of Co-CAD.

Extruded Cut

Extruded Boss

Extruded Boss

Extruded Cut

Figure Effectof ofinconsistent inconsistent modeling order. Figure 5.5.Effect modeling order.

Symmetry 2017, 9, 59

8 of 20

Symmetry 2017, 9, 59

8 of 20

Symmetry 2017, 9, 59

8 of 20

O1

O2

Figure 6. Operational conflict. O1Figure 6. Operational conflict.O

2

With the consideration of the pivotal role of the order of operations in Co-CAD, this paper Figure 6. Operational conflict. With the aconsideration of the pivotal of on thesymmetric order ofand operations Co-CAD, this paper proposed Co-CAD synchronization modelrole based consistentin order of operations, proposed a Co-CAD synchronization modelthe based and consistent ofsites. operations, as shown in Figure 7. The model maintains causality of operations from local andorder remote A With the consideration of the pivotal role of on thesymmetric order of operations in Co-CAD, this paper concurrency control strategy proposed determine the unique orderfrom of operations within as shown in Figure 7. The modelis maintains the causality of operations local of and remotea sites. proposed a Co-CAD synchronization modelto based on symmetric and consistent order operations, concurrency relationship. Operations that would cause of conflicts are abandoned for the validity of A concurrency is maintains proposed to causality determine the unique order operations within a as shown incontrol Figure 7.strategy The model the operations from localof and remote sites. A modeling. concurrency control strategy is proposed determine unique are orderabandoned of operations a concurrency relationship. Operations that to would causetheconflicts forwithin the validity Based onrelationship. the consolidated causality and concurrency withfor thethe help of undo concurrency Operations thatorder would cause conflicts processing, are abandoned validity of of modeling. and redo operations, a symmetric and valid modeling procedure can be formed in all sites of Comodeling. Based on the consolidated causality order and concurrency processing, with the help of undo and CAD.Based Consequently, with the same orderorder of operations, unique modeling results be obtained on the consolidated causality and concurrency processing, withcould help of undo redo at operations, a asymmetric and validismodeling procedure can be formed in the all sites Co-CAD. each site. As result, a valid model obtained by collaborative design operations and eachof site of and redo operations, a symmetric and valid modeling procedure can be formed in all sites of CoConsequently, with the same order of operations, unique modeling results could be obtained at each the Co-CAD maintains a consistent modeling history. CAD. Consequently, with the same order of operations, unique modeling results could be obtained

site. at Aseach a result, a valid model is obtained by collaborative design operations and each site of the site. As a result, a valid model is obtained by collaborative design operations and each site of Co-CAD maintains a consistent modeling history. the Co-CAD maintains a consistent modeling history. Collaboration Consistency History Result Collaboration Consistency History

Result

Co-editing Consistency Maintenance Methods

Unique Operation Sequence

Co-editing Consistency Maintenance Methods

Unique Operation Sequence

Inconsistent Operation Sequence Inconsistent Operation Sequence

Symmetric Procedure

Valid Modeling

Symmetric Procedure

Valid Modeling

Co-CAD Synchronization

Text Based Collaboration Text Based Collaboration

Causality Maintanance Co-CAD Synchronization

Conflict Avoidance

Causality Maintanance Priority Based Ordering

Conflict Avoidance

Priority Based Ordering

Figure 7. Overall methodology. Figure 7. Overall methodology.

Figure 7. Overall methodology.

Symmetry 2017, 9, 59

9 of 20

4. The Symmetric Synchronization Model 4.1. Causality Maintenance According to Definition 5, there is a causality relationship between any two operations sent by one site. Suppose a local site Si sends out a series of operations O1 , O2 , . . . , On . When On reaches remote site Sj , if the current state vector on site Sj and the state vector of operating On satisfy: SVOn [i] = SVj [i] + 1 and SVOn [k] < SVj [k], k ∈ {1, 2, . . . , K}, k 6= i, the operations sequence of Sj satisfies the causality of On . Namely, operations sequence O1 , O2 , . . . , On −1 from Si have been fully executed on site Sj . These conditions ensure that all operations prior to On have been fully executed on Sj . 4.2. Partial Concurrency Processing and Concurrent Operation Retrieving Operations of collaborative text editing have a strict linear structure (depending on the location relationships among operations). The collaborative CAD modeling operations do not depend on the location relationship. Each site executes operations disorderly, without considering the impact of partial concurrency relationships on the collaborative modeling process. However, a partial concurrency relationship is one of the important reasons for inconsistent modeling history. The key to dealing with partial concurrency is to find the concurrent operation set of remote sites. Scanning the CoFOL of the site (starting from the queue header), the location of modeling operations that are concurrent with remote operations can be retrieved based on the SV, denoted as n1 . At this point, first execute an undo operation for all the modeling operations after n1 in CoFOL. Concurrency control is then executed based on concurrent relationships between operation CoFOL[n1 ] and operation O. Finally, execute a redo operation for all the undone modeling operations in CoFOL. The executed operations may cause the redo operation unable to be excuted. In this situation, the redo operation needs to be canceled. 4.3. Symmetric Concurrency Relationship Control Strategy According to Definition 6, concurrent operations are executed on the same model state. On some occasions, concurrent operations reflect the concurrent collaboration of co-designers. On the other hand, diverse design intents from different sites may cause modeling conflicts. Hence, a concurrency control strategy is needed in collaborative design to maintain concurrent design intentions and avoid operational conflicts. Moreover, to maintain the consistency of the modeling history, the sequence of concurrent operations should be determined. Set Oa and Ob are sent by site Si and site Sj , respectively, and Oa kOb . When Oa arrives at Sj , Oa has been executed in site Si . Similarly, when Ob arrives at Si , Ob has been executed in site Sj . Set Si is the local site and if in Si , Oa is executed before Ob , denoted as Oa Ob , then result model is denoted as Result(Oa Ob ). Both Oa and Ob belong to {creation, modification, deletion}. Therefore, based on the operation type of Oa and Ob , there are nine situations for a concurrent operation pair, as shown in Figure 8. In Figure 8, the vertically listed capital letters “C,M,D” represent creation, modification, and deletion respectively, which are the three possible types of the local operation Oa . Likewise, the horizontal “C,M,D” means the three possible types of the remote operation Ob . Each grid table at the intersections of vertical and horizontal “C,M,D” represents one concurrent operation situation. For example, the grid table at the intersection of vertically listed C and horizontally listed M indicates that, in this situation, Oa is a creation operation and Ob is a modification operation. After the classification of concurrent operations by type, the concurrent result should be further judged. For each concurrent operation pair, three factors are considered as the judging conditions of the concurrency control strategy: (1)

Whether the operations are executed on the same modeling feature, denoted as “F” in the grids in Figure 8;

Symmetry 2017, 9, 59

(2) (3)

10 of 20

Whether the topological entities referenced by the remote operation exist, denoted as “T” in the Symmetry 2017, 9, 59 10 of 20 grids in Figure 8; Whether the features that areareexecuted dependent relationship, denoted (3) Whether the features that executed have have aadependent relationship, denoted as “D” as in “D” the in the grids in Figure 8. grids in Figure 8.

C F

C

M

D

/

M /

F

/

/

F

/

/

T

/

/

T

/

/

4

1

3

1

T

/

/

T

/

/

/

/

D

/

D

/

5

S

2

3

1

/

/

3

1

T D

/

/

D

S

1

2

S

F

/

/

/

T D

D

F

4

1

2

S

F

/

/

/

F

T

/

/

D

/

2

S

2

T

S

3

1

S

F

S

D

D

4

/

1

F

/

3

/

1

T

/

D

/

S

2

Figure 8. Symmetric concurrency relationship control strategy.

Figure 8. Symmetric concurrency relationship control strategy. The grids in Figure 8 show the judging situations of concurrent operation pairs. The mark “√” √ in the grid means the condition is satisfied while “×” it is not. The three conditions The grids intable Figure 8 show the judging situations of means concurrent operation pairs. Theshould mark “ ” in judged according to a certain is order—first then T, finally it D—as shown Figure 8. In some should the gridbetable means the condition satisfied F, while “×and ” means is not. Theinthree conditions cases, if not all factors need to be considered, then “/” is marked in the grid. For example, when O a be judged according to a certain order—first F, then T, and finally D—as shown in Figure 8. In some creates a new feature and Ob modifies an existing feature, they are surely not executed on the same cases, iffeature. not allSofactors need be considered, then “/” is marked in the grid. For example, when Oa Condition (1)to is not necessary in this situation. creates a new feature and operations Ob modifies existing feature, they are surely executed on the same If the concurrent mayan cause conflict, the operation with highernot priority is executed the one with priority shouldin bethis canceled to avoid conflicts. When concurrent operations feature.while So Condition (1)lower is not necessary situation. can co-exist, to maintain a consistent history, the the operation with higher priority is executed If the concurrent operations may modeling cause conflict, operation with higher priority is executed before the one with lower priority. The operational priority can be determined by various factors. while the one with lower priority should be canceled to avoid conflicts. When concurrent operations This paper uses site priority and dependency priority to determine the operational priority of can co-exist, to maintain a consistent modeling history, the operation with higher priority is executed concurrent operations. The operation from the site with higher priority or at the higher level of the before the one with feature-dependent lower priority. The operational priority can bepriority. determined factors. This collaborative graph has higher operational Whenby anvarious operation is paper uses site priority and dependency priority to determine the operational priority of concurrent canceled or the order of operations is changed for consistency, the undo and redo mechanisms are needed. operations. The operation from the site with higher priority or at the higher level of the collaborative The concurrency control solution of each judging result is shown in the last row of grid tables, feature-dependent graph has higher operational priority. When an operation is canceled or the order denoted as S. The numbers 1, 2, 3, 4, and 5 indicate five different solutions. To illustrate the solutions, of operations is changed for consistency, the undo and redo mechanisms are needed. set Si has a higher site priority and Oa has higher dependency priority. The five solutions are:

The concurrency control solution of each judging result is shown in the last row of grid tables, Both operations the order operations according To to site priority.the In Ssolutions, i, denoted as (1) S. The numbers 1, are 2, 3,executed; 4, and 5rank indicate fiveofdifferent solutions. illustrate there is OaOb. In Sj, first execute an undo operation to Ob, then execute Oa, finally redo Ob. The final set Si has a higher site priority and Oa has higher dependency priority. The five solutions are: order of operations is OaOb and the result is Result(OaOb).

(1)

(2) (3) (4)

(2) Executeare theexecuted; operation from withofhigher priority. In Si, Ob istoundone. In Sj, OIn b isS , there Both operations rankthe thesite order operations according site priority. i andSO a is executed. The final order of operations is Oa and the result is Result(Oa). is undone Oa Ob . In , first execute an undo operation to O , then execute O , finally redo O . a j b b The final (3) Execute the operation with higher dependency priority. In Si, Ob is undone. In Sj, Ob is order of operations is Oa Ob and the result is Result(Oa Ob ). undone and Oa is executed. The final order of operations is Oa and the result is Result(Oa). Execute operation from the site with higheraccording priority.toIndependency Si , Ob is undone. InSSi,j ,there Ob isis undone (4) the Both operations are executed and ranked priority. In and Ob.a In is Sexecuted. The of operations is Oa and the result isb.Result(O ). Ob, OaO j, first execute anfinal undoorder operation to Ob, then execute Oa, finally redo O When wearedo Execute the operation with higher dependency priority. In Si , Ob is undone. In Sj , Ob is undone and Oa is executed. The final order of operations is Oa and the result is Result(Oa ). Both operations are executed and ranked according to dependency priority. In Si , there is Oa Ob . In Sj , first execute an undo operation to Ob , then execute Oa , finally redo Ob . When we redo Ob , it

Symmetry 2017, 9, 59

(5)

11 of 20

may be not executable because of Oa . In this situation, Ob needs to be abandoned. So, the final order of operations is Oa Ob or Oa and the result is Result(Oa Ob ) or Result(Oa ). Both operations are executed and ranked in reversed order of site priority. In Si, first execute an undo operation to Oa , then execute Ob , finally redo Oa . In Si, there is Ob Oa . When we redo 2017, 59 executable because of Ob . In this situation, Ob needs to be abandoned, 11 of 20 OaSymmetry , it may be9,not then we can redo Oa . So, the final order of operations is Ob Oa or Oa and the result is Result(Ob Oa ) or it may be not executable because of Oa. In this situation, Ob needs to be abandoned. So, the final order Result(O a ). of operations is OaOb or Oa and the result is Result(OaOb) or Result(Oa). (5) Both operations are executed and ranked in reversed order of site priority. In Si, first execute

With the proposed synchronization model, collaborative operations that may cause conflict will an undo operation to Oa, then execute Ob, finally redo Oa. In Si, there is ObOa. When we redo Oa, it be discarded. resulting model will be a valid one. may be So notthe executable because of O b. In this situation, Ob needs to be abandoned, then we can redo In the CoFOL oforder eachofsite, the operations follow the causality based modeling Oa. So, the final operations is ObOa or O a and the result is Result(O bOa)on or Result(O a). state vectors. To those concurrent operations with the same state vectors, the proposed concurrent control strategy With the proposed synchronization model, collaborative operations that may cause conflict will gives the selection or order for every beoperation discarded. So the resulting modelsolutions will be a valid one. concurrent situation. The causality of operations is the at different sites. Moreover, operation selection In the CoFOL of each site, thesame operations follow the causality based the on modeling state vectors.or order To thoseoperations concurrent operations the same the concurrent proposed concurrent strategy of concurrent is unique with according tostate the vectors, proposed controlcontrol strategy. Combining gives the operation selection or order solutions forisevery concurrent situation. these two aspects, the CoFOL of each Co-CAD site identical, which means the modeling procedure is The causality of operations is the same at different sites. Moreover, the operation selection or consistent and symmetric among different sites. With symmetric modeling for the order of operations, order of concurrent operations is unique according to the proposed concurrent control strategy. consistency is achieved in Co-CAD. Combining these two aspects, the CoFOL of each Co-CAD site is identical, which means the modeling procedure is consistent and symmetric among different sites. With symmetric modeling for the order

4.4. Operation Execution of Localisand Remote Site of operations, consistency achieved in Co-CAD.

The proposed symmetric synchronization for Co-CAD includes local site execution and remote 4.4. Operation Execution of Local and Remote Site site execution. Local operation is executed immediately for high response and the state vector should symmetric synchronization for Co-CAD includes local site execution and remote be updated The (SVproposed i [i++]). Meanwhile, the operation is sent to other remote sites. site execution. Local operation is executed immediately for high response and the state vector should Figure 9 shows the remote site execution procedure. To maintain the causal relationship for all be updated (SVi[i++]). Meanwhile, the operation is sent to other remote sites. sites, if the operations before the remote operation (causalTooperations) been fully Figure 9 shows the remote site execution procedure. maintain thehave causalnot relationship forintegrated all into CoFOL, this operation to CoWOL until the causality relationship is fully satisfied. When sites, ifadd the operations before the remote operation (causal operations) have not been fully integrated into CoFOL, this operation to CoWOL untilisthe causality relationship fully satisfied. Whenis the the causality of theadd received remote operation fully satisfied, if theisremote operation partially causality of the received remote operation is fully satisfied, if the remote operation is partially concurrent, partial concurrency processing is required. If the remote operation is concurrent, it is concurrent, partial concurrency processing is required. If the remote operation is concurrent, it is necessary to retrieve the operation that has been executed and is concurrent to the remote operation in necessary to retrieve the operation that has been executed and is concurrent to the remote operation current in site, then use the concurrency control strategy for processing. current site, then use the concurrency control strategy for processing.

Figure 9. Execution procedure of remote site algorithm.

Figure 9. Execution procedure of remote site algorithm.

Symmetry 2017, 9, 59

12 of 20

Symmetry 2017, 9, 59

12 of 20

5. Case Study and Analysis 5. Case Study and Analysis

5.1. Case Study

5.1. Case Study

A case study of collaborative design application is shown to verify the maintenance of consistency. A study, case study design application is sites shown to verify the pump maintenance of In this case set siteofS0collaborative and site S1 are two collaborative to design a gear base. Because consistency. In this case study, set site S0 and S1 are two collaborative sitesistoshown design in a gear pump10–13. the case study contains many operations, the site whole collaboration process Figures base. Because the case study contains many operations, the whole collaboration process is shown in In these figures, the collaborative design procedures of the two sites are on the left side and the dashed Figures 10–13. In these figures, the collaborative design procedures of the two sites are on the left side boxes on the right side show the modeling history. The capital letters “C”, “M,” or “D” under each and the dashed boxes on the right side show the modeling history. The capital letters “C”, “M,” or operation indicate the operation type, as in Figure 8. SolidWorks is chosen as the CAD systems. “D” under each operation indicate the operation type, as in Figure 8. SolidWorks is chosen as the Set Priority(S both sites store a shared model. 0 ) > Priority(S 1 ) and CAD systems. Set Priority(S 0) > Priority(S1) and both sites store a shared model.

O0,1 C O0,2 C

S0

Modeling History

S1 O0,1

Extruded Boss

C O1,1 C

O1,2

O1,2

C

C

CoWOL

Extruded Cut

O1,1

O0,2 C Time

undo O1,1 C O1,2 O0,2 Extruded Boss

undo 01,2

redo O1,1

Figure 10. Collaborative CAD modeling case study (1).

Figure 10. Collaborative CAD modeling case study (1).

In Figure 10, O0,1 from S0 creates an extruded boss (Feature(O0,1)). O0,2 created an extruded cut (Feature(O 0,2)) O on0,1Feature(O ). In S1, an O1,1extruded create an extruded boss (Feature(O 1,1))created and an extruded cut cut In Figure 10, from S0 0,1creates boss (Feature(O an extruded 0,1 )). O0,2 (Feature(O 1,2 )) on the arrived Feature(O 0,1 ). (Feature(O0,2 )) on Feature(O0,1 ). In S1 , O1,1 create an extruded boss (Feature(O1,1 )) and an extruded O1,2 arrives at S0 before O1,1. O1,1 is the concurrent operation of O0,2. O1,2 is put into CoWOL first. cut (Feature(O 1,2 )) on the arrived Feature(O0,1 ). Both O 0,2 and O1,1 are creation operations and the topological entity needed by O1,1 exists. So, O1,2 arrives at S0 before O1,1 . O1,1 is the concurrent operation of O0,2 . O1,2 is put into CoWOL according to the proposed concurrency control strategy, both operations are executed and the order first. Both O0,2 and O1,1 are creation operations and the topological entity needed by O1,1 exists. So, is O0,2O1,1. Then O1,2 is taken out of CoWOL and executed. However, the topological face required by according to the proposed concurrency control strategy, both operations are executed and the order is O1,2 has been changed by O0,2. In S1, because Priority(O0,2) > Priority(O1,1), O1,1 and O1,2 are undone first. O0,2 OThen O1,2 taken out CoWOL and executed. theittopological 1,1 . Then execute O0,2isand redo O1,1ofand O1,2. Because O1,2 cannotHowever, be executed, is canceled. face required by O1,2 has been changed by design O0,2 . Incontinues S1 , because Priority(O ) > Priority(O O1,1(Feature(O and O1,2 0,3are undone 1,1 ), cut The collaborative in Figure 11. O0,30,2creates an extruded )) and first. O Then execute O and redo O and O . Because O cannot be executed, it is canceled. 0,4 creates a circular 0,4))1,2 for Feature(O0,31,2 ). In S1, O1,3 deletes Feature(O0,3). O1,3 and 0,2 pattern (Feature(O 1,1 O0,4 collaborative are concurrentdesign operations. Because Feature(O ) 0,3 depends 0,3), O1,3 has a higher The continues in Figure 11.0,4O createsonanFeature(O extruded cut (Feature(O 0,3 )) and dependency priority.So O1,3(Feature(O is executed 0,4 in )) both and O0,40,3 is).undone, as1,3shown in the figure. 0,3 ). O1,3 O0,4 creates a circular pattern forsites Feature(O In S1 , O deletes Feature(O O1,4concurrent creates a threaded hole (Feature(O )) and O1,5 makes a pattern of Feature(O1,4) (Feature(O1,5)). and O0,4 are operations. Because 1,4 Feature(O 0,4 ) depends on Feature(O0,3 ), O1,3 has a higher O 0,5 and O0,6 create two extruded bosses. O1,4 and O0,5 are concurrent operations. The collaborative dependency priority. So O1,3 is executed in both sites and O0,4 is undone, as shown in the figure. process based on concurrency control strategy is shown in the figure. O1,4 creates a threaded hole (Feature(O1,4 )) and O1,5 makes a pattern of Feature(O1,4 ) (Feature(O1,5 )). O0,5 and O0,6 create two extruded bosses. O1,4 and O0,5 are concurrent operations. The collaborative process based on concurrency control strategy is shown in the figure.

Symmetry 2017, 9, 59

13 of 20

Symmetry 2017, 9, 59

13 of 20

S0

S1

Modeling History Extruded Boss

O0,3

O0,3

C

C

O0,4

O1,3

C

D

undo O1,3 O0,4 D

Threaded Hole

undo O0,4 Extruded Boss

O1,3 O1,4 C O0,5 Time

C

O1,5

O1,4

C

C

Circular Pattern

O0,5 undo redo O1,4 O0,5 O1,4 C O O1,5 1,5

O0,6 C O1,5 O0,6

C C

redo undo O1,5 O0,6 O1,5

Figure Figure 11. 11. Collaborative Collaborative CAD CAD modeling modeling case case study study (2). (2).

Figure 12 shows the following steps after Figure 11. O0,7 and O1,6 are two concurrent modification Figure 12 shows the following steps after Figure 11. O and O1,6 are two concurrent modification operations. O1,6 modifies Feature(O1,4) and O0,7 modifies0,7Feature(O 1,5). Because of the dependent operations. O1,6 modifies Feature(O1,4 ) and O0,7 modifies Feature(O1,5 ). Because of the dependent relationship of Feature(O1,4) and Feature(O1,5), O1,6 should be executed before O1,5. O0,10 and O1,7 are relationship of Feature(O1,4 ) and Feature(O1,5 ), O1,6 should be executed before O1,5 . O0,10 and O1,7 are concurrent and the concurrency control result is shown in the figure. concurrent and the concurrency control result is shown in the figure.

Symmetry 2017, 9, 59

14 of 20

Symmetry 2017, 9, 59

14 of 20

S0

S1

Modeling History Mirror

redo undo O0.7 O1,6 O0,7

O0,7

O1,6

M

M Threaded Hole

O1,6

O0,7

M

M Extruded Cut

O0,8

O0,8

C

C

O0,9

O0,9

C

C

O0,10

O1,7

C

C

Time

O1,7

O0,10

C

C

Extruded Cut

redo undo O1,7 O0,10 O1,7

Figure 12. Collaborative CAD modeling case study (3).

Figure 12. Collaborative CAD modeling case study (3).

Figure 13 shows the final steps of the collaborative design process. O0,12 is a modification operation O1,9 isthe a deletion operation. They are concurrent and both executedOon theissame feature Figure 13and shows final steps of the collaborative design process. a modification 0,12 Feature(O 0,11 ). Because S 0 has the higher priority, O 0.12 is chosen to be executed. O 0,13 creates a fillet operation and O1,9 is a deletion operation. They are concurrent and both executed on the same feature (Feature(O 0,13)) while O1,9 creates a chamfer (Feature(O1,10)) on the same feature. When O1,9 arrives at Feature(O0,11 ). Because S0 has the higher priority, O0.12 is chosen to be executed. O0,13 creates a fillet S0, the topological edge needed to create Feature(O1,10) is lost because of O0,13. The situation is the same (Feature(O0,13 )) while O1,9 creates a chamfer (Feature(O1,10 )) on the same feature. When O1,9 arrives when O0,13 arrives at S1 to create Feature(O0,13) after O1,9 has been executed there. Because at S0 , the topological edge needed to create Feature(O1,10 ) is lost because of O0,13 . The situation is Priority(O0,13) > Priority(O1,10), the fillet is created and the chamfer is withdrawn. the same when O0,13 arrives at S1 to create Feature(O0,13 ) after O1,9 has been executed there. Because Priority(O0,13 ) > Priority(O1,10 ), the fillet is created and the chamfer is withdrawn.

Symmetry 2017, 9, 59

15 of 20

Symmetry 2017, 9, 59

15 of 20

S0

Modeling History

S1

Extruded Cut

O1,8

O1,8

C

C

O0,11

O0,11

C

C

Fillet

Fillet

O0,12

O1,9

M

D

Time undo O1,9

O0,10 C

undo O1,8 O0,12

Final Result Model

O0,13 C O1,10 C undo O1,9

O0,13 undo O1,9 O0,13 C

Figure 13. Collaborative CAD modeling case study (4). Figure 13. Collaborative CAD modeling case study (4).

Through the described and shown collaborative modeling procedure, the final result model of a theisdescribed andsymmetric shown collaborative thecollaboratively. final result model gear Through pump bass created by modeling modeling procedureprocedure, of two sites In of thea gear pump bass is created by symmetric modeling procedure of two sites collaboratively. In the whole whole procedure of this case study, the modeling history of all sites is: procedure of this case study, the modeling history of all sites is: {O0,1,O0,2,O1,1,O0,5,O1,4,O0,6,O1,5,O0,8,O0,9,O0,10,O1,7,O1,8,O0,11,O0,13}. {O0,1 ,O0,2 ,O1,1 ,O0,5 ,O1,4 ,O0,6 ,O1,5 ,O0,8 ,O0,9 ,O0,10 ,O1,7 ,O1,8 ,O0,11 ,O0,13 }. The symmetric CoFOL of operations in each site are: The symmetric CoFOL of operations in each site are: S0: {O0,1,O0,2,O1,1,O0,3,O1,3,O0,5,O1,4,O0,6,O1,5,O1,6,O0,7,O0,8,O0,9,O0,10,O1,7,O1,8,O0,11,O0,12,O0,13}, ,O0,2,O1,1,O0,3,O1,3,O0,5,O1,4,O0,6,O1,5,O1,6,O0,7,O0,8,O0,9,O0,10,O1,7,O1,8,O0,11,O0,12,O0,13}. SS01:: {O {O0,1 0,1 ,O0,2 ,O1,1 ,O0,3 ,O1,3 ,O0,5 ,O1,4 ,O0,6 ,O1,5 ,O1,6 ,O0,7 ,O0,8 ,O0,9 ,O0,10 ,O1,7 ,O1,8 ,O0,11 ,O0,12 ,O0,13 }, SThus, ,O1,1 ,O1,4 ,O 1 : {O0,1 0,3 ,O1,3 ,O0,5 0,6 ,O1,5 1,6 ,O0,7 ,O 0,8 ,O0,9 ,O0,10 ,Oby 1,7 ,O 1,8 ,O0,11 ,O 0,12 ,O0,13 }. in,O S00,2 and S1,,O a consistent result model is ,O generated collaboratively symmetric operations and the modeling history is consistent in both sites. Thus, in S0 and S1 , a consistent result model is generated collaboratively by symmetric operations and the modeling history is consistent in both sites. 5.2. Comparisons and Analysis

5.2.1. General Discussion In our work, the local operations are executed immediately and directly sent to other sites. So the burden of network transmission and response time of each site is effectively reduced. In a

Symmetry 2017, 9, 59

16 of 20

5.2. Comparisons and Analysis 5.2.1. General Discussion In our work, the local operations are executed immediately and directly sent to other sites. So the burden of network transmission and response time of each site is effectively reduced. In a centralized architecture, every site is required to send operations to a centralized server and the server broadcasts operations to all sites. The authority-based methods (such as lock mechanisms and floor mechanisms) can also maintain consistent order of operations by giving editing authority to one user at a time. The proposed method supports multi-user editing of the shared CAD model simultaneously. The proposed method uses a symmetric operation procedure for modeling consistency. All the operations are based on the granularity of modeling features. The method is more convenient than the OT-based replicated Co-CAD method, which requires complex geometry computation and collaborative naming methods. More specific discussions are given in the following sub-sections. 5.2.2. Architecture and Strategy This paper maintains a consistent modeling order of operations to achieve consistent result. The difference between this paper and the most closely related reference [13] is that our method is based on peer-to-peer replicated architecture, in which we have to face new technical challenges. The detailed differences are analyzed and compared as follows. Firstly, [13] adopts a replicated architecture with a centralized server used to coordinate the collaborative CAD operations and sends the global order of operations to all design sites. Therefore, the modeling history of each site is automatically consistent. By contrast, our paper is based on peer-to-peer replicated architecture, in which there is no centralized server. Hence, our work emphasizes how to maintain consistent modeling history in collaborative design and researches on the convenient approach that can achieve Co-CAD consistency for every Co-CAD site. Then, a set of operation ordering rules is proposed to keep operations in a consistent and valid order in all sites. Consequently, with consistent operational order maintained in every site, the consistency of both history and results is achieved. Secondly, [13] uses the time that operations come to the server as the fundamental judgement criterion. The coordination of operations from design sites is achieved by the matching and updating of the Operation Sequence Number (OSN) on the service and received operational sequence number (ROSN) on the client. Our paper introduces some proper technique issues for the peer-to-peer replicated architecture. The state vector is used in Co-CAD to indicate modeling status. Based on the state vector, three operational relationships, causality, concurrency, and partial concurrency, are determined. Operation sequence is re-organized based on the operational relationship in each site. The order of operations must conform to causality at first. In partial concurrency processing, the concurrent operation of a received remote operation can be found in the operational sequence. To the concurrent operations, we proposed the symmetric concurrency relationship control strategy to determine the order of operations. The site priority and operation dependency are both used as judgment criteria. 5.2.3. Conflict Resolution The conflict resolution mechanism is an important part of Co-CAD systems. Operational conflicts can be classified as different types based on different taxonomies. For example, according to [13], operational conflict can be classified into two types, “a semantic conflict is caused by valid operations which violate the design intent of a model, leading to redundant work; a syntactic conflict happens between operations that cause one or more operations to become invalid” [13] (p. 2). This manuscript keeps the above roadmap and presents a novel approach to ensure consistent and valid modeling results in Co-CAD.

Symmetry 2017, 9, 59

17 of 20

For semantic conflict, it is difficult for a Co-CAD system to determine whether the design intent is correct or not. The fundamental function of the system is to maintain consistent results for all of sites/users. The “consistent results” can be “correct” or “not correct” from the view of design intent. After a number of human–human interaction [7,19] processes, the sites/users can reach a compromised result. Because the mutual perception (collaborative awareness) is an important issue to support human–human interaction processes, we try to preserve the operations as much as possible. Then, when semantic conflict occurs, the designers can observe it. Therefore, the semantic conflict will finally be resolved by the designers themselves. Potential syntactic conflicts are detected during the process of operation ordering in this paper. Three judging conditions (the existence of a referenced topological entity, the operational object, and the dependent relationship) are presented to determine whether there will be a conflict taking place when executing concurrent remote operations. Syntactic conflict means that collaborative operations are mutually exclusive. In other words, one or more operations cannot be executed. So at least one of the conflicted operations has to be discarded in order to maintain the feature validity. Therefore, the next key issue is how to determine which one to abandon. Our method uses site priority and dependency priority as the determination criteria. The above judging conditions and determination criteria are based on the essential execution conditions of feature operation and reasonable Co-CAD design scene. 6. Conclusions This paper proposed a novel synchronization mechanism for Co-CAD with the consideration of modeling history. Relationships of collaborative operations are analyzed first. Modeling state vector and operation queue are used for causality relationship maintenance, partial concurrency processing, and retrieving concurrent operation. A symmetric concurrency relationship control strategy is proposed to determine the concurrent operation sequence. For every possible situation of concurrent operations, a corresponding solution is given based on the proposed judging conditions and operational priority. The strategy sorts the execution order of concurrent operations, and determines operations that may cause conflicts. After processing collaborative operations by the proposed method, a symmetric and consistent modeling procedure is generated in each Co-CAD site. Thereby, the consistency of both modeling results and procedures is achieved. The design intents of all sites are preserved, except for those that will lead to operational conflict. The proposed mechanism is effective, convenient, and practical. As to future research directions, firstly it is necessary to accelerate and optimize the proposed method with paralleling computing [52–56] and intelligent computing [57–60] because the frequent use of undo and redo operations will increase computational costs. Secondly, the security problem in collaboration design [61–63] will be researched in the future. Thirdly, discarding features for conflict resolution is not perfect for mutual perception in Co-CAD, so research can be improved to preserve design intents from all collaborative sites as much as possible. Fourthly, we also want to extend our method to a hybrid synchronous CAD environment [8]. Finally, we also want to extend the symmetryand consistency-related methods to other areas of science and technology [64–71]. Acknowledgments: This paper was supported by the National Science Foundation of China (Grant No. 61472289), the National Key Research and Development Project (Grant No. 2016YFC0106305), and the Open Project Program of the State Key Laboratory of Digital Manufacturing Equipment and Technology at HUST (Grant No. DMETKF2017016). Author Contributions: Yiqi Wu and Fazhi He proposed the main idea. Fazhi He and Soonhung Han supervised the research and Yiqi Wu wrote the manuscript. All authors have approved the final manuscript. Conflicts of Interest: The authors declare no conflict of interest.

References 1.

Zeng, Y.; Horváth, I. Fundamentals of next generation CAD/E systems. Comput. Aided Des. 2012, 44, 875–878. [CrossRef]

Symmetry 2017, 9, 59

2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.

18 of 20

Lee, S.; Jeong, T. Cloud-Based Parameter-Driven Statistical Services and Resource Allocation in a Heterogeneous Platform on Enterprise Environment. Symmetry 2016, 8, 103. [CrossRef] Li, W.D.; Mehnen, J. Cloud Manufacturing (Springer Series in Advanced Manufacturing); Springer: London, UK, 2013. Grudin, J. Computer-supported cooperative work: History and focus. Computer 1994, 27, 19–26. [CrossRef] Red, E.; French, D.; Hepworth, A. Multi-User Computer-Aided Design and Engineering Software Applications. In Cloud-Based Design and Manufacturing (CBDM); Dirk, S., Ed.; Springer: Berlin, Germany, 2014; pp. 25–62. Li, W.D.; Lu, W.F.; Fuh, J.Y.H.; Wong, Y.S. Collaborative computer-aided design—Research and development status. Comput. Aided Des. 2005, 37, 931–940. [CrossRef] He, F.Z.; Han, S.H. A method and tool for human-human interaction and instant collaboration in CSCW based CAD. Comput. Ind. 2006, 57, 740–751. [CrossRef] Gao, L.; Shao, B.; Zhu, L.; Lu, T.; Gu, N. Maintaining time and space consistencies in hybrid CAD environments: Framework and algorithms. Comput. Ind. 2008, 59, 894–904. [CrossRef] Wu, Y.; He, F.; Zhang, D.; Li, X. Service-oriented feature-based data exchange for cloud-based design and manufacturing. IEEE Trans. Serv. Comput. 2015. [CrossRef] Gao, L.; Yu, F.; Chen, Q.; Xiong, N. Consistency maintenance of Do and Undo/Redo operations in real-time collaborative bitmap editing systems. Clust. Comput. 2016, 19, 255–267. [CrossRef] Gao, L.; Yu, F.; Gao, L.; Xiong, N.; Yang, G. Consistency maintenance of compound operations in real-time collaborative environments. Comput. Electr. Eng. 2016, 50, 217–235. [CrossRef] Lv, X.; He, F.; Cai, W.; Chen, Y. A string-wise CRDT algorithm for smart and large-scale collaborative editing systems. Adv. Eng. Inform. 2016. [CrossRef] Hepworth, A.; Tew, K.; Trent, M.; Ricks, D.; Jensen, G. Model consistency and conflict resolution with data preservation in multi-user computer aided design. J. Comput. Inf. Sci. Eng. 2014, 14, 021008. [CrossRef] Gao, L.; Lu, T.; Gu, N. CLAF: Solving intention violation of step-wise operations in CAD groupware. Adv. Eng. Inform. 2010, 24, 121–137. [CrossRef] Jing, S.X.; He, F.Z.; Han, S.H. A method for topological entity correspondence in a replicated collaborative CAD system. Comput. Ind. 2009, 60, 467–475. [CrossRef] Li, X.; He, F.; Cai, X.; Zhang, D.; Chen, Y. A method for topological entity matching in the integration of heterogeneous cad systems. Integr. Comput. Aided Eng. 2013, 20, 15–30. Wang, Y.; Nnaji, B.O. Geometry-based semantic ID for persistent and interoperable reference in feature-based parametric modeling. Comput. Aided Des. 2005, 37, 1081–1093. [CrossRef] Tessier, S.; Wang, Y. Ontology-based feature mapping and verification between CAD systems. Adv. Eng. Inform. 2013, 27, 76–92. [CrossRef] Cheng, Y.; He, F.; Wu, Y. Meta-operation conflict resolution for human–human interaction in collaborative feature-based CAD systems. Clust. Comput. 2016, 19, 237–253. [CrossRef] Zhang, D.J.; He, F.Z.; Han, S.H.; Li, X.X. Quantitative optimization of interoperability during feature-based data exchange. Integr. Comput. Aided Eng. 2016, 23, 31–50. [CrossRef] Chen, Y.; He, F.; Wu, Y.; Hou, N. A local start search algorithm to compute exact Hausdorff Distance for arbitrary point sets. Pattern Recognit. 2017, 67, 139–148. [CrossRef] Red, E.; French, D.; Jensen, G.; Walker, S.; Madsen, P. Emerging design methods and tools in collaborative product development. J. Comput. Inf. Sci. Eng. 2013, 13, 031001. [CrossRef] Kim, B.C.; Mun, D. Stepwise volume decomposition for the modification of B-rep models. Int. J. Adv. Manuf. Technol. 2014, 75, 1393–1403. [CrossRef] Yeoun, Y.; Kim, B.C. CAD model simplification using feature simplifications. J. Adv. Mech. Des. Syst. 2016, 10, JAMDSM0099. Shen, W.M.; Hao, Q. Computer support collaborative design: Retrospective and perspective. Comput. Ind. 2008, 9, 855–862. [CrossRef] Dietrich, U.; Von Lukas, U.; Morche, I. Cooperative modeling with TOBACO. In Proceedings of the TeamCAD97 Workshop on Collaborative Design, Atlanta, GA, USA, 12–13 May 1997; pp. 115–122. Stork, A.; Lukas, U.; Schultz, R. Enhancing a commercial 3D CAD system by CSCW functionality for enabling co-operative modelling via WAN. In Proceedings of the ASME Design Engineering Technical Conferences, Atlanta, GA, USA, 13–16 September 1998.

Symmetry 2017, 9, 59

28. 29. 30. 31. 32. 33.

34.

35. 36.

37.

38.

39.

40. 41. 42.

43. 44. 45. 46. 47. 48. 49. 50.

19 of 20

Stork, A.; Jasnoch, U. A collaborative engineering environment. In Proceedings of the TeamCAD97 Workshop on Collaborative Design, Atlanta, GA, USA, 12–13 May 1997; pp. 25–33. Li, M.; Gao, S.H.; Wang, C.C. Real-Time Collaborative Design With Heterogeneous CAD Systems Based on Neutral Modeling Commands. J. Comput. Inf. Sci. Eng. 2007, 7, 113–125. [CrossRef] Li, M.; Gao, S.; Fuh, J.Y.H. Replicated Concurrency Control for Collaborative Feature Modeling: A Fine Granular Approach. Comput. Ind. 2008, 59, 873–881. [CrossRef] Yang, L.; Ong, S.K.; Nee, A.Y.C. Coordination for replicated collaborative feature modeling. Int. J. Interact. Des. Manuf. 2010, 4, 191–200. [CrossRef] Li, D.; Li, R. An admissibility-based operational transformation framework for collaborative editing systems. Comput. Support. Coop. Work (CSCW) 2010, 19, 1–43. [CrossRef] Shao, B.; Li, D.; Gu, N. A sequence transformation algorithm for supporting cooperative work on mobile devices. In Proceedings of the 2010 ACM Conference on Computer Supported Cooperative Work, Savannah, GA, USA, 6–10 February 2010. Shao, B.; Li, D.; Lu, T.; Gu, N. An operational transformation based synchronization protocol for web 2.0 applications. In Proceedings of the ACM 2011 Conference on Computer Supported Cooperative Work, Hangzhou, China, 19–23 March 2011. Sun, D.; Sun, C.; Xia, S.; Shen, H. Creative conflict resolution in collaborative editing systems. In Proceedings of the ACM 2012 Conference on Computer Supported Cooperative Work, Seattle, WA, USA, 11–15 February 2012. Suleiman, M.; Cart, M.; Ferri’e, J. Serialization of concurrent operations in a distributed collaborative environment. In Proceedings of the International ACM SIGGROUP Conference on Supporting Group Work: The Integration Challenge, Phoenix, AZ, USA, 16–19 November 1997; pp. 435–445. Vidot, N.; Cart, M.; Ferri’e, J. Copies convergence in a distributed real-time collaborative environment. In Proceedings of the ACM 2000 Conference on Computer Supported Cooperative Work, Philadelphia, PA, USA, 2–6 December 2000; pp. 171–180. Preguica, N.; Marques, J.M.; Shapiro, M. A commutative replicated data type for cooperative editing. In Proceedings of the 29th IEEE International Conference on Distributed Computing Systems (ICDCS), Montreal, QC, Canada, 22–26 June 2009; pp. 395–403. Oster, G.; Urso, P.; Molli, P. Data consistency for P2P collaborative editing. In Proceedings of the 20th Anniversary Conference on Computer Supported Cooperative Work, Banff, AB, Canada, 4–8 November 2006; pp. 259–268. Weiss, S.; Urso, P.; Molli, P. Logoot-undo: Distributed collaborative editing system on p2p networks. IEEE Trans. Parallel Distrib. Syst. 2010, 21, 1162–1174. [CrossRef] Liu, H.; He, F.; Zhu, F. Consistency maintenance in collaborative CAD systems. Chin. J. Electron. 2013, 22, 15–20. Sun, C.; Xu, D. Operational transformation for dependency conflict resolution in real-time collaborative 3D design systems. In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work, Seattle, WA, USA, 11–14 February 2012. Brosch, P.; Seidl, M.; Wieland, K.; Wimmer, M.; Langer, P. We can work it out: Collaborative conflict resolution in model versioning. In ECSCW 2009; Springer: Vienna, Austria, 2009; pp. 207–214. Trappey, A.J.; Trappey, C.V.; Wu, C.-Y.; Fan, C.Y.; Lin, Y.-L. Intelligent patent recommendation system for innovative design collaboration. J. Netw. Comput. Appl. 2013, 36, 1441–1450. [CrossRef] Hepworth, A.I.; Tew, K.; Nysetvold, T.; Bennett, M.; Jensen, C.G. Automated conflict avoidance in multi-user CAD. Comput. Aided Des. Appl. 2014, 11, 141–152. [CrossRef] Moncur, R.A.; Jensen, C.G.; Teng, C.C.; Red, E. Data consistency and conflict avoidance in a multi-user CAx environment. Comput. Aided Des. Appl. 2013, 10, 727–744. [CrossRef] Yu, M.; Cai, H.; Ma, X.; Jiang, L. Symmetry-Based Conflict Detection and Resolution Method towards Web3D-based Collaborative Design. Symmetry 2016, 8, 35. [CrossRef] Cai, X.T.; Li, X.X.; He, F.Z. Flexible concurrency control for legacy CAD to construct collaborative CAD environment. J. Adv. Mech. Des. Syst. 2012, 6, 324–339. [CrossRef] Lee, H.; Kim, J.; Banerjee, A. Collaborative intelligent CAD framework incorporating design history tracking algorithm. Comput. Aided Des. 2010, 42, 1125–1142. [CrossRef] Lamport, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 1978, 21, 558–565. [CrossRef]

Symmetry 2017, 9, 59

51.

52. 53. 54.

55.

56.

57. 58. 59. 60. 61. 62.

63. 64. 65. 66. 67. 68. 69. 70. 71.

20 of 20

Sun, C.; Zhang, Y.; Jia, X. A generic operation transformation scheme for consistency maintenance in real-time cooperative editing systems. In Proceedings of the International ACM SIGGROUP Conference on Supporting Group Work: The integration challenge, Phoenix, AZ, USA, 16–19 November 1997; pp. 425–434. Zhou, Y.; He, F.; Qiu, Y. Optimization of parallel iterated local search algorithms on graphics processing unit. J. Supercomput. 2016, 72, 2394–2416. [CrossRef] Zhou, Y.; He, F.; Qiu, Y. Dynamic Strategy based Parallel Ant Colony Optimization on GPUs for TSPs. Sci. China Inf. Sci. 2017, 60, 068102. [CrossRef] Cai, W.; He, F.; Lv, X. Multi-core Accelerated Operational Transformation for Collaborative Editing. In Proceedings of the International Conference on Collaborative Computing: Networking, Applications and Worksharing, Wuhan, China, 10–11 November 2015; Springer International Publishing: New York, NY, USA, 2015; pp. 121–128. Chen, G.; Li, G.; Wu, B.; Pei, S. A GPU-based computing framework for CSCW. In Proceedings of the 14th International Conference on Computer Supported Cooperative Work in Design, Shanghai, China, 14–16 April 2010; pp. 100–103. Pinheiro, A.; Desterro, F.; Santos, M.; Pereira, C.; Schirru, R. GPU-Based Parallel Computation in Real-Time Modeling of Atmospheric Radionuclide Dispersion. In Advances in Human Factors and System Interactions; Nunes, I.L., Ed.; Springer: Cham, Switzerland, 2017; Volume 497, pp. 323–333. Yan, X.; He, F.; Chen, Y.; Yuan, Z. An efficient improved particle swarm optimization based on prey behavior of fish schooling. J. Adv. Mech. Des. Syst. 2015, 9, JAMDSM0048. [CrossRef] Yan, X.; He, F.; Hou, N. A novel hardware/software partitioning method based on position disturbed particle swarm optimization with invasive weed optimization. J. Comput. Sci. Technol. 2017, 32, 340–355. [CrossRef] Yan, X.; He, F.; Hou, N.; Ai, H. An efficient particle swarm optimization for large scale hardware/software codesign system. Int. J. Coop. Inf. Syst. 2017. Wang, D.; Tan, D.; Liu, L. Particle swarm optimization algorithm: An overview. Soft Comput. 2017. [CrossRef] Mun, D.; Hwang, J.; Han, S. Protection of intellectual property based on a skeleton model in product design collaboration. Comput. Aided Des. 2009, 41, 641–648. [CrossRef] Cai, X.T.; Wang, S.; Lu, X.; Li, W.D. Parametric Encryption of CAD models in Cloud manufacturing environment. In Proceedings of the 20th International Conference on Computer Supported Cooperative Work in Design, Nanchang, China, 4–6 May 2016; pp. 551–556. Park, J.H.; Kim, H.; Kang, J. Security scheme based on parameter hiding technic for mobile communication in a secure cyber world. Symmetry 2016, 8, 106. [CrossRef] Li, K.; He, F. Robust Visual Tracking based on convolutional features with illumination and occlusion handing. J. Comput. Sci. Technol. 2017. accepted. Li, K.; He, F.; Yu, H.; Chen, X. A correlative classiers approach based on particle filter and sample set for tracking occluded target. Appl. Math. Ser. B 2017. accepted. Yu, H.; He, F.; Pan, Y.; Chen, X. An efficient similarity-based level set model for medical image segmentation. J. Adv. Mech. Des. Syst. 2016, 10, JAMDSM0100. [CrossRef] Li, K.; He, F.; Chen, X. Real-time object tracking via compressive feature selection. Front. Comput. Sci. 2016, 10, 689–701. [CrossRef] Sun, J.; He, F.Z.; Chen, Y.L.; Chen, X. A multiple template approach for robust tracking of fast motion target. Appl. Math. Ser. B 2016, 31, 177–197. [CrossRef] Ni, B.; He, F.Z.; Pan, Y.T.; Yuan, Z.Y. Using shapes correlation for active contour segmentation of uterine fibroid ultrasound images in computer-aided therapy. Appl. Math. J. Chin. Univ. 2016, 31, 37–52. [CrossRef] Ni, B.; He, F.Z.; Yuan, Z.Y. Segmentation of uterine fibroid ultrasound images using a dynamic statistical shape model in HIFU therapy. Comput. Med. Imaging Graph. 2015, 46, 302–314. [CrossRef] [PubMed] Zhang, D.J.; He, F.Z.; Han, S.H.; Zou, L.; Wu, Y.Q.; Chen, Y.L. An efficient approach to directly compute the exact Hausdorff distance for 3D point sets. Integr. Comput. Aided E 2017. accepted. © 2017 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).