以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 Web Services & Semantic Web Services 』 (http://bbs.xml.org.cn/list.asp?boardid=10) ---- 将 SOA 引入 Office 应用程序桌面[/ (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=34615) |
-- 作者:supremeweb -- 发布时间:6/19/2006 11:51:00 PM -- 将 SOA 引入 Office 应用程序桌面[/ 发布日期: 6/17/2005 | 更新日期: 6/17/2005 Ricard Roma i Dalfo Microsoft Corporation 摘要:当今的企业都希望将 SOA 作为一种公开其应用程序和数据以便于用户使用的方法。现在,使用现有开发工具在这些服务上构建解决方案非常容易。通过使用 SOAP 或 WSDL 之类的标准,不同的供应商可以提供在这些服务上进行公开和开发的工具。但是,当企业开发了一些解决方案之后,问题就开始暴露出来。本文将重点说明一些最常见的问题。 简介 现在,使用现有开发工具在这些服务上构建解决方案非常容易。通过使用 SOAP 或 WSDL 之类的标准,不同的供应商可以提供在这些服务上进行公开和开发的工具。 当企业开发了一些解决方案之后,问题就开始暴露出来。以下是一些最常见的问题: 1. 由于上述原因,我们需要一个在现有服务之上构建解决方案的更好的机制。 我们推荐一组新的元数据,它可以与某个服务相关联,并说明该服务的用户(解决方案开发人员)将需要了解的内容。在这个新的元数据中,我们将公开以下概念: 1. 描述现有服务的元数据只能解决一半问题。另一半(在这些服务上开发的解决方案)还需要元数据描述。我们相信,通过考虑最终用户可以执行的操作,您可以构建大多数解决方案。这些操作是在服务实体/视图上构建的,并在其上提供可操作性。客户操作肯定会有一个显示其数据的操作,可能还有一个更新数据的操作。操作说明应该将从服务检索的数据链接到将使用它的 UI 或解决方案功能。 1. a) 一个封装了 LOB 或后端系统并与 IBF 兼容的 Web 服务。我们将在下一部分(设计和开发 IBF 解决方案)中讨论兼容问题。 b) 一个包含服务和解决方案元数据的元数据库(元数据服务)。该库可将自身导出为提供对元数据的访问的 Web 服务。还有一个描述所有服务和解决方案的中央库。客户端将基于它们的权限下载该元数据的子集,以将其作为所需的执行基础。 c) IBF 客户端引擎。这最后一个组件包含两个独特的组件: a. 在需要时从元数据服务下载元数据并保留它的本地缓存的引擎。它还可以理解元数据,并基于当前的上下文执行元数据。它执行所有与 UI 不相关的操作,例如,SOAP 调用、转换等。该组件是 UI 不可知的。 b. UI 引擎,它是了解应用程序寄宿在何处(Word、Excel 等)的部分,而且它将呈现 UI,并提供特定于宿主应用程序的服务。它能够在宿主应用程序上创建一个抽象层,因此用 IBF 构建的解决方案不需要了解宿主应用程序之间的差异。 d) 元数据设计器是一个基于 Visual Studio 的工具,它允许编辑元数据并将其导入元数据服务。 图 1. IBF 体系结构 设计和开发信息桥解决方案 在设计 IBF(信息桥框架)解决方案时,您必须将它分为三个截然不同的块(如图 2 所示)。一方面,您需要描述与 IBF 兼容的 Web 服务,该服务封装了您要提供给最终用户的后端应用程序功能。另一方面,您需要设计要提供给解决方案用户的 UI 和体验。最后一步是链接您使用 IBF 元数据构建的服务和 UI 解决方案。通过分开这三个阶段,您可以为其中的每个阶段分配不同的资源,然后以单独的方式操作,只需在它们共享的界面(或公共架构)上保持一致即可。 创建与 IBF 兼容的服务 IBF 需要可以提供数据以及与您的解决方案所需的数据进行交互的服务。IBF 目前支持两种类型的服务:Web 服务和 CLR 组件。Web 服务是公开后端数据最常用的方法,大多数 IBF 示例都将它们用于服务描述。如果您需要使数据脱机或者缓存(出于性能原因)CLR 实现,也是可以的。 在为 IBF 设计服务时,您应该记住,您是在构建用户使用的服务,因此您希望公开对用户有意义的数据和方法。 图 2.IBF 解决方案的三个不同的块 在构建这些服务时,您还需要知道几个概念: • 实体 — 您可以将实体视为一个对用户有特殊意义并且可供用户操作的业务对象。实体的示例可以是客户、定单或机会。它们都有一些数据与之相关联,并且从用户的角度来看,它们是可以操作的。例如,客户实体可能包含与特定客户(名称、地址、位置等)相关联的数据,以及允许用户操作实体的方法,例如,UpdateCustomerInformation 或 SendEmailToCustomer。它可能还是一个通过关系(例如,CustomerOrders 或 CustomerOpportunities)到其他实体的起始点。 基于前面的概念,在您构建服务时,您应该识别三种不同的方法: • Get — get 方法允许您通过传递 Reference 来为实体/视图检索数据。一个示例是名为 GetCustomerContactInformation 的方法,它将接受客户 ID Reference 参数。 如果您理解了这些概念,就可以围绕它们来构建服务。服务将公开一组类型为 Get/Put/Act 的方法,为此还将为引用和视图(由 Get 操作返回的数据)定义架构。 为了完成服务,还必须公开描述前面解释的概念的 IBF 元数据。IBF 提供了可以从 Web 服务自动生成元数据的工具,这样您就可以通过标注围绕实体/视图公开的方法来增加元数据,并将它们映射到正确的引用。 创建 UI 组件 剩下的 UI 部分就是要显示给用户的部分。IBF 提供了一个窗格方法,该方法可以宿主可由解决方案提供程序完全定义的区域。IBF 支持 .NET CLR 控件和 HTML 区域(以及这些区域的菜单)。创建一个 UI 实际上就是创建一个控件,以及实现一个将数据插入控件的界面。控件本身不需要知道如何获得数据,以及数据来自哪里。控件只需要知道所提供的数据类型。IBF 将在运行时动态实例化控件,并将正确的数据传递给控件。这就允许将数据的显示与获取数据的方式分离开来。根据前面的示例,您可以创建一个知道如何呈现客户信息的控件(它理解客户的架构,并且包含其名称、地址等)。 • 操作 — 从用户的观点来看,这些是可执行单元,并且可以包含服务和 UI 方法/操作。在前面的示例中,您应该有一个 DisplayInformation 操作,它使用 CustomerContactInformation 上的服务实体/视图,并将其链接到我们创建的、用于显示客户信息的用户控件。 由于 IBF 使用 CLR 组件进行 UI 呈现,因此它构建在 .NET 安全性之上,所有组件都动态下载并在本地缓存,并且在沙箱环境中执行,因而不会危害客户端机器。如果您需要让控件拥有更高级别的控制权,可以使用标准的 .NET 安全策略对这些控件进行签名,并提升它们的权限。 它为您的企业解决方案提供了一个健壮且无需部署的环境。 关于作者 Ricard Roma i Dalfo [URL=http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnmaj/html/ibf-J4.asp]转到原英文页面[/URL] |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |