- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
企业SOA框架设计架构之家微信号 itfly8功能介绍 ITFLY8架构之家,专注于架构知识分享交流,涵盖项目管理和产品设计。包括大型分布式网站架构(高性能,高可用,缓存,消息队列...),设计模式,架构模式,大数据,项目管理(SCRUM,PMP,Prince2),产品设计等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 网站:模拟服务:服务的调用:服务调用过程中的管道模块设计:路由表及路由更新:适配器:最后,是最重要的持久化的领域实体:本篇写到我们的 SOA 设计分为两个层面来进行:一个是系统间的 SOA 设计,主要通过 ESB 来完成;另一方面则是单个应用系统内部的 SOA 设计,下边将会就后者进行详细说明。企业 SOA 设计(2)–组件化产品开发平台平台整体结构在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵向把业务进行拆分,以业务组件的形式进行开发,并最终把多个开发完成的业务组件进行组合,形成最终的软件产品。按照组件化开发的产品,是基于一个公共的产品开发平台来建立的。由平台来提供所有的底层设施。平台包括技术平台和业务平台两个层面。在技术层面上,平台提供了一系列的类库、框架、组件、工具,以及为业务组件化提供相应的技术支撑。在业务层面上,业务平台中积累了大量的封装完善的业务组件,以及一些常用的业务控件,以供开发新产品时进行选配。同时,平台还为整个软件过程提供一系列的其它支持,例如工具、设计器、管理界面等。下图,是平台的整体结构图:图中罗列了大部分的关键组成部分,细节本篇不述。组件集成平台对于一个独立的业务,我们可以将其封装为一个独立的业务组件,并最终放到组件库中。业务组件之间,则以服务、事件两种形式进行交互。要支持这种模式的交互,技术平台还需要提供几个技术框架:插件平台、服务容器、事件总线。下图是组件集成架构:1.技术平台提供事件总线、轻量级服务总线。2.组件内部以领域驱动的模式开发,以领域实体框架作为基础框架。组件内、组件间,也都是面向领域实体来进行交互。3.组件向外部的其它组件提供组件事件、组件服务。外部组件也只能直接调用组件提供的服务
文档评论(0)