姚凱,許晨晨,梁振
安徽醫(yī)科大學(xué) 生物醫(yī)學(xué)工程學(xué)院,安徽 合肥 230032
心理學(xué)作為一門實(shí)驗(yàn)科學(xué),許多理論和成果從實(shí)驗(yàn)中得出,大量的心理學(xué)現(xiàn)象通過實(shí)驗(yàn)也可以得到揭示和佐證。目前心理學(xué)實(shí)驗(yàn)的開展主要依托于高校和研究機(jī)構(gòu),但是不同高校和研究機(jī)構(gòu)間的心理學(xué)實(shí)驗(yàn)室建設(shè)并不均衡,導(dǎo)致實(shí)驗(yàn)質(zhì)量和水平參差不齊,從而影響實(shí)驗(yàn)的順利開展[1]。究其建設(shè)不均衡的原因要素,除人員因素外,實(shí)驗(yàn)軟件自身存在的問題也制約著心理學(xué)的發(fā)展,主要問題有:① 目前實(shí)驗(yàn)軟件多為本地客戶端或客戶端/服務(wù)器(Client/Server,C/S)架構(gòu),絕大部分功能集成在客戶端,因此對(duì)系統(tǒng)資源的占用量也較高,這些要求還隨著實(shí)驗(yàn)軟件的迭代更新持續(xù)增加,配置不高的計(jì)算機(jī)被淘汰的風(fēng)險(xiǎn)較大,而高配置的計(jì)算機(jī)往往伴隨著高額的購(gòu)置費(fèi)用,這對(duì)經(jīng)費(fèi)支出不充足的研究機(jī)構(gòu)來說有一定挑戰(zhàn);② 部分軟件將編程作為實(shí)驗(yàn)的主要設(shè)計(jì)方式,實(shí)驗(yàn)人員在設(shè)計(jì)實(shí)驗(yàn)前需要先學(xué)習(xí)對(duì)應(yīng)的編程語(yǔ)言,這給沒有編程經(jīng)驗(yàn)的實(shí)驗(yàn)人員增加了額外的學(xué)習(xí)成本;③ 大多數(shù)實(shí)驗(yàn)軟件不直接提供在線實(shí)驗(yàn)的功能,需要實(shí)驗(yàn)人員自己搭建服務(wù)器來開展線上實(shí)驗(yàn)。一方面,本地實(shí)驗(yàn)需要實(shí)驗(yàn)人員和被試約定好實(shí)驗(yàn)的時(shí)間和地點(diǎn),這使得時(shí)間規(guī)劃不一致或地理位置相距較遠(yuǎn)的人員間的協(xié)調(diào)難以開展;另一方面,自行搭建服務(wù)器也對(duì)沒有學(xué)習(xí)過運(yùn)維知識(shí)的實(shí)驗(yàn)人員增加了新的門檻。
JsPsych是基于JavaScript編寫的一種用于在線實(shí)驗(yàn)的函數(shù)庫(kù),該庫(kù)通過瀏覽器來模擬實(shí)驗(yàn)刺激,模塊化程度高,可拓展性強(qiáng),支持音頻、視頻、圖片和文字等多種形式的實(shí)驗(yàn)刺激[2-3]。但是,使用JsPsych需要實(shí)驗(yàn)人員掌握J(rèn)avaScript基礎(chǔ)并會(huì)使用開發(fā)工具進(jìn)行編程,同時(shí)該庫(kù)也不提供在線部署實(shí)驗(yàn)和數(shù)據(jù)持久化的服務(wù),需要實(shí)驗(yàn)人員自行搭建服務(wù)器或者交由Amazon Mechanical Turk等平臺(tái)托管實(shí)驗(yàn)[4],在一定程度上增加了沒有編程和運(yùn)維經(jīng)驗(yàn)的實(shí)驗(yàn)人員開展實(shí)驗(yàn)的難度。
因此,本文設(shè)計(jì)和開發(fā)一款基于JsPsych的在線心理學(xué)實(shí)驗(yàn)平臺(tái)(下文簡(jiǎn)稱:在線實(shí)驗(yàn)平臺(tái)),將JsPsych的功能封裝成實(shí)驗(yàn)人員更容易接受的圖形化頁(yè)面(Graphical User Interface,GUI),同時(shí)將平臺(tái)部署于云服務(wù)器以提供部署線上實(shí)驗(yàn)和數(shù)據(jù)云存儲(chǔ)的功能,實(shí)驗(yàn)人員和被試在聯(lián)網(wǎng)狀態(tài)下通過瀏覽器接入平臺(tái)即可完成相關(guān)操作。
在線實(shí)驗(yàn)平臺(tái)將用戶分為3類:管理員、實(shí)驗(yàn)人員和被試。實(shí)驗(yàn)人員通過GUI在線設(shè)計(jì)和調(diào)試實(shí)驗(yàn),調(diào)試完成后上傳倫理審查表和知情同意書等必要材料,待管理員審核通過后獲得線上實(shí)驗(yàn)鏈接。被試通過實(shí)驗(yàn)鏈接即可進(jìn)入在線實(shí)驗(yàn)平臺(tái),簽署知情同意書后進(jìn)入實(shí)驗(yàn)并按照要求完成實(shí)驗(yàn),實(shí)驗(yàn)結(jié)束后一鍵上傳實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)人員可隨時(shí)通過平臺(tái)查看或?qū)С鰧?shí)驗(yàn)數(shù)據(jù)以做進(jìn)一步分析,功能架構(gòu)如圖1所示。
圖1 功能架構(gòu)圖
在線實(shí)驗(yàn)平臺(tái)采用前后端分離技術(shù)開發(fā),結(jié)合B/S架構(gòu)將系統(tǒng)分成瀏覽器、前端服務(wù)器與后端服務(wù)器3部分,技術(shù)架構(gòu)如圖2所示。前后端分離架構(gòu)通過RESTful接口規(guī)范進(jìn)行數(shù)據(jù)交互,有效解決了傳統(tǒng)軟件開發(fā)模式中的前后端代碼高度耦合問題,提升了開發(fā)效率并且降低了開發(fā)成本[5-6]。平臺(tái)以瀏覽器為運(yùn)行載體,支持Chrome、Edge、Firefox和Safari等主流瀏覽器。前端使用Vue作為基礎(chǔ)框架,采用Element UI來加速頁(yè)面構(gòu)建,引入JsPsych、Vue I18n、ECharts、XLSX和SignaturePad等組件來分別實(shí)現(xiàn)在線實(shí)驗(yàn)、國(guó)際化、數(shù)據(jù)可視化與導(dǎo)出和電子簽名等功能[7]。后端將Springboot作為基礎(chǔ)框架,引入Spring Security和Json Web Token技術(shù)來保證數(shù)據(jù)接入的安全性,使用關(guān)系型數(shù)據(jù)庫(kù)MySQL實(shí)現(xiàn)數(shù)據(jù)持久化存儲(chǔ),將鍵值對(duì)型數(shù)據(jù)庫(kù)Redis作為緩存數(shù)據(jù)庫(kù)來提升數(shù)據(jù)查詢效率[8-12]。前后端服務(wù)器部署于騰訊云,使用Docker和Jenkins實(shí)現(xiàn)持續(xù)集成與部署[13]。
圖2 技術(shù)架構(gòu)圖
平臺(tái)以在線設(shè)計(jì)和運(yùn)行實(shí)驗(yàn)作為核心功能,將Vue、Element UI和JsPsych結(jié)合來構(gòu)建GUI,原理如圖3所示。將樣式結(jié)構(gòu)與實(shí)驗(yàn)結(jié)構(gòu)分離,在Vuex中使用2個(gè)對(duì)象來分別存儲(chǔ)。當(dāng)用戶通過GUI修改了實(shí)驗(yàn)參數(shù)后,觸發(fā)樣式控制模塊獲取Vuex中的Operation對(duì)象并調(diào)用函數(shù)進(jìn)行處理,將更新后的Operation對(duì)象一方面重新存入Vuex,另一方面?zhèn)鬟f給實(shí)驗(yàn)控制模塊進(jìn)行解析,實(shí)驗(yàn)控制模塊根據(jù)傳入的對(duì)象調(diào)用解析函數(shù),將Operation對(duì)象轉(zhuǎn)換為JsPsych能夠識(shí)別的JavaScript對(duì)象并存入Vuex。借助Vue的數(shù)據(jù)綁定特性,GUI的參數(shù)設(shè)置區(qū)和實(shí)驗(yàn)展示區(qū)也會(huì)相應(yīng)地動(dòng)態(tài)變化。
圖3 核心功能原理圖
在線實(shí)驗(yàn)平臺(tái)初步實(shí)現(xiàn)后,為驗(yàn)證平臺(tái)可以有效開展實(shí)驗(yàn)并且占用更少的系統(tǒng)資源,依托我校智慧醫(yī)學(xué)實(shí)驗(yàn)室,實(shí)驗(yàn)人員分別使用在線實(shí)驗(yàn)平臺(tái)和本領(lǐng)域常用的實(shí)驗(yàn)軟件Psychtoolbox、PsychoPy與OpenSesame設(shè)計(jì)心理學(xué)實(shí)驗(yàn)[14],實(shí)驗(yàn)選型為關(guān)聯(lián)性錯(cuò)誤記憶實(shí)驗(yàn)。在占用系統(tǒng)資源較高的實(shí)驗(yàn)運(yùn)行階段,使用性能監(jiān)視器Perfmon對(duì)4款軟件的CPU占用率和內(nèi)存使用量進(jìn)行監(jiān)測(cè),每組抽取5個(gè)樣本。隨后,將OpenSesame的實(shí)驗(yàn)文件導(dǎo)入實(shí)驗(yàn)人員自行搭建的托管服務(wù)器并部署線上實(shí)驗(yàn),招募15名被試,分別通過在線實(shí)驗(yàn)平臺(tái)和托管服務(wù)器提供的網(wǎng)絡(luò)鏈接進(jìn)行在線實(shí)驗(yàn)。
關(guān)聯(lián)性錯(cuò)誤記憶實(shí)驗(yàn),基于Deese-Roediger-McDermott(DRM)范式[15],實(shí)驗(yàn)范式如圖4所示。在學(xué)習(xí)階段,屏幕上依次出現(xiàn)10組詞表,每組10個(gè)詞,每個(gè)詞的持續(xù)時(shí)間為2 s,間隔0 s,被試被告知盡可能記住每個(gè)詞。隨后進(jìn)入測(cè)驗(yàn)階段,屏幕上依次出現(xiàn)10組詞表,每組6個(gè)詞,第1個(gè)為學(xué)習(xí)階段各詞組的關(guān)鍵誘餌詞(不在學(xué)習(xí)階段出現(xiàn)),第2、3、4個(gè)為出現(xiàn)過的詞,第5和第6個(gè)為未學(xué)習(xí)過的無關(guān)詞。被試如果認(rèn)為自己在學(xué)習(xí)階段見過屏幕上的詞,按下F鍵,否則按下J鍵。選取錯(cuò)誤再認(rèn)率和關(guān)鍵誘餌詞占比作為實(shí)驗(yàn)主要指標(biāo),前者計(jì)算方式為錯(cuò)誤再認(rèn)例數(shù)(應(yīng)該按下J的時(shí)候按下了F)除以無關(guān)詞數(shù)(本實(shí)驗(yàn)為30例),后者為關(guān)鍵誘餌詞在錯(cuò)誤再認(rèn)例數(shù)中的占比。
圖4 關(guān)聯(lián)性錯(cuò)誤記憶實(shí)驗(yàn)范式圖
實(shí)驗(yàn)開始前,實(shí)驗(yàn)人員在計(jì)算機(jī)上分別安裝好4款軟件及各自的運(yùn)行環(huán)境,計(jì)算機(jī)和軟件的主要配置信息如表1所示。實(shí)驗(yàn)設(shè)計(jì)完成后(圖5a),向平臺(tái)提交審核,管理員審核通過并批準(zhǔn)上線(圖5b)。實(shí)驗(yàn)人員將實(shí)驗(yàn)的網(wǎng)絡(luò)鏈接發(fā)送給被試(圖5c),被試在確認(rèn)邀請(qǐng)信息無誤并對(duì)知情同意書無異議后電子簽名(圖5d),點(diǎn)擊“開始實(shí)驗(yàn)”按鈕進(jìn)行線上實(shí)驗(yàn)(圖5e),結(jié)束后一鍵上傳實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)人員可隨時(shí)通過平臺(tái)查看實(shí)驗(yàn)數(shù)據(jù),或?qū)С鰧?shí)驗(yàn)數(shù)據(jù)做進(jìn)一步分析(圖5f)。
圖5 平臺(tái)效果圖
表1 計(jì)算機(jī)及實(shí)驗(yàn)軟件的主要配置信息
4款軟件的資源占用情況以堆積面積圖的形式展示如圖6所示。子圖中的綠色區(qū)域?yàn)閮?nèi)存使用量,單位為byte,紅色區(qū)域?yàn)镃PU占用率,單位為%,橫坐標(biāo)為監(jiān)測(cè)時(shí)間,縱坐標(biāo)為各指標(biāo)的計(jì)數(shù)值,單位與對(duì)應(yīng)指標(biāo)的單位一致。為方便展示,CPU占用率的展示比例(縱坐標(biāo)/實(shí)際值)為10,內(nèi)存使用量的展示比例為0.0000001。
圖6 4款軟件在實(shí)驗(yàn)運(yùn)行階段的CPU占用率和內(nèi)存使用量情況
采用SPSS 26.0對(duì)實(shí)驗(yàn)數(shù)據(jù)和性能數(shù)據(jù)的主要指標(biāo)進(jìn)行統(tǒng)計(jì)學(xué)分析,計(jì)量資料采用±s描述,將在線實(shí)驗(yàn)平臺(tái)與另外3款軟件的性能數(shù)據(jù)和OpenSesame的實(shí)驗(yàn)數(shù)據(jù)分別進(jìn)行對(duì)比,對(duì)不滿足正態(tài)分布的錯(cuò)誤再認(rèn)率使用Mann-Whitney U檢驗(yàn),對(duì)滿足正態(tài)分布的CPU占用率、內(nèi)存使用量和關(guān)鍵誘餌詞占比使用獨(dú)立樣本的t檢驗(yàn),以P<0.05為差異有統(tǒng)計(jì)學(xué)意義。結(jié)果如表2所示,在線實(shí)驗(yàn)平臺(tái)與OpenSesame的錯(cuò)誤再認(rèn)率和關(guān)鍵誘餌詞占比比較,差異無統(tǒng)計(jì)學(xué)意義(P>0.05),在線實(shí)驗(yàn)平臺(tái)CPU占用率和內(nèi)存使用量顯著低于OpenSesame,差異有統(tǒng)計(jì)學(xué)意義(P<0.05)。在線實(shí)驗(yàn)平臺(tái)較其他3款軟件對(duì)CPU和內(nèi)存資源的消耗顯著減少,與OpenSesame收集的實(shí)驗(yàn)數(shù)據(jù)無顯著差異。
表2 在線實(shí)驗(yàn)平臺(tái)與其他3款軟件的數(shù)據(jù)比較
使用JMeter對(duì)在線實(shí)驗(yàn)平臺(tái)的主要接口進(jìn)行壓力測(cè)試,線程數(shù)為100,以在線創(chuàng)建和運(yùn)行實(shí)驗(yàn)為測(cè)試基線,接口包括保存實(shí)驗(yàn)、查詢實(shí)驗(yàn)、提交實(shí)驗(yàn)數(shù)據(jù)和刪除實(shí)驗(yàn),響應(yīng)時(shí)間如圖7所示。結(jié)果表明,測(cè)試開始后,100名模擬用戶相互獨(dú)立地進(jìn)行這4項(xiàng)操作,除少部分保存實(shí)驗(yàn)的響應(yīng)時(shí)間在2.5 s左右,其他操作的響應(yīng)時(shí)間均在2 s以內(nèi)。依據(jù)響應(yīng)時(shí)間的2-5-8評(píng)判原則,當(dāng)響應(yīng)時(shí)間小于2 s時(shí),用戶會(huì)認(rèn)為響應(yīng)速度快且體驗(yàn)感好[16]??梢缘贸?,系統(tǒng)的關(guān)鍵接口響應(yīng)速度快,能夠滿足百人以內(nèi)規(guī)模的同時(shí)在線實(shí)驗(yàn)。
圖7 在線實(shí)驗(yàn)平臺(tái)主要接口響應(yīng)時(shí)間圖
為了給心理學(xué)實(shí)驗(yàn)的開展提供便利,本研究基于JsPsych開發(fā)了在線實(shí)驗(yàn)平臺(tái)。依據(jù)研究人員將CPU占用率和內(nèi)存使用量作為軟件對(duì)系統(tǒng)資源占用情況的主要指標(biāo),將響應(yīng)時(shí)間作為軟件性能評(píng)估的重要指標(biāo)[17-18],使用Perfmon對(duì)在線實(shí)驗(yàn)平臺(tái)和本領(lǐng)域常用軟件在實(shí)驗(yàn)運(yùn)行階段的CPU占用率和內(nèi)存使用量進(jìn)行監(jiān)測(cè),使用JMeter對(duì)在線實(shí)驗(yàn)平臺(tái)的主要接口進(jìn)行壓力測(cè)試。結(jié)果表明,在線實(shí)驗(yàn)平臺(tái)對(duì)系統(tǒng)資源的消耗顯著降低,響應(yīng)時(shí)間滿足百人以內(nèi)規(guī)模的同時(shí)在線實(shí)驗(yàn)。最后,將在線實(shí)驗(yàn)平臺(tái)和OpenSesame就開展關(guān)聯(lián)性錯(cuò)誤記憶實(shí)驗(yàn)進(jìn)行對(duì)比,結(jié)果表明,兩個(gè)軟件的實(shí)驗(yàn)數(shù)據(jù)無顯著差異,且關(guān)鍵誘餌詞占比均較高,與研究人員提出的關(guān)鍵誘餌詞更容易引發(fā)虛假記憶的結(jié)論一致[15]。
為了規(guī)范心理學(xué)實(shí)驗(yàn)的開展,研究人員開始用計(jì)算機(jī)軟件來模擬實(shí)驗(yàn)刺激,Brainard[19]基于Matlab開發(fā)出了 Psychtoolbox,F(xiàn)orster等[20]基 于 DirectX 開 發(fā) 出 了DMDX,實(shí)驗(yàn)人員通過編寫代碼來設(shè)計(jì)實(shí)驗(yàn)。為了進(jìn)一步降低實(shí)驗(yàn)設(shè)計(jì)和開展的門檻,研究人員用GUI取代代碼編程為主的實(shí)驗(yàn)設(shè)計(jì)方式,同時(shí)支持在線實(shí)驗(yàn)的開展模式。Math?t等[21]和Peirce等[22]基于Python分別開發(fā)出了客戶端軟件OpenSesame和PsychoPy,兩者均提供GUI以降低設(shè)計(jì)實(shí)驗(yàn)所需的編程門檻,但是不直接提供后端支持,實(shí)驗(yàn)人員需要將實(shí)驗(yàn)文件導(dǎo)出并交由第三方平臺(tái)托管和開展實(shí)驗(yàn)。Peirce等[22]同時(shí)指出軟件具有迭代更新的特點(diǎn),不同版本間可能存在不兼容的問題,需要實(shí)驗(yàn)人員自行保證版本的一致性。此外還有一些商業(yè)軟件如E-Prime和Experiment Builder也提供類似的功能,但是訂購(gòu)產(chǎn)生的費(fèi)用也相對(duì)較高。
相較于上述方案,本文開發(fā)的在線實(shí)驗(yàn)平臺(tái)具有操作方便和低成本的特點(diǎn),主要體現(xiàn)在以下3個(gè)方面:① 平臺(tái)采用B/S架構(gòu),相較于C/S架構(gòu)具有維護(hù)方便和成本更低的優(yōu)勢(shì)[23]。瀏覽器相較客戶端對(duì)硬件的配置要求更低,且適用范圍更廣,如DMDX只支持Windows操作系統(tǒng),但是在線實(shí)驗(yàn)平臺(tái)可運(yùn)行在Windows、MacOS和Linux等不同系列的操作系統(tǒng)上。同時(shí),由于在線實(shí)驗(yàn)平臺(tái)通過網(wǎng)絡(luò)向服務(wù)器請(qǐng)求資源,軟件的迭代更新由平臺(tái)運(yùn)維人員在服務(wù)器上完成,因此用戶不必考慮軟件迭代更新造成的版本不一致等問題。② 平臺(tái)整合Vue、JsPsych和Element UI來構(gòu)建GUI,Element UI基于Vue開發(fā)而成,Vue和JsPsych均遵循ECMAScript標(biāo)準(zhǔn),整合后的GUI具有穩(wěn)定、簡(jiǎn)潔和美觀的特點(diǎn),既降低了非編程專業(yè)人員設(shè)計(jì)實(shí)驗(yàn)的門檻,也便于后續(xù)的功能拓展。③ 平臺(tái)提供后端支持,為用戶提供線上部署實(shí)驗(yàn)和數(shù)據(jù)云存儲(chǔ)等服務(wù)。用戶在平臺(tái)上可以完成從設(shè)計(jì)實(shí)驗(yàn)、開展實(shí)驗(yàn)到數(shù)據(jù)收集的一整套流程,省去了自行搭建服務(wù)器或?qū)С鑫募偕蟼髦恋谌酵泄芷脚_(tái)的額外步驟。
雖然在線實(shí)驗(yàn)平臺(tái)為心理學(xué)實(shí)驗(yàn)的開展提供了便利,但是對(duì)于一些反應(yīng)時(shí)精度要求很高的實(shí)驗(yàn)來說要謹(jǐn)慎使用。研究人員測(cè)得JsPsych的時(shí)序精度在100 ms量級(jí)[24],de Leeuw[2]也提到盡管在JsPsych中測(cè)量響應(yīng)時(shí)間較為精確,但是對(duì)于精度要求很高的實(shí)驗(yàn)來說仍然存在局限性。
本文開發(fā)的在線實(shí)驗(yàn)平臺(tái)基于JsPsych函數(shù)庫(kù),以前后端分離的開發(fā)思想和B/S模式為指導(dǎo),根據(jù)實(shí)際需求設(shè)計(jì)功能和技術(shù)架構(gòu)。通過與同類實(shí)驗(yàn)軟件進(jìn)行實(shí)驗(yàn)設(shè)計(jì)對(duì)比,證明該平臺(tái)能夠達(dá)到相似的實(shí)驗(yàn)開展效果,同時(shí)占用更少的系統(tǒng)資源并提供云服務(wù)支持,進(jìn)一步降低了開展心理學(xué)實(shí)驗(yàn)的門檻。后續(xù)研究團(tuán)隊(duì)還會(huì)在時(shí)序精度、數(shù)據(jù)加密、高并發(fā)等方面繼續(xù)深入研究,不斷挖掘在線實(shí)驗(yàn)的優(yōu)點(diǎn),為心理學(xué)實(shí)驗(yàn)的開展提供更多的便利。