应用基础框架全面解析
引言:
应用基础框架Coframe是EOS产品自带的开源应用基础框架,提供了资源管理、权限管理、用户以及角色管理等业务应用基础能力,用户可以根据自己的需要进行二次开发与扩展。本文向大家分享Coframe的主要功能和设计实现方案。
目录:
一、简介
二、系统资源
三、权限管理
四、组织管理
一、简介
应用基础框架也叫Coframe,是产品自带的开源应用基础框架,提供了一些基础功能,用户可以根据自己的需要进行二次开发与扩展。
Coframe提供3大核心功能:
系统资源:提供了功能菜单管理、字典码表、应用管理折几个应用框架基础能力。
权限管理:提供了基于Party(参与者) 的复杂权限计算模型和授权模型。
基于参与者、资源与授权等概念可扩展开发出符合用户个性化需求的参与者模型。
组织管理:提供了机构、岗位、员工、 用户、工作组等组织机构相关管理功能,支持与已有业务系统对接,使得基于普元EOS Platform 8.0开发的应用可方便地使用同一套组织机构。
逻辑架构
逻辑架构图展示了基础应用框架的基本功能模块,前端Restful形式接口调用后端服务。
进程架构
应用基础框架有两种部署模式:微服务架构Coframe集成模式和单应用架构Coframe集成模式。
单应用架构很好理解,即直接使用Coframe源码或者jar包开发应用,后端只有一个server,而集成模式可以将应用要对外暴露的服务封装在Coframe中,这样Coframe可以对应用进行权限管理。前端使用VUE开发,可以很方便的使用源码进行二次开发。
数据模型
应用基础框架的数据模型即DB表结构,展示了主要的一些表结构,包括权限表,用户表等。用户可以很方便的进行二次开发扩展应用。
二、系统资源
菜单管理
菜单框架支持两级菜单,用户可以自定义菜单的路径和打开方式等。
应用基础框架提供了几个基础的菜单,用户可以在页面编辑菜单或者直接在数据库端编辑菜单。目前应用基础框架前端Ui支持二级菜单,用户可以根据自己的需求扩展到三级菜单。
字典码表
字典码表即为系统内部定义的具有业务属性的数据字典。
系统管理员可以配置字典类型和字典项,用于管理系统中的枚举类型的基础数据,并且支持excel导入导出。字典类型和字典数据均支持一级子项。
字典类型:对数据进行分类管理
字典数据项:需要管理的枚举数据
应用管理
应用管理又叫服务权限控制,是指在多应用系统以及单应用系统下,实现对应用的服务功能的权限控制。实现角色、用户、功能的灵活绑定。
在需要进行权限管理的功能接口方法定义上添加@TarestOperation注解,发布服务。
@RequestMapping("/say-hello") @TarestService(group = "SP1", displayName = "服务提供组1", version = "1.0.0.0", groupName = "服务提供组1", name = "ISampleAppHello") public interface ISampleAppHello { @GetMapping @TarestOperation(checkPermission=false,name="DEMO_001",displayName="功能1") String sayHello(); /** * @TarestOperation 在@TarestOperation中默认是不进行权限管理的 * 通过设置checkPermission = true,打开权限控制功能 * **/ @GetMapping(value = "/user") @TarestOperation(checkPermission =true,name="DEMO_002",displayName="功能2") String insertDemo(@RequestParam String name, @RequestParam Integer age); }
单应用系统即只有一个后端应用的系统,(直接以嵌入方式集成Coframe)无需新建应用。
多应用系统即有多个后端应用的系统,Coframe作为一个独立的应用部署的系统,需要在coframe中新建应用。如图所示:
三、权限管理
提供了基于Party(参与者) 的复杂权限计算模型和授权模型。
基于参与者、资源与授权等概念可扩展开发出符合用户个性化需求的参与者模型。
角色:角色是Coframe一个重要的对象,也可以成为权限集,表示系统中权限一个子集,用于控制用户可以使用的功能集合,赋予用户一个角色表示给用户一定功能的使用权限。Coframe中角色的分配本身赋予某些用户,员工,机构等之外,还要向角色授予可访问某些功能,模块,表单,视图等资源的权限。拥有某角色的用户可访问角色被授予的资源的权限。
用户:所有能登录系统的用户都是系统中的用户,需要增加登录账号有两种方式。一种是在用户管理中新增用户,第二种是在组织管理中新增员工时关联一个用户,如果用户的登录名不存在会创建一个新的用户。
用户管理
所有能登录系统的用户都是系统中的用户,需要增加登录账号有两种方式。一种是在用户管理中新增用户,第二种是在组织管理中新增员工时关联一个用户,如果用户的登录名不存在会创建一个新的用户。当Coframe使用IAM的统一认证登录的时候能够同步IAM端的同一租户下的用户信息。
Coframe的用户账号由其登录认证方式决定是本地创建的还是又IAM即同一认真平台同步过来的用户信息。
本地登录:用户账号及其认证密码在本地存储,本地认证配置可以参考:http://t.cn/EUrzEtL
单点登录:即与IAM集成的sso方式登录,可以参考:http://t.cn/EUrZPOs
授权管理
目前提供了菜单授权与服务授权,授权管理即将资源与参与者之间建立关系。如下图所示,菜单和应用:
即可以视为资源,而账号、角色、组织机构、工作中等,即可以视为参与者。授权表结构如下图所示:
此注解用来标志一个数据实体为授权实体,授权实体需要指定类型:资源、授权主体,比如:
@Entity // 此实体名称为order,类型为resource @AuthEntity(name = "order", type = AuthEntityType.RESOURCE) @Table(name = "SAMPLE_ORDER") public class SampleOrder { @Id @GeneratedValue private Long id; private String name; private Date date; }
四、组织管理
机构管理
机构指企业的组织机构,一般包含机构、岗位、员工等信息。
机构管理通过对一棵机构人员树的维护把机构、岗位、人员等信息和关系维护好,并可设置这些组织对象的角色。
工作组管理
工作组与机构类似,是为了将项目组、工作组等临时性的组织机构管理起来,业务上通常工作组有一定的时效性,是一个非常设机构。
工作组是企业动态创建的组织机构分组,工作组下可以有子工作组、员工信息。
总结:
以上介绍了应用基础框架的主要基础功能,以及设计过程中的一些理念,比如授权模型等。
作为开源应用基础框架会随着规划发展不断完善,用户可以根据自身的需求来更改适配。也非常欢迎大家能够更多参与使其更加健壮。
原文发布时间为:2018-12-19
本文作者:许方杰
本文来自云栖社区合作伙伴“ EAWorld”,了解相关信息可以关注“
eaworld”微信公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
蚂蚁金服微服务实践 | 开源中国年终盛典分享实录
章耿,花名余淮,蚂蚁金服高级技术专家。2007 年毕业后一直从事服务化相关的工作,最早在国家电网做电子商务平台 SOA 化的工作,之后在京东负责京东的服务化框架 JSF,目前在蚂蚁金服中间件服务与框架组负责应用框架及 SOFAStack 相关的工作。 本文根据余淮在 2018 开源中国年终盛典的演讲内容整理,完整的分享 PPT 获取方式见文章底部。 本次分享主要分为三部分: 蚂蚁金服服务化架构演进 蚂蚁金服微服务体系 蚂蚁金服 SOFAStack 的开源情况 1、蚂蚁金服服务化架构演进 在开始讲架构演进之前,我们先来看一组数据。 这是历年来的双十一数据图,柱状是双十一的交易额,从最初到20亿到去年的1682亿,今年是2135亿。而这个橙色的折线则是支付宝双十一 0 点的交易峰值,去年是 26.5w笔每秒,今年更高。从这两组数据可以看出蚂蚁的业务每
- 下一篇
阿里云数据库POLARDB技术沙龙火热报名中,李飞飞,曹伟 众大神齐到场,200个席位先到先得!
本次沙龙将结合RDS云数据库技术架构的演化,分享阿里云自研云原生数据库的产品架构和技术创新点,并深度剖析POLARDB在SQL并发性能、多活高可用、读写分离延迟、四维弹性、快照备份和查询加速等应用场景的技术实践。 时间:2019年1月19日 13:00 ~ 2019年1月19日 17:00 地址:北京朝阳区望京启阳路2号昆泰酒店 POLARDB是阿里云自主研发的云原生数据库,是阿里云面向企业级市场推出的基石级产品,为新金融、新零售、新制造、物联网、电信等高吞吐场景而生,提供100T级别数据库容量、6倍于MySQL性能、使用成本持平开源数据库,重新定义云数据库标准。作为阿里云数据库团队自身多年在硬件和数据库源码上的集大成品,POLARDB解决了传统数据库暴露出的诸多问题,实现高性能/高容量/低成本特性。 活动议程 13:00-13:30 签到 13:30-14:00 阿里云自研新一代企业云数据库POLARDB的核心技术14:05-14:20 POLARDB数据库性能大赛颁奖典礼14:20-14:40 POLARDB高性能key-value引擎实现分享14:40-15:10 POLARDB...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果