APP下载

基于服务代理的开放SaaS平台构件管理技术

2016-02-23国艳群孙林夫

国艳群, 韩 敏, 孙林夫

(1.西南交通大学 信息科学与技术学院,成都 610031; 2.西南电子设备研究所,成都 610036)



基于服务代理的开放SaaS平台构件管理技术

国艳群1,2, 韩 敏1, 孙林夫1

(1.西南交通大学 信息科学与技术学院,成都 610031; 2.西南电子设备研究所,成都 610036)

[摘要]为解决开放SaaS服务平台中分布式构件开发与管理问题,提出了基于服务代理的构件管理技术,设计了系统应用框架,对基于代理的开放SaaS服务平台应用构件开发、部署、运行及更新机制进行研究,并应用于汽车供应链协作平台建设。结果表明,基于服务代理的构件管理技术简化了构件开发与管理流程,提高了系统的稳定性与开发效率,促进了开放SaaS服务平台能力的不断优化提升。

[关键词]服务代理;SaaS;构件管理

随着计算机网络及云计算技术的发展,越来越多的企业选择以SaaS(Software as a Service,软件即服务)模式[1]构建企业的信息系统。SaaS是基于互联网提供软件服务的软件应用模式,由SaaS平台提供商为构建企业信息化所需要的网络基础设施及软、硬件平台,并负责所有前期的实施、后期的维护等一系列工作。开放SaaS平台[2]则是以传统SaaS服务平台技术为基础,允许用户作为应用系统开发者参与系统开发与建设。而如何在面向服务、分布式的、开放的环境中实现对应用构件的管理,则成为开放SaaS平台亟待解决的问题。

近年来,人们围绕分布式构件管理问题开展了广泛研究,有的文献提出了基于服务代理的分布式系统框架并对服务代理接口进行了详细设计[3,4];有的文献基于XML对构件管理技术进行了研究[5],提出了基于Agent构建分布式构建管理系统的方法[6]。然而,与传统的分布式构件管理系统不同,开放SaaS平台所面临的是一个多类型用户并行工作的环境,系统用户既包括平台开发与维护用户,又包括应用系统用户及应用构件开发用户,这些用户依托SaaS平台所开展的工作既包括常规的平台开发、应用系统运行,又包括构件的开发、系统的调试等工作,给平台的稳定性、效率都带来了巨大挑战。为此,本文在已有的研究工作的基础上,将服务代理技术与分布式系统构件管理应用相结合,并应用于开放SaaS平台设计,提出了基于服务代理的开放SaaS平台构件管理技术。通过服务代理,支持开发用户、系统应用用户透明的实现对构件的开发、部署、更新、运行等管理,解决开放SaaS平台中面临的分布式构件管理问题。

1系统应用框架

系统应用框架设计如图1所示。以运行于SaaS平台的构件管理服务为核心,通过基础网络,将各类业务应用与SaaS服务中心互联,并在业务应用端提供相应的开发代理、部署代理、运行代理及构件更新代理,由代理与服务中心交互,实现用户对服务中心的透明访问。从功能组成上看,应用框架主要由构件管理服务、平台构件库及服务列表、应用构件库及服务列表等SaaS后台应用及前端的各类服务代理组成,各部分主要描述如下。

a.构件管理服务:作为各类服务运行的容器,包括开发服务、部署服务、运行服务与更新服务4类,服务的种类与数量可根据实际应用扩展。构件管理服务作为各类服务运行的容器,为开发、部署、运行及更新等服务提供与平台的接口服务、基础运行环境及负载均衡调度等服务。

b.平台构件库及服务列表:平台构件库是平台中构件的全集,从构件部署状态上包括开发、调试、测试、部署4种状态。通过平台构件库对各类构件的实体及运行进行维护;而各类平台构建提供的基础服务,则通过服务类表管理,具体服务注册于UDDI服务器,供应用系统查询、调用。

c.应用构件库及服务列表:应用构件库是平台中应用构建的全集,存储部署于SaaS平台的各类应用构件,应用构件的开发既可以是平台建设者,也可以是各类系统用户。系统用户可以通过开发与调试后,将构件部署于平台测试或运行,应用服务列表则对各类应用服务进行管理。

图1 系统应用框架Fig.1 System application framework

d.服务代理:以代理的方式部署于应用客户端,是构件管理服务与客户端进行通信的桥梁。通过服务代理,可以为前端用户屏蔽掉底层通信与调度的细节,用户端只需调用服务代理提供的函数接口,即可实现与构件管理服务建立连接、信息通信等功能,共同实现构件的开发、部署、运行、更新等功能。

2基于服务代理的构件管理机制

从构件应用属性划分,系统构件可分为平台构件和业务应用构件两类;从构件的部署位置划分,系统构件可分为服务器端构件和远端应用构件。不失一般性,在构件管理方面,本文统一按照远端应用构件的情况来探讨构件的开发、部署、运行及更新等问题。

2.1构件开发管理

构件开发的主要过程包括编码、调试与验证等几个步骤,步骤之间是交替迭代的关系。然而在开放SaaS系统中,在应用程序未完成部署前,频繁调用平台服务开展调试等工作不仅会增加平台服务器的压力,同时也可能影响系统运行的稳定性;而不调用平台服务又难以实现系统运行时功能的检验。通过开发代理,可以解决开发与系统运行之间的矛盾需求。如图2所示,应用程序在调试阶段通过服务代理来调用应用服务,服务代理在进行UDDI查询的基础上,不实际调用服务,而仅按照服务标准的格式虚拟返回服务调用结果,既实现了应用程序对服务应用的虚拟访问,又保障了系统运行的稳定性。

图2 构件开发管理应用设计Fig.2 Application design of componentsdevelopment management

2.2构件部署管理

构件部署的过程,是构件的打包、传输、解析、验证与发布的过程。随着系统规模及应用的增加,服务部署的复杂性也越来越高,通过服务代理,可在很大程度上简化应用用户与平台管理员部署构件的难度。XML[7]的出现为数据的传输与交互提供了有效工具,应用程序仅需在客户端将构件属性、参数、配置文件及构件二进制文件等通过本地函数调用的方式传递给服务代理,由服务代理采用XML对数据进行序列化,并实现与平台的数据交互、验证与部署等操作,完成后将部署结果以回调的方式传递给应用程序。一个序列化的XML文档示例如下:

Id_maker_0001

Sale query

Sale_ID>0005

……

8j4AAQTZkQtnaqamNC0ERT/Z…]]>

2.3构件运行管理

构件的运行管理主要包括应用参数获取、服务调用、服务结果返回等步骤。仅从执行效率看,通过服务代理调用服务与应用程序直接调用平台服务区别不大,甚至服务代理的运行效率要比直接调用低一些;但从工程化的角度,服务代理的应用不仅为用户提供了统一的服务调用接口,同时也为后续的客户端多功能扩展(如客户端P2P通信、商务智能检索)等提供了工程基础。

2.4构件更新管理

构件的更新是构件管理系统的重要功能之一,在各应用领域,软件构件的动态更新一直是研究的重点与难点[8,9]。在开放SaaS平台中实现软件构件的动态复杂性及难度将进一步提高,通过构件更新代理,对业务应用构件的更新进行“托管”,对简化用户更新操作、提高系统的鲁棒性以及实现更新系统的透明升级等都有重要意义。系统更新应用如图3所示。

3系统应用设计

以Web Service技术[10]为基础,将服务代理技术应用于汽车供应链协作平台设计,系统设计如图4所示。构件管理系统主要由系统应用层、服务代理层、IIS Server及构件管理服务组成。系统应用层主要为各零部件供应商、主机厂及各分销商,各用户根据自身信息化能力不同开发相应的服务构件,并通过构件代理对构件的部署、运行及更新进行维护;各服务代理根据传递消息的不同,采用HTTP/SOAP/SOCKET等方式实现与构件管理服务的调用与交互,共同实现相应的构件管理功能。

图3 构件更新管理应用设计Fig.3 Application design of componentsupdate management

开放SaaS平台是以开放的架构为平台建设者与系统应用者提供一个能够不断演化、发展的软件环境;服务代理技术则简化了构件管理流程,为系统构件的开发、运行与维护提供了支撑,基于服务代理技术,实现了平台与应用系统的不断优化与扩展。

a.平台端构件得到不断扩展、升级与完善。基于服务代理,简化了开发流程,为平台建设者开发、调试、测试构件提供了底层服务;同时,通过构件更新代理,可在不影响平台运行的情况下,实现构件的动态升级,从而实现平台功能的不断完善。

图4 系统应用设计Fig.4 Design of system application

b.应用端的个性化应用不断丰富。应用端的个性化应用是直接影响用户体现的关键要素,基于服务代理技术,各类用户可以根据用户需要,方便地实现构件的开发及更新,快速满足用户需求。如整机制造商可以随着生产技术的提高及流程的完善,对零部件招标/采购、工作流系统乃至企业的商务智能系统进行快速升级;零部件供应商在利用整机制造商提供的服务实现快速对接的同时,还可开发适应自身产品特点的产品发布与展示服务,发布到云计算平台;各分销商则可开发构件,快速收集客户需求、喜好等信息,供整个供应链协同平台共享。

c.系统鲁棒性、运行效率得到提高。一方面,系统将构件按照状态进行管理,对于处于开发、调试、测试与运行状态的构件按照不同的类型进行管理,对于未正式上线的构件提供独立的资源用于提供相应的服务,屏蔽了开发、调试与测试构件对正常运行系统的影响;另一方面,由于各类构件在正式上线前,已在基于SaaS平台的环境中进行开发及调试,提高了构件与系统的稳定性。

4结 论

本文对开放SaaS服务平台构件管理技术进行了研究,提出了基于服务代理的构件管理技术,并对系统应用框架、基于代理接口调用的构件开发与调试、基于XML的构件序列化及部署更新、构件运行效率、构件更新机制及典型的构件更新技术进行了初步研究,最后结合汽车供应链协同平台,给出了系统的应用设计。在开放的云计算环境下实现构件的动态管理面临诸多挑战,除需要有效的技术框架外,在构件并发运行管理、数据一致性维护、构件运行状态下的更新与数据传递机制等方面都有待开展进一步的研究。

[参考文献]

[1] 陈鹏,薛恒新.面向中小企业信息化的SaaS应用研究[J].中国制造业信息化,2008,37(1):10-13.

Chen P, Xue H X. Research of SaaS for small medium-sized enterprises information[J]. Chinese Manufacturing Information Journal, 2008, 37(1): 10-13. (In Chinese)

[2] 国艳群,韩敏,孙林夫.开放SaaS产业服务平台模型与体系结构研究[J].西南交通大学学报,2014,49(6):1068-1072.

Guo Y Q, Han M, Sun L F. Research on model and architecture of open SaaS industry service platform[J]. Journal of Southwest Jiaotong University, 2014, 49(6): 1068-1072. (In Chinese)

[3] 王继鹏,张瑞红,王爱民.基于服务代理的敏捷供应链节点间接口实现[J].计算机工程与设计,2011,32(10):3378-3382.

Wang J P, Zhang R H, Wang A M. Service agent-based interface implementation of agile supply chain nodes[J]. Computer Engineering and Design, 2011, 32 (10): 3378-3382. (In Chinese)

[4] 齐勇,马莉,赵季中,等.基于分布构件技术的多层模式应用框架研究与实现[J].计算机工程,2001,27(1):122-124.

Qi Y, Ma L, Zhao J Z,etal. Component-based architecture project item management system frame[J]. Computer Engineering, 2001, 27(1): 122-124. (In Chinese)

[5] 王淑营,王石.基于XML的产业链协同工作平台构件管理技术研究[J].计算机应用研究,2010,27(5):1806-1810.

Wang S Y, Wang S. Research on XML-based component management technology for collaborative work platform of industry chain[J]. Application Research of Computers, 2010, 27(5): 1806-1810. (In Chinese)

[6] 刘磊,刘弘,邵增珍.一个基于Agent的分布式构件管理系统[J].计算机应用研究,2002(8):15-19.

Liu L, Liu H, Shao Z Z. A distributed component management system based on Agent[J]. Application Research of Computers, 2002(8): 15-19. (In Chinese)

[7] 瞿裕忠,张剑锋,陈峥,等.XML语言及相关技术综述[J].计算机工程,2000,26(12):4-7.

Qu Y Z, Zhang J F, Chen Z,etal. A survey of XML and related technologies[J]. Computer Engineering, 2000, 26(12): 4-7. (In Chinese)

[8] 王俊德,黄林鹏,徐小辉,等.分布式动态更新支持系统:研究综述[J].计算机科学,2007,34(11):19-25.

Wang J D, Huang L P, Xu X H,etal. Survey of supporting system for dynamically updating distributed system[J]. Journal of Computer Science, 2007, 34(11): 19-25. (In Chinese)

[9] 徐小辉.构件化软件动态更新关键技术及形式化研究[D].上海:上海交通大学档案馆,2011.

Xu X H. Key Techniques and Formalism for Dynamic Component: Based Software Updating[D]. Shanghai: The Archive of Shanghai Jiaotong University, 2011. (In Chinese)

[10] 岳昆,王晓玲,周傲英.Web服务核心支撑技术:研究综述[J].软件学报,2004,15(3):428-442.

Yue K, Wang X L, Zhou A Y. Underlying techniques for web services: a survey [J]. Journal of Software, 2004, 15(3): 428-442. (In Chinese)

Research on the service surrogate based on

component management technology of open SaaS platform

GUO Yan-qun1,2, HAN Min1, SUN Lin-fu1

1.AcademyofInformationScienceandTechnology,SouthwestJiaotongUniversity,Chengdu610031,China;

2.SouthwestInstituteofElectronicEquipment,Chengdu610036,China

Abstract:The component management technology based on service surrogate is proposed so as to solve the problems of distributed component management of open SaaS service platform. A system application framework is designed, and the development, deployment, runtime management and the refreshment mechanism of the component of open SaaS service platform are studied and used for the contribution of automobile supply platform. It shows that the technology predigests the program of component development and management of the open SaaS platform and improves the stability and development efficiency of the system. The application of the technology promotes the continuous improvement of the ability of the open SaaS service platform.

Key words:service surrogate; SaaS; component management

[文献标志码][分类号] TP39 A

DOI:10.3969/j.issn.1671-9727.2016.01.14

[文章编号]1671-9727(2016)01-0124-05

[收稿日期]2014-11-11。

[基金项目]国家科技支撑计划项目(2015BAF32B05);四川省科技支撑计划项目(2015GZ0076)。

[第一作者] 国艳群(1980-),男,高级工程师,主要从事产业服务平台、云计算方面研究,E-mail:82807578@qq.com。

[通信作者]韩敏(1970-),女,博士,副研究员,主要从事产业链协同、云计算方面研究,E-mail:15908180960@163.com。