zoukankan      html  css  js  c++  java
  • SOA and Web services 新手入门


    引言:使 IT 与您的业务保持一致,提高业务灵活性
    SOA 切入点
    SOA 场景
    JK Enterprises 实现 SOA 解决方案
    总结




    引言:使 IT 与您的业务保持一致,提高业务灵活性

    面向服务的体系结构(Service-Oriented Architecture,SOA)是一种 IT 体系结构风格,支持将您的业务转换为一组相互链接的服务或可重复业务任务,可在需要时通过网络访问这些服务和任务。这个网络可以是本地网络、Internet,也可以分散于各地且采用不同的技术,通过对来自纽约、伦敦和中国香港的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。可以对这些服务进行结合,以完成特定的业务任务,从而让您的业务快速适应不断变化的客观条件和需求。

    当在战略业务目标的引导下进行 SOA 实现工作时,可确保对业务进行积极转换,并能够实现 SOA 的好处,具体如下:

    • IT 与业务的一致性
    • IT 资产的最大化重用

    这些有助于确保在耗资巨大的 IT 项目中的投资能够给业务带来长远的价值。

    那么,该如何步入 SOA 的领地,它又会如何影响您的业务呢?IBM 确定了五个切入点,可确保所进行的每个基于 SOA 的解决方案都能提供真正的业务价值。每个切入点都提供了相应的场景或已定义的方法,以帮助实现相应的技术,从而实现每个切入点所定义的业务价值。



    回页首



    SOA 切入点

    IBM 定义的五个切入点(均基于实际的客户经验确定)能帮助您和您的业务实现预定义的 SOA 解决方案,从而从中获益。这些切入点同时受到业务需求(人员、流程和信息切入点)和 IT 需求(连接性和重用切入点)的驱动。以下是五个切入点的一般描述信息:

    • 人员:SOA 的这个切入点关注用户体验,以帮助生成调用和实现更好的协作,从而获得一致的人员与流程交互,提高业务效率。例如,通过使用 SOA,可以创建基于服务的 Portlet 来提高此协作。
    • 流程:流程切入点可帮助企业了解其业务中发生的情况,从而支持其对现有业务模型进行改进。通过使用 SOA,可以将业务流程转换为可重用且具有灵活性的服务,从而改进和优化这些新流程。
    • 信息:通过使用 SOA 的这个切入点,能以一致而可见的方式利用公司中的信息。通过在所有业务领域提供这个一致而受信任的信息,可促进企业各个领域的创新工作,从而更为有效地进行竞争。通过使用 SOA,可以更好地控制信息,而且通过信息与业务流程的结合,可以发现很多有意义的新关系。
    • 连接性:利用连接性切入点,可以有效地连接基础设施,从而将企业中的所有人员、流程和信息整合到一起。通过在服务间和整个环境中实现灵活的 SOA 连接,可以获取现有业务流程并在不需要太多工作的情况下通过其他业务通道提供此流程。甚至还能以安全的方式连接防火墙外的外部合作伙伴。
    • 重用:通过 SOA 重用服务,可以充分利用企业中已经存在的服务。通过对现有资源进行构建,可以简化业务流程,在整个企业内确保一致性并缩短开发时间。所有这些将能帮助您节约大量的时间和资金。另外,还能减少服务中的功能重复,并能获得使用企业中为大家所熟悉的经过验证的核心应用程序的好处。

    我们将以名为 JK Enterprises 的虚构公司实现特定 SOA 方法的情况为例,将这些切入点与各个场景相对应。首先让我们了解一下各个场景。



    回页首



    SOA 场景

    之所以定义切入点,是为了帮助客户了解如何认识 SOA。不过,还需要进一步的实现细节来帮助客户的业务和 IT 团队开始 SOA 之旅。而这正是需要更为具体的场景的原因。

    同样,IBM 技术专家在参考实际的客户经验和多年的积累的情况下,认识到业务部门在设计和实现 SOA 解决方案的过程中经常会遵循多个常见的场景。通过定义这些场景,IBM 为您提供了预定义的真实方法,帮助实现 SOA 解决方案。每个场景都提供了经过测试和集成的产品或实现,用于实现此场景。因此,可以将这些场景映射到您公司具体的目标和需求,从而很好地确定自己如何实现这些好处。

    • 服务创建:创建灵活的基于服务的业务应用程序。新的面向服务的应用程序将业务行为作为服务公开,同时还能重用作为服务公开的业务逻辑。
    • 服务连接性:无论何时何地使用何种工具,都能使用中间层服务网关或总线让各种应用程序访问核心服务集,从而通过无缝的消息和信息流将企业中的人员、流程和信息连接起来。
    • 交互与协作服务:必须通过多种设备(如浏览器、PC 和移动设备)向人类用户提供一个或一组服务。交互与协作服务还可通过将这些服务聚合为视图,以交付信息并在业务流程的上下文进行交互,从而提高人员工作效率。
    • SOA 所支持的业务流程管理:业务流程管理是将软件功能和业务专业知识相结合来加速流程改进和促进业务创新的学科。
    • 作为服务的信息:“作为服务的信息”可在企业内作为可重用服务访问复杂的异类数据源。
    • SOA 设计:通过一组角色、方法和构件保持业务设计建模和 IT 解决方案设计的一致,以提供一组供优化的显式业务流程和用于组合及集成的服务。
    • SOA 治理:建立并执行 SOA 开发与运行时流程。定义策略、流程和工具来监视服务的归属、使用人、使用方式及提供时间。
    • SOA 安全性和管理:作为 IT 服务管理(IT Service Management,ITSM)服务一部分的发现、监视、保护、供应、更改和生命周期管理工作。

    之前讨论的五个 SOA 切入点直接映射到(即具有一对一关系)本列表中的前五个场景。(例如,重用直接映射到服务创建,而连接性直接映射到服务连接性。)我们还将讨论其他 SOA 场景,这些场景均以上面的五个切入点为基础。即 SOA 设计、SOA 治理与 SOA 安全性以及管理。

    让我们花一点时间给出一个实际的切入点、场景及其实现。在图 1 中,可以看到重用切入点如何直接映射到服务创建场景,而后者包含四个实现,其中一个名为“从头创建新服务”(create new services from scratch)。因此,将这些加以结合,在此示例中,您将通过重用切入点进入 SOA,此切入点可帮助您对公司的现有服务加以充分利用。如果随后发现缺少主要 SOA 服务,“从头创建新服务”实现详细说明了如何创建 SOA 服务。



    图 1. SOA 切入点和场景
    图 1. SOA 切入点和场景

    您现在应该已经对五个 SOA 切入点和八个场景很熟悉,而且也应该知道了每个场景如何通过多个实现帮助您实现 SOA 解决方案。图 1 给出了一个示例,说明了可以如何将这些部分进行混合和匹配,以提供任何企业都能够利用的各种 SOA 方法。为了进一步说明这些方法,在本文剩下的部分,我们将了解 JK Enterprises 如何在整个企业实现 SOA 所带来的很多好处。



    回页首



    JK Enterprises 实现 SOA 解决方案

    我们虚构的公司 JK Enterprises 是一家用于零售、小型企业和企业客户的 Widget 主要供应商。该企业在全球拥有 11,000 名员工,分布在六个不同的国家/地区,他们采用接触客户高层的方式与客户接触,其业绩非常可观。另外他们还有一个保险部门,可为零售客户提供额外的好处。在此部分,我们将简单了解 JK Enterprises 如何采用 SOA,如何通过各个切入点实现适用的各个场景。

    重用:服务创建

    让我们从 SOA 的重用切入点开始,对 JK Enterprises 已有的现有资产进行重用。服务创建是帮助 JK 进入重用切入点的场景,其中包含多个将帮助 JK 实现此场景的实现。服务是自包含的可重用软件模块,各自执行特定的业务任务。它们具有定义良好的接口,独立于所运行的应用程序和计算平台。

    通过服务创建实现 SOA 重用后,JK Enterprises 将实现以下价值:

    • 重用现有服务比从头编写新应用程序开销要小些。
    • 重用经过验证的应用程序可降低风险,还能缩短进入市场所需的时间。
    • 通过大幅度使用经过验证和测试的常用功能代码,可以缩减维护开销。

    IBM 简化了重用现有资产、访问外部服务和创建新服务的工作,从而能更快地为您的业务带来实际好处。以下部分将详细说明 JK Enterprises 将采用的重用实现。

    JK Enterprises 决定通过实现场景中定义的四种方法来实现创建场景。这些都是经过测试和验证的方法。下面让我们对其进行深入探讨。


    启用服务的现有资产

    JK Enterprises 可以创建服务的一种方式是对启用服务的现有资产使用称之为间接公开的技术。例如,对于启用服务的帐户查询流程,公司将其帐户应用程序作为简单对象访问协议(Simple Object Access Protocol,SOAP)/HTTP Web 服务公开(作为会话 Bean 实现)。此方法使用 CICS 事务,可通过 CICS 的适配器进行访问。在这种情况下,使用者和提供者位于防火墙内。了解关于这方面的更多信息:


    从头创建新服务

    显然,JK Enterprises 还可以直接从头创建新服务。在这种情况下,公司需要创建帐户适用性服务,以检查客户帐户应用程序数据。另外还需要此服务来研究多个系统上的信息,以确定是否需要信用报告。会将此服务作为 Web 服务公开(实现为会话 Bean)。描述服务所需的 Web 服务描述语言(Web Services Description Language,WSDL)将符合 Web 服务互操作性(Web Services – Interoperability,WS-I)标准,包含应用程序适用性服务的服务定义和模式。业务逻辑将添加到生成的框架 Enterprise Java® Bean (EJB) 中,客户机为 .NET。

    有关此方法的更多信息,请参考以下资源:


    使用外部服务

    该公司还通过查找和使用其自己 IT 基础设施之外的服务来创建服务。JK Enterprises 希望使用外部地址验证服务。为此,它们必须创建兼容 WS-I 和 JAX-RPC 的 WSDL 文件。考虑到提供者在防火墙外的情况,因此不需要网关。但需要使用共同认证的 SSL 实现安全性。客户机采用 Java 编写。

    我们已经说明了 JK Enterprises 用于实现服务创建场景的选项。接下来我们讨论 JK Enterprises 将实现的下一个场景。

    连接性:服务连接性

    此时 JK Enterprises 已将现有 IT 应用程序作为服务公开,并通过访问外部服务和创建新服务来弥合差距。现在要将这些服务彼此连接,甚至连接到整个企业。这将通过服务连接性场景(此场景是通过连接性切入点着手的典型方法)的实现方面完成此工作。

    JK Enterprises 将通过服务连接性实现 SOA 连接性,从而实现以下价值:

    • 实现自主构建的或传统连接性方面的成本节约。
    • 通过扩展 IT 资产(而不是重复构建),可消除冗余性。
    • 通过新业务通道和设备公开相同流程,从而提供安全而一致的用户体验。
    • 通过基于服务的托管连接增强业务合作关系。

    JK Enterprises 将通过实现企业服务总线(Enterprise Service Bus,ESB)在其系统中实现连接性;ESB 能提供所需连接性,而且其成本低于传统连接性的实现成本。将能够通过 ESB 以安全而且可扩展的方式连接到整个外部和内部基础设施。

    服务创建和 SOA 连接性将为 JK Enterprises 提供更大的业务灵活性和稳固的基础,从而更便于进行更多的 SOA 项目。通过此部分可了解 JK Enterprises 将利用的三个连接性实现。


    基于开放标准连接业务系统

    JK Enterprises 在业务方面的第一个需求是对所有信息在企业服务总线 (ESB) 中的传递情况进行建模,确定谁在何时需要哪些信息。ESB 对业务部门内的服务、应用程序和资源进行统一和连接,允许软件的连接在不同平台上并行进行,并使用各种编程语言。通过使用这个基于标准的方法,JK Enterprises 创建了一组 Web 服务来利用现有大型机信息并通过 Web 提供对此信息的访问。

    ESB 将自动在中央服务注册中心查找关于 JK Enterprises 服务的任何所需信息。JK 还将实现自动化控制台来管理此信息流和确保正确工作。

    参考以下文章,以了解此实现方法的更多信息:


    通过新业务通道交付现有流程

    JK Enterprises 配备了各种后台系统来支持客户帐户的开立。但其重新设计的业务流程需要添加 Web 门户来更好地为客户服务,提供机会使用手持设备等(例如开发新业务通道),从而让 JK Enterprises 向其客户宣传和销售产品。为了确保一致的用户体验,JK 希望 Web 门户同样访问这些后台系统。

    为了完成此工作,JK 将需要实现高级 ESB 功能。通过包含 ESB,JK 可以稍后在不对后台系统进行任何更改的情况下使用柜员机或手持设备。

    有关此方法的更多信息,请参见以下资源:


    安全地连接到外部的第三方和业务合作伙伴

    最后,JK 需要建立网关,以安全地连接到其外部业务合作伙伴,如供应商和服务提供商。它们需要集中管理这些连接,以确保服务水平协议和策略的执行。

    为了连接到业务合作伙伴,JK Enterprises 将使用 SOA 设备。插入的这个设备可提供 JK 所需的安全性,以加速大额任务的处理。JK 还将自动监视和管理这些交互,以确保合作伙伴交付所承诺的服务。

    有关详细信息,请参考以下资源:

    人员:交互与协作服务

    JK Enterprises 已创建了自己的 SOA 服务并将其彼此连接,现在要重点进行如何将这些服务向可能使用 PC、移动设备甚至语音响应系统访问这些服务的用户呈现的工作。继续其使用交互与协作服务场景通过人员切入点进行 SOA 采用的工作,可以提高应用程序和内容的使用率。还可以提供其对企业内人员的可用性。

    以下是 JK Enterprises 通过利用交互与协作服务将获得的一些好处:

    • 通过使用 SOA 创建新帐户开立流程(包括新工作流和管理工具),将加速此流程的操作和减少 IT 成本。
    • 开发使用门户和表单的新客户应用程序将节约处理时间和提高客户满意度。
    • 在创建新功能和应用程序时,使用模型和 IDE 将节约时间和资金。
    • 通过部署数据治理策略和使用新记录管理技术,JK Enterprises 可以更好地保持法律法规遵从性和安全性。

    JK Enterprises 将实现以下方法,以实现服务创建场景。这些都是经过测试和验证的方法。


    通过简单 Portlet 聚合和调用服务

    JK Enterprises 需要能让客户开立帐户,以获取用于购买 JK Enterprises 的 Widget 的信用额度。JK Enterprises 希望提供服务来允许 JK 员工使用 Portlet 查看给定帐户的所有方面并执行所有帐户相关的活动。

    为了处理这个问题,JK Enterprises 使用 Workplace Forms 客户机接口来输入客户信用额度请求。对此表单的数据提交操作会将数据提交到 DB2® Content Manager 并将提交通知放入 IBM WebSphere® MQ 任务队列。现在可以从 JK Enterprise 帐户检查页面查看所有新请求。JK Enterprises 还创建了一个 WebSphere Portal 实例。Tivoli® Access Manager (WebSeal) 用于验证用户登录信息,将结合 WebSphere Portal 生成自定义主页。此主页由各种 Portlet 组成,是使用 WebSphere Portlet Factory、Workplace Designer 或 Rational® Application Developer for WebSphere Software 创建的。Portlets 使用 JK Enterprises 的 WebSphere Enterprise Services Bus 对使用 DB2、Information Management System (IMS) 和其他系统的服务发送 SOAP/HTPP 请求。

    有关此实现的更多信息,请参考以下资源:


    基于 Web 的富应用程序作为 Portlet 部署在 WebSphere Portal 中

    JK Enterprises 已决定改进其检查帐户的体验。目前,他们在跟上所有帐户开立提交速度方面存在一定的困难。他们必需不断地刷新帐户检查页,以显示更多信息。JK Enterprises 希望立即在页面上显示新请求,以便客户在店内时进行批准。

    为了提高响应时间和用户体验,JK Enterprises 向帐户申请 Portlet 添加了自动刷新的 AJAX 表示形式。帐户检查页面由 WebSphere Portal 承载。帐户申请 Portlet 是 JSR-168 Portlet,使用 Rational Application Developer 创建,其中包含特种类型的 Widget(包装使用 Dojo 工具集开发的 AJAX Widget 的 JSF 控件)。这些 Widget 发出对 DataPower XI50 设备的 JSON 请求,将请求转换为对 CICS 中承载的服务的 SOAP/HTTP 请求。

    有关此方法的更多信息,请参考以下资源:


    WebSphere Portal 中的业务流程集成

    JK Enterprises 仍然对其帐户开立流程不满意。JK 希望向其提交/审批流程添加实时流程流。他们决定将原始的硬编码工作流替换为 WebSphere Process Server 并构建 BPEL 流。新流程通过自动化流对提交进行路由,其中的路由决策由定义的人工任务决定批准或拒绝帐户和信用额度申请。

    再工程后得到的流程将使用 WebSphere Business Modeler 构建,并将使用 WebSphere Integration Developer 来正式化和部署这些 BPEL 定义,以与 JK Enterprises 的 IT 基础设施(包括 Tivoli Identity 解决方案)集成。新流程将自动更新 JK Enterprises 门户、DB2 Content Manager 的 Forms 存储区、后端 CICS 系统中的任务列表,并会发送可在 Lotus® Notes 中接收的电子邮件。

    有关此方法的更多信息,请参考以下资源:


    分布式 Portlet 与联合门户服务器

    JK Enterprises 决定启动针对新客户的一项活动。他们决定使用位于印度的临时呼叫中心来处理呼叫量的预期增加量。考虑到需求会很快发生变化,并兼顾 IT 安全性,他们决定安装一个独立的 WebSphere Portal Server。

    JK Enterprises 通过 Web Services for Remote Portlets (WSRP) 公开了其基础设施中运行的一些 Portlet。他们打算将新活动 Portlet 部署到“jail”环境中(一个远程 Portlet,可在不影响主门户系统的情况下运行 WebSphere Application Server 的新实例进行测试)。位于印度的 WebSphere Portal 实例包含一组 WSRP Proxy Portlet,它们通过 VPN 网络向 JK enterprises WSRR 中注册的 Portlet 发送 SOAP/HTTP 请求。

    有关此方法的更多信息,请参考以下资源:


    托管客户机

    JK Enterprises 已对其大部分当前基础设施进行了服务支持改进和门户化工作,不过尚未对 Peoria 分部运行的一些多年前构建的 Visual Basic 和 PHP 应用程序进行体系结构重新设计工作。他们希望实现 SOA 解决方案,但此分部所在的购物中心的带宽有限,而且线路不可靠。而且即使在内部网连接断开的情况下,此分部仍然需要能够正常工作,因此他们决定实现具有集中管理功能的解决方案,托管客户机解决方案。

    JK Enterprises 将使用 Lotus Expeditor 来安全地将其 SOA 解决方案扩展到台式机、便携式计算机、柜员机、个人数字助手(Personal Digital Assistant,PDA)和智能手机。这将允许 JK 员工使用富客户机和移动客户机上的非浏览器程序或临时连接应用程序访问其 SOA 服务。Lotus Expeditor 提供了托管客户机平台、工具和可选服务器连接器来快速构建和部署连接或半连接应用程序。

    有关此方法的更多信息,请参考以下资源:

    流程:业务流程管理

    JK Enterprise 现在已经提高了其应用程序和内容的使用,而且其可用性也得到了改进。他们现在将着手处理如何修复现有信用额度申请流程的工作。当前流程太过复杂,开销大、耗时多而且难于管理。现在需要对此流程进行简化,以控制成本、提高销售额、管理风险和提高客户满意度,他们可以依赖于业务流程管理(Business Process Management,BPM)场景来进行此工作。

    业务流程管理是一个学科,将结合使用用于控制组织跨功能的核心业务流程的工具和方法。其重点是将整个组织的资源部署定向到能够实现客户机价值的高效流程中,从而实现战略业务目标。BPM 的核心原则之一是进行持续改进,从而不断地提高产生的价值和保持市场竞争力。

    SOA 所支持的 BPM 允许对业务流程进行更改,而不用对基础技术进行再工程;同时它还允许在不影响业务流程的情况下对技术基础设施进行更改。JK Enterprises 可以通过以下方式利用业务流程管理场景。


    业务处理建模

    为 JK Enterprises 这样的企业提供将其流程可视化并提供相应的决策点,这是流程管理的基础。通过建模这些流程,JK Enterprises 可以标识其流程中的瓶颈、连接断开以及效率低下的情况。通过这样,将能够快速地确定有待改进和实现自动化的区域。

    有关此方法的更多信息,请参考以下资源:


    业务活动监视与分析

    监视流程性能和检测可能会影响性能的事件的能力是 JK Enterprises 获得业务流程控制的一个关键因素。他们可以使用软件来分析流程效率,从而将业务流程改进工作与其目标保持一致。可以将这些结果与仪表板结合,从而实现可视化监视,以实时方式改进各个工作项目的进度管理。

    有关此方法的更多信息,请参考以下资源:


    流程执行与自动化(包括人工工作流)

    JK Enterprises 的大多数业务流程管理都需要将基于人工的流程步骤与系统自动化步骤及信息流结合在一起执行。人工及人员到系统工作流的自动化为减少错误和节约成本提供了最好的机会。

    有关此方法的更多信息,请参考以下资源:


    内容管理

    对于所有业务流程,在工作进行过程中都会创建或使用信息,对于 JK Enterprises 当然也是如此。流程参与者需要能够创建新内容,同时还需要能够访问和利用现有内容。正确的时间手边有正确的信息可用,对于流程成功至关重要。

    有关更多信息,请参考以下资源:


    规则

    JK Enterprises 努力提高灵活性的过程中,能够实时地更改规则对他们也至关重要。规则更改通常都是针对流程、应用程序或系统的操作部分。不过,也可以将规则应用于监视异常或业务流程或技术事件中的重大变更,或者用于指示需要针对预期或意外条件调整业务模型。

    有关更多信息,请参考以下资源:


    协作

    为了在不受参与者地域限制的情况下帮助 JK Enterprises 促进团队合作,提高吞吐量和更改规则流程和规则方面的团队创造力,需要有与普及计算结合使用的协作功能。通过支持与较大的业务流程实现高度集成的组协作交互,可以大大提高工作效率。

    有关此方法的更多信息,请参考以下资源:

    信息:作为服务的信息

    JK Enterprises 对配备了恰当的业务流程非常有信心。现在他们将对信息的收集方式、传播方式以及在企业内的传递情况进行进一步的分析。作为服务的信息场景可在使用 SOA 信息切入点时能提供大量有用的东西。

    通过使用作为服务的信息场景,JK 将实现以下多方面的好处:

    • 通过新的基于 SOA 的客户帐户开立流程,JK 将实现更多的帐户销售额,减少每笔销售的成本,还能减少 IT 方面所占成本的百分比。
    • 通过将客户信息与主控数据管理集成并发现使用新的智能技术的新机会,JK 可以更好地认识各种机会和获得更多的宝贵帐户。
    • 通过开发新门户应用程序,JK 可以对内部流程进行革新,从而提高客户满意度和减少开发成本。

    接下来让我们了解 JK Enterprises 如何实现作为服务的信息场景。


    简单信息服务

    JK Enterprises 采用了单个客户数据库,其中包含用于存储客户和帐户申请数据的表格。他们使用包含数据条目验证的表单,并使用单一信用信息来确定是否应该批准申请。

    为了支持在 SOA 流程中访问此信息,JK Enterprises 使用了 DB2 和 Rational Application Developer。然后他们还使用了 Web 服务对象运行时框架(Web services object runtime framework,WORF)或 WebSphere Information Services Director(IBM Information Server 中的一个模块)。IBM 于 2006 年末推出了 IBM Information Server 平台,其中结合了公司的实验室和收购所得的各项技术,支持客户向应用程序和业务流程提供受信任的一致可重用信息。通过这一方法,JK Enterprises 将 DB2 信息打包为服务,可将其作为 Web 服务调用,从而作为 SOA 系统的一部分。

    有关此方法的更多信息,请参考以下资源:


    联合:多数据源

    JK Enterprises 要求其客户帐户代表能够请求实时帐户余额信息。JK 已实现了实时联合,可对多个独立信息源的数据进行虚拟化,从而在不会导致数据冗余的情况下提供分布信息的集成视图。

    JK Enterprises 已决定安装 IBM WebSphere Federation Server 产品来提供对三个数据存储区的直接实时 SQL 访问:DB2 zOS、DB2 for Linux, UNIX, and Windows 和 Oracle v9.2。通过 WebSphere Federation Server,JK 可以满足其提高效率、灵活性和业绩的 SOA 目标。

    有关此方法的更多信息,请参考以下资源:


    合并:控制分散的信息

    JK Enterprises 将贷款申请信息存储在 DB2 V9 和 DB2 for Linux, UNIX, and Windows 中,现在希望对此客户信息进行合并,并需要对其进行控制。以合并方式查看此数据的能力对于做出快速明智的业务决策非常重要,因为这样的决策需要基于 JK 数据的完整而准确的视图。

    为了实现此目标,JK 可以使用组件 WebSphere DataStage(作为 IBM Information Server 的一部分提供)来对此信息进行紧密集成。WebSphere DataStage 用于创建主控数据库,其中可以承载引用数据的完整匹配记录,或者可以仅仅包含 JK Enterprises 的数据库的标识符的交叉引用表。

    有关此方法的更多信息,请参考以下资源:


    清理:数据和格式的标准化

    JK Enterprises 必需处理这样一个事实,即信息来自于多个源,采用的是不同的格式。它所需要做的就是将信息提供给其客户数据存储系统和信息。JK 需要对此信息进行规范化、验证和标准化。

    JK 可以通过利用 QualityStage 和 WebSphere Customer Center 产品完成所有这些工作。IBM Information Server 的 WebSphere QualityStage 可改进客户支持和服务,帮助确定对公司来说利益最大的客户。WebSphere Customer Center 提供实时的事务型客户数据集成(Customer Data Integration,CDI),可帮助 JK 保持其客户的单一、完整且准确的记录。

    有关这些活动的更多信息,请参考以下 Web 资源:


    主控数据管理

    JK Enterprises 的客户信息存储在很多不同的源中,需要能够使用可作为引用源的单一明确的主控源对客户数据进行协调。为此,他们需要存储库、模型和流程来获取数据和进行管理,所有这些都能从主控数据管理解决方案获得。

    通过实现主控数据管理解决方案,JK Enterprises 不仅能够获取符合行业标准的主控数据服务和管理基础设施,而且还能够跨异类源管理其主控信息和业务流程。为了实现所有这些功能,他们将安装 WebSphere Customer Center(提供实时的事务型客户数据集成)和 WebSphere Product Center(帮助进行组装而形成准确一致的中央存储库)。

    有关这些活动的更多信息,请参考以下 Web 资源:


    内容集成

    JK Enterprises 需要确定客户外部信用积分是否在批准新帐户的范围内。目前其服务仅仅获取信用积分,而不对数据进行任何较为深入的分析。JK Enterprises 创建共享内容服务来帮助其进行更为深入的分析。通过这些服务,可以跨所有位置方便而一致地读写内容,跨不同的存储机制类型提供内容的单一视图。

    JK Enterprises 将安装 IBM WebSphere Information Integrator Content Edition,以便使用来自多个异类内容源的内容,就像存储在一个统一的系统上一样。Content Edition 为异类内容源和工作流系统提供了单一的接口、现成连接器和工具集(包含用于构建自定义应用程序的自定义连接器、开发组件和 API),通过使用 WebSphere Information Integrator Content Edition 包装插入 IBM Information Server。

    有关这些活动的更多信息,请参考以下 Web 资源:


    SOA 设计

    JK Enterprises 知道 SOA 设计是减少成本和提高公司的 IT 集成有效性的关键因素。在通过创建恰当的服务来实现 SOA 解决方案之前,JK 和其他任何企业一样,都必须首先建模和定义用于创建主要新组件和重用现有组件的接口。

    IBM 通过以下产品可帮助您开始实现此 SOA 场景:


    SOA 治理

    JK 认识到了 SOA 治理(或建立并执行企业的主要成员一致认同的计划和监视 SOA 系统的方式)的重要性。他们计划实现严格的 SOA 治理策略。治理包括两个方面:

    • 建立责任、授权和通信链,以对人员进行权利分配,确定谁有权进行哪些决策
    • 建立度量、策略和控制机制,以支持各个人员执行各自的角色任务和履行相关职责。

    治理经常与管理混淆,但二者之间通常存在以下差异:

    • 治理决定谁具有决策的权力和责任,为决策提供框架。
    • 管理是进行决策和实施决策的过程

    因此治理讨论应该如何进行决策,而管理进行决策和执行决策。

    任何 SOA 治理模式必需适应企业的 IT 治理,IT 治理涉及以下内容:

    • 建立与 IT 关联的决策权利
    • 建立用于度量和控制 IT 决策及执行的机制和策略

    即,IT 治理讨论的是谁负责 IT 部门中的什么事务以及部门如何知道这些职责得到了很好的执行。

    SOA 向控制添加了以下几个独特的方面:

    • 充当 IT 控制的扩展,重点关注服务的生命周期,以确保 SOA 的业务价值
    • 确定谁应该监视、定义和授权对企业内现有服务的更改

    有关 SOA 治理的更多信息,请参考以下资源:


    SOA 安全性和管理

    JK Enterprises 从实现 SOA 解决方案获得了很多好处,但仍然必需继续保护和管理其信息。保护 SOA 服务需要对策略进行评估和做出相关决策,并需要对这些策略进行管理,以保证其执行。

    JK Enterprises 还认识到了采用 SOA 的过程中有效的 SOA 管理的重要性。通过实现 SOA 管理,JK 可确保高效地使用所有计算资源,保持系统正常运行,对任何出现的问题进行故障排除、向用户提供其所需的性能以及对所有这些资源的使用进行均衡处理,以满足 JK 的服务水平协议。

    SOA 安全性和管理场景提供了实现安全性和管理 SOA 系统的方法。

    可以使用各种 IBM 产品帮助您保护和管理 SOA 服务,包括:



    回页首



    总结

    正如您所看到的,JK Enterprises 已从实现 IBM 提供的多个 SOA 场景获得了很多好处。您可以通过本文中详细讨论的场景深入了解 SOA 的所有方面信息。要更好地了解 IBM 提供的所有 SOA 切入点和场景,可研究图 1 中所示的各个元素。


    我可以用 Web 服务做什么?
    构成 Web 服务的技术是什么?
    Web 服务与其他技术的关系如何?
    我可以如何在应用程序中使用 Web 服务?
    我可以如何提高自己的 Web 服务技能?



    developerWorks 的 Web services 专区包含差不多数百篇文章、教程和技巧,可以帮助开发人员进行大多数与 Web 服务有关的应用程序的开发;但是对于那些尝试涉足这个新领域的用户来说,所有这些信息可能会使他们望而却步。本页面为那些想学习 Web 服务但是却又不知道从何处入手的读者提供了相关概述。本页面将 Web 服务技术所有的基础知识都放在适当的背景中,并将其与相关的 developerWorks 文章、教程和技巧、IBM 学习服务教育、网络广播、专题研讨会以及 IBM 产品联系起来,供读者进行 进一步研究。

    使用 Web 服务技术,应用程序可以与平台和编程语言无关的方式相互通信。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。在面向服务的体系结构(Service-Oriented Architecture,SOA)中,一组以这种方式交互的 Web 服务定义了特定的 Web 服务应用程序。

    软件业最终会接受这样的事实:跨多个操作系统、编程语言和硬件平台集成软件应用程序不可能由任何一种专门的环境来解决。传统上,这个问题一直是一个紧耦合问题,调用远程网络的应用程序通过自己发出的函数调用和请求的参数与远程网络紧密地联系在一起。在 Web 服务出现之前,在大多数系统上,采用的是固定的接口,但对于不断变化的环境或需求,这样做缺乏灵活性或适用性

    Web 服务所使用的 XML 可以用真正与平台无关的方式来描述任何(所有)数据,以跨系统交换数据,因此转向了松耦合应用程序。而且,Web 服务可以在较抽象的层面上工作,较抽象层面可以按照需要动态地重新评估、修改或处理数据类型。所以,从技术层面上讲,Web 服务可以更方便地处理数据,并且允许软件更自由地进行通信。

    从更高的概念层面上讲,我们可以将 Web 服务视为一些工作单元,每个单元处理特定的功能任务。再往上一步,可以将这些任务组合成面向业务的任务,以处理特定的业务操作任务,从而使非技术人员可以考虑一些应用程序,这些应用程序能够在 Web 服务应用程序工作流中一起处理业务问题。因此,一旦由技术人员设计并构建好 Web 服务之后,业务流程架构师就可以聚集这些 Web 服务来解决业务层面上的问题。这里借用汽车引擎来作类比,业务流程架构师考虑将整个汽车引擎与汽车框架、车身、变速器和其他系统组合在一起,而不是研究每个引擎内的各个部件。而且,动态平台意味着引擎可以与其他汽车制造商的变速器或部件一起工作。

    最后一个方面是,Web 服务有助于在组织内的业务人员和技术人员之间架起一座桥梁。Web 服务使业务人员更容易理解一些技术上的操作。业务人员可以描述一些事件和活动,然后技术人员可以将这些事件和活动与相应的服务相关联。

    有了通用定义的接口和设计良好的任务,重用这些任务就变得更容易了,因而重用这些任务所代表的应用程序也就变得容易了。应用程序软件的可重用性意味着在软件上的投资有了更好的回报,因为可以从同一资源产生更多收益。可重用性使业务人员可以考虑以一种新的方式来使用现有的应用程序,或者以一种新的方式将应用程序提供给合作伙伴,因此可能增加合作伙伴间的业务交易。

    所以,Web 服务试图解决的主要问题是数据和应用程序集成的问题,以及将技术性的功能转换为面向业务的计算任务的问题。这两个方面使企业可以就流程或应用程序层面与他们的合作伙伴进行交流,同时为适应新形势或按照需要与不同合作伙伴进行合作留有动态的余地。

    获得更多相关信息

    • 要了解 Web 服务,您应该首先知道可扩展标记语言(Extensible Markup Languageservices,XML)的工作原理。XML and how it will change the WebIntroduction to XML 是两篇很好的文章,您可以从这两篇文章开始了解 XML。虽然 Web 服务技术本身是语言无关的,但是在 Java 技术中还可以获得许多工具和软件实现。
    • 如果您是一位想要了解 Web 服务的软件架构师或业务人员,An Executive's Guide to Web services 提供了许多关于 Web 服务的商业价值方面的有用想法。



    回页首



    我可以用 Web 服务做什么?

    虽然 Web 服务支持所有这些将多个服务组合到应用程序中的动态功能,但您仍然必须首先构建这些服务。编程语言和计算机科学在不断发展。我们在几十年前就有了函数的想法,通过给它提供一些参数,由它根据这些参数执行某个操作,然后根据它的计算返回值。最终,这个首先提出来的概念演变成了对象,每个对象不仅有一些它可以执行的函数,而且还有自己的专用数据变量,而不是依赖于以前所采用的使开发应用程序更为复杂的外部系统范围内的数据变量。当应用程序进入了网络时代,对于对象,定义通用接口的概念变得更为重要,即使位于其他平台上的对象是用另外的编程语言编写的并且运行在其他操作系统上,也可以使这些对象进行通信。

    在最近的发展中,Web 服务转向了基于 XML 的接口和通信这一概念,只要将 Web 服务设计成相应的接口,最终都可以将任何一种应用程序与另一种应用程序组合在一起,并可以随时间的流逝自由地更改和发展应用程序。XML 的通用性使得 Web 服务不同于前一代组件技术。它允许语法结构(句法)与语法意义(语义)分离,每个服务处理和理解它的方式与它所存在的环境分离。因此,现在可以将对象定义为服务,它可以与其他采用 XML 定义的语法的服务进行通信,从而每个服务又可以根据其本地实现和环境来转换和分析消息。因而,网络应用程序实际上可以由各种构造和设计的实体组成,只要这些实体符合它们面向服务的体系结构就可以了。

    因此,如果掌握了这一能力,Web 服务将使您能够:

    • 让任何平台上的用任何语言编写的服务进行交互。
    • 将应用程序功能概念化成任务,从而形成面向任务的开发和工作流。这使得更抽象的软件能够为工作在业务层面具有较少软件分析技术的用户所用。
    • 允许松耦合,这意味着,每当其中某个或多个服务在设计或实现中发生改变时,服务应用程序之间的交互不会因此而中断。
    • 使现有的应用程序能适应不断变化的业务条件和客户需求。
    • 向现有或遗留软件应用程序提供服务接口,而无需改变原来的应用程序,从而使这些应用程序完全可以运行在这种服务环境下。
    • 引入其他一些与原有功能无关的管理或操作管理功能,比如可靠性、责任性和安全性等等,从而在业务计算环境中增加其通用性和实用性。

    获得更多相关信息



    回页首



    构成 Web 服务的技术是什么?

    Web 服务采用一系列相关协议来描述、传递服务和与服务交互。根据其通常的功能和使用,可以将这一系列协议进一步划分为组。第一组处理消息传递、接口描述、寻址和交付的问题。最有名的是消息传递协议,称为简单对象访问协议(Simple Object Access Protocol,SOAP)。此协议对消息进行了编码,这样就可以通过传输协议(如 HTTP、IIOP、SMTP 或其他协议)在网络上传递它们。

    Web 服务描述语言(Web Services Description Language,WSDL)表示为一系列 XML 语句,这些语句组成了每个服务的接口的定义。另一个正在制订的规范是 Web 服务寻址 (WS-Addressing),它定义了如何在分布式体系结构中唯一地进行 Web 服务寻址和标识 Web 服务。另一个流行的规范是 Web 服务调用框架(Web Services Invocation Framework),在这种框架中,您可以定义任何类型的组件的 WSDL 接口,即使它们没有使用相同的消息传递协议。

    下一组协议和规范定义了服务如何公开它们自己以及如何在网络上相互发现。对于要相互查找的服务,统一描述、发现和集成(Universal Description, Discovery and Integration,UDDI)为查找和访问服务定义了注册中心和相关协议。Web 服务检查语言(Web Services Inspection Language)是 UDDI 在不使用注册中心的情况下采用的一种可选机制。

    用于 Web 服务的安全性协议是从 Web 服务安全性 (WS-Security) 规范开始的,该规范为安全通信定义了基于令牌的体系结构。以此为基础,有六个主要的组成规范:

    • Web 服务策略 (WS-Policy) 和相关的规范,定义了关于服务交互方式的策略规则。
    • Web 服务信任(WS-Trust),定义了安全交换的信任模型。
    • Web 服务隐私 (WS-Privacy),定义了如何维护信息的隐私。
    • Web 服务安全会话 (WS-Secure Conversation),定义了如何使用在Web 服务策略 (WS-Policy)、Web 服务信任 (WS-Trust) 和 Web 服务隐私 (WS-Privacy) 中定义的规则,以在用于交换数据的服务之间建立安全会话。
    • Web 服务联盟 (WS-Federation),定义了分布式标识的规则以及如何对其进行管理。
    • Web 服务授权 (WS-Authorization),定义了如何处理对访问和交换数据的授权。

    除了安全性模型之外,还有特定于应用程序的规范,其中包括 Web 服务的业务流程执行语言(Business Process Execution Language for Web Services,BPEL4WS),它定义了一起进行分布式事务处理的工作流操作、Web 服务事务 (WS-Transaction)、Web 服务协调 (WS-Coordination)。

    目前计划制订的规范是 Web 服务分布式管理 (Web Services Distributed Management),用于对所有的服务和面向服务的体系结构进行软件管理。最后,还有一些用于用户界面(Web 服务交互应用程序 (WS-InteractiveApplications))和 Web 服务的远程访问(Web 服务远程门户 (WS-RemotePortals))的规范。

    在撰写本文时,用于 Web 服务的规范还处在不断制订的过程中,而且它们仅仅是开始解释服务之间应该如何交互。然而,它们无法包括每一种方案和这些方案的可能组合。因此,Web 服务互操作性组(Web Services Interoperability Group,WS-I)的组成成员几乎来自所有从事 Web 服务开发的大大小小的供应商,它已经肩负起开发案例研究、示例应用程序、实现方案和测试工具的重任,目的是确保这些标准和规范能够真正地协同工作,而不考虑供应商的产品实现。

    WS-I 已经定义了第一个用于 Web 服务的基本概要 (Basic Profile 1.0),并且还发布了方案、示例应用程序和测试工具,以便根据方案评估和比较各种实现的结果。

    除了 WS-I 之外,Organization for the Advancement of Structured Information Standards (OASIS) 、World Wide Web Consortium (W3C) 和 Internet Engineering Task Force (IETF) 也在进行大量的标准制订工作。

    获得更多相关信息



    回页首



    Web 服务与其他技术的关系如何?

    Web 服务主要是技术的集成。不过,它本身是独立于形式的。如前所述,组成 Web 服务的技术通常是用 XML 进行定义和交互的。然而,由于 XML 本身是一种独立的语言,所以 Web 服务也是独立的。因此,可以用许多编程语言(其中包括 Java、Python、Perl、C#、Basic 等等)来开发 Web 服务。

    Web 服务的初衷是努力为 Internet 和 Web 应用程序的体系结构找到一种更好的方法,以便更好地进行通信和相互交互。因而,当今的大多数 Web 服务是基于在应用程序服务器环境(如 WebSphere、Apache 及其他)中运行的程序的。虽然它们不是必需的,但是一些最优秀的 Web 服务工具是为这样的环境而设计的。

    通过提供更简单的统一接口,Web 服务还有助于改进用于移动环境和可移植环境的普及计算模型的工作方式。移动计算软件将很快采用 Web 服务通信模型,而这有助于改进可视化 Web 服务的接口问题。

    网格计算已经采用 Web 服务作为开放网格服务体系结构 (Open Grid Services Architecture) 的一部分。开放网格服务体系结构是用于这种类型的分布式计算的新模型,它使用 Web 服务传递网格服务操作的方式。

    自主计算是一种很有意义的新方法,通过这种计算方法,计算机可以维护和管理自己,它有一些用于 Web 服务的应用程序。

    获得更多相关信息



    回页首



    我可以如何在应用程序中使用 Web 服务?

    在构建应用程序时有很多考虑 Web 服务的方式。在最基本的层次上,高级通信协议允许应用程序相互交谈。在过去几年里,这一层次已经取得了巨大的进展,出现了许多工具,通过使用这些工具,软件开发人员可以编写交互的 Web 服务并构建复杂的应用程序。通常,这一层次的特点是服务之间的一对一直接交互或比较少的服务相互交互。

    然而,如果只是将 Web 服务作为通信协议就未能实现真正的面向服务的体系结构 (SOA)。 SOA 描述了服务的整个系统如何动态地相互查找,如何聚集在一起执行某些应用程序,以及如何按照多种方式进行组合。该模型鼓励技术和软件的重用,从而发展了设计、开发和使用应用程序的方式。它使分布式计算更接近于现实。在这一层次上,软件开发人员需要考虑 SOA 模型并通过此模型来设计他们的分布式应用程序。这一层的特点是使用各种技术来支持服务的分布式计算,比如 企业服务总线 (ESB),它是一个通用的分布网络,可以与服务一起协同工作。

    而最高的层次是把 SOA 模型和许多组件服务看作是构件,这些构件可以装配成作为一个整体的某些部分并放入完整的应用程序中,而不是用传统的方法来编写一行一行的代码。通过检验连接接口,我们可以在不曾真正编写一行代码的情况下构建整个应用程序。事实上,按照这种方式,甚至还可能得到直接代码,因为服务可以通过多种不同的语言和平台进行编写。可以将构件放在一起来组成定义应用程序的执行方式的操作工作流,而且还可以用其他工具来监控每个服务或服务组的工作流的有效性。在这一层次上,开发人员可以把常规编程语言放在一边,而使用模型驱动的体系结构 (Model-Driven Architecture) 来帮助他们构建设计更精确的应用程序。然后,这样设计的应用程序就可以运行在分布式系统(如 ESB)之上。

    获得更多相关信息



    回页首



    我可以如何提高自己的 Web 服务技能?

    跟上 Web 服务的发展的最好方法就是阅读最新的技术文章和使用各种可用的工具。由于技术本身在不断地发展,所以这些信息和工具提供了对使用 Web 服务的最佳方式的解释。 Emerging Technology Toolkit 之类的工具还跨越了几个阶段,涉及到这些技术的一些前沿知识,通过使用这些工具,您就可以试验专家正在研究的一些技术。我们将在下一部分中描述这些技术。

    目前,Web 服务已经取得了重大的进展,关于这个主题的各种信息也在爆炸式地出现。在 Web services 专区中,有大量有关开发用于直接交互的 Web 服务的技术内容。甚至像 SOAP 这样已经出现了三年多的协议仍在完善之中。由于这个主题在不断地变化,所以常常回到 Web services 看看是非常有益的。

    另一个提高您的技能的好方法是直接参与专区的讨论论坛。在这里,您可以找到正在这个领域积极开展研究工作的专业人员,甚至直接得到设计这些技术和开发这些产品的研发人员的帮助。

    对于高级开发人员,您可以通过参与每月一次的各种专题讨论会来加入到 Web 服务规范本身的制订和发展之中。

    获得更多相关信息

    • Web 服务专区经常增加一些新的教程,这些教程详细解释了如何在 Web 服务中执行有用的任务。
    • Web Services Specification Workshops 是一个多方参与的事件,您可以从中获得更多的信息并提供关于 Web 服务规范的反馈。
    • developerWorks 站点上 Web 服务的最佳实践调查了 IBM JStart 项目组成员在走向成功道路上遭遇的真实情景,这个项目是针对早期技术实现的。学习这些最佳实践可以帮助您评估和适应您自己的项目的情况
  • 相关阅读:
    jsp开发环境搭建(windows64位)
    python环境和工具
    判断单链表是否有环及寻找环的入口
    Eclipse实用操作
    img标签在div里上下居中
    继承小结
    创建对象
    方法链、作用域链和原型链(三)——原型链
    python截取字符串
    在vscode上运行python
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/838142.html
Copyright © 2011-2022 走看看