写点什么

Udi Dahan 谈面向服务的合成

  • 2014-08-12
  • 本文字数:816 字

    阅读完需:约 3 分钟

在面向服务的架构( SOA )中,一个服务的多个客户端组件通常会运行在同一个进程中,同时会作为其它服务的组件。, Udi Dahan 对在这一场景中,如何在客户端与服务器的通信方面,将多个逻辑上的服务调用收集起来,然后将其合并成一个较大的物理调用进行了描述。这种方式可以尽可能地避免高昂的通信开销,否则这将带来更大的成本和延迟。

Udi 是面向服务架构方面的权威,同时也是 NServiceBus 的创建者。他对在客户端和服务器端同时使用松耦合组件时,如何对在客户端 - 服务器之间请求的往返开销作出优化进行了演示。在该演示中,Udi 给出了一个例子,当客户端触发了某个事件时,比如一次按钮点击,将会导致两个客户端组件需要访问它们各自的服务器组件,从而获取到相应的数据。

通常的做法是让每个组件各自发起一个普通的 Ajax 请求,然后通过使用某个封装好的客户端代码库来为订阅事件注册一个回调函数,从而能在数据从服务器返回时触发该回调函数的调用。而 Udi 并没有选择这样做,他使用的代码库可以感知被处理事件的上下文,因此它可以在内存中暂存所有的请求,直到所有回调函数都注册完毕后,它会将所有的请求合并,从而只向服务器发起一个合并后的物理请求。

而在服务器端,一个与客户端相对应的代码库会将该物理请求分拆成一个个独立的请求,并为每个请求调用其相对应的服务器组件。当它汇集到所有服务器组件的处理结果后,该代码库又会将这些结果合并成一个结果返回给客户端。

接着,客户端代码库接收到响应结果,并将其拆分,然后将每个独立的结果分发给各自的客户端组件。而在此时,该事件就被完整地处理完了。

Udi 强调了一点,为客户端和服务器端编写的大部分代码,对该封装的代码库而言是透明的。唯一增加的就是一个通用的进行打包和拆包的代码库,该代码库可以支持在那些由大量的小组件组成的客户端和服务器端之间发起逻辑调用,从而最小化某个物理客户端和某个物理服务器之间实际的请求调用。

查看英文原文: Udi Dahan on Service-Oriented Composition

2014-08-12 09:10806
用户头像

发布了 52 篇内容, 共 21.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

语音聊天app源码:系统功能有哪些?

开源直播系统源码

软件开发 直播系统源码 语音直播系统 语音直播

密集计算场景下的 JNI 实战

vivo互联网技术

Java c++ 性能 JVM jni

图灵访谈 | Vue.js官方团队成员霍春阳:跨专业做程序员,是什么感受?

图灵社区

vue.js 代码人生

Spring 全家桶之 Spring Security(二)

小白

8月月更

Spring 全家桶之 Spring Security(三)

小白

8月月更

[教你做小游戏] 用177行代码写个体验超好的五子棋

HullQin

CSS JavaScript html 前端 8月月更

Go-Excelize API源码阅读(十八)——GetPageMargins、SetWorkbookPrOptions、GetWorkbookPrOptions

Regan Yue

Go 开源 源码解析 8月日更 8月月更

面试突击76:${} 和 #{} 有什么区别?

王磊

Java 常用面试题

HMS Core Discovery第17期直播预告|音随我动,秒变音色造型师

HMS Core

基于STM32的录音机设计(STM32F103+VS1053B)

DS小龙哥

8月月更

Spring 全家桶之 Spring Security(四)

小白

8月月更

Spring 全家桶之 Spring Security(五)

小白

8月月更

说实话,Hibernate 和 MyBatis 哪个更好用?

TimeFriends

8月月更

开源一夏 | 大佬,人人都说精通的单例模式,你精通了吗

知识浅谈

单例模式 8月月更

JS【数组合并】的性能差异对比

掘金安东尼

JavaScript 前端 8月月更

数据治理(七):Atlas搭建启动

Lansonli

数据治理 8月月更

数据治理几乎所有常见问题的简答都在这里了

雨果

数据治理

从零开始实现一个MyBatis加解密插件

vivo互联网技术

spring mybatis

静态IP是什么意思?和动态IP 有什么区别

郑州埃文科技

静态IP 动态IP IP地址

SpringBoot 整合 MyBatis-Plus

SpringBoot 2 Mybatis-Plus 8月月更

Udi Dahan谈面向服务的合成_SOA_Jan Stenberg_InfoQ精选文章