Introduction
This page has not been translated yet.
概要
SkyWay はアプリケーションに音声・ビデオ通話をはじめとしたリアルタイム・コミュニーケーション機能を容易に組み込むことを可能とするプラットフォームです。
Web アプリケーションやモバイルアプリケーションなど、さまざまな場面で利用できるよう、JavaScript SDK、iOS/Android SDK などの各種クライアントライブラリを取り揃えています。
ここでは各クライアントアプリに共通する SkyWay の基本となる概念について説明します。
Pub/Sub
SkyWay では、英会話事業や Web 会議、ゲームなどのさまざまなユースケースをサポートするために、Pub/Sub 方式(出版・購読方式)を中心概念に据えています。
次の図は、伝統的な通話によるコミュニケーションとパネルディスカッション形式のコミュニケーションを例にとり、それぞれのトポロジーを示しています。
通話によるコミュニケーションでは、2人の通話者がそれぞれ、双方向に音声 Stream をやりとりしています。
また、パネルディスカッション形式のコミュニケーションでは、一人の司会者と二人のパネリストは互いに双方向のコミュニーケーションを行い、聴講者は Stream を発信せず各パネリストの Stream の受信のみを行っています。
Pub/Sub 方式を用いることで、さまざまな通信トポロジーの表現が可能になります。
基本概念
SkyWay の PubSub 方式の基本となる概念は次の通りです。
- Channel:リアルタイム・コミュニケーションを相互に行う Member の集まりを表すエンティティ
- Member:ある Channel に属し、Pub/Sub を介して Stream を相互にやりとりし、他の Member とリアルタイム・コミュニケーションを行う主体を表すエンティティ
- Publication:他の Member が受信可能な Stream を発信することを示すエンティティ
- Subscription:ある Publication に紐付く Stream を受信することを示すエンティティ
- Stream:連続した音声や映像、データを表すエンティティ。
- PC や携帯電話のマイクやカメラデバイスから取得され、SkyWay を通じてネットワークを超えてやり取りされる。
次の図は、Alice と Bob がそれぞれの PC に付属のマイクを用いて音声通話をしているケースを例にとって、各基本概念の関係を例示しています。
上図の左側は Alice、右側は Bob、そして中央は両者が参加する Channel を表しています。 まず、Alice は自身の PC 内臓のマイクを利用するデバイスに選び、ここから LocalStream を取り出します。
LocalStream とは、ネットワークを経ずに直接取得可能な Stream のことを指します。一方で、SkyWay などを介し、ネットワークを経て得られる Stream を RemoteStream といいます。
Alice は、自身の LocalStream を紐付けて Publication 1をその Channel に Publish しています。
そして、Bob はその Publication 1を Subscribe し Subscription 1を作ることで Alice の Local Stream に対応する Remote Stream を得ています。
例えば、Web アプリケーションであれば、得られた Remote Stream は、Audio タグで表される HTMLAudioElement に紐付けることで再生されます。
Bob もまた、Alice と同様に LocalStream を Publish し、Alice がそれを Subscribe することで Bob の LocalStream に対応する Remote Stream を得ています。
SDK
SkyWay をアプリケーションに組み込むには以下の SkyWay SDK を利用します。
開発したいアプリケーションのプラットフォームに合わせてどの SDK を利用するか選択してくだい。
- SkyWay JavaScript SDK
- 主に Web アプリケーションから SkyWay を利用するために用いる SDK です。
- モバイル端末の Web Browser や Mobile アプリケーション内の Web View からの利用も含みます。
- 主に Web アプリケーションから SkyWay を利用するために用いる SDK です。
- SkyWay iOS SDK
- iOS アプリケーションから SkyWay を利用するために用いる SDK です。
- SkyWay Android SDK
- Android アプリケーションから SkyWay を利用するために用いる SDK です。