• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Web產(chǎn)品協(xié)同設(shè)計系統(tǒng)關(guān)鍵技術(shù)的解決

      2018-09-29 02:38邵秀麗李慧超王景軍姚萌萌
      智能計算機(jī)與應(yīng)用 2018年4期
      關(guān)鍵詞:服務(wù)器端客戶端分配

      邵秀麗 李慧超 王景軍 姚萌萌

      摘 要:本文針對基于Web3D的協(xié)同設(shè)計系統(tǒng)中多用戶協(xié)作沖突處理、設(shè)計操作實時同步顯示和交互過程即時通訊3個關(guān)鍵問題進(jìn)行研究。針對3個問題分別提出基于控制權(quán)限及優(yōu)先級處理的沖突操作解決方案,基于約定語義規(guī)則庫進(jìn)行設(shè)計操作格式化與數(shù)據(jù)解析和基于node.js+socket.io即時通信框架的客戶端與服務(wù)器通訊方案,從而實現(xiàn)基于Web3D的協(xié)同設(shè)計系統(tǒng)中操作與數(shù)據(jù)的一致性與即時性。

      關(guān)鍵詞:Web 3D協(xié)同設(shè)計; 同步互斥; 沖突處理; 即時通訊

      Abstract: Multi-user collaboration conflict management, real-time synchronous display of design and operation and instant messaging of interactive process are three key issues for the research of Web 3D-based co-design system. According to the three problems,the paper proposes conflict operation solution based on control authority and priority, respectively. Based on the agreed semantic rule base, the paper designs and formats operation and data analysis and client / server communication scheme based on node.js + socket.io instant messaging framework. The consistency and immediacy of operation and data in Web 3D-based collaborative design system is achieved.

      Key words: Web 3D collaborative design; synchronization mutex; conflict handling; instant message

      引言

      傳統(tǒng)的產(chǎn)品研制設(shè)計過程是由設(shè)計師在企業(yè)內(nèi)部獨立完成的,客戶無法參與到產(chǎn)品設(shè)計中,使得設(shè)計師不能根據(jù)每個客戶的實際需要設(shè)計出合適的產(chǎn)品[1]。利用現(xiàn)代網(wǎng)絡(luò)技術(shù),使客戶與設(shè)計師能夠協(xié)同設(shè)計產(chǎn)品,是目前制造業(yè)信息化發(fā)展的主要方向[2]。 互聯(lián)網(wǎng)的出現(xiàn),使 3D 圖形技術(shù)發(fā)生了深刻的變化,產(chǎn)生了一些專門針對互聯(lián)網(wǎng)的3D圖形技術(shù),統(tǒng)稱為 Web3D 技術(shù)[4-5]。

      本文采用同步協(xié)同模式,利用Web3D技術(shù)實現(xiàn)的基于Web3D產(chǎn)品協(xié)同設(shè)計系統(tǒng)[3]讓顧客和一些工程師參與到產(chǎn)品的設(shè)計中來,解決傳統(tǒng)產(chǎn)品設(shè)計過程存在用戶參與受地域、時空限制的弊端。

      在利用基于Web3D產(chǎn)品協(xié)同設(shè)計系統(tǒng)進(jìn)行產(chǎn)品設(shè)計時,協(xié)作成員間需要在網(wǎng)上實時同步協(xié)作模型,隨時溝通設(shè)計意圖。因此,在協(xié)同設(shè)計過程中,須要解決幾個主要的問題:

      (1)分布在不同地域的設(shè)計參與者,要求在客戶端瀏覽器上保持設(shè)計對象的行為和狀態(tài)的一致性,實現(xiàn)設(shè)計對象的同步協(xié)同;

      (2)整個協(xié)同設(shè)計過程中,要采用一定協(xié)同控制機(jī)制,保證協(xié)作活動的有序進(jìn)行,避免引發(fā)并發(fā)沖突的現(xiàn)象;

      (3)即時通訊,協(xié)作組內(nèi)成員要能夠?qū)υO(shè)計方案進(jìn)行實時溝通。

      本文主要針對以上3個協(xié)同設(shè)計過程中關(guān)鍵問題給出了解決方案并進(jìn)行了實現(xiàn)。

      1 多用戶協(xié)作沖突處理

      協(xié)作任務(wù)創(chuàng)建后,即可按照約定好的協(xié)作時間開始展開產(chǎn)品的協(xié)作設(shè)計。設(shè)計過程中,針對可能出現(xiàn)的并發(fā)沖突,采用一定的協(xié)同控制機(jī)制避免此種現(xiàn)象的發(fā)生,使協(xié)作活動有序的進(jìn)行。為此,本文設(shè)計了協(xié)作對象和資源操作沖突分配問題的協(xié)作控制機(jī)制[8],保證協(xié)作活動的順利進(jìn)行。

      協(xié)同設(shè)計中的沖突處理方式可以分為靜態(tài)方式和動態(tài)方式。靜態(tài)方式是在沖突還未發(fā)生之前,通過實時通信窗口合理的開展協(xié)作任務(wù)規(guī)劃、知識、數(shù)據(jù)的共享,全面考慮參與者角色問題,從而減少或避免沖突的產(chǎn)生;動態(tài)方式[5]是通過內(nèi)部檢測機(jī)制避免沖突的產(chǎn)生,或當(dāng)沖突產(chǎn)生后,通過內(nèi)部機(jī)制對沖突實時處理。以下主要對動態(tài)方式展開介紹。

      為解決協(xié)同操作沖突問題[12],本系統(tǒng)設(shè)計了基于優(yōu)先級的自由式和基于權(quán)限的資源占用式2種沖突處理機(jī)制,保證協(xié)同設(shè)計的順利進(jìn)行。

      1.1 基于優(yōu)先級的自由式處理機(jī)制

      1.1.1 并發(fā)操作及沖突的定義

      并發(fā)操作的定義:規(guī)定請求間隔小于0.1 s的一系列請求,視為可能導(dǎo)致操作沖突的并發(fā)操作請求集。

      操作沖突定義為以下2種:創(chuàng)建時沖突,當(dāng)多用戶同時添加相同模型,或?qū)⒉煌P吞砑拥较嗤恢脮r,產(chǎn)生創(chuàng)建沖突;狀態(tài)改變沖突,當(dāng)多用戶同時修改相同模型屬性,且修改后狀態(tài)不同時,產(chǎn)生狀態(tài)改變沖突。

      1.1.2 沖突檢測與處理

      該沖突處理機(jī)制,是在NodeJs服務(wù)器的事件隊列的內(nèi)部運行機(jī)制之上,定義了二級并發(fā)緩存機(jī)制,并以客戶端操作請求到達(dá)服務(wù)端的時間為準(zhǔn)進(jìn)行沖突檢測。偽碼如下(假設(shè)當(dāng)前操作為0):

      該機(jī)制下沖突的檢測與處理步驟如下:

      (1)定義用戶操作標(biāo)識集,包括操作類型、零件名稱、用戶ID等屬性,用來存儲用戶操作信息;

      (2)定義已執(zhí)行隊列用來存放并發(fā)處理過程中已執(zhí)行的操作;

      (3)對于并發(fā)操作集中第一個操作請求視為有效操作,使用socket.io即時通信技術(shù)將其群發(fā)至組內(nèi)其它客戶端同步顯示,并將操作標(biāo)識,放入已執(zhí)行隊列;

      (4)按順序逐個獲取并發(fā)操作集中操作請求。按照沖突的定義,將當(dāng)前操作請求與已執(zhí)行隊列中的所有操作進(jìn)行沖突的判斷,若存在沖突則將該操作丟棄并回發(fā)沖突提示信息;若不存在沖突,將該操作視為有效操作,將操作標(biāo)識放入已執(zhí)行隊列;

      (5)清空已執(zhí)行隊列,該并發(fā)階段處理完畢,開始下一次沖突檢測。

      1.2 基于權(quán)限的資源占用式處理機(jī)制

      基于權(quán)限的資源占用式控制方法要求一個時間只能有一個人進(jìn)行設(shè)計操作,將操作權(quán)限設(shè)置為一個令牌,擁有令牌的用戶擁有對設(shè)計對象操作的權(quán)限。多用戶同時對操作令牌進(jìn)行申請,會導(dǎo)致操作令牌權(quán)限的分配混亂。因此,需要一種決策方法來解決多用戶的并發(fā)分配問題,提出了集中方式、先到先得方式、輪轉(zhuǎn)方式策略來控制令牌權(quán)限的分配,以下主要對集中式分配方式進(jìn)行介紹。

      1.2.1 令牌權(quán)限的控制

      協(xié)作組內(nèi)用戶操作令牌的申請,統(tǒng)一分發(fā)至活動負(fù)責(zé)人處,負(fù)責(zé)人根據(jù)申請情況,選定用戶為其分配操作令牌。一旦分配,不得再次為第二人分配令牌,直到該用戶因時間片用完或者自行釋放為止,或者可由負(fù)責(zé)人強(qiáng)制剝奪設(shè)計人操作令牌,被釋放的令牌可繼續(xù)分配給組內(nèi)其它用戶。

      1.2.2 用戶對令牌的申請與釋放

      活動進(jìn)行過程中,協(xié)作組內(nèi)普通用戶(除負(fù)責(zé)人外)可隨時對操作令牌進(jìn)行申請,由負(fù)責(zé)人為其分配操作令牌,同時系統(tǒng)為用戶分配時間片。當(dāng)時間片結(jié)束、用戶主動釋放或負(fù)責(zé)人強(qiáng)制剝奪令牌,令牌自動回收至負(fù)責(zé)人。

      1.2.3 令牌分配的實現(xiàn)

      首先,定義動態(tài)數(shù)組 activityCurrOper來記錄所有協(xié)作活動令牌的分配情況,以協(xié)作活動的id為數(shù)組索引,以要分配的用戶id為值,填充activityCurrOper數(shù)組,以此來存儲當(dāng)前操作用戶,該值為空即尚未給對應(yīng)協(xié)作對象分配操作用戶。該接口所做的工作如下:

      (1)為用戶分配操作令牌。即將用戶id填充到activityCurrOper數(shù)組對應(yīng)的位置,分配完成,運用實時通信機(jī)制類庫中的點對點通信方法和廣播通信方法,設(shè)置通知標(biāo)識,分別將分配結(jié)果(用戶id、用戶名稱、結(jié)果標(biāo)識)發(fā)送至分配用戶以及協(xié)作組內(nèi)其它客戶端,由客戶端根據(jù)對應(yīng)結(jié)果信息去控制界面屬性以控制設(shè)計界面是否可操作;

      (2)為獲取到操作令牌的用戶分配計時器。本處為保證組內(nèi)多個客戶端時間顯示的一致性,采用服務(wù)器端計時,該計時器初設(shè)時間為300 s,運用通信的廣播技術(shù)進(jìn)行協(xié)作組內(nèi)客戶端計時時間的同步。計時器計時結(jié)束,清空占用,終止該計時器,采用廣播的方法設(shè)置回收標(biāo)識,向組內(nèi)客戶端發(fā)送操作令牌的回收通信,組內(nèi)客戶端根據(jù)回收標(biāo)識,接收服務(wù)器回收通知后設(shè)置權(quán)限操作按鈕屬性,可重新提出操作令牌的申請。

      資源占用式分配問題的解決方案實現(xiàn)了基于負(fù)責(zé)人指定的集中方式、先到先得方式、輪轉(zhuǎn)方式的聯(lián)合控制,用戶可根據(jù)需要靈活更換控制方式。該方法要求一個時間只能有一個人進(jìn)行設(shè)計操作,將操作權(quán)限設(shè)置為一個令牌,擁有令牌的用戶擁有對設(shè)計對象操作的權(quán)限。用戶獲取操作令牌的流轉(zhuǎn)如圖1所示。

      從圖中可以看出,多用戶同時對操作令牌進(jìn)行申請,會導(dǎo)致操作令牌權(quán)限的分配混亂。因此,需要一種決策方法來解決多用戶的并發(fā)分配問題,本節(jié)并發(fā)分配解決方案給出了集中方式、先到先得方式、輪轉(zhuǎn)方式策略來控制令牌權(quán)限的分配。同時,活動負(fù)責(zé)人可根據(jù)需要自由進(jìn)行控制方式的切換。

      其中,負(fù)責(zé)人更換控制方式之后,必須保證協(xié)作組內(nèi)其它客戶端的控制方式同步更換,否則將導(dǎo)致因為參與用戶各個客戶端控制方式不一致而引發(fā)的控制混亂問題。

      2 協(xié)同設(shè)計界面實時同步

      在協(xié)同設(shè)計過程中,不同成員共同編輯一個應(yīng)用時,會出現(xiàn)公共操作區(qū)域或是頁面之間相互影響的問題。組內(nèi)協(xié)作客戶端界面需要實時刷新。因此,系統(tǒng)必須具有沖突檢測與處理以及實時同步處理的功能,這也是協(xié)同設(shè)計的難點之一。

      2.1 實時同步的處理機(jī)制

      在協(xié)同設(shè)計過程中,用戶進(jìn)行的設(shè)計操作要實時同步到其它成員客戶端瀏覽器上,為保證組內(nèi)設(shè)計者呈現(xiàn)結(jié)果的一致性,成員客戶端各自維護(hù)了一份設(shè)計對象數(shù)據(jù)副本,使操作數(shù)據(jù)在成員客戶端之間一致,同步過程具體流程如圖2所示。下面分3個方面對實時同步機(jī)制的實現(xiàn)進(jìn)行介紹。

      2.1.1 數(shù)據(jù)消息的語義規(guī)則庫和本地數(shù)據(jù)副本

      首先,數(shù)據(jù)消息的語義規(guī)則庫[9-10],定義了用戶操作集及客戶端同步操作傳遞的消息內(nèi)容和消息格式,消息內(nèi)容包括操作標(biāo)識(sign)、協(xié)作任務(wù)ID、用戶ID和零件名稱,見表1。

      用戶單步操作完成,按照表1所示的數(shù)據(jù)內(nèi)容和數(shù)據(jù)格式對操作產(chǎn)生的實際數(shù)據(jù)進(jìn)行格式化,設(shè)置操作標(biāo)識(sign)將其發(fā)送至服務(wù)器端進(jìn)行操作數(shù)據(jù)的傳遞。其中,各個操作對應(yīng)的數(shù)據(jù)內(nèi)容均包括協(xié)作活動id(activitiyid),決定了服務(wù)器傳遞操作數(shù)據(jù)的范圍。

      其次,本地數(shù)據(jù)副本,用于記錄當(dāng)前設(shè)計對象及其狀態(tài),由一系列零件及對應(yīng)屬性組成,見表2。

      2.1.2 實時同步的實現(xiàn)過程

      首先,用戶進(jìn)行設(shè)計操作,觸發(fā)對應(yīng)操作的響應(yīng)事件并更新本地數(shù)據(jù)副本,將操作產(chǎn)生的實際數(shù)據(jù)根據(jù)語義規(guī)則庫格式化成JSON對象,使用即時通信機(jī)制的socket.emit()方法將操作標(biāo)識(sign)和JSON對象發(fā)送至NodeJs服務(wù)器。

      其次,NodeJs服務(wù)器使用socket.on('sign',func(data))接口根據(jù)操作標(biāo)志sign接收并解析客戶端操作JSON對象,獲取協(xié)作任務(wù)ID,根據(jù)即時通信機(jī)制socket.broadcast.to(id).emit()方法,將服務(wù)器接收的JSON消息結(jié)合操作標(biāo)志sign群發(fā)至組內(nèi)的其它客戶端。

      最后,客戶端根據(jù)標(biāo)志位sign,解析服務(wù)器JSON消息,并更新本地數(shù)據(jù)副本,根據(jù)操作類型調(diào)用對應(yīng)界面驅(qū)動程序接口進(jìn)行頁面操作同步顯示。

      2.1.3 零件模型加載的網(wǎng)絡(luò)同步問題

      系統(tǒng)后臺對零件庫進(jìn)行維護(hù),零件模型應(yīng)當(dāng)是.obj模型文件,結(jié)合.mtl材質(zhì)文件格式。應(yīng)用基于WebGL[6]第三方開源庫的Three.js作為3D渲染引擎,3D場景通過.obj和.mtl文件獲得模型信息和材料信息。設(shè)計人員可通過鼠標(biāo)操作或修改組件參數(shù)信息,最終形成完整3D產(chǎn)品模型。參與設(shè)計用戶可自行導(dǎo)入STL格式的CAD模型文件,該格式為CAD軟件、3Dmaxs軟件、Three.js Web3D接收的通用版本。文件一經(jīng)導(dǎo)入可直接加載至3D場景中,供用戶使用,使零件庫易于擴(kuò)展。

      如果模型文件過大,以整個文件作為傳輸對象,會因耗時問題導(dǎo)致通信連接的中斷或者阻塞的現(xiàn)象,對實時同步造成很大的影響。

      本文提出對大文件問題采用基于IIS服務(wù)器的異步請求方法實時同步。用戶操作的零件模型,會以異步方式,保存至IIS服務(wù)器;借助文本同步通信機(jī)制將模型文件存儲URL格式化為JSON消息格式,由NodeJs服務(wù)器轉(zhuǎn)發(fā)至協(xié)作組內(nèi)其它客戶端;客戶端接收J(rèn)SON消息,解析得到文件URL,根據(jù)URL異步獲取IIS服務(wù)器端模型文件,載入設(shè)計場景中。

      2.2 協(xié)同設(shè)計的界面實時同步解決方案

      在本文同步協(xié)同設(shè)計活動進(jìn)行過程中,獲取設(shè)計界面操作權(quán)的用戶進(jìn)行的設(shè)計操作要及時的傳遞到參與設(shè)計的其它客戶端瀏覽器上,同時參與設(shè)計的其它客戶端傳遞過來的操作活動也能在該客戶端瀏覽器上實時顯示。

      而從單用戶的角度出發(fā),要實現(xiàn)用戶的設(shè)計操作在參與設(shè)計的其它客戶端瀏覽器實時同步展現(xiàn),需要做如下工作:

      (1)用戶單步操作的處理。由頁面事件驅(qū)動程序捕獲用戶設(shè)計操作,并將設(shè)計操作產(chǎn)生數(shù)據(jù)格式化為指定的消息格式,將消息實時發(fā)送至通信服務(wù)器上,服務(wù)器以廣播的形式轉(zhuǎn)發(fā)給參與設(shè)計的其它客戶端;

      (2)組內(nèi)客戶端同步呈現(xiàn)。參與設(shè)計客戶端接收由服務(wù)器發(fā)送過來的操作消息,將消息根據(jù)約定語義規(guī)則庫進(jìn)行解析,然后交由客戶端設(shè)計界面驅(qū)動程序進(jìn)行相應(yīng)的操作顯示。

      另外,在服務(wù)器進(jìn)行統(tǒng)一信息轉(zhuǎn)發(fā)的基礎(chǔ)上,為保證參與設(shè)計用戶設(shè)計結(jié)果的一致性,參與設(shè)計成員客戶端各自維護(hù)了一份設(shè)計對象副本,使參與設(shè)計成員之間無需傳輸整個設(shè)計結(jié)果,而僅需將編輯數(shù)據(jù)經(jīng)服務(wù)器轉(zhuǎn)發(fā),使操作數(shù)據(jù)在參與設(shè)計客戶端之間同步。

      3 多用戶協(xié)同即時通訊機(jī)制

      WebSocket是HTML5提供的一種瀏覽器與服務(wù)器間進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù)。使用WebSocket、瀏覽器和服務(wù)器只需要要做一個握手的動作,二者之間就形成了一條快速通道,可以數(shù)據(jù)互相傳送[10-11]。而且為實現(xiàn)即時服務(wù)帶來了兩大好處:

      (1)節(jié)省資源?;ハ鄿贤ǖ腍eader很小,大概只有 2 Bytes;

      (2)推送信息。不需要客戶端請求,服務(wù)器可以主動傳送數(shù)據(jù)給客戶端。

      Socket.IO是一個WebSocket庫[4,13],包括了客戶端的js和服務(wù)器端的node.js,目標(biāo)是構(gòu)建不同瀏覽器和移動設(shè)備上使用的實時應(yīng)用?;赟ocket.IO良好的可移植性和可維護(hù)性,本文使用Socket.IO即時通信類庫,在客戶端與服務(wù)器端建立通信連接。

      3.1 客戶端與服務(wù)器通訊連接設(shè)計

      客戶端與服務(wù)器端為多對一的關(guān)系,服務(wù)器端應(yīng)用程序server.js必須時刻處于運行狀態(tài),這樣服務(wù)器與客戶端之間的即時通信就可以隨時進(jìn)行。主要設(shè)計機(jī)制:

      (1)服務(wù)器端應(yīng)用程序通過調(diào)用監(jiān)聽接口,并指定監(jiān)聽信息標(biāo)志,時刻監(jiān)聽帶有該標(biāo)志的客戶端操作權(quán)控制請求和操作請求信息??蛻舳艘坏┌l(fā)送對應(yīng)請求信息。則服務(wù)器端程序server.js中對應(yīng)監(jiān)聽程序接收用戶請求信息;

      (2)客戶端應(yīng)用程序通過調(diào)用監(jiān)聽接口,同樣指定監(jiān)聽信息標(biāo)志,時刻監(jiān)聽帶有該標(biāo)志的服務(wù)器端操作權(quán)控制以及操作控制反饋的結(jié)果信息,服務(wù)器端一旦發(fā)送對應(yīng)反饋信息,則客戶端應(yīng)用程序中對應(yīng)監(jiān)聽程序接收服務(wù)器端反饋的結(jié)果信息。

      3.2 通信機(jī)制的實現(xiàn)

      使用socket.io即時通信類庫,完成客戶端與服務(wù)器端通信連接的建立,在連接建立的基礎(chǔ)上,由于協(xié)作設(shè)計活動的展開是以協(xié)作組為單位,所以協(xié)作組內(nèi)控制信息與同步信息相互獨立。因此,需要對客戶端用戶進(jìn)行邏輯通信入組。

      3.2.1 通信連接的建立

      服務(wù)器端程序server.js啟動后,自動創(chuàng)建http服務(wù)并設(shè)置監(jiān)聽端口8888實時監(jiān)聽客戶端的連接請求。

      客戶端運行MainFrame.aspx應(yīng)用程序進(jìn)入?yún)f(xié)同設(shè)計頁面,通過調(diào)用socket.io即時通信類庫的io.connect(‘服務(wù)器ip:8888)方法,根據(jù)服務(wù)器的IP和端口號8888找到服務(wù)器對應(yīng)服務(wù)端口,將‘connection標(biāo)志裝入連接請求消息包中,發(fā)送至服務(wù)器端。服務(wù)器端使用socket.io即時通信類庫監(jiān)聽客戶端連接請求方法socket.sockets.on(‘connection,function(socket){})通過標(biāo)志‘connection接收客戶端的連接,生成已建立連接的客戶端唯一socket對象反饋至客戶端,該方法的第二個參數(shù)(匿名函數(shù))包含了接收客戶端連接后的處理工作,參數(shù)socket為與客戶端建立連接socket對象,服務(wù)器使用該socket對象和對應(yīng)連接客戶端socket對象進(jìn)行即時通信。

      3.2.2 客戶端用戶的邏輯通信入組

      客戶端通過調(diào)用socket.io即時通信類庫的socket.emit(‘comeIn,data)方法指定入組標(biāo)識comeIn,將用戶id(userid)、協(xié)作活動id(activityid)裝入JSON格式的data數(shù)據(jù)發(fā)送至服務(wù)器端;服務(wù)器端根據(jù)comeIn標(biāo)識,使用socket.io類庫的socket.on(‘comeIn,function(data){})監(jiān)聽方法,接收客戶端入組信息。其中,第二個參數(shù)對應(yīng)函數(shù)包含了接收客戶端信息后進(jìn)行的入組處理,data為接收客戶端數(shù)據(jù)。該處理工作有:解析入組信息,將該客戶端socket通過socket.io類庫的socket.join(activityid)方法加入以activityid為標(biāo)識的邏輯通信組中,后續(xù)可通過activityid索取組內(nèi)socket對象列表,對組內(nèi)客戶端進(jìn)行群發(fā)通信。

      如上2個步驟完成后,客戶端與服務(wù)器之間的通信示意圖如圖3所示。從圖中可知:

      (1)通過socket.emit(‘sign,data)方法進(jìn)行點對點通信,指定信息標(biāo)志,信息接收方根據(jù)標(biāo)志進(jìn)行對應(yīng)信息的接收;

      (2)[JP5]通過socket.broadcast.to(activityid).emit(‘sign,data)方法指定信息標(biāo)識,進(jìn)行服務(wù)器向acitvityid對應(yīng)的協(xié)作組內(nèi)客戶端的廣播通信;

      (3)[JP3]通過socket.on(‘sign,function(data){…})方法根據(jù)信息標(biāo)識接收信息,第二個參數(shù)為接收信息后對信息的處理工作,data為接收信息內(nèi)容。

      4 結(jié)束語

      本文給出了基于Web3D的在線協(xié)同設(shè)計系統(tǒng)中的多用戶協(xié)作沖突處理、協(xié)同設(shè)計界面實時同步和多用戶協(xié)同即時通訊的關(guān)鍵問題解決方案。首先,基于Node.js+socket.io即時通信技術(shù),設(shè)計基于優(yōu)先級和基于權(quán)限的2種沖突處理方法,使協(xié)同設(shè)計活動能有效的進(jìn)行。其次,設(shè)計約定語義規(guī)則庫對產(chǎn)品設(shè)計過程中所涉及的操作進(jìn)行數(shù)據(jù)格式化與數(shù)據(jù)解析,便于數(shù)據(jù)傳輸與實時同步。最后,基于nodeJs+socket.io即時通信框架設(shè)計客戶端與服務(wù)器通訊方案,解決協(xié)同設(shè)計過程中即時通訊的問題。

      本系統(tǒng)還需要在以下幾個方面進(jìn)行改進(jìn):

      (1)對設(shè)計過程中依賴規(guī)則進(jìn)行約束及沖突處理方式的設(shè)計;

      (2)目前系統(tǒng)主要實現(xiàn)模型的組合拼接,今后工作中考慮初始建模的實現(xiàn)方案。

      參考文獻(xiàn)

      [1] 董仁揚. 三維機(jī)械設(shè)計軟件MDT4.0增強(qiáng)版培訓(xùn)教程[M]. Autodesk中國西部大學(xué),2000.

      [2] 殷國富,陳永華. 計算機(jī)輔助設(shè)計技術(shù)與應(yīng)用[M]. 北京: 科學(xué)出版社,2000.

      [3] 孔慶復(fù). 計算機(jī)輔助設(shè)計與制造[M]. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1994.

      [4] 朱曉宇, 聶穎. 基于Socket.io構(gòu)建Web協(xié)同標(biāo)繪應(yīng)用[J]. 軟件, 2016, 37(1):110-113.

      [5] 潘康華. 基于 MBD 的機(jī)械產(chǎn)品三維設(shè)計標(biāo)準(zhǔn)關(guān)鍵技術(shù)與應(yīng)用研究[D]. 北京:機(jī)械科學(xué)研究總院,2012.

      [6] 王維敏. Web3D技術(shù)探索及幾種Web3D技術(shù)的比較選擇[D]. 武漢:武漢大學(xué),2004.

      [7] 王強(qiáng),朱吉強(qiáng),張楨琦. 基于Web的3D模型協(xié)同瀏覽技術(shù)的研究與應(yīng)用[J]. 山西大學(xué)學(xué)報(自然科學(xué)版),2007,30(3):335-339.

      [8] 馬曉明. 基于WEB 3D多人建模平臺協(xié)同沖突分析與研究[D]. 上海:上海交通大學(xué),2014.

      [9] 胡曉琛. Web3D虛擬環(huán)境交互設(shè)計-基于Web3D虛擬環(huán)境技術(shù)的三維空間交互設(shè)計研究[D]. 杭州:中國美術(shù)學(xué)院,2008.

      [10]馮開平,潘光洋. 基于Web3D的燈飾協(xié)同設(shè)計定制系統(tǒng)[J]. 圖學(xué)學(xué)報,2012,33(3):56-60.

      [11]張嘯. 淺談基于Web3D的交互式工業(yè)產(chǎn)品三維虛擬場景的設(shè)計[J]. 科技傳播,2010(13):218,214.

      [12]KLEIN M. Supporting conflict resolution in cooperative design systems[J]. IEEE Transactions on Systems Man and Cybernetics , 1991 , 21 (6) :1379-1390.

      [13]陳文藝, 張霏, 龍艷. 基于Socket.IO的物聯(lián)網(wǎng)網(wǎng)關(guān)實時雙向通信系統(tǒng)[J]. 西安郵電大學(xué)學(xué)報, 2017,22(6):111-116.

      猜你喜歡
      服務(wù)器端客戶端分配
      Crying Foul
      遺產(chǎn)的分配
      虛擬專用網(wǎng)絡(luò)訪問保護(hù)機(jī)制研究
      新聞客戶端差異化發(fā)展策略
      基于Qt的安全即時通訊軟件服務(wù)器端設(shè)計
      基于Qt的網(wǎng)絡(luò)聊天軟件服務(wù)器端設(shè)計
      一種基于Java的IM即時通訊軟件的設(shè)計與實現(xiàn)
      基于C/S架構(gòu)的嵌入式監(jiān)控組態(tài)外設(shè)擴(kuò)展機(jī)制研究與應(yīng)用
      閱讀理解Ⅳ
      我會好好地分配時間
      阿拉善右旗| 周宁县| 余庆县| 辛集市| 怀集县| 土默特右旗| 星座| 上高县| 平昌县| 石河子市| 云龙县| 武清区| 翁牛特旗| 龙山县| 富平县| 邢台县| 温州市| 奉新县| 商河县| 通许县| 双峰县| 常德市| 会同县| 丹巴县| 马尔康县| 聂荣县| 鹿邑县| 盐边县| 泾川县| 昌平区| 桃园市| 横山县| 澄迈县| 西平县| 鸡西市| 原平市| 潞城市| 萨嘎县| 漯河市| 邯郸县| 岱山县|