【发布时间】:2011-06-10 01:11:42
【问题描述】:
我正在寻找一种针对构建分布式应用程序的技术。我的朋友建议我使用 CORBA(Java 和 C++ 组合)。但我读过它是一种过时的东西。我打算编写相当简单的分布式应用程序。您建议使用哪些解决方案?谢谢!
【问题讨论】:
标签: c# java c++ distributed
我正在寻找一种针对构建分布式应用程序的技术。我的朋友建议我使用 CORBA(Java 和 C++ 组合)。但我读过它是一种过时的东西。我打算编写相当简单的分布式应用程序。您建议使用哪些解决方案?谢谢!
【问题讨论】:
标签: c# java c++ distributed
如果您想将代码逻辑分发到多个服务器并将其作为单个实体进行管理,我会推荐来自 Appistry 的 CloudIQ Platform。您可以将 Java、.NET 和 C/C++ 代码部署到框架。从管理的角度来看,服务器工作并作为一个服务器。当您提交执行请求时,框架会将请求分发给可用的最佳工作人员,执行负载平衡。使用此框架,您可以拥有生产者/消费者、分散/收集和其他并行类型的作业。
该框架还监控作业的执行,因此如果出现任何类型的硬件故障,其他机器将被分配在故障服务器上运行的作业。
【讨论】:
CORBA 已经很老了。要选择库或框架,问题是:为什么要分发它? (目标是什么?性能/并行化?可扩展性?系统各部分位置的物理限制?)哪种节点将运行各个部分?您更愿意使用哪些语言?
【讨论】:
推荐使用ICE(Internet Communications Engine),ICE可以支持多种操作系统平台(Windows、Linux、Solars、Mac OS、iOS、Android...),多种开发语言(C++、Java、.NET、Python、 Ruby、PHP),而且更简单。
【讨论】:
您可以使用 SOAP 网络服务。我目前正在使用 SOAP 在 Python 和 .NET 上开发分布式测试系统,它易于编写和部署。
对于不同的语言和平台,有很多不同的 SOAP 服务器/客户端库。
【讨论】:
是的,CORBA 以及 COM 和 DCOM 等技术都已经过时了……我不确定您想要完成什么,但我希望使用 .NET 远程处理来构建分布式应用程序。如果您的应用程序非常简单,您甚至可以使用邮槽或命名管道通过网络传递简单数据。
【讨论】:
正如 sinelaw 所提到的,在提出好的建议之前有很多问题,但是,您可能希望将 REST (http://en.wikipedia.org/wiki/Representational_State_Transfer) 视为在应用程序之间传输数据的一种方式。 REST 的优点在于它可以接受和返回的内容很灵活,例如,您可以上传文件并返回 PDF。尽管它用于 http,但这并不是唯一允许的协议。它与语言/平台无关。
如果您想使用标准化的东西,那么 SOAP 或 REST 可能是您最好的选择,如果您想独立于平台。如果您不介意仅限于 Java/JVM 或 .NET,那么还有其他选择,但这会变得非常有限制。
正在传递什么类型的数据?安全性有多重要?应该使用哪些平台/语言?项目的目的、目标是什么?
【讨论】:
如果您想要一个也可以与不同协议一起使用的便携式解决方案,那么 Mono 上的 WCF 可能是一个不错的选择
【讨论】:
对于 .Net 我建议你使用 WCF ,它实现起来非常简单且非常灵活,如果你的目标是了解深度分布式应用程序,CORBA 是一个不错的选择,但不更推荐用于实际项目,目前非常困难寻找掌握 CORBA 的开发人员。
【讨论】: