第三章 系統設計與實作
第二節 系統架構
MMLS分為System Component、Network Component 、Multimedia Component等三大元件系統,系統類別階層中(圖 16),各類別皆繼承於 Object基本類別,Learning Recorder、Command Encoder及Command Decoder 則與E-Board相依。其系統模組架構(圖 15)則以Network Component、
Multimedia Component、System Component順序圖分別說明:
圖 15 MMLS類別階層圖
圖 16 MMLS系統模組架構
(一) Network Component:(網路元件)
1、 NetServer
網路主機,設成主機之PDA需同時驅動NetServer及NetClient,
接受本身及其他PDA之NetClient連線、離線要求,傳遞Client之間 的繪圖指令,Server端持續更新連線之IP Table。
2、 NetClient
負 責 連 線 至 NetServer , 網 路 連 線 指 令 如 41 頁 表 4 , 接 收 NetServer所更新IP Table,將接收到DataCommandGlobalMessage 指令傳遞給Data Decoder Module以解碼並顯示在E-Board上,或是 將使用者在E-Board上的繪圖指令傳遞給Command Encoder Module
編碼後,經由NetClient傳遞給NetServer,再分送至各連線之MMLS 以同步顯示,系統連線示意如圖 17,說明如下:
(1) CLIENT端發送DATACOMMANDCLIENTIDENTIT訊息給遠端要求連線 (2) SERVER接受連線,CLIENT端傳送本身INFO。
(3) SERVER傳送識別碼,以DATACOMMANDLISTCLIENTS指令傳送更新後 的IP TABLE。
圖 17 系統連線示意
系統離線示意(圖 18):
(1) CLIENT傳送DATACOMMANDKICKCLIENT指令給SERVER,要求離線。
(2) SERVER接受離線,並在傳送更新後的更新後的IPTABLE給還連 線的PDA。
Client
嘗試連線
接受連線 傳送PDA之Info
傳 送 識 別
Server 傳送IP Table
圖 18 系統離線示意
表 4 網路連線指令
連線狀態指令(數值) 編
號 範例 說明
DataCommandClientIdentit(04) 1
04|192.168.0.11
連線時,Client傳送給Server,以"|"為分 隔符號,指令後之字串為Client端本身之 IP,Server接收後再藉由
DataCommandListClients傳送Clients的IP Table更新知資訊給Client。
DataCommandListClients (01) 2
01|192.168.0.9|192.168.0.10
Server專用,當連線的PDA狀態改變時,由 Server傳送給所有的Client,後面之字串為 所有連線PDA之IP,以"|"為分隔符號。
DataCommandGlobalMessage (02)
3
02|DrawLine,-65536,3,32,86,34,8 5,43,83,48,82,55,82,64,83,73,84 ,85,85,99,86,114,88,130,90,138, 91,167,96,184,100,184,100
Client之間經由Server傳送的繪圖指令,如 h_DrawLine、DrawLine、DrawRectangle、
FillEllipse等,當Network Module接收到此 類指令時,則移除表頭(02)之後 將其後之字 串交給 Data Transfer Module作後續處理。
DataCommandKickClient(05) 4
05|192.168.0.9
當Client欲離線時,由Client透過此指令發 送自身之IP給Server,通知Server,Server 再 呼 叫 DataCommandListClients 傳 送 Clients的IP Table更新知資訊給Client。
Client
嘗試離線
接受離線
傳送PDA之Info
Server Client
3、 File Transfer Module
檔案傳輸模組,當系統啟動時,以PORT 3600開啟一無窮迴圈,
接收其他Client端的TcpClient連線,當Client建立連線,則將其 TcpClient傳給server_recive_file函數來接收檔案,部份程式碼 如下:
Do While not myTcpListener Is Nothing
tmpClient = myTcpListener.AcceptTcpClient server_recive_file(tmpClient)
Loop
Client以Servert傳來的IP Table(clientlist1)為依據,不 經由Server直接傳檔案給其他PDA,以減輕Server之負擔,部份程 式碼如下:
For Each tmpip In clientlist1
If Not tmpip.Equals(myip) Then Dim tmptcpclient As New TcpClient tmptcpclient.Connect(tmpip, outPort)
cNetworkStream = tmptcpclient.GetStream()
綜合以上,網路模組的主要系統順序圖,在第 43 頁圖 19。
圖 19 MMLS系統順序圖
(二) Multimedia Component:(多媒體元件)
1、 E-board Module
電子白板模組,可供學生以觸控筆繪圖,並即時將繪圖指令傳 遞 給 Command Encoder Module 封 裝 後 經 由 NetClient 發 送 到 NetServer,並廣播予所有連線之PDA。繪圖指令如表 5。另可顯示 由Graphic Module匯入之相片,並即時同步於所有連線之PDA。
其中,手繪線的部份,因手繪時以點座標為單位,資料量十分 大,為減低PDA負荷及降低網路流量,只有當所記錄的超過一千筆 座標資料或觸控筆離開螢幕時才進行資料傳輸,部份程式碼如下:
Select Case Draw_Mode Case D_hand '手繪線 point.ToString + "," + d_hand_data)
End If
Dim tempcounter As Long = getcount("h_DrawLine" + "," +_
pen_c.ToArgb.ToString + "," + point.ToString + "," + d_hand_data) d_hand_data = ""
End If Case Else End Select
表 5 繪圖指令 h_DrawLine
繪製手繪線 1 07/2/3 上午 07:42:16 [in ] [draw]
h_DrawLine,-65536,3,145,58,144,55,146,53,148,51,150,50,152,50,154,5 0,156,52,157,54,157,56,156,59,155,61,152,63,150,64,148,65,146,65,144 ,65,142,63,142,61,143,57,143,57
DrawLine 繪製直線
2 07/2/3 上午 07:42:41 [in ] [draw] DrawLine,-65536,3,25,85,234,48 07/2/3 上午 07:42:45 [out] [draw] DrawLine,-16744448,3,197,30,71,20 07/2/3 上午 07:42:49 [out] [draw] DrawLine,-16777216,3,33,47,131,21
DrawRectangle 繪製矩形
3 07/2/3 上午 07:43:09 [out] [draw] DrawRectangle,-16777216,3,37,35,72,91 07/2/3 上午 07:43:15 [out] [draw] DrawRectangle,-65536,3,77,103,102,111 07/2/3 上午 07:43:24 [out] [draw] DrawRectangle,-16744448,3,90,18,117,93
FillEllipse 繪製實心橢圓
4 07/2/3 上午 07:43:55 [out] [draw] FillEllipse,-16777216,3,43,43,79,8 07/2/3 上午 07:44:00 [out] [draw] FillEllipse,-65536,3,28,93,91,92 07/2/3 上午 07:44:06 [out] [draw] FillEllipse,-16744448,3,73,9,29,77
/clear 清除畫布 5
2、 Graphic Module
相片拍攝、顯示及管理模組,拍攝相片、傳遞至E-board Module 以顯示、傳遞至File Transfer Module以傳輸至其他PDA或將特定 之相片傳送至多媒體筆記簿。
3、 Voice Module
聲音擷取及播放模組,錄製或播放語音檔案、傳遞至File Transfer Module以傳輸至其他PDA或將特定之語音傳送至多媒體筆 記簿。
4、 Video Module
視訊錄製模組,錄製視訊檔,可經由外部播放成播放或傳遞至 File Transfer Module以傳輸至其他PDA、將特定之視訊傳送至多 媒體筆記簿。
(三) System Component:(系統元件)
1、 Command Encoder Module
指令編碼模組,將網路連線指令(41頁表 4)、繪圖指令(44 頁表 5)等經編碼後,再由NetClient Module傳輸至其他線上之行 動裝置。
2、 Command Decoder Module
指令解碼模組,接收NetClient所傳來之字串後解碼,依指令格 式再傳輸給E-board Module或更新IP Table狀態。Command Encoder/
Decoder的說明如下(圖 20):
(1) 使用者在PDA_1上繪圖,透過ENCODER編碼後由NETCLIENT
傳送給遠端的NETSERVER。
(2) NETSERVER將繪圖的資料傳送給所有PDA的NETCLIENT。 (3) NETCLIENT接收後由DECODER解碼,E_BOAD以繪圖指令繪製
出圖形。
圖 20 指令編碼/解碼
3、 Learning Record Module
學習歷程紀錄模組,當合作學習小組之間進行雙向的溝通、分 享等相關學習活動時,Learning Record Module以log檔案逐項紀 錄包含日期、時間、發送/接收、操作指令及檔案存放位置等細節,
方便後續的分析與比較,記錄格式如表 6,[in|out] 代表從本機 接收|傳送,另外也對多媒體的形式做紀錄,如[video]代表視訊,
表 6 學習歷程記錄格式
No 記錄類型 說明 範 例
1 [in ][video] 從合作學習小組 接收視訊檔案
07/1/31上午 02:09:01 [in ][video] \My Documents\我的圖片\painter4928.3gp\
2 [out][video] 傳送視訊檔案至 合作學習小組
07/1/31上午 02:09:21 [out][video] \My Documents\我的圖片\painter4928.3gp\
3 [in ][Photo] 從合作學習小組
07/1/31上午 02:09:01 [out][photo] \My Documents\我的圖片\painter22_28_43.jpg\
5 [in ][wave] 從合作學習小組 接收語音檔案
07/1/31上午 02:09:01 [in ][wave] \My Documents\我的圖片\1_2_43.wav
6 [out][wave] 傳輸語音檔案至 置合作學習小組
07/1/31上午 02:09:01 [out][video] \My Documents\我的圖片\1_2_43.wav
7 [in ][draw] 從合作學習小組 接收繪圖指令
07/1/31上午 02:09:01 [in ][draw]
h_DrawLine,-65536,3,148,22,149,18 8 [out][draw] 傳輸繪圖指令至
合作學習小組
07/1/31上午 02:09:01 [out][draw]
h_DrawLine,-65536,3,148,22,149,18 9 [record] 即時錄製語音檔 record \My Documents\我的圖片
\1_2_43.wav\