有人在使用JavaSpaces技术吗?

有人在使用JavaSpaces技术吗?,java,distributed-computing,javaspaces,Java,Distributed Computing,Javaspaces,JavaSpaces技术是否有真正的实际用途?它是如何实现的?我们目前正在使用JavaSpaces(Sun Outlineger实现)来协调松散耦合的流程。它背后的思想是令人信服的,API非常简单。实际执行一直是一个问题。它建立在Jini的基础上,因此需要5到6个进程才能打开一个空间。而且,至少在Sun的实现中,没有办法让它通过特定端口进行通信,这让防火墙有点痛苦 我们遇到的另一个问题是空间中没有隐含的顺序。因此,如果您放入5个对象,并且您在read/take上的模板与所有5个对象都匹配,那么您

JavaSpaces技术是否有真正的实际用途?它是如何实现的?

我们目前正在使用JavaSpaces(Sun Outlineger实现)来协调松散耦合的流程。它背后的思想是令人信服的,API非常简单。实际执行一直是一个问题。它建立在Jini的基础上,因此需要5到6个进程才能打开一个空间。而且,至少在Sun的实现中,没有办法让它通过特定端口进行通信,这让防火墙有点痛苦


我们遇到的另一个问题是空间中没有隐含的顺序。因此,如果您放入5个对象,并且您在read/take上的模板与所有5个对象都匹配,那么您将得到哪一个对象是未知的。根据应用程序的不同,这可能是问题,也可能不是问题。

我相信Orbitz是一个在Jini上运行的酒店预订系统


根据Java Posse剧集《84》和《86》对Vin Simmons的采访,这项技术有时被用于军事或金融应用,但令人遗憾的是,这些应用都是保密的。

几年前我使用过它,但它可能没有太大变化

@Keith:在单个进程/JVM中启动所有服务(过去至少是这样)是可能的,我认为有关于如何做到这一点的文档

我相信Jini/Javaspaces在欧洲的一些大型应用程序(票务、手机等)中使用。GE飞机也用于研究和分析

德克萨斯理工大学在Jini/Javaspaces上构建了一个大型SOA体系结构,您可以在那里找到一些帮助。

是Javaspaces的成熟版本。它被广泛应用于金融应用中,这些应用都是保密的


至于实现,它基本上是一个事务对象数据库。查询类似于db4o。

我在金融应用程序中看到过它,主要用于管理计算工作者(网格样式),其中条目从前端应用程序写入到空间中,由工作者通过匹配显示需要工作的字段来提取。结果可以写回空间,触发前端应用程序注册的
通知
,然后读取已完成的工作

对于计算机工作者来说,这没关系,但是缺少排序可能是您的一个问题(如果只是因为不可预测性的话)——有些实现具有强制执行FIFO排序的功能。它还用于长期数据存储,因为它是持久的,但我认为这不是一个好主意。管理工具不足以使其易于管理,并且由于数据量大,性能受到影响

Dan Creswell的实现被使用-它有一系列很好的特性(可以在瞬态或持久模式下运行),设计为健壮(带有事务日志)并保持高性能,并且非常可调。与其他Jini服务一样,您可以将“导出器”配置为在特定端口上侦听,以使防火墙更容易—SSL传输和完整的PKI也被使用,并且由于Jini对通信的抽象而成为可能


我认为Gigaspaces是唯一通过以多种方式扩展规范而不断创新的实现,这很好。他们使它适合各种各样的用例,并增加了实现特性,如集群和高可用性。不过使用它会让我担心,因为如果Gigaspaces是相当专有的,我会更高兴地在社区中看到这些功能的两个或多个实现。

目前我还不知道JavaSpaces的任何新用法。对于分布式计算,大多数大型系统都是使用内存数据网格技术或类似NoSQL的分区解决方案构建的。(我看到很多Oracle Coherence被使用,但这可能是因为我在使用它。)

为了充分披露,我在甲骨文公司工作。在这篇文章中表达的意见和观点是我自己的,并不一定反映我的雇主的意见或观点