为什么80%的码农都做不了架构师?>>>   

What is middleware? 原文地址

个人看完这篇文章后的一点感想: 试想一下某国的武器库中有一种很厉害的武器,当这个国家和其他国家爆发争端的时候,这个国家想要使用该武器,但是他们却无法将该武器投送到战场。中间件就是用来解决这个投送过程的。

中间件是一种多用途软件,可为操作系统提供的应用程序之外的应用程序提供服务。 内核和用户应用程序之间的任何软件都可以是中间件。

分析师和系统理论家Nick Gall说:“中间件是关于软件的软件。” 中间件不提供传统应用程序的功能,它将软件连接到其他软件。 中间件是您的IT基础架构的管道,因为中间件允许数据从一个应用程序流向另一个应用程序。 例如,Apache Kafka是开源中间件,可为您的应用程序提供实时数据流功能。

帝国与企业

古罗马是历史上最引人注目的卫生系统之一。 渡槽和下水道的复杂网络非常重要,普林尼长老将它们视为罗马“最值得注意的成就”。 就像罗马的渡槽带水一样,企业中间件将数据从一个地方传送到另一个地方。 我们并不是说中间件是人类最伟大的成就,但是许多其他 - 或许更值得注意的 - 软件可以因为中间件而起作用。

管道可能看起来像中间件的一个简陋的比喻,但两者对于运营像罗马这样的大型复杂系统至关重要。 您的企业类似于快速发展的城市:城市的所有部分都需要水,就像企业的所有部分都需要数据一样。 没有管道,一个城市效率低下且彻底凌乱。 没有中间件,您的企业也是一样的。

有哪些中间件?

中间件可以包含各种软件,包括:

应用程序编程接口(API)
API是用于构建应用程序软件的工具,定义和协议集,它使您的产品或服务可以与其他产品和服务进行通信,而无需了解它们的实现方式。

应用服务器
应用程序开发平台(如RedHat®JBoss®EnterpriseApplication Platform)。 应用程序服务器是一个框架,它提供创建应用程序的功能和运行它们的服务器。

应用集成
应用程序集成是通过集成框架组合来自多个应用程序的数据的实践。 该框架可以限制整个组织中的点对点连接数,这可能导致复杂的依赖关系和潜在的失败点。

数据集成
数据集成是将来自异构源的数据组合到用户访问和操作的统一视图中的实践。

事务处理(TP)
TP通过控制事务应用程序,实施业务逻辑和规则或推送数据库更新来维护系统(通常是数据库或文件系统)的完整性。

远程程序调用(RPC)
客户端 - 服务器交互,允许应用程序或功能跨多个平台分布。

面向消息的MIDDLEWARE(MOM)
通过添加排队机制对RPC进行改进,该机制允许客户端 - 服务器交互在目标节点缓慢或繁忙的情况下异步发生。

OBJECT REQUEST BROKER(ORB)
另一种客户端 - 服务器交互,允许访问远程服务,就像它们是本地的一样。 服务器进程向ORB注册,客户端联系ORB以查找这些服务。

为什么要关心中间件?

如果数据就像公司管道中的水一样,那么考虑一下,如果你不需要拿水桶,前往水泵,用水填充水桶,并将其拉回到原来的位置,那么会有多好。 没有中间件,这就是你每次想要工作时所做的事情。 将数据通过管道传输到企业中的任何位置都会更方便,更高效。

您可以根据需要获得哪些数据?

当您跨应用程序集成数据时,您可以专注于为组织创建很酷的新东西,而不是将时间花在手动流程上。 例如,通过现代应用程序平台,开发人员可以专注于开发应用程序功能,而不是管理他们的应用程序如何与其他环境集成。

转载于:https://my.oschina.net/j4love/blog/3047528

翻译自 RedHat 文章:What is middleware? (什么是中间件?)相关推荐

  1. 【翻译自mos文章】使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式。...

    [翻译自mos文章]使用aum( Automatic Undo Management) 时遇到 ORA-01555错误--- 原因和解决方式. 使用aum( Automatic Undo Manage ...

  2. Expo大作战(三十一)--expo sdk api之Payments(expo中的支付),翻译这篇文章傻逼了,完全不符合国内用户,我只负责翻译大家可以略过!...

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  3. 翻译Raywenderlich 最新文章What’s New in Swift 4

    Swift学习交流群: 313838956 . 本群由Guards翻译组创建并维护, 志于给认真想学习Swift的同学打造一个良好的交流圈子. 同时群内会不间断分享Swift的资料, 如果你想学习Sw ...

  4. mysql 命令as 使用_【翻译自mos文章】使用asmcmd命令在本地和远程asm实例之间拷贝as...

    使用asmcmd命令在本地和远程 asm 实例之间 拷贝asm file的方法 参考原文: How to Copy asm files between remote ASM instances usi ...

  5. 方便地边看便翻译原版pdf文章(wps)

    1.使用wps打开pdf文本. 2.点选文章内容,在弹出地菜单中选择"划词翻译"项,如图. 3.在左侧的"短词翻译"界面中即可查看翻译的结果.

  6. 火车头V9翻译插件-终极稳定版(翻译10000篇文章不报错)

    因为php插件和python插件带来的效率降低问题,如无特别说明,本博客开发的火车头插件一律使用C#开发   最近经常看到有人需要翻译插件,官方的翻译插件是V9版本虽然能用,但是这个插件有不少问题,可 ...

  7. 10/11论文关键词,自动去偏框架论文翻译,发文章思考

    作者:袁冬至 微信:DataGap 公众号:救命的药 研究方向:推荐系统 欢迎交流,学习! AutoDebias: Learning to Debias for Recommendation 还是看的 ...

  8. [导入]我翻译的JavaScript文章

    JavaScript 还是很不错的 JavaScript:世界上最被误解的语言 JavaScript中的类继承 JavaScript中的私有成员 JavaScript = C + Lisp 嵌入Jav ...

  9. 【翻译自mos文章】11gR2中的asm后台进程

    11gR2中的asm后台进程 參考原文: ASM Background Processes in 11.2 (Doc ID 1641678.1) 适用于: Oracle Database - Ente ...

最新文章

  1. bits/stdc++.h头文件总结
  2. Linux下pthread的读写锁的优先级问题
  3. [Remoting专题系列] 八:元数据
  4. 推理集 —— 特殊的工具(二)
  5. Anti-alias的前世今生(二):Post process based AA
  6. 关于find指令的一点使用小心得 II
  7. python中import和from...import...有关头文件的使用方法及工作原理
  8. 新华三PRIMERA,开启存储新纪元
  9. 关于matlab中的gcf,gca
  10. 2017_Generating high-quality crowd density maps using contextual pyramid cnns
  11. 云计算之云计算和虚拟化的区别
  12. SATA M2 SSD 无法安装系统的解决方法
  13. vue脚手架 使用npm run dev 遇到的错误问题
  14. 2012年部分节假日安排
  15. 小米路由器显示网络未连接到服务器,小米路由器不能上网(连不上网)解决方法...
  16. 如何运用知识付费系统,实现内容变现!
  17. 基于tiny4412的u-boot移植(二)_ git clone
  18. 浅谈自适应滤波器---(快速RLS算法)
  19. 【数据结构笔记】3.栈和队列
  20. 欢迎大家多踩踩偶的个人博客噶 哇哈哈

热门文章

  1. 用java代码实现九九乘法表
  2. linux文件被覆盖如何恢复_在Linux下误删文件后恢复
  3. LINUX矩阵键盘简单介绍,stm32矩阵键盘原理图及程序介绍
  4. seo提交工具_经验分享:SEO新手面对新网站应该如何去优化
  5. 职称计算机 高级会计,高级会计《职称计算机》网络应用:Windows防火墙
  6. 循环获取另一个php变量,通过引用将多个变量传递给foreach循环(php)
  7. es6 新增数据类型_ES6新增特性整理
  8. ImportError: libjpeg.so.62: cannot open shared object file: No such file or directory
  9. Java学习笔记:文件通道(FileChannel)
  10. 大数据学习笔记02:在私有云上创建与配置虚拟机