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

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

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

    讀《J2EE Development without EJB》 筆記六

    Posted on 2006-01-17 16:05 JDeodar 閱讀(483) 評論(0)  編輯  收藏 所屬分類: J2EE
    Remoting -- 遠程調用

    分布式計算第一法則:不要分布你的對象--Martin Fowler《企業應用架構模式》

    經典的Java遠程方案的根源,RMI(Remote Method Invocation)是JDK1.1中引入的。基于Java的序列化機制通信協議時可接插的。
    所有的RMI服務必須要實現某個繼承自java.rmi.Remote的接口。
    保持遠程通信無狀態——這也是任何遠程調用應該謹記的法則。如果真需要有狀態的會話,可以考慮用EJB的有狀態的Session Beans,或是具備HttpSession功能的web service。

    一、經典的J2SE遠程方案:RMI

    A、訪問和曝露RMI服務
    訪問RMI服務,只需通過java.rmi.Naming查找一個RMI的URL地址即可。每次查找都將返回一個服務器端RMI服務實例的一個代理:和EJB不同,沒有組件池的概念。

    Spring環境中的設置
    在Spring的bean工廠或應用上下文中,可以用RmiProxyFactoryBean類來定義RMI服務的客戶端代理。
    也可以借助RmiServiceExporter類曝露為RMI服務,不過被曝露的bean組件必須遵循RMI服務的實現要求。
    為了避免讓客戶端直接針對RMI接口編程,RMI服務的實現類在實現RMI服務接口之外,也可以實現與RMI無關的業務接口(business interface)[同樣方法的業務接口]。這樣,客戶端只需要依賴普通的業務接口,不需要依賴RMI接口。
    壞處:必須時刻保持“業務接口”與“遠程接口”之間的同步。

    B、用RMI調用器實現透明遠程調用
    借助Java反射機制,通過RMI調用器(RMI invoker)發送方法調用。

    二、經典的J2EE遠程機制:EJB

    三、基于WSDL的web Services:JAX-RPC
    J2EE1.4版本最大的進步就在于對web services的支持,其下的基礎規則是WSDL(Web Service Description Lanuage,web service描述語言)和SOAP(Simple Object Access Protocol,簡單對象訪問協議)。

    WSDL是一種XML格式,用于將網絡服務描述為一組對消息的端點操作,消息中包含面向文檔或者面向過程的信息。操作和消息都將被抽象地描述,并隨后被綁定到具體的網絡協議和消息格式,用于定義一個端點。彼此連接的具體端點就可以組合為抽象端點(服務)。
    --WSDL就是對遠程服務的平臺無關的描述。

    A、訪問web service
    每個基于WSDL的web service都由一個服務(service)構成,其中定義了一個或者多個端口(port)。每個端口對應服務器上的一個服務端點(service endpoint),一個由WSDL定義的web service中可以匯聚多個端點。這與經典的遠程服務(EJB)不同,后者不支持這樣的分隔。
    為了訪問一個服務,JAX-RPC需要下列參數:
    1、WSDL文檔的URL
    2、WSDL服務的命名空間URL
    3、WSDL服務的名稱
    JAX-RPC提供了三種訪問服務端點的途徑:
    1、靜態存根:--不推薦
    2、動態代理:--一種通過Java接口訪問遠程服務的有效途徑,并且是可配置的。
    3、動態調用接口(DII):--提供了最大限度的解耦。

    B、Spring環境中的配置
    曝露一個JAX-RPC服務

    C、Servlet和EJB端點
    JAX-RPC規范描述了兩種服務端點的實現:servlet端點(Servlet endpoint)模型和EJB端點(EJB endpoint)模型。

    四、輕量級遠程方案:Hessian和Burlap

    RMI環境的配置相當麻煩,并且使用的網絡端口常常被防火墻禁止?;赪SDL和SOAP的web service又很難以一種可移植的方式導出,并且由于它們的協議臃腫冗長,會浪費大量的帶寬?;贖TTP的輕量級遠程調用協議解決了上述兩個問題:它們可以在任何標準的servlet容器之上運行,并且可以穿越任何防火墻。
    1、訪問和曝露Hessian和Burlap服務
    2、在Spring環境中的配置
    --JPetStore展示Spring環境中使用Hessian和Burlap、RMI和JAX-RPC(借助Apache Axis)來曝露遠程服務,同時提供遠程服務客戶端的示例。

    Replacing Other EJB Services -- 替換其他的EJB服務

    1、持久化
    2、遠程調用機制
    3、CMT
    4、線程管理
    5、SLSB實例池
    6、聲明性、基于角色的安全性

    posts - 10, comments - 2, trackbacks - 0, articles - 0

    Copyright © JDeodar

    主站蜘蛛池模板: 4hu四虎免费影院www| 色播亚洲视频在线观看| 免费一级毛片在级播放| 日韩一级视频免费观看| 好爽又高潮了毛片免费下载| 中文毛片无遮挡高潮免费| 国产免费看JIZZ视频| 无码国产精品一区二区免费I6| 永久免费的网站在线观看| 啦啦啦高清视频在线观看免费| 最近免费中文字幕视频高清在线看| 日韩免费一区二区三区在线| 噼里啪啦免费观看高清动漫4| 一个人免费观看在线视频www| 久久精品a一国产成人免费网站| 在线观看免费污视频| 成人爱做日本视频免费| 亚洲国产香蕉人人爽成AV片久久| 亚洲精品无码永久在线观看| 中文字幕精品亚洲无线码一区 | 无码av免费一区二区三区试看| 国产精品99久久免费观看| 99re在线这里只有精品免费| 免费福利网站在线观看| 日韩在线天堂免费观看| 免费va在线观看| 亚洲精品成人片在线观看精品字幕| 亚洲AV无码久久精品色欲| 亚洲成a人片在线网站| 亚洲国产一区二区三区在线观看| 免费一级特黄特色大片 | 亚洲综合久久成人69| 亚洲娇小性色xxxx| 理论片在线观看免费| 国精产品一区一区三区免费视频| 最近中文字幕高清免费中文字幕mv| 成人毛片18女人毛片免费视频未| 一级毛片直播亚洲| 亚洲AV乱码久久精品蜜桃| 亚洲国产综合精品中文第一| 产传媒61国产免费|