<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一路拾遺
    Collect By Finding All The Way ......
    posts - 81,comments - 41,trackbacks - 0

    OWL-S可以用來描述Web服務,這個帖子將介紹一個非常簡單的例子,也許對理解Web服務的組裝有些作用。這個服務是對已有Web服務進行組裝和執(zhí)行,所以你并不需要發(fā)布自己的Web服務。你需要安裝ProtegeOWL-S Editor插件,我用的版本是Protege 3.2.1 beta,后者是OWL-S Editor build 23。

    所用的Web服務在http://www.bs-byg.dk/hashclass.wsdl,它包含兩個方法:HashString和CheckHash,前者用指定編碼方式(MD5、SHA1等等)對指定字符串編碼,后者根據(jù)指定編碼方式檢查一個字符串(HashString)是否是另一個字符串(OriginString)的編碼結(jié)果。我們將把這兩個方法組裝成一個服務,對輸入的編碼方式和待編碼字符串先進行編碼,然后檢查編碼的結(jié)果是否正確,如果正確返回true,否則返回false。下面是組裝步驟,完整的工程在這里下載

    1、確認你的OWL-S Editor已經(jīng)安裝到Protege里,啟動Protege,新建一個owl文件類型的工程,在菜單project->config里勾選上owls選項,按確定后Protege的主界面會多出一個OWL-S Editor頁。

    2、轉(zhuǎn)到OWL-S Editor頁,按左上角的WSDL按鈕,在彈出的對話框里輸入Web服務的地址http://www.bs-byg.dk/hashclass.wsdl,然后按回車,過一會兒在對話框里會顯示出這個Web服務的信息,左邊是Operations列表。

    import-wsdl.gif
    圖1 用來導入WSDL的對話框

    3、因為每次只能import一個Operation,所以先選擇HashString,然后按右下方的Import按鈕,這時系統(tǒng)會提示要把生成的owls文件(擴展名為.owl)保存在一個位置,你可以選擇任何位置。

    4、使用同樣的方法把CheckHash方法也導入進來,這樣我們就有了兩個可用于組裝的Web服務了。如果你愿意的話,可以單獨執(zhí)行看看,方法是選擇一個Service,然后按綠色的執(zhí)行按鈕。

    hash-services.gif
    圖2 導入的兩個服務

    5、現(xiàn)在開始組裝它們。為此我們新建一個Service實例(按Create Service按鈕)、一個Profile實例、一個CompositeProcess實例和一個WSDLGrounding實例,分別命名為myservice、myprofile、myprocess和mygrounding好了。

    6、接下來把它們連接起來,首先選中myservice,把它的describedBy屬性置為myprocess,presents屬性置為myprofile,supports屬性置為mygrounding。

    7、現(xiàn)在對myprocess進行編輯,OWL-S Editor提供了一個可視化的編輯界面(Visual Editor),利用它可以很方便的定義CompositeProcess的各個步驟。選中myprocess,右邊切換到Visual Editor,這里有一些粉紅色的按鈕用來定制流程。我們首先創(chuàng)建一個Sequence(表示按順序執(zhí)行),然后選中這個Sequence,創(chuàng)建兩個Perform和一個Produce,每個Perform代表調(diào)用一個Web服務,而Produce的作用是在最后得到返回值。這時右邊的圖形應該像下面這樣,因為我們尚未對Perform和Produce進行定制。

    process1.gif
    圖3 包含三個有用節(jié)點的process圖

    8、在圖形的Perform/Produce節(jié)點上點一下就可以修改它的屬性,先來修改第一個。點一下第一個矩形節(jié)點(第一個Perform),在對話框里把process屬性設置為wi1:HashStringProcess(注意:如果導入WSDL時改變了前綴,這里就不是wi1),為了方便閱讀,把Name屬性改為hashPerform。類似的,第二個矩形節(jié)點的process屬性應該是wi2:CheckHashProcess,Name則改為checkPerform;對于唯一的Produce節(jié)點,改名為produce。現(xiàn)在右邊的圖如下所示。

    process2.gif
    圖4 改名后的process圖

    9、現(xiàn)在從Visual Editor切換到Properties頁,在這里為myprocess定義輸入和輸出參數(shù)。它的輸入應該是wi1:HashType和wi1:Str,而輸出應該是wi2:CheckHashResult,也就是說,對于我們組裝出來的Web服務來說,輸入是編碼類型和待編碼字符串,而輸出是驗證結(jié)果。

    10、上面我們定義了myprocess擁有的參數(shù),現(xiàn)在就要用到它們了。切換回Visual Editor,在樹型列表里選則第一個Perform(hashPerform),把右邊切換到Properties頁,現(xiàn)在ToParameter屬性里還是空白,我們要把myprocess的輸入映射到這個Perform,所以按添加按鈕把兩個輸入?yún)?shù)(wi1:HashType和wi1:  Str)加到ToParameter里。選中它們中的一個,可以看到右邊有BindingType選項,缺省為valueSource這一項,就用它即可,在下面的FromPerform下拉框里只有一個選項TheParentPerform,選中它。在最下面的FromParameter里選擇和你選擇的ToParameter項一樣的那個選項(wi1:HashType->wi1:HashType,wi1:Str->wi1:Str)。

    toparameter.gif
    圖5 通過參數(shù)傳遞產(chǎn)生“數(shù)據(jù)流”

    11、對于checkPerform,它有三個輸入?yún)?shù),我們希望HashType和hashPerform具有同樣的值,所以它的設置和上一步里對HashType的設置一樣;OriginalString的設置和上一步的Str一樣;HashString屬性是上一步得到的結(jié)果,所以FromPerform屬性應該是hashPerform,F(xiàn)romParameter屬性則是wi1:HashStringResult。

    12、對produce的設置很簡單,在ToParameter屬性里加入我們要的結(jié)果wi2:CheckHashResult,F(xiàn)romPerform選checkPerform,F(xiàn)romParameter選wi2:CheckHashResult。現(xiàn)在,myprocess對應的process圖如下所示。

    process3.gif
    圖6 可以從圖中看到服務的結(jié)構(gòu)

    13、對myprocess的設置到此就結(jié)束了,最困難的部分完成了,剩下的工作都很簡單和顯而易見。選中mygrounding,在它的hasAtomicProcessGrounding屬性里加上wi1:HashStringAtomicProcessGrounding和wi2:CheckHashAtomicProcessGrounding。

    14、現(xiàn)在myservice已經(jīng)可以執(zhí)行了(myprofile里還可以增加一些信息用來描述這個服務)。現(xiàn)在選中myservice,按下執(zhí)行按鈕,在彈出的對話框里HashType框填MD5,Str框填test(任意字符串都可以),然后按Execute按鈕就會看到結(jié)果,當然,這個服務不論你輸入什么字符串都會得到true值,原因不用我說了吧。

    execute.gif
    圖7 執(zhí)行組裝后的服務
    【轉(zhuǎn)自】http://www.cnblogs.com/bjzhanghao/archive/2005/06/12/173302.html(稍作改動)

    posted on 2008-08-05 17:30 胖胖泡泡 閱讀(663) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 2020因为爱你带字幕免费观看全集| 国产亚洲精品VA片在线播放| 一级人做人a爰免费视频| 亚洲?V乱码久久精品蜜桃| 亚洲av色香蕉一区二区三区蜜桃| 最近最新的免费中文字幕| 亚洲欧洲日产国码久在线| 日韩午夜免费视频| 全黄A免费一级毛片| 怡红院亚洲怡红院首页| 成人电影在线免费观看| 亚洲免费精彩视频在线观看| 91福利免费视频| 亚洲国产综合精品中文第一| 国产大片91精品免费看3 | 亚洲人成电影院在线观看| 18禁超污无遮挡无码免费网站国产 | 亚洲AV区无码字幕中文色| 99精品国产成人a∨免费看| 亚洲av无码国产综合专区| 色www永久免费视频| caoporm碰最新免费公开视频| 亚洲综合色自拍一区| 91精品国产免费久久国语蜜臀 | 亚洲第一区视频在线观看| 免费观看成人毛片a片2008| 午夜亚洲国产理论片二级港台二级| 免费乱理伦在线播放| 久草免费手机视频| 精品亚洲国产成人| 亚洲AV无码一区二三区| 特级无码毛片免费视频尤物| 亚洲自偷自偷在线成人网站传媒| 免费一级e一片在线播放| 久久一区二区三区免费播放| 久久亚洲精品国产亚洲老地址| 四虎免费久久影院| 日韩精品无码免费一区二区三区| 亚洲高清视频在线| 亚洲情综合五月天| 青青视频观看免费99|