论文部分内容阅读
WebLab是北京大学生物信息中心开发的一个生物信息网上实验室,它集成了包括Blast等共计194个程序及所需的数据库。用户无需安装任何软件,即可通过浏览器使用这个基因计算平台,选择或上传序列文件,通过菜单选择程序进行分析,然后通过文本或图形界面查看结果。但由于WebLab系统结构的局限性、计算节点的不足,导致了在大量计算请求存在时,WebLab系统容易负载过大而无法有效的提供服务。
Blast应用是当前最为流行的核酸序列数据库检索程序,它对一条或多条DNA序列在一个核酸或蛋白质序列库中进行比对。一台计算机在提供Blast服务时需安装Blast工具包及数据库。
本文介绍了以Blast为切入点,使用网格技术来解决WebLab的问题。我们在多个计算机上部署不同的数据库,将用户的计算请求调度到不同的计算机上进行计算。我们提出了一个解决方案,并开发出一个原型系统。这个系统包括一个网格计算支撑环境和一组Java编程API。WebLab开发者通过使用Java API重新编写服务器端程序,把用户请求提交到网格计算支撑环境。
网格计算支撑环境使用网格服务组来进行资源调度和执行计算。在资源调度分配时我们主要考虑两点:第一是是否有用户所需要的数据库;第二是节点自身计算能力的大小。为了尽可能的满足后续的计算要求,在满足数据库的要求下,我们尽可能的使用计算能力较小的节点。这样当后续有对节点要求比较高的计算请求时,我们的系统仍能较好的满足请求,进行计算。
系统主要使用Java实现。我们使用不同的基因和蛋白质序列,在两台集群上进行测试,得到了有用的数据。测试显示,对于计算时间很短(几秒)的序列,我们系统的开销增加了约20s-40s,主要在包装服务中对状态信息获取的延迟上。对于计算时间较长(几分钟甚至更长)的序列,我们的系统能充分使用多个计算节点,将计算资源动态分配给不同的计算请求。虽然增加了一些网络开销,但相比计算时间来说是可以接收的。在大量用户访问WebLab请求Blast计算服务时能较快速的进行响应,提供服务。