Java平台持久化与分布式技术及描述逻辑的探索
立即解锁
发布时间: 2025-08-23 00:30:39 阅读量: 2 订阅数: 11 

### Java 平台持久化与分布式技术及描述逻辑的探索
#### 一、Java 平台的分布式与持久化
在 Java 平台中,分布式系统的模型有多种。其中,所谓的“单世界模型”要求在所有节点间实现透明的稳定化,但这种模型在相对较大且松散耦合的节点系统中并不现实。而 Java 平台标准的分布式机制是 Java RMI,它更类似于联邦模型,节点具有自主性,程序员需要明确处理通信故障和对象标识问题。
Java RMI 实际上是一个混合系统,对于实现了 `java.rmi.Remote` 接口的对象,它提供了“单世界模型”的一些特性,包括分布式垃圾回收。不过,程序员必须明确处理因通信问题导致的方法调用失败,并且一些标准方法(如 `Object.hashCode`)是在本地代理对象上操作,而非代理所引用的对象。
由于 Java RMI 几乎完全用 Java 编写,且使用了 Java 核心类的套接字和输入输出机制,它属于依赖外部状态的代码。当标准 Java RMI 与 PJama 虚拟机一起使用时,如果 Java RMI 类被设为持久化,就会出现问题。为了解决这个问题,PJama 系统现在包含了一个修改版的 Java RMI,它利用 PJama 动作处理框架,在恢复持久存储时能正常工作,还支持导出的服务器对象和客户端存根的透明持久化。与 Java RMI 激活框架所需的大量编程机制相比,这种方案使用起来更加简单。
虽然对 Java RMI 对象的持久化支持很有价值,但对于 Java 程序员来说,更理想的是有一个更正交的分布式机制。正交持久化的原则同样适用于分布式领域,尽管不能完全忽略延迟和部分故障的现实情况。例如,正交持久化可以为分布式提供稳定、全局唯一、基于标识的哈希码。从长远来看,可扩展事务模型除了处理事务冲突和媒体故障外,还可能是处理通信故障的有用机制。
#### 二、PJama 开发的经验与挑战
在 Java 平台上开发 PJama 以实现正交持久化的工作很有意义。与早期使用学术研究语言的经验不同,这里不仅面临着既定的语言规范,而且该语言平台还在快速发展。重要的是,已经证明现有的 Java 语言及其演变是可以被支持的。虽然在某些情况下,对持久化的预先考虑会带来改进,但对于大多数 Java 语言来说,与正交持久化的集成相对直接,这也证明了正交持久化已准备好用于工业应用的说法。
开发过程中的经验表明,正交持久化原则必须统一应用于整个 Java 平台,因为应用开发者不可避免地会遇到任何遗漏,而这往往是传递持久化的直接后果。令人惊讶的是,在多线程 Java 应用中对并发事务的支持尚未成为核心问题。虽然仍致力于研究能在这种环境下良好运行的灵活事务模型,但也发现使用 Java 隔离和一致性机制构建的应用对持久性和恢复有需求,目前还不清楚这两种方法如何协调。
Java 语言的开放性促进了其快速采用,但也要求找到一个简单的解决方案来处理 Java 环境外部的状态。通过 transient 修饰符和在 OPJ 系统执行的关键点调用的动作处理程序的组合,可以经济高效地解决这些问题。
在将 OPJ 模型常规部署到各种应用环境之前,还存在几个挑战:
1. **实现完整性**:OPJ 的实现必须完整,包括对线程的支持。
2. **可扩展性和性能**:实现必须具有可扩展性,并提供与标准 Java 环境相竞争的性能。
3. **系统演化问题**:必须有一个有效的解决方案来解决系统演化问题。
此外,还有三个更广泛的领域值得研究:
1. **批量类型的适当处理**:早期工作表明,标准数据结构(集合类和索引)可以表示批量值,查询可以通过反射转换为适合查询和底层数据结构的代码来评估。将这种方法发展为“工业强度”的批量数据处理(如 SQLJ 和 OQL)还有待证明,这可能依赖于合适的多态扩展。
2. **适当的软件工程方法**:目前使用的软件工程方法是针对传统的数据处理模型(输入 - 计算 - 输出和查询 - 计算 - 更新 - 重复)。正交持久化带来了更多增量和事件驱动的处理模型,因此需要开发相应的软件工程方法。在这些方法或至少其底层设计模式明确之前,应用程序员很难从传统处理模型转换过来并受益于正交持久化。
3. **持久编程的开发和管理系统**:需要为持久编程开发和管理系统,例如支持包含演化的新构建模型,需要工具来可视化持久存储的内容和操作,以及需要安装技术来在已填充的生产存储中部署和安
0
0
复制全文
相关推荐










