首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式应用中不同技术之间的通信

分布式应用中不同技术之间的通信
EN

Software Engineering用户
提问于 2011-10-20 06:14:20
回答 7查看 1.1K关注 0票数 7

我不得不将几个遗留应用程序和服务合并到一个网络分布式应用程序中。现有的服务和应用程序使用不同的语言和技术编写,包括: java、C#.Net和C++;所有这些服务和应用程序都运行在machines机器上。现在我想知道他们之间的沟通机制。什么是简单和标准的方式?谢谢!PS。通信包括简单的消息发送和远程方法调用。

EN

回答 7

Software Engineering用户

回答已采纳

发布于 2011-10-20 11:56:03

不幸的是,没有所谓的“标准解决方案”,所以您必须弄清楚您的需求是什么,并从中选择最适合的选择。

这里有几个选择。

对于网络应用程序集成透视图,http上的SOAP可能是找到创建集成的最佳方法(辛苦但透明)。

windows平台本身也提供了不同的集成方法。Windows进程到windows进程通信可能解决bij (D)COM或命名管道(如果在同一台计算机上),甚至RPC也可能解决您的需求。

对于您的java应用程序,您可以使用JNDI创建c++应用程序的本地集成,从那里您甚至可以访问(D)COM,因此有很多选项。

票数 7
EN

Software Engineering用户

发布于 2011-10-20 13:05:34

如果你能负担得起,BizTalk就是直接针对这类问题的。它有一个一致的编程模型,因此如果您可以为每个孤立的系统创建一个BizTalk适配器,那么您可以创建BizTalk编排来控制所有这些系统之间的信息流。在我的经验中,它也很有表现力。

票数 4
EN

Software Engineering用户

发布于 2011-11-15 15:26:15

您可以尝试使用ZeroMQ,这是一个用于网络通信的现代开源库,它绑定了C++、.NET、Java和大多数您可以想到的语言。

来自ZeroMQ登陆页面:

代码语言:javascript
复制
The socket library that acts as a concurrency framework.
 Ø  Faster than TCP, for clustered products and supercomputing.
 Ø  Carries messages across inproc, IPC, TCP, and multicast.
 Ø  Connect N-to-N via fanout, pubsub, pipeline, request-reply.
 Ø  Asynch I/O for scalable multicore message-passing apps.
 Ø  Large and active open source community.
 Ø  30+ languages including C, C++, Java, .NET, Python.
 Ø  Most OSes including Linux, Windows, OS X.
 Ø  LGPL free software with full commercial support from iMatix.

ZeroMQ没有指定您的消息的格式,所以您可以使用您喜欢的任何序列化,尽管您希望使用与.NET/Java/C++兼容的类型。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/115271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档