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