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

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

 

企业 SOA 整体方案

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

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

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

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

 

ESB 目标功能

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

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

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

 

ESB 主体设计

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

 

ESB 详细设计

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

  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 网站:

模拟服务:

服务的调用:

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

路由表及路由更新:

适配器:

 

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

 

 

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

时间: 2024-08-17 14:42:25

企业 SOA 设计(1)–ESB 设计的相关文章

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

最近为公司完成了一个 ESB 的设计.下面简要说明一下具体的设计方案.   企业 SOA 整体方案 在前一篇<SOA.ESB.NServiceBus.云计算 总结>中说到,SOA 是面向服务的架构,其核心思想是把业务进行组件化,而业务组件的能力服务化. 我们的整个 SOA 的设计分为两个层面:一个是系统间的 SOA 设计,另一个则是单个系统内的 SOA 设计.系统间的 SOA 设计,主要是设计一个 ESB 系统来实现各业务系统间的交互.而系统内部的 SOA 设计,则是建立一个组件化的技术平台,

正确认识SOA真谛 走出ESB迷途

关于如何把必要的企业服务总线转化为面向服务的架构一直存在着争论.强调ESB对于SOA重要性的人有着自己的关注点,而质疑ESB作为SOA基础的观点也有着更深层次的考虑,同时是对前一种观点走向极端的一种有益的矫正. 使用SOA架构来搭建IT系统是一个复杂的过程,而ESB的使用则简化了这一过程."面向服务的架构(SOA)从根本上改变了对企业应用的设计.开发和集成的方式.它倡导企业应用的模块化服务.便捷集成和重用.然而SOA也带来一系列的技术挑战,如可靠的消息传递.服务的虚拟化.服务的发现和调用.策略管

使用Dojo工具包和JSON-RPC构建企业SOA Ajax客户端

引言 异步JavaScript和XML (Ajax)是使用本机浏览器技术构建富Web应用程序的新方法.对于编写需要某些类型的"活动"用户界面的复杂应用程序的开发人员,JavaScript 在这方面已经做得很好.不过,JavaScript 难于编码.调试.移植和维护.使用 Ajax 工具包有助于最大程度地减少使用 JavaScript和Ajax 带来的许多常见问题.优秀的Ajax 工具包提供了一组可重用的小部件.用于扩展和创建小部件的框架.事件系统.JavaScript 实用工具和增强的

网站设计参照:概念设计的综合思考

在现有产品的改善中概念设计的作用一样非常重要,比如:你可以在你的网站改版时,首先把现有网站的情况通过一张完整的概念图整理出来,让大家更加清楚什么地方需要改进.有多少需要改进等等,然后再把改版之后的规划通过概念图的方式再次呈现出来,做到很好的规划和对比- 可以模拟未来的设计师 本文作者:白鸦 下面是我曾经在一个演讲中提到过的一张图,大致可以这么描述: 三个要素:用户.技术.品牌 1.做任何产品设计之前我们必须要考虑这三个要素:用户.技术.品牌. 2.理解用户是产品的基础. 只有你的产品是用户需要的

字体设计:标志字体全新设计细微分享

文章描述:标识字体设计中的细节微创新分享. Donald Young的简介: Donald Young是一位职业的字体设计师,专注于公司和企业的专用字体以及字体标志设计,可以说1926年出生的他是世界上仍然健在的最杰出的字母标识大师.曾为多个著名的企业公司设计过标识字体,年过八旬的他仍然致力与字体设计与设计教育,从1955到1978年,从1997年至今,Donald已在Art Centre College任教46载- 一些很小的改变成就了从传统到现代的文化传承,我们今天看到的字母和五百年前的几乎

用户体验设计理论:用户体验设计的方方面面

我们常说的用户体验亦称作:背景调查,以客为本的设计.聚焦用户设计.移情设计.可用性.可用性工程.可用性测试.用户经验(UXD)设计.用户-友好设计. 以用户为中心的设计基础 以用户为中心的设计有个核心前提:最好的设计产品和服务源于对潜在用户的需求的了解.在设计最初,设计师积极与终端用户交流收集见解,以此推动设计的进展,并贯彻到整个设计过程. 用户为中心的设计方式可以得到新的见解,这对所有的设计项目都是有益的,尤其是对新产品新服务:在实行进一步改进现有的产品和服务时显得更为的需要.了解用户体验能引

如何设计伟大产品:设计不应是蓝图 要学会讲故事

中介交易 SEO诊断 淘宝客 云主机 技术大厅 叙事为主的设计流程表现高效 对于产品设计团队来说,他们面临的最大问题是,经常将外观时髦的产品与功能优越的产品混为一谈,而且这种问题屡见不鲜.表面看来,这是一个微不足道的失误,但却会造成十分严重的后果:毕竟,如果用户玩不转你的产品,即便它们看上去再好,也没人买账. 我觉得,消除这种障碍的最佳途径是,采用一种以叙事为中心的设计手法.这种手法的核心理念是,针对产品提出一系列叙述性使用案例,从用户的角度出发,将产品设计的每一个步骤都描述清楚.我向大量创业公

设计新解:聚焦设计与管理

演讲人:Richard Buchanan 译者: UCD翻译小组,Jingle 背景 COINs2010:第二届Collaborative-Innovation-Networks年会,由萨凡纳艺术与设计学院.麻省理工学院,韦恩州立工程学院协办.年会官网http://www.coins2010.com Richar-Buchanan:前卡内基梅隆设计学院教授,现任教Weatherhea管理学院. COINs闭幕主旨发言:聚焦设计与管理 (节选) 在我的职业生涯中做过许多次KEYNOTE演讲,但之前

伟大网页设计之10个设计技巧和40个例子

作为一名网页设计师,如何在第一时间打动潜在的客户是至关重要的.如果你设计的东西不能够打动他们,你就会失去一切,这个世界有的时候就是这么的现实.那究竟要注意哪些细节才能够在一个正确的方向去打动客户,让浏览者源源不断呢!?下面几点可能是你需要反思的. 1.有明确的标志和口号我们知道有一个好的标志是企业形象的开始.好的口号可以让你以更快的速度去曝光自己的站点.在互联网时代,这是重要的开始. 2.让你的页面遵循用户体验,易于浏览这点相信我们都有着切身的体会.好的网站是不需要你思考的,它有好的人机交互设计