SharePoint 2010 服务应用程序(Service Application)架构(1)

简介:

SharePoint 2010认证考试出来之后,去把几个考试都考了一遍:70-57370-57670-66770-668。如果你正有计划也去参加这几门认证考试,我可以提供的建议是:不要在11:30开始考70-668,否则到12:00吃饭的时候,你很可能还没有答完题目。70-668包含不少场景题,也就是给一个场景,包含各种Business Requirements、Technical Requirements、Recovery Requirements之类,然后基于此场景选出最佳方案。阅读并理解场景会花费不少时间。

嗯,言归正传。如果你曾经使用过SharePoint 2007,一定知道在SharePoint 2007中有一个叫做“共享服务提供程序”(Shared Services Provider,简称SSP)的东东。SharePoint 2010对SSP架构进行了优化,设计了一个更灵活、更有扩展性的架构:服务应用程序(Service Application)架构。这几篇博文将围绕Service Application,仔细讲讲这个东东。由于服务应用程序是SharePoint 2010一个非常基础的架构,无论你是Developer,或是IT Pro,都需要对它有足够的了解。

“服务”这个词是一个比较通用的词汇,它可以用在很多场合,在每个场合中,它的含义可能都不会相同。简单来说,当我们使用 服务这个词汇的时候,通常是用来描述某个在后台运行的,可以进行某种运算,或是提供某些数据,能够让它的使用者调用的一组代码。服务的概念与应用程序是相对的,我们通常使用应用程序这个词汇,来描述一个拥有用户界面,用户能在这个界面上进行诸如点击、浏览等操作,大部分情况下可能是运行在客户端计算机里面的一组代码。一个服务的使用者可能是另一个服务或一个应用程序。

上面是对服务这个通用词汇的解释,这个解释在大部分场景中都是适用的。接下来,让我们来了解SharePoint 2010系统中的服务。

SharePoint 2010将其所包含的用来提供某种功能的后端组件,也称为服务。例如,SharePoint 2010包含了Excel Services服务,这是一个能将Excel文档的内容渲染成HTML页面的后台组件。SharePoint 2010的服务运行在SharePoint服务器场中的服务器上。每台服务器,都可能运行了一个或多个SharePoint服务。大部分SharePoint服务,也都可以运行在一个或多个服务器上。

大部分的SharePoint 2010服务,都是运行在服务器场中的应用服务器上,但有些服务也是可以运行在前端Web服务器上的。实际上,SharePoint 2010系统中有一个名为“Microsoft SharePoint Foundation Web 应用程序”的服务,专门用来描述处理用户HTTP请求的前端Web服务,凡是启用了这个服务的物理服务器,就被SharePoint 2010系统识别为前端Web服务器。另外,还有一个名为“Microsoft SharePoint Foundation 数据库”的服务,是专门用来标识SQL Server数据库服务的,它并不代表任何实质上的SharePoint 2010服务,仅仅用来标识在哪些服务器上运行着SQL Server数据库。

在SharePoint 2010管理中心的“服务器上的服务”页面中,管理员可以查看服务器场中的每台服务器上,运行了哪些服务。管理员可以通过这个页面,在每台服务器上启动或停止某个服务。如下图所示。

image

有一部分SharePoint 2010服务,使用了SharePoint 2010的服务应用程序框架(Service Application Framework)来构建。如果一个服务基于服务应用程序框架,那么这个服务可以包含多个可配置服务器场实例(Configured Farm-Scoped Instantiation,简称CFSI)。每一个CFSI被称为一个服务应用程序(Service Application)。服务应用程序运行在服务器场中的应用服务器上,一个服务应用程序可以被服务器场中的多个网站所使用,有一些服务应用程序甚至可以被跨服务器场调用。

为什么在SharePoint 2010中要设计出服务应用程序这套架构呢?其主要原因就在于,在一个大型的企业级系统中,系统中的各种后端服务,必须从网站中解耦了出来。有一些功能,是每个网站都必须要使用,例如,每个网站都需要具有搜索功能,让网站的用户能够搜索内容和数据。如果搜索功能与网站直接耦合在一起,那么每个网站就都会有自己的搜索服务。这不仅增加了整个系统的设计难度,还会造成不必要的系统资源浪费。所以,必然设计出要有某种架构,能将一组所有网站都需要用到的公用服务,从网站中解耦出来。系统中所有的公用服务,都由一个集中的“资源池”来进行提供,而网站只需要存储其自己的数据和内容。当网站需要为网站用户提供某项功能时,网站可以直接调用由集中的服务“资源池”所提供的相应服务。有了这样的架构,不但减少了整体的资源消耗,而且可以让开发人员更容易的向整个系统中添加新的服务。

在Office SharePoint Server 2007中,这个架构被设计成共享服务提供程序(Shared Services Provider,简称为SSP)。Office SharePoint Server 2007中的共享服务,包括企业级搜索、业务数据目录(Business Data Catalog)、Excel Services、用户配置文件(User Profile)等等,都由共享服务提供程序,提供给各个SharePoint网站。值得一提的是,虽然在大部分Office SharePoint Server 2007系统中,只需要为整个系统创建一个共享服务提供程序,但如果有需要,管理员是可以在系统中创建多个共享服务提供程序的。每个共享服务提供程序可以分别提供不同的服务,或是为不同的网站提供服务。

下图是取自微软公司《Office SharePoint Server 2007 的规划和体系结构》在线文档中的一个共享服务提供程序架构示意图。从图中可以看到,整个服务器场中包含了两个共享服务提供程序,其中第一个为“Web应用程序1”和“Web应用程序2”所包含的SharePoint网站提供服务,另外一个为“Web应用程序3”所包含的SharePoint网站提供服务。

image

只所以在一个服务器场中创建两个(或更多)共享服务提供程序,可能是出于性能的考虑,也可能是出于功能分割的考虑。比如,在上图所示的服务器场中,有可能“Web应用程序3”所包含的SharePoint网站并不需要所有的共享服务,它们可能仅仅需要Excel Services服务,而不需要其他的诸如搜索、用户配置文件等服务。所以,在服务器场中新建一个单独的共享服务提供程序,配置此共享服务提供程序仅仅提供Excel Services服务,然后将“Web应用程序3”与这个共享服务提供程序关联。

在Office SharePoint Server 2007中,共享服务提供程序是与Web应用程序进行关联的。一个共享服务提供程序可以关联到多个Web应用程序,也就是说,它可以为多个Web应用程序所包含的所有网站提供服务。但一个Web应用程序不能和多个共享服务提供程序关联。比如在上图中,第一个共享服务提供程序可以与“Web应用程序1”和“Web应用程序2”关联,但“Web应用程序3”是不能同时与服务器场中的两个共享服务提供程序进行关联的。

(待续)





本文转自 kaneb0y 51CTO博客,原文链接:http://blog.51cto.com/kaneboy/388705,如需转载请自行联系原作者

目录
相关文章
|
11月前
|
人工智能 自然语言处理 开发工具
统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
本文介绍统一多模态 Transformer(UMT)在跨模态表示学习中的应用与优化,涵盖模型架构、实现细节与实验效果,探讨其在图文检索、图像生成等任务中的卓越性能。
统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
|
10月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1458 3
|
11月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
1174 0
|
8月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
706 6
|
9月前
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
9月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
1518 0
|
8月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
412 0
|
10月前
|
Web App开发 Linux 虚拟化
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
513 0
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
|
11月前
|
文字识别 运维 监控
架构解密|一步步打造高可用的 JOCR OCR 识别服务
本文深入解析了JOCR OCR识别服务的高可用架构设计,涵盖从用户上传、智能调度、核心识别到容错监控的完整链路,助力打造高性能、低成本的工业级OCR服务。
449 0
架构解密|一步步打造高可用的 JOCR OCR 识别服务
|
10月前
|
机器学习/深度学习 数据采集 存储
技术赋能下的能源智慧管理:MyEMS 开源系统的架构创新与应用深化
在全球能源转型与“双碳”战略推动下,MyEMS作为基于Python的开源能源管理系统,凭借模块化架构与AI技术,助力重点用能单位实现数字化、智能化能源管理。系统支持多源数据采集、智能分析、设备数字孪生与自适应优化控制,全面满足国家级能耗监测要求,并已在制造、数据中心、公共建筑等领域成功应用,助力节能降碳,推动绿色可持续发展。
339 0