應用基礎框架全面解析


轉載本文需註明出處:EAWorld,違者必究。

引言:

應用基礎框架Coframe是EOS產品自帶的開源應用基礎框架,提供了資源管理、權限管理、用戶以及角色管理等業務應用基礎能力,用戶能夠根據本身的須要進行二次開發與擴展。本文向你們分享Coframe的主要功能和設計實現方案。

目錄:

1、簡介
2、系統資源
3、權限管理
4、組織管理

1、簡介

應用基礎框架也叫Coframe,是產品自帶的開源應用基礎框架,提供了一些基礎功能,用戶能夠根據本身的須要進行二次開發與擴展。

Coframe提供3大核心功能:

系統資源:提供了功能菜單管理、字典碼錶、應用管理折幾個應用框架基礎能力。
權限管理:提供了基於Party(參與者) 的複雜權限計算模型和受權模型。基於參與者、資源與受權等概念可擴展開發出符合用戶個性化需求的參與者模型。
組織管理:提供了機構、崗位、員工、 用戶、工做組等組織機構相關管理功能,支持與已有業務系統對接,使得基於普元EOS Platform 8.0開發的應用可方便地使用同一套組織機構。

邏輯架構
 前端


邏輯架構圖展現了基礎應用框架的基本功能模塊,前端Restful形式接口調用後端服務。

進程架構
 數據庫

Coframe集成部署示意圖後端


應用基礎框架有兩種部署模式:微服務架構Coframe集成模式和單應用架構Coframe集成模式。

單應用架構很好理解,即直接使用Coframe源碼或者jar包開發應用,後端只有一個server,而集成模式能夠將應用要對外暴露的服務封裝在Coframe中,這樣Coframe能夠對應用進行權限管理。前端使用VUE開發,能夠很方便的使用源碼進行二次開發。

數據模型
 架構


應用基礎框架的數據模型即DB表結構,展現了主要的一些表結構,包括權限表,用戶表等。用戶能夠很方便的進行二次開發擴展應用。

2、系統資源

菜單管理

菜單框架支持兩級菜單,用戶能夠自定義菜單的路徑和打開方式等。
 app


應用基礎框架提供了幾個基礎的菜單,用戶能夠在頁面編輯菜單或者直接在數據庫端編輯菜單。目前應用基礎框架前端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中新建應用。如圖所示:
 設計



3、權限管理

提供了基於Party(參與者) 的複雜權限計算模型和受權模型。

基於參與者、資源與受權等概念可擴展開發出符合用戶個性化需求的參與者模型。

角色:角色是Coframe一個重要的對象,也能夠成爲權限集,表示系統中權限一個子集,用於控制用戶可使用的功能集合,賦予用戶一個角色表示給用戶必定功能的使用權限。Coframe中角色的分配自己賦予某些用戶,員工,機構等以外,還要向角色授予可訪問某些功能,模塊,表單,視圖等資源的權限。擁有某角色的用戶可訪問角色被授予的資源的權限。

用戶:全部能登陸系統的用戶都是系統中的用戶,須要增長登陸帳號有兩種方式。一種是在用戶管理中新增用戶,第二種是在組織管理中新增員工時關聯一個用戶,若是用戶的登陸名不存在會建立一個新的用戶。

用戶管理



全部能登陸系統的用戶都是系統中的用戶,須要增長登陸帳號有兩種方式。一種是在用戶管理中新增用戶,第二種是在組織管理中新增員工時關聯一個用戶,若是用戶的登陸名不存在會建立一個新的用戶。當Coframe使用IAM的統一認證登陸的時候可以同步IAM端的同一租戶下的用戶信息。

Coframe的用戶帳號由其登陸認證方式決定是本地建立的仍是又IAM即同一認真平臺同步過來的用戶信息。

本地登陸:用戶帳號及其認證密碼在本地存儲,本地認證配置能夠參考:http://t.cn/EUrzEtL
單點登陸:即與IAM集成的sso方式登陸,能夠參考:http://t.cn/EUrZPOs

受權管理

目前提供了菜單受權與服務受權,受權管理即將資源與參與者之間創建關係。以下圖所示,菜單和應用:
 3d


便可以視爲資源,而帳號、角色、組織機構、工做中等,便可以視爲參與者。受權表結構以下圖所示:
 

 

此註解用來標誌一個數據實體爲受權實體,受權實體須要指定類型:資源、受權主體,好比:

@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;
}


4、組織管理

機構管理
 


機構指企業的組織機構,通常包含機構、崗位、員工等信息。

機構管理經過對一棵機構人員樹的維護把機構、崗位、人員等信息和關係維護好,並可設置這些組織對象的角色。
 


工做組管理



工做組與機構相似,是爲了將項目組、工做組等臨時性的組織機構管理起來,業務上一般工做組有必定的時效性,是一個很是設機構。

工做組是企業動態建立的組織機構分組,工做組下能夠有子工做組、員工信息。

總結:

以上介紹了應用基礎框架的主要基礎功能,以及設計過程當中的一些理念,好比受權模型等。
做爲開源應用基礎框架會隨着規劃發展不斷完善,用戶能夠根據自身的需求來更改適配。也很是歡迎你們可以更多參與使其更加健壯。

關於做者:許方傑,普元資深軟件工程師,曾在華爲負責項目核心模塊開發,運維等,擅長Web、運維等領域技術,參與普元 EOS 8微服務平臺應用基礎框架(Coframe)的建設與實施。


 

關於EAWorld:微服務,DevOps,數據治理,移動架構原創技術分享。長按二維碼關注!

相關文章
相關標籤/搜索