企业 SOA 设计(1)–ESB 设计

简介: 最近为公司完成了一个 ESB 的设计。下面简要说明一下具体的设计方案。   企业 SOA 整体方案 在前一篇《SOA、ESB、NServiceBus、云计算 总结》中说到,SOA 是面向服务的架构,其核心思想是把业务进行组件化,而业务组件的能力服务化。

最近为公司完成了一个 ESB 的设计。下面简要说明一下具体的设计方案。

 

企业 SOA 整体方案

在前一篇《SOA、ESB、NServiceBus、云计算 总结》中说到,SOA 是面向服务的架构,其核心思想是把业务进行组件化,而业务组件的能力服务化。

我们的整个 SOA 的设计分为两个层面:一个是系统间的 SOA 设计,另一个则是单个系统内的 SOA 设计。系统间的 SOA 设计,主要是设计一个 ESB 系统来实现各业务系统间的交互。而系统内部的 SOA 设计,则是建立一个组件化的技术平台,使得系统的开发能以一个个业务组件的形式完成,并通过技术平台来实现各业务组件的组合与互连。

一般说的 SOA 设计,都是在讲如何进行系统间的互连,例如如何进行 ESB 的设计。但是,不论是系统间互连,还是系统内部的组件化,其实都是 SOA 思想在不同层面上的体现。而我认为,应用系统内部的 SOA 设计,会更重要。因为它不但是一个低耦合、高复用的产品设计,而且也为系统间的 SOA 提供了更好的支持。

本文,主要说明如何实现 ESB 的设计。而更重要的应用系统内部的组件化产品开发平台,则留到下一篇。

 

ESB 目标功能

在前一篇中,列出了一个较完整 ESB 应有的功能。SOA 不但包括简单的系统间互边的功能,也应该包含更高级的 BPM 业务流程编排的功能。

下面,简单列出了我们对于我们的 ESB 的功能树:

image

图中,功能按优先级进行了排序。第一个阶段,只会实现其中红色的部分。而服务编排,则放到了最后。红色部分,是一个 ESB 应该具有的最小功能集。在交互模式部分,我选择了实现‘响应/请求’模式,这种交互方式在系统间互连时场景相对较少,但是不需要引用 MSMQ 等功能,所以实现起来会更简单。

 

ESB 主体设计

对于 ESB 的主体设计,是参考了网上另一个 ESB 的设计,下面是它的设计图:

image

image

image

 

ESB 详细设计

首先,规划出 ESB 整个系统内部的所有组件。

image

  1. Web Portal:ESB 对外以网站的形式公布。同时,服务调用者、提供者,都是直接使用网站提供的功能。
  2. Adapter:协议的适配器组件。
  3. Service Invoker:服务的同步调用器。
  4. Async Invoker:异步方式的同步调用器。
  5. Service Mocker:这个组件用于实体 ESB 的服务可以以 WS 等方式暴露。
  6. ESB Message:ESB 内部的消息结构体。
  7. Service Registry:服务的注册库。
  8. Service Router:服务的路由器组件。
  9. Service Router Cache Notification:路由缓存通知组件。
  10. Logger:日志组件。
  11. Exception Handler:异常处理组件。
  12. Performance Counter:服务调用过程中的一些性能统计工具。

 

以下是一些详细的调用设计。

ESB 网站:

image

模拟服务:

image

服务的调用:

image

服务调用过程中的管道模块设计:

image

路由表及路由更新:

image

适配器:

image

 

最后,是最重要的持久化的领域实体:

image

 

 

细节不说了,有兴趣的朋友可以参考初步的设计,并欢迎与我交流。:)

目录
相关文章
|
Java API 数据库
基于 SOA 的组件化业务基础平台
原文:基于 SOA 的组件化业务基础平台 前言 业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台、软件基础架构平台之间的交互与管理问题”。
1998 0
|
18天前
|
设计模式 负载均衡 前端开发
常见的体系架构模式
本文介绍了10种常见的架构模式,包括分层模式(降低耦合,易扩展)、客户端-服务器模式(职责明确,支持多用户)、主从设备模式(负载均衡,读写分离)、管道-过滤器模式(灵活处理,并行处理)、代理模式(控制访问,安全优化)、点对点模式(去中心化,高容错)、事件总线模式(松耦合,异步处理)、模型-视图-控制器模式(界面分离,可维护性)、黑板模式(解决复杂问题)和解释器模式(用于语言解释器)。每种模式都有其优缺点,适用于不同的场景。其他如事件驱动、微服务等也在探讨之列。详细内容可参考《软件架构理论与实践》。
11 1
|
4月前
|
运维 监控 API
微服务拆分:重构公司局域网管理系统为可扩展的小服务
在当今快速发展的科技时代,微服务架构已经成为许多公司应对不断变化的需求和提高系统灵活性的首选方案。本文将探讨如何通过微服务拆分,对公司局域网管理系统进行重构,将其转变为一组可扩展的小服务。
259 0
|
10月前
|
存储 运维 监控
微服务架构九大特性
微服务架构九大特性
125 0
|
11月前
|
监控 架构师 Devops
「演进架构」架构在实施之前是抽象的
「演进架构」架构在实施之前是抽象的
「演进架构」架构在实施之前是抽象的
|
11月前
|
消息中间件 中间件 交易中间件
【系统架构】面向服务架构(SOA)模式
【系统架构】面向服务架构(SOA)模式
197 0
|
缓存 数据库 SQL
互联网分层架构之-DAO与服务化
互联网分层架构演进的核心原则,是让上游更高效的获取与处理数据,让下游能屏蔽掉数据的复杂性获取细节。
1075 0
|
网络安全 C# 应用服务中间件

热门文章

最新文章