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

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

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

    隨筆-128  評論-55  文章-5  trackbacks-0
      WS-ResourceLifetime協(xié)議

    WS-ResourceLifetime協(xié)議定義了WS-Resource的資源銷毀機(jī)制,其中包括資源的立即銷毀和資源的調(diào)度銷毀。立即銷毀使得客戶可以顯示地要求對特定的WS-Resource進(jìn)行銷毀,從而釋放該WS-Resource占用的系統(tǒng)資源。調(diào)度銷毀則允許客戶通過設(shè)定某個WS-Resource的預(yù)定銷毀時間(Termination Time),由引擎負(fù)責(zé)在其生命周期結(jié)束時對其進(jìn)行銷毀。在每一種情況都要明白,只有 WS-Resource 有狀態(tài)資源和 Web 服務(wù)的關(guān)聯(lián)—被銷毀。資源本身和 Web 服務(wù)都沒有受到影響

    另外值得注意的是此協(xié)議并沒有定義WS-Resource的創(chuàng)建方式。

    1.1.1.1    創(chuàng)建WS-Resource

    我們可以發(fā)送“create”消息:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

        <SOAP-ENV:Header/>

        <SOAP-ENV:Body>

            <createSatellite  xmlns="http://example.com/satellite"/>

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

    結(jié)果是一個 SOAP 消息,其中包含對操作創(chuàng)建的 WS-Resource 的端點(diǎn)引用

    <SOAP-ENV:Envelope  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

        <SOAP-ENV:Header/>

        <SOAP-ENV:Body>

           <wsa:EndpointReference  xmlns:wsa="http://www.w3.org/2005/02/addressing"

                 xmlns:sat="http://example.org/satelliteSystem">

               <wsa:Address> http://example.com/satellite</wsa:Address>

               <wsa:ReferenceProperties>

                   <sat:SatelliteId>SAT9928</sat:SatelliteId>

               </wsa:ReferenceProperties>

           </wsa:EndpointReference>

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

    該端點(diǎn)引用惟一地識別正在談?wù)摰?/span> WS-Resource,所以我們可以使用它來銷毀該 WS-Resource

    1.1.1.2    立即銷毀WS-Resource

    當(dāng)我們準(zhǔn)備銷毀 WS-Resource 時,可以使用它的端點(diǎn)引用來創(chuàng)建 SOAP 請求:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

          xmlns:sat="http://example.org/satelliteSystem"

          xmlns:wsa="http://www.w3.org/2005/02/addressing"

          xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">

        <SOAP-ENV:Header>

           <wsa:Action>

               http://docs.oasis-open.org/wsrf/2004/06/WS-ResourceLifetime/Destroy

           </wsa:Action>

           <wsa:To SOAP-ENV:mustUnderstand="1">

                http://example.com/satellite

           </wsa:To>

           <sat:SatelliteId>SAT9928</sat:SatelliteId>

        </SOAP-ENV:Header>

        <SOAP-ENV:Body>

           <wsrl:Destroy />

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

     

    假設(shè)一切正常,我們會收到確認(rèn)消息:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

           xmlns:sat="http://example.org/satelliteSystem"

           xmlns:wsa="http://www.w3.org/2005/02/addressing"

         xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">

        <SOAP-ENV:Header>

           <wsa:Action>

                http://docs.oasis-open.org/wsrf/2004/06/WS-ResourceLifetime/DestroyResponse

           </wsa:Action>

           <wsa:To SOAP-ENV:mustUnderstand="1">

                http://example.com/myClient

           </wsa:To>

        </SOAP-ENV:Header>

        <SOAP-ENV:Body>

           <wsrl:DestroyResponse />

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

    這似乎不怎么像確認(rèn)消息,但是只要收到它,就可以知道一切正常。如果不是一切正常,就會得到 WSRF 故障:WS-ResourceLifetime 中所討論的一條 fault 消息。如果在 WS-Resource 銷毀后還試圖訪問它,也會得到故障消息。

    我們也可以安排 WS-Resource 在以后銷毀。

    1.1.1.3    調(diào)度銷毀WS-Resource

    我們并不總是想要當(dāng)場銷毀 WS-Resource。在有些情況下,我們只是想要保持 WS-Resource 活躍一段特定的時間,然后再讓它銷毀。為了做到這一點(diǎn),我們需要給 WS-Resource 附加一個 TerminationTime 屬性,這意味著將它添加到資源屬性文檔。對于我們的人造衛(wèi)星,意味著類似下面的這些東西:

    <satProp:GenericSatelliteProperties

        xmlns:satProp="http://example.com/satellite"

        xmlns:counterProp="http://example.com/satellite/CounterSatelliteProperties"

        xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">

       <satProp:latitude>30.3</satProp:latitude>

       <satProp:longitude>223.2</satProp:latitude>

       <satProp:altitude>47700</satProp:altitude>

       <satProp:pitch>49</satProp:pitch>

       <satProp:yaw>0</satProp:yaw>

       <satProp:roll>32</satProp:roll>

       <satProp:focalLength>

           21999992

       </satProp:focalLength>

       <satProp:currentView>

           http://example.com/satellite/2239992333.zip

       </satProp:currentView>

       <counterProp:currentCount>

           92828

       </counterProp:currentCount>

       <wsrl:TerminationTime>

           2005-12-31T12:00:00

       </wsrl:TerminationTime>

       <wsrl:CurrentTime>2005-2-15T03:24:57</CurrentTime>

    </satProp:GenericSatelliteProperties>

    如果像本例中一樣,沒有指定時區(qū),就會假設(shè)是格林威治標(biāo)準(zhǔn)時間。

    注意,除了 TerminationTime,我們還添加了 CurrentTime。該屬性使我們不必同步時鐘,下面您就會看到。

     

    獲得 CurrentTime TerminationTime

    由于不同系統(tǒng)上的客戶機(jī),因而潛在地存在時鐘同步的嚴(yán)重問題。例如,假設(shè)我們想要指定剛才創(chuàng)建的人造衛(wèi)星 WS-Resource 應(yīng)該在 4 小時后終止。選擇一個相對于客戶機(jī)的時間將會成為問題,因?yàn)樵陬A(yù)定銷毀情況下,實(shí)際上是由服務(wù)器銷毀引用的。

    幸運(yùn)的是,WS-Resource 帶有自己的“當(dāng)前時間”。因?yàn)樗琴Y源屬性文檔的一部分,所以我們可以像請求任何其他屬性一樣請求它:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

          xmlns:sat="http://example.org/satelliteSystem"

          xmlns:wsa="http://www.w3.org/2005/02/addressing"

          xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"

          xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">

        <SOAP-ENV:Header>

           <wsa:Action>

              http://docs.oasis-open.org/wsrf/2004/06/WS-ResourceProperties/GetMultipleResourceProperties

           </wsa:Action>

           <wsa:To SOAP-ENV:mustUnderstand="1">

                http://example.com/satellite

           </wsa:To>

           <sat:SatelliteId>SAT9928</sat:SatelliteId>

        </SOAP-ENV:Header>

        <SOAP-ENV:Body>

           <wsrp:GetMultipleResourceProperties>

              <wsrp:ResourceProperty>wsrl:CurrentTime</wsrp:ResourceProperty>

              <wsrp:ResourceProperty>wsrl:TerminationTime</wsrp:ResourceProperty>

           </wsrp:GetMultipleResourceProperties>

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

     

    在本例中,我們請求了 CurrentTime TerminationTime,所以響應(yīng)中包含了它們倆:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

           xmlns:sat="http://example.org/satelliteSystem"

           xmlns:wsa="http://www.w3.org/2005/02/addressing"

          xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"

          xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">

        <SOAP-ENV:Header>

           <wsa:Action> http://docs.oasis-open.org/wsrf/2004/06/WS-Resour

    ceProperties/GetMutlipleResourcePropertiesResponse

           </wsa:Action>

           <wsa:To SOAP-ENV:mustUnderstand="1">

                http://example.com/myClient

           </wsa:To>

        </SOAP-ENV:Header>

        <SOAP-ENV:Body>

           <wsrp:GetMultipleResourcePropertiesResponse>

              <wsrl:CurrentTime>2005-2-15T03:24:57</wsrl:CurrentTime>

              <wsrl:TerminationTime>2005-2-15T03:30:00</wsrl:TerminationTime>

           </wsrp:GetMultipleResourcePropertiesResponse>

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

     

    在應(yīng)用程序中,然后我們可以使用 CurrentTime 來確定和設(shè)置新的 TerminationTime

    注意,盡管我們可以像請求任何其他資源屬性一樣請求 CurrentTime TerminationTime,但是不能像設(shè)置任何其他資源屬性一樣設(shè)置它們。CurrentTime 是只讀的,而 TerminationTime 必須使用我們下面將會看到的消息來設(shè)置

     

    設(shè)置新的 TerminationTime

    一旦為 TerminationTime 確定了適當(dāng)?shù)闹担覀兙涂梢园l(fā)送 SetTerminationTime 消息了:

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

          xmlns:sat="http://example.org/satelliteSystem"

          xmlns:wsa="http://www.w3.org/2005/02/addressing"

          xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"

          xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">

        <SOAP-ENV:Header>

           <wsa:Action>

               http://docs.oasis-open.org/wsrf/2004/06/WS-ResourceLifetime/SetTerminationTime

           </wsa:Action>

           <wsa:To SOAP-ENV:mustUnderstand="1">

                http://example.com/satellite

           </wsa:To>

           <sat:SatelliteId>SAT9928</sat:SatelliteId>

        </SOAP-ENV:Header>

        <SOAP-ENV:Body>

           <wsrl:SetTerminationTime>

              <wsrl:RequestedTerminationTime>

                     2005-2-15T07:24:00

              </wsrl:RequestedTerminationTime>

           </wsrl:SetTerminationTime>

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

    注意,我們不是通過直接操縱 TerminationTime 屬性來設(shè)置時間的。這是因?yàn)槲覀冃枰到y(tǒng)實(shí)施它自己的任何一個時間相關(guān)規(guī)則,比如,不縮短資源的生存期,或者不擴(kuò)展它超過某個特定的點(diǎn)

    響應(yīng)消息包含新的 TerminationTime CurrentTime

    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

           xmlns:sat="http://example.org/satelliteSystem"

           xmlns:wsa="http://www.w3.org/2005/02/addressing"

         xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"

         xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd">

        <SOAP-ENV:Header>

           <wsa:Action>

               http://docs.oasis-open.org/wsrf/2004/06/WS-ResourceLifetime/SetTerminationTimeResponse

           </wsa:Action>

           <wsa:To SOAP-ENV:mustUnderstand="1">

                http://example.com/myClient

           </wsa:To>

        </SOAP-ENV:Header>

        <SOAP-ENV:Body>

           <wsrl:SetTerminationTimeResponse>

              <wsrl:NewTerminationTime>2005-2-15T07:24:00</wsrl:NewTerminationTime>

              <wsrl:CurrentTime>2005-2-15T03:25:08</wsrl:CurrentTime>

           </wsrl:SetTerminationTimeResponse>

        </SOAP-ENV:Body>

    </SOAP-ENV:Envelope>

    除非應(yīng)用程序本身具有設(shè)置時間的特定規(guī)則,否則沒有任何特殊的約束。您甚至可以將 TerminationTime 設(shè)置為過去的值,這與發(fā)送 Destroy 消息的效果是一樣的。

     



    Author: orangelizq
    email: orangelizq@163.com

    歡迎大家訪問我的個人網(wǎng)站 萌萌的IT人
    posted on 2009-07-19 15:45 桔子汁 閱讀(342) 評論(0)  編輯  收藏 所屬分類: Web Service
    主站蜘蛛池模板: 免费一级国产生活片| 亚洲AV无码乱码麻豆精品国产| 亚洲丶国产丶欧美一区二区三区| 免费av片在线观看网站| 免费一级毛片一级毛片aa| 亚洲免费在线视频观看| 中国videos性高清免费| 免费人成激情视频| 中文日韩亚洲欧美制服| 在线免费观看国产| 亚洲国产精品无码久久久不卡 | 午夜免费啪视频在线观看| 亚洲电影日韩精品 | 久久国产乱子伦精品免费看| 内射无码专区久久亚洲| 亚洲一区二区三区丝袜| 亚洲成人免费网址| 久久久无码精品亚洲日韩蜜桃| 无遮挡国产高潮视频免费观看| 蜜臀91精品国产免费观看| 亚洲午夜成激人情在线影院| 一区二区三区四区免费视频| 亚洲人成色777777在线观看| 七次郎成人免费线路视频| 男男gvh肉在线观看免费| 久久经典免费视频| 亚洲最新在线视频| 99精品一区二区免费视频| 久久亚洲精品中文字幕三区| 丁香花在线观看免费观看图片 | 男人天堂免费视频| 国产亚洲色视频在线| 四虎国产精品成人免费久久| 可以免费观看一级毛片黄a | 亚洲免费在线播放| 亚洲AV日韩AV永久无码免下载 | 亚洲av片不卡无码久久| 91精品免费在线观看| 337p日本欧洲亚洲大胆精品555588| 麻豆精品不卡国产免费看| 精品国产_亚洲人成在线高清 |