JavaSpaces技术有真正的实际应用吗?它到底是如何实现的?
发布于 2009-02-24 14:57:51
我们目前正在使用javaspaces ( Sun outrigger实现)来协调松散耦合的流程。它背后的思想是引人注目的,并且API非常简单。实际的实现一直是个问题。它是在Jini上构建的,所以需要5到6个进程才能打开一个空间。而且,至少在Sun的实现中,没有办法让它通过特定的端口进行通信,这使得防火墙有点麻烦。
我们遇到的另一个问题是空间中没有隐含的排序。因此,如果您放入5个对象,并且您的读取/take上的模板匹配所有5个对象,则未指定您将获得哪个对象。这可能是问题,也可能不是问题,具体取决于应用程序。
发布于 2009-06-23 20:45:32
GigaSpaces是JavaSpaces的成熟版本。它被广泛应用于金融应用程序中,而这些应用程序都是保密的。
至于实现,它基本上是一个建立在Jini之上的事务性对象数据库。查询类似于db4o。
发布于 2011-09-21 14:23:39
我见过它在金融应用程序中使用,主要用于管理计算工作者(网格风格),其中条目从前端应用程序写入空间,并由工作者通过匹配表示需要工作的字段来提取。结果可以写回空间,触发由前端应用程序注册的notify,然后它会读回完成的工作。
对于计算工作者来说,这是可以的,但缺乏排序对您来说可能是一个问题(如果只是因为不可预测性)-一些实现具有强制FIFO排序的功能。它也被用于长期数据存储,因为它是持久的,但我不认为这是一个好主意。管理工具不够好,无法使其易于管理,而且由于数据量太大,性能也会受到影响。
使用了Dan Creswell的Blitz JavaSpaces实现-它有一系列很好的特性(可以在瞬态或持久模式下运行),被设计为健壮(具有事务日志)并保持高性能,并且它非常可调。与其他Jini服务一样,您可以配置“导出器”,让它侦听特定的端口,从而使防火墙更容易- SSL传输和完整的PKI也被使用,并通过Jini的通信抽象成为可能。
我认为Gigaspaces是唯一一个通过以多种方式扩展规范而继续创新的实现,这是很高兴看到的。他们让它适应了各种各样的用例,并添加了集群和高可用性等实现功能。然而,使用它会让我担心,因为我会更高兴地看到社区中有两个或更多这些功能的实现,因为Gigaspaces是相当专有的。
https://stackoverflow.com/questions/581999
复制相似问题