2.1.3 DS中Component的生命周期 DS中的Component的生命周期[4]是如何被控制的,尽管对于Component的控制DS是提供了接口可以通过程序来实现控制的,但在实际的系统中基本都是交由OSGI框架去控制,而很少通过程序主动去控制。Component的生命周期完全是动态的,也因为这个原因在使用Component时当发现Component并没有被激活也不是什么很奇怪的事,这个时候就可以去查查Bundle是否启动了,Component所必须的依赖在系统中是否可用,由于Component的变化完全是动态的,所以依靠跟踪去判断错误比较困难,大多数时候能采取的方法就是通过启动Equinox对于LogService的实现,然后在控制台中输入log来查看ds的日志;另外的方法就只能是推导原因了。 3.3.3 将业务模块化 如何让我们的离线系统最后如我们之前所构想的那样,成为一个可插拔,可动态管理,组件化的系统?答案的关键就在我们的业务层的模块化了。之前我就已经提过,对于实际业务,按照功能的不同我们可以分为基础模块,汽配模块,维修模块,销售模块等等。由于OSGI提供的服务组件模型支持,那么我们就可以在开发的时候以模块化的思想来独立开发这一个个的业务模块,每个模块都是一个Bundle,这样一来,我们就可以利用OSGI对离线系统的功能模块进行分模块控制与管理,一个可插拔的插件系统就诞生了。 3.4.4 报表技术 报表向来是企业非常强调的一个块重要业务,以前报表的实现方式主要表现在对结果的处理,即将先将报表在浏览器中画出,将数据填入,然后调用浏览器本身的打印功能将报表打印出来。这种方式有几个明显的不足。首先报表设计的任务完全的交由开发人员去处理,开发人员往往要去花大量时间研究如何将报表在浏览器中画出,格式的设定,数据填入时还要注意控制其位置,这样就会给开发人员带来开发以外的技术难点,此外在生成报表的时候数据量很大的时候往往增加了浏览器的负担,影响了系统性能。5.3 测试结果 由测试结果可以看出,系统的整个单元测试覆盖率达到85.5%,高程度的覆盖率保证了系统的正常运行。所有页面均显示正常,单元测试全部通过,功能测试全部通过,系统各项测试指标均达标。 |