• 沒有找到結果。

三、 研究設計

4.2 系統架構

4.3.1 管理者觀點

Spam 問題、社群模式(Community Model)、品質控制(Quality Control)、工作流程 安排、頁面保護與統計功能...等問題是管理主題式資源指引網站管理人員最為關注 的,本研究系統所擬定的改善措施,針對改善原有權限管控、資源審核流程、搜尋引 擎、頁面保護、網站呈現風格…等相關功能分述如下。

z 權限控管

Wiki 系統所面臨的權限過於開放(Too open)、被人惡意破壞(Vandalism)、垃圾條目 (WikiSpam)、參與社群(Community)可透過控制參與社群來獲得改善,而圖書館本身所 擁有的讀者(NCTU Community),正是最佳社群,將圖書館系統認證模組與 ccTiddly 結 合,改善原有認證模組,就能迅速建立社群資訊,Wiki Spam 的解決方案可透過限定社 群內的成員才有權更動頁面內容,解決 Wiki Spam 的困擾。

ccTiddly 權限控管的方式採用 Javascript 的程式語言撰寫,將使用者資訊值寫入於陣 列內(Array),該認證的模組程式檔置放於 /config/default.php,認證方式主要確認使用者 所輸後的值(txtUserName、pasSecretCode 的 Cookie)是否與陣列內的值相等,另外 ccTiddly 考量到安全性的問題,在送出使用者密碼(pasSercretCode)後,會將該值以 MD5 處裡後 再存入 Client 端的電腦內,部份程式碼如圖 4-3。

<?

// database/table

$tiddlyCfg['db']['host'] = "localhost"; //sql host

$tiddlyCfg['db']['login'] = "yourdbaccount"; //login name

$tiddlyCfg['db']['pass'] = "your password"; //login password

$tiddlyCfg['db']['name'] = "your db"; //db name

$tiddlyCfg['table']['pref'] = ""; //table prefix

$tiddlyCfg['table']['name'] = "tiddly_Wiki_entry";

$tiddlyCfg['table']['backup'] = "tiddly_Wiki_entry_version";

// site preferences

$tiddlyCfg['pref']['tw_ver'] = "tw_ok_tiddlyWiki2.0.10";

$tiddlyCfg['pref']['language'] = "en";

$tiddlyCfg['pref']['delete'] = 1;

$tiddlyCfg['pref']['version'] = 1;

$tiddlyCfg['pref']['cookies'] = 0;

$tiddlyCfg['pref']['lock_titles'] = $ar_protect //echo $tiddlyCfg['pref']['lock_titles'][0];

$tiddlyCfg['pref']['private_tags'] = array();

$tiddlyCfg['pref']['free_tags'] = array();

$tiddlyCfg['pref']['loginLock_tags'] = array("systemConfig");

//username temp erase

//$tiddlyCfg['user'] = array("ming"=>"1234"); //username password

$tiddlyCfg['developing']=0;

?>

圖 4-3 程式碼 /config/default.php

為導入圖書館系內的有效讀者資訊,則需另外修改原 ccTiddly 系統,作法則有三種 方案可供選擇(1)不改寫 ccTiddly 系統,直接將需要的帳號與密碼寫入陣列內 (2)改寫原 ccTiddly 架構,將陣列方式改寫成資料庫方式 (3)將 ccTiddly 與圖書館系統認證結合。

方案一最容易實作,但圖書館系統內的使用者的資料,少說也有數萬筆,若採 Array 的 方式來實作,不僅影響電腦主機執行效率。亦十分浪費記憶體空間,加上若使用者更改 其基本資訊如 Password,更無法即時獲得該資訊。方案二是將使用者的資訊儲存於本機 端的資料庫內,這部份需調整 ccTiddly 系統結構,雖可改善浪費記憶體空間的缺點,但

仍會產生資料不一致(Inconsistency)的現象,最佳的作法為第三種方案,將 ccTiddly 與圖 書館系統認證結合,使用者的認證資訊會 先送到圖書館系統驗證,在將驗證結果送到 ccTiddly 認證模組,本研究採用第三種方案進行認證,更改原認證流程如圖 3-2。

於實作時所遭遇最大的問題為,雙方的變數無法直接進行交換,主要是因為 ccTiddly 權限控管的方式採用 Javascript 的程式語言撰寫,而圖書館認證模組是採用是採用 PHP 語言所撰寫,PHP 語言是屬於 Server-Side Language ,而 Javascript 則是屬於 Clent -Side Language,簡單的說兩者的程式語言間的變數傳遞是無法直接進行溝通,僅可藉由 Cookie 或 Get 的方式來加以傳遞變數,但使用者的密碼是屬於較為敏感的數據,故不能 以明碼來加以傳遞,因此認證的流程則是先將使用者的帳號與密碼先送到圖書館認證系 統先與以認證後,在轉到 ccTiddly 內做處理,相關程式碼如附錄一與附錄二。

z 資源審核流程

SG 的可貴之處,在於有學科專家、館員等人的把關,協助使用者尋找專業性資源 與過濾大量不相關的網路資源,要如何將該機制導入於 Wiki 系統內,而網站內資源品 質若要控制,則管理者必須掌握某部份的控制權,雖然這麼做會使館員工作量增加,但 這是無法避免的。以原 Wiki 系統的設計理念,社群內的使用者就有權可自由的進行新 增與編輯,但採用此一做法是難以兼顧其品質性。

資源審核的工作流程設計,主要參考以康乃爾大學以 CORC 系統來整理網路資源工 作流程(圖 2-2)來觀看現行電子資源收錄,並更改成圖 3-7 之工作流程,使資源的收錄 更符合實際工作流程,將資源分類與描述資源詮釋資料的工作給抽離出來,這兩個部份 交由學科專家及館員進行掌控。讀者雖可透過 Web Form 的介面或 Wiki 本身頁面新增 的功能直接推薦,推薦後的資料雖仍會呈現在網站,但並不會呈現在館員所指定的分類 頁面上,另外使用搜尋引擎也不會搜尋出未經審核後的資訊。推薦後的資料會先經學科 專家的審視後,在送給相關著錄的館員們進行後續的著錄詮釋資料工作,於編目的同 時,系統會自動抓取該筆資源 (網頁上所著錄)上的相關詮釋資料(Metatag),以減輕工作 負擔,完成審核後的同時,該筆資源也立即呈現在網站內。

z 詮釋資料及搜尋引擎之改善

ccTiddly 本身雖提供了全文搜尋的功能,但當所建置的主題式資源指引網站日益龐

大,利用全文搜尋所找出的資訊太多,此時仍需花費許多精神篩選資料,全文搜尋的缺 點就是無法精準的獲得所需資料。而本研究導入的詮釋資料,就提供了最佳的基礎建 設,使資料的搜尋能依不同的面向進行檢索。

詮釋資料採用最為通用的都柏林詮釋資料核心集,更改原 ccTiddly 資料庫綱要如圖 3-5,加入 Metadata 資料表藉以記錄各個資源的詮釋資料。以此為基礎才能提供讓每筆 資源可依不同的面向(例如針對作者、不同主題...等)進行檢索。

z 頁面保護

ccTiddly 的開發作者原先即有設想到頁面保護的功能,主要是因為 ccTiddly 系統新增 巨集功能可直接透過 Wiki 頁面,將所需功能直接崁入於系統內,使用者不需藉由修改 原始碼,僅需透過 Wiki 頁面的新增即可迅速的導入巨集功能,該巨集 Wiki 頁面即是 提供新功能的 Script,當有使用者惡意破壞時,該功能即會失效,透過頁面的新增的 方式即可導入新功能,簡單方便但該作法也像是兩面刃,可能會為網站帶來危害,原 ccTddly 系統對於需要保護的頁面的作法,需修改原始碼,將保護的 Wiki 頁面的 Title 名稱寫於陣列內。本研究之需求是要提供一個簡易 Web-based 的管理介面,可讓管理 者很簡易地將特定的頁面予以保護,例如某些經學科專家、館員審核後的特定的 Wiki 頁面,不再希望讓使用者可以自由的修改,就可利用此功能來與以保護。研究者將原 陣列方式改寫成以資料庫方式進行,調整原 ccTiddly 資料庫結構,新增 Ptotect_title 資料表,管理者透過 Web-based 介面,簡單的輸入將保護頁面名稱後,即可達到保護 頁面之需求。

z 統計功能:

針對統計功能,管理者最想得知的數據是使用者的操作行為與目前網站內有多 少筆已經審核完成的資源。使用者的操作行為可以藉由分析網站伺服器內的存取紀錄 檔(Log files),此部份與 Wiki 系統無關,可藉由一些 Open Source 軟體與以解決,不需 額外撰寫分析 Log files 軟體;而要統計多少筆資源是經過審核完成後的資料,則必須 在 Wiki 資料庫綱要(Database Schema)內有此考量設計,本研究改變原 Schema,新增

z 網站呈現風格管理

採用 ccTiddly 所建置的網站,所呈現的風格可多樣化,ccTiddly 的樣式表(Style Sheets)架構如圖 4-4。

圖 4-4 TiddlyWiki 風格呈現之結構

(資料來源:http://www.tiddlyWiki.com/#Configuration)

系統管理者若要更改網站的呈現風格(Style),僅需修改相關 Tiddler,就能迅速展 現不同的樣貌。也就是說透過 PageTemplate、ViewTemplate、EditTemplate 與

StyleSheetLayout 的修改可以快速的進行版面調整,而 StyleSheet、StyleSheetColors、

StyleSheetPrint 則與樣式呈現有關。

# 調整版面

* PageTemplate、ViewTemplate、EditTemplate * StyleSheetLayout

# 調整樣式 * StyleSheet

* StyleSheetColors、StyleSheetPrint

透過修改相關 Tiddler,就可自訂網站需要呈現的風格(圖 4-5)。當然也可以利用現 成的元件,直接將新功能引入系統內,這現成的元件在 ccTiddly 稱之巨集。巨集功能可

讓使用者在不需修改任何原始碼的情況下,直接把所需要的新功能直接應用到 ccTiddly 內。事實上 ccTiddly 可以直接應用 TiddlyWiki 內所提供許多有用的巨集功能,網際網 路上也有許多熱心的玩家,提供自家開發的巨集供大家使用,例如像

MonkeyPirateTiddlyWiki 和 TiddlerWiki,在台灣 BramChen 也不惶多讓地貢獻所製作 的巨集供各界使用,本研究網站所採用的 Style Sheets 即為 BramChen 所貢獻的模版。以 下即為一些關於 Template、Style sheet 相關的巨集介紹:

1. 快速切換樣式表 (http://www.tiddlytools.com/, by Eric Shulman):

該功能是能够讓使用者快速切換使用的樣式表及做樣示表的管理,它本身引入的機 制可說是 StyleSheet 界的大革命,是無限模組化的可能性,可讓使用者選擇所要呈現的 樣貌。

2. 樣式表收集庫 (http://www.zrenard.com/tiddlyWiki/stylesrepository.php):

該網站收錄許多模版可供使用,節省了開發的時間,各式模版都是些令人讚賞的好 作品,建議覺得系統預設模版不符合需求時,可至該網站找找適合的模版使用。

圖 4-5 TiddlyWiki 的多風格呈現