◆余熊峰 陳奇秀 李一凡 劉進(jìn)芬
P2P網(wǎng)絡(luò)線上心理咨詢室的設(shè)計(jì)與開(kāi)發(fā)
◆余熊峰 陳奇秀 李一凡 劉進(jìn)芬
(南京工業(yè)大學(xué)浦江學(xué)院 江蘇 210000)
傳統(tǒng)的心理治療有著治療費(fèi)用高、因相關(guān)資源短缺人均治療時(shí)間較短、有效治療效果差、治療手段單一且大多心理藥物副作用較大等缺點(diǎn)。該系統(tǒng)使用NAT穿透技術(shù)搭建P2P網(wǎng)絡(luò),實(shí)現(xiàn)線上的心理咨詢,改變傳統(tǒng)門診方式,達(dá)到提到資源利用率的目標(biāo),提高人均治療時(shí)間,強(qiáng)化治療效果,使患者更全面地了解各種無(wú)藥物治療手段,本文介紹了P2P和網(wǎng)絡(luò)在線聊天的相關(guān)理論和技術(shù),描述了基于P2P線上心理咨詢室的開(kāi)發(fā)過(guò)程以及所具備的優(yōu)勢(shì)。
NAT穿透;P2P網(wǎng)絡(luò);無(wú)藥物化治療;線上心理咨詢
隨著計(jì)算機(jī)、互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,許多行業(yè)逐漸改變傳統(tǒng)的行業(yè)模式。其中也包括了醫(yī)療,心理醫(yī)療資源一向處于極度短缺的狀態(tài),特別是心理咨詢服務(wù)資源匱乏,心理咨詢師緊缺,并且國(guó)內(nèi)各個(gè)區(qū)域資源分布不均收費(fèi)昂貴。該系統(tǒng)是一種基于P2P網(wǎng)絡(luò)的在線心理咨詢室。用戶不需要在線下去心理咨詢室,只需要在家里擁有一臺(tái)電腦,用戶便能半自助解決自己的心理問(wèn)題。線上心理咨詢室的開(kāi)發(fā)既方便了醫(yī)生也方便了患者,患者不再需要前往心理咨詢室,減少了車旅的費(fèi)用與路程上花費(fèi)的時(shí)間。在一定程度上加速了心理咨詢室的全國(guó)普及。如此線上心理咨詢室的建立對(duì)我國(guó)解決心理問(wèn)題奠定了基礎(chǔ)。在我國(guó)信息產(chǎn)業(yè)迅速發(fā)展的同時(shí),線下的心理咨詢室在中國(guó)幅員遼闊的現(xiàn)狀下已顯得不相適應(yīng),采用IT技術(shù)提高服務(wù)質(zhì)量和心理咨詢水平勢(shì)在必行。
(1)P2P網(wǎng)絡(luò)
P2P網(wǎng)絡(luò)即對(duì)等網(wǎng)絡(luò)[1],是一種對(duì)等客戶端的分布式架構(gòu),可以實(shí)現(xiàn)分配任務(wù)和工作負(fù)載的功能。同時(shí),P2P網(wǎng)絡(luò)是一種組網(wǎng)或者可以稱之為網(wǎng)絡(luò)形式,由計(jì)算模型在計(jì)算機(jī)的應(yīng)用層形成。對(duì)等網(wǎng)絡(luò)區(qū)別于當(dāng)前的客戶端-服務(wù)端的網(wǎng)絡(luò)C/S結(jié)構(gòu)的思想。他們之間的本質(zhì)的區(qū)別是,P2P網(wǎng)絡(luò)的整個(gè)結(jié)構(gòu)中不存在中心節(jié)點(diǎn)(或中心服務(wù)器)。
在P2P的網(wǎng)絡(luò)架構(gòu)中,所有計(jì)算機(jī)連接成chord網(wǎng)絡(luò)環(huán)形,都擁有相同的功能和地位,沒(méi)有主次的分別,可作為服務(wù)器提供共享資源給P2P網(wǎng)絡(luò)中其他計(jì)算機(jī),也可作為客戶端,接收“服務(wù)器”的資源。因此,整個(gè)P2P網(wǎng)絡(luò)不需要依賴于專用的集中服務(wù)器,也不需要專用的工作站。P2P網(wǎng)絡(luò)結(jié)構(gòu)中的每一臺(tái)計(jì)算機(jī)既可以作為網(wǎng)絡(luò)服務(wù)的請(qǐng)求者,同時(shí)也可以對(duì)其他計(jì)算機(jī)的請(qǐng)求做出響應(yīng),并為他們提供資源、服務(wù)和內(nèi)容。通常這些資源和服務(wù)包括:共享和交換信息、計(jì)算資源、共享存儲(chǔ)、共享網(wǎng)絡(luò)以及共享打印機(jī)等。P2P網(wǎng)絡(luò)優(yōu)勢(shì)主要體現(xiàn)在六個(gè)方面:高性價(jià)比性,可擴(kuò)展性,健壯性,非中心化,負(fù)載均衡和隱私保護(hù)。
(2)SpringBoot框架
SpringBoot[2]是在2013年由Pivotal團(tuán)隊(duì)開(kāi)始進(jìn)行開(kāi)發(fā)的,并且在2014年發(fā)布出了第一個(gè)版本的框架。SpingBoot框架的開(kāi)發(fā)是在Spring4.0的基礎(chǔ)上所進(jìn)行的,它不僅繼承了Spring框架原本所擁有的特性,而且通過(guò)簡(jiǎn)化配置環(huán)境的操作進(jìn)而簡(jiǎn)化了SpringBoot項(xiàng)目整個(gè)開(kāi)發(fā)過(guò)程。同時(shí)還解決了依賴包版本沖突和引用的不穩(wěn)定等重大問(wèn)題。
(3)TCP協(xié)議與UDP協(xié)議
TCP和UDP協(xié)議是TCP/IP協(xié)議[3]的核心。TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)協(xié)議屬于傳輸層協(xié)議。其中的TCP協(xié)議提供IP數(shù)據(jù)的可靠性傳輸,而UDP提供的是不可靠傳輸。TCP通過(guò)使用面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送,達(dá)到其可靠性的目的。詳細(xì)地講,它在開(kāi)始數(shù)據(jù)傳輸前為需要發(fā)送的數(shù)據(jù)包開(kāi)通一條專用性的通道,再開(kāi)始進(jìn)行數(shù)據(jù)發(fā)送和傳輸;它提供數(shù)據(jù)流傳送、多路復(fù)用、全雙工、有效流控和可靠性。UDP不提供差錯(cuò)恢復(fù)、可靠性以及流控功能??傮w來(lái)說(shuō),TCP適用于對(duì)可靠性要求比較高的應(yīng)用,而UDP適用的則是對(duì)可靠性要求較低應(yīng)用,且經(jīng)濟(jì)上UDP相比于TCP開(kāi)銷更小。
該系統(tǒng)采用idea開(kāi)發(fā)環(huán)境,搭建Spring Boot框架,基于此進(jìn)行前后端分離開(kāi)發(fā)。使用Java語(yǔ)言進(jìn)行后端開(kāi)發(fā),前端采用HTML+CSS+JavaScript技術(shù)設(shè)計(jì)。數(shù)據(jù)庫(kù)使用的MySQL數(shù)據(jù)庫(kù)[4],通過(guò)JDBC連接數(shù)據(jù)庫(kù)[5]。使用到P2P對(duì)等網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)網(wǎng)上的即時(shí)通訊,主要利于視頻等大數(shù)據(jù)包的傳輸,每個(gè)用戶都可作為一個(gè)服務(wù)器。例如:患者3在平臺(tái)上咨詢心理咨詢師1,經(jīng)過(guò)一段時(shí)間問(wèn)診后,心理咨詢師得出病情病因并需要向患者發(fā)送相關(guān)的心理療法視頻或其他文件。這時(shí)患者3和心理咨詢師1之間直接構(gòu)建一條文件傳輸通道,心理咨詢師1作為服務(wù)器,向患者傳輸數(shù)據(jù),且不通過(guò)公共服務(wù)器,大大降低服務(wù)器負(fù)載。
圖1 P2P對(duì)等網(wǎng)絡(luò)架構(gòu)
P2P對(duì)等網(wǎng)絡(luò)是點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸,繞過(guò)了公網(wǎng)服務(wù)器,所以需要使用到NAT穿透技術(shù)。本文設(shè)計(jì)的系統(tǒng)使用的是UDP穿透技術(shù)稱為UDP打洞技術(shù)。
在沒(méi)有穿透NAT之前,用戶A和用戶B之間通信是需要通過(guò)服務(wù)器的,用戶A和用戶B在登錄上線后,在它們的UDP數(shù)據(jù)包中含有各自的私有IP地址和端口號(hào)。服務(wù)器在收到數(shù)據(jù)包的同時(shí)根據(jù)用戶A與B的IP地址和端口號(hào),記錄下A、B的公網(wǎng)IP地址和端口號(hào),這是經(jīng)過(guò)NAT設(shè)備映射后的。在拆包時(shí)得到了A、B的私有IP地址和端口號(hào),記錄如下:
客戶端A:私網(wǎng)地址 10.0.0.1 端口:4321 公網(wǎng)地址 155.99.25.11 端口:6200
客戶端B:私網(wǎng)地址 10.1.1.3 端口:4321 公網(wǎng)地址 138.76.29.7 端口:3100
用戶A想和用戶B建立一個(gè)直接連接通道,用戶A就向服務(wù)器發(fā)送一個(gè)請(qǐng)求包,請(qǐng)求服務(wù)器的協(xié)助,請(qǐng)求消息內(nèi)包含了用戶B的ID。服務(wù)器端收到請(qǐng)求后,就開(kāi)始在數(shù)據(jù)庫(kù)中查詢并向A發(fā)送B的公有和私有地址信息的“打洞通知”,同樣向B發(fā)送A的公有私有地址信息的“打洞通知”。它們收到通知消息后,分別向?qū)Ψ桨l(fā)送打洞 UDP 包(此 UDP 包不包含數(shù)據(jù)部分)。 A 和B 的 NAT 設(shè)備中建立起了與B和A相應(yīng)的為對(duì)方建立一個(gè)映射項(xiàng)[7]。
當(dāng)A、B之間發(fā)送的最后一個(gè) UDP 包到達(dá)后,在A與B的NAT 間就建立了一個(gè)映射連接。A、B就能直接進(jìn)行通訊,不再需要服務(wù)器了。
圖2 UDP穿透技術(shù)后
(1)基本信息管理模塊:包括用戶登錄注冊(cè)與維護(hù)用戶信息的功能,每位用戶,在剛登錄平臺(tái)時(shí),需注冊(cè),輸入自己信息,每名用戶擁有自己獨(dú)有的賬號(hào)id與其對(duì)應(yīng)的密碼。在登錄后,會(huì)給一份關(guān)于心理方面的測(cè)試,根據(jù)測(cè)試結(jié)果為不同的人提供不同的推薦及方案。
(2)搜索功能模塊:在搜索框內(nèi)輸入需要查詢的內(nèi)容,包括用戶查詢與博客查詢,輸入相關(guān)內(nèi)容的關(guān)鍵詞,系統(tǒng)自動(dòng)化進(jìn)行搜索框內(nèi)文字提取和模糊查詢,并且向客戶端返回搜索結(jié)果的視圖,完成此次檢索操作。
(3)P2P消息系統(tǒng):此作為咨詢室系統(tǒng)的主要功能,包含接收消息功能和發(fā)送消息功能。為了提供多語(yǔ)言支持,客戶端與服務(wù)器端都使用 UTF8 字符編碼,對(duì)于客戶端輸入的非UTF8編碼的字符,進(jìn)行字符集編碼轉(zhuǎn)換操作后再進(jìn)行消息系統(tǒng)交互。
(4)P2P文件傳輸系統(tǒng):該系統(tǒng)軟件用戶,很多時(shí)候都需要傳輸大文件,有幾百 MB 甚至幾個(gè)G,這個(gè)時(shí)候,如果通過(guò)公網(wǎng)中轉(zhuǎn),顯然會(huì)拖慢整體的網(wǎng)速,同時(shí)文件傳輸速度也得不到保證,這個(gè)時(shí)候如果采取P2P的方式進(jìn)行文件傳輸,則大大節(jié)約了網(wǎng)絡(luò)資源,同時(shí)資源的安全性也能夠得到保障。
(5)博客分享模塊:每個(gè)賬戶擁有自己的獨(dú)有的博客分享空間,博客內(nèi)容可隨意由自己編寫,并且可以對(duì)博客的查看權(quán)限進(jìn)行調(diào)整,博客內(nèi)容可包含卻不僅有:文字、視頻、圖片等。
(6)線上支付模塊:支持患者網(wǎng)絡(luò)線上二維碼支付問(wèn)診費(fèi)用,由相關(guān)專業(yè)心理咨詢?nèi)藛T對(duì)患者病情進(jìn)行診斷,并給予專業(yè)性建議,同時(shí)向患者推送相關(guān)治療知識(shí)與視頻等的治療資源。
賬戶分為三類:病患、專業(yè)咨詢師、超級(jí)管理員。其中病患賬戶在申請(qǐng)注冊(cè)時(shí),需要填寫一份相關(guān)考察問(wèn)卷,初步評(píng)定病情情況,為后續(xù)心理咨詢師問(wèn)診環(huán)節(jié)提供診斷依據(jù)。不同的用戶擁有的權(quán)限不同,只有滿足系統(tǒng)權(quán)限[8]的用戶才能進(jìn)行對(duì)應(yīng)操作。
(1)系統(tǒng)性治療方法的講解,該項(xiàng)目可實(shí)現(xiàn)各種病癥針對(duì)性長(zhǎng)時(shí)間自助治療,收錄多種放松技巧,從而根治心理疾病。比如可將心理學(xué)上著名的行為認(rèn)知療法、冥想訓(xùn)練整理成視頻,讓患者擁有一個(gè)完整有效的治療方案。
(2)改變傳統(tǒng)門診方式:對(duì)比于每年都在增長(zhǎng)的心理疾病患病人數(shù),心理醫(yī)生人數(shù)卻并沒(méi)有相應(yīng)增長(zhǎng),導(dǎo)致治療資源稀少。醫(yī)生每日的門診病人數(shù)較多,分配給每名患者的治療時(shí)間也就減少。走入診斷、簡(jiǎn)單開(kāi)導(dǎo)、處方開(kāi)藥的流程,全流程時(shí)間一般處于10~30分鐘?;颊叩貌坏接行е委煟瑫r(shí)心理疾病藥物普遍存在副作用。在專業(yè)心理學(xué)上,醫(yī)生并不建議輕度和部分中度患者使用并服用心理類治療藥物??苫谀壳皣?guó)內(nèi)的行業(yè)情況,這種治療已成為基本主流。該項(xiàng)目通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)搭建為醫(yī)患交流網(wǎng)上咨詢平臺(tái),患者通過(guò)醫(yī)生分享的視頻學(xué)習(xí)放松方法、了解心理知識(shí),進(jìn)行無(wú)藥化自助治療。
(3)線上咨詢提升效率:在該項(xiàng)目提供的線上咨詢問(wèn)診,患者可以在更短時(shí)間內(nèi)完成掛號(hào),問(wèn)診步驟。同時(shí)使得醫(yī)生診斷的患者人數(shù)提升,緩解醫(yī)療資源緊張的情況。
(4)幫助患者走進(jìn)心理門診:國(guó)內(nèi)社會(huì)對(duì)于心理疾病有著一定的歧視和嘲笑心理,包括很多患者抗拒進(jìn)入醫(yī)院進(jìn)行心理咨詢。這款線上心理咨詢平臺(tái),提供了在家咨詢的可能性。
(5)價(jià)格較低:與國(guó)內(nèi)大多數(shù)心理診室?guī)装僭啃r(shí)的收費(fèi)比較,收費(fèi)可降低80%以上,有很好的推廣和盈利的項(xiàng)目基礎(chǔ)。
總體來(lái)說(shuō),線上心理咨詢室是基于P2P網(wǎng)絡(luò)和socket等技術(shù)建立而成,擁有線上看診、線上咨詢、博客分享和線上支付等主要功能。線上的心理咨詢室一方面減小了患者的看診壓力,為心理疾病患者增加了一條看診的途徑,并且由于價(jià)格較低,也減小了他們的經(jīng)濟(jì)壓力。另一方面也減小了醫(yī)院的人流壓力,醫(yī)生可在線為患者診斷。如今國(guó)內(nèi)社會(huì)對(duì)于心理治療方面愈來(lái)愈重視,且在心理疾病患者人數(shù)龐大的前提下,與之對(duì)比的是心理咨詢師的資源緊缺。該系統(tǒng)無(wú)論是從商業(yè)盈利方面或是社會(huì)意義方面都有巨大的發(fā)展前景。同時(shí)也存在著一些問(wèn)題,對(duì)于某些情況比較嚴(yán)重的患者,藥物治療方面是必不可少的,在這方面系統(tǒng)無(wú)法給予過(guò)多的幫助。
[1]賀文華,劉浩,賀勁松.P2P網(wǎng)絡(luò)現(xiàn)狀與發(fā)展研究[J].軟件工程,2019,22(04):1-5.
[2]熊永平.基于SpringBoot框架應(yīng)用開(kāi)發(fā)技術(shù)的分析與研究[J].電腦知識(shí)與技術(shù),2019,15(36):76-77.
[3]姚軍,毛昕蓉,趙小強(qiáng),郭芳華. 現(xiàn)代信息網(wǎng)[M].人民郵電出版社,2016:313.
[4]Candra Dwi Aprida,F(xiàn)ebriliyan Samopa. Pembuatan Sistem Informasi Beasiswa Internal Direktorat Jenderal Perbendaharaan Menggunakan PHP dan MySQL[J]. Jurnal Teknik ITS,2013,2(2).
[5]余崢,鮑正德,李晨曦. 淺析 JDBC 連接 MySQL 的增刪改查操作[J]. 計(jì)算機(jī)系統(tǒng)網(wǎng)絡(luò)和電信,2019,1(2).
[6]張澤鵬. P2P網(wǎng)絡(luò)中NAT穿透技術(shù)的研究與實(shí)現(xiàn)[D].北京郵電大學(xué),2010.
[7]宋盈,馬睿.運(yùn)營(yíng)級(jí)NAT44設(shè)備的部署方案研究與測(cè)試[J].現(xiàn)代電信科技,2013,43(03):71-77.
[8]朱軍紅,唐明根,張小玲.信息系統(tǒng)中的角色權(quán)限管理設(shè)計(jì)[J].中國(guó)管理信息化,2019,22(23):138-140.
南京工業(yè)大學(xué)浦江學(xué)院2020年度大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(PJ20201390526).