JRT既(Java Real Time Business Layer Framework),是为信创设计新一代传统软件框架。经过三个多月高强度加班加点开发,吸收了上10年的开发、架构和实施经验,JRT做到了追赶过去、超越过去、规划未来。对没有发展前途的路子不值得浪费生命去投入,JRT的目标就是在信创中取得绝对优势。
JRT解决的问题总体归纳为两块:
一、解决问题
1.信创数据库要求、服务器OS要求、客户端OS要求、开发环境可控
2.及时响应需求,快速迭代功能
3.降低开发成本、维护成本
4.降低程序复杂度
5.关系库多维取数据慢
6.设计力不够的问题
二、规避麻烦
1.程序结构复杂
2.开发环境复杂
3.部署环境复杂
4.占用内存高、启动慢
5.学习成本太高
6.依赖太多导致不安全可控
介绍
JRT计划构建一套专为传统软件行业设计的Java实时业务层框架,该框架将遵循信创原则,确保安全性和可控性。其核心理念包括简单性、高效性、实用性、自主性、可控性和创新性。
框架致力于减少开发环境复杂性,用户只需安装JDK和IDEA,即便在Linux系统上,也能轻松进行开发。这种对环境依赖的降低意味着更高的可控性,避免因依赖过多而被限制。此外,它简化了开发过程,免去了繁杂的环境配置,使开发人员能够更快地开始项目开发。
JRT的核心思想是将业务逻辑脚本化,这一举措显著提高了开发效率和代码维护效率。通过这种方式,开发成本得以降低,而开发效率却大大提高。尽管JRT支持多种关系型数据库, 但目前仅适配了IRIS、Cache、PostGreSql和人大金仓,这是基于实际需求和实用性考虑的务实之举。
JRT不仅仅满足于成为简单的包集成工具,而是对引入的包持谨慎态度,尽量减少外部依赖。所有引用的包都经过API封装,以Core或BllBase的形式提供,从而确保业务层与外部包之间的解耦。ORM和核心API都是自主可控的实现,提供了全面的打印、导出功能以及JRT浏览器和打印模板设计器。数据访问层则通过DolerGet解决多维查询问题,展现了一系列创新思想。
背景
传统业务软件流程难以规范、改动频繁、利润微薄、维护分散。按互联网标准模式难以统一不同客户的要求、及时的修改、和投入大量人力和专门维护团队给每个客户维护。针对Spring下的空缺,JRT应运而生,思想和Spring的类似,按照Web的请求路径借助反射执行响应业务逻辑。不同点是Spring注重发布和结构层级、JRT注重业务脚本化效果和业务逻辑简化。
比对
环境:JRT仅需JDK和ide,一般的Spring项目要使用Maven、nginx、ridis
内存:JRT启动后占用130兆,Spring启动占用快2G
spring
jrt
编译和启动速度:JRT5秒左右编译和启动完成,Spring编译一分钟、启动一分钟。
发布:JRT不需要打包,直接拷贝开发的目录使用,Spring还要打包。
开发维护效率:JRT借助业务脚本化,开发和维护效率高。Spring还得等编译、打包、发布、流程规范,但是效率低。
多维爬数据支持:JRT提供DolerGet来多维取数据,性能比本机直接查库提升100多倍,库和Web不在一起更明显,专门来解决关系库查复杂维度的参数数据问题。Spring一般借助ridis缓存,结构复杂、依赖复杂。
打印导出和生成PDF:JRT提供java版的打印、导出、生成PDF支持。
文件服务:JRT每个站点都可以充当文件服务,对有文件上传的功能开发环境一体化,部署也不用额外程序。
在线打印预览:JRT提供在线打印预览,方便外部系统在线预览打印效果
模板设计器:JRT提供配合打印实现的打印模板设计器供业务设计打印模板,而且是BS的,也就是多平台没差异
连设备TCP支持:JRT提供连设备TCP的简单封装,设备接口只需要实现约定接口处理数据即可
运维命令:JRT提供简单命令来运维,没Linux经验的人也可以马上上手维护,只需要知道xshell执行引导命令
[root@localhost jrtbase]# jrt
欢迎使用jrt的linux命令呼出入口,通过jrt命令引导bash脚本
执行命令:bash /jrtbase/jrt.sh
+欢迎您使用jrt网站运维脚本
+该脚本致力于简化基于jrt框架的web在linux上运维
+常用菜单选项有1、2
+检验约定发布在8080端口
+在没有jrt命令的检验服务器运行bash /jrtbase/jrt.sh来第一次初始化jrt命令
+*************************************************JRTWeb网站配置工具************************************************************+
+ +
+ 1:重启Tomcat网站 +
+ +
+ 2:端口查看和开放,查看端口占用(lsof -i:8080) +
+ +
+ 3:查看网站进程信息 +
+ +
+ 8:编译实体 +
+ +
+ 9:常用命令帮助 +
+ +
+ 10:启动rsync服务 +
+ +
+ 11:停止Tomcat网站 +
+ +
+ 18:实体编译测试和代码比对 +
+ +
+ 66:自定义命令名称,否则都是以jrt驱动 +
+ +
+ 发布后系统访问地址http://127.0.0.1:8080/JRTWeb/login/form/Login.aspx +
+ 小乌鱼 20231228 +
+*******************************************************************************************************************************+
请按菜单输入选择功能Ctrl+C退出:66
请输入要定义的命令名称:
zlz
以后可以用zlz来驱动运维脚本了
关闭端口请执行:firewall-cmd --zone=public --remove-port=/tcp --permanent
+*************************************************JRTWeb网站配置工具************************************************************+
+ +
+ 1:重启Tomcat网站 +
+ +
+ 2:端口查看和开放,查看端口占用(lsof -i:8080) +
+ +
+ 3:查看网站进程信息 +
+ +
+ 8:编译实体 +
+ +
+ 9:常用命令帮助 +
+ +
+ 10:启动rsync服务 +
+ +
+ 11:停止Tomcat网站 +
+ +
+ 18:实体编译测试和代码比对 +
+ +
+ 66:自定义命令名称,否则都是以jrt驱动 +
+ +
+ 发布后系统访问地址http://127.0.0.1:8080/JRTWeb/login/form/Login.aspx +
+ 小乌鱼 20231228 +
+*******************************************************************************************************************************+
请按菜单输入选择功能Ctrl+C退出:^C[root@localhost jrtbase]#
[root@localhost jrtbase]# zlz
欢迎使用jrt的linux命令呼出入口,通过jrt命令引导bash脚本
执行命令:bash /jrtbase/jrt.sh
+欢迎您使用jrt网站运维脚本
+该脚本致力于简化基于jrt框架的web在linux上运维
+常用菜单选项有1、2
+检验约定发布在8080端口
+在没有jrt命令的检验服务器运行bash /jrtbase/jrt.sh来第一次初始化jrt命令
+*************************************************JRTWeb网站配置工具************************************************************+
+ +
+ 1:重启Tomcat网站 +
+ +
+ 2:端口查看和开放,查看端口占用(lsof -i:8080) +
+ +
+ 3:查看网站进程信息 +
+ +
+ 8:编译实体 +
+ +
+ 9:常用命令帮助 +
+ +
+ 10:启动rsync服务 +
+ +
+ 11:停止Tomcat网站 +
+ +
+ 18:实体编译测试和代码比对 +
+ +
+ 66:自定义命令名称,否则都是以jrt驱动 +
+ +
+ 发布后系统访问地址http://127.0.0.1:8080/JRTWeb/login/form/Login.aspx +
+ 小乌鱼 20231228 +
+*******************************************************************************************************************************+
请按菜单输入选择功能Ctrl+C退出:
经过和Spring开发比对,JRT起码可以提高一倍的开发和维护效率。进而可以减少起码一倍的成本。同时已经实现Web和客户端的全部大功能点,百分百依托java,不会因为打印之类的东西或者开发环境依赖其他带入不符合信创的依赖项,打印依赖Windows或者.net等有的说不符合信创要求的。