JavaSpaces

简单分布式计算机制
授权协议 未知
开发语言 Java
所属分类 服务器软件、 分布式应用/网格
软件类型 开源软件
地区 不详
投 递 者 万志专
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

JavaSpaces技术是进行分布式计算的一种简单机制,在分布式计算应用程序中,JavaSpaces 提供了对象的提供者和请求者可用来方便地进行通信的共享虚拟空间,这允许以Java对象的形式对任务、请求和信息进行简单的交换。Javaspaces提 供了永久地建立和保存对象的能力,Javaspaces是建立在Jini之上的一种技术,它作为一种共享分布式通信的机制,还可作为一种存储对象的机 制;JavaSpaces是一种Jini技术服务,这表示使用Javaspaces的开发人员也可以利用各种Jini服务比如说利用事务处理和通知等。 JavaSpaces以一种非常简单的接口提供了这些功能,但是,有效地利用这种简单的接口需要大量的概念和工具。

在分布式系统中,对象之间应当能够相互通信、共享信息。JavaSpace服务 (JavaSpace service)利用对象的分布式存储(distributed repository)和三个简单操作(读、写和取),实现了一个简单的、构建分布式系统的高层体系结构。JavaSpace服务通过Jini事务管理器 和通知机制来支持事务,当与某个给定模板相匹配的条目写入JavaSpace服务时,通知机制能够通知某个对象。

二、JavaSpaces 概念
1、JavaSpaces 概念
可以从以下几个方面来理解JavaSpace概念:纯对象风格;作为Jini服务;具有共享分布式通信的机制; 对象存储机制。
从纯对象的观点,所有JavaSpace都是我们所说的JavaSpace接口的实现。它确实是得出那些有趣结果的一个非常小的接口。从Jini的观点来看,JavaSpace是一个利用Jini基础结构并向其他Jini客户机和服务提供其功能的一个Jini服务。
JavaSpaces提供了一种完成共享分布式计算的机制。这可能是它所提供的一种最重要的功能了。JavaSpaces还提供了一个非常有趣且简单的对象存储机制。这并不是说它们是一种对象数据库,但这确实是一个非常有用的功能。
2、JavaSpace服务
JavaSpace服务为Java对象提供分布式的共享存储器。任何与Java兼容的客户端都可以将共享对象放进这个存储器中。然而,对于这些Java对象有几个限制条件。首先,保存在JavaSpace服务的对象都必须实现接口Entry(在 net.jini.core.entry软件包中)。JavaSpace服务Entry附加到Jini Entry的方式定义在Jini核心规范中。一个Entry对象能够有多个构造函数并需要相当数量的方法。其他的需求包括一个public的无参数的构造函数、public字段和非基本数据类型的字段。
JavaSpace服务代理使用无参数的构造函数在反串性化过程中实例化匹配的Entry对象。所有的用于模板对Entry对象进行匹配的字段都必须是public的。Jini核心规范中定义,一个Entry对象不能包含基本数据类型的字段。这个对象类型的字段要求简化了匹配的模板模型,因为基本的数据类型不能有null值,该值在模板中作为通配符。
同Jini一样,JavaSpace技术需要几个底层的服务。JavaSpace服务依赖于Jini查询服务,在需要事务时,必须启动Jini事务服务,JavaSpace服务还依赖于一个Web服务器和RMI活动守护程序rmid。
三、JavaSpaces 技术
分布式环境中的很多应用程序和在本地环境下类似,需要持久地存储数据,JavaSpaces服务以完整的Jini服务的形式提供这一功能;和其他Jini服务一样,使用者可以通过查找过程使用其代理找到它,JavaSpaces采用了以Java为中心的策略,它不是数据存储服务,而是对象存储服务,也就是说,它保存完全的、有效的Java对象;事实上,它也只能保存Java对象,JavaSpaces彻底理解Java类型系统,可利用类型语义使需要存储、寻找和取出Java对象的应用更加自然贴切。
1、JavaSpaces的起源
创建JavaSpaces的很多工作是基于David Gelernter的早期研究,Gelernter是耶鲁大学的计算机科学家,他曾设计了一个称为Linda的系统,这个系统在很多方面都是 JavaSpaces的前身。Linda中的中心概念是元组(tuple)和元组空间,元组是把数据组合在一起的集合,而元组空间是供应用存进和取出元组的“共享黑板区”。这两个概念很显然与JavaSpaces中的项目(entry)和空间(space)概念相仿,不过尽管JavaSpaces很大程度上继承了Linda,但二者还是有些重要的区别。
第一,Linda元组不具有Java语言提供的强类型,也就是说,尽管元组中单个的元素(element)可被赋以类型,但整个元组不行。JavaSpaces提供的强类型不仅可用于Entry对象,而且可用于Entry指向的对象。
强类型对于JavaSpaces来说很重要,它使JavaSpaces可很好地满足那些希望使用Java平台强类型的应用。更进一步,JavaSpaces的Entry对象不仅可以使用强类型,而且它们可以进一步利用Java的类型系统,这意味着客户可基于超类关系进行搜寻,而Linda只允许值匹配。
第二,Entry对象在JavaSpaces中是真正的对象,也就是说,它们不仅可以有相关的数据,而且可以有方法。由于完整的对象可存储在JavaSpaces中,因此客户不仅可以取出“无生命”的数据,而且可以取出所需代码来操作这些数据。
最后,JavaSpaces很好地遵循了Jini规范和范型。Linda系统一般是用一个很大的、单独的Linda元组空间,而Jini群体通常可以有多个活跃的JavaSpaces服务,每个服务都可以支持自己单独的对象存储区。 JavaSpaces的Entry对象是由存储它们的客户租借的,因此Jini的自修复能力也很好地应用到这里。
Java的兴趣引起人们对Linda沿续下来的系统产生了新的兴趣,其中之一是IBM研究中心的TSpaces系统。TSpaces在很多方面都与JavaSpaces相似,但要大得多。Tspaces支持通过下载的程序修改元组空间的行为,支持数据库风格的索引和查询,还允许用户对元组设置访问控制安全策略。
2、对象的文件系统
3、基于属性的搜寻
4、JavaSpaces编程模型
四、JavaSpaces技术的应用
1)信息共享
2)计算服务
3)工作流

以上介绍内容来自百度百科

  • JavaSpaces技术的应用   一、概述 JavaSpaces技术是进行分布式计算的一种简单机制,在分布式计算应用程序中,JavaSpaces 提供了对象的提供者和请求者可用来方便地进行通信的共享虚拟空间,这允许以Java对象的形式对任务、请求和信息进行简单的交换。Javaspaces提 供了永久地建立和保存对象的能力,Javaspaces是建立在Jini之上的一种技术,它作为一种共享分布式通

  • 一、概述 JavaSpaces技术是进行分布式计算的一种简单机制,在分布式计算应用程序中,JavaSpaces 提供了对象的提供者和请求者可用来方便地进行通信的共享虚拟空间,这允许以Java对象的形式对任务、请求和信息进行简单的交换。Javaspaces提供了永久地建立和保存对象的能力,Javaspaces是建立在Jini之上的一种技术,它作为一种共享分布式通信的机制,还可作为一种存储对象的机制;

  • 我在Eclipse中编写了这些类,并启动了Launch-All脚本和Run示例。 有用。 之后,我将这些类导出到可执行的jar(JavaSpaceClient.jar)中,并使用以下命令尝试了该jar:java -jar JavaSpaceClient.jar它运行良好,给了我结果:搜索JavaSpace ...已发现JavaSpace。 将消息写入空间...从空间读取消息...读取的消息是:Зд

  • 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。 http://blog.csdn.net/topmvp - topmvp "Java P2P Unleashed" provides a single source for Java developers who want to develop P2P systems. The book

  • A few weeks ago we visited an existing client of ours to talk about some new ideas for replacing a functioning options exchange gateway with something new. The existing system worked fine, it was writ

 相关资料
  • 本章将重点介绍如何开始使用分布式TensorFlow。目的是帮助开发人员了解重复出现的基本分布式TF概念,例如TF服务器。我们将使用Jupyter Notebook来评估分布式TensorFlow。使用TensorFlow实现分布式计算如下所述 - 第1步 - 为分布式计算导入必需的模块 - 第2步 - 使用一个节点创建TensorFlow集群。让这个节点负责一个名称为“worker”的作业,并在

  • 在介绍GraphX之前,我们需要先了解分布式图计算框架。简言之,分布式图框架就是将大型图的各种操作封装成接口,让分布式存储、并行计算等复杂问题对上层透明,从而使工程师将焦点放在图相关的模型设计和使用上,而不用关心底层的实现细节。 分布式图框架的实现需要考虑两个问题,第一是怎样切分图以更好的计算和保存;第二是采用什么图计算模型。下面分别介绍这两个问题。 1 图切分方式 图的切分总体上说有点切分和边切

  • 一、MapReduce概述 Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序。编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集。 MapReduce 作业通过将输入的数据集拆分为独立的块,这些块由 map 以并行的方式处理,框架对 map 的输出进行排序,然后输入到 reduce 中。MapReduce 框架专门用于 <key,value> 键值

  • 类型 实现框架 应用场景 批处理 MapReduce 微批处理 Spark Streaming 实时流计算 Storm

  • 其于职业介绍所、工头、工人、工作模型的分布式计算框架。 职业介绍所有两种,一种是本地职业介绍所,一种是远程职业介绍所。顾名思义,本地职业介绍所就是在当前计算机上的,远程职业介绍所用于连接到远程职业介绍所的。 工人、工头都可以加入到职业介绍所,所以加到本地或远程种业介绍所都是可以的。 在同一个职业介绍所中,具有同样类型的工人、工头和工作都存在的时候,工作就可以被安排下去执行。当然,有两种安排方式,一

  • 有多台笔记本电脑,手机,如何统合这些计算资源? 比如我在一台电脑上安装QQ这个软件 另一台电脑上不需要再安装这个软件 也可以使用QQ这个程序也就是说同样的资源是需要在一台电脑上即可 (我尝试过网络存储,但是效果不太好,首先太慢了,其次需要把每台电脑灯配置成服务器) 另外一个要求 对于一个计算任务把它分配给不同电脑上的CPU进行计算 顺便问一下企业是如何实现多个CPU资源充分利用

  • 主要内容:一、从一个新闻门户网站案例引入,二、推算一下你需要分析多少条数据?,三、黄金搭档:分布式存储+分布式计算这篇文章聊一个话题:什么是分布式计算系统? 一、从一个新闻门户网站案例引入 现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。 但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。 如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。 比如说

  • 如何计算大的皮尔逊互相关矩阵( 更新:我读了阿帕奇火花的实现 但对我来说,看起来所有的计算都发生在一个节点上,而不是真正意义上的分布式。 请在这里放一些光。我还尝试在3节点火花群集上执行它,下面是屏幕截图: 正如您从第二张图中看到的,数据在一个节点上被拉起,然后进行计算。我在这里对吗?