论文部分内容阅读
随着互联网的普及、软件应用技术和模式的快速发展,软件已呈网络化、平台化和服务化得发展趋势。其中,SaaS(Software as a Service)服务是一种新型的软件服务模式,凭借其按需租用、不需维护、便于扩展等优势改变了用户使用软件和软件厂商提供软件的模式。另一方面,模型驱动架构得到了大量应用。模型驱动架构能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储,通过模型转化规则生成代码,具体可移植性、平台无关性、领域相关性、降低开发成本和缩短开发周期等优势。因此,模型驱动的SaaS服务开发方式的研究已是人们关注的热点。如文章[28][29][30],这三篇文章都提出了基于构件的软件开发模式,这种模式如果用于SaaS服务开发会存在一下几个问题,构件划分粒度问题,构件库庞杂无层次管理问题,且这种模式只是针对开发者使用的。另外文章[12][21]也提出了模型驱动的SaaS服务开发模式,然后仍存在SaaS服务成熟度低,组件库庞大,不能很快适应业务的变化等问题。所以为了开发出高质量高成熟的SaaS服务,本文结合以上两种技术,提出了一种新颖的模型驱动分层架构LMDA(Layered model-driven Architecture). LMDA分为两个平面:租户应用平面和资产平面。租户应用平面存储的是LMDA构建出的SaaS租户应用,资产平面存储的是LMDA的模型。其中LMDA将模型分为四层,分别为领域无关组件层,领域相关组件层,抽象业务层,抽象SaaS应用层,其中领域无关层和领域相关层统称为组件层。LMDA分别为每层模型定义了详细的描述语言和遵循的规则,同时定义四层模型之间的访问依赖关系,以及如何由底层模型构件上层模型。然后阐述了如何从每层模型开始构建SaaS租户应用,同时给出了从抽象应用层构建SaaS租户应用算法,从抽象业务层构建SaaS租户应用算法,从组件层构建SaaS租户应用算法。最后描述了描述了三种算法在SBM系统中的应用实例。与上面两种方式相比,LMDA开发SaaS服务有如下几个优点:第一,服务构造和使用方式简单,服务构造可以通过定制算法插件可视化构造,租户可以通过页面简单配置使用服务;第二,服务面向人员,由于服务构造和使用方式简单,所以LMDA主要面向租户和业务人员;第三,SaaS的成熟度,由于LMDA中服务是分为四层的,所以服务的扩展性的压力从一层扩展到四层,然后再在每一层上进行扩展定制;第四,快速适应业务的变化,由于LMDA组件开发非常方便,如果业务变化了,可以简单修改模型,重新生成一个新的组件。