EJB2.1(EnterPRise javaBeans 2.1)正式推薦版本已經出臺,它產生的動力主要是Enterprise JavaBeans對支持Web Service的需求,同時也是因為Micr
osoft .NET的發布,它對J2EE或者說對Java技術來說已經構成了巨大威脅。在新版本的EJB2.1中,主要的變化主要集中在基于SOAP和WSDL的Web Service上。EJB已經成為一種新的Web Service平臺。它對Web Service的支持主要體現在三個新的Web Service API上:分別是JAX-RPC(Java API for xml-RPC,它基本上是通過SOAP實現的Java RMI,為RPC格式的SOAP消息提供遠端接口)、SAAJ(SOAP API with Attachments for Java,它模擬SOAP消息的結構,同時也有功能有限的消息分發能力)和JAXM(Java API for XML Messaging,它類似于JMS,提供發送和接收SOAP消息的消息架構),利用它們可以實現與其它類型的Web Service進行通訊,而且還答應無序的會話Bean和消息驅動的Bean來作為Web Service使用,使它們能夠被任何與 SOAP1.1兼容的客戶端所訪問。例如:使用SOAP,我們就可以從其它平臺Web Service來調用無序的會話Bean的方法,象微軟的.NET,Perl,Apache Axix和其他的語言和平臺。EJB2.1中新的Web Service功能能夠提供一種前所未有的跨平臺互操作性,它主要是建立在兩個嶄新的J2EE SOAP工具包JAX-RPC和JAXM。
Web Service代表了分布式計算的最新潮流,可能是自1995年Java的出現和1998年XML出現以來最重要的技術了。其實,給Web Service下一個準確的定義是很難的,因為Web Service并不是任何非凡技術或者平臺所特有的,Web Service是一種網絡應用程序,以XML形式的文檔,使用SOAP和WSDL進行信息交換。要更好地理解這句話的含義,你必須先理解SOAP和WSDL,下面是有關這方面的定義:
SOAP:簡單對象訪問協議(Simple Object access Protocol),是在W3C的支持下,由Microsoft,IBM和其他公司開發的,基于XML格式的一種協議,它是可伸縮和可擴展的,不象以前的DCE RPC, CORBA IIOP, Java RMI-JRMP以及DCOM,它已經被幾乎所有的開發廠商所認可和接受。
WSDL:Web服務描述語言(Web Service Description Language),也是在W3C的支持下,由Microsoft,IBM和其他公司開發的,XML格式的語言,用來對Web Service進行描述,包括期望的消息格式類型、所使用的Internet協議和Web Service的Internet地址。
其實,Web Service代表了一種新的分布式對象技術,它和CORBA IIOP和Java RMI很相似,但也有許多差異,最大的差異應該就是真正的平臺無關性。盡管Java RMI和CORBA IIOP都聲稱自己是平臺無關的,但實際上,它們都需要它們自己的平臺。要使用Java RMI,你需要一個Java虛擬機和Java編程語言,對使用其它語言的開發者如Visual Basic或C++來說,Java RMI并不是平臺無關的。CORBA IIOP也是有局限性的,IIOP協議通常需要一個特定的架構如CORBA ORB,也只有少數幾個廠商支持CORBA。另一方面,Web Service著重描述信息交換的協議,而不是著重描述對這些協議的實現,換句話說,你可以用任何語言,在任何平臺上,以任何你自己喜歡的方式來創建Web Service。
Web Service另外一個好處就是,不象其它的分布式對象體系,它建立在現有的技術架構的基礎之上,因此大多說廠商很輕易實現。SOAP和WSDL都是基于XML的,而XML已經被廣泛支持,XML解析器在幾乎每一種開發語言中都有,因此,處理SOAP消息和WSDL文檔的基礎已經存在了。此外,Web Service消息通常是通過TCP/IP進行交換的,也已經被幾乎所有的平臺和語言所支持。
JAX-RPC和EJB
JAX-RPC(Java API for XML-RPC)實質上就是通過SOAP訪問的Java RMI。它和“本地的”Java RMI (Java RMI-JRMP)和Java RMI-IIOP很象,但是它是以SOAP作為通訊協議。要實現JAX-RPC,最低要求是必須對通過HTTP訪問的SOAP支持RPC編碼,但是,我們仍然可以提供對其他編碼方式、消息格式和Internet協議的支持。JAX-RPC能夠被用來從會話、實體和消息驅動的Bean來調用Web Service的操作。JAX-RPC能夠用來訪問其它平臺的Web Service。例如:一個無序的會話Bean可能會使用JAX-RPC來調用.NET Web Service的方法。如下圖所示:
新聞熱點
疑難解答