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

来源:岁月联盟 编辑:zhu 时间:2003-07-12

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

续前页:

我们目前所面临的三大问题也正是全球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的标准查询界面,以便使其它工具开发人员能够通过与对其它数据存储进行查询时所采取的手段完全相同的方式,对分类情况进行查询。

创建用户界面
一旦您拥有了具备封装特性的对象模型,相关用户界面即可成为Web服务客户端。而其它服务则可在无需用户界面的前提下,实现服务与服务或API与API之间的对等通信。这种XML Web服务实现方式的目标为,像分类服务和分类管理器控制台那样,实现后端代码与用户界面之间的相对独立。而针对分类服务所编写的每项新式XML Web服务则将被分别纳入DBObject层次所属细目。

我们主要应用.NET框架来开发分类管理器控制台。而Microsoft Visual Studio .NET则可帮助我们针对客户端脚本代码和服务器端ASP代码进行同步调试。我们已能够对运行于本地开发计算机和相关服务器上的代码进行遍历。我们还使用JScript和C#为客户端与服务器分别编写了程序代码。

我们在用户界面中广泛采用了XML Web服务。我们无法在客户端上运行C#代码或应用数据集合;这需要将.NET框架内建于所有浏览器当中。而我们通过将XML当作数据传输手段加以应用,从而巧妙地解决了这个问题。我们将根据从相关服务器收到的XML,借助JScript语言绘制用户界面。

GUID使用方法
我们已将每个术语和词汇表分别与特定GUID相匹配。所有对象和文章,无论其内容适用于何种语言,均已借助GUID进行了标记和存储。在此基础上,只要相关内容已利用上述GUID接受过标记处理,查询操作便可同时检索到已经过和未经过本地化处理的信息资料。遍布全球的广大客户可使用其母语执行搜索操作,并将收到以相关语种编写或翻译、并与查询要求相符的全部信息资料。由于这种语言支持已被封装于面向对象的底层结构,因而,具有便于操作执行的明显优势。

XML Web服务
用户界面中的JScript代码主要通过使用WebService Behaviors(Web服务行为)在相关服务器上调用XML Web服务。GET TERMS就是一个典型范例。XML Web服务可激活“术语”对象,而该对象则可激活DBObject和.NET Framework层次,并最终从相关数据库中检索到所需数据资料。

XML Web服务可针对相关数据的XML版本进行检索,并将XML返回至目标客户端。而用户界面则可从XML数据流中生成HTML,并在屏幕上以术语和词汇表树状结构形式将其绘制出来。

第一阶段:完成代码
我们已使用.NET框架、C#、SQL Server和JScript在Microsoft.com上完成了与改进型内容搜索功能相关的基础性工作。作为我们已开发完成的工具,分类管理器控制台将可允许编辑与创作人员就词汇表和术语达成一致,并对其进行填充。在不久的将来,他们还将能够针对可供新型工具实施调用的架构执行验证与存储操作。我们的分类服务对象模型可面向未来的XML Web服务与工具开发工作提供便利条件,从而,使其能够对分类数据实施访问调用,并实现基于当前功能特性的技术扩展。

用于处理术语和词汇表(不久还将包括属性与架构)的分类管理器属于分类服务计划的管理组成部分。在此基础上,所有针对分类技术而新建的XML Web服务都将具备其自身的数据存储,就基本对象模型加以应用的服务相关型对象,以及用户界面。但是,由于每项XML Web服务都将使用被存储在分类管理器中的数据资料,因此,每项新建服务便会为达成搜索与查询目标而实现同既有服务间的无缝化集成。

鉴于我们已拥有了可在站点范围内针对分类结构实施管理的XML Web服务,接下来的步骤就是在Microsoft.com上实现分类结构与全部内容间的集成化目标。我们期望这项XML Web服务可在未来数月内使内容更加便于查询。

专用词汇表
属性:
与某一内容要素相关的描述性信息特征。例如:创作者、创建日期、主题、标题。

概念:构成思想的具体单位,主要由在思维上彼此关联的某些或全部特征形成。这些特征或具体,或抽象;或真实、或虚构。概念主要以抽象实体的形式存在于意识当中,而这些抽象实体则独立于用来对其进行表达的术语。

C#:由Microsoft公司提供的面向对象的现代化编程语言,可帮助程序员迅速创建适用于最新Microsoft® .NET系统平台的多种应用程序。

.NET:Microsoft® .NET是Microsoft公司面向XML Web服务提供的系统平台,这种新一代软件产品可通过兼具统一化与个性化的途径,在信息、设备与人员间实现网络互联。

.NET框架:Microsoft® .NET框架是用于创建、部署和运行XML Web服务及其它应用程序的系统环境。该环境主要由三大部分组成:通用语言运行时、框架类库和ASP.NET。而作为配套基础架构的.NET紧凑型框架则是一系列有助于开发移动设备(如智能电话和PDA)应用程序的编程接口。

标记:通过指定属性值和术语值的方式对内容片断加以描述的处理过程。

架构:符合World Wide Web Consortium定义要求的XSD架构。某一架构可对适用于特定内容对象的内容元数据配置文件和内容模型同时进行定义与检验。

SQL Server:Microsoft SQL Server是一种广泛应用于电子商务、在线商务和数据仓储解决方案的关系型数据库管理与分析系统。

分类:1) 针对事物的描述、标识、命名和归类进行处理的过程,而在我们的开发项目中同,则特指内容。2) 针对域专用概念及其关系的描述。我们的内容分类属于可供内容提供者用来以标准化方式就其内容加以描述的相关资源。这有助于我们以更加整齐划一和快捷高效的方式实现相关内容的生成、管理与提交。

术语:用于阐明某一概念的一个或多个单词。它是词汇表的基本构成元素。

Visual Studio .NET:Microsoft Visual Studio .NET可面向基于Microsoft .NET系统平台的应用程序的创建工作提供全面完整的开发环境。在使用Visual Studio .NET的情况下,开发人员可创建具备安全保障与可伸缩特性的应用程序及Web服务,并在为其赋予前所未有速度的同时,选用相关语种,而且,可以对现有的系统和知识技能加以充分利用。

词汇表:包含单词和短语在内的术语清单或集合,并具备相应的编排、解释或定义。

XML:XML是扩展标记语言的英文缩写,意指基于Web的结构化文档与数据通用格式。XML属于由World Wide Web Consortium负责管理的工业标准协议,是Microsoft .NET技术实现手段中的关键要素。

XML Web服务:XML Web服务是可面向其它应用程序提供数据和服务的应用逻辑单元。应用程序可通过标准Web协议与数据格式(如HTTP、XML或SOAP)针对XML Web服务实施访问调用,其具体途径不受单项XML Web服务实现方式的影响。XML Web服务将基于组件的开发和Web的优点结合在一起,并为Microsoft .NET编程模型奠定了坚实基础。

.NET资源

Microsoft .NET主页
Microsoft .NET开发资源
面向IT专业人员的Microsoft .NET
Visual Studio .NET主页
C#简介与概况