AOP技术对服务的帮助
由于有很多的文章讨论了AOP技术,我们这里就不再重复了,所以以下的内容是假设你已经拥有基本的AOP概念。在qca网站上对AOP做了一些简单的整理。(http://qca.cn/common/content.htm) AOP作为OO技术的补足,能够以一种优雅的方式来处理系统的横切点。服务层面是应用AOP的绝佳位置:
在上图中,我们看到一个普通的用户注册服务通过AOP可以动态的添加各种各样的能力。AOP提供了几个好处,一是能够通过简单的代码为所有的服务添加功能,而不用为每个服务编写代码,从而大大节省了代码量;二是把横切点分离出来,这样服务仅保留了核心的代码,提高了系统的模块化程度;最后一点是模块化的增加使得为服务动态的增加或删除功能成为可能,例如,可以通过配置动态的将新的Aspect添加到用户注册服务上。
服务的测试
服务测试在测试的分类中属于接受测试。服务概念的引入使得自动化的接受测试变得容易了。在大规模的软件设计中,业务流程往往涉及到各种组件通过服务介面的相互协作。所以这就是测试的重点。回到我们之前讨论的组件粒度问题,如果此时你编写出的测试代码过于繁琐,说明组件的设计粒度太小了,如果组件的粒度太大,你会发现有些测试代码根本无法编写。
服务的管理
服务的管理是一个比较大的话题。一方面,在一个大规模的系统中,虽然通过组件和服务的形式能够降低系统的复杂度,但是服务仍然很多,需要进行管理;另一方面,服务的状态,服务的可用性需要监控和管理,这对于大规模应用来说是必须的。因此,服务需要一种管理形式。
JMX规范提出的目的也是一个对各种不同的组件进行统一管理。和我们所阐述的有类似之处。JMX分为规范和远程接口两个部分,在J2SE1.5版本中,JMX已经纳入到J2SE的范畴中了,有兴趣的读者可以参考sun的相关文档。
软件总线和软件工厂
直到目前为止,软件开发仍然属于手工作坊阶段,如果要和制造业的水平相对应的话,基本上是处于蒸气机发明之前的水平。随着软件开发技术的发展,软件开发也将象制造业一样,步入"工业"时代。不过对于软件开发来说,机器仍然是代码,只不过这些代码是用来代替开发人员的编码活动的,他具有比手工编码更高的生产力。我们把这些高产量的"机器"描述成现代化的软件工厂。那么,软件工厂到底是什么?要了解软件工厂,我们需要先了解软件总线的概念。
文章来源于领测软件测试网 https://www.ltesting.net/