[Develop]Lab9-PublishWS

[Develop]Lab9-PublishWS

Lab9 、 Publish Web Service

這個範例,我們來介紹 將我們在WWF 拉好的流程變成一個叫用Web Service 的服務。這是一個很有彈性的作法,除了將我們拉好的

流程變成一個 Web 服務之外。也還有很重要的一點就是他所帶來的延展性!! 我們開發好的一個邏輯不可以讓 ASP.Net 網頁
或 各項微

軟家族的應用程式呼叫外;當他變成了一個Web Service 得時候,那整合性就不只微軟家族了。例如 Java 等這樣的應用程式都可以呼叫你用

WWF 所開發出來的流程了。使得應用程式可以很具延展性的跟別人做接合。


開啟一個新的WWF專案。

這個範例中我們要使用的是 [ 循序工作流程程式庫 ] 。檔案名稱我們命名為 [ Lab9_PulishWS ] 。

clip_image001

我們要新增一個介面到專案中,他是一份外界應用程式在呼叫這個WWF所發佈成的 Web Service 所需要的合約。也就是Web Service
裡面

服務的方法。 我們將這個介面命名為 [ IHelloWorldWS ]。

clip_image002

在介面中,我們定義一個方法,名稱叫做 [ method1 ] ,這個方法會回傳一個 字串。

clip_image003

接著我們在循序工作流程裡面拉出三個物件。分別是 [ webServiceInputActivity ] 、[ CodeActivity ]、
[ webServiceOutputActivity ] 。

[ webServiceInputActivity ] 、 [ webServiceOutputActivity ] 這兩個元件是一對的,作用分別是接收訊息與傳送訊息。然後我們在

程式編輯的地方撰寫 [ public string RequestMessage, ResponseMessage; ],很明顯的這兩個變數要拿來做傳入值跟傳出值用!!

而中間的 [ CodeActivity1] 就是要拿來當作這隻服務所謂我們處理的工作。

clip_image004

clip_image005


設定
webServiceInputActivity。

我們來設定第一個 [ webServiceInputActivity ] 元件。 首先要設定他為 [ IsActivating ] 為 true
。指定他為啟動元件。

clip_image006

clip_image007

在 [ InterfaceType] 屬性設定為 我們剛剛設定的那個介面,並且在 [ MethodName ]上設定我們指定的MethodName。

clip_image008

在 [ requestMessage ]屬性上指定我們建立的變數 [ RequestMessage ] 。

clip_image009

設定完後還是看到 [ webServiceInputActivity ] 元件有驚嘆號!! 滑鼠點過去會看到他告訴你遺漏了對應 [webServiceOutputActivity
] 的元件,剛剛

提過這兩個元件是一組的。

clip_image010


設定
webServiceOutputActivity。

接著來設定 [ webServiceOutputActivity ] 元件,這邊設定就比較簡單。首先在 [ InputActivityName
] 屬性上選擇他要對應的元件。這邊我們選擇

[ webServiceInputActivity ]。並且在 [ ReturnValue ] 的部份選擇 ResponseMessage。

clip_image011

clip_image012


設定
codeActivity。

這個元件執行的動作就是將 [ RequestMessage ]的變數前面加上一個 "HelloWorld"。

clip_image013

clip_image014

上面程式都撰寫完後~我們按下 [建置],運氣好的話就看到 "建置成功"~~^^

clip_image015


將流程發佈成
Web Service。

將剛剛轉寫好的流程發佈成 Web Service。 運氣好的話~就會直接看到右邊這個視窗。

clip_image016

clip_image017

在專案總管的地方我們看到發佈成Web 服務的專案。接著我們來測試這個專案。

clip_image018

按下在瀏覽器中瀏覽後,我們可以看到我們建立的Web Service。這個 Web Service 裡面有一個方法,叫做 method1,這是我們一開始定義的

介面,也就是後來Web 服務的方法。

clip_image019

我們來測試一下 Web Service。在對話框裡面輸入 Username 後按下 [叫用]。

clip_image020

測試Web Service 的結果所得到的XML檔案。

clip_image021


新增一個
ASP.Net 網頁專案來呼叫 WWF 的 Web Service。

選擇加入新網站來新增一個網頁專案!

clip_image022

我們命名為 [ Lab9_ASPNET_PublishWS ]。

clip_image023

在網頁專案中加入 [ 加入Web 參考 ]。

clip_image024

加入 web 參考的部分我們輸入 URL 位址,然後可以看到我們的WWF Web Service 。在 Web 參考名稱的部分我們輸入 [
Lab9_PublishWS ] 。

clip_image025

可以看到專案裡面被新增進來的 Web 服務。

clip_image026

接者我們在 Default.aspx 的網頁里拉出下列物件。

clip_image027

然後點選右邊的 button,進到程式編輯視窗去輸入下列程式碼。第一行很簡單的建立了Web服務的物件,在第二行我們送出我們輸入的名子,

並且把回傳值顯示在Label1的標籤上。撰完完畢我們就來測試執行結果!!

clip_image028

clip_image029

執行這個網頁專案,輸入我們的 Username 後按下 [呼叫Web Service] 的按鈕。

clip_image030

看到下面的結果了~~WWF Web Service 將我們傳入的姓名加了一個 "Hello World" 的字串了。

clip_image031