微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/wenti/3285015.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐