去年差不多时间写了一篇CUBA平台使用感想 - 架构师角度 ,CUBA 这又发展一年了,从去年的版本 6 进化到全新的版本 7,其中有了不少的变化,而且经过近一年的熟悉、使用和思考,不得不说,CUBA 平台确实是企业级应用开发这个领域不可忽视的一个竞争力量。
全面的架构
CUBA 中文站在最新的一次改版中,在首页推出了 CUBA 7 的架构图,但不是下面这个版本,而是稍作裁剪省去了左边的前端展示部分。不过不影响需要表达的内容。
下图中蓝色部分为 CUBA 默认带的功能,橙黄色部分是需要开发者自己实现的部分。
架构解析
从架构上看,新版本的 CUBA 7 依然采用了 module 的方式,GLOBAL、CORE、WEB、PORTAL 四大模块将核心架构做了很好的松耦合处理,开发上仍然很好的支持团队合作。
由下自上看看这些模块如何服务于企业级应用开发的:
存储部分
数据库方面,除了应用本身的主数据存储之外,支持附加数据存储(外部数据库),可以正向生成数据库脚本后者通过数据库反向生成 Java 对象。
企业开发中面临的一个常见问题就是需要集成或者访问企业现有的数据库,亦或者与现有的系统共享数据。CUBA 的附加数据存储能很好的解决这个问题,只需要将现有的数据库作为附加存储,那么运行于主数据存储上的应用程序便可无缝对现有数据库进行 CRUD 操作了。
文件存储方面,CUBA 默认提供了方便的文件存储服务以及基于 AWS S3 文件存储的服务,一般来讲够用了。如果需要扩展的话,CUBA 也提供了 FileStorage 接口,由于使用 Spring 技术,因此可以通过实现该接口来自定义文件存储的方式。这个是个中规中矩的设计。文件访问在企业应用中,也是非常常见的功能。