从包含几百笔贷款的清单中选择并区分具有分析特征的贷款是需要相当技巧的。分析服务和 OLAP 服务有助于在各组贷款间建立联系,以便分析人员能够建立贷款假设模型。为了帮助客户的房地产分析人员预测商业抵押证券的业绩,我们的开发小组需要设计一个以各种方式(如:利率、到期期限或地产位置)来简化贷款分类的系统。其界面应易于学习和使用。而且,所开发的系统需要在 Internet 上进行安全的部署。为了满足这些要求,开发小组选择了分析服务。
使用 OWC 在 Web 上部署 Office
在选定了后端技术后,开发小组开始制订实现前端界面的计划。多数金融分析人员使用 Microsoft Excel,他们对其界面比较熟悉,感觉也很舒服。Excel 包括数据透视表服务,能够允许分析人员连接到分析服务数据库。Excel 的拖放界面提供了对多维数据的简单和直观的访问,并不要求用户进行深入的培训。而且,通过使用 Excel 的制图功能,用户能够以图和表的形式表示数据。所以,对于前端界面,小组的首选是 Microsoft Office XP 中的 Excel 2002。图 1 显示了 Excel 数据透视表服务浏览一个分析服务 OLAP 多维数据集的情形。
如果所有的客户端用户在同一幢大楼内一起工作,并通过同一个局域网访问分析服务器,Excel 会是不错的选择。但用户需要和办公地点散布于世界各地的不同组织共享应用程序,因此开发小组需要一个用户可以通过 Internet 访问且类似于 Excel 的组件。该小组发现 Office Web 组件 (OWC) 能够满足这一需要。OWC 是一组能够在 Web 页上使用并提供 Office 功能的 ActiveX 控件。OWC 数据透视表组件是 Excel 中数据透视表服务的 Web 版本;数据透视表使用数据透视表服务,并要求在运行前安装数据透视表服务。但没有 Excel,OWC 数据透视表也能工作。
数据透视表能够从分析服务器上检索多维数据并将这些数据显示在一个交互的拖放界面上。已安装 Microsoft Internet Explorer (IE) 4.01 或以上版本的用户可以使用 OWC 对分析服务数据进行分析,而不必安装额外的组件软件。图 2显示了外观和操作都类似于熟悉的 Excel 界面的 OWC 数据透视表客户端界面。OWC 数据透视表也提供了智能缓存,通过减少数据透视表从网络到服务器的往返行程次数而提高性能。所以,通过有效使用分析服务,数据透视表能够减少数据传输并提高效率。
虽然 OWC 提供了我们开发小组的项目需要的全部东西,但当我们试图在 Internet 上部署 OWC 时,我们遇到了难题。首先是 OWC 的运行平台问题。Office XP 版的 OWC 要求使用 Microsoft Data Access Components (MDAC) 2.6 或以上版本。而许多服务订户使用 Windows NT Workstation 4.0 作为其操作系统,如果要安装 MDAC 2.6,还必须安装 Service Pack 6 (SP6)。使用 OWC 的一个主要吸引力在于我们认为它能够实现无缝的部署。我们发现虽然能够自动处理安装 Service Pack,但该过程需要重新启动,非常麻烦。以后,Microsoft 提供了一个使用 SP4 的 OWC 组件修订版本,但我们同时也在开发自己的应用程序,在金融机构严格控制的客户端网络上部署 Service Pack 是一个很大的困难。因此,需要在操作系统上使用特定 Service Pack 的解决方案是不可行的。
其次,我们小组遇到了连接问题。OWC 要求直接连接分析服务数据源。OWC 使用默认的 2725 端口直接和分析服务器通信,对于使用防火墙的机构来说,这是个问题。(有关连接分析服务的详细信息,参见位于 http://support.microsoft.com/default.aspx?scid=kb;en-us;q301901 的 Microsoft 文章 "INF:TCP Ports Used by OLAP Services when Connecting Through a Firewall"。)
首先,我们试图使用 HTTP 连接和服务器通过 80 端口进行连接以解决连接问题。该连接通过 Web 浏览器使用的同一个端口来提供访问。对于额外的安全性,分析服务还能够使用安全套接字层 (SSL),通过 443 端口进行连接。大多数组织同时打开 80 端口和 443 端口以便用户访问 Internet。(有关使用 HTTP 的更多信息,参见位于 http://support.microsoft.com/default.aspx?scid=kb;en-us;q279489 的 Microsoft 文章 "INF: How to Connect to Analysis Service 2000 By Using HTTP Conection"。)图 3说明了使用 OWC 连接到分析服务器涉及的问题。
然而,HTTP 连接的执行产生了一些难以克服的困难。我们测试显示,通过 80 端口进行连接要明显慢于直接连接。因为多维数据集需要向客户端提供大量的数据,性能的降低使 OWC 的使用很不现实。
使用 Web 瘦客户端访问多维数据
开发小组成员最后选用 Microsoft SQL Server Resource Kit,为我们的难题找到了解决方案:分析服务 Web 瘦客户端浏览器。(要在资源工具箱 CD-ROM 上访问 Web 瘦客户端,参见资源工具箱第 39 章的参考信息,该信息位于 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/sql/reskit/sql2000/part11/c3961.asp。)Web 瘦客户端使用 Active Server Page (ASP) 连接到分析服务器、将多维数据转换成 HTML,并将数据传递给客户端。图 4说明了 Web 瘦客户端显示贷款数据子集的情况。
Web 瘦客户端需要 IE 5.0 或以上版本。因为客户端不直接连接到分析服务计算机,所以客户端不需要 MDAC 2.6。由于多数客户端订户具有 IE 5.0,所以我们不必在订户的个人计算机上部署 Service Pack。图 5显示了 Web 瘦客户端使用的结构。Web 瘦客户端使用 ASP 从 Microsoft IIS 服务器 — 而不是客户端 — 来查询多维数据集。Web 瘦客户端带有 ASP 页,使得您能够在 IIS 服务器上部署。因为只有运行 ASP 的 IIS 服务器才能够连接到分析服务数据库,所以,您能够使用一个连接来保证通过防火墙进行的多维数据集访问,并且可以将该连接局限于 Web 服务器和数据库服务器。这种安排创建了一个高效和易于保护的连接。对客户端的唯一连接是标准的 HTML 连接,这能够减少防火墙的影响。
Web 瘦客户端将查询的数据放到一个网格状的 HTML 表结构中,并将数据发送到浏览器。用户通过 JavaScript 和数据进行交互。通过使用透明层,用户可以将维拖到多维数据集中进行数据操作、通过维向下追溯并显示和分析其需要的数据。
如多数设计决策那样,使用 Web 瘦客户端需要做出某些折衷。因为在 Web 服务器域和后端域之间不存在信任关系。您不能在系统中扩展 Active Directory (AD) 作为其验证服务。这样的信任关系会给入侵者提供一种破坏后端域安全的方法。因此,系统必须建立一个匿名用户来访问分析服务器上的数据。如果对数据的访问取决于用户,则不能使用基于分析服务的角色安全性来控制对数据的访问。然而,如果系统允许所有用户通过一个安全上下文进行数据访问,则使用 Web 瘦客户端是安全的,而且容易部署。
Web 瘦客户端也有其他缺点。OWC 通过使用数据透视表的智能缓存把从 Web 浏览器到 OLAP Web 服务器的往返行程数减少到最小来获取更多的数据。但 Web 瘦客户端是从服务器端提取数据的,因为数据在 Web 浏览器中并不缓存,所以每次对数据的更改都要求浏览器向 Web 服务器提出新的请求。当处理的数据量很大时,这个进程会很缓慢。OWC 还具有丰富的对象模型,您可以对之编写自定义代码。而 Web 瘦客户端使用 JavaScript,很难自定义。因为 Web 瘦客户端是资源工具箱内包含的“自由代码”,所以 Microsoft 并不像支持 Excel 或 OWC 那样对 Web 瘦客户端提供相同程度的支持。而且,Web 瘦客户端要求客户端脚本,如果 Web 浏览器已经更新或更改,它会产生错误。此外,Web 瘦客户端不直接支持对服务器的回写。幸好,我们小组的应用程序不要求回写, 所以,这个缺失的功能并不妨碍我们使用 Web 瘦客户端。在对其优点和缺点进行评估后,我们决定部署 Web 瘦客户端。这个解决方案在生产环境中使用效果不错,并得到了用户的广泛认可。