GraphEngine的核心:TSL

上次說過GraphEngine不是組件,也不是框架,也不是數據庫管理系統,他是一個引擎。那麼,GraphEngine到底是什麼呢?要更好的理解,我們先看一張圖

在這裏插入圖片描述

上面那張圖很有意思,中間的TSL簡直是所有能力的核心,TSL在做三件事情

  • 數據建模。理解我們的數據模型(Data Modeling)通過IDL讓TSL理解 數據交換
  • 消息傳遞協議定義,通過ICE Slice規範實現數據的傳遞(Message Passing Modeling)
  • 消息交換規則定義,以Google Protobuf規範實現數據交換(Data Interchange Format Specification)

這樣的好處是

  • 客戶端和服務器不需要用同一種語言來編寫
  • 傳輸數據量比傳統的json、xml相比非常小、解析非常快
  • 數據通訊的時候無需序列化和反序列化

所以TSL是GraphEngine的核心。TSL一種聲明性的編程語言,由於遵守了ICE Slice規範編譯器可以將Slice定義編譯轉換爲其他語言的數據類型和API。理論上支持支持C++, Java, C#, Python, Objective-C, Ruby, 和PHP。Slice只定義數據類型和接口,並不實現。TSL在C#中做了實現。

所以我們需要先確保安裝了上篇要求的插件GraphEngineVSExtension.vsix插件,該插件支持TSL語言的編寫,提示和編譯爲C#。

TSL語言非常接近C#,或者說TSL的所有語言規範和C#是一致的,因此
TSL中的保留關鍵字由三部分組成:所有C#關鍵字,TSL關鍵字和原始數據類型。

保留的TSL關鍵字
在這裏插入圖片描述

TSL內置類型
在這裏插入圖片描述

TSL的代碼結構
腳本包含聲明:TSL script inclusion statement
單元:Cell construct
枚舉:Enum construct
結構:Struct construct
協議:Protocol construct
服務器:Server construct
代理:Proxy construct

這些代碼結構裏,Struct結構好像已經沒有什麼用處。我們用的最多的是cell代碼結構。在之後的篇章我們會來看看代碼怎麼寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章