WEB开发网
开发学院软件开发Java 使用 IBM FileNet P8 实现序列号分发器 阅读

使用 IBM FileNet P8 实现序列号分发器

 2009-12-09 00:00:00 来源:WEB开发网   
核心提示: 下面给出一个交叉存取读写可能导致的问题,假设记录在文件中的当前值为 7,使用 IBM FileNet P8 实现序列号分发器(3),然后发生: A 从该文件读取值 7, B 从该文件读取值 7,不过,随着 servlet 不断变得复杂, A 向该文件写入值 8, C 从该文件读取值 8

下面给出一个交叉存取读写可能导致的问题。假设记录在文件中的当前值为 7,然后发生:

A 从该文件读取值 7。

B 从该文件读取值 7。

A 向该文件写入值 8。

C 从该文件读取值 8。

C 向该文件写入值 9。

B 向该文件写入值 8。

至此,A 和 B 都拥有它们认为是唯一但实际上相同的值。下一个读取程序获得的值将与 C 已有的值相同。您此时可能想到使用文件锁或其他特定于操作系统的技巧,以在分布式环境中同步对文件的访问。不过,在计算机领域中这种类型的解决方案遇到的困难是大家承认的,要想获得成功需要花很大的功夫,因此我们不想过多地谈论这个场景。如果您要获得更多的证据,可以在搜索引擎中输入 “NFS lock problem” 进行查询。

P8 分发器对象

使用 J2EE servlet

详细讨论这个知识点超出了本文的范围,但使用 J2EE 的声明式安全性为访问 P8 对象提供受控的超级用户 是可行的。这种技术适用于 Java 和 .NET 客户端。简而言之,您可以通过创建一个简单的 servlet 来实现本小节讨论的技术。这可以实现为一种 Web 服务或类似的东西,关键是它必须能够以便于调用方使用的格式返回计数器的值。

J2EE servlet 的部署描述部分阐述了 RunAs 角色的规范,该角色间接地指定了一个安全主体。下游 J2EE 调用(包括使用 EJB 传输的 P8 调用)通过指定的安全主体的安全身份执行。在我们的例子中,安全主体可能是具有访问分发器对象的适当权限的用户。即使配置的安全身份是特权级别比较高的用户,该技术也是安全的,因为 servlet 能够严密地控制能够进行的活动。不过,随着 servlet 不断变得复杂,这种技术的安全性会相应地下降。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 IBM FileNet

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接