国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

使用 PowerDesigner 9.5 創(chuàng)建 Web 服務(wù)

2024-07-21 02:07:04
字體:
供稿:網(wǎng)友

使用 powerdesigner 9.5 創(chuàng)建 web 服務(wù)

 

sybase 公司powerdesigner 總設(shè)計(jì)師xiao wang撰稿

 

web 服務(wù)允許您以標(biāo)準(zhǔn)格式提供現(xiàn)有的或新增的功能,并且允許用戶和應(yīng)用程序從任何位置訪問它們。

powerdesigner 9.5 同時(shí)針對(duì) microsoft .net 和 java 引入了完善的 web 服務(wù)設(shè)計(jì)和生成機(jī)制。使用 powerdesigner 9.5,您可以專注于 web 服務(wù)的設(shè)計(jì),而將所有必需的生成、實(shí)現(xiàn)構(gòu)造的任務(wù)交給 powerdesigner 完成。

 
web 服務(wù)概述
web 服務(wù)是一種接口,它描述了在網(wǎng)絡(luò)上可通過 soap 消息進(jìn)行訪問的操作集合。

 

web 服務(wù)的接口和部署位置(可選) 由 wsdl 說明。wsdl 是一種聲明數(shù)據(jù)類型、消息、端口類型和端口(可選)的 xml 文檔。通過 wsdl,用戶可以知道應(yīng)該發(fā)送哪種格式的 soap 消息來調(diào)用 web 服務(wù)以及返回消息的格式為何。

 

為了能使用戶查找到所需的 web 服務(wù),服務(wù)提供者可能會(huì)在 uddi 注冊(cè)服務(wù)中發(fā)布 wsdl 文檔。這樣,用戶就可以使用 uddi 注冊(cè)服務(wù)來搜索 web 服務(wù)。

 

若要調(diào)用 web 服務(wù),用戶可以向部署 web 服務(wù)時(shí)所在的訪問點(diǎn) url 發(fā)送 soap 消息,或者使用可簡(jiǎn)化此調(diào)用過程的代理類。soap 消息也是 xml 文檔。

 
powerdesigner 的 web 服務(wù)功能
powerdesigner 9.5 允許您新建 web 服務(wù)組件、通過對(duì) wsdl 進(jìn)行反向工程來創(chuàng)建 web 服務(wù)組件、瀏覽 uddi 、搜索 wsdl、從 web 服務(wù)組件的定義生成 wsdl、生成 .net(c# 和 vb .net)的服務(wù)器端代碼、生成 .net 的客戶端代理、生成 java(jax-rpc 和 jaxm)的服務(wù)器端代碼以及生成 java 的客戶端代理。

 

為了設(shè)計(jì) web 服務(wù)組件,powerdesigner 使用了 uml 類圖、組件圖和部署圖。web 服務(wù)由組件圖的組件表示,而已部署的 web 服務(wù)則由部署圖的組件實(shí)例來表示。

 
創(chuàng)建 web 服務(wù)組件
創(chuàng)建 web 服務(wù)組件有五個(gè)步驟。首先是要?jiǎng)?chuàng)建面向?qū)ο竽P?(oom)。您可以選用以下語言中的任一種:c#、visual basic .net 或 java。在此模型上會(huì)自動(dòng)附加用于 wsdl 的擴(kuò)展模型定義 (xem)。xem 定義了 wsdl 的生成模板和擴(kuò)展屬性。

 

第二步是創(chuàng)建類。最好是先創(chuàng)建一個(gè)程序組 (package),然后再在此程序組下創(chuàng)建類。

 

第三步是使用 web 服務(wù)向?qū)?chuàng)建的類轉(zhuǎn)換成 web 服務(wù)組件。為此您可以右鍵單擊該類,然后選擇“創(chuàng)建 web 服務(wù)組件”命令,或在選中該類后選擇“工具>創(chuàng)建 web服務(wù)組件”命令。圖 1 顯示了一個(gè) web 服務(wù)向?qū)У氖纠eb 服務(wù)類型可以是接口或?qū)崿F(xiàn)。如果選擇“接口”,則表明您只希望定義此 web 組件并生成相應(yīng)的 wsdl。對(duì)于 .net,此組件類型為“標(biāo)準(zhǔn)”,其 web 服務(wù)將通過 .asmx 文件來實(shí)現(xiàn)。對(duì)于 java,此組件類型可能是“標(biāo)準(zhǔn)”、“服務(wù)程序”或“無狀態(tài)會(huì)話 bean”。這幾種 java 組件類型的實(shí)現(xiàn)方法分別是:“標(biāo)準(zhǔn)”類型使用 jax-rpc、“服務(wù)程序”類型使用 jaxm,而“無狀態(tài)會(huì)話 bean”類型將使用 j2ee (jsr109) web 服務(wù)規(guī)范。當(dāng)向?qū)ЫY(jié)束時(shí)會(huì)創(chuàng)建一個(gè)組件和類。圖 2 顯示了組件圖中的組件符號(hào)示例。

 



圖 1 web 服務(wù)向?qū)?br>
 



圖 2 組件符號(hào)

 

第四步是添加 web 方法。您需要新建一個(gè)操作 (operation)、打開該操作的屬性頁、單擊“web 方法”復(fù)選框、定義參數(shù)和返回類型以及編寫該操作的實(shí)現(xiàn)代碼。圖 3 顯示了 web 方法 getstockquote 的實(shí)現(xiàn)示例。

 



圖 3 web 方法 getstockquote 的實(shí)現(xiàn)示例

 

最后一步是對(duì) wsdl 生成進(jìn)行自定義。可以自定義參數(shù)和返回值的 wsdl 數(shù)據(jù)類型、操作的擴(kuò)展屬性以及組件的屬性和擴(kuò)展屬性。若要檢驗(yàn)生成的 wsdl,您可以打開組件屬性頁的 wsdl 選項(xiàng)卡。生成 wsdl 的任務(wù)可以交給 powerdesigner 完成,也可以由您自行定義(用戶定義)。如果 web 服務(wù)組件來源于對(duì) wsdl 的反向工程,原始的 wsdl 將得到保留。圖 4 顯示了一個(gè)生成的 wsdl 的示例。

 



圖 4 生成的 wsdl 的示例

 

您可以在類屬性頁的“預(yù)覽”選項(xiàng)卡中預(yù)覽生成的實(shí)現(xiàn)代碼。

 

您可以使用部署圖、節(jié)點(diǎn)和組件實(shí)例來仿建已經(jīng)部署的 web 服務(wù)組件。此外,還可以在“節(jié)點(diǎn)”中定義服務(wù)器的 url 以及在“組件實(shí)例”中定義服務(wù)的 url。

 
對(duì) wsdl 進(jìn)行反向工程
wsdl 可以僅定義 web 服務(wù)接口,也可以同時(shí)定義接口和訪問點(diǎn)的 url。web 服務(wù)接口可能被多個(gè)服務(wù)提供者用來提供相同的服務(wù),當(dāng)然,這些服務(wù)會(huì)具有不同的實(shí)現(xiàn)和訪問點(diǎn)。如果擁有 wsdl 文檔的文件路徑或 url,您就可以通過對(duì)它進(jìn)行反向工程來創(chuàng)建 web 服務(wù)組件,之后可以定義自己的實(shí)現(xiàn)方法或?qū)?chuàng)建的 web 服務(wù)組件保存在庫中供以后再次使用。您在查找感興趣的 wsdl 時(shí),可以使用 uddi 瀏覽器在 uddi 注冊(cè)服務(wù)中進(jìn)行搜索。

 

為了對(duì) wsdl 進(jìn)行反向工程,需要用 c#、vb .net 或 java 中的任意一種語言創(chuàng)建 oom。然后選擇“語言>導(dǎo)入 wsdl”命令并輸入 wsdl 文件的路徑或 url。進(jìn)行反向工程之后,會(huì)在組件圖中創(chuàng)建一個(gè)組件,同時(shí)在類圖中創(chuàng)建一個(gè)類。所創(chuàng)建的類將僅包含該 web 服務(wù)的操作信號(hào),若想實(shí)現(xiàn)該 web 服務(wù),還需要定義這些操作的實(shí)現(xiàn)代碼。

 
在 uddi 注冊(cè)服務(wù)中搜索 wsdl
如果希望搜索在 uddi 注冊(cè)服務(wù)中注冊(cè)的 wsdl,請(qǐng)打開“導(dǎo)入 wsdl”窗口,然后單擊“瀏覽 uddi”按鈕。通過“瀏覽 uddi”窗口(見圖 5),您可以選擇 uddi 運(yùn)營(yíng)商、搜索條件和搜索類型,并可以按實(shí)體名稱、服務(wù)名稱或 wsdl 名稱進(jìn)行搜索。此外,您還可以預(yù)覽找到的wsdl。

 



圖 5 “瀏覽 uddi”窗口

 
生成 .net 類型的 web 服務(wù)
對(duì)于 .net 服務(wù)器端代碼,powerdesigner 會(huì)生成一個(gè) .asmx 文件。這種 web 服務(wù)的實(shí)現(xiàn)類可以在上述的 .asmx 文件中生成,也可以在外部生成。此實(shí)現(xiàn)類所使用的語言可以是 c# 或者 vb .net。在類屬性頁的“預(yù)覽”選項(xiàng)卡中,可以預(yù)覽 .asmx 文件和相應(yīng)的實(shí)現(xiàn)類代碼。圖 6 顯示了 c# 語言的 .asmx 文件示例。

 



圖 6 c# 語言的.asmx 文件示例

 

powerdesigner 還可以生成客戶端代理類來簡(jiǎn)化 web 服務(wù)的調(diào)用。為生成客戶端代理類,powerdesigner 使用了 visual studio .net 附帶的 wsdl.exe 程序。

 

若要生成 wsdl、服務(wù)器端代碼和/或客戶端代理,請(qǐng)選擇“語言>生成 c# 代碼”或“語言>生成 vb .net 代碼”命令。如果要生成客戶端代理,可以在“任務(wù)”選項(xiàng)卡中選擇“生成 web 服務(wù)客戶端代理”選項(xiàng)。圖 7 顯示了可用的生成任務(wù)。如果這個(gè)類不是在 .asmx 文件內(nèi)部生成的,您將可以對(duì)這些 c# 代碼或 vb .net 代碼進(jìn)行編譯。不過,在編譯 c# 或 vb .net 文件時(shí),您必須定義 csc 或 vbc 變量來指示 csc.exe 或 vbc.exe 命令的位置。

 

在部署 web 服務(wù)時(shí),只需要將iis 目錄下的 .asmx 文件和相應(yīng)的類文件進(jìn)行復(fù)制:c:/inetpub/wwwroot/<程序組名>。其中,<程序組名> 是程序組的名稱。要測(cè)試此 web 服務(wù),可以在瀏覽器中輸入以下 url: http://<主機(jī)名>/<程序組名>/<服務(wù)名>.asmx

 



圖 7 web 服務(wù)的生成任務(wù)

 
生成 java 類型的 web 服務(wù)
如果 web 服務(wù)的實(shí)現(xiàn)類型為“標(biāo)準(zhǔn)”,powerdesigner 將使用 jax-rpc 來實(shí)現(xiàn)。如果實(shí)現(xiàn)類型為“服務(wù)程序”,powerdesigner 將使用 jaxm 來實(shí)現(xiàn)。如果實(shí)現(xiàn)類型為“無狀態(tài)會(huì)話 bean,則 powerdesigner 將使用 j2ee (jsr109) web 服務(wù)規(guī)范來實(shí)現(xiàn)。jsr109 尚未正式頒布。

 

jax-rpc 定義了 rpc 類型的 web 服務(wù)調(diào)用。雖然它易于開發(fā)和使用,但為了避免復(fù)雜的對(duì)象/xml 映射,它只能局限于簡(jiǎn)單的消息格式。而基于 jaxm 的 web 服務(wù)組件顯然更具優(yōu)越性,它允許您靈活地處理復(fù)雜的消息結(jié)構(gòu)。

 

若要使用 jax-rpc 或 jaxm,您需要安裝 java web services developer pack (jwsdp)。此程序包可從 sun 公司的網(wǎng)站下載。在部署 jax-rpc 或 jaxm 類型的 web 服務(wù)組件時(shí),需要有支持 jax-rpc 或 jaxm 的服務(wù)器。支持 jax-rpc 或 jaxm 的 apache tomcat 附帶提供了 jwsdp。

 

至于基于 jax-rpc 的 web 服務(wù)組件,您只需實(shí)現(xiàn)其 web 方法的代碼。若要生成 wsdl、服務(wù)器端代碼和/或客戶端代理,可選擇“語言>生成 java 代碼”,然后選擇“使用 xrpcc 工具生成 wsdl(服務(wù)器端)”和/或“使用 xrpcc 工具生成 web 服務(wù)的代理代碼”命令(見圖 8)。xrpcc 命令是 jwsdp 的一個(gè)工具。它可以生成 jax-rpc 類型的服務(wù)器端代碼或客戶端代理。在部署生成的 web 服務(wù)時(shí),需要?jiǎng)?chuàng)建一個(gè)包含所有生成文件的 .war 文件,并將此 .war 文件部署在支持 jax-rpc 的服務(wù)器上,比如說 apache tomcat。

 



圖 8 jax-rpc 生成任務(wù)

 

對(duì)基于 jaxm 的 web 服務(wù)組件而言,您需要實(shí)現(xiàn)其 onmessage 操作。onmessage 操作將按照在 wsdl 中的指示,接收并處理輸入的 soap 消息并構(gòu)建返回消息,以及將此消息返回。要生成 wsdl 和 jaxm 類型的 web 服務(wù),請(qǐng)選擇“語言>生成 java 代碼”命令,然后選擇“構(gòu)建 web 組件,創(chuàng)建 web 應(yīng)用程序 war”命令(見圖 9)。該命令會(huì)對(duì) jaxm 服務(wù)程序代碼進(jìn)行編譯并創(chuàng)建 war 文件。要部署此 jaxm 服務(wù)程序,您可以將上述 war 文件部署在支持 jaxm 的服務(wù)器上,比如說 apache tomcat。

 



圖 9 jaxm 生成任務(wù)

 

至于基于無狀態(tài)會(huì)話 bean 的 web 服務(wù)組件,由于 jsr109 規(guī)范尚未正式頒布,因此目前還不能使用。
下一步要增強(qiáng)的功能
j2ee (jsr109) web 服務(wù)規(guī)范不久將面世,供人們使用。通過它,您可以將無狀態(tài)會(huì)話 bean 用作 web 服務(wù)實(shí)現(xiàn)的利器。它可以讓現(xiàn)有功能以 web 服務(wù)的新面目出現(xiàn),同時(shí)也可以新建 web 服務(wù)。powerdesigner 9.5 附帶提供了基于早期jsr109 規(guī)范的版本,該版本尚待進(jìn)一步的認(rèn)證。等該規(guī)范正式頒布后,我們將提供維護(hù)版本以實(shí)現(xiàn)對(duì)它的完全支持。

 

powerdesigner 的新版本還將支持 web 服務(wù)的綜合標(biāo)準(zhǔn)。

 
結(jié)論
powerdesigner 9.5 簡(jiǎn)化了 web 服務(wù)的設(shè)計(jì)和生成過程。只要懂得如何創(chuàng)建類和方法,就能知道如何創(chuàng)建 web 服務(wù)!您可以使用 powerdesigner 設(shè)計(jì)、創(chuàng)建 web 服務(wù),以及對(duì)它進(jìn)行反向工程和為其創(chuàng)建文檔。如果希望重復(fù)使用這些 web 組件,您可以創(chuàng)建一個(gè) web 服務(wù)組件庫,并使用版本庫 (repository) 來管理不同版本的 web 組件。

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潮安县| 金塔县| 遵义县| 交城县| 夹江县| 鲁山县| 临颍县| 分宜县| 五台县| 西安市| 哈密市| 鄂托克前旗| 大荔县| 沙湾县| 彭阳县| 革吉县| 牟定县| 宜春市| 胶南市| 永春县| 葫芦岛市| 佛学| 新干县| 五莲县| 文成县| 长顺县| 丰镇市| 陇川县| 云龙县| 牙克石市| 伽师县| 绍兴市| 四平市| 广灵县| 阳曲县| 牟定县| 金湖县| 罗甸县| 伊宁市| 象州县| 清涧县|