将SOA引入Office应用程序桌面(下)

日期: 2009-09-14 作者:Ricard Roma i Dalfo 来源:TechTarget中国 英文

  设计和开发信息桥解决方案

  在设计IBF(信息桥框架)解决方案时,您必须将它分为三个截然不同的块(如图 2 所示)。一方面,您需要描述与IBF兼容的Web服务,该服务封装了您要提供给最终用户的后端应用程序功能。另一方面,您需要设计要提供给解决方案用户的UI和体验。最后一步是链接您使用IBF元数据构建的服务和UI解决方案。通过分开这三个阶段,您可以为其中的每个阶段分配不同的资源,然后以单独的方式操作,只需在它们共享的界面(或公共架构)上保持一致即可。

  创建与IBF兼容的服务

  IBF需要可以提供数据以及与您的解决方案所需的数据进行交互的服务。IBF目前支持两种类型的服务:Web服务和CLR组件。Web服务是公开后端数据最常用的方法,大多数IBF示例都将它们用于服务描述。如果您需要使数据脱机或者缓存(出于性能原因)CLR实现,也是可以的。

  在为IBF设计服务时,您应该记住,您是在构建用户使用的服务,因此您希望公开对用户有意义的数据和方法。

  图 2.IBF解决方案的三个不同的块

  在构建这些服务时,您还需要知道几个概念:

  1、实体 — 您可以将实体视为一个对用户有特殊意义并且可供用户操作的业务对象。实体的示例可以是客户、定单或机会。它们都有一些数据与之相关联,并且从用户的角度来看,它们是可以操作的。例如,客户实体可能包含与特定客户(名称、地址、位置等)相关联的数据,以及允许用户操作实体的方法,例如,UpdateCustomerInformation 或 SendEmailToCustomer。它可能还是一个通过关系(例如,CustomerOrders 或 CustomerOpportunities)到其他实体的起始点。

  2、视图 — IBF可以用不同的视图来分割实体。视图是与实体有关的信息子集。对于一个客户,您可能有客户联系信息视图和客户财务视图。

  3、、引用 — IBF中的引用是唯一标识一个实体/视图实例的一段信息。对于前面的示例,引用可以是客户ID或客户名称(如果它允许您唯一标识客户)。

  4、关系 — 某些实体/视图之间具有关系,我们构建的元数据应该描述这些关系。一个示例是客户与定单,因为您可以将客户与其定单相关联,以及将定单与其客户相关联。

  基于前面的概念,在您构建服务时,您应该识别三种不同的方法:

  5、Get — get方法允许您通过传递Reference来为实体/视图检索数据。一个示例是名为GetCustomerContactInformation的方法,它将接受客户ID Reference参数。

  6、Put — 这是一个允许您通过更新后端系统来修改实体/视图内容的方法。它接受两个输入:对要更新的实体/视图的引用,以及要更新的数据。

  7、Act — 该方法允许执行与获得/更新实体/视图无关的操作,或者跨多个实体执行操作。

  如果您理解了这些概念,就可以围绕它们来构建服务。服务将公开一组类型为Get/Put/Act的方法,为此还将为引用和视图(由Get操作返回的数据)定义架构。

  为了完成服务,还必须公开描述前面解释的概念的IBF元数据。IBF提供了可以从Web服务自动生成元数据的工具,这样您就可以通过标注围绕实体/视图公开的方法来增加元数据,并将它们映射到正确的引用。

  创建UI组件

  IBF允许您的文档包含指向后端数据的活动链接。这些文档通过智能标记或者获得文档的附加架构,来包含有关要获得哪些后端数据的信息。智能标记或架构中的元素节点将存储有关要指向哪些后端信息的信息。根据前面有关如何创建IBF服务的主题中的讨论,这些就是引用。例如,智能标记将包含对后端信息的引用。您的解决方案必须定义它希望这些智能标记如何插入文档,对此IBF提供/推荐了几种方法。您可以自动生成嵌入了智能标记的文档(如果电子邮件/文档由某些进程动态生成,这将十分有用);您可以使用智能标记识别器基于正则表达式来检测文本,或者在其中查找并动态插入智能标记;您还可以使用IBF中的内置搜索功能,让用户查找他们感兴趣的信息实例,并允许用户将它们粘贴到文档中。

  剩下的UI部分就是要显示给用户的部分。IBF提供了一个窗格方法,该方法可以宿主可由解决方案提供程序完全定义的区域。IBF支持.NET CLR控件和HTML区域(以及这些区域的菜单)。创建一个UI实际上就是创建一个控件,以及实现一个将数据插入控件的界面。控件本身不需要知道如何获得数据,以及数据来自哪里。控件只需要知道所提供的数据类型。IBF将在运行时动态实例化控件,并将正确的数据传递给控件。这就允许将数据的显示与获取数据的方式分离开来。根据前面的示例,您可以创建一个知道如何呈现客户信息的控件(它理解客户的架构,并且包含其名称、地址等)。

  创建解决方案元数据

  创建 IBF 解决方案的最后一步就是,创建将服务描述与为其定义的UI元素相链接的元数据。为了让您轻松地创建这些基于元数据的解决方案,IBF 提供了以下几个概念:

  1 操作 — 从用户的观点来看,这些是可执行单元,并且可以包含服务和UI方法/操作。在前面的示例中,您应该有一个DisplayInformation 操作,它使用CustomerContactInformation上的服务实体/视图,并将其链接到我们创建的、用于显示客户信息的用户控件。

  2 转换 — 由于来自服务的数据和UI元素所需的数据可能不同,因此IBF允许您转换数据。XSL转换、正则表达式或调用CLR组件都是受支持的数据转换方式。

  3 关系 — 您的解决方案可以具有除该服务提供的关系之外的关系,还可以跨服务了解关系。例如,我可以将一个旧式应用程序中的客户与CRM系统中的客户相关联。

  部署和安全

  您可以将IBF视为元数据的中央库,作为解决方案动态部署的服务描述和UI元素将由IBF客户端组件使用。除了IBF客户端以外,不需要在客户端机器上安装其他任何代码/元数据。IBF 客户端组件可以连接到相应的元数据服务,以获得给定上下文所需的所有元数据和UI元素。在获得元数据描述和UI元素后,IBF客户端组件将它们与服务方法调用一起执行,并根据需要来构建UI和用户体验。

  由于IBF使用CLR组件进行UI呈现,因此它构建在.NET安全性之上,所有组件都动态下载并在本地缓存,并且在沙箱环境中执行,因而不会危害客户端机器。如果您需要让控件拥有更高级别的控制权,可以使用标准的 .NET 安全策略对这些控件进行签名,并提升它们的权限。

  它为您的企业解决方案提供了一个健壮且无需部署的环境。

  小结

  通过将服务层与UI层分开,并经由元数据将它们链接在一起,IBF可以允许高度抽象和重用您的服务和UI组件。它提供了一个功能非常强大的平台,用于指定企业中的后端资产,以及根据这些资产创建无需编码即可链接或组合的解决方案。在元数据驱动的方法中,该元数据方法添加了许多灵活性,并允许根据客户的情况进一步改进解决方案。IBF提供了功能强大的UI结构,以帮助构建完整的UI体验以及与Office应用程序的集成。通过在.NET技术之上构建,它还为新的解决方案提供了一个安全且无需部署的环境。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 将SOA引入Office应用程序桌面(上)

    当今的企业都希望将SOA作为一种公开其应用程序和数据以便于用户使用的方法。通过采用SOA,企业资产(例如,业务流程应用程序或后端系统)……

  • 四大设计元素促进BI用户过渡

    大多数的企业级BI平台对普通用户而言太过复杂,难以高效使用,从而导致这一工具只能在具备技术背景,受过专业培训的小范围用户群体中展开……

  • 面向服务的用户界面

    面向服务的用户界面,本文是关于IBM的SOA编程模型的系列文章之一,介绍了用户面对的服务并提供了用户界面(UI)。