论文部分内容阅读
丰富的网络资源和经济快捷的网络访问方式吸引人们聚合分布在广域网内各种软件、Web服务、存储、计算和数据等多样化资源构建高价值的应用,即网格应用。然而,当前缺乏针对网格应用的特点的编程环境,导致网格应用的编写并不是一个容易的任务。使用当前的网格应用编程环境实现网格应用,不仅需要高代码行数和时间成本实现各种多样化资源的访问以及任务划分、调度和并行执行等细节,而且编写的网格应用具有模块性和重用性差,难于开发、调试和部署以及可扩展性差等不足。本文研究网格应用的编程环境问题,即如何提供有效的资源访问抽象、编程模型和开发工具,以尽量少的代码和时间成本实现网格应用,并保证网格应用的高效运行性能。本文的主要贡献有:
(1)为网格编程语言GSML语言提出了Funnel资源抽象和EventSet、会话等逻辑抽象,提供了一种基于事件驱动的组件化编程模型,简化了以广域网内多样化资源的访问、多分布异步自治执行部分交互和同步以及应用可扩展性为主要特征的网格应用程序的构建。多样化资源访问在网格应用的编程实现代价中占很大比重,Funnel资源抽象采用关注分散、统一性和重用性原理,由资源提供者以顺序化函数式代码封装各种多样化异构资源成可复用的高层资源抽象Funnel组件,每个组件向应用开发者提供统一的输入和输出事件接口,并提供统一的Funnel Link方式定位和访问部署在广域网内每个组件。在简化多分布异步自治执行部分交互和同步应用逻辑方面,GSML语言采用以EventSet和会话抽象表达应用逻辑的事件驱动编程模型。在GSML语言中,Funnel组件抽象和其访问方式向应用开发者屏蔽了与应用逻辑无关的底层资源访问细节,简化了应用对多样化资源的访问。EventSet和会话抽象把多个Funnel组件的事件接口组合和同步,降低了应用业务逻辑的实现成本。每个Funnel组件和应用程序都是可以被组合的,提高了应用代码的重用性和模块化。
(2)提出了一种因果关系方法解决多个相同类型输入事件区分和选择问题。分布式环境中存在多个穿插执行的应用实例,应用的正确性条件之一是采用关联技术区分不同实例中由松耦合组合组件产生的交互消息。EventSet对应的转换使能和触发时需要从多个相同类型输入事件中正确选择一个作为使能条件。因果关系方法根据交互消息之间的产生因果依赖关系关联同一实例的消息并区分不同实例,它不但保证了应用的正确性,而且能获取比串行执行更好的系统性能,比correlation方法提供更好的透明性。因果关系方法向应用开发者透明地提供了一种在事件传递顺序不确定情况下确保网格应用正确高效执行的方法。
(3)设计和实现了GSML语言的可视化开发工具。它使用多个视图编辑网格应用,界面布局视图让应用开发者所见即所得的组合网格应用的用户界面,应用逻辑视图把应用逻辑表示成直观的有向无环图,并提供上下文帮助,提高了网格应用编写的效率,减少了应用开发者的程序编写错误。它还提出基于有向无环图的程序正确性验证算法确保编写的网格应用的正确性。
(4)提出了网格应用运行时的体系结构原则和原型系统GSML浏览器的实现,以及网格应用运行时协议。体系结构原则CERM不仅保证了运行时可扩展性和独立升级性等体系结构属性,而且是理解GSML网格应用的基础。网格运行时协议定义了一套简化利用广域网内多样化资源的网格应用构建的协议标准,它保证了实现该协议的应用和资源能够独立升级、相互兼容和通讯,并按需组合实现有价值的新网格应用。
(5)提出了一种高效的EventSelect机制解决事件处理过程导致的应用逻辑分割和上下文信息存取问题。它是实现网格应用的高效运行时系统的关键技术。它借鉴I/O复用Select调用思想向应用开发者提供阻塞语义的select接口把多个相关事件处理过程组成一个大的事件处理过程。EventSelect机制采用continuation技术高效实现,让运行时系统能够充分利用有限的线程资源达到较高的并发执行任务的重叠比和系统的吞吐率,并减小平均事件处理时间。
通过对网格应用Povray-G不同实现的代价作定量对比分析表明,GSML方法比传统工具+网格中间件方法减少了18.5%代码行数和88.9%实现时间,且网格应用运行性能开销仅为5.5%。数据分析充分表明,网格应用编程环境GSML的资源抽象、编程模型、可视化开发工具、体系结构原则、运行时协议和优化机制能够简化网格应用的用户界面、业务逻辑、其它部分和资源访问等部分的实现,降低其实现成本,并保证网格应用的高效运行。