成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony啃論文成長計劃—淺談中間件

系統 OpenHarmony
中間件是指網絡環境下處于操作系統、數據庫等系統軟件和應用軟件之間的一種起連接作用的分布式軟件。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

引言

在分布異構環境中,在多種硬件平臺上存在各種各樣的系統軟件(如不同的操作系統、數據庫、語言編譯器等),以及多種用戶界面,這些硬件系統平臺還可能采用不同的網絡協議和網絡體系結構連接。把這些系統集成起來并開發新的應用是一個現實而困難的問題,于是“中間件”技術就應運而生。

概念

中間件是指網絡環境下處于操作系統、數據庫等系統軟件和應用軟件之間的一種起連接作用的分布式軟件。簡而言之,中間件就是操作系統之上的(分布式)系統軟件。因此大家熟知的如GFS、MapReduce、Spark和kafka等分布式存儲、分布式計算和消息隊列軟件都是中間件。

中間件的分類

對中間件進行分類的困難是一些中間件可以執行多個服務。

大致分為:

  • 遠程過程調用中間件(Remote Procedure Call)。
  • 面向消息中間件MOM(Message Oriented Middleware)。
  • 面向對象的中間件OOM(Object Oriented Middleware)。
  • 數據庫中間件(Data Access Middleware)。
  • 事務處理中間件(Transaction Proncessing Middleware)TransactionProncessing又譯為交易處理。

一些開源中間件技術

高性能Redis中間件服務 nredis-proxy,基于 RabbitMQ 實現的消息中間件 WMQ,分布式數據庫中間件ShardingSphere,分布式 TCP 推送系統 GPush。

以ShardingSphere為例認識數據庫中間件

(簡單介紹ShardingSphere實現分布式事務的方式)。

分布式事務在分布式環境下保持數據一致性

分布式事務是在分布式環境下確保數據一致性的基本功能。分布式事務就是要在分布式系統中實現事務,它其實是由多個本地事務組合而成。作為分布式數據庫的一種生態圈, ShardingSphere提供了對分布式事務的全面支持。

ShardingSphere支持的事務類型代碼如下:

public enum TransactionType{
LOCAL,XA,BASE
}

可以看到本地事務外還提供了分布式事務實現方案XA事務和柔性(BASE)事務。

XA事務的基本概念和原理

XA事務是典型的強一致性事務,完全遵循事物的AICD原則(通俗點就是為了使得一些更新操作要么都成功,要么都失敗)。

XA規范定義了面向全局的事務管理器TransactionMananger(TM)和面向局部的資源管理器ResoureMananger(RM)之間的接口。

XA是雙向的系統接口,在TransactionMananger(TM)和ResoureMananger(RM)之間形成通信橋梁。

  • 使得Transactionmanager(相當于“協調者”)控制著全局事務,管理事務生命周期,并協調資源。
  • 使得Resourcemanager(相當于“參與者”)負責控制和管理包括數據庫相關的各種實際資源。

ShardingSphere中的XA事務實現原理

ShardingSphere提供了專門的XAShardingTransactionManager類來支持XA事務實現。

XAShardingTransactionManager類是分布式事務的XA實現類,主要負責對實際的 DataSource進行管理和適配,并且將接入端事務的begin/commit/rollback操作委托給具體的XA事務管理器。

例如, XAShardingTransactionManager使用中的TransactionManager完成 commit操作,代碼如下:

@Override
public void commit(){
XAShardingTransactionManager.getTransactionManager().commit();
//這的XAShardingTransactionManager是對各種第三方XA事務管理器的一種抽象
}

查看XAShardingTransactionManager類的定義和所包含的變量,代碼如下:

public final class XAShardingTransactionManager implements ShardingTransactionManager{
private final Map<String,XATransactionSource> cachedDataSources=new HashMap<>();
private final XATransactionManager xaTransactionManager = XATransactionManagerLoader.getInstance().getTransactionMananger();
}

可以看出XAShardingTransactionManager實現ShardingTransactionManager接口,同時保留了一組XAShardingTransactionDataSources。

XAShardingTransactionManager實例加載采用了JDK中的ServiceLoader類,代碼如下:

private XATransactionManager load() {
Iterator<XATransactionManager>xaTransactionManagers=ServiceLoader.load(XATransactionManager.class). iterator();
if (!xaTransactionManagers.hasNext (){
return new AtomikosTransactionmanager();
XATransactlonManager result=xaTRansactionManagers.next();
}
if (xatransactionmanagers.hasnext(){
log.warn("There are more than one transaction mangers existing, chosen first one by default. ");
}
return result;
} //XATransactionManager就是對各種第三方XA事務管理器的一種抽象,在找不到合適的XATransactionManager情況下系統會默認創建一個AtomikosTransactionmanager

XATransactionManager就是對各種第三方XA事務管理器的一種抽象,在找不到合適的XATransactionManager情況下系統會默認創建一個AtomikosTransactionmanager。

二十年前人們對中間件的展望:

中間件是屬于計算機軟件中比較底層的內容,它和計算機操作系統的關系是相當密切的,操作系統的一部分功能可以由中間件來實現,一些中間件的功能也可以由操作系統來實現。因此,操作系統和中間件會進一步融合,從而推動計算機軟件體系結構的變革。其次,人們希望實現不同業務邏輯、不同功能的中間件能夠集成在一起,像一個完整的系統那樣協調一致地工作;這些集成的中間件服務應該封裝在一個框架中。

用中間件思維看OpenHarmony架構

二十年前人們對中間件的展望和二十年后OpenHarmony架構圖對比起來,其實框架層和服務層聯系起應用層和內核層作用,二者也能一定程度看作是“中間件”。某種程度上OpenHarmony操作系統正是順應二十年前的展望,將操作系統和中間件進一步融合了起來。

但是嚴格上意義來說中間件的概念太過龐大,在OpenHarmony這個可裁剪、跨終端和易開發的分布式操作系統中,其中并沒有中間件的概念,只有各種子系統和部件。

OpenHarmony、HarmonyOS與HMS

OpenHarmony、HarmonyOS是操作系統,HMS Core是SDK包。

HMS Core是基于HarmonyOS操作系統之上的開發組件包,相當于 中間件。而HarmonyOS是華為基于OpenHarmony開發的企業發行版。

舉個通俗易懂的例子,HarmonyOS提供了零件和各種工具,例如扳手和汽配件等,開發者要一輛汽車,可以基于零件和各種工具直接一點一點造汽車各種系統再組裝。HMS Core是汽車各個系統,例如轉向系統、動力系統,開發者也可以直接拿汽車各個系統快速搭建一輛汽車。這就是SDK包的作用,提高開發效率的,它封裝了很多操作系統的api,定義了一個個面向具體功能場景的接口,不用什么功能模塊都從頭編程,能直接引用,HMS就符合文中概念給出的 中間件 的概念。

那么同樣OpenHarmony適用于手機部分的“HMS Core”讓我們拭目以待。

??想了解更多內容,請訪問:??

??51CTO和華為官方合作共建的鴻蒙技術社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-03-08 15:23:20

序列化反序列化鴻蒙

2022-03-31 16:13:27

Avro數據序列化系統Harmony

2022-02-16 16:28:22

RPC鴻蒙操作系統

2022-03-15 15:17:03

開源技術HarmonyMQTT協議

2022-02-24 16:32:26

OpenHarmon壓縮編碼鴻蒙

2022-03-28 15:17:12

JSONXMLHarmony

2022-03-28 15:28:42

分布式軟總線通訊Harmony

2022-03-30 14:43:00

Harmony分布式軟總線通訊

2022-08-05 19:55:20

學術科研鴻蒙

2022-02-10 14:57:46

OpenHarmon鴻蒙操作系統

2022-02-10 15:33:05

OpenHarmon應用開發操作系統

2010-03-29 10:24:15

金蝶中間件Apusic企業架構

2011-05-24 15:10:48

2021-02-11 08:21:02

中間件開發CRUD

2018-02-01 10:19:22

中間件服務器系統

2018-07-29 12:27:30

云中間件云計算API

2016-11-11 21:00:46

中間件

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2012-11-30 10:21:46

移動中間件

2023-06-29 10:10:06

Rocket MQ消息中間件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 天天久久 | 欧美精品久久久久 | 亚洲一区久久 | 日本午夜网 | 国产免费一区二区 | 国产精品久久久久久婷婷天堂 | 手机看黄av免费网址 | 精品国产伦一区二区三区观看体验 | 国产亚洲高清视频 | 激情视频中文字幕 | 欧美二区三区 | 日韩视频精品在线 | 精品乱码一区二区三四区 | 97精品超碰一区二区三区 | 91精品久久久久久久久久 | 欧美日韩高清 | 色性av| 久久久亚洲成人 | 精品一区国产 | 久久久久国 | 亚洲人久久| 成年人视频免费在线观看 | 久久久久久久久久久国产 | 黑人巨大精品 | 午夜爱爱毛片xxxx视频免费看 | 久久久久国产 | 久久激情五月丁香伊人 | 天天插天天操 | 国产一区二 | 亚洲激情第一页 | 欧美日韩一区二区三区四区五区 | 久久免费精品视频 | 超碰婷婷 | 艹逼网 | 国产日韩欧美精品 | heyzo在线| 亚洲国产精品久久 | 亚洲性视频在线 | 亚洲一区二区三区免费在线观看 | 精品久久一区 |