导读:

  Portal技术在SOA系统集成应用中的实现

  一、 引言

  1.1项目背景

  凤凰医疗设备有限公司(以下简称“凤凰”,虚构的名字,便于讲解)是一家专门制造和营销专业医疗器械和实验仪器仪表等仪器的民营企业,其购销客户和网络遍布全国各地。凤凰成立于2000年,现有员工750名。公司领导一直非常重视企业的信息化建设并投入了大量的资金支持。公司内部普遍使用Office办公软件以及常规的工具软件。

  2004年凤凰公司引进并在公司内部成功实施了某ERP系统(部署在凤凰企业内部的Web应用),主要用于凤凰公司的财务管理,其中包括产品库存及订单管理等。ERP的实施大幅度地提高了公司的管理效率。

  随着公司业务规模的扩大和产品质量的提升,凤凰公司的客户数量越来越大。凤凰公司有一支精干的销售队伍,他们经常出差和客户打交道。虽然销售人员都配备了笔记本电脑,使他们能够方便地和公司通过email发送和接受文档,但是竞争的压力使得凤凰公司不得不考虑使用客户关系管理系统(CRM)来进一步提高销售人员的工作效率。于是,2005年8月份凤凰公司引进并成功应用了某客户关系管理系统(CRM)。CRM通过订阅的方式来提供客户关系管理服务,凤凰的销售人员在任何时间和地点只需要通过普通的Web浏览器就可以使用和管理客户及销售信息,包括客户信息,商机,业务机会,以及客户及销售信息分析图表等。

  现在凤凰公司的财务和销售人员分别在ERP和CRM系统上工作,工作效率有很大提高。但是公司目前也面临挑战:一方面,ERP和CRM中分别维护产品和客户信息,而公司规定ERP必须作为这些信息的主数据源,ERP中的这些信息需要随时同步到CRM中去;另一方面,CRM中维护的业务机会和ERP中维护的销售订单有着非常紧密的关系,凤凰公司希望能够把业务机会和销售订单有效地整合起来,而进一步提高业务运作的效率。

  凤凰公司随着业务的扩大,旧的IT系统不能适应业务变更的需求,需要对已有CRM和ERP系统进行整合,为了搭建一个能够随需应变的系统架构平台,帮助凤凰公司将已有但不灵活的业务集成起来,使企业具备灵活应变的业务模式,消除重复系统,实现一体化而设计出基于SOA思想的企业整合。

  目前,门户集成逐渐成为许多面向服务的体系结构 (SOA) 应用程序不可或缺的部分。迷人的图形用户界面 (GUI) 加上固有的 Portal 功能大大增加了业务流程应用程序的价值,特别是需要人工交互的长时间运行的流程应用程序。

  1.2 项目目标

  凤凰公司目前的业务环境和IT环境下,使用用例模型、数据模型这两种方式描述从业务机会生成销售订单的业务流程,接着使用CBM&SOMA这两种建模方法建立针对业务的服务组件模型,以ESB作为架构的骨干搭建凤凰公司企业集成架构,连接交互服务、流程服务、信息服务、伙伴服务、业务应用服务和数据访问服务六个模块,协调它们之间的通信,已完成对服务的调用和传递。实现每类模块时采用了Portal、虚拟数据库和SCA等大量新技术,最后提出后期开发和部署服务、以及进行系统测试的项目开发计划。

  在系统中的创新点在合作伙伴社区,它提供中文智能检索和文本自动归档功能,使用本体解决语义异构问题,根据用户的需求描述自动地发现第三方伙伴服务。我们构建的凤凰公司业务整合系统能够很好的满足服务设计在SOA方向上的特点,能够体现出未来企业业务整合的新方法,这套设计能够做到面对企业的“随需应变”而自由适应。

  1.2.1客户关系管理

  主要包括销售过程、市场和客户服务等方面。销售管理系统涵盖了企业进行销售管理所需要的全程支持,通过集成化的系统设置可灵活地支持个人销售、直销、渠道/合作伙伴管理等多种销售模式。其强大的自定义功能可方便对系统进行灵活扩展。市场管理帮助企业建立和管理市场活动,并获取潜在客户;帮助市场研究人员了解市场、竞争对手、消费趋势,并制定灵活、准确的市场发展计划。服务管理主要是完成对服务流程的自动化和优化,加强服务过程的控制和管理,实现标准化、准确化的服务,从而达到提高服务效果,增加客户满意度的目的。

  1.2.2 销售管理

  销售管理支持多种销售方式,供货能力检查帮助销售人员准确的向客户承诺交货期,信用风险控制确保交易是安全的,产品配置及报价器帮助按订单生产或按订单装配的企业向客户快速准确地提供产品报价,客户关系管理方案使销售效率大幅度提高,增加企业收益。采购管理支持报价比较功能,帮助采购人员选择最佳的采购方案。应用工作流,负责审批的业务人员可以随时从TEEMS获得相关的审批依据,使得采购过程得到有效的监控。物料管理针对不同行业对物料管理的特殊要求进行了行业设计,可以使用于不同的行业。根据不同行业的实际情况,物料管理与计划、采购、生产、销售的集成可以帮助企业实现物料的优化管理(优化库存结构、优化库存成本)

  对客户关系管理系统和企业物流及供应链管理系统进行进一步的整合,完成从客户发现到订单处理一条龙式的业务流程处理,提高企业运作的整体效率

  二、 相关技术

  凤凰公司随着业务规模的扩大和产品质量的提升,公司的客户数量越来越大,公司引进CRM系统进行客户关系管理,由于CRM和已有的ERP系统信息需要交互,采用SOA的思想对企业已有IT系统进行整合。以服务为中心的集成通过服务的交互来集成凤凰公司的IT资源,搭建一个能够随需应变的系统架构平台,帮助凤凰公司将已有但不灵活的业务集成起来,使企业具备灵活应变的业务模式,消除了重复系统,实现了一体化。在构建系统架构过程中,我们使用了IBM提出的很多新技术,这些关键技术分别应用于开发中的不同方面,下面分别对哪些方面采用了哪些关键技术进行介绍:

  2.1 面向服务的体系结构

  SOA 体系结构形式目的是提供企业业务解决方案,这些业务解决方案可以 按需扩展或改变。SOA 解决方案由可重用的服务组成,带有定义良好且符合标准的已发布接口。SOA 提供了一种机制,通过这种机制,可以集成现有的遗留应用程序,而不管它们的平台或语言。

  从概念上讲,SOA 中有三个主要的抽象级别:

  操作:代表单个逻辑工作单元的事务。执行操作通常会导致读、写或修改一个或多个持久性数据。SOA 操作与面向对象的方法相比。都有特定的结构化接口,并且返回结构化的响应。完全同方法一样,特定操作的执行可能涉及调用附加的操作。

  服务:代表操作的逻辑分组。例如,如果我们将 CustomerProfiling视为服务,则 按照电话号码查找客户、 按照名称和邮政编码列出顾客和 保存新客户的数据就代表相关的操作。

  业务流程:为实现特定业务目标而执行的一组长期运行的动作或活动。业务流程通常包括多个业务调用。业务流程的例子有: 接纳新员工、 出售产品或服务和 完成订单。业务流程包括依据一组业务规则按照有序序列执行的一系列操作。操作的排序、选择和执行称为服务或流程编排。

  2.2 面向服务企业应用集成

  以服务为中心的集成,简称 SOI。 它可以定义为:在以服务为中心的体系架构(SOA)中,通过服务的交互来集成各企业的 IT 资源,如分布的应用或者数据,帮助企业 IT 部门将已有但老旧而不灵活的系统集成起来,释放其中功能或数据为可重用的服务与业务流程。

  SOI 继承和发展了传统的 EAI,比较而言,SOI 的好处在于:

   定义良好而又基于标准的接口 - 服务的描述易于理解,而且标准一致

   实现技术和位置的透明 - 提供服务功能的应用,它的位置以及所使用的实现技术被接口所屏蔽,事实上,不需要一个固定的服务提供者

   灵活性 - 只要服务的接口不变,服务的提供者和服务的使用者都可以变化而不影响彼此,从而将变化带来的影响减少到了最少

   重用能力

   渐进式集成 - 在 SOI 中,通过将若干已有系统的相关功能转化为服务来进行集成。随着这些项目的进行,可重用的服务越来越多,最终,新的集成需求将绝大多数可以通过已有的服务来完成。所以,我们可以从当前重要的集成需求开始来封装已有系统的功能和开发必要的新服务,以渐进的方式逐步地扩展到整个企业范围内的集成。更重要的是,由于服务的灵活性,即使已有系统迁移到新的技术平台,甚至是被替代,都不会影响到依赖于这个应用所提供功能的那些应用,从而保证了集成对变化的适应能力,使得业务灵活性有一个坚实的基础。这也意味着从传统规模大、投入大、周期长、见效慢、风险高、专有技术,转向小步快跑、见效迅速、风险低、基于标准的集成方式。这对于如今面对业务需求快速变化的 IT 机构来说,SOI 在投入和工程方面的好处,是非常吸引人的 。

   IBM的 Websphere 业务集成参考架构(见图1,以下称参考架构)是典型的以服务为中心的企业集成架构。

  这里架构元素提供的服务既包括狭义的服务(WSDL描述),也包括广义的服务(某种能力)。从服务为中心的视角看来,企业集成的架构按图1所示的方式划分为六大类:

   业务逻辑服务(Business Logic Service):包括用于实现业务逻辑的服务,和执行业务逻辑的能力。这其中包括业务应用服务(Business Application Service)、业务伙伴服务(Partner Service)以及应用和信息资产(Application and Information asset)。

   控制服务(Control Service):包括实现人(people),流程(process)和信息(information)集成的服务,以及执行这些集成逻辑的能力。

   连接服务(Connectivity Service):连接服务通过提供企业服务总线提供分布在各种架构元素中服务间的连接性。

   业务创新和优化服务(Business Innovation and Optimization Service):用于监控业务系统运行时服务的业务性能,并通过及时了解到的业务性能和变化,采取措施适应变化的市场。

   开发服务(Development Service):贯彻整个软件开发生命周期的开发平台,从需求分析,到建模、设计、开发、测试,维护全面的工具支持。

   IT服务管理(IT Service Management):支持业务系统运行的各种基础设施管理能力或服务,如安全服务、目录服务、系统管理和资源虚拟化。

  2.3业务流程服务器

  业务流程服务器根据 SOA 和开放标准支持各种形式的集成,使用它能实现跨越人、工作流、应用程序、系统、平台和体系结构的业务流程自动化。

  图2-2 WwbSphere Process Server 体系结构

  2.3.1 业务流程

  业务流程是在异构环境下开发一致的分布式应用的基本模块。基于业务流程的应用由两部分构成:描述不同活动(activities)逻辑顺序的流程模型和实现这些活动的服务/组件。

  业务流程可看作是为了实现一定的业务目标,按设定的顺序执行的活动、规则或条件的集合。发起流程的活动(originating activity)提供的组件接口实例化了该流程。这个活动可能是来自人工任务管理器的发起任务(originating task)、Web服务调用或者其它服务组件的调用。流程中的活动可以用不同的服务来实现。所有的活动用控制链(control link)进行逻辑连接。根据业务需求和流程步骤间的依赖关系,活动可以串行或者并行地执行.

  业务流程的类型:

   可中断性流程是长时间运行并且由事务服务组成的流程类型。

   非中断性流程是短期存活的操作行为,组合起来形成单独的事务操作。

  如果流程的每个步骤都运行在自己的物理事物中,那么该业务流程就是可中断性流程。可中断性流程通常都是长期运行的流程。如果业务流程需要等待外部激励或者包括了用户之间的交互,那么该业务流程就必需是可间断的。外部激励的例子有:

  ● 在企业对企业的交互中由另一个业务流程发送的事件

  ● 对异步调用行为的响应

  ● 完成员工活动

  非中断性业务流程以单线程的方式运行,从启动到结束期间是不可中断的。非中断性流程也称为 microflows。这些流程有不同的事务能力。它们能够作为活动会话的一部分运行在分布式事务中,或者和本地事务一起运行。

  2.3.2 人工任务

  人工任务是人工任务(Human Task)可以用来向员工分配任务或调用任何其他服务,是指业务流程中的活动(Activity)和人的交互.人工任务管理器支持四种同类型的人工任务:机器-人场景中的任务,人-机器场景中的任务,人-人场景中的任务,管理任务.

  2.3.3 人工任务管理器

  人工任务管理器(Human Task Manager)实现了与人工任务相关的下列功能:

   让用户启动业务流程或者其他Service 组件

   实现业务流程中的Staff活动

   流程管理(Administration)

   动态创建含有与人工或者Service交互的任务

  2.3.4 Selector组件

  针对业务整合应用的特点,WPS中提供特殊的服务组件来增强业务建模和构建实现的能力。Selector服务组件就是这些特殊的服务组件中的一个,它像一个"路由器",能够动态的将客户端和目的端组件绑定。Selector组件被放置在客户端和目标端之间,它根据定义的选择规则、基于客户端的输入,为其选择相应的目的端,从而实现客户端和目的端之间的动态绑定。

   客户端,Selector的客户端是任何可以调用WPS中的服务组件(SCA)的客户端。它向Selector组件发出调用请求。

   选择器(Selector),Selector组件是一种特殊的服务组件(SCA)。定义在Selector接口中的操作反映了业务需求或者业务任务,Selector的目的端提供了其接口中定义的操作的实现。Selector组件根据定义的选择表动态的选择哪一个目的端服务被调用。

  目的端,可以是任何的服务组件(SCA),它需要实现Selector组件中接口中定义的操作。

  2.4 PORTAL服务器

  2.4.1 WebSphere Portal平台

  IBM WebSphere Portal是WebSphere软件平台的一部分。该平台可划分为3个功能领域:

  图2-3 WebSphere Portal功能划分

   基础和工具部分用来构建、运行和部署应用。WebSphere Application Server主机集成技术以及先进的开发工具构成了坚实的平台基础。基础和工具部分提供所需的互联网专业技术,使您能够构建并使用Web服务,并且可以与更大范围的技术开发人员和WebSphere用户沟通、交流。

   业务集成部分用来集成内部业务流程,其中包括涉及业务合作伙伴的流程。WebSphere Business Integrator等WebSphere产品可帮助公司简便地实施应用和业务流程,包括供应链管理及现有流程与Web的集成。

   企业门户网站用来个性化基于Web的内容并使任何设备都可以访问这些内容。这些WebSphere产品可进一步优化用户的体验并为您的客户、员工、业务和贸易合作伙伴以及远程分支机构提供广泛的接入方式。

  WebSphere Portal是WebSphere平台企业门户网站部分的主导产品,它提供可扩展的框架,使企业应用、内容、人员和流程可以实现互动。自助服务特性使最终用户可以个性化或组织他们自己的门户网站视图,管理自己的配置文件,以及发布并与其他同事共享文件。

  2.4.2 WebSphere Portal体系结构

  WebSphere Portal是业界综合性最强的门户网站解决方案,已经成为了事实上的电子商务体系结构标准。为了实现这个体系结构,WebSphere Portal中集成了IBM和业务合作伙伴的技术。IBM还在扩展门户软件,以开发更多的产品,这些产品可提供高度个性化和情景相关的应用——可随时通过任何设备访问。

  图2-4 Websphere Portal体系结构

  随着电子商务应用逐渐实现随需应变特性,WebSphere Portal提出了委托管理、级联页面布局、通过web服务实现门户网站联合、高级Portlet应用的概念以及业务流程集成、知识管理、利用集成生产力组件进行文件管理和高级个性化特性等等,引领着该领域的发展。在补充产品中,实现了更多普遍计算功能,如:智能通知、脱机浏览和数据同步等。

  WebSphere Portal有几个版本,分别设计用来提供构建和部署高扩展性门户网站所需的基础设施。所有产品系列都使用同一框架(门户服务器),并提供其他产品和服务。门户服务器提供应用连接、集成、管理和显示等通用服务——各种门户网站环境都要求有这些服务。

  选择WebSphere Portal产品的客户能够实现实实在在的业务和技术优势:

   由于与客户和合作伙伴的关系更加密切,员工效率更高,实现了创新,而且周期缩短,因此可增加收益。

   由于运营效率提高,信息流和知识管理得到改善,而且拥有一致的基础设施,因此可降低运营成本。

   由于可以访问相关性更强的信息并且可通过单一接入点访问应用和协作工具,因此可提高员工的工作效率。

   安全性更好并且可实现单点登录,因此可减少管理员的密码数量并改善用户体验。

   统一的显示外观和一致的用户界面可降低培训成本。

   应用的一体化可延长他们的使用寿命,并可采用新的方法通过桌面系统和普及设备接入。

  2.4.3 Portlet合作

  门户服务器为Portlet提供了相互通信和交换数据或其他信息的机制。在生产门户网站中,Portlet通信可以用来在Portlet之间复制通用数据。这样,用户可减少不必要的键入工作,使portal更加易于使用。例如:一个Portlet可能显示帐户信息,而另一个则显示其中一个帐户在前30天内的交易信息。为了实现这一点,交易Portlet显示交易详细信息时,需要获得相应的帐户信息。

  这是使用Portlet和Portlet信息、通过两个Portlet间的通信完成的。在这个例子中,帐户Portlet会创建一个Portlet动作,并把它编码到处理交易的URL中。点击这个链接时,会调用动作接收程序;然后,接收程序会发送一条Portlet信息,以发送必要的数据。

  计划性消息收发可帮助统一访问不同后台应用的Portlet应用。但是,相对来说,这种方式是静态的,要求事先的规划和设计工作。交换信息的Portlet必须已经知道对方,以便执行交换操作。接下来,我们将深入讨论Portlet相互合作的方法。

  2.4.4 Portal页面的结构

  一个portlet能产生标记片段。portal通常在portlet产生的标记片段中加上标题,控制按钮及其它修饰。这个新的标记片段称为portlet窗口。然后portal合并这些portlet窗口为一个完整的文档,即portal页面

  修饰和控件

  标题 portlet片段

  portlet窗口

  

  portal页面

  2.5 业务流程门户技术

  门户网站不仅可作为简单的统一web应用接入点,还可以发挥更大的作用,提供安全性、搜索、协作和工作流程等重要的功能。门户网站可提供集成的内容和应用以及统一的协作工作空间。门户网站必将成为下一代桌面系统,可通过web向各种客户机设备提供电子商务应用。

  完整的门户网站解决方案应使用户可以随时随地、安全、方便地访问他们完成任务所需的所有东西。门户网站是提供个性化、相关web体验的关键所在,它使用户能够以一种个性化很强的互动方式,方便地找到所需的东西。也就是说,门户网站提供工具和用户界面,以访问信息和应用,并管理内容的选择和个性化。

  2.5.1 企业门户

  企业门户(EIP)是企业进行电子商务建设的高级阶段。目前,较成熟的全套电子商务解决方案产品已经出现,部署企业门户可以从零开始,一步到位。但事实上,许多企业都在内部早已进行了一定程度的信息化建设,如企业Intranet基础设施和网站的建设,也包括财务管理、生产自动化、仓储管理等应用。企业门户的部署必须将这些遗留系统及应用予以集成,从而避免重复投资和浪费。所以可以说,企业要成功部署EIP,关键一点是要解决好其内部各种应用集成的问题。

  面向服务企业应用集成(SOI)是指对企业中完成不同业务功能的应用系统进行集成,在它们之间建立起可供数据交流和应用沟通的企业服务总线(ESB)。电子商务时代的企业不仅需要在企业内部的系统之间进行集成,而且需要对供应链中的不同企业系统进行集成。电子商务应用集成需要通过Internet和Intranet,实现企业内部、企业与企业之间,以及企业与客户之间端到端的业务集成。

  由于多数企业的IT系统是由多个分散的、内部和外部的IT系统构成的,所以企业IT基础设施异构环境是比较复杂的。此外,建立企业门户必须要处理遗留系统的集成问题,这给门户的部署带来了重重的困难。实际上,目前许多现有的商务站点一般都不能解决遗留系统的问题,而企业门户的重要目标之一就是解决企业的遗留系统与电子商务应用集成的一系列问题,这对于大企业而言更是重要。

  企业门户建设需要深入挖掘和利用存储在企业内外的各种信息,并对其进行个性化处理。企业信息通常包括来自企业数据库、数据仓库、ERP、供应链管理系统、财务系统、人力资源系统、客户服务系统等各种渠道的信息。为了利用浏览器将这些信息准确方便地发布给适当的用户,首先必须利用适当的系统平台,对来自这些系统的数据进行适当的采集、处理、分析、加工和展示。

  企业门户按照应用领域,可以划分为信息门户、知识门户、应用门户:

   企业信息门户(EIP, Enterprise Information Portal),是为同一价值链上的相关人员提供公开信息的浏览、以及个性化地内部信息的访问。信息门户既是一个展示企业形象的窗口,又是企业获取外部访问者信息的接口,既能够动态地发布存储在企业内部和外部的各种信息,又能够支持网上的简单商务应用,以及社区,访问者可以相互讨论和交换信息,对企业内分布存储的各种格式、各种来源的内容(文档、数据)进行统一检索、分类浏览,并根据权限进行访问控制。

   企业知识门户(EKP,Enterprise Knowledge Portal),是同一价值链上的相关人员主要是企业员工日常工作的“知识库”。访问者通过它获取最新的信息与知识、技术规范、标准、工作手册、合同范本等。知识门户不仅是静态的页面,重要的是在相关人员之间建立了动态的关联,成员之间通过权限分配可以实时取得联系,寻找到能够提供帮助的专家、团队或者资源,企业知识门户还具有信息搜集、整理、提炼、内容聚合、目录服务的功能,可以对已有的知识进行分类,建立子知识库并随时更新内容。它的建立实现更广泛的知识共享,提高了生产经营效率。

   企业应用门户(EAP,Enterprise Application Portal),是对企业业务流程的集成。它以商业流程和企业应用为核心,把商业流程中功能不同的应用模块、应用系统集成在一起,象办公系统、生产系统、销售系统、售后服务系统等,这种集成不是一般意义上的界面集成,而是要实现权限的集中分配管理和应用/过程/数据的集成、协作支持、网上交易,从而建立起统一的协同工作平台,提供基于WEB的工作场所。

  2.5.2 业务流程门户

  三、 系统需求

  对凤凰公司现有系统进行业务集成时,不仅要保护现有IT 资产中的投资,还要避免公开“拼凑”的集成方法。它需要具有流程解决方案或应用程序服务器基础,使用通用组件和服务的多种集成样式的聚合,同时还要求操作环境支持面向服务的解决方案的实现,可以采用模块化、随意构建的方式实现,并且支持企业级实现所需的全部功能。

  IBM的WebSphere Integration Reference Architecture提供了一整套服务来支持业务集成。这些服务可以提供满足集成需求所需的各种功能。更重要的是,这些组件服务是分阶段实现的,允许在企业集成解决方案体系结构中工作的同时以项目为基础进行增量发展。尽管特定项目可能并非都需要这些服务,但是企业级集成必须具备将这些功能添加到集成体系结构中的能力。最后得到的体系结构通过启用业务逻辑、控制逻辑、松耦合的路由和转换逻辑来支持关注点分离,因而具有更多的更改灵活性。在组织级别,此方法有利于更简单的集成解决方案的开发,并可增强解决方案的可维护性和可操作性。

  3.1需求分析

  3.1.1业务环境分析

  凤凰医疗设备有限公司是一家专门制造和营销专业医疗器械和实验仪器仪表等仪器的民营企业,其购销客户和网络遍布全国各地。它的业务环境有如下特点:

  (1)分散性:由于凤凰公司是一个全国营销的产销一体的公司,所以它的销售人员、供应商、客户都会分散在全国各地。

  (2)信息滞留性: 由于网络遍布全国,销售人员、供应商、包括各种客户信息无法及时交互。

  (3)不灵活性:一旦现实中业务流程有变更,系统无法及时安排业务流程变更,所以目前系统有不灵活性。

  3.1.2 IT环境分析

  由于公司具备了基本的硬件环境,所以2004年凤凰公司引进并在公司内部成功实施了某ERP系统。主要用于凤凰公司的财务管理,其中包括产品库存及订单管理等。2005年8月份凤凰公司引进并成功应用了客户关系管理系统(CRM)。下面是对两个子系统的具体分析:

  (1) CRM原有子系统分析:

  CRM的引进,使销售人员可以在全国各地通过WEB随时使用CRM系统,可以在CRM系统中跟踪业务机会,查看客户信息,查询企业产品必要的信息。但销售人员的业务机会不能直接回馈到企业,生成订单.并且CRM中的相关产品信息是从ERP中更新过来的。存在一些滞留性,所以导致效率降低。

  (2) ERP原有子系统分析:

  ERP系统的引进,主要用于凤凰公司的财务管理,其中包括产品库存及订单管理等。ERP的实施大幅度地提高了公司的管理效率。但ERP主要应用于企业的内部管理,与企业的销售人员,还有合作伙伴关系不紧密。销售人员的业务机会无法直接与销售订单衔接起来,还需要财务人员根据销售人员的信息,从新手动生成销售订单。大大降低了效率。

  3.1.3 业务流程分析

  图3-1业务流程

  3.2 用例模型分析

  3.2.1 Actor及其描述

  通过分析模型,可以得到该系统的Actor为销售人员(Seller),财务人员(Accountant),经理/主管,商业伙伴,系统管理员。

  1) 销售人员:是该系统的主要参与者,主要活动有在CRM系统联系客户,建立更新业务机会,发送订单请求。

  2) 财务人员:是该系统的主要参与者,主要活动有处理销售订单,冻结销售订单,解冻销售订单,核对客户,生成销售订单。

  3) 经理/主管:

  4) 商业伙伴

  5) 系统管理员

  3.2.2系统用例描述

  1) 销售人员和财务人员的用例描述

  图3-2: 系统用例图

  (1) Find Potential Customer:寻找潜在客户的主要参与者是销售人员,销售人员将发现的潜在客户的信息录入CRM系统的客户管理中。

  用例名称 Find Potential Customer

  简要描述 1. 销售人员发现潜在客户

  2. 将客户信息输入到CRM系统

  触发条件 销售人员在市场中发现客户

  后置条件 由发现的客户,生成业务机会

  (2) Create Business Chance: 创建业务机会的主要参与者是销售人员,销售人员发现潜在客户之后,将客户信息和客户的需求(产品列表)来创建一个业务机会。

  用例名称 Create Business Chance

  简要描述 根据客户信息和客户的需求生成一个业务机会

  触发条件 销售人员在市场中发现有购买意向的潜在客户。

  后置条件 更新业务机会

  (3) Create Customer:主要参与者是销售人员。当前客户信息不存在,即查找客户返回空时创建新的客户信息,生成新的客户。

  用例名称 Create Customer

  简要描述 创建新的客户信息

  触发条件 当前客户不存在

  后置条件 创建业务机会

  (4) 提取产品列表:主要参与者是销售人员。业务机会建立后,通过ERP系统提取全部的产品基本参数,包括产品的型号,参数,售价等信息供客户查询。

  用例名称 提出产品列表

  简要描述 显示全部的产品基本参数,包括产品的型号,参数,售价等信息供客户查询

  触发条件 业务机会已经创建成功

  后置条件 更新业务机会状态

  (5) Update Business Chance:通过跟客户谈判,来更新业务机会。

  用例名称 Update Business Chance

  简要描述 通过跟客户谈判,销售人员手动更新业务机会

  触发条件 业务机会已经创建成功

  后置条件 发动订单请求

  (6) Submit order request:发送订单请求的主要参与者是销售人员,销售人员通过与客户谈判时时更新业务机会,当业务机会为赢时,也就是跟客户谈判成功后,便可发送订单请求。

  用例名称 Submit order request

  简要描述 1. 生成订单

  2. 发送订单请求。

  触发条件 当业务机会为赢时。

  后置条件 向ERP系统发送订单请求,财务人员处理订单。

  (7) Operate order处理订单的主要参与者是财务人员。财务人员接到销售人员的订单请求后,开始处理订单。

  用例名称 Operate order

  简要描述 1. 财务人员接到销售人员的订单请求

  2. 开始处理订单。

  触发条件 接到订单请求

  后置条件 开始处理,核对用户,检查库存

  (8) Audit Customer:核对用户,主要参与者是财务人员。财务人员对从CRM提交的客户进行核对。检查客户是否存在,检查客户信息是否正确,不存在录入新客户资料。

  用例名称 Audit Customer

  简要描述 1.核对CRM系统中的随业务机会传过来的客户信息

  触发条件 开始处理订单

  后置条件 检查库存

  (9) Check Inventory:检查库存的主要参与者是财务人员。财务人员通过订单请求中的订单信息,检查库存是否满足。

  用例名称 Check Inventory

  简要描述 1.财务人员根据订单信息,检查库存是否满足。

  触发条件 开始处理订单

  后置条件 通知采购人员

  (10) 冻结订单请求:当产品的库存量不满足订单时,将订单冻结,等待处理。

  用例名称 冻结订单

  简要描述 将订单请求冻结

  触发条件 库存不满足订单

  后置条件 通知销售人员

  (11) 解冻订单请求:在冻结的请求中,如有库存满足某冻结订单,则冻结订单解冻,等待处理。

  用例名称 解冻订单

  简要描述 将冻结订单解冻

  触发条件 库存满足冻结订单

  后置条件 通知财务人员

  (12) Create Order:生成订单的主要参与者是财务人员。当经过核对用户,检查库存,等一系列任务之后,财务人员便可以正式生成订单。

  用例名称 Create Order

  简要描述 1.财务人员在ERP系统中正式订单。

  触发条件 库存,用户条件满足时

  后置条件 短信通知销售人员,订单成功。

  2) 经理的用例描述

  图3-3:经理的用例描述

  (1) 查看销售业绩:

  用例名称 查看销售业绩

  简要描述 经理登陆系统后,可以按照各自的权限查询销售业绩

  触发条件 登陆系统

  后置条件 打印,查询。

  (2) 查询人员信息

  用例名称 查询人员信息

  简要描述 经理登陆系统后,可以按照各自的权限可以查询人员信息

  触发条件 登陆系统

  后置条件 打印,查询。

  (3) 财务统计

  用例名称 财务统计

  简要描述 经理登陆系统后,可以按照各自的权限对财务信息进行统计、查询、分析等功能

  触发条件 登陆系统

  后置条件 打印、查询、分析

  (4) 销售分析

  用例名称 销售分析

  简要描述 经理登陆系统后,可以按照各自的权限对销售情况进行统计、查询、分析等功能

  触发条件 登陆系统

  后置条件 打印、查询、分析

  (5) 紧急业务

  用例名称 紧急业务

  简要描述 经理登陆系统后,可以按照各自的权限对一些归属于自己范围内管辖的紧急业务进行处理。

  触发条件 登陆系统

  后置条件 处理结果

  3) 系统管理员用例描述

  图3-4:系统管理员用例描述

  (1) 服务查找

  用例名称 服务查找

  简要描述 系统管理员可以通过服务查找功能来寻找服务,组合新的业务流程

  触发条件 登陆系统

  后置条件 返回查找结果

  (2) 服务添加

  用例名称 服务添加

  简要描述 系统管理员可以将新的服务添加进来,以便服务查询和服务选择使用。

  触发条件 登陆系统

  后置条件 添加成功

  (3) 业务流程修改

  用例名称 业务流程修改

  简要描述 系统管理员可以根据业务的变更,进行业务流程的修改

  触发条件 登陆系统

  后置条件 生成新的业务

  4) 商业伙伴的用例描述

  图3-5:商业伙伴用例描述

  (1) 公司信息查询

  用例名称 公司信息查询

  简要描述 商业伙伴登陆系统后,可以查询公司的一些信息。

  触发条件 登陆系统

  后置条件 查询结果、打印

  (2) 产品信息查询

  用例名称 产品信息查询

  简要描述 商业伙伴登陆系统后,可以查询一些产品信息。

  触发条件 登陆系统

  后置条件 查询结果、打印

  (3) 采购信息查询

  用例名称 采购信息查询

  简要描述 商业伙伴登陆系统后,可以查询采购信息。

  触发条件 登陆系统

  后置条件 查询结果、打印

  3.3 时序分析

  3.3.1 销售人员的时序图

  图3-6:销售时序图

  步骤 步骤动作 步骤描述

  1 发现客户 销售人员发现潜在客户

  2 建立业务机会 根据潜在客户的信息生成一个业务机会

  3 谈判 跟客户谈判,更新业务机会

  4 业务机会为赢 业务机会为赢,谈判结束

  7 提交 发送订单请求给财务人员

  3.3.2 财务人员时序图

  图3-7:财务时序图

  步骤 步骤动作 步骤描述

  1 处理订单 财务人员接到订单请求,开始处理订单

  2 核对用户 核对客户,客户是否存在,检查其正确性,不存在重新建立客户信息

  3 继续处理订单 将核对信息返回财务人员,继续处理订单

  4 检查库存 检查库存

  5 返回检测信息 返回检查库存信息

  6 建立 当一切条件都满足时,生成销售订单

  3.4数据模型分析

  3.4.1 CRM系统中的数据模型分析

  图3-8:CRM的数据流程图

  首先销售人员发现潜在客户,开始进行客户处理,所得的客户信息存储在CRM中的客户管理中,然后再由客户信息生成业务机会,业务机会的信息会存储在CRM系统中,并随时由销售人员更改业务机会的信息和业务机会的状态,当业务机会成功时,业务机会中的信息会通过订单请求的方式,发到ERP系统中。

  3.4.2 ERP系统中的数据模型分析

  图3-9:ERP的数据流程图

  首先财务人员从业务机会请求中,获得该订单的信息,客户信息和产品列表,然后进行订单处理,其中的客户信息会被财务人员校对处理,然后存储在ERP中的客户信息库中,产品列表信息通过对库存的核对,进行处理,之后存储在订单信息中。

  3.5系统开发环境

  系统开发的硬件环境如下表3.1。

  表3.1 主机配置信息表

  主机配置信息 (HP RX5670)

  CPU 2.4G

  内存 1G

  硬盘 40G

  网卡 10M

  操作系统 Windows 2003 Server

  系统开发的软件环境如下表3.2。

  表3.2 软件配置信息表

  软件产品 版本描述 承担功能

  WebSphere Portal Server V5.0.1 Web服务器

  WebSphere Integration Developer (WID) V6.0.1 Portlet开发

  WebSphere Application Server V6 应用服务器

  WebSphere Process Server V6 业务流程服务器

  四、 系统设计

  根据WebSphere Integration Reference Architecture的结构,构建出了凤凰公司业务集成系统架构如图4-4所示。

  图4-1:凤凰公司业务集成系统架构图

  4.1 系统架构

  图1所示的凤凰公司业务集成系统架构图中每个服务所用到的关键技术为:

  1) ESB

  在设计中的传输服务用来完成服务消息的传输,因为在这个系统中设计的服务都是用WSDL进行服务描述的,所以传输服务是用来统一传输协议。提供跨有线和无线网络进行同步和异步消息传递的通信服务。这里基本上使用的是SOAP协议和进行远程调用的RMI方式。

  在设计中的中介服务允许动态处理消息传输、动态路由和服务绑定解析服务。当服务消息传递给ESB时,中介服务会通过服务解析对消息进行解析,然后根据解析出来的消息触发信息进行服务路由,以完成动态路由及消息传输。所以在服务定义时,我们要考虑定义服务的触发信息以符合ESB的功能。

  在设计中的事件服务是来完成一些事件检测服务所侦测到的消息而进行事件处理的。比如我们的业务中,当销售订单被冻结时就要激活事件检测服务以一定的时序去检查库存信息,当库存满足条件时就会触发事件服务来执行解冻销售订单服务。

  本系统底层使用IBM Websphere MQ作为消息传递引擎,使用IBM Application Server 作为ESB运行服务器,支持ESB的扩展功能。

  2) 交互服务

  分为两种,一类是与业务流程交互,通过Portal展示让人工服务参与到流程的交互中去,比如我们的查询信息输入和创建信息都是需要通过用户使用Portal页面来进行与业务流程的交互来完成需要的业务流程;另一类是信息交互,通过短信、SMS或PDA等方式进行信息传递。比如当销售人员建立销售订单请求信息后,会发给财务人员来通知财务人员查收并处理。这种服务都被定义成一种交互服务。

  在Portal展示中使用IBM Rational Application Developer for Websphere Software进行开发,并运行在IBM Websphere PortalV5.1服务器平台上,为系统提供前台展示和交互服务.

  3) 流程服务

  业务人员使用BPEL来进行流程编排,创建需要的业务流程。然后通过该流程可以从遗留系统服务、新建应用程序服务或第三方伙伴服务中得到需要的服务,完成业务功能。这样,使业务的变更和扩展得到很好的解决。Process Server为流程编排和选择提供了运行的环境。通过Process Server的管理我们能够选择适合的业务去完成系统功能。

  使用IBM WeSphere Business Integration Modeler, Advanced Edition 进行业务建模和编排BPEL4WS业务流程,生成描述文件,在 IBM Websphere Process Server中执行.

  4) 信息服务

  信息服务使用了Q replication、虚拟数据库等技术聚合数据、格式化数据。将数据从数据源处提取并包装成适合系统应用中使用的条件信息或服务。通过ESB分配到需要该数据信息的服务组件中。另外它还能够完成数据的错误处理,实现信息数据的统一化

  使用IBM WebSphere Information Integrator AdvancedEdition ,IBM DB2 Universal Database Express Edition和IBM DB2 Database采用虚拟数据库技术将遗留系统的数据库整合到同一个虚拟得数据库中,实现联邦,聚合等服务.同时使用Q复制技术提高系统吞吐量.

  5) 伙伴服务

  提供了第三方服务。业务扩展的时候,由于业务的创建不能完全依据当前的服务设计。所以当遗留系统服务和新建应用程序服务不能实现所需要的功能时时,就要考虑在伙伴社区查找我们需要的服务。第三方服务提供了WSIL技术来满足网络上的伙伴服务查找,还提供了中文智能检索和文本自动分类服务来协助伙伴服务查找的快捷性。查到相应服务就将通过适配器将其应用到我们的系统中,完成目标业务。

  使用CBM的方法对业务需求进行分析,划分出需要的服务。然后用自底向上的SOMA方法将一部分服务通过包装遗留系统得到服务组件,一部分服务通过构建新的应用程序得到服务组件。服务组件的实现采用了SCA编程模型,用SDO实现组件间的接口调用,用BO定义组件的接口参数类型,使设计出的服务组件更灵活的应用到系统架构中,更重要的是使用该套技术能够增强组件的可重用程度,当一个新业务被创建时,我们更多的是要考虑对已包装的遗留系统和新建的应用程序如何复用。

  使用IBM Rational Application Developer for WebSphere Software和IBM Rational Software Architect将遗留系统的Application包装为服务,并进行新服务的开发.

  6) 应用及数据访问服务

  针对不同的数据库进行数据库操作时,可以通过可接入服务使其可以灵活的连接不同的数据库,如ODBC、JDBC等,进行数据库语句统一和数据库的操作。对CRM系统和ERP系统的数据进行很好的处理。

  4.2 门户网站总体架构

  门户网站针对不同的用户采用单点登陆的方式,为不同用户设计个性的页面。如图4-2所示

  图4-2 门户网站总体架构

  4.3数据库设计

  图3-12数据库设计

  五、 相关服务器配置

  在IBM目前推出的WebSphere Process Server(WPS )产品中,集成了业务流程编排(Business Process choreographer)和人工任务两个共享组件.其中人工任务组件是IBM对业务流程语言(Business Process Execution Language,BPEL)的扩展.WBI Server Foundation中建立业务流程引擎相比较,WPS V6.0增加了人工任务管理器和系统监控安全角色.

  5.1 建立业务流程引擎

  首先通过命令行启动WPS V6.0 服务器,命令行格式是: $WAS_HOME/bin/startServer.sh/bat $servername. 例如: C:/WAS6/bin/startServer.bat server1. 然后通过浏览器访问服务器的控制台http://serverhostname:9060/ibm/console.配置业务流程引擎需要访问"Servers-Application servers-server1-Configuration-Container Settings-Business process container settings",

  点击"Business process container",启动安装向导(Business process container installation wizard)创建业务流程引擎,

  第一步创建业务流程引擎使用的数据源,

  JDBC providers需要根据不同的数据库选择相对应的实现类,例如如果Oracle数据库是9i而且数据库和WPS V6.0服务器不在同一台机器上,那JDBC providers应该选择"Oracle 9i&10 g thin(Oracle JDBC Driver (XA))". Data Source user name和Data Source password需要输入连接BPEDB的用户名和密码.

  完成以上配置后,点击"Next"进入第二步,设置JMS Provider和相关的安全性设置.

  完成以上配置后,点击"Summary",确认所有配置正确后,点击"Finish" 完成业务流程引擎的建立.

  5.2 建立人工任务管理器

  创建人工任务管理器,首先需要启动WPS V6.0服务器,然后通过浏览器访问WPS V6.0的控制台,选择"Application servers-server1-Configuration-Container settings-Human task container",

  人工任务管理器也有对应的创建向导,

  创建人工任务管理器第一步是创建JMS Provider和JMS相关的安全设置

  人工任务的JMS provider有两个可选项:WebSphere MQ 和Default messaging provider. Default messaging provider采用内嵌在WebSphere V6.0中的JetStream作为消息机制的提供者.如果选择WebSphere MQ 则需要在WPS V6.0服务器所在的机器上安装WebSphere MQ.对于Queue manager选项,可使用默认值BPC_hostname_server1.JMS userID and JMS password需要输入相应的JMS provider认可的用户.例如对于采用WebSphere MQ作为JMS provider,JMS user必须是mqm组的用户.Human Task Manager security configuation则需要指定管理员用户和管理员组.

  完成以上配置后,点击"Next"进入创建人工任务管理器的第二步,

  在第二步中,如果人工任务涉及到的JMS Connection factory,JMS Destination Queue,JMS Destination Topic之前已经创建过了,就选择"Select existing JMS resource",否则选择默认值.完成后点击"Next",确认人工任务管理器的配置,

  确认无误后,即可点击"Finish"完成人工任务管理器的创建.

  5.3 单点登陆

  门户系统只有唯一入口,用户登陆时采用单点登陆SSO(Single Sign-On)。传统登陆方式下,系统管理员需要给每台机器上的系统,甚至是每台机器上的每个应用准备一套用户管理系统和用户授权策略,终端用户需要使用其中的任何应用的时候都需要做一次身份认证。

  SSO的机制是“单点登录、全网漫游”,用户访问系统作一次身份认证,随后就可以对所有被授权的网络资源进行无缝访问,而不需要多次输入的认证信息。SSO登陆方式,减少了在不同系统中登录耗费的时间;避免了处理和保存多套系统用户的认证信息;减少了系统管理员管理用户权限的时间;增加了管理的便利性,可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限;大大增加系统的安全性。

  IBM WebSphere Portal 作为一个应用程序在 IBM WebSphere Application Server 上运行,提供内容、应用、流程、个性化和其它服务的集合体。WebSphere Application Server 和 WebSphere Portal 可以和外部安全管理产品集成,例如 IBM Tivoli Access Manager for e-business 或 Netegrity SiteMinder。Tivoli Access Manager(以下称为 Access Manager)中有一个名为 WebSEAL 的逆向代理安全服务器组件。在企业电子商务基础结构中,WebSEAL 可以作为任何 Web 应用服务器或 Web 服务器的前端系统。当 WebSphere Application Server (以下称为 Application Server)和 WebSphere Portal 通过 WebSEAL实现时,通常需要为终端用户提供一个单点登录 (SSO)。为了获得 SSO,需要将 Application Server 配置为"信任" WebSEAL 服务器,使得如果 WebSEAL 已经认证了一个用户,Application Server 不会向用户再次要求认证。Application Server 提供了为第三方安全服务器配置的 Web 信任关联架构。每种类型的安全服务器都需要实现信任关联拦截器 (TAI)。Application Server 和TAI 一起用于配置 Access Manager。在建立信任的基础上,Application Server 可以将 WebSeal 的结果证书映射为一个有效的 Application Server 证书。为了身份验证而将 WebSEAL 和 WebSphere Portal 集成,向 WebSphere Portal 提供 SSO。

  下面是 LTPA 连接的请求流场景。下面的步骤号与图 5-1 中的行号相对应。

  1. 用户请求受 WebSEAL 保护的资源。为了获得证书,WebSEAL 向用户提问,用户回答问题。

  2. WebSEAL 通过与它的用户注册中心通话来认证用户。它还决定用户能否被授权打开请求的 URL。一旦终端用户认证成功, WebSEAL 将创建 LTPA 令牌 cookie。

  3. 利用已经配置的连接将请求传送到 IBM HTTP 服务器。将从 WebSEAL 到 IBM HTTP 服务器的连接配置为传送 iv-user, iv-groups 信息,LTPA 令牌在步骤 2 中创建,创建在 HTTP 消息头中。

  4. 请求被传送到适当的 Application Server 或被克隆,这取决于 Application Server 插件。

  5. 在 Application Server 中,没有启用 TAI,Application Server 获取消息头中的 LTPA 令牌。Application Server 只为这个用户创建会话

  cookie,并假设这个用户已经被认证。WebSphere Portal 为组信息搜索 LDAP,从数据库中获取资源映射,然后显示门户页面。

  图 5-1 SSO用户请求流

  5.3.1 安装和配置基本产品

  首先,安装并配置 WebSphere Portal、DB2、LDAP 和 HTTP Server。

  ● WebSphere Portal

  ● WebSphere Application Server(包括 IBM HTTP Server)

  ● IBM Cloudscape? 数据库。

   对于带信任用户的 TAI 环境需要:

  1. 安装 WebSphere Portal V5.0.2.1,利用 WebSphere Portal 提供的配置任务用 DB2 和 HTTP Server 对其进行配置。

  2. 安装并配置 IBM Tivoli DIrectory Server V5.2。

  3. 创建 LDAP 后缀 dc=ibm,dc=com 。这里用到的 LDAP 是 Directory Server,应该这样配置:

  m LDAP Admin id: cn=root

  m Password: ldap

  m Suffix: dc=ibm,dc=com

  m User Search Base for WebSphere Portal: cn=users,dc=ibm,dc=com

  m User object class: inetOrgPerson

  m Group Search Base for WebSphere Portal: cn=groups,dc=ibm,dc=com

  m Group object class: groupOfUniqueNames

  m Portal Admin: uid=wpsadmin,cn=users,dc=ibm,dc=com

  m Portal Admin Group: cn=wpsadmins,cn=groups,dc=ibm,dc=com

  m Application Server 和 WebSphere Portal 的 LDAP Bind Id : uid=wpsbind,cn=users,dc=ibm,dc=com

  4. 为目录配置一个访问控制列表 (Access Control List,ACL),让 wpsbind id 在后缀 dc=ibm,dc=com 下面能读取和搜索目录树。配置 ACL 是一个特定于目录的任务。要为 Directory Server V5.x 配置 ACL,作为 cn=root 登录到基于浏览器的 Directory Server V5.x 管理控制台,采用如下的 URL 格式:http://localhost:9080/IDSWebApp/IDSjsp/Login.jsp

  5. 转到 Directory management => Manage entries。选择后缀 dc=ibm,dc=com,然后单击 Edit ACL。

  6. 在左侧,单击 Non-filtered ACLs。选择 Propagate ACLs 复选框,允许没有明确定义 ACL 的后代能从这个条目中继承。输入 wpsbind 用户的专有名

  称 (distinguished name): uid=wpsbind,cn=users,dc=ibm,dc=com 。

  7. 对于类型,选择 access-id,由于这个 DN 是一个用户,所以接下来选择 ADD。

  m Normal属性,例如 commonName 属性,安全需要最低。

  m Sensitive属性,例如 homePhone,安全需要适中。

  m Critical属性,例如 userPassword,安全需要最高。

  m System属性是由服务器维护的只读属性。

  m Restricted属性用于定义访问控制。

  8. 将读取和搜索设为 grant ,并比较安全类。将写安全类设为 deny。单击 OK,然后在下面的屏幕上再次单击 OK,保存的修改。

  9. 要验证刚才设置的 ACL,退出登录,通过输入的全限定 DN,作为 wpsbind 登录到控制台。选择 Directory management,然后单击 Manage

  entries。选择后缀 dc=ibm,dc=com,然后单击 Expand。

  现在,已经完成了用于 LDAP 的 wpsbind 用户的 ACL 配置。

  5.3.2 使用 Directory Server 配置 WebSphere Portal。

  1. 将 wpsbind 作为用于 Application Server 和 WebSphere Portal 的 LDAP Bind ID。使用 SSO 域 ibm.com 。

  2. 要检验的 WebSphere Portal Directory Server 配置,转到 WebSphere Portal 控制台,作为 wpsadmin 登录。例如:

  http://rhaalab1.raleigh.ibm.com/wps/myportal

  3. 检查能否看见 Administration 标签。

  4. 作为 wpsbind 登录到 Application Server 管理控制台,并确保可以登录。

  5.3.3 安装 Access Manager 并用 LDAP 对其进行配置

  在这一步中,首先安装 Tivoli Access Manager V5.1,并打上补丁 2(推荐)。或者,也可以使用带 Fixpack 6 的 Access Manager V4.1。接下来,在 LDAP

  服务器上,为 Access Manager 配置 Directory Server。最后,需要配置 Access Manager 组件。这一部分完成后,应该能够作为 sec_master 登录到Access Manager Web Portal manager。

   安装 Access Manager V5.1

  1. 从 Access Manager Base 光盘安装 Access Manager Base 组件,然后打补丁

  2. 接下来,安装 Access Manager Web Portal Manager。

  3. 安装 Web Security 运行时和 WebSEAL。

  向 LDAP 模式中添加 Access Manager 属性文件

   创建 secAuthority 后缀

  Access Manager 需要一个后缀来维护它的元数据。所需的后缀为 secAuthority=Default 。后缀专有名称对大小写不敏感。

  1. 要在窗口中打开目录配置工具,选择 Start => Programs => IBM Directory Server V5.2 => Directory Configuration。

  2. 在右侧面板中,单击 Manage suffixes。输入后缀 secAuthority=Default ,然后单击 Add。将看见那个后缀已经位于右侧面板中的当前后缀专有名

  称列表中。

  3. 单击 OK。记住,只有单击了 OK之后,修改才被提交。否则,后缀将不会被添加。添加一个容器存储 Access Manager GSO 数据。接下来,在 LDAP 中需要一个容器,这样 Access Manager 可以存储它的 Global Single Sign-on (GSO) 数据。

  1. 打开目录服务器配置工具(如果还没有打开它),然后单击 Import LDIF data。

  2. 单击 Clear results。

  3. 浏览并选择文件 c:/wpstam/tamgso.ldif ,然后单击 Import,开始导入过程,如下所示。

  ldif2db: 2 entries have been successfully added out of 2 attempted.

  已经完成了 Access Manager 组件的 LDAP 配置。

   设置 Access Manager 基本组件

  在 Access Manager 基本组件安装完成后,需要对他们进行配置。在 Windows 上,使用 pdconfig 工具来配置组件:

  1. 打开命令提示符,键入 pdconfig ,将打开配置实用工具。

  2. 选择 Access Manager Runtime,然后单击 Configure。

  3. 选择 Registry 作为 LDAP,然后单击 Next。输入 LDAP 主机名和端口,在本系统中,主机名和端口分别为 rhaalab3.raleigh.ibm.com 和 389 。

  4. 如果将 SSL 配置为与 LDAP 通信,请输入具体的端口。

  5. 选择 Access Manager Policy Server,然后单击 Configure。

  6. 在下面的屏幕上,输入 LDAP 系统管理员用户名和密码,然后单击 OK。

  7. 指定 sec_master 密码,然后单击 OK。

  8. 接受 Access Manager 的 SSL 连接参数默认值。将看见 Configuring Access Manager Policy server ,然后出现下面的消息:

  Policy server 配置创建了一个默认的名为 pdcacert.b64 的 SSL 证书认证文件。对于 Access Manager 运行时系统,要认证到 Access Manager 服务器,每个运行时系统都需要复制一份这个文件。要获得这个文件,执行下面步骤中的任一步:

  m 在配置 Access Manager 运行时包的过程中(使用 pdconfig 实用工具),自动选择下载 pdcacert.b64 文件。

  m 在配置 Access Manager 运行时组件之前,手动将 pdcacert.b64 文件复制到 Access Manager 系统。

  9. 接下来,选择 Authorization Server,然后单击 Configure,如图 15 所示。

  10. 指定域名。默认情况下为 Default ,这说明它是管理域。不要修改它。

  11. 选择 Next。

  12. 在下一个屏幕上输入 Policy Server 信息。Policy Server 主机名是它用来连接这台服务器的主机名。 Default 是本地系统主机名。Policy Server 端口是它监听请求的端口,默认情况下为 7135 。

  13. 单击 Next。

  14. 输入 sec_master 密码。不要修改 sec_master 的值。单击 Next。

  15. 在下一个对话框上,本地主机名指定认证服务器所在的主机的全限定名称。管理请求端口指定管理请求端口。默认端口是 7137 。认证请求端口指定认证请求端口号。默认端口号是 7136 。单击 OK。

  5.3.4 为 SSL 配置 WebSphere Portal。

  1. 如下所示,编辑 /shared/app/config/services/ConfigService.properties 文件:(443 是 HTTP 服务器的 SSL 端口)

  redirect.logout.ssl = true

  redirect.login.ssl = true

  redirect.logout.url = https://:/pkmslogout

  host.port.https = 443

  2. 保存并关闭该文件。

  5.3.5 在 Access Manager 中创建信任用户帐号

  用户的专有名称为: uid=taiuser,cn=trustedusers,dc=ibm,dc=com 。这是 WebSEAL 用来向 Application Server 表明它自身所使用的用户ID 和密码。为防止潜在的攻击,不要使用 sec_master 或者 用户作为信任用户帐号。信任用户帐号应该只提供给 TAI。这个 taiuser 的专有名称必须位于 Application Server 能够在上面检索的 Directory Information Tree 中。例如, dc=ibm,dc=com 。

  1.导入 portalusers.ldif 文件,在 LDAP 中创建 taiuser。可以使用 LDAP 配置实用工具,或者也可以使用 ldapadd 或 ldapmodify 来

  添加用户。

  ldapadd -D cn=root -w ldap -f

  2. 确保已经在 Directory Server 中创建了taiuser。

  3. 接下来,登录到 pdadmin ,执行如下的命令,将 taiuser 导入到 Access Manager 中:

  pdadmin sec_master> user import taiuser uid=taiuser,cn=trustedusers,

  dc=ibm,dc=com

  pdadmin sec_master> user modify taiuser account-valid yes

  pdadmin sec_master> user modify taiuser password-valid yes

  pdadmin sec_master> user list * 10

  最后一行应该在它的输出信息中提供 taiuser。现在 TAM 已经能够识别 taiuser 了。

  已经创建了 taiuser 并将其导入到 Access Manager 中。

  5.3.6 编辑 webseald.conf 文件

  在这一步中,将编辑 WebSEAL 配置文件来配置一些超时和虚假密码问题,这些假密码可能在 HTTP 消息头中传输。

  1. 打开文件: /PDWeb/etc/webseald-default.conf .

  2. 在 [junction] 这一节中,将 basic-auth-dummy-password 改为 taiuser 的用户密码:

  basicauth-dummy-passwd = taiuser1

  在同一节中,修改下面语句:

  m http-timeout = 300

  m https-timeout = 300

  3. 在 [forms] 这一节中,利用这个格式来启用 WebSEAL 认证: forms-auth = https

  4. 在 [script-filtering] 这一节中,设置: script-filter = yes

  5. 因为使用的是基于窗体的认证,而不是基本认证,所以将 ba-auth 从 https 改为 none :

  ba-auth = none

  6. 停止 WebSEAL 服务器,再启动它。

  5.3.7 将 WebSphere Portal 用户和组导入到 WebSEAL 中

  在这一步中,将使用 pdadmin 实用工具将 WebSphere Portal 用户和组导入到 WebSEAL 中。

  用 sec_master 登录到 pdadmin。使用下面这些命令导入 wpsadmin 和 wpsbind 用户:

  pdadmin sec_master> user import wpsadmin uid=wpsadmin,cn=users,dc=ibm,dc=com

  pdadmin sec_master> user modify wpsadmin account-valid yes

  pdadmin sec_master> user modify wpsadmin password-valid yes

  pdadmin sec_master> user import wpsbind uid=wpsbind,cn=users,dc=ibm,dc=com

  pdadmin sec_master> user modify wpsbind password-valid yes

  pdadmin sec_master> user modify wpsbind account-valid yes

  pdadmin sec_master>

  5.3.8 登陆修改

  现在,已经配置了 Access Manager,如果用户单击 WebSphere Portal 登录图标,他或她将被发送到受 Access Manager 保护的入口页面,接下来会导致Access Manager 将其直接认证到 Portal。但是,原来的登录页面仍在那里。如果页面确实被触发,用户可以直接输入登录URL。象 wps/portal/.scr/Login 这样。为防止发生这种情况,只需简单地删除的主题的登录页面。如果使用的是默认的主题,首先需要备份该文件,然后删除 Login.jsp ,该文件位于:

  /installedApps//wps.ear/wps.war/screens/html 目录下。

  5.3.9 在 WebSphere Portal 中禁用用户创建

  因为 Access Manager 负责管理用户,所以应该确保用户不是通过 WebSphere Portal 创建的。由于这些用户不具备访问 Access Manager 的权限,所以应该不允许有这样的操作,除非通过 Access Manager 管理工具,将他们作为 Access Manager 用户手动导入。从管理方面,使用 Manage Users 和 Groups portlet,或者能够自注册(self-register)的用户。要防止发生这种情况,可以从它的页面中移除 Manage Users 和 Groups portlet。要从 ToolBarInclude.jsp 文件中移除自注册:

  1. 备份每一主题子目录中的 /installedApps//wps.ear/wps.war/themes/html/ToolBarInclude.

  jsp 文件,然后在下一步中编辑该文件。

  2. 在文本编辑器中打开文件,将登记按钮注释掉,如下所示:

  

  3. 通过移除目录: /temp//WebSphere_Portal/ 下的内容,从 WebSphere Application Server 高速缓存中删除已经编译过的 JSP 文件。

  六、 业务流程门户设计与实现

  现有公司系统进行整合后的业务流程,分为两个部分分别进行处理。如下所示:

  

  图6-1 业务机会BPEL 图6-2 销售订单BPEL

  表6-1 与人工任务对应的Portlet

  人工任务 描述 Portlet

  1 InputCustomer 输入客户基本信息 创建客户

  2 CheckCustomer 查找客户并返回结果 客户查询

  3 CreatOpportunity 创建该客户的业务机会 创建业务机会

  4 QueryProduct 查看现有产品基本信息 产品列表

  5 ChooseProduct 选择定购产品 产品列表

  6 UpdateOpportunity 更新业务机会状态 产品列表

  7 ChooseOpportunity 查看订单请求信息并选择要处理的订单请求 订单请求

  8 CheckOpportuntiy 检查订单请求信息 核准订单请求

  9 FreezeOrder 冻结订单请求 核准订单请求

  10 UnfreezeOrder 解冻订单请求 解冻订单请求

  11 CompleteOrder 生成订单 核准订单请求

  表6-2 页面与portlet矩阵

  Page Portlet Desscription Access Right Notes

  

  Theme Header        

  

  

  

  

  

  Page1        

  

  

  

  

  

  Page 2        

  

  

  

  

  Page3        

  

  

  

  

  Page4        

  

  

  6.1 客户管理系统

  WebSphere Process Server V6 为业务流程和人工任务提供了多个接口。它包括 Service Component Architecture (SCA) 编程模型、WebSphere 管理模型以及 Java? 2 Enterprise Edition (J2EE) 和 Java 编程模型。对于外部客户端访问,可以使用 SCA 接口或 BPC 接口。在 SCA 编程模型中,客户端使用 SCA 服务管理器来查找服务、创建与服务交换的数据对象、调用服务上的方法,并最终处理从服务(BPC 编程模型)返回的输出和异常。本系统

  使用一般的 BPC EJB API 与业务流程和人工任务交互。实际上,有两组单独的 API:Business Flow Manager 和 Human Task Manager。

  可以通过远程或本地 EJB 接口访问 Business Flow Manager EJB API:

  BusinessFlowManager 提供的远程 Enterprise JavaBeans (EJB) 接口。

  LocalBusinessFlowManager 提供的本地 EJB 接口。

  6.1.1 环境配置

  WebSphere Process Server:

  1 在 Portlet 应用程序中,右键单击 Properties,突出显示 Java Build Path。

  2 在 Libraries 选项卡中,单击 Add Library 按钮,突出显示 WPS Server Target,单击 Next,然后单击 Configure wps server classpath 复选框,以包含类路径。

  3 转到 WebSphere Process Server Admin Console,并选择 Environment => Shared Libraries。

  4 单击 WPSlib 链接。

  5 包括 Classpath 中的两个 task137650.jar、bpe137650.jar 路径,然后单击 OK。

  6 重新启动服务器。

  6.1.2 portlet开发

  图6-3客户管理页面设计

  在WAD中新建Portlet开发任务,添加以下代码

  1. 创建业务流 Portlet

   定义 Portlet 范围中的变量:

  public static final String PROCESS_NAME = "SimpleOrderProcess";

  private static final String HOST_NAME = "localhost";

  private static final String PORT = "2809";

  private BusinessFlowManagerHome _bfmh = null;

  主机名 和端口号必须匹配目标流程服务器。

  启动流程,首先访问 Business Flow Manager EJB,如下:

   使用 init() 访问 Business Flow Manager EJB

  public void init(PortletConfig config) throws PortletException {

  ……

  Hashtable env = new Hashtable();

  Context ctx = null;

  Object obj = null; // Define the URL string

  String strUrl = "iiop://" + HOST_NAME + ":" + PORT; env.put(Context.PROVIDER_URL, strUrl);

  // Look up the context

  try {

  ctx = new InitialContext(env);

  obj = ctx.lookup("com/ibm/bpe/api/BusinessFlowManagerHome");

  }

  catch (NamingException e) {

  e.printStackTrace();

  } // Access BFM home

  try {

  _bfmh = (BusinessFlowManagerHome) PortableRemoteObject.narrow(obj, com.ibm.bpe.api.BusinessFlowManagerHome.class);

  }

  catch (Exception e) {

  e.printStackTrace();

  }

  }

   使用ProcessAction 方法初始化流程:

  public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException {

  ……

  // Action on the Start Instance button

  if (request.getParameter(FORM_START) != null) {

  // Get the GUI Input Message

  Hashtable input = getFormParameters(request); // Initiate process

  String strPIID = initiateProcess(input);

  …… }

  ……}

  从 Portlet 的 ProcessAction 方法初始化流程。

  2. 创建人工任务 Portlet

   定义 Portlet 范围中的变量:

  private static final String HOST_NAME = "localhost";

  private static final String PORT = "2809";

  private static final String TASK_NAME = "CustomerService";

  privatestaticfinalStringNAME_SPACE="http://CustomerService/com/ibm/sample";

  private HumanTaskManagerHome _htmh = null;

  任务名称和命名空间来自 Simple Order Process 中的 Customer Service 任务。

   访问 Human Task Manager EJB

  public void init(PortletConfig config) throws PortletException {

  ……

  Hashtable env = new Hashtable();

  Context ctx = null; // Define the URL string

  String strUrl = "iiop://" + HOST_NAME + ":" + PORT; env.put(Context.PROVIDER_URL, strUrl); // Look up the context and access HTM Home t

  ry {

  ctx = new InitialContext(env);

  _htmh=(HumanTaskManagerHome)ctx .lookup("com/ibm/task/api/HumanTaskManagerHome");

  }

  catch (Exception e) {

  e.printStackTrace();

  }

  }

   使用processAction()声明并完成任务

  当单击 Approve 或 Reject 按钮时,将从 Portlet 的 processAction 方法声明并完成任务。

  public void processAction(ActionRequest request, ActionResponse response)throws PortletException, java.io.IOException {

  String strTaskOption = null;

  Hashtable input = null;

  Hashtable output = null;

  ...... // Action on the Approve or Reject button

  if (request.getParameter(DETAIL_APPROVE) != null || request.getParameter(DETAIL_REJECT) != null) {

  boolean blnApproval = false;

  if (request.getParameter(DETAIL_APPROVE) != null) {

  blnApproval = true;

  } // Get Output Message object values

  output = new Hashtable();

  output.put("ApprovedAmount", request.getParameter(FORM_AMOUNT));

  output.put("Approval", String.valueOf(blnApproval)); String strTaskID = request.getParameter(TASK_ID).toString(); // Claim and complete the task

  claimAndComplete(strTaskID, output);

  }

  }

  private void claimAndComplete(String strTaskID, Hashtable output) {

  HumanTaskManager htm = null;

  try { // Create human task manager

  htm = _htmh.create(); // Claim the task

  htm.claim(strTaskID); // Get the output message object ClientObjectWrapper cow = htm.createOutputMessage(strTaskID); DataObject dbo = (DataObject) cow.getObject(); // Set the output data object setOutputDataObject(dbo, output);// Set the output message

  htm.setOutputMessage(strTaskID, cow); // Complete the task htm.complete(strTaskID); }

  catch (Exception e) {

  e.printStackTrace();

  }

  }

  6.2 订单管理系统

  图5-3订单管理页面设计

  6.3 部署

  七、 测试

  7.1 业务流程测试

  系统测试的硬件环境如下表6.1。

  表6.1 主机配置信息表

  主机配置信息 ()

  CPU

  内存

  硬盘

  网卡

  操作系统

  系统测试的软件环境如下表6.2。

  表6.2 软件配置信息表

  软件产品 版本描述 承担功能

  

  

  

  测试结果:

  7.2 业务门户测试

  系统测试的硬件环境如下表6.1。

  表6.1 主机配置信息表

  主机配置信息 ()

  CPU

  内存

  硬盘

  网卡

  操作系统

  系统测试的软件环境如下表6.2。

  表6.2 软件配置信息表

  软件产品 版本描述 承担功能

  

  

  

  测试结果:

  八、 总结

本文转自

http://soa.5d6d.com/thread-58-1-2.html

Portal技术在SOA系统集成应用中的实现相关推荐

  1. 应用基于资产的开发到 SOA 的服务中1

    SOA 的主要原则之一是在整个 SOA 生命周期中将服务视为可重用资产.因此,务必在 SOA 中对服务应用正式的资产开发流程和指南.本文可帮助 IT 架构师.项目经理和 SOA 管理员全面了解一些主要 ...

  2. Portal技术白皮书

    Portal技术白皮书 摘    要:Portal认证也叫Web认证,即通过HTTP页面接受用户输入的用户名和密码,对用户进行认证.本文档主要介绍了Portal认证的基本流程和典型组网应用. 缩略语: ...

  3. 微型计算机在工程实践中作用,【电子技术论文】思维教学中数字电子技术的应用(共2702字)...

    [摘要]作为电子技术学习中一门重要的专业基础课,<数字电子技术基础>起着举足轻重的作用,有着较强的理论特点和工程实践性.针对本门课在教学过程中存在的困难,结合一线教学经验,对教学方法进行创 ...

  4. Portal技术详解,很实用

    / Portal简介/ Portal在英语中是入口的意思.Portal认证通常也称为WEB认证,一般将Portal认证网站称为门户网站. 未认证的用户上网时,设备强制用户登录到特定站点,用户可以免费访 ...

  5. Portal技术介绍

    Portal技术介绍 目  录 Portal Portal简介 Portal扩展功能 Portal的系统组成 使用本地Portal服务器的Portal认证系统 系统组成 认证客户端和本地Portal服 ...

  6. 数字孪生技术在智慧城市建设中的应用

    近年来,由于社会经济快速增长导致了以城市人口过速增多.生态环境破坏为特征的"城市病",使得国家与社会大众越来越多地把目光聚焦到城市建设与管理上.然而,传统管理方法在耗费大量资源的情 ...

  7. RFID技术在制造和仓储中的应用价值

    RFID技术是物联网服务的核心,为万物互联牵线搭桥.RFID技术具有无接触式.大容量.快速.高容错.抗干扰和耐腐蚀.安全可靠等优点,不仅可以灵活调整识别距离,还能同时读取大量RFID电子标签.此外,R ...

  8. 技术图文:排序技术在求解算法题中的应用

    背景 前段时间,在知识星球立了一个Flag,这是总结Leetcode刷题的第五篇图文. 理论部分 C# 中的排序 对集合类的排序,我们通常使用位于 System.Core 程序集,System.Lin ...

  9. 多模态人物识别技术及其在视频场景中的应用 | CSDN技术公开课

    不用倍速播放,还有什么功能可以让你高效追剧? 爱奇艺的「只看TA」了解一下?而这个功能背后离不开多模态人物识别技术的支撑. 识别视频中的人物涉及哪些信息?只有人脸识别就足够了吗?其实不然,这样一个看似 ...

最新文章

  1. apache的es的原理_Elasticsearch的原理简介
  2. kotlin_Kotlin print(),println(),readLine(),Scanner,REPL
  3. python 主线程_Python 主线程捕获子线程异常
  4. Android 用户可以直接在搜索页面上安装 app 了
  5. SQL查询优化工具--EverSQL
  6. 4.1 模拟低通滤波器设计
  7. 基于JSP+Servlet+MySQL的在线问卷调查系统(附论文)
  8. 编写第一个Windows Mobile程序
  9. python批量查询ip归属地_python查询ip归属地
  10. Win10禁止Nvidia显卡驱动程序自动更新
  11. Android 开发者的下半场
  12. Nginx-动静分离与 URLRwrite
  13. 极客日报:美团拼多多等平台下架“一分钱秒杀”;全球大量网站集体宕机,一度无法访问;Swift内置对并发的支持
  14. 色域空间 sRGB Adobe RGB Pro Photo RGB
  15. Mybatis调用存储过程和函数
  16. C++语言程序设计(第5版 郑莉、董渊)学习笔记(自用~)
  17. STL源码剖析-Allocator
  18. 国内外php主流开源cms汇总(2010年1月) .
  19. Symantec更新服务器
  20. C语言编程:密码解密

热门文章

  1. 数组模拟实现队列(Java语言描述)
  2. 安装系统后桌面没有计算机,装了新系统桌面没有显示我的电脑解决方法
  3. abb机器人指令手册_Python控制ABB机器人运动
  4. 红帽linux怎么编程,linux (红帽)如何安装?
  5. python网络数据爬取及分析_《Python网络数据采集》读后总结--第3章开始爬取数据及天善用户关系分析实例...
  6. EDA数字钟--由(两片74161做成的六十进制计数器)问题总结
  7. SCADA和DCS、PLC的区别
  8. 取物料工作台-现有量
  9. 浅薄”绝不该是中国程序员的性格特征[转载]
  10. FreeBASIC编程IDE——VisualFreeBASIC简介