【问题标题】:Distributed Programming Technology分布式编程技术
【发布时间】:2011-06-10 01:11:42
【问题描述】:

我正在寻找一种针对构建分布式应用程序的技术。我的朋友建议我使用 CORBA(Java 和 C++ 组合)。但我读过它是一种过时的东西。我打算编写相当简单的分布式应用程序。您建议使用哪些解决方案?谢谢!

【问题讨论】:

    标签: c# java c++ distributed


    【解决方案1】:

    如果您想将代码逻辑分发到多个服务器并将其作为单个实体进行管理,我会推荐来自 Appistry 的 CloudIQ Platform。您可以将 Java、.NET 和 C/C++ 代码部署到框架。从管理的角度来看,服务器工作并作为一个服务器。当您提交执行请求时,框架会将请求分发给可用的最佳工作人员,执行负载平衡。使用此框架,您可以拥有生产者/消费者、分散/收集和其他并行类型的作业。

    该框架还监控作业的执行,因此如果出现任何类型的硬件故障,其他机器将被分配在故障服务器上运行的作业。

    【讨论】:

      【解决方案2】:

      CORBA 已经很老了。要选择库或框架,问题是:为什么要分发它? (目标是什么?性能/并行化?可扩展性?系统各部分位置的物理限制?)哪种节点将运行各个部分?您更愿意使用哪些语言?

      【讨论】:

      • 我的目标只是有一些实践和获得知识。通过升序,C# 然后 Java 然后 c++。
      • 我假设您想要一个网络分布式应用程序(不是本地并行化的)。首先花一些时间了解基本的网络概念。然后,如果您想从 C# 开始,我建议您实现一个 Web 服务,然后是一个将从该服务调用方法的应用程序。您可以尝试查找有关该主题的教程,也许是:codeproject.com/KB/webservices/myservice.aspx
      【解决方案3】:

      推荐使用ICE(Internet Communications Engine),ICE可以支持多种操作系统平台(Windows、Linux、Solars、Mac OS、iOS、Android...),多种开发语言(C++、Java、.NET、Python、 Ruby、PHP),而且更简单。

      【讨论】:

      • 谢谢!我刚刚读过它。我想我会尝试使用它
      【解决方案4】:

      您可以使用 SOAP 网络服务。我目前正在使用 SOAP 在 Python 和 .NET 上开发分布式测试系统,它易于编写和部署。

      对于不同的语言和平台,有很多不同的 SOAP 服务器/客户端库。

      【讨论】:

      • 但如果我的目标不是网络?我还能使用 SOAP 吗?
      【解决方案5】:

      是的,CORBA 以及 COM 和 DCOM 等技术都已经过时了……我不确定您想要完成什么,但我希望使用 .NET 远程处理来构建分布式应用程序。如果您的应用程序非常简单,您甚至可以使用邮槽或命名管道通过网络传递简单数据。

      【讨论】:

      • 但如果我使用 c# 应用程序将无法在其他机器上的非 Windows 操作系统上运行。使用一些跨平台的解决方案会不会很困难?无论如何,周围有很多Windows,所以感谢您的建议。我用 C# 编写了简单的管道应用程序。
      • 正确...使用远程处理可能会遇到兼容性问题。所以远程处理不是跨平台解决方案的方式——我认为 Web 服务是一个很好的解决方案(易于使用,甚至比远程处理更可分发)。但是,远程处理比 Web 服务执行得更好,因为它可以通过 TCP/IP 使用。这是一篇好文章:msdn.microsoft.com/en-us/library/ms978420.aspx
      【解决方案6】:

      正如 sinelaw 所提到的,在提出好的建议之前有很多问题,但是,您可能希望将 REST (http://en.wikipedia.org/wiki/Representational_State_Transfer) 视为在应用程序之间传输数据的一种方式。 REST 的优点在于它可以接受和返回的内容很灵活,例如,您可以上传文件并返回 PDF。尽管它用于 http,但这并不是唯一允许的协议。它与语言/平台无关。

      如果您想使用标准化的东西,那么 SOAP 或 REST 可能是您最好的选择,如果您想独立于平台。如果您不介意仅限于 Java/JVM 或 .NET,那么还有其他选择,但这会变得非常有限制。

      正在传递什么类型的数据?安全性有多重要?应该使用哪些平台/语言?项目的目的、目标是什么?

      【讨论】:

        【解决方案7】:

        如果您想要一个也可以与不同协议一起使用的便携式解决方案,那么 Mono 上的 WCF 可能是一个不错的选择

        【讨论】:

          【解决方案8】:

          对于 .Net 我建议你使用 WCF ,它实现起来非常简单且非常灵活,如果你的目标是了解深度分布式应用程序,CORBA 是一个不错的选择,但不更推荐用于实际项目,目前非常困难寻找掌握 CORBA 的开发人员。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-06-09
            • 2012-04-26
            • 2010-11-21
            • 1970-01-01
            • 1970-01-01
            • 2014-08-15
            • 1970-01-01
            相关资源
            最近更新 更多