SOA的体系架构
“面向服务架构”(SOA)表达了一种软件架构理念,它将应用程序的不同功能单元(服务)通过这些服务之间定义良好的接口和契约联系起来。接口采用中立的方式进行定义,它应该独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各种系统中的服务可以用一种统一和通用的方式进行交互。
SOA可以看作是模型、XML/Web服务器技术之后的自然延伸,从一个新的高度理解企业级架构中的各种组件开发、部署形式。SOA体系架构中共有服务提供者、服务请求和服务注册中心三种角色,服务提供者负责服务功能的具体实现,并通过注册服务操作符将其提供的服务发布到服务注册中心,当接收到服务请求时,执行所请求的服务;服务请求者则是服务执行的发起者,首先需要到服务注册中心查找符合条件的服务,然后根据服务信息进行服务绑定和调用,已获得需要的功能;服务注册中心主要用于服务提供者注册服务,提供对服务的分类和查询功能,以便服务请求者发现服务。(图1)
图1 SOA架构
这种原始简单的体系经过几年来逐步的进化之后,形成了比较成熟的SOA模型体系(图2),图中的整合服务是由企业服务总线(ESB:Enterprise Service Bus)提供的一种服务,主要用于将从一到多个服务提供者提供的多个应用服务整合到一个单独的细粒度web service中;而工作流服务则长期运行于ESB中并等待人工捡取任务时调用,协调整个服务协作流程。
基于SOA的PLM解决方案的设计原则
基于SOA设计应用系统是目前较为成熟和先进的构建软件服务应用系统的解决方案。SOA适配于多种开发语言和技术平台,尤其是面向对象领域,使用面向对象编程模式,可以很方便的设计粒度适中的对象并封装数据和行为。这些对象可以被嵌入面向服务的系统体系中,可以便捷的按需提供个人服务及各种组合服务。
图2 SOA成熟模型体系
成功的创建面向服务的应用系统有以下几个要点。首先,需要确定将何种功能暴露为服务;其次要对业务逻辑进行拆分和模块化来提高重用性及扩展性;将服务耦合度降低从而支持需求变更时的快速开发;设计合理合适的服务粒度;最后,计划并实现所有的SOA步骤(图3)。
基于SOA的PLM产品现状
开发者将SOA应用于在PDM、ERP和其他业务应用系统中的模式,同样适用于PLM的实现环境,将SOA应用于PLM中,可以为用户、工程管理者以及IT管理人员提供新的特性,从而大大降低甚至去除了PLM环境与其他业务系统集成时的复杂度。鉴于上文中描述的SOA的优势,众多的PLM主流解决方案供应商都将其开发、部署和产品套件迁移至SOA环境中。下面对一些主要的PLM解决方案供应商的SOA应用现状进行概括性的描述。
Agile(被Oracle收购)在其产品套件中使用面向服务架构作为其服务和组件的通信模式已经有几年时间了。Oracle Agile PLM产品是专门设计用来通过开放、基于标准的应用集成架构扩展到不同企业组件的,如制造和车间功能、ERP应用系统、供应链规划功能、客户管理管理、财务应用系统、企业绩效管理和业务分析等。Oracle Agile PLM和其他Oracle应用软件提供的预置的和开放标准的集成相结合,Agile提供J2EE、XML以及支持Web services标准及其SCS安全设施。
西门子将SOA应用于其Teamcenter产品套件中。SOA取代了应用中的CORBA和TC服务,从而使得Teamcenter可以为第三方软件集成提供SOA扩展和接口,实现了可插拔的软件开发范式。SOA使得Teamcenter从技术能力角度将高性能、可扩展性、广域网性的开发更加友好和便捷。Teamcenter的SOA服务提供了一系列可供访问的语言规范类库供开发人员使用,包括C、C++、C#(.NET)、Java等,可以为Teamcenter开发扩展的功能或者与其集成和接入。
案例分析
卫华集团是一家集起重机械研发、设计、制造、销售、安装、服务、进出口业务为一体的大型企业集团。主要生产桥、门式起重机、港口机械、电动葫芦、钢结构建筑等九大系列200多个品种,拥有6000余名员工,集团下设20余家子公司。该集团现有的PLM流程系统由于历史原因存在已久,面对公司突飞猛进的业务拓展和变化,该系统在扩展性和伸缩性方面很难做到及时响应和应对,在扩展性和伸缩性方面已经形成阻碍和瓶颈。另外,该公司的应用系统主要侧重于关注数据为导向,缺乏面向流程的设计,造成终端用户经常需要跨多个业务系统来完成一个业务流程。数据在多个系统间的重复性,导致需要大量的工作进行数据一致性的维护工作,同时,这种体系无法为技术部门和业务决策者提供坚实的基础服务。另外,该公司的应用系统采用了一种较易容错的文件传输和共享机制来提供对外访问接口。生产和技术部门的需求变更对这种体系形成了较大的风险。为了进行更进一步的分析和决策,技术和生产部门需要频繁的同步和集成设计数据和产品数据。
使用基于SOA的架构体系可以解决这些问题,通过Web services服务将客户端遗留系统和PLM系统的通讯进行解耦。另外通过添加一个通用的逻辑数据模型,通过映射、路由和访问控制,来提供一个可扩展的数据交换传输机制,并将维护费用逐步降低。图3展示了该公司经过调整后的基于SOA的架构解决方案。
图3 基于SOA改造之后的架构体系
结论
大多数的制造型企业能够接受基于SOA的PLM解决方案,来提高功能性的扩展性,提升业务用户体验,甚至越来越多的多种多样的用户在PLM环境中协同工作,并且简化了分布式PLM环境的部署的复杂度和消耗投入。
面向服务的架构体系为解决方案开发者以及将SOA应用于其IT基础设施和环境建设的企业,提供了长期而易见的收益和优势。许多PLM产品供应商已经将其产品线升级为基于SOA的架构体系,面向服务架构的PLM系统拥有了新的生命和活力,将会有着越来越广阔的发展空间,而企业越早采用面向服务的架构体系作为其信息化基础设施,则越早的从其中获益。