• 沒有找到結果。

TCP/IP

3.1.1 伺服器硬體與作業系統

受限於研究經費的限制,伺服器硬體設備以目前現有資源方便取得為 主,任何一台 IBM PC 相容型電腦即可使用;在作業系統的選用方面,則以 穩定性、相容性為主要考量,雀屏中選的系統為台南縣教育局開發之 B2D 中文 Linux 作業系統,B2D 系統的創立原本就是為台南縣各中小學作為網路 作業系統之用,所進而研發建立的一個中文作業系統 [44],由於系統中相當 多功能均是以中小學為考量出發點,加上其為完全自由且免費,故選用之。

3.1.2 程式撰寫工具

B2D 作業系統中,內建 Apache 網頁伺服器(web server)、PHP(Hypertext Preprocessor)伺服器與 Mysql 資料庫,其快速、穩定的能力亦為題庫系統適 用之伺服器端(server side)軟體。因此伺服器端將直接選用 Apache 網頁伺 服器擔任與使用者溝通的媒介;以 PHP 程式語言撰寫程式,執行資料的呈 現、存取等功能;透過 Mysql 資料庫紀錄各項題庫需要的資料,以供使用者 調用、查閱。

撰寫程式的方式是透過物件導向程式設計(Object-oriented

programming),物件導向程式設計是以物件為主的一種觀念,將各種系統所

需使用到的功能,封裝成不同的物件,物件為程式的基本單元,可具有繼承、

多型等特質,並且比程序性程式設計(procedural programming)更容易重複 使用程式碼。

透過物件導向則可使用不同的設計模式來設計系統,本系統將透過 CodeIgniter 框架(framework)採用 MVC(模型-檢視-控制器,

Models-Views-Controllers)設計模式。

設計一套基於網頁的平台時,有很多基本功能是常被使用的,如資料庫 選取、刪除、新增、更新資料,或是資料的顯示等等,而「框架」便是基於 將常用工具包裝起來的概念所產生的一種工具組合,我們可以重複使用這些 已經建立好的工具程式。大多數人需要使用的工具程式大致上不會相差太 遠,因此便有已經設計好的框架,可供程式設計者直接拿來使用,程式設計 者亦可自行透過框架提供的功能建立更多屬於自己的工具包,而 CodeIgniter 便是一套能加速開發 PHP 程式,且基於 MVC 開發模式的 Web 應用程式框 架 [45]。

MVC 是把程式邏輯從視覺的呈現拆開的一種軟體開發方法。實務上,

它允許網頁中包含最少的程式,就是把視覺呈現的部份從 PHP 程式中分離出 來,MVC 分別做的事情為: [46]

1. 模型(Model):

代表的結構是你的資料。通常模型類別包含許多函數可用,可以幫 助使用者完取回、新增、更新、刪除資料到資料庫裡頭。

2. 檢視(View):

用來呈現給使用者的資訊。檢視(View)通常是網頁形式,但是在 CodeIgniter 裡頭,檢視(View)也可以是網頁的片斷,像是頁面標題或 是使用者選單,此網頁片斷功能,則可協助設計者將網頁分開撰寫後,

再動態合併之,呈現適當的資料於使用者的面前。

3. 控制器(Controller)

提供像是中間人的角色 在模型(Model)跟檢視(View)之間,或 者是任何其他的資源需要處理網頁請求(HTTP request)以及產生網頁的 地方出現。因此使用者送出的資料或想存取的資料,會透過控制器

(Controller)分析,再調用適當的模型(Model)函數完成工作,接著控 制器(Controller)再呼叫檢視(View),將系統回饋的訊息展現出來。

使用者端(client side)則可透過網頁瀏覽器,如 IE(Internet exploder)

或火狐(Firefox)來執行題庫系統的功能,程式設計者亦可透過 phpMyAdmin 資料庫系統的 web 管理介面來進行 Mysql 資料庫的操作。

而一般使用者如老師或學生,亦須有一條路徑和伺服器進行溝通,傳統 的應用方式是透過網頁表單的方式送出資料給伺服器端,每當送出表單時就 向伺服器發送一個請求。伺服器接收並處理傳來的表單,然後送回一個新的 網頁,但這種作法浪費了許多頻寬,且會影響處理的速度。

與此不同,透過 AJAX(Asynchronous JavaScript and XML)技術可以不 需透過表單送出資料,以非同步的方式與伺服器進行溝通,取回必須的資 料,再透過文件物件模型(Document Object Model (DOM))以及 JavaScript 將資料顯示在網頁上 [47]。

JavaScript 是一種可由瀏覽器直接執行的程式,屬直譯式程式語言 [48],透過網頁內嵌 JavaScript 程式,可進行網頁物件的處理,比如移除頁面 上的物件、插入物件文字等,在適當的情況下加入 JavaScript 程式,可在減 少伺服器端的負荷下,就能呈現依使用者的操作呈現不同的畫面。DOM 則 是提供文件結構的表述(representation),所有網頁設計師可操作及建立文件 的屬性、方法及事件都以物件來展現,比如一段文字、一個按鈕、一張圖片 等,均為網頁內部的物件,JavaScript 可操作的對象便是這些網頁上的物件,

DOM 可說是建立網頁與 JavaScript 或程式語言溝通的橋樑 [49]。

然而,AJAX 在跨瀏覽器上有相容性的問題,因此系統設計時將以 jQuery [50] 這套 JavaScript 程式庫來處理 AJAX 的相容性問題,jQuery 是一個快速

又簡潔的 JavaScript 程式庫,可以說是 JavaScript 的框架,其簡化了讓設計者 在 HTML 文件裡面尋找 DOM 物件的工作,並可用在各瀏覽器均使用同樣的 方法呼叫 AJAX 至伺服器取得必要的資料,解決了跨瀏覽器的問題,簡化了 程式撰寫時的諸多困難。

相關文件