Java-Android-jwebee
          Java-Android-jwebee
          對IT人來說,要成為一個優(yōu)秀的技術(shù)型管理者,除了需要具備扎實的技術(shù)基礎(chǔ)之外,還應(yīng)該培養(yǎng)良好的人際關(guān)系能力、談判與溝通技能、客戶關(guān)系與咨詢技能、商業(yè)頭腦和財務(wù)技能以及創(chuàng)新意識,此外還要有巧妙的激勵技巧和化解沖突與解決突發(fā)問題的能力.
          作者:Liusf???? 來源:build.com.cn
          ?????? 隨著企業(yè)的需求日增與技術(shù)演進(jìn),現(xiàn)在我們已擁有多種選擇可輕易地整合.NET與J2EE兩大平臺。在目前的技術(shù)中,兩者的整合機制可分成三種類型
          ??????目前多數(shù)企業(yè)內(nèi)系統(tǒng)多是多層式的架構(gòu),可分為展示層、中介層與資料層。因此,整合便會在這幾層之間產(chǎn)生多種連接點的組合。其中,中間層技術(shù)整合最為復(fù)雜,包括展示層到中介層(P to D)、中介層到中介層(D to D)等。過去幾年間,許多廠商所建構(gòu)的組件技術(shù)與標(biāo)準(zhǔn)即是用來協(xié)助于企業(yè)內(nèi)部建立各種分布式系統(tǒng),包括有:

            Distributed Component Object Model(DCOM):微軟讓那些使用COM規(guī)格所撰寫的組件可以進(jìn)行分布式應(yīng)用,并讓組件在遠(yuǎn)程機器被呼叫。
            Common Object Request Broker Architecture(CORBA):這是OMG(Object Management Group)所提出可跨越不同廠商進(jìn)而統(tǒng)一分布式系統(tǒng)技術(shù)的規(guī)格。
            Java Remote Method Invocation(RMI):Java v1.1.x的核心規(guī)格,允許用Java所撰寫的組件可以被分散至其它機器或是行程中。
            雖然如此,這些技術(shù)基本上還是受限于企業(yè)內(nèi)部,甚至是某些固定的平臺之上。雖然微軟提出COM Internet Services(CIS)技術(shù),可讓DCOM透過port 80溝通;另一方面,SUN也將RMI over Internet Inter-Orb Protocol(IIOP)納入Java規(guī)格,但對于那些需要跨越企業(yè)內(nèi)外網(wǎng)絡(luò),甚至是進(jìn)行不同平臺間的整合工程而言仍然不足。

            幸運的是,隨著企業(yè)的需求日增與技術(shù)演進(jìn),現(xiàn)在我們已擁有多種選擇可輕易地整合.NET與J2EE兩大平臺。在目前的技術(shù)中,兩者的整合機制可分成三種類型:

            底層協(xié)定(Wire Level)

            這是走低階協(xié)議以進(jìn)行整合的第一種方式。當(dāng)然,除了「苦工式」整合,也就是自己建立socket或經(jīng)HTTP通訊協(xié)議進(jìn)行之外,技術(shù)人員也可考慮選用協(xié)力廠商的產(chǎn)品,例如:Intrinsyc Software的Ja.NET,或是JNBridge旗下的整合軟件等。(前者當(dāng)然是Java與.NET名稱的整合,后者為Java與.NET橋梁的意思)。

            其中,「Ja.NET」可視為Java之上的.NET Remoting(編者按:Microsoft .NET Framework內(nèi)的主要組件)的堆棧實作,而在Java平臺上提供Ja.NET的執(zhí)行時期模塊(Run time),可支持TCP/IP、HTTP等溝通管道,也可同時支持SOAP或是二進(jìn)制互通協(xié)議以提升溝通效率。透過此執(zhí)行時期模塊,.NET與Java/J2EE的數(shù)據(jù)類型不僅可以對應(yīng),還能進(jìn)行雙向的溝通。

            JNBridge也是類似架構(gòu),透過對應(yīng)的執(zhí)行時期模塊與代理程序(proxy),.NET程序可以在不需要Java原始程序的狀況下與這些組件進(jìn)行互通、繼承,并將其視為同一個程序內(nèi)的.NET組件。

          這類整合方式有諸多優(yōu)點,包括更佳的互通效率、對象參考與生命周期的控制、支持回呼程序(call back)與事件(event),而能有更緊密的整合效益。但相反的,因為是較緊密型的整合,彈性也會變低。另外,這類整合也通常缺少動態(tài)尋找并新增服務(wù)的機制。一般來說,對于企業(yè)內(nèi)部不同平臺的整合仍是非常不錯的選擇。

            訊息隊列或集線器(Message Queues或Hub)

            點對點的整合只適合初期項目,也許利用上述的底層協(xié)議方式,或是下文將會提及的Web services進(jìn)行互通。但是當(dāng).NET有N個模塊,J2EE有M個模塊,要互通就需要建立「N*M」的點對點聯(lián)機,復(fù)雜性與困難度將之提升。因此,當(dāng)整合進(jìn)行到一定規(guī)模,可以開始考慮采用類似訊息隊列或是集線器等方式進(jìn)行。

            目前可見軟件,如MSMQ、IBM WebSphere MQ、Microsoft HIS、BizTalk Server,或者是Mind Electric公司的GAIA等,都能有效的將整合數(shù)量如同集線器一樣減至N+M的狀態(tài)。

            這類技術(shù)概念如同集線器,可以整合不同的接口或透過外掛的Adaptor增加對于不同接口的支持。以Microsoft BizTalk為例,微軟與協(xié)力廠商所開發(fā)的Adaptor便超過一百個,其中包括SAP、Siebel、Java/J2EE、Web services、SQL Server、IBM WebSphere MQ等相對應(yīng)的Adaptor。

            換句話說,只要把先前.NET的N個模塊與J2EE的M個模塊各自透過Adaptor「安插」至類似BizTalk Server等具備「集線器概念」的服務(wù)器,即能整合與應(yīng)用不同組件。

            由于不同平臺之間的組件是非常松散結(jié)合的(loosely couple),相依性較低而適合N對M的整合以達(dá)到「服務(wù)導(dǎo)向架構(gòu)」(SOA)的目標(biāo),這也是此類整合的諸多優(yōu)點之一。例如,將一個.NET組件經(jīng)Adaptor串接至某集線器概念服務(wù)器之后,將可用不同的方式存取此組件,也許是經(jīng)由J2EE、或者是利用Web services,甚至是IBM的MQ Series。如此一來,對.NET組件開發(fā)者而言,完全不必?fù)?dān)心未來使用這個組件的對象與技術(shù)平臺為何。

            為滿足進(jìn)階的需求,這類型服務(wù)器部分也內(nèi)建安全性、交易、路由器等功能,導(dǎo)入成本當(dāng)然很高,甚至個別的Adaptor也要分開購買,因而適合有大量整合需求的企業(yè)采用。

            網(wǎng)絡(luò)服務(wù)(Web services)

            前述兩種方式之外,以SOAP為基礎(chǔ)的Web services進(jìn)行異質(zhì)平臺整合,可說是最具彈性與成本優(yōu)勢的選擇。雖然Web services的規(guī)格在WS-I等國際組織推動之下,仍是「現(xiàn)在進(jìn)行式」,但對于.NET與J2EE兩大平臺進(jìn)行基本整合與互通而言已是游刃有余。目前.NET與J2EE兩大平臺都有對應(yīng)的Web services實作,包括:

            .NET:除了提供舊版本W(wǎng)eb services支持能力的Web services Toolkit與Microsoft Visual Studio .NET開發(fā)工具之外,幾乎所有微軟的產(chǎn)品都加入了Web services的支持,包括Microsoft Office System、Windows Server System…等,其它還有如Borland的Delphi 8 for .NET、C# Builder…等。
            J2EE:包括有Apache的Axis、IBM的WSTK和WSAD,以及Mind Electric的Glue…等。
            其中,Mind Electric將Glue稱為Java Web services的「Turbo Pascal」,意思為用Java撰寫Web services最簡單、最容易入門的工具。除簡單易用之外,Glue可單獨運作或是外掛至不同的應(yīng)用程序服務(wù)器,包括WebLogic、WebSphere、JBoss等,而其執(zhí)行效率也比很多其它品牌的應(yīng)用服務(wù)器所實作的Web services效率更佳。

            若從技術(shù)細(xì)節(jié)剖析,透過Glue可以將EJB對外包裝成Web services,并可以和JASS進(jìn)行安全性整合、透過JMS提供可依賴的訊息機制…等。因此如果只是想單純的加入Web services支持,使用Glue會比升級應(yīng)用服務(wù)器更劃算。

            進(jìn)行整合的階段

            雖然上面介紹了眾多不同整合的技術(shù),但是一旦企業(yè)產(chǎn)生異質(zhì)平臺整合的需求,透過Web services先建立一個連接點對點的實驗性項目是比較好的選擇,一方面因為不同平臺對應(yīng)的技術(shù)已經(jīng)非常成熟而開發(fā)容易,另一方面也是最節(jié)省成本而能清楚檢視效益的方式。

            當(dāng)然,如果不滿足于互通的效率,或是希望更進(jìn)一步的進(jìn)行更緊密的整合,包括繼承、雙向溝通、數(shù)據(jù)型別的對應(yīng)等,使用協(xié)力廠商所提供的低階整合技術(shù)也是可以考慮的選擇。


          jwebee

          我的個人網(wǎng)站
          posted on 2007-03-15 18:38 周行 閱讀(285) 評論(1)  編輯  收藏 所屬分類: IT技術(shù)

          FeedBack:
          # re: 化解.NET與J2EE爭端
          2007-10-30 15:06 | IT資料吧
          IT資料吧 >> ItItBar >> .Net技術(shù) >> C# builder http://www.ititbar.com/category-92.html
            回復(fù)  更多評論
            
          Java-Android-jwebee
          主站蜘蛛池模板: 固阳县| 城固县| 宣恩县| 明溪县| 武威市| 樟树市| 文登市| 博罗县| 永胜县| 孝义市| 雅安市| 宁晋县| 利辛县| 锡林郭勒盟| 靖远县| 搜索| 临城县| 皮山县| 秦皇岛市| 昌平区| 米泉市| 新兴县| 浦东新区| 石楼县| 华阴市| 宣威市| 沙坪坝区| 固始县| 禄丰县| 建德市| 达尔| 湖口县| 高州市| 黔西| 济源市| 贵港市| 伊宁市| 洛扎县| 霍林郭勒市| 繁昌县| 常州市|