JavaSpaces技术是否真正具有实际用途以及它是如何实现的?
答案 0 :(得分:3)
我们目前正在使用javaspaces(Sun outrigger实现)来协调松散耦合的进程。它背后的想法是引人注目的,API非常简单。实际的实施是一个问题。它建立在Jini之上,因此需要5或6个进程来占用空间。而且,至少在Sun的实现中,没有办法让它通过特定端口进行通信,这使防火墙变得有点痛苦。
我们遇到的另一个问题是空间中没有隐含的排序。因此,如果您放入5个对象,并且您的模板在read / take上匹配全部5个,则未指定您将获得哪个。根据应用程序的不同,这可能是也可能不是问题。
答案 1 :(得分:2)
GigaSpaces是JavaSpaces的成熟版本。它广泛用于保持安静的金融应用中。
对于实现,它基本上是Jini之上的事务对象数据库。查询类似于db4o。
答案 2 :(得分:1)
我已经看到它在财务应用程序中使用,主要用于管理计算工作者(网格样式),其中条目从前端应用程序写入空间,并由工作人员通过匹配显示需要工作的字段来提取。结果可以写回空间,触发前端应用程序注册的notify
,然后读取完成的工作。
对于计算工作者来说没关系,但缺乏排序可能是一个问题(如果仅仅是因为不可预测性) - 某些实现具有强制执行FIFO排序的功能。它也被用于长期数据存储,因为它是持久的,但我不认为这是一个好主意。管理工具不够好,无法使其易于管理,并且由于数据量而导致性能下降。
使用了Dan Creswell的Blitz JavaSpaces实现 - 它具有一系列功能(可以在瞬态或持久模式下运行),设计为健壮(具有事务日志记录)并保持高性能,并且非常可调。与其他Jini服务一样,您可以配置“导出器”以使其侦听特定端口以使防火墙更容易 - SSL传输和完整PKI也被使用,并且可以通过Jini的通信抽象实现。
我认为Gigaspaces是唯一一个通过多种方式扩展规范而不断创新的实现,很高兴看到。它们使其适用于各种用例,并增加了实现功能,如群集和高可用性。使用它会让我担心,因为我很高兴看到社区中有两个或更多这些功能的实现,因为Gigaspaces是相当专有的。
答案 3 :(得分:0)
我相信Orbitz是酒店的预订系统,可以在Jini上运行。
基于Java Posse剧集#82,#84和#86这是对Vin Simmons的采访,这种技术有时用于军事或金融应用,这些应用在安静中是不幸的。
答案 4 :(得分:0)
@Keith:可以在一个进程/ JVM中启动所有服务(以前是至少),我认为有关于如何执行此操作的文档。
我相信Jini / Javaspaces在欧洲的一些大型应用程序(票务,手机等)中使用。 GE Aircraft也用于研究和分析。
德克萨斯理工大学的SORCER lab有一个基于Jini / Javaspaces的大型SOA架构,你可以在那里找到一些帮助。
答案 5 :(得分:0)
此时我还没有意识到JavaSpaces的任何新用法。对于分布式计算,大多数大型系统都是使用内存数据网格技术或类似NoSQL的分区解决方案构建的。 (我看到使用了很多Oracle Coherence,但这可能是因为我使用它。)
为了充分披露,我在Oracle工作。本文中表达的观点和观点是我自己的,不一定反映我的雇主的意见或观点。