PaaS多租户引擎是基于构件化、微内核的SaaS应用系统运行环境,为多租户SaaS软件提供了统一的服务生命周期管理、模块生命周期管理、系统生命周期管理、模块更新管理、系统配置管理、租户数据隔离、数据切换等公共功能。
PaaS多租户引擎实现了SOA和EDA结合的交互模型,具有高度可扩展性,提供了智能装载、卸载、热插拔组件的高级能力,并提供了高级容器级API,提高了应用开发的效率。
PaaS多租户引擎实现了用户、租户、租户系统、组件或系统资源池、数据各层次的独立管理,实现了不同层次的按需组合,从而实现了租户能够根据需要从平台的资源池中选择自己需要的资源,组装成自己的系统,并添加能够访问本系统功能的用户到系统中使用系统。

SaaS核心引擎的关键技术包括:
1、系统管理微内核
提供租户系统统一生命周期管理、配置、更新管理以及系统服务、事务、事件、数据处理、系统完备性维护等公共功能。支持无缝系统升级、动态系统更新,支持系统的的个性化定制和动态组装。
2、服务管理微内核
提供服务统一生命周期管理、配置、更新管理以及事务、事件处理、服务性维护等公共功能。支持无缝服务升级、动态服务更新、服务实时监控、服务负载均衡、维护服务依赖关系。
3、核心引擎规范
PaaS核心引擎定义了功能集、接口、API、事件、事件注册与响应机制、管理规范、约束、内部代码、错误代码、服务方式、链接参数、id生成策略等。PaaS核心引擎规范抽象的定义了SaaS核心引擎的功能和表现,没有规定实现这些规范的技术细节。从而使得PaaS核心引擎成为一个可以更换的标准器件。PaaS核心引擎体系架构图如下。
1)用户管理
所有用户信息由平台统一管理,管理用户的登陆验证(用户名、密码),用户具有唯一标识。这样实现了一个用户可以访问多个系统,管理多个系统。
可以在平台上注册用户,也可以在系统中注册用户。注册信息存储在平台的用户信息表里。为了便于维护ID的唯一性,可以采用Email作为用户的唯一标识。无论是在平台上还是在系统中注册用户,都调用统一的用户注册接口。
平台上管理使用系统的所有用户,用户分为订购者和普通用户。平台只管理用户的基本属性信息,包括用户的登陆名,密码等信息。
为实现租户系统的个性化,可以在租户系统中保存用户的扩展信息,如用户的学历、职称、职务等。
为了满足用户透明的在不同系统之间切换,以及在同一系统的不同模块间切换,需要实现单点登录。
2)租户管理
租户管理主要实现租户信息的统一管理以及和租户系统间的对应关系。一个租户可以租用一套系统或多套系统,一个租户可以包括多个系统的使用者。维护着租户的基本信息及状态,租户的系统个数,租户系统的使用情况及租户和用户的从属关系。
租户可以在租用系统的同时建立租户信息,也可以在平台中独立注册。租户系统的创建者会自动成为该系统的管理员,管理员可以邀请或直接添加本租户系统的用户。
多租户体系结构的实现采用SaaS成熟度模型第三级。第三级的成熟度模型就是multi-tenancy架构,在第三级的成熟度模型中,通过运行一个应用实例来为所有的租户服务,同时通过可配置的元数据来给每一个租户提供不同的用户体验和功能。可配置的安全控制和策略确保了每一个租户的数据被单独存放且与其它租户的数据相隔离。
3)数据路由
CServer PaaS多租户架构采用的是每个租户对应一个逻辑数据库。程序运行实例只有一个,不同的租户使用系统时要动态的切换到对应的逻辑数据库。系统访问对租户是透明的。数据路由是为了解决租户数据源的管理和运行时各租户数据源的动态切换。
每个租户都拥有独立的逻辑数据库,应用程序与租户数据库建立连接,需要有连接定义及属性信息。每个租户都会对应至少一个数据源,所有数据源需要进行管理,管理内容包括数据源连接的建立和缓存等。系统运行时要根据租户的不同动态的切换到不同的数据源上。