前言

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团队,提前获取源码包开展内测。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐