我的编程空间,编程开发者的网络收藏夹
学习永远不晚

应用基础框架全面解析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

应用基础框架全面解析

应用基础框架全面解析

转载本文需注明出处:微信公众号EAWorld,违者必究。

引言:

应用基础框架Coframe是EOS产品自带的开源应用基础框架,提供了资源管理、权限管理、用户以及角色管理等业务应用基础能力,用户可以根据自己的需要进行二次开发与扩展。本文向大家分享Coframe的主要功能和设计实现方案。

目录:

一、简介

二、系统资源

三、权限管理

四、组织管理

一、简介

应用基础框架也叫Coframe,是产品自带的开源应用基础框架,提供了一些基础功能,用户可以根据自己的需要进行二次开发与扩展。

Coframe提供3大核心功能:

  1. 系统资源:提供了功能菜单管理、字典码表、应用管理折几个应用框架基础能力。

  2. 权限管理:提供了基于Party(参与者) 的复杂权限计算模型和授权模型。

    基于参与者、资源与授权等概念可扩展开发出符合用户个性化需求的参与者模型。

  3. 组织管理:提供了机构、岗位、员工、 用户、工作组等组织机构相关管理功能,支持与已有业务系统对接,使得基于普元EOS Platform 8.0开发的应用可方便地使用同一套组织机构。

 逻辑架构

应用基础框架全面解析

逻辑架构图展示了基础应用框架的基本功能模块,前端Restful形式接口调用后端服务。

进程架构

应用基础框架全面解析

Coframe集成部署示意图

应用基础框架有两种部署模式:微服务架构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();
   
   
         @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;
}

(左右滑动查看全部代码)

四、组织管理

机构管理

应用基础框架全面解析

机构指企业的组织机构,一般包含机构、岗位、员工等信息。

机构管理通过对一棵机构人员树的维护把机构、岗位、人员等信息和关系维护好,并可设置这些组织对象的角色。

应用基础框架全面解析

工作组管理

应用基础框架全面解析

工作组与机构类似,是为了将项目组、工作组等临时性的组织机构管理起来,业务上通常工作组有一定的时效性,是一个非常设机构。

工作组是企业动态创建的组织机构分组,工作组下可以有子工作组、员工信息。

总结:



以上介绍了应用基础框架的主要基础功能,以及设计过程中的一些理念,比如授权模型等。

作为开源应用基础框架会随着规划发展不断完善,用户可以根据自身的需求来更改适配。也非常欢迎大家能够更多参与使其更加健壮。

精选提问:

问1:这个是一个前后端分离的项目吗 我看前端单独部署在nginx中。

答:是前后端分离的,前端是用VUE开发的。

问2:接入的SSO是支持CAS吗?如果是CAS的话,在前后端分离的项目在前端有什么好的设计吗?因为CAS一般基于fliter来接入CAS server的。

答:接入的SSO是Oauth3.0的,目前不支持CAS,可以参考。

问3:Coframe是开源的吗?可以商用吗?

答:一般对公司的客户是开源的,但是对外并没有公布源码(没有放在github之类的托管平台上面)。

问4:它是一个平台级的应用吗,我可以接入第三方的应用进来吗?

答:不是,它提供了类似菜单、授权等基础能力,可以基于源码二次开发,也可以基于jar开发自己的应用。

问5:目前最新版本是多少?授权用的是Shiro吗?

答:最新快照版本8.0.0-SNAPSHOT,目前准备开发8.0.0-LA2-SNAPSHOT。授权不是用的shiro,是基于参与者、资源与授权 这三种模型开发的授权方式。

应用基础框架全面解析

关于作者:许方杰,普元资深软件工程师,曾在华为负责项目核心模块开发,运维等,擅长Web、运维等领域技术,参与普元 EOS 8微服务平台应用基础框架(Coframe)的建设与实施。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

应用基础框架全面解析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

应用基础框架全面解析

转载本文需注明出处:微信公众号EAWorld,违者必究。引言:应用基础框架Coframe是EOS产品自带的开源应用基础框架,提供了资源管理、权限管理、用户以及角色管理等业务应用基础能力,用户可以根据自己的需要进行二次开发与扩展。本文向大家分
2023-06-05

Android Volley框架全面解析

Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信,HttpURLConnectio
2022-06-06

详解Pytest框架的基础知识和应用

Pytest框架的基本概念和用法详解一、引言随着Python的流行和多种测试框架的涌现,软件测试已经成为开发过程中不可或缺的一部分。Pytest是Python中一款简单而功能强大的测试框架,旨在提供更简洁、易于使用和可扩展的方式来编写测
详解Pytest框架的基础知识和应用
2024-01-13

从基础到实际应用:理解响应式CSS框架

响应式CSS框架:从原理到实践,需要具体代码示例引言:在当今移动互联网时代,越来越多的用户使用移动设备浏览网页。为了提供更好的用户体验,开发响应式网页设计变得至关重要。而响应式CSS框架便是实现响应式网页设计的一种强大工具。本文将从原理到
从基础到实际应用:理解响应式CSS框架
2024-01-16

Django框架基础认证模块auth这么应用

本文小编为大家详细介绍“Django框架基础认证模块auth这么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Django框架基础认证模块auth这么应用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.
2023-06-29

JavaScript基础知识:全面解析,一学就会

JavaScript 作为一门脚本语言,深受广大程序员喜爱。本文将全面解析 JavaScript 的基础知识,从基本语法到高级特性,循序渐进地带领读者掌握 JavaScript 的核心内容。 JavaScript、语法、变量、运算符、条件语句、循环语句、函数、数组、对象 1. 基本语法
JavaScript基础知识:全面解析,一学就会
2024-02-08

React框架核心原理全面深入解析

React是前端开发每天都用的前端框架,自然要深入掌握它的原理。我用React也挺久了,这篇文章就来总结一下我对react原理的理解,有需要的朋友可以借鉴参考下,希望能够有所帮助
2022-11-16

解析并应用响应式CSS框架

响应式CSS框架解析与应用在当今移动优先的互联网时代,响应式设计已经成为了一种必备的技术。而响应式CSS框架则是帮助开发人员快速构建响应式网站的利器。本文将深入解析响应式CSS框架的原理与应用,并通过具体的代码示例来展示其功能和用法。一
解析并应用响应式CSS框架
2024-01-16

从基础到进阶:全面解析 PHP SPL 扩展

PHP SPL 扩展是一个强大的 PHP 标准库,它提供了许多有用的类和接口,可以帮助开发人员轻松、高效地处理数据和执行各种操作。
从基础到进阶:全面解析 PHP SPL 扩展
2024-02-03

Java基础夯实之线程问题全面解析

操作系统支持多个应用程序并发执行,每个应用程序至少对应一个进程 。进程是资源分配的最小单位,而线程是CPU调度的最小单位。本文将带大家全面解析线程相关问题,感兴趣的可以了解一下
2022-11-13

全面解析Android的开源图片框架Universal-Image-Loader

相信大家平时做Android应用的时候,多少会接触到异步加载图片,或者加载大量图片的问题,而加载图片我们常常会遇到许多的问题,比如说图片的错乱,OOM等问题,对于新手来说,这些问题解决起来会比较吃力,所以就有很多的开源图片加载框架应运而生,
2022-06-06

numpy函数:全面解析及深入应用

numpy函数详解:从入门到精通引言:在数据科学和机器学习领域,numpy是一个非常重要的Python库。它提供了高效而强大的多维数组操作工具,使得处理大规模数据变得轻松快捷。本文将详细介绍numpy库中一些最常用的函数,包括数组创建、索
numpy函数:全面解析及深入应用
2024-01-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录