【原创译文】Moqui 概览 — 基本概念(1)
应用构件/工件
Moqui开发框架的工具集都是围绕着业务构件进行组织的,同时这些业务构件允许你进行创建来体现应用系统的通用部分。在Moqui框架中,业务构件指的是你作为开发人员创建的各种XML文件甚至是脚本或者其他代码。框架中支持如下的几种类型的构件:
实体
entities
:贯穿于整个业务系统中的关系数据模型(直接使用模型,无需复杂的对象关系映射)界面
screens
和 表单forms
:用于基于web的应用界面或者其他用户接口(通用方式是基本构件描述存放在XML文件中,或者用户指定扩展存放于数据库中)界面转换
screen transitions
: 用于配置页面到页面的流转以及设置页面跳转时,业务处理过程的必要输入服务
services
: 远程调用的方式运行内部逻辑交互或者曝露外部的服务ECA(事件-条件-行为
event-condition-action
)规则 : 用于类似实体、服务操作以及email信息接收等系统级事件触发
下面给出一个表格来展示应用中通用部分以及业务构件之间的联系:
构件 | 构件描述 |
---|---|
界面screen | XML定义的界面(渲染成各种类型的文本或者用于生成其他UI界面;支持html、xml、xsl-fo、csv以及简单文本转换,开箱即用) |
表单form | XML定义的表单(在界面内定义;各种开箱即用的组件widgets,并可以自定义组件或者自定义扩展已有组件) |
准备展示的数据 | 界面动作actions(在界面内定义,可以调用外部逻辑) |
页面流 | 带条件定义和默认响应的界面转换(在源界面内定义转换,响应目标配置为目标界面或者外部页面资源) |
处理过程输入 | 转换动作actions(不仅可以支持一个简单的服务处理表单的公共验证等,也可以定义页面内部的动作或者外部逻辑调用) |
菜单 | 按照子界面的层级配置定义遍历,自动生成,也可以明确配置定义菜单 |
内部服务 | XML的服务配置方式来定义各种内部或者外部服务操作的实现 |
XML和JSON的RPC服务 | 内部服务配置allow-remote=true 参数,即可以通过公共的服务接口被调用,接口使用的是规范的List和Map数据接口进行映射 |
RESTful web服务 | 通过简单的转换定义来获取内部服务,支持URL路径、表单、JSON请求以及JSON或者XML响应 |
远程服务调用 | 代理方式来定义内部服务,可以采用自动的XML-RPC、JSON-RPC或者其他的映射方式,也可以使用支持RESTful的简单工具或者其他服务类型 |
发送邮件 | 在EmailTemplate中单独配置下标题,界面能直接渲染成html、简单文本的邮件格式 |
接收邮件 | 定义一个email的ECA规则用于调用一个内部服务去处理email |
使用脚本、模板和JCR内容 | 通过资源的门面接口去访问、执行或者渲染资源 |