1.1 智慧城市基座功能建设方案 针对河南智慧城市县(区)域公共服务平台 ,在现有IaaS层基础上,提供PaaS层平台能力,支撑河南智慧城市应用建设,提供的平台包括: (1)应用中台:提供用户中心、GIS引擎、工作流引擎、报表引擎、API总线、任务调度引擎、规则引擎、网格平台、配置管理等通用应用能力引擎。 (2)数据中台:提供数据资产门户管理、数据接入、数据清洗转换、数据建模、数据开放管理、数据治理管理、数据血缘管理、数据安全管理、数据运维管理、大数据分析平台等综合数据管理能力; (3)智能中台:即城治视频AI识别,一体机形式,能够提供视频计算、存储、虚拟化、数据库、接流、视频分析、搜索、AI算法等功能,支持城市治理场景下的视频图像认知理解; 1.1.1 应用中台应用中台主要包括能力引擎层、通用业务组件层、应用配置组件层、应用服务、样例应用;能力支撑域包括微服务环境层和运营管理层。总体功能架构如下图所示: 能力引擎层:提供了应用中台内置的通用引擎能力,包括GIS引擎、工作流引擎、任务调度引擎、报表引擎、用户中心引擎及规则引擎。基于基础服务引擎中的各种能力,能够快速支撑各层级、各部门、各应用的快速高效的搭建,有效降低应用构建成本,全局提高应用建设质量。 通用业务组件层:提供通用业务属性的组件服务能力,包括用户中心、认证中心、API管理服务。满足用户自身业务场景下,为满足业务协同提供技术支持。 应用配置组件层:以页面化的配置手段,快速构建定制化的业务需求,包括:大屏展示配置平台、电子表单配置、业务规则管理能力,可以满足灵活多变的前端业务展示及业务规则配置场景。 应用服务:提供通用应用和基础应用两类服务能力,包括:短信服务、存储服务、日志服务、站内消息服务、数据字典服务和配置服务,客户可以直接使用应用中台提供的应用服务适配到业务系统中,满足相关应用的对基础服务的快速适配,集中管理,减少重复建设。 开发者门户:为研发人员能够快速了解和上手使用应用中台的能力,提供了知识库、客户工单和样例应用服务,用户可以通过该门户快速了解应用中台,并可使用样例应用快速构建业务。降低应用中台的学习成本,建立标准化的开发习惯。 微服务环境层:微服务环境层将多种能力引擎所提供的服务统一进行汇聚后,以标准的服务方式对外提供服务,包括接口服务及应用服务两种形式。同时在对外提供服务的过程中,统一服务网关平台还提供了安全认证、流量控制、负载均衡等多种增值服务,即有效保障了全局服务的统一与一致,又保障了服务的安全与管控,同时,服务管理提供对外提供服务注册能力,从而有效保障了应用中台能力的不断扩展。 运维支撑层:为保证中台产品在交付和售后过程的服务质量以及产品自身稳定性,提供产品运维支撑服务,通过可视化、配置化的方式,保证产品可用性。 1.1.1.1 服务网关伴随着多种通用服务能力从单体信息化系统中剥离,形成能够独立提供服务的服务引擎,如何保障多种服务引擎能够有效的对信息化系统提供服务成为一个核心问题。统一服务网关平台能够将多种类型的服务形式封装成为统一的服务以供上层应用使用。同时,通过权限控制保证所有的服务能力只能被具备授权的应用调用,通过流量控制、容错保护功能保障底层服务的可用性。 统一服务网关平台功能架构如下图所示: 1.1.1.1.1服务发布各服务引擎在统一服务完成注册后,将提供服务的类型、服务IP及端口号进行发布,统一服务网关平台对各个服务的能力进行封装及适配,形成标准的服务接口后,向上层信息系统提供统一一致的服务能力。通过统一服务网关平台的功能,各个信息系统在建设过程中不会再陷入与多个应用、多种类型的服务、不同形式的接口进行对接的问题,只要保证与统一服务网关平台保持对接,即可调用多样的服务引擎能力。 1.1.1.1.2应用代理服务对于某些服务引擎,在提供服务接口能力的同时,也提供基于页面或直接能够面向最终用户的应用服务能力,因此统一服务网关在提供API服务整合的同时,也提供应用代理服务。通过应用代理服务,各种后端服务引擎的嵌套页面、后台管理能力页面均可通过统一服务网关平台对外发布服务。 通过应用代理服务代理后,各个信息系统能够统一使用各服务引擎的页面嵌套能力与后端管理能力,从而有效解决与多个后端服务能力对接所产生的巨大工作量与维护难度。 1.1.1.1.3负载均衡对于存在多个服务实例的服务引擎,统一服务网关平台能够依据轮训、权重、最近使用等等多种轮询算法对服务进行分配。 1.1.1.1.4容错保护在微服务架构中,由于将单体应用进行服务拆分,各服务之间功能尽可能保持单一职责,然而在响应用户请求结果时,常常是通过众多服务互相调用形成的,由于每个单元都运行在不同的进程中(不同的微服务),服务依赖之间通过远程调用方式进行,这样很有可能因为网络原因或者微服务本身故障出现调用延迟,而这又会导致调用方出现延迟,此时,如果用户请求不断增加,极有可能出现过多的服务调用方等待,一个服务占用一个线程,线程过多可能导致服务器崩溃,造成严重的后果。 通常把因服务容错性不好,由于某一服务出现问题引起大量用户请求等待,导致服务器宕机的情况称为“雪崩效应”。比如:单点登录服务调用用户信息服务查询用户信息,由于用户信息服务无法提供服务导致单点登录服务一直等待,从而导致用户登录、用户退出功能无法使用,像这样由一个服务所引起的一连串的多个服务无法提供服务即是微服务的雪崩效应。 为了防止“雪崩效应”,必须提供一个容错机制,当调用延迟超过一定时间时,可以采取一定措施处理,而不是让其一直处于等待状态,简单来说,该机制主要实现点如下: 为网络请求设置超时时间,主要是防止因服务故障或网络延迟导致请求堆积,占用服务器资源; 使用断路器模式,当调用出错或者超时,服务可以将此请求标记为失败,给调用方返回信息提示,即调用失败处理方法。熔断机制可以很好理解,与家里的电路熔断器类似,一旦电路发生短路,立即切断电路,保护系统安全。 1.1.1.1.5访问鉴权访问鉴权功能为接口及应用的调用提供了鉴权的能力。只有具备权限的用户及信息系统才能有效调用接口及应用。访问鉴权一方面保障了接口的安全使用,另一方面由于各应用系统使用自有token对接口进行调用,因此访问鉴权也是访问统计及基于用户进行访问控制的基础手段。 1.1.1.2 服务治理服务治理主要是为多个服务引擎提供服务注册、服务查询的管理。 在服务引擎服务的过程中,包含三类角色:服务提供者,服务注册中心,服务消费者。 服务提供者:即服务引擎,作为服务的提供方将自身的服务信息注册到服务注册中心,信息包含:隶属于哪个系统、服务的IP/端、服务的请求URL、服务的权重等等。 服务注册中心:服务注册中心主要提供所有服务注册信息的中心存储,同时负责将服务注册信息的更新通知实时的Push给服务消费者。也支持服务的停用。 服务消费者:服务消费者主要职责包括: a) 从服务注册中心获取需要的服务注册信息; b) 将服务注册信息缓存在本地; c) 监听服务注册信息的变更,如接收到服务注册中心的服务变更通知,则在本地缓存中更新服务的注册信息; d) 根据本地缓存中的服务注册信息构建服务调用请求,并根据负载均衡策略来转发请求; e) 对服务提供方的存活进行检测,如果出现服务不可用的服务提供方,将其从本地缓存中剔除,服务消费者只在自己初始化以及服务变更时会依赖服务注册中心。在整个服务调用过程中,服务消费者不依赖于任何第三方服务。 1.1.1.2.1服务注册服务注册功能为各个外部服务引擎提供服务注册的能力,服务注册功能将所有服务的服务信息进行记录后,形成一张服务清单。同时各个注册服务会向服务注册中心定时发送心跳。当某个服务引擎发生异常时,服务注册中心会将该服务从可用服务列表中去掉,以保证所有服务列表中的服务可用。 服务注册分为以下步骤: (1)服务注册,服务引擎将自己的服务能力提交给注册中心,注册中心进行记录。 (2)心跳保持,服务引擎定期发送心跳消息至服务中心,服务中心依据心跳消息随时跟踪服务能力的可用性。 1.1.1.2.2 服务发现当各种服务能力引擎在服务管理平台中完成注册后,服务发现功能实现了将这些服务能力对外发布的能力。当各种信息化系统建设的过程中,需要使用到各种服务引擎的服务能力时,需要先在服务管理平台中查询服务能力列表,并申请获取服务能力地址,之后才能够使用该服务引擎提供的服务能力。这个过程称为服务发现。所有注册在服务管理平台中的服务引擎,都需要通过服务发现功能才能对外提供服务。 当某个信息系统需要使用某种服务时,通过服务发现功能查询具体服务的地址信息,之后才能对相应服务进行调用。 1.1.1.3 用户中心通过用户中心组件可实现对租户、业务、部门、岗位人员角色、权限、用户认证、安全认证的管理,具体功能特性如下: (1)提供租户、业务管理功能,支持多租户、一个租户多业务的结构模型; (2)提供业务下多部门树,以及部门岗位、人员、角色、权限管理,为用户提供组织结构闭环管理及用户关联关系服务; (3)为管理人员提供跨层级、跨部门的全局用户管理能力,基于统一的用户中心进行用户体系开发的系统及部门,可以直接被管理人员进行纳管。 (4)节省各信息系统的建设成本,各信息系统在实施开发过程中,无需重复进行用户管理体系的研发,可以直接将成熟的用户中心纳入到信息系统中,降低工作量的同时,提升功能的可靠性与可用性。 1.1.1.3.1租户管理提供系统租户管理功能,可以创建多个租户,包括租户的新增、编辑、删除、查询、启用业务等功能; (1)租户查询 通过租户名称和租户代码可以精确、模糊查询,列表显示租户标识、租户名称、租户代码。 (2)租户新增 管理员通过租户管理可以创建租户添加租户名称、租户代码,租户描述,创建成功后会自动创建tenantadmin@租户代码的用户账号。 (3)租户编辑 已经创建的租户可以通过编辑功能修改除租户代码外的租户信息。 (4)租户删除 管理员可以删除租户以及租户相关信息,删除后用户不可再登录应用中台。 (5)关联业务 用户可以通过功能关联已经创建的业务,关联业务的用户才能够登录应用中台。 1.1.1.3.2业务管理提供业务管理功能,配置业务线的相关信息,同一个业务可以供多个租户使用,功能包括业务的新增、编辑、删除、查询等功能; (1)业务查询 通过业务名称可以精确、模糊查询,列表显示租户标识、租户名称、租户代码。 (2)业务新增 管理员可以通过业务管理模块可以创建新业务,添加业务名称、加密方式、登录验证、业务描述。 (3)业务编辑 已经创建的业务可以通过编辑功能修改除加密方式外的业务信息。 (4)业务删除 管理员可以删除业务以及业务相关关联信息,删除后用户不可再登录应用中台。 (5)扩展字段管理 扩展字段管理:业务下各业务模块可扩展字段的管理集合,部门扩展字段管理,所有扩展字段在当前业务下可以被所有部门使用,主要为满足业务要求可以自己定义扩展属性,目前支持部门,岗位,人员,角色,权限的扩展字段定义。 (6)元数据管理 元数据管理:业务下各菜单使用的元数据字段的管理集合,岗位类型管理,可以自定义岗位类型。 (7)应用配置 配置业务接入的应用配置,添加接入的应用标识、应用凭证、应用描述,应勇表示添加后不允许修改。 1.1.1.3.3租户管理员租户管理员模块提供用户账号管理功能,功能包括:重置为默认密码,复制默认密码。 (1)用户查询 管理员可以通过租户名称、租户代码精确、模糊查询,列表显示租户名称、租户代码、登录账号。 (2)重置为默认密码 管理员可以帮助忘记密码的用户重置密码。 (3)复制默认密码 管理员可以复制重置的租户登录账号和密码到粘贴板。 1.1.1.3.4部门管理用户中心通过维护部门相关信息,实现对部门的统一管理,同时支持用户对部门进行全局管理,维护扩展字段以适应不同用户的定制化需求,每个业务都有独立部门结构。 (1)新增顶级部门 用户可以依据实际部门设置情况需要,通过管理平台新增顶级部门,并设置顶级部门所包含的信息内容。 (2)新增下级部门 用户可以依据实际部门设置情况需要,通过管理平台新增各个层级的部门,并设置部门所包含的信息内容。 (3)部门编辑 对于已经设置好的部门信息,部门管理员可以通过部门信息修改功能,调整部门名称,部门描述等相关属性。 (4)部门扩展属性字段维护 对于某些特定行业、特定场景,最终用户对部门的设置可能存在特殊的需求,尤其对于政府部门,各个部门的权责、范围各不相同,因此部门的设置存在极大的定制化需求。 部门扩展属性字段维护功能正是满足了各个行业、各个层级客户的定制化的需要,通过对部门信息进行属性字段的扩展,从而衍生出能够满足各个行业的部门管理能力。 (5)部门删除 管理员可以通过后台管理能力对某个部门进行删除操作。删除后的部门无法再配置任何的用户。 1.1.1.3.5岗位管理用户中心模块提供岗位管理功能,为人员定义部门中岗位职责,在部门下才可以创建岗位,可以为岗位定义上级岗位(汇报路径),功能包括:新增、编辑、删除、查询、关联人员等功能 (1)岗位查询 管理员可以通过岗位名称、岗位类型、岗位人员精确、模糊查询,列表显示岗位名称、岗位类型、岗位描述、岗位人员等信息。 (2)岗位新增 管理员可以通过岗位管理模块可以为指定的部门创建新岗位,添加岗位名称、岗位类型、关联上级岗位、维护岗位描述等信息,每个业务都有独立岗位结构。 (3)岗位编辑 已经创建的岗位可以通过编辑功能修改岗位信息、重新选择上级岗位。 (4)岗位扩展属性字段维护 对于某些特定行业、特定场景,最终用户对部门的设置可能存在特殊的需求,尤其对于政府部门,各个部门的岗位权责、范围各不相同,因此部门的设置存在极大的定制化需求。 岗位扩展属性字段维护功能正是满足了各个行业、各个层级客户的定制化的需要,通过对岗位信息进行属性字段的扩展,从而衍生出能够满足各个行业的部门岗位管理能力。 (5)岗位删除 管理员可以删除岗位以及岗位相关信息,删除后不可以在关联人员,已关联人员会取消关联。 (6)关联人员 管理员可以为人员关联到部门的岗位,通过岗位可以明确人员在部门的岗位职责,可以关联、取消关联。 1.1.1.3.6人员管理人员管理功能是用户管理引擎的核心能力。所有组织的管理最终都要落实在相关人员的管理上。因此人员管理功能为用户提供了人员新增、人员删除、人员修改、扩展属性字段管理、人员检索等功能。能够满足最终用户入职、变动、离职等多种应用场景的需求,每个业务都有独立人员。 (1)人员查询 可以通过管理平台对所有人员信息进行检索,包括全部人员信息清单的检索,对某个部门的所有人员进行检索,对某个角色上的所有人员进行检索,也包括对某个人员信息详情的检索功能。 (2)人员新增 管理人员可以通过人员新增功能在已经创建的部门中相应的角色上新增一个具体的人员,如部门负责人、普通员工等。 当部门有新员工入职,管理员需要使用人员新增功能添加一个对应的人员信息,用户管理平台将在后台的人员信息表中添加该人员的相应信息,从而逐步积累整个企业的人员信息清单。 (3)人员编辑 对于已经创建了信息的人员,管理员可以通过人员修改对人员姓名、所属部门、所属角色等信息进行修改,从而满足各种场景的实际需求。 (4)人员扩展属性字段维护 对于某些特定行业、特定场景,最终用户对人员的设置可能存在特殊的需求,尤其对于政府部门,各个部门的权责、范围各不相同,因此对人员信息的管理同时也存在着多种需求。 人员扩展属性字段维护功能正式满足了各个行业、各个层级客户的定制化的需要,通过对人员信息进行属性字段的扩展,从而衍生出能够满足各个行业的角色管理能力。 (5)人员删除 管理人员可以通过删除功能删除某个具体的人员。 1.1.1.3.7角色管理当具有了部门信息后,还需要在各个部门中设置相应的角色,角色是权限的集合组,从而能够支撑最终用户的某些权限,每个业务都有独立角色 (1)角色查询 可以通过管理平台对所有角色信息进行检索,包括全部角色信息清单的检索,也包括对某个角色信息详情的检索功能。 (2)角色新增 管理人员可以通过角色新增功能在已经创建的部门中新增一个具体的角色,典型的角色为业务管理员角色。 (3)角色编辑 对于已经创建的角色,管理员可以修改对角色名称等信息进行修改。 (4)角色扩展属性字段维护 对于某些特定行业、特定场景,最终用户对角色的设置可能存在特殊的需求,尤其对于政府部门,各个角色的权责、范围各不相同,因此角色的设置存在极大的定制化需求。 角色扩展属性字段维护功能正式满足了各个行业、各个层级客户的定制化的需要,通过对角色信息进行属性字段的扩展,从而衍生出能够满足各个行业的角色管理能力。 (5)角色删除 管理人员可以通过删除功能删除某个具体的角色。当仍然有用户在某个角色上时,该角色不可删除。只有当前所有用户都不属于某个角色,管理员才能将该角色删除。 (6)关联人员 管理员可以为人员关联角色,通过角色权限可以明确人员在系统的基本角色和权限,可以关联、取消关联。 1.1.1.3.8权限管理对于不同角色、不同角色的用户,用户管理引擎可以配置不同的权限,不同的权限对应着对不同功能、资源的调用能力。用户管理引擎提供权限新增、权限删除、权限修改相关功能,满足用户对权限设置的需求。 (1)权限查询 可以通过管理平台对所有权限信息进行检索,包括全部权限信息清单的检索,对某个角色对应权限进行检索,也包括对某个权限信息详情的检索功能。 (2)权限新增 管理人员可以通过权限新增功能新增一个具体的权限,如部门管理员、普通员工等。 权限通常与某个角色对应,即具体的角色有具体的权限,因此在新建权限的过程中可以直接将权限与角色关联。 (3)权限删除 可以将某个已经创建的权限进行删除。 权限删除与角色的删除不同,权限的删除不需要该权限下未绑定任何用户。当某个权限被删除时,对应权限下的用户将失去相应权限。 (4)权限编辑 对于已经创建了的权限,管理员可以通过权限修改对权限姓名、绑定角色等信息进行修改,从而满足各种场景的实际需求。 (5)权限扩展属性字段维护 对于某些特定行业、特定场景,最终用户对权限的设置可能存在特殊的需求,尤其对于政府部门,各个部门的权责、范围各不相同,因此对权限信息的管理同时也存在着多种需求。权限扩展属性字段维护功能正是满足了各个行业、各个层级客户的定制化的需要。 (6)关联角色 管理员可以为角色关联权限,通过角色权限可以明确人员在系统的基本角色和权限,可以关联、取消关联。 1.1.1.3.9其他(1)登录 用户管理引擎提供最基础的用户登录功能。信息系统通过调用用户登录功能接口,可以直接在系统中引入用户管理体系,集成用户登录页面,从而极大的减少了信息系统建设复杂程度,降低了系统实施工作量 (2)登出 提供用户登出功能,当用户不在使用系统,或超时等场景下,信息系统可以通过调用登出功能实现对用户鉴权信息的回收,保障系统在安全可靠的环境下进行使用。 1.1.1.4 统一认证统一认证服务是基于 CAS和SSO服务实现多个相关但独立软件系统间的访问控制。 1.1.1.4.1SSO服务单点登录( Single Sign-On , 简称 SSO )是多个相关但独立的软件系统访问控制的一个属性。通过使用该属性,用户登录与单个ID和密码来访问所连接的一个或多个系统,而不使用不同的用户名或密码,或在某些配置中无缝登录在每个系统上,它是比较流行的服务于企业业务整合的一种解决方案。总结一句话,SSO 使得在多个应用系统中,用户只需要 **登录一次 **就可以访问所有相互信任的应用系统。 在SSO体系中,主要包括三部分: User (多个) Web 应用(多个) SSO 认证中心( 1 个) 而SSO的实现基本核心原则如下: 所有的登录都在 SSO 认证中心进行; SSO 认证中心通过一些方法来告诉 Web应用当前访问用户究竟是不是已通过认证的用户; SSO 认证中心和所有的 Web 应用建立一种信任关系, SSO 认证中心对用户身份正确性的判断会通过某种方法告之 Web 应用,而且判断结果必须被 Web 应用信任; (1)SSO 登录 在SSO中有一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。那其他的系统如何访问受保护的资源?这里就是通过认证中心间接授权通过令牌来实现,当SSO验证了用户信息的正确性后,就会创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的
|