nine の通信機能

nine の通信機能

nine の通信機能は大きく通信層とメッセージ層に分けることができる。

通信層は各種プロトコルを使ってデータ通信を行う。 メッセージ層は通信層の上に位置し、メッセージレベルでの通信APIを提供する。

通信層とメッセージ層

通信層は実際にデータ通信を行う層である。 流れるデータはバイトストリームであり、構造は関知しない。

通信層では次のプロトコルを実装している:
  • TCP
  • HTTP
  • Comet
  • WebSocket
このうち、TCP, HTTP, WebSocket では通信層レベルでの API を提供している。

メッセージ層

メッセージ層では交換するデータの構造化を行う。 基本的にはメッセージ層専用の API でプログラム記述ができるが、機能によっては通信層の API を利用しなければならない場合もある。

さらにメッセージ層は、C++ APIと、ネットワーク上を流れる際のデータ表現(直列化表現)の二つに分けられる。

C++ API は、垂直統合された通信層の種類毎のバージョンと、それら各種の通信層を統合した UnitedServer の二段階がある。

直列化方式は次の方法を提供している:
  • Buffer API
  • nineml
  • Protocol Buffers

通信層と統合された部分は通信層の説明と合わせて説明し、 通信層に依らない部分は通信とは分離して説明する。