`
zhouxing
  • 浏览: 208607 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

化解.NET与J2EE争端

阅读更多
作者:Liusf     来源:build.com.cn
       随着企业的需求日增与技术演进,现在我们已拥有多种选择可轻易地整合.NET与J2EE两大平台。在目前的技术中,两者的整合机制可分成三种类型
<!-- end of summary line -->
      目前多数企业内系统多是多层式的架构,可分为展示层、中介层与资料层。因此,整合便会在这几层之间产生多种连接点的组合。其中,中间层技术整合最为复杂,包括展示层到中介层(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组件。

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

  讯息队列或集线器(Message Queues或Hub)

  点对点的整合只适合初期项目,也许利用上述的底层协议方式,或是下文将会提及的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也要分开购买,因而适合有大量整合需求的企业采用。

  网络服务(Web services)

  前述两种方式之外,以SOAP为基础的Web services进行异质平台整合,可说是最具弹性与成本优势的选择。虽然Web services的规格在WS-I等国际组织推动之下,仍是「现在进行式」,但对于.NET与J2EE两大平台进行基本整合与互通而言已是游刃有余。目前.NET与J2EE两大平台都有对应的Web services实作,包括:

  .NET:除了提供旧版本Web services支持能力的Web services Toolkit与Microsoft Visual Studio .NET开发工具之外,几乎所有微软的产品都加入了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可单独运作或是外挂至不同的应用程序服务器,包括WebLogic、WebSphere、JBoss等,而其执行效率也比很多其它品牌的应用服务器所实作的Web services效率更佳。

  若从技术细节剖析,透过Glue可以将EJB对外包装成Web services,并可以和JASS进行安全性整合、透过JMS提供可依赖的讯息机制…等。因此如果只是想单纯的加入Web services支持,使用Glue会比升级应用服务器更划算。

  进行整合的阶段

  虽然上面介绍了众多不同整合的技术,但是一旦企业产生异质平台整合的需求,透过Web services先建立一个连接点对点的实验性项目是比较好的选择,一方面因为不同平台对应的技术已经非常成熟而开发容易,另一方面也是最节省成本而能清楚检视效益的方式。

  当然,如果不满足于互通的效率,或是希望更进一步的进行更紧密的整合,包括继承、双向沟通、数据型别的对应等,使用协力厂商所提供的低阶整合技术也是可以考虑的选择。
分享到:
评论

相关推荐

    .net and j2ee application interoperability

    标签进一步细化了讨论的重点,".NET Application Interoperability"和"J2EE"表明我们将关注的是.NET平台上的应用程序与其他系统,特别是J2EE环境下的应用程序之间的互操作性问题。 压缩包内的文件"PnP_J2EE_Interop...

    .NET和J2EE平台的比较(英文文献)

    一篇英文的文献,主要是关于.NET和J2EE平台的比较

    集成技术:.NET单挑J2EE

    在集成技术领域,两大巨头——.NET和J2EE之间的较量始终引人关注。这篇文章将对比分析两者在集成技术上的特点和优势。 首先,我们来看看.NET集成技术的优势。微软的.NET框架从诞生之初就以其出色的集成能力著称。相...

    .Net VS J2EE

    《.Net VS J2EE:两大企业级开发框架的比较与选择》 在信息技术领域,.Net 和 J2EE 是两个备受关注的企业级开发框架,它们分别代表了微软和 Java 社区对于构建大型分布式应用的解决方案。本文将对这两个框架进行...

    2022年比较 Microsoft .NET 和 J2EE 的构成技术Java教程.docx

    《2022年比较Microsoft .NET与J2EE的构成技术》 本文将深入探讨Microsoft的.NET平台和Java的企业级实现J2EE之间的异同,以帮助理解这两个技术栈的核心概念及其在2022年的最新发展。首先,我们需要明确.NET平台的...

    02110320《.net平台j2ee平台综合实训》教学大纲.doc

    02110320《.net平台j2ee平台综合实训》教学大纲.doc

    .NET与J2EE平台互用性研究

    基于构件的软件复用技术极大提高了软件的开发效率,保证了软件的高质量。异构构件的互操作是成功复用异构构件的关键性技术之一。目前,.NET和JZEE平台占据了大量市场,这使得.NET与JZEE的互操作问题成为热点。

    .net与j2EE互操作(PDF)

    本书使用一个案例分析作为整体的框架,Dwight Peltzer教授在本书中介绍了各种与集成J2EE和.NET相关的技术问题,并且提供实际的解决方案、建议和最佳实践,IT专家和开发人员可在工作中利用这些最佳实践。本书也介绍了...

    J2EE与.NET平台的相似点

    J2EE(Java 2 Platform, Enterprise Edition)与.NET平台都是企业级的开发框架,用于构建和部署分布式应用程序。这两个平台有许多相似之处,但也存在显著的差异。 在相似点方面,J2EE与.NET平台都提供了全面的...

    J2EE与.NET技术架构比较

    【J2EE与.NET技术架构比较】 J2EE(Java 2 Platform, Enterprise Edition)和.NET是两大主流的企业级开发平台,两者各有特点,适用于不同的应用场景。本文将从多个角度对比J2EE与.NET,帮助开发者理解它们的区别,...

    J2EE与.net的比较

    标题中的“J2EE与.NET的比较”是指探讨两种不同的企业级开发平台——Sun J2EE(Java 2 Enterprise Edition)和Microsoft的.NET框架之间的差异和相似性。这两个平台都是为了构建大型、分布式的企业应用程序而设计的,...

    J2EE和.NET二者的区别

    "J2EE和.NET二者的区别" J2EE和.NET是两种不同的软件开发平台,它们之间有着明显的差异,但同时也存在着一些相互借鉴和共荣的方面。 首先,从开发角度来看,J2EE和.NET都有其独特的设计理念和架构风格。J2EE是基于...

    使用IIOP.NET使用.NET和J2EE构建分布式对象系统

    描述中提到“本文演示了IIOP.NET的用法”,意味着内容会深入讲解如何配置、使用IIOP.NET,以便.NET应用程序与J2EE服务器之间进行有效的数据交换。IIOP.NET是一个开源项目,它实现了IIOP协议,使得.NET开发者可以利用...

    终于了解了下.net 和 j2ee的区别

    关于.NET技术与Sun公司的Java2企业版(J2EETM)相比较,许多客户都想了解Microsoft公司的观点。由于以下的几个原因,.NET和JEE的比较有点棘手: 1) 一般来说,Windows .NET Framework是Microsoft的Windows系统中...

    j2ee 与.net比较

    【标题】:“J2EE 与 .NET 比较” 【描述】:“本文将探讨J2EE和.NET两个主流的开发平台,分析它们在构建XML基础的Web服务中的差异,各自的优缺点。” 【标签】:“J2EE,.NET” 【正文】: Web Services是一个...

    .Net vs. J2EE

    .Net vs. J2EE,一须j2ee与.net比较的官方ppt

    J2EE与.NET的技术比较

    J2EE与.NET技术比较 J2EE(Java 2 Platform Enterprise Edition)和.NET是两种主要的企业级应用程序开发平台,它们之间有很多相似之处,但同时也存在很大的差异点。下面是对J2EE和.NET技术的比较。 J2EE技术 J2EE...

    J2EE介绍.ppt

    "J2EE介绍" J2EE(Java 2 Platform, Enterprise Edition)是 Java 平台的企业版,它提供了一系列的技术规范和API,用于开发大型企业级应用程序。J2EE 是基于 Java 语言的,它提供了一个完整的解决方案,用于开发...

    淺析J2EE與.NET

    ### 淺析J2EE與.NET:技術概觀與比較 #### 技術概觀 J2EE(Java 2 Platform, Enterprise Edition)与.NET是两大主要的企业级开发平台,它们都旨在为企业应用程序提供分布式、高可靠的解决方案。尽管二者在表现形式...

Global site tag (gtag.js) - Google Analytics