行 精 類 行 年 年 行 立 參 參 林 逸 李 理 年
行 政 院 國 家 科 學 委 員 會 補 助 專 題 研 究 計 畫 成 果 報 告 期 中 進 度 報 告 Web Service UDDI 系 統 實 作 The Implementation of UDDI System for Web Service 計 畫 類 別 : 個 別 型 計 畫 整 合 型 計 畫 計 畫 編 號 :NSC 95-2218- E-327-001- 執 行 期 間 : 95 年 8 月 日 至 96 年 7 月 日 計 畫 主 持 人 : 徐 偉 智 共 同 主 持 人 : 計 畫 參 與 人 員 : 簡 仲 楷 林 榮 貴 陳 逸 翔 邱 世 豪 洪 偉 玶 李 任 修 成 果 報 告 類 型 ( 依 經 費 核 定 清 單 規 定 繳 交 ): 精 簡 報 告 完 整 報 告 本 成 果 報 告 包 括 以 下 應 繳 交 之 附 件 : 赴 國 外 出 差 或 研 習 心 得 報 告 一 份 赴 大 陸 地 區 出 差 或 研 習 心 得 報 告 一 份 出 席 國 際 學 術 會 議 心 得 報 告 及 發 表 之 論 文 各 一 份 國 際 合 作 研 究 計 畫 國 外 研 究 報 告 書 一 份 處 理 方 式 : 除 產 學 合 作 研 究 計 畫 提 升 產 業 技 術 及 人 才 培 育 研 究 計 畫 列 管 計 畫 及 下 列 情 形 者 外, 得 立 即 公 開 查 詢 涉 及 專 利 或 其 他 智 慧 財 產 權, 一 年 二 年 後 可 公 開 查 詢 執 行 單 位 : 國 立 高 雄 第 一 科 技 大 學 中 華 民 國 96 年 10 月 1 日
目 錄 中 文 摘 要... 錯 誤! 尚 未 定 義 書 籤 ABSTRACT... 錯 誤! 尚 未 定 義 書 籤 壹 研 究 背 景 與 目 的... 錯 誤! 尚 未 定 義 書 籤 貳 Web-Service... 錯 誤! 尚 未 定 義 書 籤 SOAP ( Simple Object Access Protocol )... 錯 誤! 尚 未 定 義 書 籤 WSDL ( Web Service Description Language )... 錯 誤! 尚 未 定 義 書 籤 UDDI ( Universal Description Discovery and Integration )... 錯 誤! 尚 未 定 義 書 籤 Shell Script... 錯 誤! 尚 未 定 義 書 籤 JUDDI ( Java Universal Description Discovery and Integration ). 錯 誤! 尚 未 定 義 書 籤 參 UDDI 伺 服 器 系 統 架 構 實 作... 錯 誤! 尚 未 定 義 書 籤 服 務 註 冊 功 能 實 作... 錯 誤! 尚 未 定 義 書 籤 使 用 者 註 冊... 錯 誤! 尚 未 定 義 書 籤 BusinessEntity 註 冊... 錯 誤! 尚 未 定 義 書 籤 Service 註 冊... 錯 誤! 尚 未 定 義 書 籤 Binding 註 冊... 錯 誤! 尚 未 定 義 書 籤 服 務 查 詢 功 能 實 作... 錯 誤! 尚 未 定 義 書 籤 Service Search by Name... 錯 誤! 尚 未 定 義 書 籤 Service Search by Type... 錯 誤! 尚 未 定 義 書 籤 肆 自 動 化 服 務 驗 證 功 能 設 計... 錯 誤! 尚 未 定 義 書 籤 半 自 動 化 Web Service 驗 證 功 能 (semi-automatic)... 錯 誤! 尚 未 定 義 書 籤 伍 驗 證 功 能 測 試... 錯 誤! 尚 未 定 義 書 籤 全 自 動 WSDL 驗 證 功 能 測 試 (automatic)... 錯 誤! 尚 未 定 義 書 籤 半 自 動 化 Web Service 驗 證 功 能 測 試 (semi automatic)... 錯 誤! 尚 未 定 義 書 籤 測 試 程 式 的 建 立 (Test program)... 錯 誤! 尚 未 定 義 書 籤 陸 結 論... 錯 誤! 尚 未 定 義 書 籤 參 考 文 獻... 錯 誤! 尚 未 定 義 書 籤 致 謝... 錯 誤! 尚 未 定 義 書 籤
圖 目 錄 圖 一 SOAP 架 構 圖 示 意 圖... 1 圖 二 WSDL 架 構 圖... 2 圖 三 Web Service 發 布 叫 用 運 作 流 程... 2 圖 四.NET 開 發 的 Web Service 位 址... 2 圖 五 Web Service 發 布 叫 用 運 作 流 程... 2 圖 六 Web Service 運 作 關 係 圖... 3 圖 七 JUDDI 內 建 介 面... 4 圖 八 UDDI API 架 構 示 意 圖... 4 圖 九 UDDI 系 統 架 構 圖... 4 圖 十 使 用 者 註 冊 實 作 流 程 圖... 5 圖 十 一 使 用 者 註 冊 SOAP request 架 構... 5 圖 十 二 controllerx.jsp 工 作 流 程... 5 圖 十 三 businessentity 註 冊 流 程... 6 圖 十 四 businessentity 註 冊 SOAP request 架 構... 6 圖 十 五 businessentity 註 冊 資 料 填 寫... 6 圖 十 六 service 註 冊 流 程... 6 圖 十 七 service 註 冊 SOAP request 架 構... 7 圖 十 八 service 註 冊 資 料 填 寫 (service.jsp)... 7 圖 十 九 binding 註 冊 流 程... 7 圖 二 十 binding 註 冊 SOAP request 架 構... 7 圖 二 十 一 binding 註 冊 資 料 填 寫 (binding.jsp)... 8 圖 二 十 二 binding 註 冊 資 料 完 成 (bindingshow.jsp)... 8 圖 二 十 三 註 冊 完 成 後 的 businessentity 詳 細 內 容... 8 圖 二 十 四 query.jsp 工 作 流 程... 8 圖 二 十 五 service 查 詢 流 程... 9 圖 二 十 六 queryservice.jsp 工 作 流 程... 9 圖 二 十 七 queryserviceshow.jsp 工 作 流 程... 9 圖 二 十 八 WSDL 全 自 動 有 效 性 驗 證 流 程... 10 圖 二 十 九 wsdl_check.sh 執 行 流 程... 10 圖 三 十 半 自 動 服 務 有 效 性 驗 證 流 程... 10 圖 三 十 一 WebServiceCheck.sh 執 行 流 程... 10 圖 三 十 二 進 行 Web Service 測 試 程 式 判 斷... 11 圖 三 十 三 全 自 動 驗 證 錯 誤 訊 息... 11 圖 三 十 四 全 自 動 驗 證 之 驗 證 結 果 Log 檔... 11 圖 三 十 五 Service 之 詳 細 內 容 ( 未 驗 證 前 )... 11 圖 三 十 六 半 自 動 驗 證 執 行 過 程... 11 圖 三 十 七 Service 之 詳 細 內 容 ( 驗 證 後 )... 12 圖 三 十 八 建 置 Java Web ServiceApplication(1)... 12 圖 三 十 九 建 置 Java Web ServiceApplication(1)... 12 圖 四 十 建 置 Java Web ServiceApplication(2)... 12 圖 四 十 一 建 置 Java Web ServiceApplication(3)... 12
UDDI 伺 服 器 功 能 增 進 設 計 與 實 作 徐 偉 智, 簡 仲 楷 國 立 高 雄 第 一 科 技 大 學 電 腦 與 通 訊 工 程 系 weichih@ccms.nkfust.edu.tw 中 文 摘 要 JUDDI ( Java implementation of the Universal Description, Discovery, and Integration (UDDI) specification for Web Services) 是 一 個 自 由 軟 體, 提 供 Web Service 開 發 者 實 現 刊 登 服 務 的 註 冊 平 台 但 是 JUDDI 還 有 一 些 缺 陷, 例 如 : 已 註 冊 的 使 用 者 取 得 認 證 碼 (authentication token) 只 需 要 輸 入 帳 號 而 不 需 要 密 碼 驗 證 即 可 取 得 認 證 碼 ; 進 行 business Entity (business Entity 是 表 示 提 供 Web Service 的 企 業 或 提 供 者 之 描 述 資 訊 ) 各 項 資 料 修 改 時, business Entity 所 有 的 的 web service 註 冊 資 訊 會 被 全 部 刪 除 本 篇 論 文 除 了 改 善 這 些 缺 點, 主 要 研 究 重 點 在 於 Web Service 有 效 性 驗 證 功 能 的 開 發 : 功 能 一 全 自 動 WSDL(Web Service Description Language) 文 件 有 效 性 驗 證,WSDL 文 件 有 效 性 可 以 利 用 Linux Shell 排 程 指 令 與 wsdl2java (wsdl2java 是 用 來 透 過 剖 析 WSDL 來 建 立 Java client 介 面 ) 工 具 來 進 行 驗 證 功 能 二 半 自 動 Web Service 有 效 性 驗 證 功 能, 藉 由 wsdl2java 解 析 WSDL 文 件 所 得 到 的 Java client 介 面, 來 撰 寫 呼 叫 Web Service 的 測 試 程 式 從 測 試 程 式 執 行 的 結 果 成 功 與 否, 系 統 便 可 以 知 道 該 Web Service 是 否 正 常 運 作 ; 最 後 將 測 試 程 式 的 執 行 指 令 加 入 Shell 的 排 程 中, 便 完 成 了 半 自 動 Web Service 有 效 性 驗 證 功 能 的 開 發 系 統 環 境 為 Linux Fedora core 3,web server 為 tomcat5.5,java 執 行 環 境 為 JDK1.5,Juddi 版 本 為 0.9rc4 standard interoperable platform that enables companies and applications to quickly, easily, and dynamically find and use Web services over the Internet. As we know, The Apache Software Foundation still has some drawbacks on designing the JUDDI. For example, user who has registered can obtain the authentication token without verifying password; The material information of the service under the business Entity could be completely deleted when doing modification on business Entity. Business Entity is the description of Web Service business or provider. In this paper, besides improving these drawbacks, our major objective is to design the validation of Web Service. The first function implemented is automatic verification of the validation of WSDL document. It is achieved by using linux system shell schedule and wsdl2java.the wsdl2java is a tool to create java client interface by prasing WSDL document. The second one is semiautomatic verification of the validation of Web Service. We implement a test program to request the service of Web Service and the result will show if this service is still working or not. Then, we set the test program into system shell schedule and complete the validation of Web Service. Keywords:UDDI JUDDI SOAP WSDL automatic semiautomatic 關 鍵 詞 :UDDI JUDDI SOAP WSDL 全 自 動 半 自 動 ABSTRACT JUDDI is an open source Java implementation of the Universal Description, Discovery, and Integration (UDDI) specification for Web Services. It creates a I
壹 研 究 背 景 與 目 的 Web Service 的 研 究 在 近 幾 年 內 是 備 受 矚 目 的 焦 點, 透 過 使 用 SOAP ( Simple Object Access Protocol) 的 封 裝 技 術, 使 得 Web Service 可 以 透 過 XML 的 資 料 格 式 來 在 HTTP 協 定 上 進 行 資 料 的 傳 送 與 接 收 處 理,SOAP 使 用 HTTP 傳 送 XML, 儘 管 HTTP 不 是 有 效 率 的 通 訊 協 定, 而 且 XML 還 需 要 額 外 的 文 件 解 析 (parse), 兩 者 使 得 交 易 的 速 度 大 大 低 於 其 它 方 案 由 於 Web Service 在 JUDDI 註 冊 中 心 的 註 冊 時 間 隨 著 時 間 的 長 久 而 會 有 所 變 更, 導 致 使 用 者 所 搜 尋 到 的 Web Service 可 能 是 遺 失 或 是 損 壞 的, 所 以 JUDDI 註 冊 中 心 若 有 定 期 自 動 檢 驗 JUDDI 中 所 有 的 Web Service, 將 可 提 升 使 用 者 搜 尋 Web Service 的 效 益 當 發 佈 者 在 註 冊 中 心 刊 登 Web Service 後, 久 而 久 之 可 能 發 佈 端 的 server 路 徑 變 更 名 稱 變 更 或 是 遺 失 等 問 題, 造 成 查 詢 服 務 的 使 用 者 必 須 花 費 很 多 時 間 來 進 行 服 務 可 用 性 的 測 試 透 過 自 動 化 服 務 驗 證 之 功 能, 查 詢 服 務 的 使 用 者 便 能 夠 縮 短 查 詢 服 務 以 及 驗 證 的 時 間, 進 而 提 升 效 益 因 此 在 開 發 自 動 化 服 務 驗 證 功 能 方 面, 主 要 採 用 Linux Shell Script 以 及 排 程 指 令 來 達 成 貳 Web-Service Web-Service 是 一 種 軟 體 元 件, 它 透 過 Web 通 訊 協 定 及 資 料 格 式 的 開 放 標 準 ( 例 如 HTTP XML 及 SOAP 等 ) 來 為 其 它 的 應 用 程 式 提 供 服 務 作 為 提 供 服 務 的 元 件, 它 可 用 來 建 構 分 散 式 架 構 系 統, 實 現 分 散 式 架 構 動 態 整 合 平 衡 負 載 單 元 升 級 等 優 點 以 Web 的 開 放 標 準 為 基 礎, 讓 Web-Service 具 有 良 好 的 互 通 性, 在 不 同 平 台 上 用 不 同 程 式 語 言 建 置 的 系 統 也 可 以 輕 易 整 合, 克 服 目 前 分 散 式 系 統 各 自 使 用 不 同 機 制 造 成 整 合 困 難 的 情 形 前 面 說 過 Web-Service 是 以 Web 的 開 放 標 準 為 基 礎, 其 中 最 基 本 的 是 HTTP 和 XML 但 建 構 完 整 的 Web-Service 運 作 還 需 要 更 多 的 基 礎, 以 下 這 些 都 是 以 XML 為 基 本 語 法 建 立 的 重 要 標 準 SOAP ( Simple Object Access Protocol ) Web-Service 的 核 心 服 務 是 簡 單 物 件 存 取 協 定 (SOAP), 它 提 供 了 包 裝 訊 息 的 標 準 方 式 SOAP 促 進 了 用 戶 端 與 伺 服 端 間 RPC 式 的 通 訊 方 式, 且 不 與 任 何 程 式 語 言 緊 密 結 合, 也 不 與 任 何 特 定 傳 輸 協 定 緊 密 結 合, 使 得 跨 多 個 環 境 的 合 作 得 以 實 現 SOAP 是 一 個 建 構 在 XML 之 上 的 協 定, 主 要 包 含 三 個 部 份 : 1. SOAP 信 封 :SOAP 是 由 根 元 素 Envelope 所 組 成 的 一 個 XML 訊 息 呼 叫,Envelope 中 包 含 兩 個 重 要 的 元 素, 一 是 <HEADER>, 用 來 傳 遞 不 適 合 放 在 主 體 中 的 資 料, 如 身 分 驗 證 另 一 個 是 <BODY>, 包 含 訊 息 的 實 際 內 容 2. SOAP 編 碼 :SOAP 編 碼 建 立 在 XML 規 格 定 義 的 資 料 型 態 之 上, 它 定 義 了 在 XML 文 件 中 所 編 寫 資 料 的 標 準 方 法 3. RPC 訊 息 :RPC 訊 息 如 何 經 由 請 求 / 回 覆 的 訊 息 型 式 來 連 做 程 序 導 向 通 訊 圖 一 SOAP 架 構 圖 示 意 圖 WSDL ( Web Service Description Language ) WSDL 是 描 述 Web-Service 的 語 言, 它 的 內 容 描 述 在 一 份 XML 文 件 哩, 目 的 為 在 描 述 網 際 網 路 服 務 端 所 提 供 的 服 務, 也 就 是 為 伺 服 端 提 供 服 務 建 立 一 份 服 務 描 述 檔 1
案 WSDL 可 識 別 所 提 供 的 服 務 是 怎 樣 的 服 務 外, 還 描 述 了 每 個 服 務 所 提 供 的 操 作 方 法 針 對 每 個 方 法 WSDL 描 述 了 用 戶 端 要 求 服 務 時 要 遵 守 的 事 項 以 及 傳 輸 資 料 的 格 式 等 等 圖 二 WSDL 架 構 圖 UDDI ( Universal Description Discovery and Integration ) UDDI 定 義 了 Web-Service 發 佈 和 發 現 的 方 法 利 用 XML 以 及 SOAP 技 術, 讓 提 供 Web-Service 的 服 務 提 供 者 可 以 註 冊 自 己 本 身 所 提 供 的 服 務 到 提 供 UDDI 服 務 註 冊 的 機 構 當 服 務 需 求 者 需 要 某 種 網 路 服 務 時, 也 可 以 到 提 供 UDDI 服 務 的 地 方 查 詢 所 需 要 的 服 務 Shell Script Shell 是 用 來 與 kernel(linux 系 統 核 心 ) 溝 通, 來 控 制 硬 體 設 備 的 一 項 工 具, 藉 由 Shell Script, 我 們 可 以 完 成 一 連 串 的 指 令, 甚 至 可 以 撰 寫 像 程 式 語 言 般 的 判 斷 式 以 及 迴 圈, 在 後 續 的 設 計 章 節 會 提 到 我 們 是 如 何 利 用 Shell Script 來 完 成 自 動 化 Web Service 驗 證 功 能 圖 三 Web Service 發 布 叫 用 運 作 流 程 箭 頭 尋 找 服 務 的 工 作 流 程, 在 目 錄 UDDI layer 進 行 透 過 使 用 者 介 面 來 執 行 查 詢 服 務 的 api, 然 後 通 訊 格 式 SOAP layer 透 過 soap 將 物 件 封 裝, 在 資 料 格 式 XML layer 用 XML 的 方 式 來 表 示, 最 後 在 網 路 協 定 HTTP layer 跟 我 們 的 uddi server 溝 通 箭 頭 到 服 務 的 連 結 的 工 作 流 程, 是 作 反 序 列 化 的 工 作 來 取 得 uddi server 回 傳 的 response 訊 息 在 得 知 服 務 所 在 位 址 之 後, 箭 頭 要 求 服 務 描 述, 透 過 描 述 WSDL layer, 讓 web service 呈 現 我 們 可 以 了 解 的 資 訊 ( 圖 四 ) 箭 頭 取 得 服 務 描 述 文 件, 有 了 WSDL 文 件 後,client 端 就 可 以 設 計 服 務 叫 用 的 方 法, 進 行 要 求 服 務 以 及 取 得 服 務 結 果 一 般 來 說 WSDL 文 件 位 址 不 見 得 要 刊 登 在 uddi server 上 (uddi spec 中 tmodel 規 範 ), 但 是 本 系 統 由 於 必 須 要 驗 證 WSDL 的 有 效 性, 所 以 會 要 求 服 務 刊 登 者 必 須 也 刊 登 WSDL 所 在 位 址 圖 四.NET 開 發 的 Web Service 位 址 圖 五 Web Service 發 布 叫 用 運 作 流 程 是 一 個 SOAP 請 求 的 訊 息, 在 其 目 的 是 向 UDDI server 取 得 認 證 碼 (authentication token) 此 訊 息 採 用 XML 的 格 式, 元 素 (element) get_authtoken 及 參 數 (arguments) generic xmlns userid 之 意 義 或 作 用 則 定 義 在 目 錄 UDDI 的 規 範 中 generic 指 2
的 是 UDDI 請 求 訊 息 可 接 受 的 版 本, 在 圖 五 中 的 參 數 2.0 代 表 是 發 送 給 支 援 UDDI Version2 的 請 求 訊 息 ; xmlns 是 指 XML name space 的 命 名 空 間, 在 此 是 urn:uddi-org:api_v2 (urn 是 Uniform Resource Name 通 用 資 源 名 稱 ); userid 代 表 欲 申 請 認 證 碼 的 使 用 者 帳 號, 參 數 mark 則 是 代 表 已 註 冊 的 使 用 者 Machine A Invoke web Step 3. Web Service 叫 用 流 程 示 意 Step 4. request SOAP Step 5. response WSDL Step 2. Machine B web service Step 1. UDDI Server 圖 六 Web Service 運 作 關 係 圖 Machine A( 後 簡 稱 為 A) 為 Service 要 求 端,Machine B( 後 簡 稱 為 B), 圖 六 中 的 Step(1~5) 分 別 代 表 著 與 圖 三 標 準 對 應 的 層 級,(Step 1.)B 先 向 UDDI server( 後 簡 稱 為 UDDI) 註 冊 自 已 所 發 佈 的 web service 的 位 址 以 及 WSDL 文 件 位 址,(Step 2.) 接 著 A 先 到 UDDI 搜 尋 服 務 並 且 (Step 3.) 取 得 WSDL 文 件 位 址, 再 依 據 WSDL 文 件 中 的 Web Service 介 面 敘 述 來 向 (Step 4.) Web Service 所 註 冊 的 位 址 進 行 服 務 要 求, 訊 息 格 式 為 XML 透 過 SOAP 封 裝 後 經 由 HTTP 協 定 送 到 B 端,(Step 5.)B 端 收 到 Service Request 後 將 處 理 過 後 的 結 果 也 按 照 XML 訊 息 格 是 並 且 用 SOAP 加 以 封 裝 後 透 過 HTTP 來 Response 給 A 端, 就 完 成 了 整 個 Web Service 叫 用 的 過 程 JUDDI, 可 以 建 立 一 個 屬 於 自 己 的 JUDDI 註 冊 中 心, 就 不 用 擔 心 哪 天 會 因 為 MicroSoft 不 提 供 UDDI 服 務 時 所 造 成 的 困 擾 而 且 JUDDI 所 支 援 的 資 料 庫 包 括 MySQL DB2 SQLdb (HypersonicSQL) Sybase PostreSQL Oracle TotalXML JDataStore (Borland), 使 用 者 可 以 選 擇 自 己 熟 悉 的 資 料 庫 使 用 JUDDI API 方 法 可 以 分 成 兩 類 : 查 詢 方 法 和 刊 登 方 法 查 詢 方 法 讓 我 們 搜 尋 和 瀏 覽 目 錄, 而 刊 登 方 法 讓 我 們 修 改 目 錄 的 內 容 除 了 兩 個 例 外 之 外, 查 詢 方 法 的 訊 息 擁 有 SOAP 訊 息 主 體 裡 以 find_ 或 get_ 為 前 置 詞 的 根 元 素, 而 刊 登 方 法 的 訊 息 擁 有 SOAP 訊 息 主 體 裡 以 save_ 或 delete_ 為 前 置 詞 的 根 元 素 建 立 和 更 新 都 是 由 save_xxx API 訊 息 負 責 當 資 料 登 錄 使 用 save_xxx 方 法 建 立 時, 登 錄 處 會 產 生 唯 一 的 識 別 項 然 後 唯 一 的 識 別 項 會 傳 入 接 下 來 的 save_xxx 方 法 呼 叫 來 更 新 資 料 錄 每 一 個 save_ 訊 息 都 有 對 應 的 delete_ 訊 息 來 刪 除 JUDDI 登 錄 處 只 能 讓 我 們 修 改 和 刪 除 自 己 的 資 料 錄, 因 此 我 們 必 須 在 每 各 要 求 裡 包 含 認 證 記 號 來 證 實 我 們 的 身 分 此 標 記 會 當 成 save_ 和 delete_ 方 法 簽 章 的 一 部 份 來 傳 遞 藉 著 將 我 們 的 資 格 傳 入 get_authtoken 方 法, 可 以 獲 得 認 證 標 記 登 錄 處 如 何 建 立 認 證 標 記 的 實 作 細 節 留 給 登 錄 處 決 定,MicroSoft 登 錄 處 使 用 Passport 來 認 證 它 的 使 用 者 我 們 可 以 為 登 錄 的 使 用 者 傳 送 一 組 有 效 的 Passport 資 格, 而 登 錄 處 會 傳 回 一 個 有 效 的 Passport 標 記 下 圖 為 JUDDI 的 畫 面 : JUDDI ( Java Universal Description Discovery and Integration ) MicroSoft 免 費 提 供 了 UDDI server, 但 為 預 防 若 日 後 MicroSoft 不 繼 續 提 供 或 不 免 費 提 供 時, 仍 有 UDDI 可 供 服 務 開 發 者 使 用, 因 此 我 們 自 行 架 設 了 一 台 為 自 由 軟 體 的 JUDDI server-juddi JUDDI 是 使 用 JAVA 程 式 語 言 撰 寫 且 符 合 JUDDI 規 範 的 一 份 實 作, 透 過 3
( 二 ) 服 務 查 詢 介 面 ( 三 ) 服 務 變 更 介 面 以 及 ( 四 ) 服 務 有 效 性 確 認 介 面 最 後, 我 們 將 功 能 需 求 分 配 到 2 個 子 系 統, 它 們 分 別 是 ( 一 )uddi 伺 服 器 子 系 統 (uddi Server) ( 二 )uddi 客 戶 端 系 統 (uddi Client) 圖 七 JUDDI 內 建 介 面 圖 九 UDDI 系 統 架 構 圖 圖 八 UDDI API 架 構 示 意 圖 businessentity service binding 以 及 tmodel 關 係 我 們 可 以 從 圖 八 看 的 出 來, Provider 就 是 代 表 businessentity, 因 為 UDDI 是 以 企 業 使 用 為 導 向 的 註 冊 平 台, 所 以 他 的 註 冊 內 容 比 較 偏 向 business 的 設 定, 那 這 邊 也 可 以 把 它 當 成 是 一 個 個 人 的 相 關 資 訊, 而 且 一 定 要 有 businessentity 才 能 進 行 service 的 發 佈, 圖 八 的 關 係 圖, Provider(businessEntity) 可 以 有 0~n 個 service, 每 個 service 可 以 有 0~n 個 binding, 而 每 個 binding 必 須 要 有 1~n 個 tmodel, 這 邊 binding 之 所 以 必 須 要 有 tmodel, 是 因 為 Binding 包 含 對 tmodel 的 參 照, 相 關 的 技 術 規 範 都 包 含 在 tmodel 裡 面 參 UDDI 伺 服 器 系 統 架 構 實 作 UDDI 系 統 架 構 uddi Server 提 供 處 理 uddi Clinet 的 管 理 服 務 要 求, 包 括 ( 一 ) 服 務 註 冊 ( 二 ) 服 務 查 詢 ( 三 ) 服 務 變 更 以 及 ( 四 )WSDL 有 效 性 檢 驗 uddi Clinet 提 供 使 用 者 管 理 服 務 的 瀏 覽 器 操 作 介 面, 包 括 ( 一 ) 服 務 註 冊 介 面 服 務 註 冊 功 能 實 作 服 務 註 冊 功 能 分 為 四 階 段, 分 別 是 使 用 者 註 冊 BusinessEntity 註 冊 Service 註 冊 以 及 Binding 註 冊, 透 過 這 四 個 註 冊 階 段 即 可 以 完 成 服 務 的 註 冊 流 程 使 用 者 註 冊 提 供 欲 使 用 Juddi 註 冊 平 台 的 Web Service 開 發 者 進 行 帳 號 註 冊, 在 使 用 者 送 出 註 冊 的 資 料 時, 系 統 會 先 產 生 一 組 具 有 管 理 者 權 限 的 的 認 證 碼 (authentication token), 接 著 將 註 冊 資 料 以 及 該 認 證 碼 填 入 save_publisher 的 SOAP 請 求 訊 息 後, 就 可 以 向 Juddi server 進 行 註 冊 要 求 圖 十 說 明 了 使 用 者 註 冊 流 程 從 首 頁 我 要 註 冊 的 連 結 進 入 registy.jsp, 輸 入 使 用 者 申 請 的 帳 號 密 碼 以 及 個 人 資 料 後, 會 送 到 UserDataProcess.jsp 進 行 檢 驗 資 料 與 格 式 是 否 正 確 無 誤, 並 且 向 Juddi server 申 請 一 組 具 有 管 理 者 權 限 的 認 證 碼 ( 具 有 管 理 者 權 限 的 認 證 碼 才 能 註 冊 使 用 者 ) 接 著 會 把 註 冊 資 料 以 及 該 認 證 碼 加 入 在 save_publisher SOAP 訊 息 中 後, 再 送 到 crontrollerx.jsp 進 行 處 理, 當 crontrollerx.jsp 收 到 SOAP 訊 息 時, 會 先 依 據 該 SOAP 所 屬 的 請 求 Type( 由 參 數 為 admin inquiry 以 及 publish 來 判 斷 ), 由 於 這 邊 是 要 註 冊 使 用 者, 所 以 採 用 的 請 求 Type 為 admin crontrollerx.jsp 會 將 Juddi server 處 理 好 之 4
後 的 資 料 (Juddi server 回 傳 時 已 經 將 資 料 包 入 SOAP 訊 息 ) 紀 錄 到 session 中, 並 且 在 回 到 指 定 的 頁 面 (target.jsp) 圖 十 使 用 者 註 冊 實 作 流 程 圖 圖 十 一 使 用 者 註 冊 SOAP request 架 構 有 關 於 SOAP 封 裝 的 基 本 格 式 請 參 見 圖 一, 圖 十 一 已 說 明 各 元 素 與 屬 性 的 欄 位 意 義, 在 此 SOAP 訊 息 中 save_publisher 根 元 素 是 表 示 此 請 求 是 要 進 行 註 冊 使 用 者 的 要 求, 在 元 素 認 證 碼 資 訊 (authinfo) 加 入 具 有 管 理 者 權 限 的 認 證 碼, 此 例 是 用 具 有 管 理 者 權 限 的 juddi 帳 號 來 取 得, 元 素 服 務 提 供 者 (publisher) 則 是 填 入 使 用 者 註 冊 的 各 個 資 料 欄 位 圖 十 二 controllerx.jsp 工 作 流 程 首 先 controllerx.jsp 收 到 SOAP 處 理 要 求 的 時 候, 必 須 先 知 道 該 SOAP 訊 息 是 屬 於 使 用 者 資 料 註 冊 admin ( 含 變 更 ) 服 務 註 冊 publish ( 含 變 更 ) 以 及 服 務 查 詢 inquiry, 接 著 在 建 立 http 連 線, 將 SOAP 訊 息 送 到 UDDI server, 再 接 收 UDDI server 處 理 好 的 SOAP 回 覆 訊 息, 再 來 將 SOAP 訊 息 存 入 session 中, 最 後 將 當 前 的 畫 面 指 定 到 的 target page 參 數 中 所 紀 錄 的 網 頁 ( 例 如 使 用 者 註 冊 最 後 會 指 定 將 目 前 網 頁 導 向 UserDataProcess.jsp) BusinessEntity 註 冊 BusinessEntity 的 意 義 是 供 服 務 發 佈 者 建 立 一 個 服 務 管 理 群 組, 透 過 此 管 理 群 組 來 管 理 自 己 所 發 佈 的 各 式 服 務, 這 邊 提 供 了 三 種 群 組 分 類 (Company SOHO 以 及 ResearchTeam) 5
中 usetype 對 照 到 BusinessType, 這 邊 分 為 company( 公 司 ) SOHO( 個 人 工 作 室 ) 以 及 ResearchTeam( 研 究 團 隊 ) 等 三 種 圖 十 五 businessentity 註 冊 資 料 填 寫 圖 十 三 businessentity 註 冊 流 程 Service 註 冊 透 過 BusinessEntity 的 成 功 註 冊 之 後, 我 們 取 得 了 BusinessKey,BusinessKey 是 作 為 Service 的 對 應 依 據, 在 service 註 冊 的 流 程 上 是 必 要 的, 在 進 行 service 註 冊 的 時 候, 先 決 條 件 必 須 要 有 businesskey 以 及 認 證 碼, 在 註 冊 流 程 上 與 businessentity 的 註 冊 大 同 小 異 圖 十 四 businessentity 註 冊 SOAP request 架 構 在 此 SOAP 訊 息 中 save_business 為 主 要 根 元 素, 是 表 示 此 SOAP 是 要 進 行 businessentity 註 冊 請 求, businessentity 元 素 底 下 的 子 元 素 就 是 businessentity 的 註 冊 資 料, 對 照 到 圖 十 五 的 註 冊 欄 位, 其 圖 十 六 service 註 冊 流 程 6
圖 十 七 service 註 冊 SOAP request 架 構 在 此 SOAP 訊 息 中 save_service 為 主 要 根 元 素, 是 表 示 此 請 求 是 要 進 行 服 務 註 冊 要 求, 元 素 businessservice 底 下 的 子 元 素 就 是 服 務 的 註 冊 資 料, 對 照 到 圖 十 八 的 註 冊 欄 位, 其 中 Type 對 照 到 Service Type, 這 邊 分 為 RPC(Remote procedure call) DOC( 文 件 ) 以 及 others( 其 他 類 型 ) 等 三 種 ( businesskey 會 在 進 行 save_service 封 裝 SOAP 請 求 訊 息 時 自 行 填 入 ) 圖 十 九 binding 註 冊 流 程 圖 十 八 service 註 冊 資 料 填 寫 (service.jsp) Binding 註 冊 到 目 前 為 止 還 沒 有 完 成 整 個 Web Service 的 註 冊 流 程, 接 著 進 行 Binding 的 註 冊, 在 註 冊 Binding 之 前 一 定 要 先 取 得 servicekey, 這 樣 才 能 知 道 這 個 繫 結 (Binding) 是 屬 於 哪 個 Service 的 完 成 了 Binding 註 冊 之 後 就 算 完 成 了 整 個 Web Service 的 註 冊 流 程, 其 中 重 要 的 WSDL 文 件 位 址 以 及 服 務 位 址 都 在 這 個 地 方 註 冊, 這 個 部 份 將 會 與 後 面 的 WSDL 有 效 性 驗 證 以 及 服 務 有 效 性 驗 證 有 所 關 聯 圖 二 十 binding 註 冊 SOAP request 架 構 在 此 SOAP 訊 息 中 save_binding 為 主 要 根 元 素, 是 表 示 此 請 求 是 要 進 行 binding 註 冊 要 求, 元 素 bindingtemplate 底 下 的 子 元 素 就 是 binding 的 註 冊 資 料, 對 照 到 圖 二 十 一 的 註 冊 欄 位 (servicekey 會 在 進 行 save_binding 封 裝 的 SOAP 請 求 訊 息 時 自 行 填 入 ) 7
圖 二 十 一 binding 註 冊 資 料 填 寫 (binding.jsp) 服 務 查 詢 功 能 實 作 服 務 查 詢 此 處 分 為 三 類 : BusinessEntitySearch ServiceSearch 以 及 PublisherSearch, 其 中 BusinessEntitySearch 以 及 ServiceSearch 又 分 為 依 據 名 稱 或 類 型 來 進 行 搜 尋, 因 此 搜 尋 的 類 型 分 為 五 種, 結 合 了 Juddi 原 先 所 提 供 的 Search API 加 以 改 良, 將 回 傳 的 訊 息 剖 析 以 表 格 呈 現 這 邊 介 紹 ServiceSearch 部 分 圖 二 十 二 binding 註 冊 資 料 完 成 (bindingshow.jsp) 當 binding 註 冊 完 成 之 後, 會 先 將 WSDL 驗 證 狀 態 設 定 為 wait_check 表 示 等 待 驗 證 中, service_testprogram 與 service_testprogram_check 要 在 半 自 動 service 有 效 性 驗 證 功 能 過 後 才 會 改 變 圖 二 十 三 是 完 成 所 有 流 程 後 的 服 務 註 冊 資 訊 圖 二 十 三 註 冊 完 成 後 的 businessentity 詳 細 內 容 圖 二 十 四 query.jsp 工 作 流 程 主 要 是 負 責 傳 遞 使 用 者 欲 查 詢 的 項 目 資 訊 到 對 應 的 網 頁 進 行 查 詢 處 理 Service Search by Name Service Search by Name 是 說 送 出 要 搜 尋 的 Servie 的 名 稱 後, 將 會 接 收 到 對 應 的 SOAP 訊 息, 然 後 將 接 收 到 的 SOAP 訊 息 剖 析 作 成 表 格 得 到 我 們 要 的 結 果, 畫 面 結 果 會 顯 示 所 查 詢 到 的 Service 有 哪 些, 以 及 在 其 底 下 的 Binding, 這 部 分 的 結 果 畫 面 在 系 統 測 試 會 進 行 展 示, 原 有 的 Find API 只 有 回 傳 Service Name 以 及 所 屬 的 BusinessKey 與 ServiceKey 完 全 沒 有 其 他 資 訊, 那 在 這 邊 設 計 在 查 詢 到 的 服 務 名 稱 還 多 建 立 了 詳 細 內 容 按 鈕, 供 使 用 者 了 解 更 多 資 訊 8
Service Search by Type Service Search by Type 供 使 用 者 能 依 據 各 種 service 找 到 他 們 所 要 找 的 Service 群 組, 當 查 詢 到 Type 的 資 訊, 除 了 顯 示 service 的 名 稱 以 及 敘 述 欄 位 資 料 以 外, 我 們 還 可 以 透 過 詳 細 內 容 按 鈕 來 取 得 更 多 的 資 料 圖 二 十 七 queryserviceshow.jsp 工 作 流 程 肆 自 動 化 服 務 驗 證 功 能 設 計 全 自 動 化 WSDL 文 件 驗 證 功 能 (automatic) 全 自 動 化 WSDL 驗 證 功 能 主 要 是 透 過 解 析 WSDL 文 件 後 所 產 生 出 來 的 Binding 檔 案, 並 且 依 據 這 些 檔 案 產 生 的 成 功 與 否 來 進 行 判 斷 Web Service 是 否 有 效 ( 圖 二 十 七 ) 進 行 全 自 動 化 驗 證 的 Shell Script 有 以 下 幾 個 部 份 :( 圖 二 十 八 ) 圖 二 十 五 service 查 詢 流 程 1.CLASSPATH 設 定 : 雖 然 在 系 統 環 境 變 數 中 已 經 有 載 入 過 CLASSPATH 環 境 變 數, 但 是 在 Shell Script 中 仍 需 在 次 進 行 載 入 相 關 的 函 式 庫 2. 取 得 資 料 庫 中 所 有 WSDL 文 件 位 址 : 進 行 取 得 系 統 中 所 有 WSDL 文 件, 並 且 計 算 出 WSDL 的 文 件 數 量 3. 進 行 WSDL 的 Binding 檔 案 產 生 判 斷 : 根 據 第 二 部 份 所 得 到 的 文 件 數 量 進 行 迴 圈 判 斷, 以 Axis 的 wsdl2java 執 行 檔 來 產 生 對 應 之 WSDL 文 件 Binding 檔 案 成 功 與 否 為 判 斷 依 據, 將 執 行 的 結 果 存 入 對 應 的 驗 證 結 果 資 料 表, 同 時 也 寫 入 驗 證 時 間 圖 二 十 六 queryservice.jsp 工 作 流 程 9
1.CLASSPATH 設 定 : 參 照 全 自 動 化 Web Service 驗 證 功 能 之 CLASSPATH 設 定 部 份 2. 進 行 Web Service 測 試 程 式 驗 證 判 斷 : 在 執 行 測 試 程 式 後, 儲 存 判 斷 結 果 與 驗 證 時 間 到 對 應 的 資 料 表 中 圖 二 十 八 WSDL 全 自 動 有 效 性 驗 證 流 程 圖 三 十 半 自 動 服 務 有 效 性 驗 證 流 程 圖 二 十 九 wsdl_check.sh 執 行 流 程 半 自 動 化 Web Service 驗 證 功 能 (semi-automatic) 由 於 全 自 動 化 Web Service 驗 證 功 能 仍 有 驗 證 正 確 與 否 的 疑 慮, 畢 竟 WSDL 文 件 僅 記 載 著 Web Service 的 Binding 方 式 以 及 所 屬 的 服 務 所 接 收 與 回 傳 參 數 值 類 型 所 以 我 們 要 更 精 確 的 知 道 該 Web Service 是 否 有 在 正 常 運 作, 就 要 對 註 冊 的 Web Service 所 提 供 的 功 能 進 行 驗 證, 驗 證 的 方 式 就 是 針 對 該 Web Service 設 計 一 個 測 試 程 式, 透 過 執 行 該 測 試 程 式 的 成 功 與 否 為 判 斷 依 據, 將 結 果 與 驗 證 時 間 存 入 對 應 的 資 料 表 中 ( 圖 三 十 ) 進 行 半 自 動 化 驗 證 的 Shell Script 有 以 下 幾 個 部 份 :( 圖 三 十 一 ) 圖 三 十 一 WebServiceCheck.sh 執 行 流 程 伍 驗 證 功 能 測 試 全 自 動 WSDL 驗 證 功 能 測 試 (automatic) WebService 的 全 自 動 驗 證, 在 參 自 動 化 服 務 驗 證 功 能 設 計 中 有 提 到 其 驗 10
證 的 目 的, 在 Linux 指 令 環 境 下 執 行 crontab -e 將 13 * * * * /usr/local/axis-1_4/webapps/wsdl_check.sh > /root/wsdl_check_log, 此 指 令 的 意 思 為 ( 在 每 個 小 時 的 第 13 分 鐘 執 行 wsdl_check.sh 並 且 將 結 果 存 入 wsdl_check_log), 加 入 後 離 開 編 輯 環 境 即 可 完 成 排 程 設 定, 執 行 過 程 如 圖 三 十 二, 在 執 行 的 過 程 中 將 執 行 結 果 存 入 /root 底 下 的 wsdl_check_log 中, 圖 三 十 三 為 執 行 中 不 合 法 的 WSDL 文 件, 圖 七 則 是 全 自 動 驗 證 後 的 紀 錄 結 果, 同 時 也 將 結 果 與 驗 證 時 間 存 入 對 應 的 資 料 庫 內 容 圖 三 十 二 進 行 Web Service 測 試 程 式 判 斷 半 自 動 化 Web Service 驗 證 功 能 測 試 (semi automatic) 半 自 動 驗 證 功 能, 必 須 要 由 系 統 管 理 者 來 操 作, 圖 三 十 五 為 尚 未 進 行 半 自 動 Service 驗 證 之 Service 詳 細 內 容, 從 圖 中 可 以 看 到 Service_TestProgram 欄 位 值 為 NoProgram Test 以 及 Service_TestProgram_ Check 欄 位 值 為 Never_check, 是 說 明 了 目 前 此 Web Service 只 有 驗 證 WSDL 文 件 是 合 法 的, 但 是 還 沒 有 真 正 建 立 相 關 測 試 該 Web Service 可 用 性 之 測 試 程 式, 因 此 這 邊 我 們 寫 了 個 測 試 程 式 來 測 試 使 用 者 名 稱 驗 證 以 及 梯 形 的 面 積 計 算, 圖 三 十 六 中 矩 形 圍 起 來 的 地 方 代 表 該 測 試 程 式 呼 叫 了 該 WebService 的 回 傳 值, 我 們 所 得 到 的 結 果 的 回 傳 值 為 0, 代 表 執 行 成 功, 在 linux 執 行 WebServiceCheck.sh 參 數 一 : TestProgram 參 數 二 :WSDL 文 件 位 址 該 驗 證 程 式 便 會 執 行 該 WebService 的 測 試 程 式, 然 後 將 結 果 存 入 資 料 庫 中, 從 圖 三 十 七 可 以 看 到 Service_TestProgram 以 及 Service_TestProgram_Check 欄 位 在 驗 證 後 的 值 分 別 為 ServiceTest 和 Web Service can available. 並 且 把 進 行 驗 證 後 的 時 間 寫 入 Check Last Date 欄 位 中 圖 三 十 三 全 自 動 驗 證 錯 誤 訊 息 圖 三 十 五 Service 之 詳 細 內 容 ( 未 驗 證 前 ) 圖 三 十 六 半 自 動 驗 證 執 行 過 程 圖 三 十 四 全 自 動 驗 證 之 驗 證 結 果 Log 檔 11
圖 三 十 七 Service 之 詳 細 內 容 ( 驗 證 後 ) 進 行 驗 證 後 的 service 會 將 測 試 程 式 以 及 驗 證 結 果 記 錄 到 資 料 庫 中, 並 且 進 行 資 料 更 新 測 試 程 式 的 建 立 (Test program) 透 過 Java 建 立 Web Service Binding Program 來 使 用 Web Service 首 先 要 先 設 定 好 CLASSPATH 路 徑, 在 本 例 中 在 CLASSPATH=/usr/local/axis-1_4/webapps 下 來 撰 寫, 接 著 到 這 個 CLASSPATH 目 錄 底 下 執 行 以 下 指 令 /usr/java/jdk15/bin/java -Djava.ext.dirs=lib org.apache.axis.wsdl.wsdl2java http://163.18.62.48/webservicetest/servicet est.asmx?wsdl, 之 後 會 產 生 Service1.java Service1Locator.java Service1Soap.java 以 及 ServiceSoapStub.java, 這 是 由 於 Axis 中 的 WSDL2Java 的 class 檔 會 將 接 收 到 的 WSDL 文 件 作 解 析 而 產 生 的, 其 中 畫 面 上 看 到 的 ServiceTest.java 就 是 我 們 要 編 輯 用 來 使 用 Web Service 的 Test Program 圖 三 十 八 建 置 Java Web ServiceApplication(1) 圖 三 十 九 建 置 Java Web ServiceApplication(1) 圖 四 十 就 是 ServiceTest 的 程 式 內 容, 首 先 要 匯 入 剛 剛 解 析 出 來 的 Service1Locator 以 及 Service1Soap, 先 建 構 一 個 Service1Locator 為 _Locator, 再 將 取 得 Web Service 的 方 式 建 構 為 _localservice, 接 著 透 過 _localservice 我 們 就 可 以 取 得 剛 剛.NET 所 撰 寫 的 Web Service 功 能, 接 著 回 到 /usr/local/axis-1.4/webapps 編 譯 javac ServiceTest.java 後, 執 行 java ServiceTest, 圖 四 十 為 執 行 結 果, 編 譯 的 時 候 會 出 現 很 多 的 Waring, 這 是 由 於 我 們 透 過.NET 所 產 生 的 WSDL 文 件, 再 經 由 WSDL2Java 轉 換 後, 中 文 會 有 亂 碼 的 顯 示, 不 過 那 大 多 數 都 是 註 解, 並 不 影 響 程 式 的 執 行 結 果, 到 這 邊 為 止, 就 算 完 成 了 透 過 Java 來 使 用 Web Service 所 提 供 的 功 能 圖 四 十 建 置 Java Web ServiceApplication (2) 圖 四 十 一 建 置 Java Web ServiceApplication(3) 陸 結 論 這 次 的 研 究 可 以 分 成 兩 部 分, 首 先, 是 使 用 Open Source Juddi 來 加 以 修 改, 並 且 作 適 當 的 功 能 調 整, 在 進 行 SOAP 的 訊 息 解 析 方 面, 雖 然 AXIS 的 函 式 庫 提 供 了 解 析 方 式, 但 是 還 是 要 做 過 相 當 的 調 整 才 能 剖 析 取 出 所 需 要 的 值 其 次 就 是 本 次 研 究 的 重 點 部 份 自 動 化 Web Service 有 效 性 檢 驗, 而 在 JSP 的 環 境 中 要 送 出 Linux 的 command line 會 有 部 分 指 令 無 法 執 行 的 問 題, 造 成 透 過 JSP 操 作 自 動 化 檢 測 的 困 難 性, 但 是 經 由 系 統 管 理 者 來 管 理 Web Service 有 效 性 檢 測 是 比 較 恰 當 的, 12
而 且 我 們 是 採 用 定 期 式 的 檢 驗, 對 系 統 的 負 擔 也 比 較 輕, 而 且 只 需 透 過 Shell Script 的 開 發 設 計, 將 解 析 WSDL 以 及 執 行 編 譯 好 的 測 試 Web Service 之 Test Program 後, 根 據 結 果 來 判 定 服 務 的 有 效 性, 但 是 其 精 確 度 還 是 有 限 的, 解 析 WSDL 文 件 只 能 知 道 該 Web Service 的 繫 結 (Binding) 格 式 架 構 沒 有 問 題, 但 是 不 代 表 該 Web Service 可 以 正 常 運 作 ( 如 該 位 址 Web Service 不 存 在, 因 為 WSDL 文 件 位 址 與 Web Service 位 址 是 不 同 的 ), 唯 有 系 統 管 理 者 了 解 該 Web Service 的 呼 叫 方 式 跟 確 定 回 傳 值 得 正 確 性 來 設 計 對 應 的 Test Program 來 加 以 判 定 Web Service 的 有 效 性, 有 了 Test Program, 在 搭 配 上 全 自 動 的 WSDL 有 效 性 檢 測 模 式, 那 就 可 以 做 到 100% 的 服 務 有 效 性 檢 測 了 但 是 這 樣 對 系 統 管 理 者 會 是 個 相 大 的 負 擔, 因 為 註 冊 的 Web Service 不 會 只 有 一 兩 個, 也 不 會 每 個 都 只 有 單 純 的 兩 數 相 加 處 理, 所 以 變 成 要 管 理 者 定 期 撰 寫 Test Program 來 加 入 測 試 排 程, 會 非 常 的 費 時 費 力, 因 此 要 真 正 達 到 完 全 免 人 力 來 開 發 服 務 有 效 性 檢 測, 可 能 要 對 依 據 WSDL 文 件 所 自 動 產 生 的 四 項 對 應 的 Binding 用 之 wsdl2java 來 做 為 探 討 方 向, 因 為 隨 著 Web Service 的 複 雜 度 不 同, 所 對 應 的 WSDL 文 件 也 會 變 的 不 同, 除 了 基 本 大 架 構 相 同 外, 差 異 性 還 是 頗 大 的 經 過 這 次 的 研 究 開 發 後, 由 於 Juddi 目 前 只 開 發 到 0.9rc4(Last Update: June 14, 2005), 雖 然 表 面 上 看 起 來 作 為 註 冊 的 功 能 已 經 完 善, 但 是 實 際 上 還 有 很 多 Bug 需 要 去 處 理, 由 於 本 次 的 論 文 開 發 重 點 是 著 重 於 Web Service 有 效 性 的 檢 測, 我 想 未 來 可 以 把 Juddi 的 功 能 作 為 更 完 善 的 開 發, 以 及 使 用 其 提 供 之 uddi4j 來 做 為 開 發 參 考 Web Service 的 完 全 自 動 化 檢 測 還 有 很 大 的 研 究 空 間, 如 何 自 動 判 斷 依 據 解 析 WSDL 文 件 出 來 的 Binding 檔 案 來 產 生 Web Service Test Program,WSDL 中 含 有 web service 各 個 function 的 叫 用 方 法 跟 存 取 參 數, 可 是 一 但 當 web service 所 提 供 的 功 能 越 複 雜, 能 夠 正 確 解 析 並 且 產 生 對 應 的 測 試 程 式 困 難 度 也 就 相 對 的 提 高, 目 前 驗 證 服 務 的 方 法 只 能 在 Linux shell 環 境 下 運 作, 若 是 想 在 微 軟 平 台 運 作 也 是 不 無 可 能, 撰 寫 一 些.bat 自 動 執 行 或 許 可 以 也 有 相 同 的 效 果 參 考 文 獻 [1] 林 弘 之, 2002, Web Service 實 作 - 使 用 SOAP ToolKit 與 Visaul Studio.NET, 文 魁 資 訊 [2] 戚 玉 樑, 彭 淑 芸, 賴 德 優, 張 琪 瑩, 2003, Web Service 探 索 與 應 用, 全 華 科 技 [3] Microsoft Corporation http://www.microsoft.com, IBM http://www.ibm.com [4] Shell Programming 333 個 應 用 範 例 技 巧 大 全 集 作 者. 中 橋 一 朗 出 版 社. 博 碩 文 化 [5] JAVA WebServices 實 務 程 式 設 計 作 者 李 昇 暾 詹 智 安 出 版 社. 旗 標 [6] 立 即 學 會 Dreamweaver 8 for JSP 夢 幻 咖 啡 香 作 者 林 建 弘 賴 慧 敏 出 版 社 上 奇 [7] PHP MYSQL 入 門 學 習 指 南 作 者 凱 文 瑞 克 出 版 社 旗 標 [8] Linux 實 戰 手 冊 入 門 管 理 架 站 作 者 施 威 銘 研 究 室 出 版 社 旗 標 [9] JavaTM 2 Platform, Standard Edition, v 1.4.2 API Specification [10] UDDI Version 2.04 API Specification UDDI Committee Specification, 19 July 2002 [11] The W3C Note on the Simple Object Access Protocol 1.1 submission. http://www.w3.org/tr/soap/ [12] Web Services Description Language (WSDL) Version 2.0 [13]Axis API http://ws.apache.org/axis/java/apidocs/index. html [14] Scott Short,2002, 建 構 XML WEB SERVICES (.NET 平 台 ), 文 魁 [15]OASIS JUDDI,http://www. JUDDI.org/ [16] OASIS UDDI http://www.uddi.org/ [17] 鄧 文 焯, http://www.iiiedu.org.tw/knowledge/knowled ge20021231_1.htm [18] Richard Ersek 及 Ken Jones, 13
http://www.microsoft.com/taiwan/technet/pro dtechnol/windows2000serv/technologies/iis/ deploy/depovg/compl.aspx [19]XML 台 灣 資 訊 網, http://www.xml.org.tw/function/fglossary1. asp?key=wsfl [20] 簡 仲 楷,2007.08, A Design and Implementation of the Function Improving of UDDI Server 致 謝 國 科 會 計 畫 編 號 : 95-2218-E-327-001 14