使用 CORBA 或 ICE 进行计算机科学项目的想法
Posted
技术标签:
【中文标题】使用 CORBA 或 ICE 进行计算机科学项目的想法【英文标题】:Ideas for computer science project with CORBA or ICE 【发布时间】:2009-11-25 02:07:23 【问题描述】:我们必须使用 CORBA 或 ICE 执行一个关于分布式计算的学期项目。这是一个单人项目,我们有几个月的时间。
对于编程语言,我想专注于 c#,因为它可能是 C++ 之类的任何其他语言。
我不想写百万分之一的素数生成器,也许还有更有趣的东西我还没有想到..
【问题讨论】:
CORBA?有人还在用吗? 28 个问题在 SO 上标记为“corba”。以这种衡量标准来说不是很受欢迎。 您推荐的 corba 替代品有哪些? CORBA 在嵌入式空间中的使用量仍然相当可观。 @duffymo,这听起来就像人们说“C++?还有人在使用它吗?”当然是的!并且会... 【参考方案1】:不确定项目的重点是分布式处理部分还是您决定的实际任务。
CORBA 在现实世界中比 ICE 更为流行,尽管这几乎不是你想要的职业。它仍在各种嵌入式项目中使用,并且在某些军事应用中仍然相当流行。
ICE 更易于使用,但几乎没有 CORBA 的行业渗透率(据我所知)。但是,如果您的目标是完成一个项目并学习分布式原理,那么我会接受它。与 CORBA 相比,学习和使用它的痛苦要小得多。事实上,ICE 是由前 CORBA 工程师开发的,他们希望纠正他们在 CORBA 中看到的一些错误。
【讨论】:
【参考方案2】:我发现容错使分布式计算项目更有趣。任务本身可以相对简单,但确保它能够处理不可用的系统或错误数据增加了一个很好的额外要求。
【讨论】:
我不明白你的意思。您可以像调用任何其他方法一样调用 corba 方法。当服务不可用或任何参数的值无效时,会像任何其他代码一样抛出异常? 你必须处理失败的节点,即不给出他们任务的结果。错误数据有点棘手,它可能是一个有效值,但却是一个完全错误的结果。 我们的目标是永远不会抛出异常,冗余后端,也许还有纠错,防止客户端失败。【参考方案3】:如果我是你,....我会去找你的教授并要求在界外工作。要求解除 CORBA 或 ICE 要求。
询问您是否可以使用非 Corba 的东西。询问您是否可以使用 REST、XML Web 服务,甚至 protobufs。
就原则而言,CORBA 并非无关紧要,但它在商业吸引力方面几乎无关紧要。做一些能教给你一些最新技能的事情。
对我来说,这就像研究真空管。在学术和科学上都很有趣,但是......
与其说是质数生成器,不如来点更有趣的?
分布式哈希表,类似于新的 BitTorrent 设计。
计算场的工作分配系统。您将如何在该农场中构建分布式地图/减少?你可以做加密、压缩、视频翻录。使用模块化架构构建适用于任何这些工作的通用分布式工作管理系统。您将如何检测故障(主机脱机或无响应)?你会如何处理复苏的主人?
SETI-@Home 类型的网络。或蛋白质折叠。或气候趋势分析(使用公共领域数据库 - http://en.wikipedia.org/wiki/Public_Domain_Resource)您正在做的事情比计算素数更实用。
或者 - 实际上是做素数问题,但将其应用于密码学,破解密钥。
代理网络,您实际上将代码分发到节点以执行。 JavaSpaces 之类的东西。
一个扑克机器人。
只是一些想法。
【讨论】:
不要仅仅因为您认为它们不受欢迎而忽略较低级别的 RPC 机制。 REST 和所有 Web 服务在某些领域都很好,但绝对不是所有领域。 我猜你找到了我。我对 CORBA 不屑一顾,因为我看不到它,因为这告诉我它不是最佳的职业投资。建议我不应该因为我没有看到它而忽略它——这对我来说似乎倒退了。 1996 年,当 Java 出现时,CORBA 是错误的选择。从那时起,CORBA 一直是大多数人的错误选择。没有 CORBA 行业。没有一家公司在其中赚钱。我很惊讶它仍在讨论中。 不清楚 OP 是否想要最佳的职业投资或了解 DP,在这种情况下,CORBA 根本不是一个糟糕的选择。由于 RPC 每十年进行一次自我改造,因此也不确定当前的时尚是否是最优的。正如 gf 所指出的,网络服务等不适用于电信、软件无线电、嵌入式等领域的大量应用程序,即使它们可能不像最新的网络事物那样引人注目,但它们确实存在和人们获得报酬来编写代码。 虽然 CORBA 有真正的技术缺陷——这证明了由委员会设计——没有一家公司在这方面赚钱,因为没有人拥有它,也没有一家大公司真正推动它。请参阅 MS 在各种 RPC 技术上的多次尝试以杀死它。问题是,旧的东西又变成了新的东西,OP 可能比钻研一些问题做得更糟。 如果没有一家公司在一项技术上赚钱,那么无论它是由社区“拥有”还是由单个实体“拥有”,它要么死要么死。以 Linux 为例:在以 IBM 和甲骨文为首的大公司开始寻找在它上面赚钱的方法之前,它主要是学术兴趣。如果一项技术获得的总收入像 CORBA 一样长期下降,这不是一个好兆头。不是我想要我的时间投入的地方,也不是我建议其他人投入的地方。【参考方案4】:如果您的项目要求您使用 CORBA 或 ICE。我会说两个都试一下,看看你先在哪一个上取得进展,然后再用那个。他们似乎都有 C# 接口(来自谷歌搜索)。
否则,您可以考虑使用 .Net Remoting。有一次我被要求做这件事时,让这些基础知识为我工作并不太难……~2 年前了。
【讨论】:
以上是关于使用 CORBA 或 ICE 进行计算机科学项目的想法的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的计算机上安装 Corba 的实现,然后使用与 Corba 兼容的任何语言进行编程