1 Star 30 Fork 9

zero-ws/zero-ecotope

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
Apache-2.0

Zero Ecotope Framework

Apache License 2

Zero Ecotope Framework 是一个基于 Vert.x 的中间件容器,它可以帮助软件开发人员在 Vert.x 中快速开发和实施,集中精力处理项目需求中的业务逻辑而忽略开发过程中的部分细节,项目起源于早期在 Vert.x 生态中缺少类似 Spring Boot 的快速开发工具,Zero 项目的目标是打造 Vert.x 生态中的 Spring Boot,目前整个框架已经发展到第六个年头,大大小小运行了15个左右的企业项目:

一直没有发布 1.0 的版本是因为作为工业级和企业级项目框架,对数据本身比较严谨,一直等待着收集更多生产环境数据,从功能、性能、交付效率上为开发人员提供更加成熟的值得信赖的解决方案。

2023年,Zero前后端进行了大规模的重构,前端引入了 微框架开发中心,后端引入了云原生对接(K8SIstio )、行业建模工具、元数据标准、企业数字化辅助方案,对 开发、测试、运维 流程提供了更加成熟的功能,解决企业在数字化转型过程中面临的各种问题。

0. 引导

1. 基础功能

1.1. 项目结构

最新版的项目表(新版拆分在不同的库中):

Name Comment
zero-ecotope (语义:生态)
根项目主项目、版本管理、文档管理等。
zero-epic (语义:史诗篇章)
内含 AMS (Agreed Metadata Specification)的接口设计和定义规范,可作为最底层跨框架的基础功能库底座。
zero-elite (语义:精英)
Zero Core 核心框架,包含各种内置组件、功能函数、编排器等,为上层容器提供基础功能支撑。
zero-energy (语义:能源)
Zero Web 容器,容器主要用于单机运行和OSGI插件化运行,OSGI部分开发中。
zero-equip (语义:装备)
Infix Architecture 下的功能插件模块。
zero-extension (语义:扩展)
Zero Extension 扩展业务插件模块,类似 ODOO. 的功能拓展,带部分业务功能。
zero-external (语义:外部集成)
Zero External 动态建模专用外联插件。
zero-entry (语义:入口)
Zero入口项目,包含开发模式的 import POM 和单机版脚手架专用依赖集。

1.2. 常用链接

说明
Zero Ui Zero Ui:基于 ReactAnt Design (Pro/g2/g6) 的前端框架。
Zero Ai Zero Ai:快速开发常用脚本工具箱、代码生成、数据生成、模拟请求等
Zero Docs (英文) 热心网友提供的一份在线文档:onemsg, 作者BLOG https://juejin.cn/user/3597257778669592/posts.
Zero代码示例 旧版本常用的Zero在线代码示例。
旧版英文文档 旧版 0.4.8 文档(英文)。
《Zero冥思录》 中文版标准Zero引导教程(总19章)。
《Vert.x逐陆记》 中文版Vert.x教程 ( In Progress,我很懒,只有前三章 )
《Zero云平台白皮书》 开发实施手册:扩展模块、前端、云端、工具的工程化白皮书。

1.3. 元数据标准 ( AMS )

最新版本中 > 0.9.0,重新设计了系统最底层,提供了跨框架和跨容器的 元数据标准 ,详情参考:《9.标准化》,此标准可作为 Vert.x 引入独立项目的底层功能使用。

<!-- 0.9.0 -->
<dependency>
    <artifactId>vertx-ams</artifactId>
    <groupId>cn.vertxup</groupId>
    <version>${ZERO_VERSION}</version>
</dependency>
        <!-- 1.0.0 -->
<dependency>
<artifactId>zero-ams</artifactId>
<groupId>io.zerows</groupId>
<version>${ZERO_VERSION}</version>
</dependency>

2. 俯瞰

换了个名字 Ecotope 是因为整个框架目前合计超过 50 多个子项目,而因为强迫症,目前所有项目的主项目命名为 zero-e 前缀,参考项目语义。

2.1. 模块化

Zero Extension 扩展包开启了三种模块化场景,您可以根据自己所需单独配置:

  • 静态:基于配置数据的基础模块化,每次上模块必须重启容器(开发型、配置型)
  • 静态:基于后端元数据规范的模块化,第二管理端可动态配置模块(数据型)。
  • OSGI模块化:支持热部署的模块化,不下线模式(Aeon System)。

Zero Extension 扩展包中的标准扩展模块如下(开发中心截图):

2.2. 完整拓扑

Zero Framework 配套的框架为 Aeon Framework 云原生框架,二者整体架构图如下:

2.3. 建模设计

建模规范(AMS,纯接口高阶设计)的诞生为整体系统提供了 云原生、低代码、建模、基础功能 四大核心区域,使得最新版Zero可支持不同的建模设计:

  • ISO规范下的标准化模型,如 ISO-27001, ISO-20000, ISO-9001
  • 引入Eclipse EMF,可根据设计模型图生成工程化部署文件以及UML反向工程图。
  • BPMN 2.0 规范和 JBPM 规范提供了完整了企业流程规范。

整体规范基础结构如下缩略图

2.3. 启动流程原理

旧版启动流程原理图如下缩略图(两个月前的版本):

3. 环境搭建

3.1. pom.xml 中配置

您可以直接在 pom.xml 引入如下配置(1.0中换了 groupId ):

JDK 17+, vert.x 4.x(1.0.0)

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <!-- 继承部分 -->
    <parent>
        <groupId>io.zerows</groupId>
        <artifactId>zero-import</artifactId>
        <version>1.0.0</version>
    </parent>
    <!-- 依赖部分 -->
    <dependencies>
        <dependency>
            <groupId>io.zerows</groupId>
            <artifactId>zero-mini</artifactId>
        </dependency>
    </dependencies>
</project>

JDK 17+, vert.x 4.x


<parent>
    <artifactId>vertx-import</artifactId>
    <groupId>cn.vertxup</groupId>
    <version>0.9.0</version>
</parent>

JDK 11+, vert.x 4.x


<parent>
    <artifactId>vertx-import</artifactId>
    <groupId>cn.vertxup</groupId>
    <version>0.8.1</version>
</parent>

JDK 8, vert.x 3.9.x


<parent>
    <artifactId>vertx-import</artifactId>
    <groupId>cn.vertxup</groupId>
    <version>0.6.2</version>
</parent>

3.2. 单机启动

基本启动代码如下:

import io.vertx.boot.VertxApplication;
import io.vertx.up.annotations.Up;

@Up
public class Driver {

    public static void main(final String[] args) {
        VertxApplication.run(Driver.class);
    }
}

启动后您可以在终端看到类似下边输出 ( 默认端口 6083 ):

[ ZERO ] ZeroHttpAgent Http Server has been started successfully. \
    Endpoint: http://0.0.0.0:6083/

3.3. 云端启动

云端启动依赖 Aeon System, 代码如:

import io.vertx.aeon.AeonApplication;
import io.vertx.up.annotations.Up;

@Up
public class Driver {
    public static void main(final String[] args) {
        AeonApplication.run(Driver.class);
    }
}

详细教程参考《Zero云端白皮书》。

5. 其他

5.1. 案例清单

  • Deprecated: 已放弃
  • In Progress: 开发和升级开发
  • Running: 生产环境运行
系统名 Zero版本 系统状态
TLK手机视频管理项目(对接爱奇艺) 0.4.6 Deprecated
ISCCC企业认证评价项目 0.8.1 Running
数字化协同办公平台 0.8.1 Running
商机管理系统 0.8.1 Running
水果进销存后台管理系统 0.8.1 Running
政府内部集中采购平台 0.8.1 Running
发票认证集成连接 0.8.1 Running
CMDB配置化管理系统 Latest Running
ITSM流程管理平台 Latest Running
资产报送对接 Latest Running
ISO27000/ISO27001流程管理平台 Latest Running
企业内部培训平台 Latest Running
数据分析考卷系统 Latest Running
医疗器材管理系统 Latest In Progress
酒店管理平台 Latest In Progress
IoT物联网控制中心 Latest In Progress
合规制度管理平台 Latest In Progress

5.2. 微信群

使用: 445191171 加作者微信,拉群.

作者微信

DESIGNED IN CHINA(中国设计)

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text up.god.file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE up.god.file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text up.god.file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE up.god.file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE up.god.file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the up.god.file format. We also recommend that a up.god.file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this up.god.file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

Zero Ecotope Framework 是一个基于 Vert.x 的自研发中间件容器,它以MBSE建模为核心,融合部分云原生和低代码的能力,侧重配置驱动、数据驱动的方式,帮助开发人员快速交付和实施企业项目,提高中小企数字化转型落地的进程。 expand collapse
Shell and 2 more languages
Apache-2.0
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zero-ws/zero-ecotope.git
git@gitee.com:zero-ws/zero-ecotope.git
zero-ws
zero-ecotope
zero-ecotope
master

Search