在云计算方面,Salesforce 可谓是业界的领袖,它不仅在产品方面比较成熟,而且在思维方
面也是引领潮流的,特别是在SaaS 和PaaS 这两个领域内。
Salesforce 的整体架构
Force.com 是Salesforce 整体架构的核心,因为它首先整合和控制了
底层的物理基础设施,接着给上层的Sales Cloud、Service Cloud、Chatter 和基于Force.com 的
定制应用提供PaaS 服务,最后那些Force.com 上层的应用以SaaS 的形式供用户使用。这样做
的好处主要有两方面:其一是关于成本的,因为通过这个统一的架构能极大地整合多种应用,
从而降低了在基础设施方面的投入;其二是在软件架构方面,因为使用这个统一的架构可以使
所有上层的SaaS 服务都依赖Force.com 的API,这样将有效地确保API 的稳定性并避免了重
复,从而方便了用户和Salesforce 在这个平台上开发应用。
Force.com 是Salesforce 在2007 年推出的业界第一个PaaS 平台,并且已经有超过47 000
个企业使用了这个平台。Force.com 基于多租户架构,主要通过提供完善的开发环境等来帮助
企业和第三方供应商交付健壮的、可靠的、可伸缩的在线应用。
Force.com 主要有5 方面的功能。
强大的定制功能。在Force.com 中,不仅能够定制UI(User Interface,用户界面),而
且也能定制Workflow 和表格等。
提供完善的开发环境。首先,通过Visualforce 工具能方便地使用拖曳来设计页面。其次,
Salesforce 提供了基于Eclipse 的IDE 来快速开发应用。最后,Salesforce 还提供一个沙
盒来方便用户测试。
支持复杂的事务和流程。通过Force.com 专属的Apex 语言,能方便地设计和开发复杂
的事务和流程。
优秀的整合功能。用户除了可以在AppExchange 购买其所需的功能和应用外,还可以通
过Force.com 的Web 服务接口来和其他应用整合,比如SAP 等。
久经考验的基础设施。由于Salesforce 除了通过在多个大洲建有数据中心来应对灾难的
发生,而且在可用性和安全性等方面也有一定积累,所以Salesforce 能长时间支持众多
服务的正常运行。
多租户的介绍
多租户指的就是一个单独的软件实例可以为多个组织服务。一个支持多租户的
软件需要在设计上能对它的数据和配置信息进行虚拟分区,从而使得每个使用这个软件的组织
都能用到一个单独的虚拟实例,并且可以对这个虚拟实例进行进一步的定制。但是要让一个软
件支持多租户并非易事,因为不仅要对它的软件架构进行相应的修改,而且要对它的数据库结
构进行特殊设计,同时在安全和隔离性方面也要有所保障。
1. 多租户和多用户的区别
多用户的关键在于不同的用户拥有不同的访问权限,但是多个用户共享同一个实例。而在
多租户中,多个组织使用的实例就算是同一个,也会存在一定的差异。
2. 多租户和虚拟化的区别
多租户和虚拟化在概念上比较类似,都是给每个用户一个虚拟的实例,并且都支持定制化,
但是它们作用的层次不同,虚拟化主要是虚拟出一个操作系统的实例,而多租户则主要是虚拟
出一个应用的实例。
多租户技术的优缺点
1. 多租户技术的优点
在优点方面,多租户技术主要在下面这3 个方面具有一定的优势。
经济。因为一个软件实例能被多个组织共享,所以降低了整体资源的消耗,也同时降低
了应用运行的成本和相应的管理开支。
易于更新和开发。因为所有组织都共享同一套核心代码,所以能够让软件更新和开发更
简单。
管理方便。首先,使用多租户架构能减少物理资源和软件资源,这将简化管理。其次,
由于多租户软件主要由有经验的云供应商运营,所以能依赖那些非常有经验的管理人员
来提升效率。
2. 多租户技术的不足之处
和其他技术一样,多租户技术也有一些不尽如人意的地方,具体如下所示。
技术复杂。一个软件需要作大量修改才能支持多租户架构,而且这种修改往往会增加整
个软件在架构方面的复杂性。
不够安全。因为众多组织的应用和数据共享了同一套软件和基础设施,所以如果出现机
器宕机、软件出现问题或者大规模的数据被暴露等情况,将会造成更严重的后果。
常见的多租户模型
在现有的实现中,主要有3 种常见的多租户模型,它们之间的区别主要在于其底层采用的
数据库模式。
1. 私有表
它是最简单的扩展模式,就是为每个租户的自定义数据创建一个新表。优点是简单。缺
点是涉及高成本的DDL(Data Definition Language,数据定义语句)操作,并且它的整合度
不高。
2. 扩展表
总体而言,扩展表比较类似于私有表,但是一个扩展表会被多个租户共享,所以无论是共
享表还是基本表都会有租户栏位。扩展表比私有表有更高的整合度和更少的DDL 操作,但是
在架构上比私有表更复杂。
3. 通用表
通用表主要用来存放所有自定义信息,里面有租户栏位和许许多多统一的数据栏位(比如
500 个)。这种统一的数据栏位会使用非常灵活的格式转储各种类型的数据,比如Varchar。由
于每一行中的数据栏位都会以一个键、一个值的形式存放所有自定义数据,这样通用表的行都
会很宽,而且会出现很多空值,所以通用表这种方式也被称为稀疏列。其好处是具有极高的整
合度并避免了DDL 操作,但是在整体实现方面难度加大。
总体架构
首先,最前面是网关,它将接受所有访问Force.com 的请求,无论它是访问Sales Cloud,
还是关于第三方定制程序的。接下来,网关会根据这个请求所属的租户把请求转发给对应的
POD。那么什么是POD 呢?简单地来说,POD 就是一组集群服务器,每个POD 都运行一整
套Force.com 系统,而且每个POD 支持成千上万个租户。Salesforce 现有10 多个POD 来支撑
它所有服务的运营,并把所有租户平衡地分配给每个POD,而且主要通过建立新的POD 来支
撑新的租户。当POD 收到请求之后,它会先通过其内置的负载均衡器来将请求转发给负载略
轻的应用服务器。为了简化架构和方便伸缩,应用服务器是无状态的,而且在一个POD 内会
有多个应用服务器以应对大规模的请求。最后,当应用服务器在处理请求的时候,如果发现请
求所需的数据没有被缓存的话,应用服务器会调用这个租户所属的共享数据库来取得相关数
据。虽然共享数据库是使用成熟的Oracle 数据库产品,但是在数据库表的设计上为多租户作
了很多优化工作。
元数据驱动
首先,Force.com 的元数据基于大家非常熟悉的面向对象的概念,所以也可以认为元数据
是对象。也就是说,Force.com 是由一个个对象组装而成的,而且Force.com 中的对象可以是表
格,也可以是UI,甚至可以是用户权限等。一个Force.com 的对象和这个对象下面的字段可以
对应一个数据库的表和这个表的列,而且Force.com 对象之间的关系在功能上类似于数据库的
引用完整性约束。但与数据库中每个数据库表都对应于独立的存储地址不同的是,Force.com
使用几个共享的大数据库表来作为堆存储来放置所有对象,而这些存储元数据的表也被称为
UDD(Universal Data Dictionary,通用数据字典)。
接着,是关于应用的。一个在Force.com 上运行的应用实例是通过组合许许多多个对象来
生成的,也可以说一个应用实例是使用元数据来描述的。比如在应用初始的时候,每个客户都
使用同一个版本和同样规模的对象,而且用户通过添加和更新对象来定制应用,比如增加新的
UI 和字段等,同时系统会对共享的和定制的对象进行严格分离,这样既能非常方便地更新共享
代码,也能保证某个用户定制过的部分不会影响到其他用户。在实现上,Force.com 实际上并
没有为一个新对象生成一个数据库表,而是以元数据的形式存储在几张大表中。在运行时,
Force.com 使用一整套引擎分析数据库中的元数据来动态生成一个虚拟应用实例和这个应用所
需的模块,比如公共UI、定制UI 和其他对象等。
还有,虽然元数据驱动这种和Java 很类似的动态生成机制在速度上有天生缺陷,但是
Force.com 也内置有与Sun 的Hotspot 技术有异曲同工之妙的元数据缓存来加速常用元数据的
读取。
应用服务器
元数据缓存。用于存放那些最近用到的和比较常用的元数据,加速应用的生成。
大规模数据处理引擎。主要用来加速处理大量的数据读写和在线事务。
多租户感知的查询优化引擎。这个引擎将通过维护多租户的信息来帮助Oracle 自带的
基于成本的查询优化器更好地适应多租户环境。
运行时应用生成器。这个生成器主要根据用户的请求来动态生成应用,并且利用上面提
到的查询优化引擎来提升效率。
全文检索引擎。在数据库对数据进行更新的同时,这个引擎会异步更新这个数据的相关
索引。
- 大小: 31 KB
- 大小: 37.8 KB
- 大小: 27.2 KB
分享到:
相关推荐
Salesforce销售云是Salesforce公司推出的一款面向销售领域的客户关系管理(CRM)系统,它通过云计算技术为销售团队提供了一个集中管理销售活动的平台,以帮助销售人员提高工作效率,加快销售进程,以及增强团队之间...
- **可扩展性和定制化**:Salesforce AppExchange平台拥有大量预建的应用和集成,满足不同企业的个性化需求。 - **数据安全与合规**:Salesforce遵循严格的全球安全标准,确保企业数据的安全,并符合GDPR等法规要求...
- **简介**:Salesforce 是一款基于云端的客户关系管理(CRM)平台,旨在帮助企业更有效地管理客户、销售、市场营销和服务等方面的信息。 - **入门**:对于初次接触Salesforce的新用户来说,了解基本的操作流程是...
1. **Salesforce平台基础**:这包括对Salesforce云平台的理解,如Sales Cloud、Service Cloud以及Lightning Experience等。考生需要了解平台的基本架构,如对象、字段、记录、视图和报告等。 2. **Apex编程**:Apex...
### salesForce-基本概念 #### 摘要与引言 ...总之,Salesforce的基本概念涵盖了从平台架构到数据管理的一系列关键要素,这些概念不仅构成了Salesforce的核心竞争力,也为其他基于云的应用开发提供了宝贵的参考。
Salesforce 是全球领先的客户关系管理(CRM)平台,它为企业提供了一整套云端服务,用于管理与客户、合作伙伴以及内部团队的关系。本篇文章将深入探讨 Salesforce 的应用架构,主要关注其核心组件、数据模型、定制化...
Salesforce作为全球最大的CRM(客户关系管理)软件服务提供商,与阿里巴巴达成战略合作,计划将Salesforce的企业CRM产品集成到阿里云平台。根据协议,阿里巴巴将成为Salesforce软件在中国的独家提供商,此举有助于...
Salesforce是一家成立于1999年的CRM(客户关系管理)软件服务提供商,其核心产品基于sforce平台,旨在提供随需应变的CRM解决方案。这种模式允许用户避免前期硬件购买和软件开发的大量投资,以及复杂的后台管理问题,...
Salesforce公司的商业模式是软件行业最好的商业模式,通过不断并购整合提升技术和平台能力,丰富产品矩阵,目前产品线包括销售云、服务云、营销云和商业云、平台和其他,形成了向客户提供360度服务的产品体系。...
Salesforce Lightning 是一个现代化的应用开发框架,旨在帮助开发者快速构建响应式的、基于云的企业应用。它提供了丰富的工具集和API,使得开发者能够轻松地创建出既美观又功能强大的用户界面。 #### 二、为何选择...
### window2008搭建云平台相关知识点 #### 一、CloudFoundry云平台概述 - **背景介绍**:CloudFoundry是由SpringSource公司(后被VMware收购)开发的一款基于Java平台的企业级云计算平台。它主要针对的是JavaEE...
**销售力量(Salesforce)**作为全球领先的企业级云服务提供商之一,其提供的Apex编程语言是专门为在其平台上开发应用程序而设计的一种强类型面向对象的语言。本指南旨在帮助开发者了解如何在Salesforce平台上使用...
Salesforce不仅仅是一个CRM系统,它是一个全面的云平台,包含了销售、服务、市场营销、分析以及应用程序开发等多个领域。它的核心价值在于通过云计算技术,为企业提供了一站式的解决方案,实现了数据的集中管理和...
Salesforce的成功在很大程度上归功于其对SaaS业务模式的坚持与创新,以及对PaaS平台的深入挖掘和应用。 首先,Salesforce的称霸之路与其作为“全球SaaS鼻祖”的地位密不可分。在过去的二十年中,尽管Salesforce鲜有...
Salesforce是一个基于云的客户关系管理(CRM)平台,它为各种规模的企业提供了一个强大的工具来管理客户信息、销售、市场推广、客户服务以及企业内部的协作。作为一名IT专家,理解如何设置和维护Salesforce组织对于...
SalesForce的云计算产品方案主要集中在其旗舰产品——Sales Cloud上,这是一个专为销售团队设计的高效、可定制且易于使用的云解决方案。Sales Cloud的核心优势在于它将所有销售相关的活动集中在一个平台上,帮助销售...
这份白皮书深入探讨了 Force.com 架构的设计理念,帮助开发者和IT专业人士理解如何在 Salesforce 的云平台上高效、安全地构建应用程序。 一、多租户应用 多租户架构是 Force.com 平台的核心特征之一,它允许多个...