行 政 院 國 家 科 學 委 員 會 補 助 專 題 研 究 計 畫 成 果 報 告 期 中 進 度 報 告 Web Service UDDI 系 統 實 作 The Implementation of UDDI System for Web Service 計 畫 類 別 : 個 別 型 計 畫



Similar documents
final

路演公告.PDF

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

epub 79-1

untitled

Yih-Chuan Lin Tsung-Han Wu Hsin-Te Wu Hsiao-Hui Hsu Department of Computer Science and Information Engineering Shu-Te University

untitled

软件概述

2 SGML, XML Document Traditional WYSIWYG Document Content Presentation Content Presentation Structure Structure? XML/SGML 3 2 SGML SGML Standard Gener

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

ArcGIS Sever.NET ArcGIS Server Web JAVA ArcGIS Server Web

<4D F736F F D2031A3AD4A617661BCBCCAF5CAC6CDB7D5FDBEA22E646F63>

epub 61-2

TopTest_Adminstrator.doc

LAMP system and relative tools like SNMP, Expect, Nmap, etc. to build a cross- platform, lo

RunPC2_.doc

% ~ AAA

ASP 電子商務網頁設計

UDC The Design and Implementation of a Specialized Search Engine Based on Robot Technology 厦门大学博硕士论文摘要库

目次 

Microsoft PowerPoint - ch6 [相容模式]

北京北信源软件股份有限公司招股书(申报稿)

PowerPoint Presentation

ARIS Design Platform

epub83-1

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

( )

XML XML XMPP XML XML Schema XML XML,,, XML,

温州市政府分散采购

SiteView技术白皮书

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

Microsoft PowerPoint ARIS_Platform_en.ppt

untitled

FAQ -PowerDesigner9.5.DOC

目 录 目 录 平 台 概 述 技 术 架 构 技 术 特 点 基 于 统 一 平 台 的 多 产 品 线 支 撑 先 进 性 安 全 性 开 放 性 高 性 能 和

IBM Rational ClearQuest Client for Eclipse 1/ IBM Rational ClearQuest Client for Ecl

产品手册: CA GEN r8

分 类 号 密 级 UDC 注 1 学 位 论 文 基 于 身 份 信 息 的 云 聚 合 技 术 研 究 ( 题 名 和 副 题 名 ) 边 汤 贵 ( 作 者 姓 名 ) 指 导 教 师 唐 雪 飞 副 教 授 电 子 科 技 大 学 成 都 ( 姓 名 职 称 单 位 名 称 ) 申 请 学

(Geographic data or geodata ) 30 (Buelher, K and L. Mckee1996) (Open GIS Consortium OGC) OGC GIS Open GIS OGC (Geography Markup Langu

<4D F736F F D20B9FABCD2BBFAB9D8B0ECB9ABBDA8D6FEBACDB4F3D0CDB9ABB9B2BDA8D6FEC4DCBAC4BCE0B2E2CFB5CDB3C8EDBCFEBFAAB7A2D6B8B5BCCBB5C3F7CAE92E646F63>

128 ( ) ( ) [ 1 ] [2] [3] (1) (2) (3) [1] [2] [3] 10 2 ( ) (1997.6) ( ) 64

untitled

ebook215-5

A9RF716.tmp

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

LiveBOS产品白皮书

1. 前 言 在 現 代 的 工 作 環 境 必 須 要 有 網 路, 網 路 環 境 無 所 不 在, 而 求 職 者 必 須 具 備 網 路 方 面 的 專 業, 才 能 在 未 來 的 職 場 上 保 持 高 度 的 競 爭 優 勢 Cisco 網 路 環 境 幾 乎 涵 蓋 了 全 球 主

Microsoft Word - template.doc

Chapter 2

<4D F736F F F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

XXXXXXXX

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

untitled

Microsoft Word - Functional_Notes_3.90_CN.doc

ebook204-2

數位圖書館/博物館相關標準 2

臺銀人壽「98年九至十一職等人員甄試」

第四章-個案分析.doc

豐佳燕.PDF

Java 1 Java String Date

Microsoft Word - WebGoat用户指南-beta2.doc

LI Genping.ppt

附件2

Learning Java

Microsoft Word - YDB Vehicle Telematics Service Requirement and General Framework

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

Value Chain ~ (E-Business RD / Pre-Sales / Consultant) APS, Advanc

XML SOAP DOM B2B B/S B2B B2B XML SOAP

自动化接口

Windows XP

f2.eps

信息

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM


1 目 錄 1. 簡 介 一 般 甄 試 程 序 第 一 階 段 的 準 備 第 二 階 段 的 準 備 每 間 學 校 的 面 試 方 式 各 程 序 我 的 做 法 心 得 及 筆 記 結 論..

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

<4D F736F F D20B1A6BCA6CAD0C7F8D3F2CEC0C9FAD0C5CFA2C6BDCCA8BBA5C1AABBA5CDA8CAB5CAA9B9E6B7B6>


2 Java 语 言 程 序 设 计 教 程 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

创业板投资风险提示:本次股票发行后拟在创业板市场上市,该市场具有较高的投资风险

目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇 业 务 流 程 管 理 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX BPMX3 是 什 么 为 什 么 要 优 先 采 用 BPMX

Network Bandwidth Applications MATE Applications Applications On Demand Calendaring Load Balancer Live Archive Design Northbound Service,Netwo

Mechanical Science and Technology for Aerospace Engineering October Vol No. 10 Web SaaS B /S Web2. 0 Web2. 0 TP315 A

jsp

ebook 185-6

目 录 1. 前 言 为 什 么 要 用 ESB 技 术 发 展 业 务 需 求 IT 需 求 IT 与 业 务 一 致 性 要 求 TongIntegrator ESB v5 简 介..

第一章 章标题-F2 上空24,下空24

NT 4

PowerPoint 簡報

05 01 X Window X Window Linux Linux X Window X Window Webmin Web Linux Linux X Window X Window Notebook PC X Window X Window module Linux Linux kernel

13 A DSS B DSS C DSS D DSS A. B. C. CPU D. 15 A B Cache C Cache D L0 L1 L2 Cache 16 SMP A B. C D 17 A B. C D A B - C - D

ebook70-13

(DMO) 1 1 Microsoft Windows SQL Server 2005 SQL Server Analysis ServicesNotification Services SQL Server 8 SQL Server IP SQL Server 2005 SQL Server 20

目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9

Olav Lundström MicroSCADA Pro Marketing & Sales 2005 ABB - 1-1MRS755673

無障礙網頁開發規範二版(草案)

小论文草稿2_邓瀚

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

C6_ppt.PDF

Transcription:

行 精 類 行 年 年 行 立 參 參 林 逸 李 理 年

行 政 院 國 家 科 學 委 員 會 補 助 專 題 研 究 計 畫 成 果 報 告 期 中 進 度 報 告 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