Sharepoint学习笔记—习题系列--70-576习题解析 -(Q4-Q5)

Question 4
You are designing a SharePoint 2010 application to store 50 GB of digital assets, including audio and video files that are up to 20 MB in size. You have the following requirements:
.The disk storage system must use standard hard drives and must be configured to optimize read performance.
.The SharePoint 2010 database uses Microsoft SQL Server Express 2008.
.The application must leverage standard SharePoint 2010 components to limit the requirement for custom development. You need to design a storage solution that meets all of these requirements.
Which approach should you recommend?
A. Enable FILESTREAM storage for a Microsoft SQL Server Express 2008 database on a RAID 0 disk system. Then install and configure remote Binary Large Object (BLOB) storage in SharePoint 2010.
B. Store the assets directly in Microsoft SQL Server Express 2008 and create multiple content databases on a RAID 0 disk system.
C.  Install and configure support for external BLOB storage for SharePoint 2010 and use the
ISPExternalBinaryProvider interface to manage files on a RAID 0 disk system.
D. Install and configure support for external BLOB storage for SharePoint 2010 and configure a Microsoft SQL Server Express 2008 database to store BLOBs on a RAID 5 disk system.

解析:
本题意在实现Sharepoint的RBS。
实现环境是: SharePoint 2010, Microsoft SQL Server Express 2008。
一、RBS 简介:
在 SharePoint Foundation 2010 中,二进制大型对象 (BLOB) 是存储在数据库中的大型数据块,这些数据块的大小和位置(而非结构)是已知的(例如,Microsoft Office 2010 文档或视频文件)。默认情况下,这些 BLOB(也称为“非结构化数据”)将与关联的元数据或非结构化数据一起直接存储在 SharePoint 内容数据库中。由于这些 BLOB 可以非常大,因此,将 BLOB 存储在内容数据库外部可能会更好。
BLOB 是不可变的。相应地,必须为 BLOB 的每个版本存储新的 BLOB 副本。因此,随着数据库使用率的增加,其 BLOB 数据的总计大小可能会快速增长,并超过在数据库中存储的文档元数据和其他结构化数据的总计大小。BLOB 数据会占用大量空间并将使用针对数据库访问模式优化的服务器资源。因此,将 BLOB 数据从 SQL Server 数据库移出到商品或内容可寻址的存储会很有帮助。为此,可以使用 RBS。
RBS 是一个 Microsoft SQL Server 库 API 集,并已合并为 Microsoft SQL Server 2008 R2、SQL Server 2008 或 Microsoft SQL Server 2008 R2 Express 的外接程序功能包。RBS 功能使应用程序(例如,SharePoint Foundation 2010)能够将 BLOB 存储在内容数据库外部的某个位置。在外部存储 BLOB 可降低对 SQL Server 数据库存储空间的需求量。每个 BLOB 的元数据库存储在 SQL Server 数据库中,而 BLOB 存储在 RBS 存储中。
SharePoint Foundation 2010 使用 RBS 功能将 BLOB 存储在内容数据库的外部。SQL Server 和 SharePoint Foundation 2010 以每个数据库为基础,共同管理数据库记录与 RBS 外部存储的内容之间的数据完整性。
二、RBS 由以下组件构成:
1.RBS 客户端库: RBS 客户端库包含一个对 BLOB 存储与 Microsoft SharePoint Foundation、SQL Server 2008 Express 和 RBS 提供程序组件进行协调的托管库。
2.远程 BLOB 存储提供程序: RBS 提供程序包含一个托管库以及可选的一组与 BLOB 存储进行通信的本机库。
RBS 提供程序的一个示例是 SQL FILESTREAM 提供程序。SQL FILESTREAM 提供程序是 SQL Server 2008 Express 的一个功能,它通过结合使用 SQL Server 2008 Express 和 NTFS 文件系统,允许存储并高效地访问 BLOB 数据。【本题答案的依据之一】
3. BLOB 存储
BLOB 存储是用于存储 BLOB 数据的实体。它可以是内容可寻址的存储 (CAS) 解决方案、支持服务器消息块 (SMB) 的文件服务器或 SQL Server 数据库。
三、RBS 提供程序
RBS 使用提供程序 连接到使用 RBS API 的任何专用 BLOB 存储。SharePoint Foundation 2010 通过此类提供程序来使用 RBS API,从而支持可访问 BLOB 数据的 BLOB 存储实现。有两种类型的 RBS 提供程序:本地和远程。
1.本地 RBS 提供程序
本地提供程序将 BLOB 存储在数据库外部,但仍存储在运行 SQL Server 的相同服务器上。您可通过使用本地 RBS FILESTREAM 提供程序将提取的 BLOB 数据放置在不同的(即,资源利用率较少的)本地磁盘上来节省资源。由于 BLOB 与元数据存储在相同的文件组中,因此可以使用 SharePoint Server 2010 功能,例如,管理中心的备份和还原功能。
RBS FILESTREAM 提供程序使用 SQL Server FILESTREAM 功能将 BLOB 存储在附加到同一数据库并存储在本地服务器上的其他资源中。FILESTREAM 功能可使用基础 NTFS 文件系统管理 SQL 数据库中的 BLOB。
重要::本地 FILESTREAM 提供程序仅在用于本地硬盘驱动器或连接的 Internet 小型计算机系统接口 (iSCSI) 设备时才受支持。无法在远程存储设备(如网络附加存储 (NAS))上使用本地 RBS FILESTREAM 提供程序。
2.远程 RBS 提供程序
远程 RBS 提供程序将 BLOB 存储在单独的服务器上。这通常位于数据库服务器所在的同一网络的其他卷上。
现在回到选项:
A. Enable FILESTREAM storage for a Microsoft SQL Server Express 2008 database on a RAID 0 disk system. Then install and configure remote Binary Large Object (BLOB) storage in SharePoint 2010. 由上面的描述我们知道,RBS 提供程序是实现RBS 的必要组件,则 使用SQL FILESTREAM 提供程序是 SQL Server 2008 Express 的一个功能。而且本题就是要使用BLOB技术实现存取视频,音频数据的。所以符合本题要求。

B. Store the assets directly in Microsoft SQL Server Express 2008 and create multiple content databases on a RAID 0 disk system. 直接把二进制大型对象数据存放到Microsoft SQL Server Express 2008中显然不可行,且不说性能如何,但就Expression版本的4G的容量限制就已经有充足的理由来排除本选项了。
 C.  Install and configure support for external BLOB storage for SharePoint 2010 and use the
ISPExternalBinaryProvider interface to manage files on a RAID 0 disk system. 这里涉及到了ISPExternalBinaryProvider接口,它是干什么的呢? 我们知道对于 SharePoint Foundation 中的结构化数据而言,SQL Server 是一种高效的资源管理器。SQL Server 提供快速而高效的 SQL 查询引擎和非凡的基于查询的结构化数据检索。然而,问题在于 SQL Server 不是用来存储非结构化二进制数据流的最佳选择,原因是非结构化二进制数据不会将自己公开给丰富的 SQL 查询环境。解决方法是使用简单且经济有效的存储介质来充当外部 BLOB 存储 (EBS)。EBS 与网站的 SQL Server 内容数据库并行运行,此内容数据库存储网站的结构化数据。若要协调这两类数据存储,则必须实现 COM 接口 (ISPExternalBinaryProvider),该接口使用简单的语义来识别文件的 Save 和 Open 命令,并在识别 BLOB 数据流时发起对 BLOB 存储的重定向调用。 所以EBS 提供程序的核心是 ISPExternalBinaryProvider 接口,您必须实现该接口才能编写自定义提供程序。有了提供程序,也就可以去实现访问BLOB数据了。因此,本选项也可以达到本题的目的。但问题是,本题在题*分提到:must leverage standard SharePoint 2010 components to limit the requirement for custom  development (即:尽量少的开发工作)。所以相比选项A而言,本选项只能排除掉了。
   
D. Install and configure support for external BLOB storage for SharePoint 2010 and configure a Microsoft SQL Server Express 2008 database to store BLOBs on a RAID 5 disk system. 本选项试图脱离RBS的基本组件即: RBS 提供程序去实现BLOB的存取,显然是不正确的。

因此本题答案应该选 A
参考 
http://msdn.microsoft.com/zh-cn/library/bb802811(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/bb802812(v=office.14).aspx

http://msdn.microsoft.com/zh-cn/library/bb862195(v=office.14).aspx
http://zh.wikipedia.org/wiki/RAID

Question 5
You are designing a SharePoint 2010 application that stores information about each machine in a factory. This information includes an inventory (库存量)of parts, the machine’s maintenance history, and a document library of repair manuals for each machine in Microsoft Word format. The application must:
.Establish links between the factory machine data, the machine part inventory, the maintenance history, and the repair manuals to allow the display of additional fields from the other lists.
.Enforce relational integrity between the data to create custom views for various business users.
.Allow nontechnical users to update the individual list data and views, as well as to update the manuals.
.Enforce relationships that allow cascade deletes of items from the machine parts list when items are deleted from the machine list, but prevent data in the machine parts list from being orphaned. You need to design a data
access plan that meets all these requirements and allows all data to be managed within the SharePoint 2010 system.
Which plan should you recommend?
A. Create tables in Microsoft SQL Server for each set of inventories. Create relationships with primary and foreign keys linking the tables. Use Business Connectivity Services (BCS) to connect SharePoint 2010 lists to these tables to manage the data.
B. Create tables in Microsoft SQL Server for each set of inventories. Create relationships with primary and foreign keys linking the tables. Store machine part manuals in a SharePoint document library and use event receivers to synchronize data in the lists and libraries.
C.  Use SharePoint 2010 lists and document libraries to store data. Create relationships using lookup fields and relationship joins between the lists and document libraries.
D. Use SharePoint 2010 lists and document libraries to store data. Create a custom workflow to update information in the lists and document libraries.
 
解析:
  本题题意是讲你想通过Sharepoint管理一家工厂里的各台机器,每台机器涉及的信息包括:此机器相关配件及其库存量(好安排维护),机器的维护历史记录,机器的维护说明书(是Word格式,存放在文档库中)。
  要求:
  1.在上述几类信息之间建立联系,以便在查阅其中某类信息时看到其它相关信息。
  2.可以根据不同的用户提供不同的信息视图,即:开放不同的信息给对应的用户。
  3.允许普通用户参与到各类信息的维护和更新工作中来
  4.如果从机器部件列表中实现级联删除,即当删除某台机器的组成部件时,其在此台机器中的相关信息也要自动删除掉。但要防止出现因删除产生的垃圾数据( 即产生失去了关联关系的数据)。
    涉及到数据表,表间关系,级联删除。看到这些概念自然就会想到SQL数据库上去了。的确,我们可以在SQL数据库上创建各类表并进行表的各种操作,但本题有几大要点:1.是要基于Sharepoint环境实现。2.要在Sharepoin环境中根据不同的用户提供不同的信息视图。 3.要允许不懂计算机技术的普通用户有能力修改你存储的各类信息。因此,如果你手工在SQL数据库中创建上述诸表,并根据Sharepoint中的不同用户开放不同字段信息以及提供非技术人员维护表内数据的能力就很难实现了。所以,基于Sharepoint的列表实现是基本层面,由此选项A.B就直接可以排除了。
     我们知道Sharepoint的列表有视图功能,其文档库有存放各种格式的文档的功能,并且它们均直接支持普通用户对列表项的修改能力。所以,利用Sharepoint的List我们可以满足本题的要求 2和要求3.
    至于要求1和要求4:
Sharepoint2010允许你在同一网站集内的列表之间建立联系,这一联系是通过”查阅字段(Lookup Fields)”来实现的。在 Microsoft SharePoint Foundation 中,查阅字段是配置为从其他列表中的字段获取其值的字段。将查阅字段添加到列表会在该列表和提供数据的列表之间建立一种关系。
如何引用这两个列表取决于您所依据的角度。从查阅字段的角度来讲,提供数据的列表是目标列表,作为数据来源的字段是目标字段。从目标列表的角度来讲,包含查阅字段的列表是相关列表。查阅字段本身是相关字段。为简单起见,并为了防止混淆,有时称这两个列表具有父子关系。子列表具有查阅字段。父列表具有数据源,即作为查阅字段目标的字段。
在 Microsoft SharePoint Foundation 2010 中,您可以在子列表中配置一个查阅字段,以便它在父列表中的项上设置删除约束。当您通过用户界面创建或编辑查阅列时,可以选择“强制关系行为”。如果选择此选项,则随后可以选择“限制删除”或“级联删除”。限制删除 可防止在子列表中的一个或多个相关项引用父列表中的项时删除该项。如果使用级联删除,则从父列表中删除某个项会导致子列表中的所有相关项也被删除。
删除约束的目的是强制实施引用完整性。在不希望包含查阅字段的项目因指向目标列表中不存在的项目而成为孤立项时,可应用约束。
例如,假定您有两个列表:“客户”和“地址”。您决定通过将名为“客户 ID”的查阅字段添加到“地址”列表,并将该查阅字段指向“客户”列表中的 ID 字段,来将这两个列表相关联。配置了此查阅后,通过指定“客户”列表中的删除必须与“地址”列表级联,可以对这两个列表之间的关系设置约束。选择级联删除可通过确保“地址”列表不会通过收集孤立的地址来强制实施引用完整性。从“客户”列表删除项目时,相关项目将从“地址”列表中自动删除。
假定您还有一个“待定订单”列表,和“地址”列表一样,通过指向“客户”列表中 ID 字段的查阅字段关联到“客户”列表。对于在“待定订单”列表中有待定订单的客户,您可能不希望其客户记录从“客户”列表中删除。在这种情况下,可以通过在“待定订单”列表上配置查阅字段来限制其“客户”父列表中的删除,以实现引用完整性。
通过上面的描述,我们就找到了本题的答案,即选项 C 即利用列表和查找字段实现本题的要求。
至于选项D:
Use SharePoint 2010 lists and document libraries to store data. 这一步没问题。
Create a custom workflow to update information in the lists and document libraries. 工作流无法实现表之间的关联显示以及各表列表项的单独维护。

因此本题答案应该选C       
参考 
http://msdn.microsoft.com/zh-cn/library/ff798514.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfieldlookup.relationshipdeletebehavior(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/ff623048(v=office.14).aspx

上一篇:快速构建Windows 8风格应用15-ShareContract构建


下一篇:快速构建Windows 8风格应用10-设备方向