• ·编程说·
  • ·文字·
  • ·技术·
  • About Me
Coding & Living & Enjoying
生活总是这样,现在措手不及的正是当初游刃有余的你
  1. Home
  2. 技术
  3. This article

编程说【第二期】 - 聊聊系统集成与中间件开发

2020年08月17日 12Browse 1Like 0Comments
Table of Content

编程说【第二期】 - 聊聊系统集成与中间件开发


hi,大家好,这是编程说的第二期。今天想和大家聊一聊软件里的系统集成和中间件的开发。

背景

软件世界早已经从个人英雄主义进化到了高度产业化的时代,开发运营越来越呈现了模块化的趋向,一个公司可能只负责一个独立的功能。比如专门做CRM的,ERP的,营销工具的。在一个大型软件项目中,数十个软件公司共同参与也是很平常的事情。

当年求伯君一人之力硬刚wps的故事未来会难以重演。

如果一家公司需要上述的这些功能,那么他就需要采买不同公司的软件,而为了方便使用,它们之间有部分数据需要进行交换。由于这些软件分属于不同的软件公司,没有办法提前为其他软件提供完全的支持,因此,需要另外的软件来将这些功能串联起来,这样的软件就是系统集成软件,也叫做中间件。

在系统集成方面,硬件的研发与设计相对于软件而言走得更远,比如我们的手机里面,摄像头是sony的,屏幕是三星的,内存又会是另外一个供应商的。最后它们在一个流水线中
被组装起来。流水线就是系统集成的角色。

这个时候我们来看系统集成的特点就是自己不生产功能,只是把不同软件的功能进行对接,使它们可以联动操作。

小明的服装工厂

假如小明开了一个服装工厂,他同时入驻了京东和淘宝商城,另一边,自己的内部仓存管理又是从oracle买的erp软件,那么,我们如何将产品信息(价格,库存数量)进行三方同步?

京东和淘宝老死不相往来,它们怎么会互相对接嘞?
而小明本身的仓库软件又怎么会知道你要对接这两个平台?

这个时候小明就需要另外的一个软件将他们串联起来,这个软件的功能非常的纯粹。它只需要接收来自erp软件的信息,然后经过协议转换分别发送给京东和淘宝,另一个方面接收来自京东和淘宝的信息再一次的经过协议转换反馈到erp系统。 这样就完成了三方打通。

中间件的意义

我们知道了中间件的目的,那么在实际开发一个中间件的时候要注意什么?

  1. 中间件只做集成,不做业务功能。 尤其是当其中一方是自研软件的时候,非常容易把一些原本属于软件的功能做进了中间件。因为我们有整个系统的软件,数据库的软件。
    怎么考量有没有做业务功能?就看代码里面在与需要对接的软件的沟通过程都是通过公开的接口,SDK.
  2. 正确地处理映射。映射表现在不同的三个方面
    1. 字段之间的映射
    2. 行为之间的映射
    3. 状态之间的映射

字段的映射也可以概括为协议翻译器,其目的就是把一个系统的消息格式转换到另一个系统的消息格式。

行为的映射也就是指这个中间件关注的是哪些功能,我们如何把这些功能抽象到不同的平台的实现中。 有点类似于接口与其实现的类。

状态映射指的如何及时地同步那些在不同软件中会实时发生变化的数据(比如库存数量,是否下架),这也是中间件软件的最大的目的。具体的实施无外乎以下几种方式:

  1. 建立长链接,实时推送。
  2. 轮询查询接口。
  3. webhook。
  4. 导入与导出。

无论采用哪种通讯方式,最最最重要的就是保持一点,一定是消费者确定模式的实施。只有对方明确告诉你成功接收了才算接收到。由于技术实施上的不合理造成的消息丢失是中间件软件最头疼的问题。

其他中间件概念

除了这种不同业务系统的中间件之外,在软件里面还有一个重要的中间件领域就是大数据开发中的ETL. ETL 是用于不同数据库之间的同步过程,整个过程分成了提取,翻译,加载。和我们上述提到了软件中间件的过程也极度类似。

所以,中间件就是用于不同软件之从学校间互相通讯的软件,这个过程也就是系统集成。

This work is licensed under a Creative Commons Attribution 4.0 International License
Tags: None
Last updated:2020年08月17日

Misko lee

男人,就要像贝多芬一样,扼住命运的喉咙 :)

Like
< Previous
Next >

Comments

Cancel reply

Misko lee

男人,就要像贝多芬一样,扼住命运的喉咙 :)

编程说

·编程说·

每周日晚11点更新,节假日不打烊

Archives
  • March 2021
  • August 2020
Newest Hotspots Random
Newest Hotspots Random
DSP 扫盲帖 此去经年 - 永兴未来城[2033年] 编程说【第二期】 - 聊聊系统集成与中间件开发 请别拿一两个胸部和游戏来说事!爷,不堕落! 也谈移动客户端的市场与发展趋势 Java编程中影响性能的一些特点
编程说 - 如何设计日志格式也谈移动客户端的市场与发展趋势一种通用递归深度检测技术 - 基于栈帧内容的检测 - Golang语言描述Kubernetes 简介TiDB Markdown Plugin - 将数据库运行在你的文章里从一个实际案例来讨论我们应该如何做性能优化
编程说 - 如何设计日志格式 从一个实际案例来讨论我们应该如何做性能优化 也谈移动客户端的市场与发展趋势 C++的苦口良药 DSP 扫盲帖 TiDB Markdown Plugin - 将数据库运行在你的文章里
Tag aggregation
dsp android 编程说 html5 web audio parser markdown tidb wasm docker k8s kubernetes go
友链
  • Yian
  • 云风
  • 周梦康
  • 橡皮檫檫
  • 风雪之隅

COPYRIGHT © 2020 Misko Lee's Blog. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS