<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 閱讀(485) 評論(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環境的配置相當麻煩,并且使用的網絡端口常常被防火墻禁止。基于WSDL和SOAP的web service又很難以一種可移植的方式導出,并且由于它們的協議臃腫冗長,會浪費大量的帶寬。基于HTTP的輕量級遠程調用協議解決了上述兩個問題:它們可以在任何標準的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

    主站蜘蛛池模板: 亚洲卡一卡二卡乱码新区| 亚洲视频在线一区二区三区| 亚洲熟妇无码av另类vr影视| 91精品成人免费国产片| 久久久久亚洲AV成人无码网站| 成人最新午夜免费视频| 亚洲区视频在线观看| 黄网站色视频免费看无下截| 免费无码黄网站在线观看| 亚洲综合无码无在线观看| 热99re久久精品精品免费| 美女视频黄视大全视频免费的| 亚洲成?Ⅴ人在线观看无码| 视频免费1区二区三区| 亚洲综合熟女久久久30p| 99视频在线观看免费| 成人免费一区二区三区在线观看| 亚洲成av人片在线看片| 中文无码日韩欧免费视频| 亚洲熟妇中文字幕五十中出| 免费国产叼嘿视频大全网站| 国产成人免费手机在线观看视频| 亚洲av乱码中文一区二区三区 | 亚洲看片无码在线视频| 全免费A级毛片免费看网站| 伊人久久国产免费观看视频| 在线观看亚洲成人| 久久免费精彩视频| 亚洲日韩国产精品乱-久| 免费看国产一级特黄aa大片| WWW国产成人免费观看视频| 日本一道在线日本一道高清不卡免费| 男人的天堂av亚洲一区2区| 亚洲色偷偷偷鲁综合| 2021精品国产品免费观看| 久久亚洲欧美国产精品| 亚洲无线码一区二区三区| 最近中文字幕2019高清免费| 亚洲AV成人精品日韩一区| 亚洲综合伊人久久综合| 91情侣在线精品国产免费|