探索中国CIO人才现状 | 第四季调研报告
基于SaaS服务的中小企业业务协同系统
2014-03-04  作者:e-works 

  由于自身业务特点,中小企业往往需要依托大企业和企业集群而存在,与伙伴企业建立稳定的原材料、零部件供应及技术等方面的协作关系,形成生产配套能力。这种协作关系中存在着多层次、多维度的业务协同需求,包括产业纵向协同和产业横向协同,前者是从属于一个产业的上、中、下游企业间存在的生产过程的协同,后者是指以区域内某一主导产业为核心,通过企业间的横向协作来实现共享资源和优势互补。研究适用于中小企业业务协同的支持系统,为中小企业提供成本更低、更有效的业务协同解决方案,已成为当前迫切需要解决的问题。


  SaaS(softwareasaservice,软件即服务)作为一种新型的软件架构与应用模式,近年来得到学术界和产业界的广泛关注,SaaS模式应用的松散耦合和网构特征,可以支持中小企业跨组织业务中的协同需要。面向服务架构(SOA)是一种实现协同业务过程的平台无关的方法,它以服务作为工作单元,并通过标准化流程描述和服务模型,来支持在初始业务流程设计时识别服务,以方便协同的实现,已经有一些研究提出基于服务实现企业业务协同。文献研究了SaaS中的单个ASP(applicationserviceproviders)和AIP(applicationinfrastructureproviders)之间的协同策略,用于指导在供应链网络中软件服务的动态交付。文献提出了一种基于WFMC丁作流参考模型并能够支持SaaS模式的原型系统——VINcA4SaaS,在该系统中,来自不同租户的请求根据工作流引擎的当前能力和执行流程实例的成本预测进行任务的排工。欧盟第7框架的COIN(collaborationandinteroperabilityfornetworkedenterprises)项目提出在开源的COIN服务平台上构建基于SaaS的互操作,以支持供应链、协同网络和业务生态系统中的企业问协作。文献[7]提出一种企业协同成熟度模型ECMM,该模型的系统与技术层中包含了与互操作和协同相关的技术和服务。文献[8]提出一种模型驱动的互操作架构,该架构中解决互操作问题的方法是首先在业务模型中描述业务互操作,然后从服务组件中自动组合出可靠的复合服务。


  本文针对以SaaS应用服务支持企业业务协同的需求,在分析现有的各类集成技术基础上,首先提出基于SaaS模式的中小企业业务协同基础架构,支持通过基于网络和公共服务实现中小企业业务协同的模式;然后重点讨论了SaaS服务的集成问题和基于SaaS服务互操作来实现业务协同的问题。


  1基于SaaS服务的业务协同支撑架构


  面向中小企业业务协同的公共基础架构首先提供一个开放的、基于网络的基础设施环境,然后提供一套完整的服务集成、内容聚合和服务使用的技术框架,以支持中小企业通过网络获取协同业务执行中所需的服务和信息资源,包括商务信息服务,涉及企业协同生产的设计、分析、试验和加工服务以及与企业供应链相关的企业问业务协同服务等。中小企业以租用SaaS服务的方式申请这些服务的使用权,基于Web使用这些服务,管理自己的数据,处理来自协同业务伙伴的经营活动,从而节省了搭建基础设施和部署软件以及进行日常维护的开销。其总体架构如图1所示,从下到上依次分为5个层次:基础环境层、支撑平台层、应用服务层、协同层和用户界面层。


  这5个层次中,与业务协同关联最密切的是应用服务层与协同层,分别介绍如下:


  2.2服务集成实现方式


  由于不同的软件在交互频繁程度、实时性要求、计算能力等方面存在很多差异性,因此服务集成的具体实现方式也有所不同.对于交互性强、实时性较强的软件,用户通过公共基础架构的Web服务器获得对租用服务的访问入口,得到服务的使用授权,而实际使用的软件是下载到本地的软件,这种模式克服了由于网络传输带来的服务使用的延迟、交互困难等问题.而公共基础架构中的应用软件服务器负责集成和部署软件的最新版本,并透明地实现应用软件的升级和更新等。


  对于另一类需要强大计算能力而实时交互较少的软件则采用网构软件的集成模式,即直接使用远端应用软件服务器上部署的服务软件,远端应用软件服务器也是服务提供商所提供服务的软件运行平台,负责业务的逻辑实现和大规模的计算工作,这样可以发挥公共基础架构服务器强大的计算能力。远端应用软件服务器中运行的软件完全由服务提供商进行管理,包括硬件设施的维护、软件的升级和更新等.用户通过公共基础架构的Web服务器获得对租用服务的实际使用界面,使用WebService连接软件服务器和Web服务器,在两者之间传递封装的用户数据及计算结果等。


  3基于SaaS服务互操作实现企业协同业务


  在基于SaaS的企业业务协同支撑系统支持下,参与业务协同的企业租用系统集成的SaaS服务来完成自身的业务职能,并在这些SaaS服务的协同作用下完成某项具体任务;其中的关键是依靠支撑系统对协同业务进行建模,并依靠SaaS服务间的互操作实现业务流程.由于SaaS服务具有独立性、自治性的特点,本文提出一种包含表示层、功能层和数据层3个层次的服务互操作方法,其中表示层的集成是基于Widget模型将被集成服务的表示界面集成进集成服务的表示界面中;在SaaS服务之间,则采用基于消息通知的业务驱动服务协调技术,解决服务协调问题,如图3所示。一个完整的基于消息通知并由业务策略驱动的服务协调过程如下所示(按照图中所标顺序):


  ①在需要互操作的2个SaaS服务两端分别配置MessageQ;


  ②集成SaaS服务端的MessageQ注册到消息引擎中;


  ③用户登录集成SaaS服务端,并从交互界面的Widget激活业务流程;


  ④业务流程执行过程中,通过服务接口调用被集成SaaS服务端的Web服务,被集成SaaS服务端的MessageQ也注册到消息引擎中;


  ⑤流程执行完毕,MessageQ自动调用Completed方法,通知消息引擎;


  ⑥消息引擎凋用集成SaaS服务端的Cornplete方法,通知其进行下一步操作;


  ⑦集成SaaS服务端处理完毕之后,通知消息引擎整个流程执行完毕;


  ⑧一个服务协调过程结束。


  整个协调过程按照预先设定的流程执行,受业务策略驱动,且具有原子性、一致性、隔离性、持久性等事务的特征。


  4系统实现与协同业务案例


  基于上述研究,作者构建了基于SaaS服务模式的中小企业业务协同服务平台——山东制造业信息化服务平台.该平台针对汽车、纺织、电子信息材料等行业的业务需求,开展了针对这些行业的设计服务、订单服务、供应商业务服务等服务内容,构建面向行业应用的专业服务平台.经过几年的努力,平台初步建立了完备的服务基础设施和应用服务,开展了规模化的制造服务应用。


  以纹织行业为例,为了适应市场需求,纹织中小企业采用产业聚集的方式,开展了广泛的业务协同.出现了专门从事图案设计的设计中心和制版中心,以外包的方式为中小企业提供设计、制版服务;在订单业务紧张时,纹织物织造过程中的纱线生产、染色、面料织造、成品缝制等业务环节也普遍采用外协方式生产;此外,还需要一些非生产性的服务如外贸报关、货运代理等服务机构的协同。


  其中设计软件服务基于山东大学研发的纹织CAD系统进行服务化封装实现,按照设计处理流程将纹织CAD系统分为意匠编辑、轧孔变算、图案仿真、纹版软件格式转换等软件服务,用户可在线打开所需的服务功能,完成设计.纱线生产、织染、面料织造、成品缝制、外贸报关、货运代理等操作分别由具有相应资源和能力的企业承担,这些能力也是以服务的形式发布到制造服务平台,并由发起业务(纺织外贸订单)的盟主企业动态地选择适合的服务,将这些服务组织为一个分布式的制造流程,并在平台支持下通过跨组织的协作完成业务。


  5结语


  近年来,软件即服务的思想为中小企业实现信息化提供了便捷、低成本的解决方案,逐渐得到了企业界的认可.而在这些服务软件基础上实现企业间的业务协同,还需要解决服务集成与服务互操作的一些关键技术问题.本文就这些问题进行了比较系统的研究,提出了一个基于网络的公共服务支撑架构,研究了基于Portal的SaaS服务集成方法。以及SaaS服务互操作方法等.其主要思想是通过公共平台为企业租用SaaS服务提供支持,并通过服务间的互操作帮助企业完成基于这些服务实现的协作业务.通过构建面向制造业的服务平台系统,并开展面向中小企业的产品设计、订单管理、供应商业务管理等SaaS服务,验证了本文提出的服务集成方法的灵活性和服务互操作方法的有效性。


  1)应用服务层是架构中服务聚集的一层,该层位于支撑层之上,是在支撑层提供的对服务生命周期完善支持基础上聚合起来的应用服务.应用服务组件是运行在公共服务组件基础上的,它并不关心底层软件、服务器等的运行、管理,而是通过ESB与底层进行交互,并通过Portal层提供的界面集成,对外展示其功能性。


  2)企业协同业务由分布在不同地点的多个企业共同开展完成,通过协同项目管理实现跨组织企业层面的并行工程,可以有效地提高企业业务的运作效率。因此,协同层主要解决协同项目建模、业务流程建模、协同组织建模、数据建模和互操作建模,主要用于建立跨组织的业务协同关系。


  2SaaS服务集成技术


  2.1基于Portal技术的SaaS服务集成模型


  为便于第三方服务的集成,本文提出一种基于Portal技术的服务集成模型,在一个Portal框架中,Portlet组是其基本单位,所集成服务的交互界面被封装进Portlet之中。由于服务的交互涉及到对服务的使用和对服务的管理,因此该模型由2个Portlet组组成,分别是服务使用Portlet组和服务管理Portlet组,如图2所示。这样处理可以将服务使用与服务管理2个不同的功能进行分离,分别封装到一个Portlet组中;又由于服务使用与服务管理对应的用户群不一样,可以通过在Portlet组访问控制中添加角色控制来实现不同用户对不同功能的访问需求,如服务使用Portlet组对于所有服务用户可见,而服务管理Portlet组只对发布该服务的服务提供商可见。


  服务系统的扩展性可通过Portlet组来保证,一个应用服务通过系统的服务注册中心注册、集成到系统中,在架构中表现为一个Portlet组.每个应用服务的生命周期包括服务的发布、注册、服务实例化以及服务的撤销,也是由公共基础组件中的服务基础设施进行管理.这种集成是一种以Pornet组为单位的插件式的扩展,基础架构上服务的增减、改动可通过添加或者减少Portlet组的形式来快速、灵活地实现。