以 SOA 為基礎之中等學校校務行政協作系統規劃與建置
王 金 鳳 國 立 高 雄 第 一 科 技 大 學 資 管 系 [email protected] 曾 守 正 國 立 高 雄 第 一 科 技 大 學 資 管 系 [email protected]摘要
近 年來 以 Service-Oriented Architecture (SOA) 為 架構的 系統 ,逐漸 成為 開發系 統的 主流。 由於 SOA 具有 鬆散耦 合 (Loosely Coupling) 的 特性, 因此 系統開 發者 可藉由 組合 方式來 進 行系統 建置。本研究以 SOA 為基礎、應用 Service-Oriented Computing (SOC) 的 概 念 、採用 XML 文 件做為 資料交 換標 準,針 對 中等學 校校 務行政 協作 系統進 行規 劃與實 際 建置, 以期 達到共 用服 務元件 、跨 平台、 減 少 個 別 開 發 的 成 本 及 人 力 為 目 的 。 關 鍵 詞 : SOA, SOC, 校 務 行 政 系 統
1.緒論
1.1 研究背景、動機、目的 中 等學 校校務 行政 系統既 龐大 且複雜 , 在 開放原 始碼 的概念 興起 後,由 一群 熱衷校 務 行政系 統的 伙伴共 同成 立「台 灣中 等學校 資 訊 管 理 人 學 會 」 並 制 定 資 料 庫 綱 要 (Database Schema), 供 大 家 共同遵 守, 讓各 校 共 同 開 發 系 統 , 再 將 系 統 發 表 (Release) 給 各 校 。 然 而在 此急驟 變化 的資訊 環境 下,系 統 仍 然很難 敏捷 地調適。而 SOA 架構概 念的興 起 正可解 決此 一問題 ,因 此學會 發起 人之一 尤 弘 志 先 生 提 出 DSA (Document Service Architecture) 架 構 (如 圖 1-1) 來 實 踐 SOA 的 精神。 本研 究以中 等學 校校務 之作 業流程 為 基礎, 進行 服務元 件之 分析, 藉以 建構出 以 服務為 導向 之系統 架構 ,希望 藉此 探討以 SOA 架 構 對 原 先 系 統 進 行 架 構 上 改 良 與 提 升 的 可 行 性 , 以 便 提 升 未 來 的 應 用 彈 性 。 1.2 研究方法 我 們採用 Peacock [13] 的 分散式 資料 處 理 架構為 基礎 ,主要 的 Service 由 處 理 邏輯 層 (Business Logic) 負責,在此 SOA 的 架構 中 ,資料 展現 層可以 更具 彈性地 將處 理邏輯 層 任意組 合、 抽換與 互用 ,讓系 統以 更靈活 的 方 式 應 付 多 變 的 資 訊 科 技 環 境 。圖 1-1:Document Service Architecture 架構圖 [1]
2.文獻探討
2.1 SOA 相關研究 SOA 架構在業 界的大 力推 介下,漸 漸 蔚 為 風潮, 系統 開發人 員在 此架構 下, 迎接一 種 新的概 念與 方法,以下是 有關 SOA 之 相關 研 究 。 2.1.1 從 分 散 式 元 件 架 構 到 SOA SOA 如 同物件 導向一 般,運 用元件 組合 成 應用系 統, 其架構 上傾 向於自 主與 異質的 架 構 [8]。 SOA 具 有 下 列 技 術 特 性 [4]: 1. 分 散 式 架 構 (Distributed) - SOA 的 組 成 元 件是 由許多 分散在 網路 上的系 統組 合而 來 。 2. 鬆 散 耦 合 的 界 面 (Loosely-Coupled) - SOA 實質上就 是一套 鬆散 耦合的 服務,以 介 面 標 準 來 組 合 系 統 , 只 要 符 合 介 面 要 求 ,零 組件可 以任意 替換 ,大幅 提高 系統 變 更 的 彈 性 度 。 3. 以 開 放 標 準 為 依 據 (Open Standard) - 使 用 開 放 標 準 (XML) 是 SOA 的 核 心 特 色,SOA 著重 於標準 與互 用性,可避 免不 同 平 台 所 開 發 程 式 間 相 互 整 合 的 困 擾 。 4. 以 流 程 角 度 出 發 (Process-Centric) - SOA 的 服務 能夠完 成對應 其商 業流程 活動 的各 部 分工作。在 SOA 中,開 發人員 撰寫 服務 需 要考 慮周詳 、面面 俱到 ,使得 服務 可達 到 最 大 的 重 複 使 用 效 益 。 2.1.2 Service-Oriented Architecture 介 紹 SOA 是新一代 軟體開 發的 架構理 論,從 結 構化與 物件 導向程 式開 發的特 點中 擷取兩 者 的 優 點 , 而 提 供 簡 單 的 設 計 原 則 [10]。 其 觀 念對於 舊有 的資訊 系統 ,在更 新整 合時屬 於 延 伸 性 的 架 構 , 將 共 同 的 商 業 邏 輯 流 程 (Common Business Logic) 製作 Services, 以 便 共 同 分 享 [5], 如 圖 2-1 所 示 。 圖 2-1:服務導向於企業應用架構設計 [5] 使 用 SOA 的 優 點 如 下 [8][11][12]: 1. 標 準 化 :標準 化可改 善發 展應用 軟體 的生 產 力 與 提 昇 品 質 、 降 低 成 本 。 2. 以 流 程 為主的 設計: 將商 業流程 所產 生的服 務組 合,讓 流程被 平衡 與再使 用, 以貫 穿 整 個 組 織 。 3. 協 作 便 利:專 業分工 ,提 高人力 效能 ,並 可 發 展 系 統 生 命 週 期 的 管 理 工 具 。 4. 快 速 反 應需求 :提供 富含 語意、 彈性 的運 算 模式 來發展 應用軟 體, 快速反 應使 用者 需 求 。 5. 一 致 性 的安全 、權限 策略 :由服 務提 供者 制 定相 關管理 策略供 服務 需求者 遵循 ,唯 有 具備 權限的 使用者 方可 引用服 務, 而傳 遞 資訊 的加密 方式也 由服 務提供 者制 定, 並 由 服 務 需 求 者 配 合 。 2.1.3 Service-Oriented Computing 簡 介 相 對於 SOA 來說 , SOC 是 一種 計算 概 念 , 它 藉 由 SOA 來 建 立模 式 , 達 到共 用 元 件 、 節 省 程 式 開 發 的 目 的 , 其 概 念 如 圖 2-2 所 示 。 它 透 過 發 現 (discovering) 及 組 合 (composing) 適 合 的 服 務 滿 足 系 統 目 標 ( 圖 上 半 部 ) 或 工 作 流 程 (圖 下 半 部 )。 圖 2-2:SOC 的概念 [8] 此 外, SOA 與 SOC 兩者 之間共 同具 有 下 列 關 鍵 要 素 [8][14]︰ 1. 鬆 散 耦 合 (loosely Coupling)。 2. 建 置 中 立:以 服務為 基礎 的計算 模式 與架 構 不能 侷限於 一套程 式語 言,須 配合 不同 建 置者 及舊有 應用的 技術 ,達到 技術 中立 的 目 的 。 3. 彈 性的組 態:一個 SOC 系 統嵌入 的元 件是 最 新 的 程 序 , 可 動態地將需求元件嵌入。 4. 持 續 性:唯一 可提供 估計 聲譽 (Reputation) 的 方法 是他們 的可靠 性, 因此服 務必 須存 在 一 段 時 間 , 短 暫服務將無法發展聲譽。 5. 粒 度 (Granularity): 粒 度 是 衡 量 抽 象 化 大 小 的方 式。粗 糙抽象 化在 參與者 中降 低依 賴 性, 並且把 通訊降 低到 更少且 更具 意義 的 訊 息 上 [2]。 6. 團 隊 (Teams): 團 隊 工 作 的 管 理 方 式 已 經 由 集中 管理到 分散管 理, 因此必 須有 效地 在 開放 系統環 境下, 讓自 主性高 的合 作伙 伴 能 參 與 團 隊 工 作並解決合作上的問題。 2.1.4 Service 的 特 質 Service 是 一 個 應 用 程 式 的 包 裝 , 可 以 重 覆 使 用 在 商 業 流 程 的 元 件 , 一 般 來 說 Service 具 有 以 下 幾 項 特 點 [8][9]: 1. 互 用 性 (Interoperability): 各 服 務 元 件 可 以 互 相 使 用 , 節 省 程 式 開 發 時 間 。 2. 位 置透通 性 (Location transparency):所 謂 Transparency( 透 通 性 ) 即 當 客 戶 端 呼 叫 伺 服 器端時,系 統應自 動幫 使用者 處理 所有 尋 找 位 置 、 安 全 性 與 可 靠 度 方 面 的 事 務 [12]。 3. 鬆 散 耦 合 (Loosely-coupled)。 4. 定 義 完 整 (Well-defined): 使 用 獨 立 於 任 何 技術的 共同 定義, 可被 任何技 術引 用。 5. 無 狀 態 (Stateless) : 服 務 處 於 無 狀 態 模 式 ,任何 服務 無需知 道上 個步驟 的內 容, 所 有 的 服 務 都 是 處 於 一 種 獨 立 的 狀 態 。 服 務 (Service) 可 以 從 兩 個 觀 點 來 理 解 其 概 念 的 差 別 : 1. RPC View: 把 XML 文件 視為分 散式 計算 的 伴 隨 物 件 。 2. 文 件 (Document) View:認 為 XML 文 件 為 主 要 分 散 式 計 算 的 表 現 和 目 的 。 由 於在 Web 的 文件交 換上,文 件類型 的 觀 點 比 較 具 有 非 同 步 性 及 一 致 性 , 因 此 , Singh and Huhns [14]也明 白指出 :未 來將以 文 件 View 較 為盛行 。本 研究所 採用 的技術 正 是以 XML 文 件為中心 的服務 導向 架構, 也 符 合 未 來 SOA 的 主 流 格 式 。
2.2 XML
「 可 擴 充 式 標 示 語 言 」 (Extensible Markup Language, XML) 是 SOA 的核心,可 以 解決不 同程 式語言 、資 料庫、 作業 系統平 台 所 引 發 的 資 料 格 式 問 題 。
XML 文 件 可 以 被 分 成 Tree-based, Event-based, 以及 class-based 等 介 面 來 操 作 使 用。其中,W3C 提供了 Tree-based 的 API 方 法,稱為 DOM (Document Object Model), 而 Event-based 的 API 則以 SAX [7]為 代表。
2.3 Web Service
Web Service 的 技術標 準包 含有:XML、 UDDI (Universal Description Discovery and Integration)、WSDL (Web Service Description Language) 、 SOAP (Simple Object Access Protocal)、 HTTP [6]等 , 如 圖 2-3 所 示 。
2.4 SOA、 DSA 與 Web Service 的關係
Web Services 在 SOAP 的 規範中 有兩 種 格 式 [8], 詳 述 如 下 [17]:
1. RPC-Style 的 Web Services: 是 屬 於 緊 密 耦 合的方 式。客戶 端將參 數及回 傳值 的描 述 置於 WSDL 描 述,並將 其包裝於 SOAP
內 , 屬 於 同 步 訊 息 通 訊 的 方 式 。
2. Document-Style 的 Web Service: 是 鬆 散 耦 合 , 透 過 XML 資 料 的 格 式 進 行 請 求 / 回 應的動 作。 客戶端 將參 數以 XML 文件 的 型式, 送到 Web Service, 而 不是 分離 的 參 數 值 , 屬 於 非 同 步 訊 息 通 訊 方 式 。 圖 2-3:Web Service 架構圖 [15] 如 上 所 述 , 若 Web Service 採 用 RPC-Style 將 不 符 合 SOA 鬆 散耦合 的精 神。 因 此,想要以 Web Service 來 實踐 SOA 的精 神,就 應該在 Document-Style[8]的 形 式上探 討 。 DSA 的 組 成 元 件 服 務 有 : 需 求 者 (Requester) 與 服 務 供 應 者 (Provider)。 目 前 的 DSA 尚未 提供註 冊的 功能, 但符 合 SOA 的 基本精 神:鬆散 耦合、互 用性、建置 中立、 Well-Defined、 無 狀 態 等 。
簡 單來說,DSA、Web Service 都 是 SOA 的 實作技 術,前 者是屬於 羽量級的 SOA,而 後 者則是 重量 級的 SOA。基於 中等學 校校務 行 政協作 系統 本身的 特性 ,以及 考量 其建置 的 容易性 、技 術的簡 易性 ,本研 究因 此採用 DSA 技 術 來 實 現 SOA 的 精 神 。 2.5 安全性 在 開放 性網路 架構 下,數 位化 資料傳 輸 的 安全性 ,成 為不可 或缺 的重要 問題 ;在毫 無 安全機 制下 的網路 中, 使用者 可能 面臨資 料 遭到冒 名傳 送、竄 改、 偽造、 不法 擷取等 問 題 。
建 立 Web Services Security 可 以 採 用 SSL (Secure Socket Layer) 的方 式, 以公用 密 鑰技術 確保 兩個應 用間 的通信 保密 性和可 靠 性,並可在 伺服器 和客 戶端同 時支 援 [3]。 2.6 軟體協作開發 SOA 的 主 要 成 功 因 素 取 決 於 合 作 夥 伴 的 互助模 式。 目前的 專案 系統已 不再 是一人 可 以完成 的, 需要團 隊的 合作。 一個 專案管 理 的組成 包含 人 (People)、團 隊 (Team),以 及 組織 (Organization)。團 隊合作 的績 效是複 雜 且難於 管理 的,因 此如 果能有 一套 適合的 架 構 來 協 助 開 發 ,將可以達到完善的效率。
3.相關技術
3.1 DOM XML 文 件 物 件 模 型 (DOM) [18] 可 透 過 程式設 計介 面,存取及 更新 XML 的 元件, 包 括其元 素、 屬性、 處理 指令、 註解 及實體 宣 告。當 XML 文 件被載入 DOM 時,會 將該 文 件從頭 到尾 讀取, 並儲 存在 DOM 中 , 成 為 節 點 的 邏 輯 模 式 。 3.2 VBA 巨集語言Microsoft Visual Basic for Applications (VBA) [16] 主 要 是 為 了 應 用 程 式 自 訂 化 與 自 動化而 設計 ,它讓 程式 開發人 員可 以在不 同 應用程 式使 用共同 的巨 集語言 進行 開發, 並 且使不 同桌 面應用 程式 得以結 合成 完整的 資 訊 系 統 。 3.3 DBHelp 語 法 在 撰寫 Service 時 , 學會的 DSA 架 構中 提 供了 DBHelp 的 語法 ,其 方法是 結合 SQL 語 法,並 增加 其彈性 ,將 使用者 傳入 的參數 內 容 結 合 原 SQL 語 法 , 完 成 一 個 完 整 的 SQL, 接 著 再 執 行 SQL。
4.系統建置
4.1 系統架構圖 我 們依據圖 2-2 的 SOC 概 念,將本系 統 從 主目標 、子 目標階 層關 係與 Services 間 的 關 聯性,對應 到各項 Task 的關 係,以 及如何 透 過工具 協助 找到合 適的 服務,繪製如圖 4-1 所 示。圖 4-1 上方 表示整 個校務 行政 系統的 各 項子系 統, 以及子 系統 內功能 模組 。這些 需 求可透過 DSA TookKit 來 規劃、設計 或合 成 現有服 務來 達成, 下方 表示校 務行 政系統 下 某一子 功能 之工作 流程 (WorkFlow),每一 個 工作流 程可 透過 DSA TookKit 找到 合適的 服 務 , 完 成 此 一 子 功 能 。 圖 4-1: 系 統 架 構 圖 4.2 系統使用者需求分析 本 研究 針對舊 有校 務行政 系統 所欠缺 之 功 能來加 以補 強,作為 SOA 的示範設 計。我 們 希望讓 這類 需求可 以跨 平台取 得資 料,其 主 要使用 者為 教師以 及學 校主管 ,並 依據其 平 時業務 需求 來分析 ,提 供使用 者可 在任何 時 間、地 點下 載、上 傳其 業務內 之資 料,其 中 與 一 般 教 師 相 關 的 有 下 列 幾 種 : 1. 上 課 表 現:供 教師下 載授 課課程 之學 生基 本 資料 ,並可 登錄上 課表 現成績 ,於 期末 上 傳至 資料庫 ,做為 學生 該科成 績之 一部分 。 2. 成 績 表:分 為 二 種,一 種 是綜合 高中 使用, 另 一種 則為其 他科使 用。 此報表 亦提 供了 統 計的 功能, 可算出 各級 距分數 的學 生人 數 ,並 有圖表 顯示, 讓教 師在評 分時 可以 更 容 易 掌 握 學 生 的 分 數 分 佈 狀 況 。 此 外, 由於導 師平 時工作 繁瑣 ,我們 也 提 供 了 與 其 相 關 業務的功能,如下列所示: 1. 班 級 課 表 : 讓 導 師 在 期 初 將 班 級 課 表 下 載,列印出來 給學生,以 便知會 學生 本學 期 之 課 程 安 排 。 2. 班 級學生 基本 資料:導師於 學期初 將學 生 基 本資料 下載,可作為平 時聯絡 學生 用, 若 學生基 本資 料有更 動,亦 可直接修 改, 再 上 傳 即 可 。 3. 個 人獎懲 明細:導 師 於每星 期或每 個月 下 載 班 級 學 生 之 獎 懲 明 細 , 供 學 生 參 考 。 4. 缺 曠請假 清單 報表:導師每 星期將 上星 期 之 出缺勤 資料 下載列 印,提 醒學生 進行 請 假 手 續 之 辦 理 。 5. 班 級個人 出席 暨獎懲 狀況:列 出 班上學 生 某 日期區 間的 出席及 獎懲 統計資 料,以 掌 握 每 位 學 生 之 出 席 率 (以 缺 席 時 數 除 以 實 際 上 課 總 時 數 )。 6. 每 月生活 通知 單:導 師於每 個月初 將上 個 月 學生出 缺勤 及獎懲 資料 下載,並填入 導 師 通訊及 當月 表現評 比,然 後列印寄 出。 7. 月 考成績 單:供 導師下 載其 班級的 月考 成 績,藉由 這個報 表的統 計功 能看出 班上 月 考 成績的 分佈 情形,並列印 出來供 學生 核 對,檢查是否 有輸入 錯誤 之情形,再 列印 寄 出 給 家 長 。 8. 班 級學期 六育 成績明 細:由 於導師 必須 填 寫 導師手 冊、AB 卡之成績 資料,因此 下 載 六 育 成 績 供 導 師 填 寫 之 用 。 9. 期 末德行 成績 明細:導師於 期末時 下載 學 生 該學期 之德 行表現 資料,及結 算後之 德 育 成績,最後 填入加 分、群 育及評語 等資 料 後 , 上 傳 至 資 料 庫 。 10. 班 級學生 學期 科目成 績統 計狀況:導 師 於 期 末可以 下載 學生學 期的 科目成 績,並 了 解 其 成 績 的 分 佈 情 形 。 最 後 , 我 們 也 依 主 管 所 重 視 的 統 計 資 料 , 提 供 了 以 下 幾 種 報 表 的 輸 出 : 1. 班 級出席 率:主 管可以 列出 各班級 日期 區 間 的出席 狀況,並知道該 班之出 席率,其 中 出 席 率 仍 以 缺 席 時 數 除 以 實 際 上 課 總 時 數 。 2. 班 級獎懲 統計:主 管 可以列 出各班 級日 期 區 間的獎 懲統 計,方 便了解 班級學 生的 獎 懲 狀況,以作 為進一 步的 輔導措 施安 排。 3. 教 師授課 成績 範圍一 覽表:主 管 可以列 出 各 教 學 研 究 會 之 教 師 其 授 課 課 程 之 成 績 的 最 高 分 、 最 低 分 、 平 均 分 數 。 上 述 功 能 我 們 也 予 以 分 類 整 理 如 表 4-1 所 示 。 表 4-1 系 統 功 能 比 較 表 適用時機 適用對象 功能 期初 平時 期末 主管 導師 教師 上課表現 3 3 3 3 成績表 3 3 3 3 班級課表 3 3 班級學生基本資料 3 3 3 3 個人獎懲明細 3 3 缺曠請假清單報表 3 3 班級個人出席暨獎懲狀況 3 3 月考成績單 3 3 每月生活通知單 3 3 班級學期六育成績明細 3 3 期末德行成績明細 3 3 班級學生學期科目成績統計狀況 3 3 班級出席率 3 3 班級獎懲統計 3 3 教師授課成績範圍一覽表 3 3 4.3 系統需求 本 系 統 的 入 口 程 式 以 .NET Framework 1.1 撰 寫 , 因 此 其 伺 服 器 端 的 相 對 環 境 則 必 須 安裝 .NET Framework 1.1,而入 口程 式必 須 置 於 Web Server 上 , 因 此 必 須 啟 動 IIS (Internet Information Services) 服 務,接 著 再 將 DSA 程式 安裝至 伺服 器端, 並開 啟 Web 共 用 功 能 , 即 完 成 伺 服 器 端 的 安 裝 。 撰 寫 好 的 服 務 則 置 入 DSA 元 件 中 的 Service 目 錄 中 , 即 可 接 受 客 戶 端 的 Request, 表 4-2 即 Server 端的 環境需 求表。 表 4-2 Server 環 境 需 求 表 (1)IIS (2).NET framework 1.1 (3)DSA 基 本 原 件
a.Service(所 有 Service 的 Description) b.Bin(所 有 Service 的 DLL)
c.Config(DSA Server 的 組 態 設 定 ) Doorway.config 內 設 定 預 設 資 料 來 源 d.Doorway.aspx (DSA Server 進 入 點 ) 可 跨 平 台 (利 用 Java 選 寫 Doorway) 接 著 , 客 戶 端 只 須 安 裝 Office ( 含 Excel),並 設定 完成 Internet 連 線,即 可 執 行 各 項 功 能 。 4.3.1 系 統 開 發 架 構 及 伙 伴 關 係 在 DSA 的 架構 下,使 用者 是透過 XML 文 件 傳 遞 需 求 , 伺 服 器 再 依 據 需 求 來 產 生 XML 回 應 文 件 , 使 用 者 不 需 知 道 資 料 的 來 源,權限的控 管等,這些 都是 DSA 的 工作範 圍 , 圖 4-2 即 是 Server 與 Client 的 關係圖。 本 系統的 核心 架構 Doorway、 ToolKit、
DSA 基本物件 DSConnection、DSRequest 與 DSReponse 是 由「台 灣中 等學校 資訊 管理人 學 會」提 供, 本研究 則是 針對中 等學 校校務 行 政系統 的功 能撰寫 相關 服務, 並實 際建置 Excel 工 作 表 ,系統 的協 作關係 如圖 4-3 所 示 。 圖 4-2 Server 與 Client 關係圖 圖 4-3:系統伙伴合作關係圖 4.4 服務撰寫 在 撰寫 服務時 ,我 們必須 了解 服務的 規 格 與 語 法 , 服 務 (Service) 是 以 目 錄 為 管 理 單 位,每 一個 目錄下 都有 服務的 資源 規劃, 例 如:引 用的 資料庫 為何 ?那些 人可 以使用 這 些服務 ?最 後,統 一將 這些資 源規 劃納入 Default.GRC 及 Default.GAC 檔 案 中 。 為 了方 便服務 可以 給更多 人使 用,因 此 整 個 架 構 也 規 範 了 必 須 撰 寫 Help 檔 的 要 求 ,以描 述如 何引用 該服 務、該 服務 回應何 種 訊 息 、 何 種 角 色 具 有 存 取 該 服 務 的 權 限 等 , 以 便 讓 更 多 人 輕 易 的 使 用 所 有 服 務 。 以 下描 述我們 所撰 寫的服 務與 相關的 資 源 檔 案 : 1. Default.GRC: 描 述 此 目 錄 中 各 項 相 關 服 務 所 共 同 引 用 之 資 源 。 2. Default.GAC: 描 述 目 錄 中 的 存 取 權 限 。 3. *.RC: 描 述 資 料 相 關 資 源 , 即 Service。 4. *.SD: 每 一 個 服 務 都 需 要 一 個 相 對 應 的 描 述檔,為 XML 文 件格式,附 檔名為.SD。 5. *.SH: 每 一 個 服 務 都 有 一 個 相 對 引 用 說 明 , 是 一 個 XML 文 件 , 附 檔 名 為 .SH。 6. *.AC: 若 個 別 服 務 的 權 限 控 管 不 同 , 則 於 此一檔 案內 描述, 是一個 XML 文 件, 附 檔 名 為 .AC。 在 撰寫 服務時 ,將 性質相 同的 服務置 於 同 一目錄 ,可 以方便 管理 ,且權 限控 管也較 為 一致, 而服 務本身 的彈 性、傳 回資 料的筆 數 都必須 考量。本研 究總共 使用了 38 個 服務 來 完 成 16 個 程 式 。 4.5 引用服務 當 程式 設計者 找到 合適的 服務 後,即 可 將 該服務 Binding 到程式 中,在 撰寫 Client 端 引 用 服 務 時 , 其 撰 寫 步 驟 為 : 1. 與 DSA Server 取 得 連 線 並 連 線 成 功 。 2. 將 Request (XML 格 式 ) 如 圖 4-4,送 至 DSA Server 端 。
3. 取得 DSA Server 送回之 Response (XML 格 式 ), 如 圖 4-5。
4. 處 理 Response 內 容 。 <?xml version="1.0"?>
<Request ServiceName="TAIS.ExamList/1.0" UserID="uid" Password="xxx">
</Request>
圖 4-4:Request 範例 <?xml version="1.0"?>
<Response Status="0" Version="1.0"> <考 試 類 別 > <試 別 > <試 別 編 號 >1</試 別 編 號 > <試 別 名 稱 >第 一 次 月 考 </試 別 名 稱 > </試 別 > <試 別 > <試 別 編 號 >2</試 別 編 號 > <試 別 名 稱 >第 二 次 月 考 </試 別 名 稱 > </試 別 > <試 別 > <試 別 編 號 >3</試 別 編 號 > <試 別 名 稱 >期 末 考 </試 別 名 稱 > </試 別 > </考 試 類 別 > </Response> 圖 4-5:Response 範例 4.6 系統範例 在 系 統 內 常 用 的 物 件 有 DSRequest 、 DSResponse、 DSConnection, 其 功 能 詳 述 如 下 :
1. DSRequest:在 DSA 架 構 中,扮 演 Request 的 角色 ,這個 物件可 以幫 助使用 者快 速的 建 立 Request, 以 便 對 DSA Server 提 出 Request。
2. DSResponse : 在 DSA 架 構 中 , 扮 演 Response 的 角 色,這個物 件可以 幫助 使用 者 取得 Server 的回 應,並轉成 RecordSet。 3. DSConnection : 在 DSA 架 構 中 , 扮 演
Connection 的 角 色,負責與 DSA Server 取 得 連線, 系統 自動透過 Login 資料表 取得 帳 號 、 密 碼 的 認 證 。
圖 4-6 至 4-7 為本 系統執 行教師 授課 成 績 範 圍 一 覽 表 的 範 例 , 在 系 統 中 亦 結 合 了 Excel 的 樞 紐 分 析 表 , 由 於 功 能 是 主 管 級 ,
因 此權限在 DSA Server 端 的權限 設定 中,已 指 定那些 角色 可以使 用該 項服務 ,當 沒有權 限 的使用 者使 用該服 務時 ,系統 即會 回應一 個 Response, 告 訴 使 用 者 權 限 不 足 。 本 系統 主管可 以選 擇多個 教學 研究會 , 來 顯示教 師授 課成績 範圍 一覽表 ,藉 由這個 報 表,主 管可 以了解 各教 師給分 級距 ,如圖 4-6 與 4-7 所 示 。 圖 4-6:教師授課成績範圍一覽表下載畫面 圖 4-8: 教 師 授 課 成 績 範 圍 一 覽 表
5.結論
面 對急 驟變化 的資 訊科技 環境 ,中等 學 校 校 務 行 政 系 統 的 開 發 需 要 快 速 隨 環 境 更 動 ,因此 如何 快速開 發, 並節省 人力 均是一 大 考驗。 本研 究提供 了一 個系統 開發 的架構 與 實驗驗 證, 讓參與 的伙 伴減輕 負擔 ,並提 供 日後開 發系 統者一 個核 心架構 方法 論,作 為 日後開 發程 式的參 考。 在此研 究中 充分表 現 出 SOA 在 中 等 學 校校 務 行 政 系統 協 作 上 的 優點。 後續 我們也 希望 能結合 上、 下游學 校 間的聯 繫管 道,並 漸次 將系統 架構與 Web Service 接 軌 , 讓 整 體 的 運 作 能 更 具 彈 性 。參考文獻
[1] 尤 弘 志 , “文 件 服 務 架 構 介 紹 ”, 2001 年 4 月 。 [2] 吳 信 輝,“細說「軟體 工廠 」概 念 (四 )”, http://www.ascc.sinica.edu.tw/,中 央 研 究 院計算 中心 ,第 22 卷 02 期 ,2006 年 01 月 16 日 。 [3] 楊 正 宏,電 子 商務致 勝教 本,初 版,金 禾 資 訊 , 台 北 市 , 2002 年 5 月 1 日 [4] 簡 西 村,“服務 導向架 構 (Service Oriented Architecture)應用 ”,http://www.mi
crosoft.com/taiwan/msdn/columns/soa /, 微 軟 技 術 專 刊 , 2004 年 12 月 。 [5] 簡 西 村 , “運 用 服 務 導 向 於 企 業 應 用 架 構 設計 ”,http://www.microsoft.com/tai wan/msdn/columns/soa/, 微 軟 技 術 專 刊 , 2005 年 1 月 。
[6] Bichler, M., Kwei-Jay Lin, “Service-Oriented Computing,” IEEE Computer, Volume 39, Issue 3, pp.99-101, Mar ch 2006.
[7] Erl, Thomas, Service-Oriented Archite cture -A Field Guide to Integrating Xml and Web Services, Pearson Edu cation, Prentice Hall PTR, 2004. [8] Huhns, M., Munindar P. Singh, “Serv
ice -Oriented Computing Key Concep ts and Principles,” IEEE Internet Co mputing, Volume 9, Issue 1, pp.75-8 1, January-February 2005.
[9] Liu, S., “Service Oriented Architectur e Overview,” IBM developerWorks, August 10, 2005.
[10] Malloy, B.A., Kraft, N.A., Hallstro m, J.O., Voas, J.M., “Improving the predictable assembly of Service-Orien ted Architectures,” IEEE Software, V olume 23, Issue 2, pp.12-15, March-April, 2006.
[11] Pallos, Michael S., “Service-Oriente d Architecture:A Primer,” eAI Journ al, pp.32-35, 2001 December.
[12] Papazoglou, M. P., “Service -Orient ed Computing: Concepts, Characterist ics and Directions,” 2003. WISE 200 3. Proceedings of the Fourth Internat ional Conference on Web Information Systems Engineering, pp.3-12, Dece mber 10-12, 2003.
[13] Peacock, Robert, “Distributed Archit ecture Technologies,” IEEE IT Profes sional, Volume 2, Issue 3, pp.58-61, March-June 2001.
[14] Singh, Munindar P. and Michael N. Huhns, Service-Oriented Computing: Semantics, Processes, Agents, John Wiley & Sons, Ltd., 2005.
[15] http://www.w3.org/2003/Talks/0521-h h-wsa/slide5-0.html, 2006. [16] http://msdn.microsoft.com/library/cht/ default.asp?url=/library/CHT/modcore/ html/deovrDevelopingOfficeSolutions.a sp, 2006. [17] http://www.oracle.com/technology/sa mple_code/tech/java/codesnippet/webse rvices/docservice/index.html, 2006. [18] http://office.microsoft.com/zh-hk/assi stance/HP010967253076.aspx, 2006.