旅行软件。这是一个概念吗?

时间:2010-05-28 20:13:19

标签: distributed-system

我想问一下,是否存在一个程序,它打算在全球范围内旅行(例如跟随一些物理力量),可能占用和释放计算资源/节点。从字面上看,这意味着某些基于代理的系统只是定期更改其位置和(在某种程度上)不可避免的配置。

一个例子是:假设你有空间的外部传感器和免费的计算机 - 节点;自我复制代理跟随传感器的初始化器是否有意义,但是以这种限制性方式,计算仅局限于物理业务正在进行的位置。

我想强调的是,这个问题仅仅是为了“理论上的”乐趣,因为除了“过时”(替代?)代理处理的优化之外,我看不到所提到的限制的任何实际好处。但也许它可能有一些兴趣。谢谢!

编辑:很明显病毒是合适的例子,尽管删除这些代理很少是开发人员关心的问题。更准确地说,我对“旅行”软件感兴趣 - 也就是说,当代理的计数(或至少是顺序)是不变的时候,它只是整个系统的旅行。

7 个答案:

答案 0 :(得分:5)

obiququous计算的研究界在这些问题上做了很多工作。

例如,如果您正在处理文档,则会根据您周围的设备显示特定的交互模式。如果你正在沟通,同样的事情。你可以说许多基于位置的计算应用程序都做类似的事情。国防部正在赞助一些关于情境敏感的自动助理等的研究。

如果我们假设一个跨越全球的分布式“云”,那么计算实际发生的位置对您来说将是未知且透明的。重要的是背景。考虑到GPS设备正在变得无处不在,视频处理变得越来越便宜(我的50美元的相机可以发现面部),那么上下文的质量肯定会增加。从这个意义上说,许多程序已经体现了你所描述的愿景。

答案 1 :(得分:2)

任何可以通过移动程序完成的事情似乎都可以通过广泛分布的程序做得更好。

答案 2 :(得分:1)

我自己从未使用它,但编程语言Obliq似乎适合这种计算。来自 此网页上引用了Obliq paper(第12页):

  

Obliq解决了一种非常动态的形式   分布式编程,其中对象   可以重定向他们的行为   网络,以及计算的地方   在网站之间漫游。

答案 3 :(得分:1)

我相信您所寻找的是移动代理商

顺便说一句:我不相信病毒有资格。病毒的一个明确特征是不能独自旅行,而是依靠人类用户来传播它。但是,蠕虫符合条件。

答案 4 :(得分:1)

这可能是间接的,也是Jini背后的原则之一。在这种情况下,可以说,这是下载驱动程序的问题。但由于它是基于Java的,因此从设备到设备的可移植代码概念是该系统的核心理念之一。

现在,为此,此代码本身不会“移动”,而是会被复制。它不会“离开”服务器。

但是你可以看到,特别是使用Java,从一个空的JVM和某种shell开始的基础知识,让代码从一个JVM“移动”到另一个JVM非常简单。

你可以看到这样的过程。

1)系统A运行应用程序,具有状态和本地类。 2)系统B在系统上执行“转移shell”。 3)A想要将应用程序移动到B. 4)暂停应用程序并序列化其状态,可以像刚刚使用库存Java对象序列化一样简单。此序列化对象具有“重新启动”方法。 5)B设置一个引用系统A上的类的ClassLoader。这个类加载器将根据请求从A复制到B,然后它可以在本地存储它们。 6)A将序列化的应用程序状态发送给B,B对其进行反序列化。 7)B上的ClassLoader开始从A中提取类文件,因为应用程序被反序列化 8)对象反序列化后,B调用“restart”方法,应用程序继续运行。 9)“忘记”应用程序,B继续从A分离。

显然这是天真的,充满了潜在的问题。

但你可以看到,特别是对于虚拟机,这样的事情是如何起作用的。

现代虚拟机架构正在研究这个过程,实际上是这个过程,即快照运行的虚拟机,将映像移动到其他机器,然后启动它们。虚拟机的基础使这“简单”。

Java示例只是您可以使用的内容,而无需成为虚拟化工程师。

答案 5 :(得分:0)

是的,如果您在全球范围内拥有处理交付网络并进行某种脚本迁移,则可以登录并根据某种地理位置将脚本迁移到您附近的节点。

答案 6 :(得分:0)

也许Botnet的主人很接近你要找的东西?显然非常类似于上面的“病毒”答案:不同之处在于,虽然病毒通常会“复制,传播,做一个预先编程的不方便的事情”,但僵尸网络更像是“控制你的机器以备将来使用,通常是邪恶的,但是动态目的。'我认为主机(您的“代理”)也可以更容易地使用僵尸网络进行更改。