如何用WID和WPS开发EAI解决方案(一)

日期: 2008-09-09 作者:薛江波陈荻玲张煜 来源:TechTarget中国 英文

  引言


  本文将介绍IBM WebSphere Integration Developer(WID)和WebSphere Process Server(WPS)的基本功能,以及如何通过业务集成视图来快速开发、测试并部署一个企业应用集成(EAI)解决方案。


  一. WPS和WID简介


  1.1什么是WPS(WebSphere Process Server)


  WPS是由具体的业务整合概念、应用服务器技术以及最新的公开标准而发展而来的下一代业务流程整合服务器。基于现有的公开标准,它实现了简单的编程模型服务组件模型SCA(Service Component Architecture),调用模型,以及部署模型。在随需应变的业务概念中,所有的业务都是跨公司、核心业务伙伴、供应商和客户的端到端的集成业务,这些业务可以使客户在同行业竞争中获得巨大的优势。而为了维持这种优势,IT基础设施必须支持在未来的业务变化过程中能够快速有效的创建并实施新业务流程。


  WPS通过提供以下的功能来使简单、灵活的IT基础设施能够满足通常的业务需求。


  ·基于模型的业务流程管理。它可以使企业清楚地看到功能和性能持续的改善。
  ·通过组件化技术使得已有成果得到最大化的重用从而快速满足市场需求。
  ·面向服务的架构SOA(Service Oriented Architecture)则提供了基于标准的架构来实现上面两点。


  1.2什么是WID(IBM WebSphere Integration Developer)


  集成公司所有业务是一项非常有挑战性的工作,它必须有一个完整的集成开发环境来方便、快捷的开发集成应用程序以面对变化无穷的市场需求。无疑,WID的诞生使得一切都变得很十分简单。WID是基于RAD(Rational Application Developer)的开发环境,不仅提供了一个使可视的组件与后端实现相分离的层次结构,而且对本地和远程EIS(企业信息系统)上作为组件的业务流程的开发、调试、装配、部署等各种功能提供了可视编辑器,这使得各个组件和它们的实现相分离。开发人员无需深入了解各个组件的实现便能使用WID开发各种集成应用程序。它同时支持自顶向下和自底向上两种开发方法,并且有一个集成测试环境可以使开发人员在程序正式投入生产环境前对程序进行全方位的测试和调试。


  最重要的一点就是WID是基于面向服务的架构。组件是业内领先的标准Web服务(Web Services),并且一个包含很多个组件的集成应用程序本身也是一个Web服务。这使得作为组件的业务流程可以用易用的可视化工具生成为业内标准的业务过程执行语言(BPEL,Business Process &#101xecution Language)。同时WID还支持多种操作系统包括Windows和Linux,使得它能够得到更广泛的应用。


  二. 方案背景


  目前,如果消费者想买一份保险,他们需要给各个保险公司或者代理商打电话得知某种保单的报价。这使得消费者很难对各个保险公司进行比较,因为如果保单有任何变化,他们就必须给各个公司都再打一次电话获得相关报价。而对于保险公司,客户信息是由各客户服务代表录入到公司的遗留数据库中,然后公司的其他客户代表就可以通过终端来获得这些客户的信息。


  当今,很多公司都开始使用网络在增强业务处理能力。这里,我们可以看到一个保险公司如何利用IBM WID和WPS丰富的组件模型和强大的开发、运行环境的特性,通过业内领先的完全基于公开标准的架构,在网上实现它的业务流程以及和合作伙伴间的业务集成。


  保险公司的业务需要对其IT架构提出了如下的新需求:


  ·现有系统(Oracle)与遗留系统(PeopleSoft)间不同数据模型的转换
  ·现有系统与遗留系统间数据同步
  ·完全基于J2EE和Web服务的IT架构
  ·人机交互
  ·基于J2EE架构的在线业务
  ·业务伙伴合作
  ·使用分布式的计算环境使IT架构更加灵活,高效


  三. 解决方案概述


  基于保险公司的各项业务需求,我们充分利用了WPS的特性来设计其IT解决方案架构。


  3.1 如何利用WPS的特性实现需求


  做为下一代业务流整合服务器,WPS针对市场需求和具体的业务流程实现提供了很多优秀的特性。这些特性使得解决方案开发人员可以更自由、快捷地组织和开发业务流程,进而实现可以随需应变的SOA架构。其中比较突出的特性有以下几点:


  ·WPS采用的是面向对象的架构,所有的业务对象统称为服务数据对象SDO(Service Data Object)。SDO根据业务需要逻辑上可以进一步分为通用业务对象GBO(Generic Business Object)和应用相关业务对象ASBO(Application Specific Business Object)两种。GBO是某一个执行实体需要的数据的扩展和抽象。ASBO是与某一个应用相关的具体的数据表现。ASBO和GBO分离是此系统架构中的一个突出优势,来实现数据在遗留系统和现有系统间的表现。
  ·WPS特有的映射(Map)、关系(Relationship)和中介(Mediation)使得异构数据和接口间的转换变得非常简单,便捷。
  ·WPS同时支持符合J2EE规范的JCA适配器和已有的WebSphere业务集成适配器,使得现有系统和遗留系统之间的交互成为可能。
  ·WPS是完全符合J2EE规范以及其他公开标准的流程整合服务器,可以方便的找到合格的开发人员去快速地开发便于维护的业务集成应用程序。
  ·独有的人工任务(Human Task)支持使得人机交互不再受空间的限制,可以更灵活的设计业务流程以满足市场需要。
  ·WPS完整的J2EE访问支持使得现有J2EE应用程序可以重用,并与业务流程紧密集成。
  ·WPS基于服务的架构(SOA),使得其他合作伙伴可以轻松的访问其提供的Web服务,从而使得整个业务流程更加完全、流畅。
  ·WPS提供的基于WebSphere应用服务器v6的网络部署架构,使得各应用程序可以运行在不同的服务器上,而且可以在不同层次上对资源、安全等进行配置和监控。


  3.2解决方案的整体架构


  3.2.1 IT架构设计


  基于WPS的特点和保险公司的需求,我们为该公司设计了如下的IT架构,如图1:



  图1:WPS解决方案架构
 
  这里,WPS服务器上运行了四个主要的流程和适配器,Web数据库中存放了在线信息,PeopleSoft应用程序是用来存储客户信息的遗留系统,.Net Web服务是在微软.Net环境中开发的信用系统,代理商应用程序可以运行在任何一台主机上然后通过网络与WPS服务器通信。客户可以直接通过保险公司进行业务处理,也可以通过代理商进行业务处理。


  3.2.2组件实现设计


  根据公司的业务需求,这里我们设计了同步(Sync)、索取报价(Quote)、索赔(Claim)以及委托流程(模块)来实现公司的业务,以及InsuranceLib共享库来存储所有业务对象、接口的定义。同时,还需要适配器、中介、人工任务的配合来共同实现整个系统(图2)。



  图2 解决方案的组件设计
 
  在这个设计中,JDBCGeneric和GenericPS分别是JDBC JCA适配器到BPEL和BPEL到PS遗留适配器接口间的中介组件。Estimator服务是需要评估师参与的人工任务,折扣业务规则是对客户给予何种折扣的业务规则(Business Rule),信用记录是保险公司访问信用维护系统的Web服务接口。


  这样,客户通过Web应用程序注册后,就可以访问Quote流程来索取相关报价,通过Claims流程进行索赔。同时,后端的Sync流程会主动从Web数据库中拿到更新的数据,然后同步到PeopleSoft遗留系统中去。在索取报价的流程中,保险公司可以通过访问信用公司提供的.Net Web服务获取用户信用度,然后通过相应的折扣规则返回相应报价。


  同时,保险公司的代理商也可以通过Web服务的方式访问Quote BPEL来为客户索取报价。


  这里我们将展示如何用WID和WPS进行模块和共享库的开发、测试、组装以及部署的全过程。


  四.解决方案的开发


  4.1开发流程概述


  WID提供了一套完整的工具和流程来支持自上而下或由下至上的开发模型。


  自上而下的开发特指已经有了整个业务系统的逻辑框架,然后把该框架映射到实际的实现系统中。在WID中提供了模块的概念,一个模块代表了一个逻辑的子系统,模块之间的交互也就代表了各个子系统之间的交互。然后对每一个具体的模块,WID提供了组装图编辑器来刻画子系统内的组件之间的关系。通过使用该编辑器上所提供的各种组件,可以快速的定义出系统内业务流程的关系,然后把这些组件连接起来就形成了整个子系统的运行时拓扑图。在得到整个系统的拓扑结构和各个分系统内的拓扑结构后,就可以具体实现各个组件,最终实现整个系统。


  由下至上的开发指先开发各个组件,然后提取出其接口,通过组装编辑器映射为整个业务系统的逻辑框架,这种开发流程相对来说更为简单。首先从单个的子系统入手,通过分析该业务流程的数据结构,接口类型,以及需要使用到的组件类型,逐个对这些对象进行设计和实现。最终把他们拖拽到组装图编辑器中连接起来,形成一个完成的子业务流程。然后把其他的子系统的Import文件导入到组装图编辑器中,通过该Import来体现了该子系统和其他的系统之间的交互。通过这种方式得到的每一个子系统就是一个独立的可部署运行的实体。


  然而,不管采用何种开发模型,下面的一些步骤都是必然所要经历的:


  ·定义业务对象:包括定义GBO和ASBO。
  ·定义组件接口:接口是组件交互的唯一手段,只有预先定义好组件之间的接口,才能快速的开发出所需的业务系统来。
  ·定义数据、接口之间的映射和关系:通常接口与接口之间并不完全相同,接口所保护的数据对象也不完全相同,在这种情况下当需要实现了不同的接口的组件需要交互时,则要先定义出接口之间、数据之间的映射。通过这种映射和关系来把数据和接口匹配到需要交互的接口上。
  ·定义业务逻辑:在WID中提供了可视化的BPEL编辑器,通过该编辑器可以直观的定义出复杂的业务逻辑。
  ·测试各个组件:通过这种单元测试,可以很快的发现系统中的问题。
  ·组装所有组件:当定义完所有的组件后,就可以把他们拖拽到组装图编辑器中,然后把他们连接起来。这样就完成了整个子系统的设计和实现。
  ·部署应用程序:当完成了单个模块的测试后,就可以直接到该模块导出为一个可以在WPS上部署运行的实体(EAR)。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐