企业 SOA 设计(2)–组件化产品开发平台

简介:

平台整体结构

在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵向把业务进行拆分,以业务组件的形式进行开发,并最终把多个开发完成的业务组件进行组合,形成最终的软件产品。

按照组件化开发的产品,是基于一个公共的产品开发平台来建立的。由平台来提供所有的底层设施。平台包括技术平台和业务平台两个层面。在技术层面上,平台提供了一系列的类库、框架、组件、工具,以及为业务组件化提供相应的技术支撑。在业务层面上,业务平台中积累了大量的封装完善的业务组件,以及一些常用的业务控件,以供开发新产品时进行选配。同时,平台还为整个软件过程提供一系列的其它支持,例如工具、设计器、管理界面等。

下图,是平台的整体结构图:

Untitled

图中罗列了大部分的关键组成部分,细节本篇不述。

 

组件集成平台

对于一个独立的业务,我们可以将其封装为一个独立的业务组件,并最终放到组件库中。业务组件之间,则以服务、事件两种形式进行交互。要支持这种模式的交互,技术平台还需要提供几个技术框架:插件平台、服务容器、事件总线。

下图是组件集成架构:

Untitl2ed

  • 技术平台提供事件总线、轻量级服务总线。
  • 组件内部以领域驱动的模式开发,以领域实体框架作为基础框架。组件内、组件间,也都是面向领域实体来进行交互。
  • 组件向外部的其它组件提供组件事件、组件服务。外部组件也只能直接调用组件提供的服务,或者监听组件的事件。
  • 组件还提供了一些可重用的 UI、一些可直接使用的分布式服务。
  • 整个应用系统在组合多个业务组件后,再开发一些特定的功能、UI 就可以完成一个完整的系统了。

 

产品构成

下图是一个完整产品的组件构成图:

image

由于我们的产品开发平台必须要支持 721 客户化定制,所以同一个业务组件还对应不同的业务通用级别进行划分:Organization Common 表示组织架构组件最通用的部分,Org Part1 表示组织架构组件的可选包。而 Customiztion 则可以对引用的业务组件做深入的定制和扩展,而不需修改引用组件的代码。

可以看到,对于整个产品来说,在引用了业务组件库中的一些业务组件后,就可以组成了产品的基础功能。Customer App Component 中是应用系统在组件的功能基础上需要再做的工作:完成产品的额外功能,并通过平台接口为一些组件做相关定制。

 

组件内部架构

对于单个的业务组件,其内部的架构依然采用领域驱动的分层架构:

Single Biz Component

图虽大,但并不复杂,就是领域驱动的经典分层:Distribute(DTO 接口层)、Application(应用层/领域逻辑层)、Repository(仓库)、Domain(领域实体)。

重点在于 Domain 包,它不但包括领域实体,还包括了组件事件、组件服务接口,这些都是领域的核心。

位于底层的技术平台,提供一系列支持:IOC/AOP、属性扩展框架、领域实体框架、721定制化框架、数据库生成框架等……

 

结尾

其实,组件化架构设计中,最为复杂是分析出一个封装完好的组件,所要面向的使用者是哪些,这些使用者分别对组件有哪些需求,而这个架构如何满足这一系列需求。例如,我们在设计过程中,对这些方面进行了分析:组件自身的发展需求、组件中各组成部分的可扩展性、组件间的交互需求、系统集成需求、项目组定制化需求、系统外交互需求、易用性。

 

欢迎感兴趣的朋友交流。

目录
相关文章
|
数据可视化 安全 搜索推荐
探析低代码开发平台的核心能力
探析低代码开发平台的核心能力
190 0
|
Java API 数据库
基于 SOA 的组件化业务基础平台
原文:基于 SOA 的组件化业务基础平台 前言 业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台、软件基础架构平台之间的交互与管理问题”。
2103 0
|
8月前
|
监控 Java 测试技术
现代化软件开发中的微服务架构设计与实践
随着软件开发的发展,传统的单体应用架构已经无法满足现代化应用的需求。微服务架构作为一种新的设计理念,为软件开发提供了更灵活、可扩展的解决方案。本文将介绍微服务架构的设计原则、实践方法以及相关技术工具,并结合实例展示其在现代化软件开发中的应用。
|
5月前
|
前端开发 微服务 API
微服务浪潮下的JSF革新:如何在分散式架构中构建统一而强大的Web界面
【8月更文挑战第31天】随着微服务架构的兴起,企业将应用拆分成小型、独立的服务以提高系统可维护性和可扩展性。本文探讨如何在微服务架构下构建和部署JavaServer Faces (JSF) 应用,通过RESTful服务实现前后端分离,提升灵活性和适应性。
69 1
|
7月前
|
存储 数据采集 物联网
低代码与云服务开发相结合:重塑现代软件开发模式
随着数字化转型的深入推进,越来越多的企业开始将业务迁移到云端,以实现更高的灵活性、可靠性和成本效益。云服务已经成为企业数字化战略的重要组成部分。与此同时,低代码开发作为一种新兴的编程模式,也逐渐受到企业的关注。那么,当云服务遇到低代码开发,又会碰撞出怎样的火花呢?
77 4
|
8月前
|
监控 安全 数据管理
现代化后端开发:微服务架构下的数据管理与安全挑战
随着信息技术的不断发展,现代化后端开发正日益注重微服务架构下的数据管理与安全挑战。本文将探讨微服务架构在后端开发中的应用,重点关注数据管理和安全方面的挑战,并提供相应的解决方案。
|
8月前
|
前端开发 Java API
深度|低代码开发平台和微服务架构的优势与挑战
低代码开发平台和微服务架构是当前软件开发领域的两个热门话题。它们都是为了更高效、更灵活地构建和开发应用程序而出现的解决方案。本文将以一款基于微服务架构的OneCode引擎为案例来探讨低代码开发平台和微服务架构的优势和挑战。
|
Cloud Native 数据可视化 前端开发
【源码】采用云原生、微服务、前后端分离构建的低代码平台
支持开发企业级ERP、MES、OA、CRM等应用系统。采用云原生、微服务、前后端分离、中台化思想构建,基于可视化业务建模、流程建模、表单建模、页面建模、报表建模、移动端建模等工具,零代码快速构建云端业务应用,支持云部署和本地部署。
322 0
【源码】采用云原生、微服务、前后端分离构建的低代码平台
|
自然语言处理 数据可视化 安全
业务开发“银弹” ——低代码开发平台
业务开发“银弹” ——低代码开发平台
211 0
|
存储 前端开发 JavaScript
基于 LowCodeEngine 的低代码组件体系的建设和实践
基于 LowCodeEngine 的低代码组件体系的建设和实践
1022 0
基于 LowCodeEngine 的低代码组件体系的建设和实践

热门文章

最新文章