写点什么

OneCode 开源集成开发工具 ESD 功能介绍

  • 2023-04-17
    北京
  • 本文字数:4392 字

    阅读完需:约 14 分钟

OneCode 开源集成开发工具ESD功能介绍

前言


OneCode 集成工具(以下简称 ESD),是 OneCode 代码的集成开发环境。ESD 面向的用户是专业的程序员,如果您不是专业的编程工作者需要先行了解一些 JAVA 语言相关基础知识以及其编译基础以便于方便自行下载编译。

一,为什么要做 ESD?

低代码不是一个新兴的概念,但将低代码作为一个独立的编程语言体系,独立的开发方法却是最近几年才被大家所接受的理念。但如大多新技术一样都会有一个成熟的过程,这个过程中除了技术本身的发展之外,其相关辅助的工具集,开发群体生态也是非常重要的一个部分。ESD 最初的版本只是为了方便团队协作将 OneCode (RAD)设计器以门户的方式开放给业务及技术开发者方便大家协同工作。随着项目及团队的技术演进,ESD 也从单一的门户逐步完成了后端代码的编译,独立服务器的管理及部署。直到今天经过几轮的重构将其开放出来作为一个开源的项目。


二,ESD 能做什么?


首先,ESD 是一组工具集,通过 ESD 开发者可以以最快最简介的方式快速的上手 OneCode,将设计器完成的设计文件转换为真正的代码工程发布部署。

在完成设计向代码的转换后,ESD 将作为代码与设计之间的桥接工具,将页面设计器(RAD),领域模型工具(DSM),OneCode 真实代码(RealCode) 三者之间有机的组合起来,实现三者之间的转换应用。

ESD 也是作为 OneCode 项目的管理工具,提供工程版本支持,团队协作支持,以及部署应用等功能支持。


三,ESD 开源结构说明

(1)开源协议声明开源地址:https://gitee.com/wenzhang77/ocstudio


ESD 本身采用,GPL3.0 协议。该协议允许用户商业使用,但如果直接针对改程序进行改造则必须遵循 GPL 协议。下载源码从 pom 编译依赖来看,ESD 主要依赖的为 OneCode 基础包以及相关插件是采用的是更为宽泛的 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>
复制代码


总结一下:

(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-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>
复制代码

(4)ESD 服务配置


ESD 的配置文件比较多,由于篇幅关系就不再一一做解说了,今天着重描述一下,集群相关的服务配置。/resource/useresbbean_config.xml



<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>

从配置文件中,我们可以获取两块配置,(1)本地服务装载 前面的博文介绍过,onecode本身是一组基于Spring的扩展注解。装载onecode模型需要配置本地的检索路径方便检索装载。//本地服务装载AR<configid>esb</configid><esb> <cnname>本地服务</cnname> <path>/../lib/:^onecode.*\.jar;./lib/:^onecode.*\.jar;</path></esb>
//检索本地Class装载服务<configid>local</configid>2<local> <templetname>检索本地Class</templetname> <path>*com.ds</path></local>
(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 依然会采用开放开源的策略。预计,开放时间表



用户头像

专注于,DDD领域模型设计工具开发推广。 2022-09-07 加入

还未添加个人简介

评论

发布
暂无评论
OneCode 开源集成开发工具ESD功能介绍_开源_高宏数智低代码_InfoQ写作社区