面向OSGi框架的构件化软件开发方法被广泛应用。现有的OSGi构件监控方法仅能够监控动态服务调用所造成的资源消耗,未能考虑静态包引用的情况。针对该问题,提出一种面向方法的OSGi构件监控方法。该方法首先对代码进行分析,建立方法与构件间的映射关系,在方法前后插入监控逻辑以标记构件的边界;而后,跟踪线程的跨边界执行,将线程在方法中占用的CPU和内存计入对应的构件;同时,通过记录线程在不同构件间的转移,监测构件间的动态调用。实验结果表明,该方法能够以较低的开销准确监控OSGi中构件的CPU和内存资源消耗,以及构件间的交互行为。
OSGi framework-oriented componentised software development method is in wide use. Existing OSGi components monitoring methods can only monitor resources consumption caused by dynamic service call,but regardless the static packages importing situation. To address this issue,we propose a method-oriented OSGi component monitoring approach. First of all,this approach sets up the mapping relationship between methods and components by analysing the code,and inserts monitoring logic before and after the methods to mark the boundary of components. After that,the approach tracks the cross-border execution of each thread,adds the CPU time consumed and the memory occupied in methods by the threads to corresponding components. Meanwhile,by recording each thread transfer between components, it monitors the dynamic call between the components. Experimental results demonstrate that this approach is able to accurately monitor CPU and memory consumption of OSGi components and the interaction between the components with lower overhead.