这 10 个 SOA 设计模式是如此之重要,其应用是如此之广泛,以至于它们都有些显而易见了。

1. 服务无关

服务无关实现对多种业务通用的逻辑。将服务无关的逻辑分离成离散的服务以方便服务的重用和整合。

原则:复用,服务整合

2. 服务无关的声明

服务无关的服务应该显式声明它们是服务无关的。这样对于后续的设计者和架构者来说能够清楚哪些服务是被设计用来进行重复使用的。

原则:复用,服务整合

3. 服务无关的事务

服务无关的服务可以被封装到具备能够回退所有行为和改变的回滚特性的原子性的事务中。这些由事务管理的服务可以在组件层( 译者注:SOA 系统总体划分的三个层次:组件层、系统层、集成层)进行实现,并被多个服务进行复用。

原则:服务无状态

4. 企业服务总线(ESB)

ESB 在消费者和服务之间扮演着一个消息代理的角色。ESB 能够进行消息传输、路由以及通过不同的通信协议连接到各个应用。

原则:高内聚低耦合

5. 服务门面

服务门面处于服务和契约之间。它消除了服务及其契约之间的紧密的耦合性。这样做的目的是在更换契约的时候对服务的更改程度能够降到最低。一个服务可以拥有多个服务门面以支持多个契约。

原则:松耦合

6. 服务回调

服务要求它的消费者通过异步的方式对其进行调用。如果消费者需要一个响应,它将提供一个回调地址。在服务处理消费者的请求到了某个阶段的时候,它将对消费者进行消息响应。这种办法大大释放了服务器的资源,尤其是服务将要进行长时间执行的场景。

原则:松耦合

7. 多个服务契约

一个服务可能会同时支持多个契约。这样做可以支持向后兼容(这样当改变一个服务的时候,所有的消费者不必随着进行更新)。这样做还能够为不同的目的来为同一服务提供不同的视图(也达到了重用的目的)。

原则:复用,松耦合

8. 认证代理

认证代理为消费者认证承担责任。消费者通过使用 token 来对服务进行访问。

9. 消息来源认证

通过数字证书来对客户端进行认证。

原则:服务整合

10. 消息过滤

在对消息进行处理之前先过滤掉有害数据。

原则:标准服务契约

原文链接:10 Soa Design Patterns Every Architect Should Know,发布日期:2010 年 9 月 7 日。

作者简介:Anna Mar 是一名拥有 18 年以上金融领域经验的首席架构师。

每位架构师都应该熟知的 10 个 SOA 设计模式相关推荐

  1. 高级架构师都在读的10本Java实战书籍,Java开发进阶必备书单

    关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书! 毕竟,书是学习的海洋呢!So,Java程序员你们准备好了吗?双手奉上Java程序员必读之热门书单. 在下面这 1 ...

  2. 大厂资深架构师都在读的10本Java实战书籍,Java开发进阶必备书单

    入门 <SSM企业级框架实战> 作者: 肖睿/丁慧洁/张宁彬 **简介:**框架(Framework)的本质为某种应用的半成品,即把不同应用程序中的共性内容抽取出来而形成的半成品程序.SS ...

  3. 每个架构师都应该了解的理论:康威定律

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 丑胖侠二师兄 来源 | 公众号「程序新视界」 老板听说最近流行"微服务& ...

  4. 互联网架构设计漫谈 (6)-90%的架构师都知道的工作流原理

    互联网架构设计漫谈 (6)-90%的架构师都知道的工作流原理 工作流是互联网中常见的应用场景,目前国内有很多厂商提供各种各样的工作流引擎.在国际也有一些知名的工作流引擎,比如:jBPM 和 Activ ...

  5. bi工程师和java哪个好_每个好架构师都是一位出色的程序员

    [51CTO独家特稿]架构师,听起来是如此神秘的一个称号.尤其是在开发领域刚入门不久的菜鸟级程序员眼中,架构师都是高手,都是牛人,都是如此高高在上的存在. 不过,在搞了四.五年编程之后,程序员们往往早 ...

  6. 为什么只有java才有架构师_为什么架构师都是java出身?怎样成为优秀的java架构师?...

    java架构师作为程序员的发展方向,很多程序员都想做架构师,但是同时也不是很明白为什么架构师都是java出身?那么接下来,我们就来给大家讲解一下这方面的内容. 所谓架构师,只是功底深厚的程序员.并且j ...

  7. 每个架构师都应该培养业务思维

    嘉宾 | 陈辉 编辑 | 薛梁,林晓婷 架构师是一个承前启后的岗位,正如一个路由器,对各种业务需求加以分析处理后路由到下游产品和研发团队.所以,对于业务的理解能力是必不可少的.7 月 12 日深圳架构 ...

  8. 每位开发人员都应铭记的10句编程谚语 (我超喜欢,转载了)

    所谓谚语,就是用言简意赅.通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情.也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己. 1. 无风不 ...

  9. 每位开发人员都应铭记的10句编程谚语

    所谓谚语,就是用言简意赅.通俗易懂的方式传达人生箴言和普遍真理的话,它们能很好地帮助你处理生活和工作上的事情.也正因如此,我才整理了10句编程谚语,每位开发人员都应该铭记他们,武装自己. 1. 无风不 ...

最新文章

  1. Nginx+Tomcat动静分离搭建
  2. 大一计算机课程ppt作业,大学生计算机基础作业PPT.ppt
  3. 【LDA学习系列】Dirichlet分布python代码
  4. Facade(外观)--对象结构型模式
  5. 初一模拟赛(4.27)
  6. python语言的核心理念是_Python 编程语言的核心是什么?
  7. appium 切换native/ webview,findby,还有页面元素定位一直小于0的问题的解决
  8. 使用MS Test进行单元测试
  9. Makefile.am:1: error: Libtool library used but 'LIBTOOL' is undefined
  10. 解决JS代码注释无效
  11. 计算机数字媒体专业职业规划书,如何写数字媒体技术的职业生涯规划书?
  12. Android 11日历中添加账户跳转失败
  13. 页面首页、上一页、下一页、尾页设置
  14. ipencil 无法与iPad配对
  15. Android-PickerView实现全国地区选择
  16. 【GANs】Conditional Generative Adversarial Nets
  17. Windows 查看文件大小
  18. swift对接整合ceph
  19. H - Relief grain
  20. Google新动作频出 Google Trends发布

热门文章

  1. 游戏消息服务器长链接,游戏服务器匹配 长连接
  2. google广告系统
  3. 千万别爱上quot;老炮儿quot;这样的男人
  4. 甘肃计算机一级考试科目,2019年9月甘肃省计算机一级考试用书:一级计算机基础及MS Office应用(上机考试题库+模拟考试)2本装...
  5. 发那科机器人点位编辑_发那科机器人零点复位的实操步骤——发那科配件
  6. 1_svn版本控制客户端下载,安装,安装中文包使用
  7. 全国城市数据及地图数据-python爬取
  8. 正文双栏,尾注只占页面半边
  9. mysql将公历农历转换_php 公历农历如何实现转换
  10. ES7 ik结合pinyin实现简拼搜索