细粒度访问控制与车间集成架构的探索
1. 细粒度访问控制评估与实现
1.1 实际实现
为了评估所提出的策略语言和机制,我们实现了一个原型来展示其适用性。该原型基于用 Java 编程语言编写的 Accada RFID 原型平台。Accada EPCIS 实现运行在 Apache Tomcat 5.5 服务器上,并基于 Apache Axis 1.4 库将其接口作为 Web 服务公开。对于持久存储,使用了 MySQL 5.0 数据库和 JDBC 库。
Accada 的查询客户端允许查询存储库并显示返回的事件。我们通过添加用户身份选择菜单来增强查询客户端的图形界面。由于身份验证不在我们的工作范围内,这种替代密码或证书机制的方式是一种可行的简化。
对于系统中的每个用户,策略定义存储在一个单独的 XML 文件中,文件名为 .pol。为了将策略的 XML 结构映射到 Java 对象,使用了 Simple2 1.4 库作为 JAXB 的轻量级替代方案。这样,策略语言的扩展不会导致程序代码的重大更新。
我们修改了 Accada 的 QueryOperationsModule.createEventQuery 方法中的查询生成代码,根据之前提出的一般思路构造修改后的 SQL 查询。
实现访问控制到 Accada 的经验有两方面:
- 展示了我们方法的技术可行性。读取基于 XML 的策略文件并将规则转换为 SQL 以限制用户查询在实践中是可行的。Accada 被证明是 EPCglobal 相关原型活动的坚实基础。
- Accada 复杂查询生成代码的扩展很复杂。因此,从架构上考虑,将查询重写代码放在一个单独的模块中是更好的方法。