首页 > 人工智能 > 正文

SOA实施:桥接.NET与Java程序

2010-08-09 18:39:03  来源:天极网

摘要:本文讲述德国邮政著名的Swordfish项目,改项目架构采用了三个热门技术形成SOA运行时间平台:服务组件体系架构(SCA)、Java企业整合(JBI)和开放服务网关倡议(OSGi)。
关键词: SOA .NET

    Swordfish(箭鱼项目)可以说是德国邮政(Deutsche Post)几年前进行大规模IT基础设施现代化改造项目的副产品。这一基于德国邮政技术的架构采用了三个热门技术形成SOA运行时间平台:服务组件体系架构(SCA)、Java企业整合(JBI)和开放服务网关倡议(OSGi)。公司技术系统架构(TeSA)部门的集成专家Steven Engelhardt说,公司采用了一套适当的部署项目并重用业务服务,进而完成对基础设施的改造,最终获得一个包含SOA平台所需的各种组成部分的SOA框架。

    此前,为统一其各业务部门和子公司的企业平台标准,德国邮政采用了基于Java的企业应用集成(EAI)方案。但正如Engelhardt所说,没有任何IT环境是匀质的(homogeneous)。他说,“当时,我们向SOA转型过程中使用的系统集成平台主要是基于Java的。直到2005年末,我们还只有一个.NET应用程序,这是一个关键的用于SOA集成的客户关系管理程序。”

    公司要求Engelhardt在无需重新部署ESB的情况下将此应用程序集成到基于Java的基础设施中。Engelhardt说,这个由Glinz Covis公司开发的大型CRM系统是德国邮政进行销售和市场操作的关键。它必须能够从公司的其它系统中获取数据,比如客户联系信息库和中央客户数据库,“这个CRM系统必须能够与IT环境下的许多系统进行通信。”

    然后,便是与Codemesh公司的合作。Codemesh公司是一家大规模过程集成技术供应商。该公司开发了用于Java和.NET程序、Java与C++程序、以及JMS与C++和.NET程序之间互相集成的产品。德国邮政此前就曾使用其JunC++ion方案将一个用C++编写的客户投诉管理系统集成到服务主干网中。

    连接.NET与Java的桥梁

    对于这次从.NET向Java的集成,德国邮政采用了Codemesh的新产品:JuggerNET。

    Codemesh总裁Alex Krapf说,“当.NET首次出现时,我们还怀疑过它是否有能力继续发展。但我们很快就改变了主意,决定开发.NET版本的JunC++ion。”

    JuggerNET就是为.NET开发人员准备的开发工具,就像为C++开发人员准备的JunC++ion一样:它可以为任意Java类生成.NET绑定(binding),可以用来发布.NET版本的Java API,并为Java API生成COM绑定,以及将.NET客户端集成到JMS或EJB程序中。

    JuggerNET附带一个代码生成程序,可以将输入的Java字节码转为能在各平台和编译器上移植的C#源文件、批处理编译文件和项目文件。软件包中还包含两种运行时程序库:强名称类(strongly named)和非强名称类。它们构成了Java和.NET集成的抽象层。JuggerNET运行时程序库在CLR过程中使用P/Invoke和JNI执行原始的Java程序。运行时程序库已作为完美的集成方案中的一部分加入到软件包中。

    JuggerNET中还包含一个可选的共享JVM服务器,无需Java运行环境(JRE)便可在部署在运行.NET代码的主机上。

    JuggerNET可以从Java代码中生成.NET的桥接组件,这将减少甚至完全消除对编写集成代码的需求。它为Java类提供了质量高、可读性强的.NET代理服务器,可以用编码器可以处理集成代码。

    从概念到实施

    2005年末,Engelhardt团队以一个简单的观点验证程序开始了他们的集成项目。Engelhardt说,“那时我的任务就是搞清楚集成的原理,以及集成完全发挥效应需要多少时间。以前的我完全生活在Java的世界中,所以根本没有任何.NET方面的经验。但我们只用了两三周的时间就完成了(PoF),这让我很吃惊。”

    从2006年初开始,德国邮政TeSA部门已经开始应用集成进入产品开发阶段。Engelhardt解释道,“我们当时已经使用JuggerNET为一个接口部署了集成初期的几个部分。在剩下的一年时间里就是简单地插入越来越多的接口和相应的IT系统。”

    能够生成将Java集成到.NET开发环境所需的类是JuggerNET最受Engelhardt喜欢的地方之一。他说,“它为你提供了GUI工具。你只要插入.NET核心所需的Java类,它就能为你生成任何东西。这样就可以工作在.NET的环境下,而无需为与Java相关的任何事费心。很直观,用起来也很简单。”


第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。