• jxTMS设计思想之结构


    jxTMS是以低成本快速定制为核心诉求的、SaaS模式的二次开发平台,详见:jxTMS简介。本文是讲述jxTMS平台的系统结构和代码结构,整个系列请访问:jxTMS设计思想

    系统结构

    jxTMS的系统结构如图:

    企业微信应用

    考虑到安全以及弹性扩展的需要,jxTMS切分为了web和app两大系统,两者之间通过MQ进行勾连。web系统只会访问存有用户登录信息等的公共数据库,并只负责用户登录以及和用户的交互【其中的大量工作还是由用户浏览器根据js代码来完成的,包括web界面的动态绘制、自动计算、数据检查、动态弹窗等】,其即便因暴露在互联网中被攻破,也不会对用户的数据资产产生任何的威胁。

    注1:web系统的主要工作就是将前端数据转发到各组织,只有登录需要和公共数据库打交道。而登录功能则是用java所编写后经过反复测试的,更没有其它本地访问操作以尽可能的提高web服务的安全防护

    注2:jxTMS的登录是二级登录,即用户首先用用户名密码登录到web系统中,然后web系统才会将登录请求转发到组织中,组织还需要检查该用户在组织中的状态,如果不存在该用户或该用户已经离职,则拒绝其登录,而由于用户界面全部由所在组织中各capa发送界面描述来动态绘制的,所以该用户只会看到一片空白的界面

    用户系统以组织为单位运行在应用服务器上,每个组织通过MQ提供自己的应用服务,用户先登录到web服务器上,然后通过MQ以数据交换的方式来访问本组织的应用服务。而组织之间实现了彼此的隔离,这就确保了用户数据资产的绝对安全。

    代码结构

    每个组织以模块为单位来组织代码、界面、数据源等可定制部件,数个相关的模块组成一个代码空间,同一源头的空间放到一个目录下。其定制文件的目录结构如下:

    企业微信应用

    即一个模块就是一个目录,其中包含了5种文件:

    • data:定义数据类,jxTMS根据其中所定的各数据类,在组织私有数据库中生成同名的数据表

    • sql:定义数据源,即用来从组织私有数据库中查询数据的类sql语法定义的查询语句

    • web:定义web界面

    • capa.py:定义处理本模块业务逻辑的capa

    • op.py:定义本模块中各操作的访问入口

    而一个代码目录就是一个三层的目录结构,第一层子目录是代码空间、第二层子目录是模块,模块中存放的上述5种定义文件。

    jxTMS中有三种这样的代码目录:

    • 公共模块,jxTMS提供给每个组织用来完成组织管理、人员导入、角色映射等公共的基础功能。这种公共模块保存在的指定系统模块代码目录中

    • 用户自定义模块,本组织的自用功能。这些模块位于各组织的组织用户的home目录下的codeDefine目录中

    • 第三方模块,由第三方提供的诸如财务管理、ERP、进销存、CRM等专业功能。这些模块保存在专门为第三方模块预留的目录中

    而用户的功能升级非常简单,用新版本的定制文件覆盖原文件后,或订购了新的第三方模块后,只要manager用户执行一次热机刷新就可以了。

    目前jxTMS已经开放个人注册试用,欢迎大家注册试用:

    注册到jxTMS

    下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:

    如何用jxTMS开发一个功能

    下面的系列文章讲述了jxTMS的一些基本功能:

    jxTMS的HelloWorld

  • 相关阅读:
    Dubbo源码(七) - 集群
    【Python】JSON格式文件处理
    基于ASP.NET的旅行社信息管理系统设计与实现
    多链世界的“高速公路”:一文读懂跨链协议演进与未来
    巴特沃斯、切比雪夫I型、切比雪夫Ⅱ型和椭圆型滤波器的相同和不同之处
    Twikoo私有化部署教程--迁移腾讯云
    leetcode622-设计循环队列
    【报告解析】OpenAI Sora视频模型官方报告全解析 | 效果,能力以及基本原理
    2022java面试题
    docker相关知识
  • 原文地址:https://blog.csdn.net/jxandrew/article/details/126500978