科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件.NET与J2EE只能是敌人吗

.NET与J2EE只能是敌人吗

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

随着企业的需求日增与技术演进,现在我们已拥有多种选择可轻易地整合.NET与J2EE两大平台,在目前的技术中,两者的整合机制可分成三种类型。

作者:builder.com.cn 2007年3月7日

关键字: dotnettrend java J2EE

  • 评论
  • 分享微博
  • 分享邮件

上期文章谈及目前多数企业内系统多是多层式的架构,可分为展示层、中介层与资料层。因此,整合便会在这几层之间产生多种连接点的组合。其中,中间层技术整合最为复杂,包括展示层到中介层(P to D)、中介层到中介层(D to D)等。过去几年间,许多厂商所建构的组件技术与标准即是用来协助于企业内部建立各种分布式系统,包括有:

  • Distributed Component Object Model(DCOM):微软让那些使用COM规格所撰写的组件可以进行分布式应用,并让组件在远程机器被呼叫。
  • Common Object Request Broker Architecture(CORBA):这是OMG(Object Management Group)所提出可跨越不同厂商进而统一分布式系统技术的规格。
  • Java Remote Method Invocation(RMI):Java v1.1.x的核心规格,允许用Java所撰写的组件可以被分散至其它机器或是行程中。

虽然如此,这些技术基本上还是受限于企业内部,甚至是某些固定的平台之上。虽然微软提出COM Internet Services(CIS)技术,可让DCOM透过port 80沟通;另一方面,SUN也将RMI over Internet Inter-Orb Protocol(IIOP)纳入Java规格,但对于那些需要跨越企业内外网络,甚至是进行不同平台间的整合工程而言仍然不足。

幸运的是,随着企业的需求日增与技术演进,现在我们已拥有多种选择可轻易地整合.NET与J2EE两大平台。在目前的技术中,两者的整合机制可分成三种类型:

底层协定(Wire Level

这是走低阶协议以进行整合的第一种方式。当然,除了「苦工式」整合,也就是自己建立socket或经HTTP通讯协议进行之外,技术人员也可考虑选用协力厂商的产品,例如:Intrinsyc Software的Ja.NET,或是JNBridge旗下的整合软件等。(前者当然是Java与.NET名称的整合,后者为Java与.NET桥梁的意思)。

其中,「Ja.NET」可视为Java之上的.NET Remoting(编者按:Microsoft .NET Framework内的主要组件)的堆栈实作,而在Java平台上提供Ja.NET的执行时期模块(Run time),可支持TCP/IP、HTTP等沟通管道,也可同时支持SOAP或是二进制互通协议以提升沟通效率。透过此执行时期模块,.NET与Java/J2EE的数据类型不仅可以对应,还能进行双向的沟通。

JNBridge也是类似架构,透过对应的执行时期模块与代理程序(proxy),.NET程序可以在不需要Java原始程序的状况下与这些组件进行互通、继承,并将其视为同一个程序内的.NET组件。以下为JNBridgePro的架构图:

.NET与J2EE只能是敌人吗

这类整合方式有诸多优点,包括更佳的互通效率、对象参考与生命周期的控制、支持回呼程序(call back)与事件(event),而能有更紧密的整合效益。但相反的,因为是较紧密型的整合,弹性也会变低。另外,这类整合也通常缺少动态寻找并新增服务的机制。一般来说,对于企业内部不同平台的整合仍是非常不错的选择。

讯息队列或集线器(Message QueuesHub

点对点的整合只适合初期项目,也许利用上述的底层协议方式,或是下文将会提及的Web services进行互通。但是当.NET有N个模块,J2EE有M个模块,要互通就需要建立「N*M」的点对点联机,复杂性与困难度将之提升。因此,当整合进行到一定规模,可以开始考虑采用类似讯息队列或是集线器等方式进行。

目前可见软件,如MSMQ、IBM WebSphere MQ、Microsoft HIS、BizTalk Server,或者是Mind Electric公司的GAIA等,都能有效的将整合数量如同集线器一样减至N+M的状态。

这类技术概念如同集线器,可以整合不同的接口或透过外挂的Adaptor增加对于不同接口的支持。以Microsoft BizTalk为例,微软与协力厂商所开发的Adaptor便超过一百个,其中包括SAP、Siebel、Java/J2EE、Web services、SQL Server、IBM WebSphere MQ等相对应的Adaptor。

换句话说,只要把先前.NET的N个模块与J2EE的M个模块各自透过Adaptor「安插」至类似BizTalk Server等具备「集线器概念」的服务器,即能整合与应用不同组件。

由于不同平台之间的组件是非常松散结合的(loosely couple),相依性较低而适合N对M的整合以达到「服务导向架构」(SOA)的目标,这也是此类整合的诸多优点之一。例如,将一个.NET组件经Adaptor串接至某集线器概念服务器之后,将可用不同的方式存取此组件,也许是经由J2EE、或者是利用Web services,甚至是IBM的MQ Series。如此一来,对.NET组件开发者而言,完全不必担心未来使用这个组件的对象与技术平台为何。

为满足进阶的需求,这类型服务器部分也内建安全性、交易、路由器等功能,导入成本当然很高,甚至个别的Adaptor也要分开购买,因而适合有大量整合需求的企业采用。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章