劉冬爽 張文輝
摘要 移動端虛擬實務培訓系統(tǒng)課程的制作過程可以看成有限狀態(tài)自動機的狀態(tài)轉(zhuǎn)移過程。利用有限狀態(tài)自動機的思想,基于移動端虛擬實驗研究現(xiàn)狀,設計移動端虛擬實務培訓系統(tǒng)原型,優(yōu)化移動端虛擬實務培訓系統(tǒng)中課程實現(xiàn)的過程,提出一種快速生成和批量化生產(chǎn)培訓課程的方法。
關鍵詞 虛擬實務培訓系統(tǒng);有限狀態(tài)自動機;移動端
中圖分類號:TP391.9 文獻標識碼:B
文章編號:1671-489X(2016)08-0022-04
1 引言
隨著市場競爭的日益激烈,企業(yè)對人力資源的培訓和重視程度也日益增長。當前對很多的工業(yè)企業(yè)而言,培訓費用占據(jù)了公司經(jīng)營費用很大的比例,特別是在培訓維修的設備非常昂貴的情況下,因為培訓學員操作不熟練造成設備損壞的情況時有發(fā)生,這些都增加了工業(yè)企業(yè)的培訓代價和費用,傳統(tǒng)培訓模式的局限制約了企業(yè)所期望達到的培訓質(zhì)量,不能滿足現(xiàn)代工業(yè)企業(yè)的需求。如今的虛擬仿真實驗培訓已經(jīng)能夠解決這種問題,但是課程的內(nèi)容不具可拓展性,現(xiàn)代技術的日新月異,設備更新速度不斷增長,當企業(yè)計劃更新設備時,就必須由技術人員將整個課程重新設計開發(fā)一次,這就造成培訓費用和成本的上升。而且隨著成人學習的特征越來越明顯,出現(xiàn)一種新的數(shù)字化學習手段——移動學習,其便捷性、時效性、移動性的特點適合在企業(yè)培訓中開展。
有限狀態(tài)自動機(FSM,F(xiàn)inite State Machine)作為一種計算模型,目的在于研究有限的計算過程或運行過程。有限狀態(tài)自動機可以看作一個有限數(shù)量狀態(tài)的集合,其中每個狀態(tài)可以通過輸入操作來遷移到零個或多個其他狀態(tài),具體的遷移目標狀態(tài)由輸入操作決定。本文研究這種計算模型如何應用于移動端虛擬實務培訓系統(tǒng)中。
2 移動端虛擬仿真實驗的研究現(xiàn)狀
麻省理工學院的電子工程和計算機科學系是最早開始虛擬實驗教學應用的院系,早在1988年,該系的教授Jesús A.del Alamo就創(chuàng)立了微電子在線實驗室(Micro-electronics Web Lab),用于電路設計和微電子學課程的實驗教學。在2010年,實驗室實現(xiàn)通過手機遠程控制來進行實驗的功能。
北京亞泰盛世科技發(fā)展有限公司開發(fā)的Nobook虛擬實驗室是專門針對初、高中教學實驗環(huán)節(jié)量身定做研發(fā)的教學實驗軟件,經(jīng)典實驗板塊內(nèi)容和全國初、高中教學實驗教材對接,采用高仿真技術,利用動態(tài)實驗設備模型來完整再現(xiàn)實驗操作流程。它除了可以在常規(guī)的PC端進行安裝外,還可以在移動端安裝,變身成為會移動的實驗室,能夠隨時隨地實驗,對于學習者來說意義重大,有著傳統(tǒng)實驗無法比擬的功能優(yōu)勢和內(nèi)容優(yōu)勢。
經(jīng)過研究發(fā)現(xiàn),現(xiàn)有的移動端虛擬實驗,更多地是通過FLEX技術編寫,在apk包中內(nèi)嵌插件來實現(xiàn)的,可拓展性不強。而HTML5的興起,它可以進行跨平臺的使用。本項目依托HTML5的優(yōu)勢來開發(fā),同時基于有限狀態(tài)自動機思想,研究一種可以在移動端快速生成和批量化生產(chǎn)培訓課程的方法。
3 移動端虛擬實務培訓系統(tǒng)的設計
虛擬實務培訓系統(tǒng)的設計理念
基于有限狀態(tài)自動機理論,在制作一個設備的仿真操作實驗時,不去關注目標設備內(nèi)在的結構與運行原理,只需要把該設備可操作的過程完整遍歷并記錄下來,然后根據(jù)其外在表現(xiàn)形式的變化將整個實驗過程分解為一個個的狀態(tài),單個的狀態(tài)在觸發(fā)某種形式的操作時發(fā)生狀態(tài)的轉(zhuǎn)移(即跳轉(zhuǎn)到下一個狀態(tài))。觸發(fā)某個狀態(tài)涉及該狀態(tài)的熱區(qū),各個狀態(tài)的熱區(qū)位置的確定是通過JS代碼獲取,同時把獲取到的熱區(qū)位置同圖片路徑一起存進數(shù)據(jù)庫,各個設備圖片的路徑和其對應的熱區(qū)位置組成狀態(tài)熱區(qū)表;所有狀態(tài)與狀態(tài)間的跳轉(zhuǎn),以及跳轉(zhuǎn)觸發(fā)條件,組合成一個設備完整的操作過程,記錄整個狀態(tài)間跳轉(zhuǎn)關系的表就是該實驗的狀態(tài)轉(zhuǎn)移表;記錄每個狀態(tài)詳細表現(xiàn)形式的表即為狀態(tài)表。有了狀態(tài)表、狀態(tài)熱區(qū)表、狀態(tài)轉(zhuǎn)移表,在企業(yè)更新設備需要對員工進行培訓的時候,不再需要技術人員重新完整地開發(fā)一門新的課程,只需培訓教師提供各個狀態(tài)的表現(xiàn)形式以及各個狀態(tài)的觸發(fā)熱區(qū),把這些形式和熱區(qū)添加到數(shù)據(jù)庫,就可以自動生成一門新的課程。
虛擬實務培訓系統(tǒng)的核心設計理念是放棄對設備內(nèi)部邏輯的研究,直接根據(jù)其外部狀態(tài)轉(zhuǎn)移來仿真對設備的操作。在這種狀態(tài)下,當企業(yè)更新設備時,只要知道它的狀態(tài)轉(zhuǎn)移邏輯關系,就可以較為快捷地生成新的課程。為了達到這樣一個目的,應該開發(fā)出一套工具包,使任何一個對設備熟悉的人,可以不必了解本虛擬實務培訓系統(tǒng)的結構和特點,而是根據(jù)工具包提供的模板和流程,分別輸入狀態(tài)轉(zhuǎn)移關系、各狀態(tài)的表現(xiàn)形式(照片、軟件截屏等)、各狀態(tài)的觸發(fā)熱區(qū)。當該工具包得到一個新設備的這些屬性后,就在系統(tǒng)中自動添加和修改數(shù)據(jù)庫的相關信息,從而在培訓課程上新增加一個設備的培訓內(nèi)容。該工具包應該包括狀態(tài)表、狀態(tài)轉(zhuǎn)移表、狀態(tài)熱區(qū)表(用于抓取各個狀態(tài)的熱區(qū)位置)。
移動端虛擬實務培訓系統(tǒng)的原型設計 Axure RP是為原型設計打造的一款專業(yè)軟件,作為專業(yè)的原型設計工具,它能快速、高效地創(chuàng)建原型。本系統(tǒng)的原型設計是基于虛擬實務培訓系統(tǒng)的理念,以及在移動端顯示的特點,利用Axure工具進行設計的,原型框架如圖1所示。
基于本培訓系統(tǒng)的特點,設置在手機端橫屏展示。左側(cè)為仿真操作區(qū),學習者通過對各個狀態(tài)熱區(qū)的點觸、拖拽、長按等在移動端進行所需要的操作,能夠給用戶以真實的體驗。右側(cè)為提示操作區(qū)?;诒鞠到y(tǒng)是用于工企業(yè)的培訓,在移動端進行仿真操作的過程一般不需要教師的參與,在這里對每一步的操作給予提示,這樣能夠保證培訓的順利進行。同時在右側(cè)添加兩個按紐—硬件連接練習和軟件仿真操作。對于工企業(yè)等培訓行業(yè)新的課程不僅涉及硬件的連接,同時會有軟件的操作,基于人機交互優(yōu)化和界面設計美觀的考慮,放置兩個按鈕來對學習內(nèi)容進行切換。這樣既能保證學習者對自己不熟練的部分進行反復的練習,又能保證整個課程實現(xiàn)的優(yōu)化。
4 移動端虛擬實務培訓系統(tǒng)中課程實現(xiàn)的過程
移動端虛擬實務培訓系統(tǒng)中課程實現(xiàn)技術分析 本系統(tǒng)結構按照層次化的思路設計,將整個系統(tǒng)的架構分為資源層、數(shù)據(jù)訪問層、業(yè)務層、表現(xiàn)層和客戶端,系統(tǒng)架構如圖2所示,基于有限狀態(tài)自動機的思想,實現(xiàn)課程的快速開發(fā)。
隨著移動互聯(lián)網(wǎng)的愈演愈熱,出現(xiàn)一種新的數(shù)字化學習手段——移動學習,其便捷性、時效性、移動性的特點適合在企業(yè)培訓中開展。本系統(tǒng)客戶端定位于移動端的開發(fā),符合時代的特色。移動端虛擬實務系統(tǒng)作為PC端實驗的補充和部分替代,不僅符合成人學習者的學習特征,同時有教學理論的支撐。
表現(xiàn)層用JSP+HTML5+CSS3+JS技術,在頁面布局時,HTML對元素進行排版定義,CSS對展示的元素進行樣式的定義,再通過JavaScript實現(xiàn)相應的效果和交互。JSP技術是在傳統(tǒng)的HTML代碼中加入Java程序片段和JSP標記,從而形成JSP文件,用來實現(xiàn)網(wǎng)頁中的動態(tài)部分功能。隨著HTML5技術發(fā)展日趨成熟,利用HTML5技術進行軟件開發(fā)已成為必然趨勢。同時HTML5開發(fā)周期短,開發(fā)成本低,跨平臺性強,比如開發(fā)一款應用,可以很輕易地將它移植到uc開放平臺、Facebook應用平臺,甚至可以通過封裝的技術發(fā)放到App Store上。業(yè)務層使用了Servlet(ServerApplet),是用Java編寫的服務器端程序。其主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。
數(shù)據(jù)訪問層JDBC(Java Data Base Connectivity,Java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。資源層MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),目前屬于Oracle旗下公司。MySQL是最流行的關系型數(shù)據(jù)庫管理系統(tǒng),在Web應用方面是最好的RDBMS(關系數(shù)據(jù)庫管理系統(tǒng))應用軟件之一。
開發(fā)工具使用Eclipse+AppCan。移動應用開發(fā)平臺AppCan,采用HTML5標準作為開發(fā)語言,支持跨平臺移動應用開發(fā),提供移動應用管理與運行控制云服務,實現(xiàn)對移動應用全生命周期(Full Life Cycle)的支持和管理。本系統(tǒng)設計初衷是使用HTML5進行移動端的開發(fā),正好符合AppCan開發(fā)平臺的特點,因此選擇AppCan開發(fā)平臺作為適應移動端的工具。
移動端虛擬實務培訓系統(tǒng)中課程實現(xiàn)的優(yōu)化 基于有限狀態(tài)自動機思想,當需要開發(fā)一門新的培訓課程時,首先需要把整個課程的過程分解為一個個的表現(xiàn)形式定義為狀態(tài),表現(xiàn)形式之間的轉(zhuǎn)移定義為跳轉(zhuǎn),表現(xiàn)形式之間的跳轉(zhuǎn)逐個填充進狀態(tài)轉(zhuǎn)移表,再把記錄有該實驗過程的所有狀態(tài)、各個狀態(tài)可以觸發(fā)的熱區(qū)(通過JS函數(shù)定位獲取的方法)和狀態(tài)轉(zhuǎn)移表存入數(shù)據(jù)庫,然后對照狀態(tài)轉(zhuǎn)移表的跳轉(zhuǎn)關系,通過點觸、拖拽、長按等交互操作來觸發(fā)狀態(tài)熱區(qū),實現(xiàn)各個狀態(tài)間的跳轉(zhuǎn)。通過上述過程,優(yōu)化了移動端虛擬實務培訓系統(tǒng)課程的實現(xiàn)過程。
5 有限狀態(tài)自動機思想的應用及快速生成課程的研究
快速生成一門課程,需要開發(fā)出一套工具包,已經(jīng)提到該工具包應該包括狀態(tài)表、狀態(tài)轉(zhuǎn)移表、狀態(tài)熱區(qū)表(主要用于抓取各個狀態(tài)的熱區(qū)位置)。
狀態(tài)表 圖3所示狀態(tài)表中給出狀態(tài)編號(主鍵)、仿真操作區(qū)圖片編號、提示區(qū)內(nèi)容。狀態(tài)編號作為該狀態(tài)的唯一標識,其字段的設置均為描述該狀態(tài)而服務;仿真操作區(qū)圖片編號表示該狀態(tài)下手機仿真操作區(qū)中需要顯示的視圖編號;提示區(qū)內(nèi)容對不同顯示給予不同的提示效果。每個區(qū)的命名均符合規(guī)則,同時屏幕上的仿真操作區(qū)和提示區(qū)一一對應起來,相輔相成,較好地呈現(xiàn)課程。
狀態(tài)轉(zhuǎn)移表 圖4所示狀態(tài)轉(zhuǎn)移表中給出當前狀態(tài)編號、下一狀態(tài)編號、觸發(fā)條件名稱、觸發(fā)條件編碼。狀態(tài)轉(zhuǎn)移表存儲狀態(tài)間的跳轉(zhuǎn)關系,存儲了當前狀態(tài)在給出操作條件下可以跳轉(zhuǎn)到的下一個狀態(tài)的轉(zhuǎn)移關系。當前狀態(tài)編號作為一次跳轉(zhuǎn)的出發(fā)狀態(tài),用狀態(tài)序號來標識;下一狀態(tài)是一次跳轉(zhuǎn)的結束狀態(tài),此處也用狀態(tài)序號來標識;觸發(fā)條件名稱,對狀態(tài)跳轉(zhuǎn)類型的轉(zhuǎn)移條件進行描述,方便對不同跳轉(zhuǎn)進行輔助顯示;觸發(fā)條件編碼,該字段定義觸發(fā)每一次跳轉(zhuǎn)的轉(zhuǎn)移條件的簡單標識。
各個狀態(tài)中熱區(qū)的處理 圖5所示狀態(tài)熱區(qū)表截圖給出圖片編號(主鍵)、圖片熱區(qū)位置、圖片路徑、圖片名稱。圖片編號對應狀態(tài)表中仿真區(qū)圖片編號,是各個狀態(tài)圖片的展示;各個狀態(tài)都有自己的觸發(fā)熱區(qū),就形成狀態(tài)熱區(qū)的位置,熱區(qū)位置是通過一段Js代碼來獲取的;圖片存于服務器,在數(shù)據(jù)庫中存放圖片的路徑,代碼中通過URL來讀取圖片,該表給出圖片的路徑;圖片名稱是對所存圖片給予命名,以便于區(qū)分。通過對代碼的理解能夠得出獲取熱區(qū)的原理:通過點觸拖動計算出當前熱區(qū),可移動模塊的left、top、right,bottom對應area的coords屬性集成上面的位置,來實現(xiàn)熱區(qū)的定位。
頁面引用“$('#imgMap').imageMaps();”調(diào)用“jquery.image-maps.js”這個插件,其中部分代碼如下:
vat coords=$(this).attr('coords');
coords=coords.split(',');
_position_conrainer.append('
Link'+index+'X