OneCode 开源集成开发工具ESD功能介绍
包括:开发代码协同管理的 onecode-vfs 虚拟目录服务,onecode-org用户认证,onecode-cluster集群节点管理,以及其他应用类服务如:onecode-bpm流程服务,onecode-iot物联网应用支持,onecode-jmq 消息服务,onecode-index检索服务, 从依赖的jar包来看,每一组服务,onecode也都提供了独立的SDK支持方便集成调用。随着项目
前言
OneCode 集成工具(以下简称ESD),是OneCode 代码的集成开发环境。ESD面向的用户是专业的程序员,如果您不是专业的编程工作者需要先行了解一些JAVA语言相关基础知识以及其编译基础以便于方便自行下载编译。
一,为什么要做ESD?
低代码不是一个新兴的概念,但将低代码作为一个独立的编程语言体系,独立的开发方法却是最近几年才被大家所接受的理念。但如大多新技术一样都会有一个成熟的过程,这个过程中除了技术本身的发展之外,其相关辅助的工具集,开发群体生态也是非常重要的一个部分。ESD最初的版本只是为了方便团队协作将OneCode (RAD)设计器以门户的方式开放给业务及技术开发者方便大家协同工作。随着项目及团队的技术演进,ESD也从单一的门户逐步完成了后端代码的编译,独立服务器的管理及部署。直到今天经过几轮的重构将其开放出来作为一个开源的项目。
二,ESD能做什么?
首先,ESD是一组工具集,通过ESD开发者可以以最快最简介的方式快速的上手OneCode,将设计器完成的设计文件转换为真正的代码工程发布部署。
在完成设计向代码的转换后,ESD将作为代码与设计之间的桥接工具,将页面设计器(RAD),领域模型工具(DSM),OneCode 真实代码(RealCode) 三者之间有机的组合起来,实现三者之间的转换应用。
ESD也是作为OneCode 项目的管理工具,提供工程版本支持,团队协作支持,以及部署应用等功能支持。
三,ESD开源结构说明
(1)开源协议声明
开源地址:onecode低代码引擎: onecode低代码引擎 编译运行环境
编辑切换为居中
添加图片注释,不超过 140 字(可选)
ESD本身采用,GPL3.0协议。该协议允许用户商业使用,但如果直接针对改程序进行改造则必须遵循GPL协议。
下载源码从pom编译依赖来看,ESD主要依赖的为OneCode基础包以及相关插件是采用的是更为宽泛的MIT协议。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
总结一下:
(1)直接使用ESD免费,可以“魔改"ESD,但不能将魔改的版本作为商业版本二次销售。
(2)ESD依赖的OneCode基础包以及其插件,仍然遵循MIT协议。如果二次开发者在有一定的工具开发能力的话,可以在参考ESD的基础上重新构建自有的独立知识产权的OneCode 开发工具。
(2)如何编译ESD源码
如何编译ESD源码,可以参照OneCode编译视频介绍。
(3)ESD服务工程依赖
ESD是面向开发者的Studio工具 ,ESD运行需要依赖一些集成环境来支持,OneCode也为这些提供了一些默认的微服务实现。包括:开发代码协同管理的 onecode-vfs 虚拟目录服务,onecode-org用户认证,onecode-cluster集群节点管理,以及其他应用类服务如:onecode-bpm流程服务,onecode-iot物联网应用支持,onecode-jmq 消息服务,onecode-index检索服务, 从依赖的jar包来看,每一组服务,onecode也都提供了独立的SDK支持方便集成调用。分别对应的基于MIT协议的驱动服务包。
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-common-client</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-vfs-web</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-server</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-org-web</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-index-web</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-iot-webclient</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-database</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-esdstudio</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-db</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-org</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-formula</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-bpd</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-right</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-sysmanager</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-nav</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-bpm-web</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-dsm</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-plugins-bpm</artifactId>
<version>1.0.2</version>
</dependency>
(4)ESD服务配置
ESD的配置文件比较多,由于篇幅关系就不再一一做解说了,今天着重描述一下,集群相关的服务配置。/resource/useresbbean_config.xml
编辑切换为居中
添加图片注释,不超过 140 字(可选)
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-vfs-web</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-org-web</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-index-web</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-iot-webclient</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>cn.raddev</groupId>
<artifactId>onecode-bpm-web</artifactId>
<version>1.0.2</version>
</dependency>
从配置文件中,我们可以获取两块配置,
(1)本地服务装载
前面的博文介绍过,onecode本身是一组基于Spring的扩展注解。装载onecode模型需要配置本地的检索路径方便检索装载。
<actionContextClass>
com.ds.context.MinServerActionContextImpl
</actionContextClass>
<configid>esb</configid>
<esb>
<cnname>本地服务</cnname>
<path>/../lib/:^onecode.*\.jar;./lib/:^onecode.*\.jar;</path>
</esb>
<configid>local</configid>
<local>
<templetname>检索本地Class</templetname>
<path>*com.ds</path>
</local>
<configid>remoteService</configid>
<remoteService>
<path>remoteService</path>
<cnname>集群订阅服务</cnname>
<expressionTemManager>com.ds.web.client.RemoteTempXMLProxy</expressionTemManager>
</remoteService>
<configid>bpmservice</configid>
<bpmservice>
<cnname>工作流服务</cnname>
<path>bpm_tempbean_config.xml</path>
<tokenType>user</tokenType>
<serverUrl>http://bpm.raddev.cn:9080</serverUrl>
</bpmservice>
<configid>vfsnamenode</configid>
<vfsnamenode>
<cnname>虚拟目录</cnname>
<path>vfs_tempbean_config.xml</path>
<tokenType>admin</tokenType>
<serverUrl>http://data-vfsnamenode.raddev.cn:9080</serverUrl>
</vfsnamenode>
<configid>VFSStoreService</configid>
<VFSStoreService>
<cnname>实体文件存储</cnname>
<tokenType>user</tokenType>
<path>vfsstore_tempbean_config.xml</path>
<serverUrl>http://vfsstore.raddev.cn:9080</serverUrl>
</VFSStoreService>
<configid>orgservice</configid>
<orgservice>
<path>org_tempbean_config.xml</path>
<cnname>组织机构服务</cnname>
<tokenType>admin</tokenType>
<serverUrl>http://org.raddev.cn:9080</serverUrl>
</orgservice>
<configid>msgService</configid>
<msgService>
<path>msg_tempbean_config.xml</path>
<cnname>消息分发服务</cnname>
<tokenType>admin</tokenType>
<serverUrl>http://msg.raddev.cn:9080</serverUrl>
</msgService>
<configid>repeateventservice</configid>
<repeateventservice>
<cnname>集群事件注册</cnname>
<path>repeatmsg_config.xml</path>
</repeateventservice>
<configid>localservice</configid>
<localservice>
<cnname>本地注册服务</cnname>
<path>local_tempbean_config.xml</path>
</localservice>
<configid>iot</configid>
<iot>
<type>BEAN</type>
<cnname>总线内部方法</cnname>
<desc>总线内部方法</desc>
<serverUrl>http://iotserver.raddev.cn:9080</serverUrl>
<path>iot_tempbean_config.xml</path>
<expressionTemManager>
com.ds.esb.config.xml.ExpressionTempXmlProxy
</expressionTemManager>
</iot>
(2)远程服务装载
<configid>bpmservice</configid>
<bpmservice>
<cnname>工作流服务</cnname>
<path>bpm_tempbean_config.xml</path>
<tokenType>user</tokenType>
<serverUrl>http://bpm.raddev.cn:9080</serverUrl>
</bpmservice>
*篇幅关系具体的配置细节就不做累述了,如果您希望进一步了解配置细节或者具体实现可以下载 onecode-common-client 源码自行阅读,或在GITEE留言。
四,OneCode集群版开放计划
OneCode集群版设计的内容以及技术难度也会更大,但OneCode 依然会采用开放开源的策略。
预计,开放时间表
服务名称 | 服务介绍 | 预计开放时间 | 开放协议 |
---|---|---|---|
onecode-iot | onecode物联网套件 | 2023年4月份(已开放) | MIT |
onecode-vfs | onecode 文件代码管理服务 | 2023年第二季度 | MIT |
onecode-bpm | onecode 流程管理服务 | 2023年第二季度 | GPL |
onecode-jmq | onecode 消息服务 | 2023年第二,三季度 | GPL |
如果您有兴趣可以,联系codebee团队,提前获取源码包开展内测。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)