解讀Java與.NET間進(jìn)行Web Service交互的選擇_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解讀.NET中*延遲*特性的幾個(gè)陷阱
      .NET發(fā)展至今,其實(shí)各處都有

      談到.NET和Java之間的Web服務(wù)交互性時(shí),通常的選擇只有SOAP over HTTP,而根據(jù).NET 3.0的相關(guān)規(guī)范,這僅有的一個(gè)選擇也將會(huì)受到更多限制,.NET中提供的BasicHTTP將是唯一能直接與Java Web Servcies進(jìn)行交互的方式。

      最近,有兩個(gè)新的選擇出現(xiàn)了——WebSphere MQ(WMQ)和ActiveMQ傳送器,它們可以用于創(chuàng)建Java和.NET之間的交互式Web Services。而且.NET的可靠消息系統(tǒng)已經(jīng)得到了擴(kuò)展,因此對(duì)于MSMQ來說,WMQ和Active MQ都可以作為.NET Web Services的可靠傳遞者。 


      WMQ解決方案基于IBM AlphaWorks中IBM WMQ for Windows Communication Foundation的定制通道(Custom Channel),它的最新版本已于3月14日發(fā)布。這一產(chǎn)品允許將WMQ作為定制通道用于Windows Communication Foundation(WCF)框架(已隨.NET Framework 3提供)中,它與微軟的內(nèi)建通道工作方式相同。 


      消息都是經(jīng)過格式化的,以滿足WMQ v6.0的SOAP over JMS實(shí)現(xiàn),讓應(yīng)用程序即可以和運(yùn)行于WCF之上的服務(wù)進(jìn)行通信,也能和運(yùn)行在WebSphere SOAP over JMS服務(wù)基礎(chǔ)之上的服務(wù)進(jìn)行通信,包括WebSphere應(yīng)用服務(wù)器和CICS。 


      目前的實(shí)現(xiàn)是以概念驗(yàn)證為主,是為了幫助更好地理解對(duì)這一領(lǐng)域產(chǎn)品的需求(也就是說它并不適合在產(chǎn)品環(huán)境中使用),如何產(chǎn)品化這一實(shí)現(xiàn)的計(jì)劃還沒有最終確定。 


      定制通道的構(gòu)建是通過Windows Communication Foundation的可擴(kuò)展框架提供的,這一可擴(kuò)展框架允許集成和使用那些與微軟提供的內(nèi)建傳送器類似的傳送器。服務(wù)型應(yīng)用只要通過配置就可以使用新的定制通道,只要客戶端應(yīng)用程序是通過像微軟的Service Metadata utility Tool(Svcutil.exe)這樣的標(biāo)準(zhǔn)工具生成的,它們就可以正常運(yùn)行。服務(wù)的元數(shù)據(jù)描述可以被正在運(yùn)行的服務(wù)直接發(fā)布(可以通過一個(gè)附加的HTTP端點(diǎn)來暴露)或者使用WSDL(Web Service Description Language)。 


      目前的實(shí)現(xiàn)版本支持核心的消息功能,它有如下限制: 


      對(duì)于一個(gè)服務(wù)實(shí)例,只有一個(gè)客戶端可以使用雙向通道的模式; 

      雙向通道是對(duì)WebSphere MQ v6所提供的SOAP/JMS實(shí)現(xiàn)的一種擴(kuò)展,它只能用于WCF服務(wù)與其客戶端之間的通信; 

      僅支持核心的消息功能(如不支持像事務(wù)化和安全等高級(jí)特性) 

      運(yùn)行在現(xiàn)存WMQ v6的SOAP/JMS環(huán)境中的SOAP/JMS服務(wù)僅能進(jìn)行單向操作; 

      運(yùn)行在CICS或WebSphere應(yīng)用服務(wù)器的SOAP/JMS環(huán)境內(nèi)的SOAP/JMS服務(wù),不允許在一個(gè)單一合約中混合使用單向操作和請(qǐng)求/回復(fù)操作,而必須為每個(gè)通道形態(tài)分別創(chuàng)建獨(dú)立的合約。 

      Active MQ解決方案基于Axis提供的JMS(由Java編寫而成)和“插件式協(xié)議”特性(由.NET編寫而成),因此,它并不是以真正的.NET定制通道方式包裝的,這就需要更多的定制編程。 


      這兩種解決方案都沒有徹底的產(chǎn)品化,但它們卻提供了一個(gè)很好實(shí)驗(yàn)基礎(chǔ),以選擇合適的Web Services交互式傳送器。 

      分享:C#教程:Assembly類訪問程序集信息
      C#中通過Assembly類可以訪問程序集信息. 1.允許訪問給定程序集的元元素,包含可以加載和執(zhí)行程序集的方法; 2.加載程序集:使用靜態(tài)方法Assembly.Load(程序集名稱)或Assembly.LoadFrom(程序集完整路徑名); 3.屬性: FullName:程序集顯示名稱; 3.方法: Ge

      來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2009-07-07
      相關(guān).Net教程