您好, 访客   登录/注册

SOA在ERP软件设计中应用

来源:用户上传      作者: 余 翼

  [摘要]介绍一种新的软件架构方法――面向服务架构(SOA)的理念及其特点,并对面向服务架构的ERP和面向对象架构的ERP分别在体系结构和开发方法上作比较,阐述SOA思想在ERP设计中的应用特点和优势。
  [关键词]面向服务架构(SOA)面向对象架构(OOA)软件设计
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1110094-01
  
  一、面向服务架构SOA
  
  SOA――面向服务架构是一个组件模型,它将应用程序的不同功能单元――服务,通过服务间定义良好的接口和契约联系起来。接口采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言,使得构建在这样系统中的服务可以使用统一和标准的方式进行通信。其中服务,是指仅基于两个组件接口之间的契约,由一个组件提供其行为方法给另一个使用。
  SOA中一般都包含三个角色:服务的提供者、服务的请求者、服务代理。三个角色是根据对服务提出不同的需求和行使的不同功能来划分的。它们的关系可以简单理解为:服务的提供者将它提供服务的具体描述发布在服务代理,以方便服务的请求者查询;服务的请求者通过对服务代理搜索,查找到需要的服务及其提供者的地址;最后是服务的提供者与服务的请求者进行直接的绑定,完成服务。举个最简单的例子,我们若要在网上下载一首歌,先可以通过搜索引擎GOOGLE等,搜索可下载这首歌的网站,获知这首歌的免费下载的地址,最后我们直接链接这个地址下载歌。在这个过程,网站即相当于一个服务代理,我们是服务的请求者,而最后那个下载地址背后的服务器为服务的提供者。
  SOA主要特征是将应用程序功能包装成服务,服务间彼此独立,可单独作为组件使用。它具备松散耦合,提供粗粒度的服务和标准化的接口等。SOA旨在提供一个通用的,可互操作的和有弹性的行业标准架构,可以在软件基础架构之上建立一系列可重复利用的服务,实现企业适应业务流程变化的需求。
  
  二、SOA体系结构的优势
  
  面向服务的体系结构可以基于现有的系统投资来发展,而不需要彻底重新创建系统。如果组织将研发力量集中在创建服务、利用现有的技术、结合基于组件的方法来开发软件上,将获得如下几方面好处:
  1.利用现有资产,这是首要的需求。通过使用适当的SOA框架并使其可用于整个企业,可以将业务服务构造成现有组件的集合。使用这种新的服务只需要知道它的接口和名称。服务的内部细节以及在组成服务的组件之间传送的数据的复杂性都对外界隐藏了。这种组件的匿名性使组织能够利用现有的投资,从而可以通过合并构建在不同的机器上、运行在不同的操作系统中、用不同的编程语言开发的组件来创建服务。遗留系统可以通过Web服务接口来封装和访问。
  2.商品化基础架构。在所有不同的企业应用程序之间,基础架构的开发和部署将变得更加一致。现有的组件、新开发的组件和从厂商购买的组件可以合并在一个定义良好的SOA框架内。这样的组件集合将被作为服务部署在现有的基础构架中,从而使得可以更多地将基础架构作为一种商品化元素来加以考虑。
  3.更快的产品上市速度。组织的Web服务库将成为采用SOA框架的组织的核心资产。使用这些Web服务库来构建和部署服务将显著地加快产品的上市速度,因为对现有服务和组件的新的创造性重用缩短了设计、开发、测试和部署产品的时间。
  4.减少成本。随着业务需求的发展和新的需求的引入,通过采用SOA框架和服务库,为现有的和新的应用程序增强和创建新的服务的成本大大地减少了。同样,开发团队的学习难读也降低了,因为他们可能已经熟悉了现有的组件。
  5.降低风险。重用现有的组件降低了在增强或创建新的业务服务的过程中带来的风险。如前所述,这也减少了维护和管理支持服务的基础架构的风险。
  6.持续改进业务过程。SOA允许清晰地表示流程流,这些流程流通过在特定业务服务中使用的组件的顺序来标识。这给商业用户提供了监视业务操作的理想环境。业务建模反映在业务服务中。流程操纵是以一定的模式重组部件(构成业务服务的组件)来实现的。这将进一步允许更改流程流,而同时监视产生的结果,因此促进了持续改进。
  7.以流程为中心的体系结构。现有的体系结构模型和实践往往是以程序为中心的。应用程序是为了程序员的便利而开发的。通常,流程信息在组件之间传播。应用程序很像一个黑匣子,没有粒度可用于外部。重用需要复制代码、合并共享库或继承对象。在以流程为中心的体系结构中,应用程序是为过程开发的。流程可以分解成一系列的步骤,每一个步骤表示一个业务服务。实际上,每个过程服务或组件功能都相当于一个子应用程序。将这些子应用程序链接在一起可以创建能够满足业务需求的流程流。这种粒度允许利用和重用整个组织中的子应用程序。
  
  三、SOA的实现技术
  
  遵循SOA自底向上划分组件层和服务层的原则,构建SOA系统的基本过程是:(1)进行系统业务功能逻辑的建模;(2)将其转换为面向门户组件的整合实现;(3)进行Web服务装配,完成服务的复用和消息传递。
  下面结合企业门户的特点,讨论实现SOA的关键技术。
  业务服务逻辑建模:沿用SOA的逻辑建模思路,SOA的业务服务逻辑模型应是一组松散耦合的、基于消息可交互的服务模型。基于这种高于对象层的分布式Web服务集成模式,业务逻辑功能被构建为单独的Web服务及其他服务组件,如资源整合服务、认证服务、核心业务服务及其他可复用服务等。本文架构中,服务用于定义和支持业务流程,可以提供众多功能,包括数据访问、基础架构和业务功能。同时,定制服务的关键是理解业务流程。流程定义了与其他业务进行交互操作的逻辑和方法,可以通过工作流引擎实现这一定制和控制过程。此外,模型还包括构建服务所需的开发建模工具、管理控制平台、适配器以及底层支撑的开发包。
  建模过程中,服务需要管理所有的资源,即将服务提供者作为管理器创建服务实例,同时需要考虑业务服务是同步的、异步的还是两者兼顾。构建一个Web服务并不是简单呈现API或静态组件,Web服务实现的功能可以是响应用户一个简单的请求,也可以是完成复杂的业务流程,通信是无状态的。利用WSDL文件可以动态描述Web服务,这需要结合企业门户的业务服务的逻辑和对外发布的应用接口具体定义。服务描述重点包括服务、调用操作的消息、构造消息的细节以及向何处发送处理细节的消息,使得API发生改变时,系统其他组件在运行时可以自动调整,要求表现与逻辑分离以实现这一动态任务。
  EJB提供了对服务的安全访问和并发处理事务的支持,可以基于EJB构建SOA中的一些服务,通过把Web服务模型化为EJB端点,使服务具有可伸缩性,并且可以增强可靠性。
  
  参考文献:
  [1]王兵,基于面向服务架构的应用系统开发与集成研究[D].四川:四川大学,2005.
  [2]吕希艳,基于SOA的企业信息资源整合[J].中国科技论坛,2006(3).


转载注明来源:https://www.xzbu.com/8/view-1067394.htm