日期:2009-08-03  浏览次数:20416 次

 概要:这篇文章详细描述了MSDN Architectural Samples Team如何挑选项目来审核,以及这些选择会如何影响收集到的数据。另外还讨论了审核是如何集成到Favorites Service 范例程序的。


  介绍

  一般应用程序总是使用审核来产生统计数据并跟踪使用情况的。你想收集的统计数据和使用情况能帮助你定义要捕捉的数据。例如,如果你对密码变更感兴趣。你可以使用统计数据来观察在某一个给定的时间段内,有多少人修改了他们的密码。你也可以用使用情况的数据在某一个用户的密码被改变时进行跟踪。以某种比例绘成曲线的统计数据反映出在一个月的第一天改密码的用户最多。跟踪使用的数据可以帮我们捕捉到修改密码时遇到的问题。比如,如果一个用户突然丧失了访问权限,他将联系Web 服务商询问他的密码为何失效。这个问题很有可能是由于更换密码引起的。如果密码被破坏或没有得到站点所有者的同意就被更改了,这些数据可以帮助我们跟踪并发现问题的所在。那么审核是如何帮我们完成这些任务的呢?

  通过审核日志,站点管理员可以查看用户账号中密码的改变情况。通过与这个行为有关的信息,管理员可以发现密码是什么时候被改变的。假设密码是通过Web服务器被更改的,那么管理员可以根据这一点来查看Web服务器的日志,找出在那个时间段内发生的事件。如果任何更改密码的请求发生在审核纪录的几秒钟之内,那么管理员就可以跟踪到要求改变密码的机器的IP地址。根据这个IP地址,管理员可以告诉用户是否是用户的机器改变了密码,或是其它机器改变的。

  在这篇文章中,我们将看到MSDN Architectural Samples Team是如何挑选项目来审核的,并看到这些选择是如何影响我们收集到的数据的。另外我们还将演示我们是如何把审核与"Favorites Service" 中的例子整合在一起的。我们将在另一篇标题为"Web服务开发细节报告"的文章中对有关数据收集的内容作进一步地探讨。


  审核项目的选择

  我们的第一个任务就是选择我们想监视的项目。因为这是一个Web Service,所以我们知道我们想监视的是我们通过WSDL文件或ASP接口开放给系统的每一个方法。这将使我们了解到哪些方法被使用的最多,那些部分需要修改。我们对哪些方法需要被优化做了一些假设。比如,我们假设最常被调用的操作是Account.GetFavorites和LOGOn.LOGOn。

  在Web Service的列表中我们还增加了其它一些入口点。在这儿,我们增加的是与COM的公共方法有关的审核信息,这些方法是由在SSFLicensing COM库中的对象定义的。在这个库中,我们允许用户申请新的许可证、更改密码或使用其他面向许可证的服务。如果你想了解"Favorites Service"的许可的详细描述,请阅读Licensing a Web Service这篇文章。

  为了审核一个应用程序,我们只需要处理我们所控制的应用程序的某些部分。我们对Web Service的分派、Web服务器和客户端几乎没有控制。我们可以对服务分派的层次作一些改变,但不能期望ASP代码在被分派到COM代码之前看起来就像Simple Object Access Protocol(SOAP)消息一样。这将降低应用程序的性能,并可能导致审核过程变得复杂,在跟踪错误数据时,这一点表现得更明显。因为我们对我们编写的对象有完全的控制,所以我们把审核代码放在它们中。表1列出了我们审核的对象和方法的清单。

  表1 在"Favorites Service"中被审核的方法

COM library name Class Web Service Method
SSFFavorites LOGOn Yes LOGOn
SSFFavorites Account Yes AddCategory
SSFFavorites Account Yes AddFavorite
SSFFavorites Account Yes AddUser
SSFFavorites Account Yes CopyFavoriteInCategory
SSFFavorites Account Yes CopyFavoriteToNewCategory
SSFFavorites Account Yes DeleteCategory
SSFFavorites Account Yes DeleteFavorite
SSFFavorites Account Yes DeleteUser
SSFFavorites Account Yes GetFavorites
SSFFavorites Account Yes MoveFavorite
SSFFavorites Account Yes RenameCategory
SSFFavorites Account Yes RenameFavorite
SSFFavorites Report Yes GetURIStats
SSFFavorites Report Yes