六边形之端口和适配器架构 - cockburn

栏目: 数据库 · 发布时间: 5年前

内容简介:在90年代中期的某个地方,我开始绘制一个对称架构,其中数据库不位于该架构的底部,而是完全在应用程序之外。为了打破过去那种“顶部和底部以及左右两侧”视角看法,我画了一个六边形的形状,并提出了相当愚蠢的名称:六边形的各个方面代表了应用程序与外部世界的不同对话。以下是我的一位朋友正在建造的系统中的一个例子,该系统接受了气象局关于龙卷风和山洪的通知,并且会给人们打电话并在他们的应答机上留下关于疏散程序的信息。在通用实现中,实际上是他正在使用的是,将有技术驱动的接口,一个用于http协议,一个用于应答机器,一个用于人

在90年代中期的某个地方,我开始绘制一个对称架构,其中数据库不位于该架构的底部,而是完全在应用程序之外。为了打破过去那种“顶部和底部以及左右两侧”视角看法,我画了一个六边形的形状,并提出了相当愚蠢的名称: HexagonalArchitecture - 因为我想不出'六边形'是什么意思。

六边形的各个方面代表了应用程序与外部世界的不同对话。以下是我的一位朋友正在建造的系统中的一个例子,该系统接受了气象局关于龙卷风和山洪的通知,并且会给人们打电话并在他们的应答机上留下关于疏散程序的信息。在通用实现中,实际上是他正在使用的是,将有技术驱动的接口,一个用于http协议,一个用于应答机器,一个用于人,一个用于数据库。我的朋友在进展过程中遇到了维护和扩展系统的麻烦。我们一起确定了以下不同类型的对话:

  • 关于天气事件的通知
  • 数据库的数据,比如谁订阅以及他们想要发送通知的地方
  • 疏散程序的数据,无论是发给人还是录音设备
  • 管理控制,例如设置通知事件,计费,更新用户群,应用程序参数等

我们看到有四个根本不同的对话,并且说应用程序应该为每个对话都有一个API,并通过这四个端口与位于端口另一侧的任何端口进行通信。 他会为每个的不同技术创建一个适配器

为了证明端口的这种想法,我们想测试每个端口的另一端确实存在多种外部技术,因此值得使用适配器来调整外部技术到API。

这是我遇到的“端口”概念的最明确的用法 - 通常只有2个:用户和数据库。

六边形(端口)的每个面都代表了应用程序试图与外界交谈的一些“原因”。活动从外部世界到达端口。适配器将其转换为可用的过程调用或消息,并将其传递给应用程序。该应用程序对输入设备的性质一无所知(另请参阅Ward的CHECKS模式语言, http: //c2.com/ppr/checks.html)。当应用程序发送内容时,它会将端口发送到适配器,从而创建接收技术(人工或自动)所需的适当信号。该应用程序在其所有侧面与适配器进行语义上的声音交互,而实际上并不知道适配器另一侧的物体的性质。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

断点:互联网进化启示录

断点:互联网进化启示录

[美]杰夫·斯蒂贝尔 / 师蓉 / 中国人民大学出版社有限公司 / 2014-11-1 / CNY 49.00

一部神经学、生物学与互联网技术大融合的互联网进化史诗巨著。 我们正置身网络革命中。互联网的每一丝变化都与你我息息相关。当科技变得无处不在时,它就会改变你我。在《断点》一书中,大脑科学家和企业家杰夫·斯蒂贝尔将带领读者来到大脑、生物与技术的交汇处,向读者展示生物学和神经学是如何与互联网技术发生联系的;我们是如何通过生物学上的前车之鉴,来预测互联网的发展的;互联网在经历增长、断点和平衡后又会发生......一起来看看 《断点:互联网进化启示录》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换