AOP@Work: 使用方面的下几个步骤-学习建议之后 - 编程入门网
-09-07 IBM Ron Bodkin
有效的政策强制执行 通过授权示例,开始意识到什么使得方面在政策强制执行中是非常有效的: 连接点的使用是挑选和提炼安全性规则应用条件的强大方法。在本例中,我同时 使用了字段访问和方法调用来应用安全性。还要注意的是,我定义了基于上下文 数据(要访问的主体和员工数据)允许何种访问的业务规则。这比对每个对象实 施低级访问控制可取多了:虽然后者十分灵活,但它实际上使得无法强制执行政 策,而且通常还有配置错误的风险。使用 AOP 的灵活性,很容易在正确的位置 强制执行安全性,并暴露正确的数据以基于业务规则实现自动政策决策。 授权示例还引入了将业务关系映射到方面代码的重要主题。我已经确定了与 给定雇员规章对象相关的雇员。在这种情况下,假设从规章数据到聚合雇员对象 存在逆关联。我还显式地将该信息编码到方面中。在更通用的安全性方面(和其 他业务方面)中,这成为更复杂的问题。 最后要注意的是,安全性对象可以被看作业务政策强制执行的特殊情况。在 使用方面来强制执行规则 “不可以在暂停的帐户中执行任何业务交易” 时,安 全性对象是自然的一步。这意味着需要跟踪可能生成帐户费用的服务。这与强制 执行访问控制规则相似,但它是基于动态上下文的(帐户是否被暂停)。 持久对象关系 在 Aspect-Oriented Software Development 2005 会议上,Nicholas Lesiecki 作了一份行业报告,介绍他和他的同事在 VMS 如何使用方面来让 Hibernate 持久化引擎自动管理对象关系。Nick 是经验丰富的方面开发人员, 他的报告阐明了将方面集成到现有项目的三个典型阶段。 假设有一个域模型,其中经理可以管理 0 到多个员工,每个员工具有指向其 经理的引用。如果希望使用严格的面向对象代码添加员工,则需要编写如下代码 :
使用持久关系管理方面,可以将代码简化为: manager.getEmployees().add(employee); 还可以用另一种方式编写: employee.setManager(manager); 在本例中,方面用于自动传播对象关系中的更改,确保一对多和多对多的双 向关系保持一致。这样,VMS 团队就避免了事务处理失败的风险和进行多余 API 调用的麻烦。 实现该功能要求 VMS 团队紧密集成现有库以通过方面提供附加功能。项目成 员还必须跟踪对象之间的业务关系,他们使用在 Hibernate 中暴露的有关持久 关系的信息来实现这一点。在细粒度安全性示例中,也提出了跟踪方面业务对象 之间的关系这一相同要求。我在下面的业务方面中详细介绍了这一常见要求。 UI 监控和宏 我一直致力于客户项目,在这种项目中,我们使用方面监控富客户机 GUI 应 用程序中的用户行为并记录宏。监控 GUI 应用程序有四个主要目的: 更好地理解用户如何使用应用程序(以便改进使用体验) 对目标用户进行 困难概念或功能的培训 了解不同的用户群 对特性按优先级排序以便将来开 发 AOP@Work: 使用方面的下几个步骤-学习建议之后(16)时间:2011-09-07 IBM Ron Bodkin我们的方面必须跟踪不同的用户界面事件,并对控件如何结构化以及页面 导航如何运作有所了解。它们还必须能够跟踪应用程序中的状态,标识向导或模 式对话框的调用屏幕,并正确捕获反导航事件(后退按钮)。此外,应用程序监 控相关的系统事件,比如外部连接和用户碰到的任何错误。在捕获到用户交互和 系统事件时,就将其匿名记录在日志文件中,以便进行后续的批传输。 这种方面用法与在 Web 应用程序中捕获用于服务器端分析的数据紧密相关。 由于 Web 请求的常规结构,基本的 URL 分析可用于任何 Web 应用程序。与跟 踪简单的 Web 站点不同,这种监控需要与应用程序的特 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |