InfoPath Forms Services 体系结构

InfoPath Forms Services 作为 Microsoft Office Forms Server 2007 或 Microsoft Office SharePoint Server 2007 的一部分,是真正的多层系统。InfoPath Forms Services 体系结构包含 Microsoft Office InfoPath 2007 和桌面上的 XmlFormView 浏览器控件。它们可直接或通过 InfoPath Forms Services Web 服务与中间层通信,然后依次与基础 InfoPath Forms Services 和 Office SharePoint Server 2007 组件通信。

与 Office SharePoint Server 2007 集成

InfoPath Forms Services 集成了 Office SharePoint Server 2007 的核心平台和高级组件,其中包含了以 Windows SharePoint Services 3.0 平台为基础构建的几个服务器产品和组件。由于 InfoPath Forms Services、Office SharePoint Server 2007 和相关的产品都是以通用 SharePoint 产品和技术平台为基础构建的,因此开发人员可以使用一组常用的开发工具和技术来集成和扩展所有产品。

Office SharePoint Server 2007 的组件

Office SharePoint Server 2007 集中了一些以前都是独立产品的服务和应用程序。例如,Microsoft Office SharePoint Portal Server 2003 和 Microsoft Content Management Server (MCMS) 2002 的功能现在是 Office SharePoint Server 2007 的组成部分。此外,Office SharePoint Server 2007 增加了随同 Excel Services、企业内容管理 提供的新的管理、协作、业务流程管理和商业智能功能,以及公用搜索体系结构和工作流。

图 1 显示了 Office SharePoint Server 2007 的主要应用程序功能和组件以及共享应用程序和管理服务。

图 1. SharePoint Server 的应用程序和组件

SharePoint Server 的应用程序和组件

注意 图 1 提供了 Office SharePoint Server 2007 和 Windows SharePoint Services 平台的通用视图,但没有专门显示哪些共享应用程序服务与核心组件(例如 Windows Workflow Foundation)相关联。此外,InfoPath Forms Services 以集成 Excel Services 的同一级别集成了 Office SharePoint Server 2007,但在图表中显示为一个单独的 SKU,即 Office Forms Server 2007。

产品

从 Microsoft Office SharePoint Server 2007 中可单独使用 Microsoft Office Project Server 2007 和 Microsoft Office Forms Server 2007。

2007 Microsoft Office system 的所有产品(包括 Office SharePoint Server 2007、Office Project Server 2007 和 Office Forms Server 2007)均使用 Windows SharePoint Services 核心平台和 Office SharePoint Server 2007 的部分应用程序服务。

通过使用 Microsoft Visual Studio 2005 和 Microsoft Office SharePoint Designer 2007 中的一组常用工具和技术可以集成和扩展 Office SharePoint Server 2007 的所有功能。开发人员利用 Microsoft ASP.NET 2.0 可以创建和修改 Web 部件和母版页,提供个性化网站,以及集成可扩展的提供程序模型,以提供导航、安全性及其他平台功能。

Office SharePoint Server 2007 需要 SQL Server 2000 Service Pack 3 或更高版本,或者 SQL Server 2005。如果在一台计算机上安装了这些应用程序,则 Office SharePoint Server 2007 可以使用 SQL Server 2000 MSDE 或 SQL Server 2005 Express Edition 运行。如果要在多台计算机上进行场安装,则所有 2007 Microsoft Office system 服务器产品都要求安装完整的 SQL Server 产品。

常规体系结构

通过 InfoPath Forms Services 的四个主要组件,可以转换、呈现和在浏览器中使用表单模板 (.xsn) 文件(如同在 InfoPath 客户端中进行这些操作):

  • IIS 和支持的 ASP.NET 模块:将 HTML 返回到浏览器、向页生成器转换器 发送文件请求以及转发要由页生成器 处理的回发信息。

  • InfoPath Forms Services HTTP 处理程序:转发来自 IIS 和支持 ASP.NET 模块 以及页面生成器 的请求。

  • 转换器:根据表单模板 (.xsn) 文件的内容将其转换为解决方案模块和 .aspx 页,缓存解决方案数据以及将已转换文件发送到 InfoPath 表单服务 HTTP 处理程序

  • 页生成器:与外部数据源通信、存储和检索会话状态、获取初始数据和解决方案模块、处理回发事件日志数据,以及根据 InfoPath Forms Services HTTP 处理程序 的请求将数据返回到 IIS 和支持 ASP.NET 模块

运行时体系结构

默认情况下,如果请求表单的计算机上安装了 InfoPath,则会在 InfoPath 中打开表单。如果计算机请求了启用浏览器功能的表单但未安装 InfoPath,则 InfoPath Forms Services 将重定向到 FormServer.aspx 页,并将预生成的 JScript 代码和解决方案特定的 JScript 数据数组发送到浏览器。不可修改的客户端脚本数组分两部分生成,即在转换表单模板时和请求表单时。它的功能类似于异步 JavaScript 和 XML (AJAX) 处理 HTML 生成及客户端上的服务器通信。该脚本数组处理下列任务:

  • 根据服务器的 JScript 数组生成并呈现 HTML。

  • 生成客户端上所发生事件的事件日志,以回发到服务器。

  • 数据有效性

  • 计算

  • 规则

  • 编辑操作,如插入或删除表单的组成部分

  • 条件格式

当用户在表单中输入数据或以其他方式更新表单时,事件日志会记录所有用户操作。此事件日志的形式为 JScript 数据数组,将于下一次回发时被发送到服务器,服务器将对初始 XML 数据重复此日志中的操作,并根据需要执行规则和业务逻辑。然后,服务器将更新后的 JScript 数据数组发送到浏览器。通过组合的客户端和服务器端体系结构,表单无需为了每个用户操作与服务器进行通信,即可在浏览器中使用。但是,如果需要与服务器通信,则客户端和服务器会与事件日志 JScript 数据数组通信,以优化响应时间并使用差异变化更新该表单,而不是发送和接收整个表单以及针对每个请求预生成的 JScript 代码。

提交表单

提交表单后,服务器会处理浏览器提交的内容。从 InfoPath 客户端提交表单只是一个 XML 提交过程;而从浏览器提交表单则是两个过程:首先通过 XMLHTTP 将表单提交到服务器,服务器随之重播事件日志,然后将 XML 提交到最终提交目标。这种分为两个步骤的提交过程可能会导致出现身份验证问题(通常称为双跃点问题),使用 InfoPath Forms Services 代理可以解决此问题。有关使用代理的详细信息,请参阅关于数据连接、身份验证和备用访问映射

呈现和查询参数

InfoPath Forms Services 的呈现组件是 FormServer.aspx 和 MobileFormServer.aspx 页,分别位于服务器的“_layouts”和“_layouts /Mobile”文件夹中。如果有多个 Web 前端 (WFE) 服务器和一个包含场的数据库服务器,则这些组件位于 WFE 上。

如果由 FormServer.aspx 页呈现启用浏览器功能的表单模板,则代表该表单的初始 XML 数据和 HTML 将与不可修改的、支持的 JScript 解决方案模块一起被发送到浏览器。这些模块处理客户端操作,例如简单的计算、设置条件格式和数据有效性验证。这些模块还处理 XML 数据中与服务器通信的增量变化。随后在 JScript 解决方案模块中使用这些变化,来更新代表表单的 HTML 页,同时通过最大限度地减少整页回发到服务器来提高性能。

处理由 MobileFormServer.aspx 页呈现的启用浏览器功能的表单模板的方法与上述类似,但是不包含通过 JScript 解决方案模块处理客户端。如果要在移动表单中执行多个操作,则与服务器通信,但是每次通信都将导致整页回发。这样,服务器的通信不会发生增量变化,但是名称/值对会被发送到用于视图中各个控件的服务器。

InfoPath Forms Services 支持使用查询参数控制呈现表单的方式、保存表单的位置以及在关闭表单时用户重定向到的页面。有关使用查询参数的详细信息,请参阅如何:使用查询参数来调用支持浏览器的 InfoPath 表单

表单模板生命周期

图 2 显示表单模板在 InfoPath Forms Services 中的各个状态:

表单模板的生命周期

图 2. 表单模板的生命周期

有关表单模板生命周期的详细信息,请参阅表单开发和部署生命周期

表单模板转换器

在转换表单的过程中,表单模板 (.xsn) 文件被展开到其组件文件,如 manifest.xsf 文件、架构 (.xsd) 文件和视图 (.xsl) 文件。这些文件存储在服务器上,用于生成 InfoPath Forms Services 在 XmlFormView 控件中呈现表单所需的脚本和其他组件。