关于Sharepoint的服务器端对象模型的内容很庞大很繁杂,而事实上,我们在这里只把最关键的对象梳理一下,我们会从三个体系来大致描述它们。

这三个体系分别是:

1、物理对象层次结构(Physical Objects Hierarchy)

2、内容层次结构(Content Hierarchy)

3、服务层次结构(Services Hierarchy)。

希望通过我们的大致描述能让你对Sharepoint的服务器端对象模型能有一个大致的了解。下面进入主题。

 这里先看看物理对象层次结构(Physical Objects Hierarchy)

物理对象层次结构中的类所表示的实体既可以是实际物理对象(SPFarm, SPServer),也可以是根据上下文(Context)被视为物理对象或非物理对象的对象(SPFolder,SPFile)。

下图显示了该层次结构中的四个主要类

它们中最重要的两个类就是Servers与Farms。

Sharepoint Fundation Farm以及它的配置数据库(configuration database)就是由SFarm类来表示的。

Sharepoint的服务器场(Farm)是一个物理服务器集群,包括一个或多个前端服务器(Front-End Web Server),零个或更多的应用服务器(Application Server)以及SQL服务器,SQL服务器可能被寄存在专用的数据库服务器(dedicated database Server,虽然在这种专用数据库服务器上并不安装Sharepoint,但它们仍是Sharepoint场的组成成员,我们可以在Sharepoint场的管理中心界面上看到它们)上或者在其中一个应用服务器上(如:在一台前端服务器上)。 (严格的讲,Windows SharePoint Services 3.0总是部署在场中,虽然有可能它是整个部署环境(场)中唯一的一台计算机。

   SharePoint Foundation 场中的物理服务器具有 IP 地址和角色。以下是 SharePoint Foundation 中的服务器可能具有的三种(或四种)角色:

    1、单一服务器(Single Server):从名称的含义可以得知,当且仅当服务器是场中的唯一服务器时,服务器将具有此角色。

    2、前端服务器(Front-End Web Server):多台服务器都可以具有此角色。前端服务器接受来自客户端计算机的 HTTP 请求。由于前端服务器提供响应这些请求的内容,因此前端服务器上必须运行内容发布 Web 应用程序。

    3、应用程序服务器(Application Server):任何未用作前端服务器或单一服务器的 SharePoint Foundation 服务器都具有应用程序服务器角色(有一种例外情况:见4)。这些服务器运行的是必须从前端服务器卸载的专用 SharePoint Foundation Web 服务或 Windows 服务,这是因为它们需要大量使用服务器的处理器、硬盘或其他硬件资源。SharePoint Foundation 附带了经常卸载到应用程序服务器的一些服务,开发人员可以使用 SharePoint Foundation 对象模型来开发其他服务,并将这些服务作为 SharePoint Foundation 部署的一部分运行。给定的 Web 服务或 Windows 服务可以在多台应用程序服务器上运行。例如,搜索服务可以在多台服务器上运行。每台服务器均具有该服务的单独实例

    4、专用数据库服务器(Dedicated Database Server):上面提到的例外情况是指承载 SQL Server 数据库的服务器。此数据库可以位于任何应用程序服务器上,但通常情况下,如果 SharePoint Foundation 部署的规模大到需要多个服务器场,则此数据库将需要自己的服务器(可能是一个服务器镜像群集)。当此数据库位于它自己的专用服务器(或群集)上时,甚至不会在此服务器上安装 SharePoint Foundation。场的配置数据库中将标识此服务器,并且此服务器会让场以为它正在运行一个称作"Windows SharePoint Services 数据库服务"的服务,而实际上,此服务只是数据库服务器上运行的 SQL Server 服务的别名。此专用服务器上通常不会安装 SharePoint Foundation,并且此专用服务器实际上不具有场中的角色。

关于场的负载平衡问题:

如果Sharepoint场有多台前端Web服务器,那么它们通常都需要负载平衡的(load-balance) 支持。你可以使用硬件支持或软件支持的负载平衡解决方案(包括Windows Server2008内置的网络负载平衡(NLB:Network Load Balancing)方案)。你需要清楚的是:Sharepoint自身并不支持负载平衡解决方案

当使用了负载平衡方案后,系统将会把客户端计算机的传入网络连接指引到场中当时最不繁忙的那一台前端计算机。这样,执行服务的客户端连接的工作负荷将分摊到多台服务器,进而分摊到多个处理器、硬盘驱动器和其他外围设备,从而让客户端获得更好的性能。此外,这样做还有这样一个好处:如果某一台服务器将发生崩溃,则其他服务器还可以继续处理所有传入连接。此时,服务的速度可能会减慢,但服务不会完全停止。

由于场在外部网络中作为单一服务器出现,如果有客户端计算机想要访问场中的某个资源(如: 特定应用程序、文件、数据库或网页),这个客户端计算机不在乎(通常是不知道)它们将与场中的哪一台物理服务器连接,因此必须对客户端可能会连接到的所有计算机进行相同的配置。

完成相同配置的最简单方法是,在所有计算机上安装相同的应用程序并将任何所需文件、数据库和网页的副本放置在所有计算机上(使用相同的目录路径)。不过,由于此方法要求将客户端对文件、数据库或服务器上保留的任何其他项所做的每个更改传播到所有其他服务器,因此几乎不可行。若要确保服务器保持同步,场必须在传播过程中阻止传入连接。由所有传播导致的性能降低会使场应提供的优势不再存在。实际上,甚至于连适度使用的 SharePoint Foundation 部署也会陷于几乎不停地传播更改的状态。 为了避免这些问题,可以为场中的某些服务器分配特殊任务,如承载数据库。虽然客户端连接到的前端服务器不会将数据库复制到它们上面,但仍需对这些服务器进行相同的配置,这是因为这些服务器将使用相同的连接字符串和网络地址来访问数据库。

关于SPFarm类

SPFarm类继承自SPPersistedObject,它代表一台或多台物理服务器组成的场,因此它被包含在物理层次中。

但是它同样可以被认为是内容层次结构(Content Hierarchy)的最顶级; 例如,所有Windows SharePoint Services 场的(非配置)内容都支持备份和恢复。

在Windows SharePoint Services 3.0中,SPFarm类也可以被视作和服务器场相关的配置数据库的代表,因为Windows SharePoint Services 3.0没有代表配置数据库的类。例如,SPFarm对象的   DisplayName属性也是配置数据库的名字。 
  SPFarm对象有三个主要的子类型: SPServer、SPService和SPSolution。
  SPFarm从SPPersistedObject继承,意味着它的对象(只有一个)实例保存在配置数据库中。 
  SPFarm的静态成员能够建立服务器场和返回本地或远程的服务器场。
  SPFarm类有许多成员可以用来开发管理功能,一些更重要的成员可以用来帮助管理,如下:

  • Backup and restoration of the farm(备份和还原服务器场)
  • Upgrades of the farm (升级服务器场)
  • Migration of (moving) the farm(升级服务器场)
  • Error reporting(错误报告)
  • Caching (缓存)

下面是 SharePoint Foundation 场(Farm)的一些特征:

  • 每个 SharePoint Foundation 场都具有一个配置数据库(configuration database),此数据库包含有关场、场的服务器和场的其他重要子类的信息。
  • 场是对象模型的一个级别,可以在此级别安装 SharePoint Foundation 解决方案,也可以从此级别将解决方案部署到服务器和 SharePoint Foundation Web 应用程序(web application)。
  • 场是可从中激活 SharePoint Foundation 功能(feature)的四个级别之一。其他三个级别为网站、网站集和 Web 应用程序。

关于SPServer类

SPServer类在Windows SharePoint Services 场中代表一台物理服务器。

除许多被继承的成员之外,SPServer类有个Address属性,这个属性保存了服务器的IP地址。而SPServer类的Role属性用来分辨服务器角色。 如果只有一台服务器,它的Role为SingleServer。

如果有超过一台的服务器,前端服务器的Role为WebFrontEnd,并且几乎其他所有的服务器的Role为Application。

然而,实际上寄存Windows SharePoint Services内容服务器的服务器Role属性值为Invalid。因为,这个服务器只运行一个Windows SharePoint service-数据库服务(一个Windows服务)-这个数据库服务实际上是SQL Server Windows service的别名,该SQL Server Windows service并不是Windows SharePoint service的一部分。 因此,它实际上并不运行任何Windows SharePoint service代码,并且它对应用程序角色并不适用。
    SPServer类还有一个ServerInstances 属性,可以返回当前服务器上所有的Windows services和Web services的实例.
    SPServer从SPPersistedObject继承,SPPersistedObject的实例都保存在配置数据库中

Sharepoint学习笔记 –架构系列—09 Sharepoint的服务器端对象模型(Server Object Model) 1.物理对象层次结构相关推荐

  1. Sharepoint学习笔记 –架构系列—12 Sharepoint的客户端对象模型(Client Object Model)

    前面过了一下Sharepoint的服务器端对象模型,接下来就让我们大致看看Sharepoint的客户端对象模型(Client Object Model: Client OM). 首先需要了解的就是Sh ...

  2. Sharepoint学习笔记 –架构系列—11 Sharepoint的服务器端对象模型(Server Object Model) 3.服务层次结构

    前面我们看了一下Sharepoint服务器对象模型的物理对象层次(Physical Objects Hierarchy)和对象内容层次(Content Hierarchy)中的相关类,这里来看看服务层 ...

  3. Sharepoint学习笔记 –架构系列—10 Sharepoint的服务器端对象模型(Server Object Model) 2.内容层次结构

    Sharepoint的内容层次结构(Content Hierarchy)包括表示可发布数据项(publishable items),如列表项的类,还包括表示嵌套的数据容器(nested contain ...

  4. Sharepoint学习笔记—架构系列

     为便于查阅,这里整理并列出了我的Sharepoint学习笔记中涉及架构方面的有关文章,有些内容可能会在以后更新. Sharepoin学习笔记-架构系列--  Sharepoint的网页(Page), ...

  5. Sharepoint学习笔记 –架构系列—Sharepoint的客户端对象模型(Client Object Model)

    前面过了一下Sharepoint的服务器端对象模型,接下来就让我们大致看看Sharepoint的客户端对象模型(Client Object Model: Client OM). 首先需要了解的就是Sh ...

  6. Sharepoin学习笔记—架构系列--08 Sharepoint的数据模型(DataModel)、数据管理(Data Management)与查询(Query System)

    Sharepoint Foundation中的首要数据结构就是列表(List), 每个List属于某种List Type,与此类似,每个列表中的列(Column)属于某种FieldType,而每一条列 ...

  7. Sharepoin学习笔记—架构系列—06 Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1

    Sharepoint服务是Sharepoint的重要组成,可以说Sharepoint的许多网站功能都是基于这些服务构架起来的.这里把Sharepoint服务的相关要点总结一下. 1.什么是 Share ...

  8. Sharepoin学习笔记—架构系列--04 Sharepoint的四种执行模型 1

    Sharepoint210有四种执行模型 1.完全信任执行模型(Full Trust) 2.Bin/CAS 执行模型 (1与2都属于场解决方案) 3.沙盒执行模型(Sand Box) 4. 混合执行方 ...

  9. Sharepoin学习笔记—架构系列--03 Sharepoint的处理(Process)与执行模型(Trust Model) 2

    上文我们了解了一个外部Http Request进入IIS 工作进程(W3WP)的处理与执行信任模型,这个阶段是Sharepoint的四种执行模型都必须经过的处理阶段,其中Sharepoint场解决方案 ...

最新文章

  1. iOS限定UITextField的输入格式
  2. 主数据、业务数据、控制数据
  3. 为什么子孙后代会讨厌使用java.util.Stack
  4. linux中怎么测试i o,[linux]linuxI/O测试的方法之dd
  5. python rtsp转换为图片_化异为同,Python 在背后帮你做的转换
  6. 60-100-040-使用-DataSource-介绍
  7. html中radio单选按钮控件标签用法解析及如何设置默认选中
  8. viso 画背景框_手工界新宠:美绝了的浮雕画,揉揉捏捏一幅画
  9. nodejs 从gitlab拉下来后运行爆错解决
  10. 框架-数据库定义MD5加密
  11. 【语音隐写】基于matlab DWT音频数字水印嵌入提取【含Matlab源码 350期】
  12. 【190111】VC+Access工程信息管理系统源代码
  13. [原创工具] SangoExplorer - 《三国群英传》全系列资源浏览器
  14. iOS面试 swift篇
  15. githut 的 管理 使用
  16. 数据科学猫:数据分析的主要类型、描述性分析、预测性分析与规范性分析
  17. python制作音乐播放器_python实现音乐播放器 python实现花框音乐盒子
  18. isfinite函数_isfinite()函数以及C ++中的示例
  19. 【Python】ValueError: Invalid format specifier
  20. android开发网站的流程图,Android_客户端开发流程图及案例.pdf

热门文章

  1. windows下解决pip安装出错问题
  2. Springboot初次学习
  3. [kafka]kafka集群实践
  4. Java笔记(08):面向对象--抽象类
  5. C#递归、动态规划计算斐波那契数列
  6. root 密码丢失后的重新设置
  7. 第八课 RNN条件生成与Attention机制
  8. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第24篇]描述一个二进制m组的滑动窗口指数算法
  9. python3纵向输出字符串_Python 3.x 格式化输出字符串 % format 笔记
  10. html字体变大自动换行,网页css中实现字符超出宽度自动换行和英语字符不断行的解决方法...