论文部分内容阅读
基于构件的软件开发是网络环境下大型分布式企业开发的重要形式。构件通过封装一定的功能来提供可以复用、组装的软件资源,对外提供软件服务。传统的构件技术通过中间件提供事务、安全等服务资源,为构件的开发和集成提供了很多高效的基础设施。然而,这类构件技术多是利用构件在实现层次上的交互机制,自底向上的实现构件的复用,构件间的协同逻辑往往隐式包含在构件内部。这种僵硬固化的协同方式难以适应动态复杂的网络环境,无法有效支持用户根据环境和需求的变化在运行时刻进行及时调整。为了实现这种构件的动态组装和演化,我们认为必须实现构件实体与协同逻辑的分离,为协同逻辑提供独立的编程模型,从宏观角度为构件组装提供系统化的指导,并以相应构件运行平台为协同逻辑动态演化提供支持。
本文提出了一个以软件体系结构和复合连接子为核心的协同模型,并给出面向该协同模型的Artemis构件模型;在此基础上,借鉴了反射式中间件和软件体系结构等相关研究,设计完成了一个扩展EJB3.0的Artemis构件框架,简化了构件协同接口的开发,实现了以Artemis协同模型为核心的构件动态组装和动态演化功能。具体工作总结如下:
1.提出描述构件系统协同逻辑的Artemis协同模型和相应的Artemis构件模型。Artemis协同模型由软件体系结构和复合连接子组成。软件体系结构刻画了系统的构件组成,构件之间、构件与环境之间的交互关系等,而复合连接子通过拦截器进一步丰富了构件的交互行为。Artemis构件模型简化了构件协同接口的开发,通过声明对Artemis协同模型的引用,使构件实体与协同逻辑在运行时有效地结合在一起。
2.设计并实现了Artemis构件框架。Artemis构件框架以Artemis Bean为核心技术,实现了对Artemis协同模型和构件模型的支持。Artemis Bean简化了构件的开发视图,使开发者更加专注于业务功能的开发,提供更加“纯粹”的组装单元。在组装过程中,通过Artemis协同模型对系统协同逻辑进行统一配置。在运行时和演化时,容器通过该协同模型管理构件的交互。
3.给出演示性应用、验证技术的可行性和有效性。开发了基于Artemis构件框架的工情险情会商系统。该系统涉及分布式节点的各种水文天气服务,需要在运行时根据突发情况调整系统结构。通过该系统的开发流程,展示了Artemis构件框架对构件动态组装和动态演化的支持。