快速业务通道

高影响力的Web层群集, 第二部分: 用JavaSpaces构建 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
几乎所有更复杂的 orthogonal 考虑都推到 API 线下面了 -- 推给了 JavaSpaces 服务的特 定实现 -- 使设计者可以处理真正的应用问题。基本原则是这些复杂问题现在只需解决一次 ,可以由能干的专家工程师和理论家去做。要进一步理解这种体系结构,我们必须越过概念 看一下 JavaSpaces 的实际表现。

高影响力的Web层群集, 第二部分: 用JavaSpaces构建(2)

时间:2011-04-16 IBM Sing Li

应用 JavaSpaces

物理上讲,一个 JavaSpace 就是一个由 Jini 联合的服务(参阅侧栏“ 关于 Jini 的种种”)所实现的 Java 接口。这个 net.jini.space.JavaSpace 接口是 JavaSpaces 客户访问服务功能的唯一途径。虽然 JavaSpaces 服务是一种远程服务,但是服务给应用程 序提供了本地 Jini 代理(其作用类似于下载的驱动程序),使对 JavaSpaces 接口的调用都 成为应用程序 VM 中“内部”的。表 1 给出了每一种操作的更详细说明。

表 1. 基本 JavaSpaces 操作

操作 说明
read 在空间中搜索与所提供的模板相匹配的项,并返回该项的副本。这种操作 会停止响应直到找到一项或者达到了指定的超时时间。
take 在空间中搜索与所提供的模板相匹配的项,从空间中删除该项并返回该项 的一个副本。这种操作会停止响应直到找到一项或者达到了指定的超时时间。
write 将项的副本放入空间中。

这些基本的操作所操作的对象称为 Jini 项(entry) 。关于如何将 Java 对象作为字段 附加到这些项上的信息参阅侧栏“ Jini 项”。

除了这三种基本的操作,JavaSpace 接口还有三个常用的方法,如表 2 所示:

表 2. 其他 JavaSpaces 操作

操作 说明
notify 当与所提供的模板相匹配的项写入空间时,通过 Jini 远程事件通知相关 的注册表。
takeIfExists 只有当出现匹配时才取一项,否则返回 null。这种操作在查找匹配的项时 不会停止响应(除非未完成的事务锁定了这个项 -- 参阅有关事务的下一节)。
readIfExists 只有当匹配时才读取一项,否则返回 null。这种操作在查找匹配的项时不 会停止响应(除非未完成的事务锁定了这个项 -- 参阅有关事务的下一节)。

JavaSpaces中的模板匹配

read、 take 、 readIfExists 、 takeIfExists 和 notify 方法都使用 JavaSpaces 的 模板匹配机制确定处理 JavaSpaces 中的哪一项。更明确地说,模板就是一个部分或者完全 填充的项。项的类型必须反映要匹配的对象的类型,这意味着必须匹配指定的 Java 类/接口 或者子类。在匹配时,所有包含 null 的字段都作为通配符。所有填充的字段都必须在序列 化的二进制比较级别上准确匹配。对大量并行的操作和潜在的硬件辅助实现进行这种联合匹 配。有关 javaSpaces 模板匹配的更多信息参阅 参考资料中的 JSK 文档。

JavaSpaces中的事务

JavaSpaces 操作可以在事务的上下文中进行。这是由以下步骤实现的:

找出事务管理器服务

用 TransactionManager 接口创建一个事务

高影响力的Web层群集, 第二部分: 用JavaSpaces构建(3)

时间:2011-04-16 IBM Sing Li

在调用 JavaSpaces 操作时提供事务

在事务的上下文中执行的一组操作只能有两种结果 -- 成功(事务被提交)或者 不成功(事 务中止)。只有在事务提交时其他 JavaSpaces 客户才能看到一组操作的效果。如果

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号