应用服务提供商(application service provider,ASP)模式的出现,为中小企业信息化建设提供了可行方案。自20世纪90年代以来,ASP模式得到了很好的发展,但是进入21世纪后,ASP增长率却出现了下降[1]。目前这些ASP存在“应用孤岛”和不同服务间耦合性弱等不足;同时,由于ASP为不同企业分别部署,企业间交流不畅[2];并且ASP模式所提供的信息化服务不能很好地解决企业工程技术问题。这些ASP所面临的问题是由ASP自身特点引起的。
1999年,Bennett等[3]首次提出软件即服务(software as a service,SaaS)模式,该模式继承了ASP模式“软件部署为托管服务,通过因特网存取”的重要思想,并对其进行了拓展。文中在2.1节中对ASP和SaaS间的异同进行了比较。SaaS是一种新兴的软件提供模式,它以软件租用、在线使用方式提供软件服务[4],改变了人们构建、销售、购买以及使用软件的方式。独立软件提供商(independent software vendors,ISV)负责SaaS平台的建设和维护,软件的购买和更新等。用户通过浏览器来使用软件,按定购服务的多少及使用时间付费,用户可通过个性化配置来满足不同需要。在SaaS模式下,企业无须在公司成立前期购买昂贵的软硬件设备,也无须专业人员来维护相关软件,可以大大降低企业信息化建设的门槛。
随着Web Services,SOA,Web 2.0等技术的不断成熟,SaaS模式方兴未艾。文献[5]将传统软件服务与SaaS模式提供的软件服务进行了比较;文献[4]采用SaaS模式开发了烟草行业信息服务系统;文献[6]实现了区域RFID公共服务平台。美国Salesforce公司采用SaaS模式开发了CRM系统,取得极大成功;Autodesk公司推出了基于Web的室内装修AutoCAD系统。
在上述背景下,采用SaaS模式开发了面向中小企业的公共技术服务平台。
1 平台功能及关键技术 1.1 平台定位工程软件价格昂贵、操作复杂,超出了中小企业的接受范围;专业技术人员的薪酬较高,也不是中小企业所能承担的。鉴于中小企业面临的困境,文中采用SaaS模式开发公共技术服务平台来帮助中小企业提高技术水平。平台提供在线工具来解决中小企业使用工程软件问题,专家在线支持可以弥补企业缺少专业技术人员的不足。在横向上,平台的服务涉及工程软件、技术支持、信息等;在纵向上,服务涵盖零部件的设计、分析、工艺、制造等产品生产全过程。平台的服务对象是中小企业,为其提供一站式服务,如图 1所示。
![]() |
图 1 平台提供的一站式服务 |
平台的核心功能是在线工具和专家在线支持,同时还有知识库、设备资源管理、企业自主管理等辅助模块,平台功能如图 2所示。
![]() |
图 2 平台功能 |
在线工具:针对特定零部件而开发的。用户输入相关设计参数,在线工具经过计算、分析等过程将结果以文字、图片、动画等形式回传给用户。
专家在线支持:专家通过文字、图片、语音、视频等方式为中小企业提供技术支持。用户可以直接同在线专家交流,也可以预约离线专家。
1.3 平台关键技术1) SaaS模式在本平台应用所涉及的技术:用户个性化配置、多用户数据库设计、水平扩展性、平台架构设计。
2) 在线工具的设计与开发。
2 基于SaaS模式的公共服务平台建设 2.1 SaaS成熟度模型SaaS成熟度模型分为4个等级,如图 3所示。
![]() |
图 3 SaaS 4级成熟度模型 |
第一级:定制开发,多次开发多次部署。定制开发主要体现在数据结构和代码根据用户需求做过定制修改。SaaS成熟度模型第一级与曾经一度流行的ASP基本一致[7-8]。与ASP一样,在此种模型下,ISV为每个用户制定一套实例或应用,并为其部署。每个用户独占一个独立的数据库实例和应用服务器实例。ASP处于SaaS成熟度模型的第一级,SaaS模式在ASP的基础上进行了扩展。
第二级:可配置,一次开发多次部署。在用户不断增多的情况下,第一级要为每个用户定制开发,耗费大量人力财力。采用成熟度模型第二级,开发一个通用型产品并提供可配置功能,即可以通过一次开发多次部署来满足不同用户的个性化需要,减少了开发次数。
第三级:高性能的多租户框架,开发和部署各一次。第一级和第二级为每个用户部署一个实例,致使硬件及维护成本很难产生规模效应。第三级是多用户共享一个实例,即可解决上述问题。由于多用户共享一个实例,用户数据安全和数据隔离就显得十分重要。在实现了第三级多用户单实例的应用架构后,随着用户数量的增多,集中式的数据性能就成为这个SaaS应用的瓶颈。
第四级:可伸缩性多租户框架,一次开发无限次扩展。水平扩展性是第四级的核心,一般通过负载均衡将访问压力分散到不同的服务器。水平扩展性是指:在不更改应用架构的情况下,仅通过添加硬件设备来缓解访问压力。
平台采用SaaS成熟度模型的第四级,加之前三级的特点,第四级主要涉及“统一实例及可配置、多用户数据安全、水平扩展、系统架构”几方面。
2.2 统一实例及可配置平台只部署一次,通过Web方式提供服务。用户通过浏览器访问平台,访问的是同一个网站。既然是同一实例,平台就必须具有“可配置”功能来满足多用户个性化需求。
一般SaaS可配置包括界面可配置、业务流程可配置、功能可配置、数据可配置几方面。平台用户个性化配置主要涉及:服务等级定制和界面个性化配置,基本不涉及业务流程配置。
服务等级定制:根据用户的级别提供不同等级的服务。将每个在线工具视为一个原子功能,根据用户的等级将原子功能进行组合并提供给用户使用。根据服务等级和订购的工具为用户分配使用权限。
界面个性化配置:根据用户的喜好配置自主设计界面,主要涉及:界面背景色、特征控件位置、大小、可见性、位置等。平台采用Silverlight呈现用户界面,使用Silverlight中的XAML文件实现个性化配置。以在XAML中Button节点为例,代码如下:
<Button x:Name=“名称”
Width=“宽度值” Height=“高度值”
Canvas.Top=“上边距值” Canvas.Left=“左边距值”
Foreground=“前景色” Visibility=“可见性” ……/>
通过修改各个属性值来实现个性化配置。
2.3 多用户数据安全多用户共享本平台,共享数据库,所以数据安全非常重要。除数据加密、日志管理、权限管理等常规方式外,数据隔离是保证SaaS模式下数据安全的一种非常关键的手段。
第一,平台不涉及诸如供应商信息、企业采购信息等机密数据,所以对于数据的安全性要求不是很高;第二,机械零部件种类繁多、不同零部件的数据结构和数据量各不相同、非结构化数据多,这些数据对数据库空间损耗非常严重;第三,平台的主要服务对象是数量不多的企业用户,而数量多的个人用户并非平台的收入来源。考虑上述原因,平台采用“共享数据库分离数据架构”和“共享数据库共享架构”2种方式来保存数据,如图 4所示。
![]() |
图 4 2种数据隔离方式 |
平台采用第一种数据隔离方式来保存企业用户的数据,即“共享数据库分离数据架构”,也就是说为每个企业用户分配一个独立的数据架构,如图 4(a)所示。此种模式下,所有企业用户使用同一数据库,但各自拥有一套不同的数据表组合保存于其单独的模式之内。
个人用户采用第二种方式,即“共享数据库共享架构”,如图 4(b)所示。此种方式将每个用户的同类数据保存在同一个表中,在每个表中添加TenantID列来区分用户的数据,对数据进行增、删、改、查等操作时也通过TenantID列来筛选特定用户数据。在每次进行数据操作时都需要增加下列语句“where TenantID=‘具体用户ID’”来区分用户,以免发生误操作。
2.4 平台水平扩展平台水平扩展主要涉及应用服务器层水平扩展。在不更改应用架构的情况下,通过增加硬件数量,就能满足用户数量的增多而带来的访问压力。
应用服务器层水平扩展采用服务器集群方式,通过负载均衡将访问压力分配给各个服务器,平台网络结构如图 5所示。在用户增多时,通过添加相关服务器即可满足需要,而不必修改平台架构。用户访问平台是有身份状态的,如:登入状态、权限等,此状态保持在Session中。用户访问平台经负载均衡后可能被分配到不同的服务器,为保证用户身份状态的一致性,平台采用复制Session方式来保存用户状态。Session复制就是在每一台服务器上都有相同的Session,用户感觉不到差别。复制Session内存消耗大,但是此种方式用户访问速度快,实现方便。
![]() |
图 5 平台网络结构 |
平台应该具有稳定、数据更新快、易扩展等特点。根据平台功能及SaaS特点,融合SOA和Web Services思想,将平台架构分为4层,分别为:用户界面层、业务逻辑层、应用层、数据层,平台架构如图 6所示。
![]() |
图 6 平台4层架构 |
用户界面层:为用户提供交互式操作界面,主要用于显示数据和接收用户输入的数据。同时,提供用户个性化配置,三维模型显示,在线通讯界面。
业务逻辑层:负责整个平台业务规则。
应用层:整个平台的基础,将通用代码写在应用层。将较为通用的常量定义和通用服务写在对应的静态类中。
数据访问层:主要由数据访问工厂层、数据访问接口层、临时层、自定义查询层、数据持久层等组成。
3 在线工具在线工具是针对特定的零部件而开发的,不同的零部件的在线工具不同。本小节介绍一般在线工具的开发流程。
3.1 参数及计算过程确定首先针对特定零部件确定输入参数。输入参数一般可分为强制参数和可选参数2类。强制参数是用户必须进行输入的;系统为可选参数设置默认值,用户也可以自己输入可选参数。所有输入参数都要给出参数的许可范围,定出可选参数的推荐值及常用范围。然后确定在线工具的输出参数。
3.2 参数计算方法查阅相关资料,确定参数计算方法、校核方法、默认值的选取等方法,为编制计算程序做准备。
3.3 APDL命令流对于一般的在线工具,文中采用ANSYS 11.0来实现。首先确定ANSYS建模参数,然后编写零部件建模和分析的APDL命令流。为了让平台程序和APDL无缝结合,需要定义输入参数和ANSYS建模的数据接口,通过数据接口将输入参数传递给ANSYS。完成建模后,就可以进行零部件的前处理,分析过程包括网格划分、边界条件、载荷等,接下来进行求解和后处理,最后将分析结果以文字(如最大应力、应变)、图片(如应力云图、应变云图)和动画(如变形过程)的形式保存在平台上供用户查看和下载。
3.4 其他相关信息在开发在线工具时,开发人员也要尽可能给出零部件对应的设计、分析、制造等信息。因为使用这些在线工具的企业需求不一,对零部件的设计需求不同、企业的加工设备各异,所以给出的这部分信息是建议性的,仅供参考。还有在线工具的开发、使用的相关文档。
3.5 编写程序编写参数输入、参数计算、参数输出、校核、尺寸参数和APDL传递、其他相关信息的在线查看和下载等程序及在线工具操作界面。
在上述过程中为保证开发平台所采用的C#语言与ANSYS的无缝结合,必须定义两者的驱动接口。利用Shell命令来驱动ANSYS软件的打开,然后程序驱动键盘回车符,导入APDL命令流文件进行后台运算。
4 专家在线支持 4.1 专家在线支持模式在线工具可以解决中小企业缺少和使用CAE/CAD等工程软件问题,但是不能解决缺少高技术员工的问题,因此平台提供了专家在线支持功能。专家在线支持实现了专家的“SaaS”化,即:企业不必雇用高技术员工,而是通过在线咨询方式来解决企业技术难题;ISV平台运营商雇用各个领域的专家以在线支持方式为中小企业提供技术支持;专家不再属于某一个企业,可同时为多家企业服务。这种方式提高了专家的“利用率”,可以有效缓解中小企业难以支付雇用高技术员工的高额费用的困境以及中小企业雇用高技术员工后由于设计分析任务少而造成高技术员工资源浪费的现状。
专家在线支持是以智囊团的形式来为企业用户服务的。企业通过虚拟会议室的方式来组织本企业的一人或多人参加咨询。咨询结束后,企业用户对专家的解答进行评价,此评价将作为平台运营商考核专家的依据。企业用户与专家交流的图文将记录在数据库中,以便企业查阅整理。专家和用户之间是多对一的关系,专家可在不同用户间切换,如图 7所示,一个专家可以同时为多个企业用户提供技术支持。
![]() |
图 7 专家和企业之间一对多形式 |
专家在线支持通过图文、语音、视频等方式实现。系统包括与会者状态、麦克风、摄像头、字体、截图、发送文件、聊天记录、结束、发送文字等功能。
此部分采用Silverlight 3.0和Socket技术实现。Silvelight 3.0在流文件方面功能强大,Silvelight3.0和Socket对远程通讯提供了强大的支持。实现在线通讯的主要步骤如下[9],服务端:实例化Socket、连接、绑定、监听、接发数据;客户端:实例化Socket、连接、指定服务端地址、接发数据。专家在线支持系统UML时序图如图 8所示。
![]() |
图 8 专家在线支持系统UML时序图 |
最后,采用SaaS模式开发了公共技术服务平台。平台采用B/S模式,服务器端使用Windows Server 2008及IIS 7.0,数据库为SQL Server 2008,Visual Studio 2008作为开发工具,设计分析计算机操作系统为Windows XP。客户端采用IE 7.0以上或其他浏览器,须安装Silverlight 3.0及X3D插件。
5.1 在线工具膜片弹簧是一典型的汽车零部件[10-11],使用广泛。平台提供了汽车膜片弹簧在线设计工具,工具界面如图 9所示。
![]() |
图 9 膜片弹簧在线设计界面 |
用户输入发动机最大转矩、摩擦面数、摩擦因数、后备系数等参数,点击计算,如膜片厚度、外径、内径、分离指数等计算结果会显示在页面上,同时在右侧显示根据计算出的尺寸生成的X3D模型。在页面中嵌入X3D文件的代码如下[12-13]:
<object data="X3D文件相对路径" type="model/x3d+xml">
</object>
用户输入不同的数据,模型自动更新,方便用户直观查看改进后的模型形状。
5.2 专家在线支持企业遇到技术问题时,登入平台向在线专家进行咨询或预约离线专家。进行在线咨询时,企业用户建立一个虚拟会议室,该用户即为虚拟会议室的组织者。然后该组织者邀请专家和本企业的其他用户。专家在线支持界面如图 10所示,包括参与者状态、麦克风、摄像头、字体、截图、发送文件、聊天记录、结束、发送文字等功能。
![]() |
图 10 专家在线支持界面 |
通过实际使用,平台提供的在线工具简单易用、显示直观,专家在线支持交流顺畅,能基本满足中小企业的要求。
针对中小企业缺少CAE/CAD等工程软件和高技术员工的现状,结合SaaS模式的优势,开发了面向中小企业的公共技术服务平台。平台提供的在线工具和专家在线支持服务涵盖了产品生产全过程。此平台对于提高中小企业技术水平很有帮助。
[1] |
王路炯, 李爱平, 徐立云.
ASP模式的网络化制造安全体系[J]. 中国机械工程, 2007, 18(3): 300–303, 327.
WANG Lujiong, LI Aiping, XU Liyun. Secure infrastructure for ASP mode based networked manufacturing[J]. China Mechanical Engineering, 2007, 18(3): 300–303, 327. (in Chinese) |
[2] |
梅益, 陈子辰, 谢庆生, 等.
面向ASP应用服务的系统集成研究[J]. 中国机械工程, 2005, 16(16): 1447–1450.
MEI Yi, CHEN Zichen, XIE Qingsheng, et al. Research on service-oriented system integration for application service providers[J]. China Mechanical Engineering, 2005, 16(16): 1447–1450. DOI:10.3321/j.issn:1004-132X.2005.16.010 (in Chinese) |
[3] | Bennett K, Layzell P, Budgen D, et al. Service-based software:the future for flexible software[C]//Proceedings of the Seventh Asia-Pacific Software Engineering Conference, December 5-8, 2000, Singapore. Piscataway:IEEE Press, 2000:214-221. 10.1109/APSEC.2000.896702 |
[4] | Wang B, Bao L W, Ye Y. Study on the information service system of cooperative marketing of tobacco industry based on SaaS[C]//Proceedings of the 2009 International Forum on Information Technology and Applications, May 15-17, 2009, Chengdu, China. Washington:IEEE Computer Society, 2009:483-487. http://dl.acm.org/citation.cfm?id=1607087 |
[5] | Fan M, Kumar S, Whinston A B. Short-term and long-term competition between providers of shrink-wrap software and software as a service[J]. European Journal of Operational Research, 2009, 196(2): 661–671. DOI:10.1016/j.ejor.2008.04.023 |
[6] | Zhao W, Li X P, Liu D X, et al. SaaS mode based region RFID public service platform[C]//Proceedings of the 2008 Third International Conference on Convergence and Hybrid Information Technology, November 11-13, 2008, Busan, Korea. Piscataway:IEEE Press, 2008:1147-1154. http://ieeexplore.ieee.org/document/4682190/ |
[7] | 叶伟. 互联网时代的软件革命:SaaS架构设计[M]. 北京: 电子工业出版社, 2008. |
[8] | Difference between the ASP model and the SaaS model[OL].http://www.luitinfotech.com/, 2006.Luit Infotech.SaaS business software[EB/OL].[2010-05-10]. http://www.luitinfotech.com/. |
[9] | 王磊. 稳扎稳打Silverlight 2. 0系列文章索引[EB/OL]. [2010-03-10]. http://www.cnblogs.com/webabcd/archive/2008/12/31/1365721.html. |
[10] | 林世裕. 膜片弹簧与碟形弹簧离合器的设计与制造[M]. 南京: 东南大学出版社, 1995. |
[11] | 成大先. 机械设计手册[M]. 4版. 北京: 化学工业出版社, 2002. |
[12] | Yu T B, Yang J Y, Chen J, et al. Application research of X3D in individualized products customization[C]//Proceedings of the 2006 International Technology and Innovation Conference, November 6-7, 2006, Hangzhou, China. Piscataway:IEEE Press, 2006:1699-1703. http://digital-library.theiet.org/content/conferences/10.1049/cp_20061040 |
[13] |
朱立达, 梁伟立, 董圣广, 等.
基于Web的数控机床动态仿真系统的研究[J]. 计算机集成制造系统, 2009, 15(5): 954–958.
ZHU Lida, LIANG Weili, DONG Shengguang, et al. Dynamic simulation system for NC machine tool based on Web[J]. Computer Integrated Manufacturing Systems, 2009, 15(5): 954–958. (in Chinese) |