Home

Sessions

Timetable

Floor Guide

Staff

English

ネットワークコントローラ実装で学ぶ、Goクライアントサーバシステムの作り方

Room B : B14-S

Goは並行処理を簡単に実現可能な強みを持つため、複数のクライアントと同時並行かつ中央集権的に情報を交換するサーバシステムを、コードの可読性を保ったまま実装することが可能な言語です。我々は、ネットワーク分野でもこの強みを活かすことができないか試行錯誤しています。 クライアントサーバシステムの例として、ネットワーク機器のパス管理を行うPCEという仕組みがあります。キャリアのように多くのルータで構成される大規模ネットワークにおいてパス管理は重要な要素ですが、誰もが手軽に試験・運用できるPCEはありませんでした。そこで我々は、Goの特性を活かしてPCEをOSSとして実装しました。その結果、誰でも手軽に試験できるようになりました。 本セッションでは、Go初学者であった我々がネットワークプロトコルやサーバ機能をOSSとして実装する中で理解したことについて、公開済のコードを用いて紹介します。 具体的には、 - goroutine と channel を用いたサーバのセッション管理 - gRPC によるサーバ情報取得/更新のためのAPI提供 - interface の定義・実装による標準ライブラリ有効活用や実装の隠蔽 について説明します。 本セッションの内容を取り込み開発することで、Go らしいネットワークプロトコルやサーバの実装が可能になります!

Level: beginner /
Challenge Session(20min)
Motoki Takenaka

Motoki Takenaka

NTT Communications Corp.

NTT コミュニケーションズでネットワークの技術検証を行なっています。 OSS のネットワークコントローラである [Pola PCE](https://nttcom.github.io/pola/) を開発しています。

ツイート
gopher conductorgopher drummergopher trumpetergopher pom pomgopher flower blue