P2Pの通信について
最近仕事でWebRTCの技術を使った案件に関わりました。WebRTCとはWebの技術で主にユーザとユーザを1対1でつなぐP2Pの技術になります。Webブラウザだけでビデオ会議ができるアプリケーションなどはWebRTCの技術が使われることが多いです。最大の魅力は最初にサーバ経由でつなげてしまえば、あとはユーザ同士のブラウザで直接やりとりできることです。
一昔前でP2Pといえば、著作権侵害で問題になったウィニーなどが記憶に新しいと思います。これはWebRTCとは全く別のP2Pプロトコルを利用し、ユーザのクライアント同士を直接つなげるものでした。今でもファイルサイズが大きい海賊版コンテンツなどは、Bittorrentなどで拡散され、ダウンロードされていることが多いようです。
ただ今では5Gも少しづつ身近な存在になってきており、ファイルサイズが大きいコンテンツもわざわざTorrentを使わなくてもダウンロードできようになるのかもしれません。
WebRTCの実装
WebRTCの実装について、サーバサイドだと定番のPHP、最近ではGOなどで実装されることもありますが、最近はNode.jsで実装できてしまいます。知り合いのライブ配信やコミュニケーションサービスはGoやLaravelで実装している場合が多いようでした。実装自体は割と上のクラスのエンジニアかつ、かなりネットワークにかなり詳しいエンジニアじゃないと設計が難しいとも聞いています。
WebRTCは、1対1ですとユーザ同士直接やりとりできますが、N対Nとなると、必ず、サーバを経由で通信し続けなければなりませ。全員の通信をサーバがハブのような役割を担って通信する仕組みです。そのため、インフラ構成も割と複雑になりサーバ費用も馬鹿にならないようです。
クリスチャンのP2P
さて、クリスチャンは神に祈ることをしますが、通信の技術に例えると、人間がクライアント(ブラウザ)で、神様はサーバとなるかもしれません。クライアントがサーバに祈り(リクエスト)を出し、サーバがレスポンスを返します。こう書いてしまうとかなりそっけなくなりますが、神とのやりとりは、決して機械的なやりとりではなくて、愛のある交わりです。あらゆる良い贈り物、あらゆる完全な賜物は、上から、光の父から下って来ると聖書にありますが、神との交わりは豊かな交わりです。
最大のポイントは、イエス・キリストの御名というプロトコルを使って神様に誰でも祈ることができるのです。そして、様々なクリスチャンとの交わりでN対Nであっても、サーバなる神(聖霊)を介してやりとりするのであれば、良き交わりとなります。
聖書にはこう書いてあります。
ふたりまたは三人が、わたしの名によって集まっている所には、わたしもその中にいるのである。
マタイ18:20
わたしの名、すなわち、イエス・キリストの名というプロトコルを使って交わるならば、まさに麗しい兄弟が和合する交わりとなるでしょう。