当前位置:编程学习 > C#/ASP.NET >>

微软站点内幕:分类管理器(转自微软X档案)

答案:

分类管理器:面向内容查询提供便利的新型软件工具

前页

我们目前所面临的三大问题也正是全球Web巨头们亟待解决的症结所在,这一点有据可查、毋庸置疑。这三个问题分别为:1) 不易查询的内容;2) 纷繁复杂的标准;3) 有限的内容重复利用率。而我们则正在努力将分类服务计划付诸实现,以期克服上述障碍。

不易查询的内容
在Microsoft.com上,只有约10%左右的相关内容接受过旨在为内容分类与定位提供辅助手段的标记处理。而其余90%的内容就不那么容易接受搜索了。搜索引擎必须对数以百万计的与未经标记处理之内容相关的术语生成索引,而这恰恰是一种具备较高资源占用水平的处理过程。只有在极少数情况下,我们才能够以动态方式提供相关内容。也就是说,我们的系统是将其作为针对用户交互操作的直接响应而予以生成的。然而,我们却无法针对动态内容执行索引和搜索操作,其原因在于,我们所执行的仅限于全文本索引搜索。在使用全文本索引搜索的情况下,系统只能就某一搜索术语对全部文件进行扫描。而动态内容则只有在某一用户提出相关请求时方可得以生成,因此,便不存在可将搜索术语同特定URL相关联的实现途径。

标准多样性
在Microsoft公司内部,各集团所适用的内容标准互有差异。例如,白皮书的格式、“常见问题解答”所应包含的信息或左侧导航页面的组织形式。在许多情况下,独立内容提供者将决定有关片断的内容与格式。而一般情况下,总会有数以百计的内容提供者同时为Microsoft.com供稿。

分类管理器(Taxonomy Manager)将允许内容提供者在所有可预见的消耗性服务之间对相关标准进行定义、管理和共享。(消耗性服务可能包括下载服务、产品目录或在线存储。)而我们所面临的核心问题则体现为,不易查询的内容简直汗牛充栋。我们的长期解决方案旨在创建一项可帮助本公司针对全局适用模板进行定义与维护的服务,并在此基础上,为借助标准词汇表而执行的内容生成与索引操作提供便利。

鉴于我们的数据资料大多处于非结构化状态,因此,执行搜索操作的客户将有可能收到无助于解答问题的冗余内容,甚至根本无法收到任何相关内容。在使用分类管理器的情况下,我们将可更好地为客户滤除无关信息,并检索到符合其特定需求的内容资料。而实现上述目标的方法之一,便是就标准词汇表和术语加以实现。

内容重复利用
分类管理器将在XML架构中进行标准定义。而有关内容一旦与上述架构相匹配,内容创作与编辑人员便可在无须揭开标识的前提下,对相关内容加以重复利用。举例来说,产品信息将可出现在具备相关目录标识的产品目录当中。而完全相同的信息还可被重复显示于具备MSDN标识的MSDN编录,或具备TechNet标识的TechNet编录。由于相关内容片断使用由全部三个站点所共享并认可的同一定义,因此,能够在无需进行额外开发工作的前提下得到重复利用。

分类管理器将有助于解决不易查询内容、标准多样性和内容重复利用这三大难题。一支编辑标准团队将负责借助分类管理器来定义可供编辑与撰稿人员使用的词汇表和术语标准模板。随着越来越多的Web内容与由分类管理器所实现的新式标准及模板相兼容,广大客户便可更加快捷地针对所需内容进行定位。而创作与编辑人员则可就便于其重复利用的相关内容实施定位。分类管理器既可将内容存入数据知识库、并配以相关标记,又可通过特定服务实现其在内容配置文件中的登记注册,还可将其存入使用公认XML架构的外部数据库。

内容的查找与重复利用
分类管理器的核心构件是概念。概念具有唯一性,并以全局唯一标识符(GUID)为标记。

与上述概念相关的术语主要因语种而异。举例来说,英文单词“head”、西班牙语单词“cabeza”和德语单词“Kopf”均指代同一概念:就是您肩膀上扛着的那个东西。尽管术语在国与国之间有所区别,但都可被解析为同一GUID。而属于相同语种的一组术语则将被归纳为一个标准词汇表。

从眼前的观点来看,我们正在从指向已生成词汇表的全局定义属性中开发用以组建架构的软件工具。

当某一用户输入一个特定字符串(例如,以其母语所表示的术语)时,搜索服务将把该字符串与可供分类管理器访问调用的其它字符串进行对比分析。如果搜索服务找到了彼此匹配的字符串,那么,相关字符串就会被解析为GUID。

搜索功能可通过两种方式中的任意一种查找到使用特定术语进行标记的相关内容,这主要取决于由域专用服务所实施的功能特性。
  • Concept ID可被进一步解析为其所归属的词汇表,对相关词汇表加以应用的属性,将相关属性包含在内的架构,以及适用相关架构的域专用存储。分类管理器可在此基础上,将结果集合(包括术语、属性、词汇表、架构以及可为这些对象提供支持的服务在内)返回给正在发出请求的服务。而正在发出请求的服务则可就上述信息予以提交,以便使最终用户得以就所需信息对相关服务执行查询操作。
  • 如果某一域专用服务具有已在集中配置文件存储中进行过登记注册的数据实例,那么,搜索功能便可简便快捷地对其执行访问调用与搜索操作。配置文件存储库保持着核心元数据,它是内容可能或必须包含的一系列公认属性。例如,一个下载构件就必须将以下元数据包含在内:
    • Download ID = XXXX
    • Title = Windows XP更新
    • •Product = Windows XP更新版
    • •Product GUID = c97ffdc7-3d51-4bc4-ab4b-94a2e563fb96
    • •Description = 如何从…中实现系统更新
    • •Date Created = 2001年10月29日

当分类管理器将相关术语解析为词汇表、属性和架构时,针对配置文件存储所执行的搜索操作还将以快捷方式提供与已借助相关GUID进行过标记处理的全部内容相对应的具体位置。

分类管理器技术内幕
我们所开发的分类管理器由三部分组成:SQL Server数据库、.NET API和用户界面。我们主要通过将XML、C#和JScript联合使用的方式来编写API和用户界面。

图1:分类管理器体系结构简图
我们主要借助.NET API将用户界面与数据存储分隔开来。围绕分类技术所制定的业务规则将被封装在.NET API和数据存储之间。用户界面包含有适用于具备数据消耗性之分类管理任务的附加业务规则。而我们所开发的分类管理器则可帮助用户界面以同步方式汇聚信息,并与不同Web服务进行交互操作。

SQL Server数据库
我们实施了一个基本型SQL Server数据库,以便对数据、术语、词汇表、属性及架构加以存储。在后续版本中,词汇表将被解析为属性,而属性则可被存储于架构之中。下表阐明了术语、词汇表和属性在理论型“客户地址架构”中的具体使用方式。

图2:理论型“客户地址架构”中的示例分类要素
下表可帮助您对上述架构要素在理论型“客户地址架构”中的相互关系加以掌握。

图3:经过简化的“客户地址架构”
.NET API
通过对C#所具备的改进型面向对象功能加以应用,我们已成功编写出可同时对存储于数据库内外的数据资料实施访问调用的对象模型和XML Web服务。而这个分类管理器的.NET API组成部分则可针对其它XML Web服务(尚未创建完成)的使用对分类标准实施管理。

分类管理器可针对与数据知识库及其它需要耗用分类数据之XML Web服务相对应的具体位置进行登记注册。该软件工具所配备的服务注册表可列示出相关Web服务,而分类管理器则可为这些对象提供与最新术语、词汇表、属性及架构相关的更新服务。不仅如此,XML Web服务还可同分类管理器保持联系,以确保内容片断与在数据库中所定义的规则相匹配。

用户界面
我们的用户界面是通过使用Jscript而开发出来的,并可借助Web服务(ASMX)和.NET API与对象模型进行通信。

图4:分类管理器用户界面(点击上图可查看放大图像
用户界面(或称之为控制台)可帮助任何人就分类规则进行查看,并允许指定人员对分类规则实施管理。将安全特性纳入用户界面不仅十分必要,而且,还是我们所面临的一项最为艰巨的任务。

通过在企业域上针对Active Directory执行用户名查询操作,我们将可实现相关用户角色的身份验证。用户角色将根据正在接受管理的相关角色和对象就可供访问调用的控制台要素加以确定。举例来说,本地化管理人员可在分类管理器中运用美国英语之外的任何语言对术语值进行编辑和翻译。而全局管理人员则不具备上述权限,因此,“编辑”按钮将无法供这种角色使用。针对上述规则所实施的改进增强对存储于分类管理器中的数据完整性来说,具有十分重要的意义。

对象模型重复利用
我们目前尚处于附加XML Web服务的编制过程。在这个过程中,我们将采用分类服务对象模型,并围绕该模型创建可供执行特定任务的远程XML Web服务封装器。举例来说,我们针对全部数据创建了名为Iquery的标准查询界面,以便使其它工具开发人员能够通过与对其它数据存储进行查询时所采取的手段完全相同的方式,对分类情况进行查询。

创建用户界面
一旦您拥有了具备封装特性的对象模型,相关用户界面即可成

上一个:GNU通用公共许可证(GPL) --中文(转贴)
下一个:.net能做什么1?(转)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,