NET应用程序与J2EE应用程序的集成

时间:2022-10-23 05:24:41

NET应用程序与J2EE应用程序的集成

摘 要: 分析了企业中大量现有的.NET应用程序与J2EE应用程序集成的关键问题,阐述了目前应用WebService的集成方案所存在的缺点,在此基础上提出了基于ESB的.NET应用程序与J2EE应用程序集成方案。该集成方案可以保证消息的可靠传递,提供灵活的消息路由,增强服务的可管理性,并且提供协议的转换功能。

关键词: .NET; J2EE; 系统集成; Webservice; ESB

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2013)05-37-02

Integration of .NET and J2EE application

Liu Zhiqing1, Yang Shuo2, Chen Jinyuan2

(1. Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China; 2. Zhejiang Topcheer Information Technology Co.,Ltd)

Abstract: The key problems in integration of .NET application and J2EE application in enterprise have been analyzed. The shortcomings of WebService integreation are discussed. On this basis the integrated solution is introduced based on ESB. The integrated solution can guarantee reliable delivery of messages, provide a flexible message routing, enhance manageability of services, and supply protocol conversion functions.

Key words: .NET; J2EE; system integration; WebService; ESB

0 引言

随着时代的发展,企业的信息化程度越来越高,信息化在给企业带来便利和机遇的同时,也给企业带来了新的困惑和挑战。由于企业中的信息系统往往是由不同的公司、团队和技术实施的,这些系统缺少相应的接口标准和规范,各系统只能独立运行,成为了一个个的信息孤岛(如图1所示)。如何用更基于标准的和互操作性更好的方式来实现企业应用程序的集成,是我们重点要探讨的。

[CRM系统] [数据库] [ERP系统] [数据库] [库存管理

系统] [数据库]

图1 企业中的各类信息系统

1 J2EE与.NET平台

在企业应用中,J2EE技术的应用比较广泛。随着.NET框架的逐步推广,使用.NET开发的企业应用也在增长。目前,这两个平台在企业级应用中占据着重要地位,两个平台之间的互操作存在大量的现实需求[1]。

在企业级应用中J2EE与.NET一般均采用三层架构:表示层、业务层和数据层,不同平台采用不同组件来实现不同层的功能,.NET与J2EE各层组件的比较如表1所示。

表1 J2EE与.NET平台各层组件的比较

[服务\&J2EE\&.NET\&表示层\&客户GUI\&AWT/SWING\&Windows Forms\&Web GUI\&JSP\&\&Web Scripting\&Servlet,Filter\&ISAPI,HttpHandler,HttpModule\&业务层\&业务逻辑组件\&EJB\&.NET服务组件类或COM+\&数据层\&数据访问\&JDBC\&\&消息\&JMS\&MSMQ\&其他\&目录访问\&JNDI\&ADSI\&远程调用\&RMI-IIOP\&.NET Remoting\&事务处理\&JTA\&COM+/DTC\&虚拟机\&JRE\&CLR\&开发语言\&Java\&C#,C++,,J#\&]

J2EE应用程序与.NET应用程序的集成,主要有以下三种集成方式:①表示层的集成;②业务层的集成;③数据层的集成。

2 集成的关键问题

解决不同平台功能单元的通信或传输问题,首先要去除平台之间的差异。在互操作的过程中最重要的差异是数据类型的差异,构件之间的交互是通过特定的通信协议来传输特定的数据,两个平台的数据类型可能是不一致的,在数据传输时所使用的通信协议的不一致也相当于数据类型的不一致。因此,集成的关键是要解决数据格式的转换问题。

集成时的数据交换,需要主要解决以下三个问题:①基本数据类型的映射;②如何提供一方不具备的数据类型;③如何转换复杂的数据类型。

3 目前系统集成的解决方案

目前.NET项目与J2EE项目集成主要采用Web服务集成方案[2]。Web服务的整个技术体系都是基于XML的。Web服务的三个角色之间的通信所传输的信息流都是XML格式的。这些信息流的解释需要更高层次的协议规范,包括WSDL(Web服务描述语言)、SOAP(简单对象访问协议)和UDDI(统一描述、发现和集成)共同组成WebService的关键技术体系。

SOAP(Simple Object Access Protocol):在通信的最低级别,系统需要使用同一语言。特别是作为通信双方的应用程序需要遵守同一套通信规则:如何标识不同的数据类型,以及如何标识命令(即:需要对数据进行何种操作)。另外,在必要的时候应用程序还需要对该语言适当的扩展。简单对象访问协议(SOAP)是XML的实施工具,它提供了一套公共规则集,该规则集说明了如何标识并扩展数据和命令。

WSDL(WebService描述语言):双方应用程序在得到了如何表示数据类型和命令的规则后,需要对所接受的特定数据和命令进行有效的描述,仅仅说明已接收到某种类型的数据是不够的,还应当说明对接收到的数据应该进行哪些操作。WebService描述语言(WSDL)是一种XML语法,开发人员和开发工具可使用它来表述Web服务的具体功能。

UDDI协议:一旦部署了Web服务,潜在用户就必须能够发现它在什么地方,以及如何工作。统一描述、发现和集成(UDDI)是一种行业内的规范,它定义了一项基于SOAP的协议,用于更新和查询Web服务信息库。UDDI可以并实现Web服务,最大限度地访问站点并获得最终的成功。

Web服务已经被广泛作为一种标准服务,它提供了一个通用的、跨平台的服务协议。J2EE和.NET框架都支持标准的Web服务,通过把应用程序的内部功能暴露为Web服务,J2EE与.NET程序就可以实现互操作。Web服务的集成方案如图2所示。

[应用A\&WebService访问接口\&][应用B\&WebService访问接口\&] [WebService调用][WebService访问接口\&应用C\&] [WebService调用][WebService访问接口\&应用D\&] [WebService调用] [WebService调用]

图2 Web服务集成方案

WebService使用XML语言,这样就提供了平台和语言无关性。WebService提供了标准的访问接口,使得Web服务之间的访问和调用标准化,易于集成。WebService使用标准的互联网协议HTTP协议进行通信,可以轻松的穿越防火墙。

采用WebService技术进行应用集成,就是对应用系统做简单的连接通信,它适用于整合应用系统不多的情况,系统柔性差,无法保证可靠性,可管理性差,并且不能应用到较复杂的应用系统整合。Web服务集成方案存在诸多不足,因此,提出了基于ESB的.NET应用程序与J2EE应用程序的集成方案。

4 基于ESB的.NET应用程序与J2EE应用程序的集成方案

企业服务总线ESB(Enterprise Service Bus)是SOA架构的实现之一,是目前实现服务集成最有效的手段[3]。ESB采用总线式架构,作为中枢神经枢纽,对所有需集成的服务和应用实行集中管理,负责消息的转换、路由、映射。使需要集成的异构系统可以相互通信,同时保持它们之间的松耦合关系,基于ESB的集成方案如图3所示。

[Enterprise Service Bus] [J2EE应

用程序][.NET应

用程序][.NET应

用程序][.NET应

用程序][J2EE应

用程序][J2EE应

用程序] [SOAP/HTTP] [JMS][SOAP/HTTP][SOAP/HTTP][JMS] [SOAP/HTTP]

图3 基于ESB的集成方案

如图3所示,J2EE应用程序通过JMS消息或SOAP协议与ESB进行通信;.NET程序主要通过SOAP与ESB进行通信,在ESB内部可以实现消息的格式转化以及服务的管理。

使用企业服务总线实现应用集成,可以带来以下优势。

⑴ 可靠消息传递:在企业服务集成中,涉及到多个服务使用者与服务提供者。企业服务总线负责实现参与者不同消息格式之间的适配转换。同时提供可靠性传输机制,保证消息安全、可靠传输。

⑵ 灵活的消息路由:企业服务总线负责服务使用者与服务提供者间的消息转发,并提供多种路由模式,可以满足复杂的集成交互流程。

⑶ 服务的可管理性:ESB平台中存储了接入ESB系统的所有服务描述信息,这样就可以做到服务的部署/卸载,服务的查询,服务的信息同步,服务的生命周期管理,还有服务质量管理,服务的安全可靠性管理等等。

⑷ 协议的转换:ESB可以采用不同的通信协议与不同应用进行交互,这样便可以使不同的平台应用很方便地接入ESB中。

5 结束语

本文提出了一种.NET应用程序与J2EE应用程序的集成方案,该方案采用了企业服务总线ESB方式来集成运行在异构环境中的.NET应用程序与J2EE应用程序,是易于实现和有效的。相对于传统的WebService集成方案,该方案具有保证消息可靠传递、提供灵活的消息路由、协议的转化,以及服务的可管理性等诸多优点,使得集成的系统能够稳定、高效地运行。

该方案还存在一些问题有待我们进一步去解决,例如:如何提高消息转换的效率,如何实现高效的动态路由等。

参考文献:

[1] 雷军程. .NET与J2EE平台互用性研究[D].中南大学,2008.

[2] 苗青,陈钢.基于WebService的高校应用集成[J].计算机技术与发展,

2008.18(3).

[3] 王铭.基于ESB的企业应用集成框架的研究与应用[D].上海交通大

学,2010.

上一篇:转化思想在数学教学中的运用 下一篇:《吃水不忘挖井人》