SOA解决方案 - oracle soa weblogic porlet - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > Web开发 > Oracle SOA > 正文

SOA解决方案

来源: 阅读:

 \
面向服务架构是一种体系结构模式——将软件应用程序构建成为可重用的商业服务的集合。商业团体对于SOA的兴趣在不断增加。为了满足对于支持面向服务应用程序构建的基础结构的需求,一种新的SOA套件应运而生。目前,Oracle公司、BEA系统公司以及IBM等开发商都特别专注于开发适用于SOA应用程序的平台。在已定的、复杂的并且包含多种应用程序——包括:与自定义适配器绑定的遗留应用程序、需要广泛的合作交互的商业解决方案——的IT环境中,要把业务转移到SOA模式下,这看起来是非常有难度的。然而,新的SOA套件可以使这一切变得非常简单。我们在Sierra Atlantic公司工作,现在,我们来分析其中一种套件——Oracle SOA 套件。

  在实现应用程序整合解决方案方面,Sierra Atlantic公司已经有十年以上的经验。我们公司已经使用过大量的不同开发商的产品,并且发现,在过去的六年内整合已经基本上发展成熟。

  构建一个SOA解决方案

  构建一个典型的SOA应用程序需要下面几步操作:

  1. 构建服务: 这一步可能包括:使用应用程序或者技术适配器来激活服务中现有的业务逻辑,或者使用J2EE或其他语言写入新的业务逻辑。

  2. 激活服务通信:这一步必须确保:服务与服务之间,或者服务与后端应用程序之间能够可靠地相互通信。SOA支持松散耦合。通信、数据传输以及信息路由,这些过程能够被企业服务总线(ESB)捕获,它们是服务通信的关键。

  3. 将服务配置到业务流中:实现服务编制这一业务流程可以使底层服务的更改变得更加简单。业务流程的高层表现形式——如业务流程执行语言(BPEL)、一种基于XML的用于表示服务编制的语言——为实现灵活的业务流程奠定了基础。

  4. 确保服务安全:在SOA环境中,你必须能够持久有效地保护和管理服务,并且依据与特殊服务进行交互的人或服务的类型运用相应的策略(安全、审核、日志)。当然,你应该在不改变服务本身的情况下做到这一点。

  5. 优化服务:在SOA环境中,有效地监视服务和事件是非常重要的过程,并且这个过程是被业务活动监视(BAM)解决方案捕获的。业务活动监视(BAM)为用户提供了一个事件聚合和相关的平台,在该平台上可以构建状态模型,模型中定义了那些影响操作业务关键绩效指标(KPI)的各种事件之间的关系。

  Oracle公司说,它已经拥有SOA市场中最完整最成熟的SOA平台。初看之下,我们非常惊讶:Oracle的SOA套件满足了上述所有的需求:

  在这篇文章中,我们主要分析Oracle SOA套件的三个组成部件——Oracle BPEL 流程管理器(Oracle BPEL PM)、Oracle Web服务管理器以及Oracle 业务活动监视(Oracle BAM)。对于每一个组成部件,我们先阐述整体观点,然后根据定单处理场景——一个与SOA应用程序非常匹配的问题处理场景——来分析它们的执行过程。我们并不分析Oracle JDeveloper、Oracle 应用程序开发框架(Oracle ADF)、Oracle 企业服务总线(ESB)以及符合J2EE的核心运行时环境的全部执行过程。这是因为你可以使用第三方工具(如Eclipse)来开发基于Oracle SOA套件的应用程序;Oracle SOA套件的组件可以在任何J2EE应用程序服务器上进行配置;而且Oracle BPEL 流程管理器、Oracle业务活动监视(BAM)以及Oracle Web 服务管理器可以与任何基于标准的通信解决方案集成。

  Oracle BPEL流程管理器

  流程管理是所有业务的核心。流程管理在执行过程中接触不同的应用程序、人员以及业务合作伙伴,并且根据业务需求的改变而改变。其中一些流程管理自动与技术解决方案结合。SOA使得业务流程易于开发、维护以及易于扩展。

  业务流程执行语言(BPEL)使得组织能够轻松适应业务需求的随意改变。Oracle BPEL 流程管理器在2001年(收购Collaxa公司获得)已经面市,当时是第四版本。它包括一个业务流程执行语言(BPEL)引擎、一个管理控制台、以及一个用于配置服务的图形界面,也有健壮的通信和路由功能。我们希望Oracle流程管理器能够运行在所有主流的J2EE兼容的应用服务器之上。这样一来,就能够帮助公司保持他们现有的IT基础结构以及室内资源。

  所有的业务流程管理器(BPM)工具最重要的功能是:实现业务流程的图形化建模。Oracle BPEL流程设计器创建了一个图形建模环境用于实现上述功能,并且它具有的拖拽功能使得建模非常简单。Oracle BPEL流程设计器面向开发人员和Oracle所谓的功能型开发人员或者具有商业头脑的人。为了给业务分析师创建功能更加完整的建模环境,Oracle与专业的业务流程管理器(BPM)模型开发商(包括IDS Scheer公司和Proforma公司)合作进行开发。

 

 

  Oracle BPEL 流程管理器提供对标准的本地化支持,这些标准包括BPEL, XML, XSLT, XPATH, JMS, JCA以及Web服务,这一特点使其能够很好地支持SOA的应用。

  在很多案例中,不同应用程序之间的流程交互需要人为干涉。这些应用程序所使用的语言不同。为了连接到不同的系统中,Oracle BPEL流程管理器加载了一套技术和应用程序的适配器来确保你能够连接到终端,这些终端并不以服务形式显示出来。这套适配器包括文件、文件传输协议(FTP)、高级队列advance queues (AQs)、数据库(DBs)、Oracle 应用程序以及其他一些ERP应用程序适配器。

  在Jdeveloper中也包含用于执行数据变换的图形工具,以此来协调XML文件中的不同的数据格式,这些XML文件是在服务之间进行传输的。

  许多业内专家关心的问题是:BPEL缺乏对工作流的支持。但是,Oracle已经在Oracle BPEL流程管理器上构建了一个应用程序,并且实现了工作流的功能——从理论上说,在Oracle BPEL流程管理器上所构建的工作流应该能够通过BPEL引擎进行移植。这些内置的基于标准的工作流服务通过WSDL约定链接到BPEL流程。然后,BPEL流程通过调用服务将任务分配给用户,同时等待响应。

  设计业务流程仅仅是困难的开始。你如何防止未授权的访问来确保这些服务的安全呢?你如何把安全、审核以及日志策略应用到你的服务上呢?首先,你需要一个与安全策略进行衔接的基础结构来管理对服务的访问。Oracle Web服务管理器——也是Oracle 身份管理解决方案的一部分——就是Oracle关于这些问题的解决方案

  Oracle Web服务管理器

  对于任何类型的分布式计算环境而言,安全都是非常重要的。Oracle Web服务管理器——Oracle去年收购Oblix公司时所获得的——使你能够定义服务并执行安全和操作策略。作为一个开发人员,你不需要关心如何应用安全策略——身份认证、加密以及数字签名。Web服务管理器能够使这些策略在服务之外被强行执行。

  与Oracle BPEL 流程管理器一样,我们希望Oracle Web服务管理器能够支持多种Web服务平台和不同的开发商——包括BEA公司、IBM、微软、Netegrity公司、TIBCO软件公司以及Verisign公司。Oracle Web服务管理器提供了对多种传输协议以及多种通信模型的良好支持,传输协议包括HTTP, HTTPS, JMS以及 IBM的 Websphere MQ协议,通信模型包括同步和异步通信。

  为保证最大程度的配置灵活性,Oracle Web服务管理器包含两个实施部件:策略网关——在应用程度或服务配置之前进行配置,并且截取对服务的入站请求;以及策略代理——与被保护的服务同时运行。

  Oracle Web服务管理策略是一系列操作任务和响应的集合:当服务请求被处理时,执行这些操作任务;在服务的策略客户端和提供者之间完成响应。每个任务都作为策略的一个步骤执行,并且完成一个指定的操作(如身份验证、授权、加密、解密、安全签名、令牌或者信任度验证、转换、审核、日志),这些操作是在Web服务请求或者响应信息中执行的。

  我们希望管理控制台也能够监视每个Web服务的性能。图形面板表明总体统计信息,包括安全矩阵——如未授权的访问尝试,以及服务图表——包括平均服务失败率、注册服务的等待时间。你可以通过服务对面板显示中的信息进行逐层分析,然后,查看每个操作的统计信息。你也可以定义并监视每个服务的等级。

  Oracle BPEL 流程管理器和Oracle Web服务管理器帮助你完成了服务的设计、协调以及安全保障。但是,如何获得业务实体及其之间交互的实时显示呢?

  Oracle业务活动监视

  业务活动监视(BAM)承诺通过可视化面板和警告把信息显示给用户,以此来帮助他们增加操作的有效性、做出更好的决策。业务活动监视是与SOA、服务和事件相关的,因此,它能够实时显示需要被监视的业务流程、人员和系统。同时,聚合服务规格、把可操作信息放置在关键性业务服务的参数中并发送给商业用户,这些性能也都是关键。

  Oracle的业务活动监视(BAM)架构所涉及的功能包括:通信、数据集成、数据高速缓存、分析监视、报警以及制表,并且通过这些功能来收集、分析和传送关键信息。我们希望这些功能能够支持基于不同产业标准的应用程序的整合,如JMS, JCA, Web服务, 文件系统, MQs (IBM、微软、索尼), TIBCO, Webmethods以及BEA的 WebLogic。这意味着Oracle的业务活动监视(BAM)能够从不同的环境中搜集实时信息。

  事实上,Oracle业务活动监视(BAM)定位在商业人士。然而,在他们能够开始创建和浏览报表之前,一些人员(开发人员或者架构师)必须创建底层数据模型并发布到面板中。Oracle的业务监视(BAM)能够隔离这两个任务。当开发人员使用Oracle业务活动监视(BAM)架构来创建数据对象和规则时,商业人士可以通过使用Oracle BAM Active Studio的简单界面来生成报表。这意味着你作为开发人员仅仅需要插入数据源,商业人士可以构建他们特有的面板。

  在分析了产品套件的功能之后,我们希望对一个现实世界中的场景建模,以此来更加完整的评定Oracle SOA 套件的功能。为此,下面我们来构建一个用例——捕获一个典型的定单处理业务流程。

 

 

  业务场景:定单处理

  定单处理应用程序是一个非常经典的SOA应用程序的例子。我们假设:有一个虚构的原始设备制造商,它销售一些器具给它的用户。

  这家公司使用虚拟的库存业务模型。我们这样假设:这家公司主要与另外两家厂商合作来完成定单——选择制造商以及迅速发布。这家公司希望运用SOA原则构建一个定单处理应用程序、确保其安全性,并且能够为管理者提供可操作的面板。在本文的这一部分,我们将讲述如何使用Oracle SOA套件来达到这些目标。Oracle BPEL业务流程管理器能够使企业中所有现存的服务相互协作,并且与正确的厂商合作共同完成定单;Oracle 业务活动监视(BAM)用于监视定单状态以及其他问题;Oracle Web服务管理器用于Web服务的安全保障和管理。

  在流程的第一步,该公司将通过不同的渠道获得销售定单。通过定单区分用户,并且依据信用评估服务队用户身份进行核对。然后,将定单中的项目发送到两家厂商,要求它们对定单项目进行价格报价。这个流程收集了报价,并且选择报价最低的厂商。这一报价信息与其它详细资料一起发送给商业管理者,并等待正式批准,这些详细信息包括销售价格和厂商报价价格,用于总体评审。一旦正式批准,定单就被发送出去并开始执行。同时,一个确认信息将被发送到放置定单的渠道中,确认接受/拒绝此定单。

  现在,让我们来验证Oracle BPEL流程管理器与众不同的操作和特性,看看开发人员是如何设计定单处理流程的。图1 显示了在Oracle BPEL设计器中的定单处理流程:

 

 

 

  为了区分不同厂商的报价,这个定单处理场景使用了不同的Web服务。而且,为了评审这些报价,我们把数据库插入到已批准的和被拒绝的定单中。我们希望能够通过图形向导配置这些适配器。能够与许多可以直接使用的适配器配合使用,这将对开发人员非常有利。

  由于不止一个厂商提供报价,因此,这些服务需要被并行调用。这一点我们能够迅速地完成:把BPEL并行流活动拖拽到定单处理流程中,然后,为流活动添加必要的逻辑。

  为了处理这些定单,你必须把它们发送到不同的应用程序中。这些定单数据必须转换成为应用程序特定的格式。由于Oracle BPEL流程管理器具有拖拽特性,因此,使用可扩展的样式表语言转换(XSLT)的图形化映射工具完成该转换并不困难。这个转换操作将源代码和目标对象通过一对一映射进行转换,同时创建了可扩展的样式表语言(XSL)。XSLT 图形化映射工具能够支持多种内置功能。

  通过把用户任务活动拖拽到BPEL流中,我们实现了一个定单批准的工作流。

  在定单处理过程中,系统必须通知用户当前的定单状态。Oracle BPEL流程管理器提供一个很棒的通知服务特性:把通知服务拖拽到业务流中,然后,配置邮件服务器。这样,你就可以使用e-mail、SMS快递或者语音IP来通知用户当前的定单状态了。

  在SOA世界中,不同的公司部门所用到的各种各样的应用程序都能够参与到业务流程中来,因此,处理业务异常变得至关重要。只需轻松点击Scope 活动,我们就能够为我们的流程添加错误处理。Oracle BPEL流程管理器提供了易于使用的方法来管理业务异常,如:补偿处理、捕获活动。

  谈到管理,Oracle BPEL流程管理器控制台是一个相当好的工具,管理员使用它来收集流程级信息。我们能够配置并且跟踪每一个流程,同时,也能够可视化地观察所有流程,并对其进行逐层分析。在BPEL控制台中,你甚至可以观察:每个正在运行的进程的事物处理序列和XML负载。

  在我们的这个场景中,来自不同渠道的各种用户都需要访问业务处理流程,同时,你必须确保这些服务的安全并进行管理。下面,让我们看看Oracle Web服务管理器是如何做到这一点的。

  一旦提交定单,你必须在执行信用核对之前先进行用户信息验证。信用评估服务能够在30秒内返回结果。这个流程应当能够监视验证失败的次数;如果失败次数超过20%的界限,那么就应该通知用户和管理员。为了审核需要,交互也应该记录在日志中。

  基于Web的控制台是包含在Oracle Web服务管理器内部的,使用该控制台来配置网关是相当简单的。网关虚拟化了底层的Web服务、隐藏了服务的地址详细信息。我们成功的配置网关之后,就可以根据用户定单的大小来分发这些定单(基于内容的路由),同时,我们也希望能够基于信息源来分发定单,如IP地址(基于上下文的路由)。

  接下来,在控制台中,我们提供服务的Web服务描述语言(WSDL)URL,然后使用网关来注册服务。完成这个步骤之后,生成一个新的URL用于访问Web服务。在运行过程中,当网关收到一个请求时,它就能够自动地将请求发送到实际的Web服务中。

  我们希望看到:在Web服务上定义策略是多么的简单。下面就是使用Web服务管理器中的策略管理器来定义Web服务上的策略,我们定义以下步骤:

   
 

  使用控制台来定义是非常简单的。把所有的步骤集中在一个可重用的策略管理中,这是一个相当好的想法。这样一来,开发人员就能够构建一个策略模板,并且将此策略模版应用到其他Web服务中。

  除了使用Oracle Web服务管理器的产品预先构建策略之外,Oracle Web服务管理器也可以帮助你定义用户策略。在你的组织中,如果已经有了一个完善的安全策略需求,那么定义用户策略就是唾手可得的了。

  在Web服务管理器中定义服务等级约定(SLA)非常简单,因此,我们也能够定义一些服务等级。在我们所监视的服务等级中,对于一些特殊的服务,必然会有一部分身份认证失败,当失败率达到界限时,就需要发出警报。由于Oracle Web服务管理器在日志中记录下了所有的交互——无论成功还是失败,因此,服务等级的定义并不困难。图2显示了用于定单预约服务的监视面板。

\

  现在,让我们看看Oracle 业务流程监视(BAM)是如何监视流程、并为商业用户创建可操作的面板的。

  在我们的场景中,我们希望监视一些关键绩效指标(KPI),它包括以下指标:

  为了连续监视业务性能,因此,必须直接与业务流程进行交流。Oracle 业务流程监视(BAM)能够从所有的消息来源中搜集业务事件。然而,在我们这个特殊的例子中,我们采用的方式是:在流程处理所涉及的多个步骤中,我们首先使用传感器 对BPEL定单处理流程进行预处理,然后,把数据发送到Oracle 业务流程监视(BAM)、JMS或者数据库中。在BPEL流程处理步骤中使用传感器是简单易行的——你只需要将公布的需要被监视的步骤配置到Oracle 业务流程监视(BAM)中。从定单预约流程开始直到结束,无论何时,数据都是从Oracle BPEL流程管理器发送到Oracle 业务流程监视(BAM)和面板中的——使用这种方式,我们能够监视定单的平均完次数。

  我们使用Oracle 业务流程监视(BAM)架构工具来创建数据对象——来自于BPEL流程管理器的JMS队列中的数据。一旦我们定义了这些数据对象,我们就可以使用Oracle 业务流程监视(BAM)Active Studio工具来设计我们的报表,而不需要关心底层原始数据或者规则。偿付能力部分(开发人员VS商业用户)不仅要清晰明确、易于配置,而且还要能够使商业团体自定义它特有的面板——只要我们已经通过Oracle 业务流程监视(BAM)注册了数据源,那么,商业用户就可以利用这些数据源来创建实时面板。

  由于Oracle 业务流程监视(BAM)Active Studio提供了可以进行拖拽的界面,因此创建报表就变得能够随心所欲了。一旦完成配置,面板就能够提供报表的丰富功能,如多过滤器、向下钻取至所包含的元素、横向钻取至引用条目、移动时间片窗口、警报以及通过对象导航。

 

 

  我们还能够配置面板,以显示未完成的定单。我们能够通过对面板中的信息进行逐层分析,然后,在定单级确定到底是哪个定单出现了问题,最后,对此定单进行单独分析。从对定单的分析到对实际的BPEL流程实例的逐层分析,这是一个循序渐进的过程,而且我们能够通过努力达到目标。图 3显示了我们构建的业务流程监视(BAM)面板。

 

  结论

  Oracle SOA套件提供了完整的基于标准的功能。它所包含的所有部件都是经过开发人员精心设计的。无论是使用简单或是高度用户化customization,Oracle SOA套件能够提高开发人员的工作效率。Oracle BPEL流程管理器是用于编制服务的优秀工具。然而,它并不提供广泛的业务流程分析,分析师可能会发现——除非得到开发人员的帮助,否则的话,使用Oracle BPEL 设计器为业务流程建模是非常有难度的。Oracle Web服务管理器用于确保整个SOA基础结构的安全,基础结构包括使用Oracle BPEL 流程管理器开发的服务和业务流程。Oracle 业务活动监视(BAM)为定义并监视关键绩效指标(KPI)提供了一个灵活方便的框架。

  单一开发商的遗留工具所具备的最大优势就是:高度的产品集成性。在整合其开发和运行时环境方面,Oracle公司使用了Oracle SOA 套件的所有部件,因此这一方面做得非常好。然而,在提供100%集成的管理控制台方面,Oracle公司稍有逊色;我们希望在将来发布的版本中将会有所改进。最后,我们要阐述的是:Oracle公司的产品的协同工作能力相当强。Oracle BPEL 流程管理器能够在所有的J2EE应用服务器上工作;Oracle 流程活动监视(BAM)能够从任何数据源中监视数据。这将使开发人员在不需要把现有的应用程序拆分的情况下就能够构建解决方案。

  无论您是刚刚着手开始使用SOA,还是已经从事SOA 项目,我们提醒您回顾一下Oracle SOA 套件。它是 Oracle JDeveloper、Oracle BPEL流程管理器、Oracle 流程活动监视(BAM)以及Oracle Web 服务管理器的组合,它提供了一个集成的基于标准的平台,它的目标是构建、自动操作、监视并且保护你的SOA。

Tags:SOA
相关文章列表: