论文部分内容阅读
云计算作为一种新兴的计算模型,在能耗、费用、扩展性、可靠性、灵活性和便捷性等方面具有巨大的优势,因此一经提出就引起了广泛的关注。
PaaS(Platform-as-a-Service:平台即服务)是一种云计算服务模式,它将软件的运行平台以服务的形式开放给用户。用户可以基于平台提供的运行环境(主要是一些中间件资源,包括数据库服务器和应用服务器等)创建、部署自己的服务系统。
不同的PaaS平台提供不同的运行环境,支持不同技术实现的应用(如Python应用、PHP应用、Java EE应用等),有不同的使用规范。通常情况下,PaaS发布特定于自身平台的SDK(Software Development Kit:软件开发工具包),开发人员基于PaaS提供的SDK在本地完成应用的开发,再通过SDK中的部署命令将应用提交到PaaS平台上,之后平台的部署模块将自动分析提交的应用包,并进行相应的部署操作,最后托管运行应用程序。这与通常的开发活动有一定的区别:在开发和部署过程中,开发人员需要做一定的调整,参与较多额外的步骤。
SASEP(Service Aided Software Engineering Platform)是一个面向软件工程活动的PaaS云平台,其上部署了许多关于软件工程活动的支持性服务。与一般的PaaS平台不同,SASEP应用(或称服务)的开发采用最通用的开发环境,而不需要基于特定的SDK。本论文为SASEP设计并实现了一个服务部署系统。从用户的角度看,该部署系统着重考虑便捷性,力图实现“一键式”部署:用户将服务部署包(包含代码、数据、配置等部署所需信息的制品)提交给部署系统后,部署系统将自动分析服务部署包、配置服务、分配资源、装载服务-整个过程只需要用户参与“提交”这一步。同时,从平台的角度看,一方面,为了防止用户提交的服务包含有害代码从而危及平台健康,系统使用程序静态分析技术,检查服务的代码,以尽量避免有害服务的部署,进而保障平台的安全性;另一方面,系统会分析服务之间的依赖关系以方便平台管理其上的服务。本文将主要介绍SASEP服务部署系统的设计及其部分核心模块的实现。