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

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

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

    posts - 66,  comments - 11,  trackbacks - 0
        Web服務是構建B2B應用最為重要的利器之一,使用它能夠構建、集成大型的系統。這一切都是通過發送XML消息給已定義的模塊化接口完成的。借助于無狀態會話Bean能夠構建Web服務。為實現Java客戶對Web服務的訪問,需要使用到JAX-RPC.Web服務是構建SOA的一種方式。SOA是架構方法,它能夠將各種異構應用集成起來,并組成更大的分布式應用,最后通過服務接口的形式將整個應用支撐起來。
        服務提供者創建抽象服務定義,并將它發布到服務注冊器中。對于WEB服務而言,服務定義是通過WSDL文件給出的;服務注冊器需要遵循UDDI標準。服務請求者可以使用一套查詢機制從服務注冊器中查找到WSDL文件,如果找到合適的服務定義,請求者將綁定到服務提供者上。
        服務接口類似于對象或EJB接口。但是對于WEB服務而言,服務接口更為靈活。比如服務實現和客戶處于松耦合的關系,而這在其他EJB應用或分布式應用中是實現不了的。這種松耦合使得客戶和服務實現能夠運行在不同平臺上,比如Microsoft.NET客戶能夠訪問到J2EE應用服務器中所運行的服務。另外,相比Java對象而言,Web服務實體的粒度更粗。
        通過標準化接口,能夠加強SOA的模塊化;通過松耦合,能夠提高SOA的靈活性;通過XML,能夠增強SOA擴展性。在B2B場合,這些都是很重要的因素。WEB服務能夠在那些使用了多種異構平臺的企業應用中大顯身手。所有的WEB服務都是構建在XML和Internet協議上的。EJB只能夠采用Java開發。如果使用其他語言開發應用,互操作如何實現?
        組成WEB服務的事實標準可以通過如下等式表達:
        Web服務 = WSDL+SOAP+UDDI

    1、WSDL語言比Java更抽象、廣度更大。HelloWorldWSDL中存在<service>標簽,它能夠在具體地址提供若干<port>.<port>代表了服務接口及對具體協議的綁定。
    2、服務描述包含了Endpoint地址。WSDL是由Java接口和對象引用構成的。換句話說,Web服務不存在真正的實體,它們不是對象,因此必須將它們按照模塊化對待。
    3、根據輸入、輸出定義操作。開發者需要將輸入、輸出消息表示為XML元素。
    4、采用的綁定是SOAP綁定。到目前為止,只能采用SOAP綁定。也請注意,<soap:binding>標簽還存在style="rpc"屬性,因此可以看出style還存在其他取值,目前,用于交換SOAP消息的另一種風格是文檔風格(document-style)。文檔風格意味著在SOAP消息體中不在包含對具體操作的描述。

        SOAP協議為Web服務和它們的客戶定義了XML消息格式。SOAP消息格式非常簡單。它實際包含兩部分內容:其一,HTTP POST請求頭信息。其二,XML文檔,這就是SOAP信封(Envelope)。另外,通過上述兩分SOAP消息,我們還想表達Web服務中的另一個重要概念。從SOAP協議的使用過程來看,它非常輕量,因為它對處于交互中的客戶和服務沒有任何限制。但是,從SOAP協議的大小、性能角度考慮,它并不輕量。如果不壓縮SOAP消息,則需要在網絡上傳遞大量的SOAP數據消息。因此,采用二進制更為明智,比如CORAB的IIOP協議。對于含有大量的SOAP數據消息進行壓包和解包操作將耗費大量的CPU時間。請不要忘記,WEB服務的誕生背景,它只是為集成應用而來的,而不是替換現有的高性能中間件平臺技術。否則,就不需要使用web服務了。

        XML文檔和平臺無關性,借助于標準化的XML文檔,WEB服務能夠幫助集成異構的分布式系統。在實際應用開發過程中,它具有許多優勢,比如松耦合、平臺無關性、遵循XML方面的標準、能夠合并不同的XML技術等。借助于XML能夠實現應用和中間件平臺的松耦合,這是很重要的優勢。
        比如在開發EJB組件時,客戶和服務器端同事需要使用組件接口。一旦組件接口發生變動,比如需要往方法簽名中新增參數,則EJB組件本身需要重新構建、集成、部署。當然,客戶也逃脫不了重新編譯的命運。因此,它們之間并沒有實現松耦合,開發者不能獨立的開發應用組件。否則,一旦某些組件發生變動,應用的其他部分也需要變動。我們都希望應用具有良好的擴展性。對基于IIOP的請求消息而言,所有的參與者必須使用相同的類型信息,否則不能夠正確對消息進行解包操作。而且,在IIOP技術領域中,應用必須能夠理解消息的所有內容。如果基于XML和XML消息開發應用,則這些限制將不復存在。
       
        J2EE平臺技術對WEB服務提供了一流的支持能力。無論WEB服務實現,還是WEB服務客戶,都可以使用JAVA語言開發完成。在J2EE中,使用WEB服務同RMI、RMI-IIOP并沒有多大區別。他們都將具體傳輸層屏蔽掉,使得開發者能夠專注于業務邏輯。
        JSR921規范,即實現企業WEB服務,定義了WEB服務編程模型。它使用術語port組件,描述web服務的服務器端視圖。它是服務接口的java實現。而且,它遵循服務接口到Java的映射,并提供了相應的Java實現。需要將它部署并運行在容器中。使用EJB開發WEB服務需要創建若干port組件。其中,還需要提供若干XML部署描述符。當然,直接基于EJB實現WEB服務是J2EE平臺中實現WEB服務的最大優勢。

        JAX-RPC服務端點接口,現在,來開發另一遠程接口,它將企業Bean所提供的業務方法都列舉出來,我們稱之為服務Endpoint接口(Service Endpoint Interface,SEI),下面給出了代碼。
       

    package com.testproject.ejb.web;

    /*
     * Hello服務Endpoint接口
     * 需要注意的是,這里使用的是EJB2.1無狀態會話Bean,它作為WEB服務端點時可以不提供Home接口和Remote
     * Locale接口,它提供的是web服務端點接口,這個接口擴展了Remote接口。
     
    */

    public interface HelloInterface extends java.rmi.Remote {
        
    public String hello()throws java.rmi.RemoteException;
    }

     

        JAX-RPC要求WEB服務提供SEI,EJB容器同WEB服務交互時需要使用它。JAX-RPC規范要求SEI遵循如下規則:
    1、接口必須間接或直接繼承java.rmi.Remote.
    2、所有的方法必須拋出java.rmi.RemoteException.
    3、方法參數和返回類型必須是JAX-RPC支持的JAVA類型。
    4、SEI中不能包含敞亮。

        在J2EE1.4平臺中,可以對EJB技術進行了升級,使得無狀態會話Bean可以直接部署為Web服務端點。這樣,在J2ee1.4平臺下,開發Web服務將更加簡單。這樣,EJB2.1中的無狀態會話Bean可以有3種不同的客戶端:本地接口的客戶端、遠程接口的客戶端和web服務客戶端。EJB的WEB服務客戶端視圖通過WSDL文檔描述。
        待續......

     


     


        

       
    posted on 2009-11-09 10:22 王永慶 閱讀(172) 評論(0)  編輯  收藏 所屬分類: EJB學習筆記
    <2009年11月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    關注blogs

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本媚薬痉挛在线观看免费| 很黄很色很刺激的视频免费| 亚洲精品国产高清不卡在线| 亚洲久热无码av中文字幕| 美女视频黄的全免费视频网站| 亚洲精品在线免费观看视频| 免费视频爱爱太爽了| 亚洲va在线va天堂va手机| 国产在线国偷精品产拍免费| 亚洲无人区码一二三码区别图片| 在线免费观看视频你懂的| 日韩欧美亚洲中文乱码| 免费成人在线观看| 中国性猛交xxxxx免费看| 国产亚洲成av片在线观看| 99爱在线精品视频免费观看9| 亚洲黄色免费网站| 成人免费看吃奶视频网站| 色天使色婷婷在线影院亚洲| 又黄又大又爽免费视频| 国产三级在线免费观看| 亚洲AV乱码久久精品蜜桃 | 亚洲另类小说图片| 成人女人A级毛片免费软件| 亚洲AV无码成人精品区大在线| 青青久久精品国产免费看| 亚洲av最新在线网址| 一二三四影视在线看片免费 | 国产免费一区二区三区免费视频 | 亚洲视频在线免费| 亚洲网站在线观看| 午夜一级免费视频| 中文字幕手机在线免费看电影| 亚洲最新中文字幕| 亚洲AV无码之日韩精品| 99久在线国内在线播放免费观看 | 精品国产一区二区三区免费| 亚洲av永久无码嘿嘿嘿| 国产精品亚洲mnbav网站 | 巨波霸乳在线永久免费视频 | 久久久久国产精品免费免费搜索 |