新規配属生向け研究室紹介
研究分野
クラウドコンピューティングやエッジコンピューティングなど、ネットワーク上に分散配置された多数のコンピュータを効率的につかうための基盤ソフトウェアやプログラミング技術・アプリケーション開発について研究しています。エッジコンピューティングは、各地に配置されたエッジサーバを用いるための技術で、スマートフォンや各種センサー機器の情報を低遅延で処理・共有することで、高度交通システムなど新たなアプリケーションの実現が期待されています。
プログラミング
この研究室の活動は、ソフトウェア開発などプログラミングが主体となります。分散配置された計算機を効率的に使うには、データ配置などを考慮したプログラムを作る必要があります。一方で、複雑なプログラムを長年かけて作成するのも現実的ではないので、皆さんが効率的な分散ソフトウェアを簡単に作成できるような基盤ソフトウェア・プログラミング環境が望まれます。まずは3年次に先進的な技術に触れてもらい、4年次から皆さんの興味に応じて、基盤ソフトウェアやアプリケーションを研究開発していきましょう。
研究室情報
新しい研究分野ですし、詳しいことは研究室Webページや説明会にて紹介したいと思います。各地の情報を即座に利用して、どんな応用が可能か、皆さんの発想で新しいアプリケーション領域を広げていきましょう。一方で、実際のソフトウェアを実現する上で何が必要か、容易にプログラムを実現できるようにするにはどうすればいいか、一緒に考えていきましょう。
説明会では去年の卒論生の研究内容なども紹介できると思います。技術トピックも多いので、大学院への進学を希望する人、大歓迎です。プログラミングにこだわりがある人も、大歓迎です。説明会のスケジュール情報などは、下記研究室WebページおよびDiscord チャンネル(コース演習で利用したもの)でアナウンス予定です。気軽に話を聞きに来てください。
説明会スケジュール
2025年の 4/18(金), 4/22(火), 5/16(金), 5/20(火)にオープンラボの時間を設けます。 他の時間帯も希望があれば&都合がつけば対応します。 場所は 13 号館 3F の 313 号室(3F の東端)です。 部屋が空いていない場合は、向かいの 301 号室の呼び鈴を呼び出してください。
簡単な研究室紹介は、先にセミナー I でお話しすることになっているので、そこで興味のあったトピックについて個別説明したり、世間話などをする形になるかと思います。 開催時間は以下の通り。
- 火曜:11:00-12:00, 12:20-12:50 (4/22, 5/20, 3-4 限は卒研の時間なので,昼休みに来ると卒論生とも話せるかと.院生も誰か居てくれる予定)
- 金曜:12:20-12:50, 13:00- (4/18, 5/16, 院生も誰か居てくれる予定)
卒論テーマなどの紹介
卒論テーマは、学生の皆さんからの持ち込みネタも大歓迎ですが、一方で、鎌田の方で研究ネタなども色々考えているので、そのあたりから自分の好きな/得意な/トライしたい分野を選んで、一緒にネタにくっていく形も多いです。できれば、外部の研究会などで発表できるような形に仕上げたいと思っていますし、院への進学も大歓迎です(2025年度は M2 1名, M1 2名の予定で,2026 年度の進学予定もあります).
基本は、edge/fog computing とよばれる分野や、cloud computing の分野を対象としています。 ただ、基盤ソフトウェアやソフトウェア開発環境、ネットワーク技術、応用アプリケーションなど、広がり方も様々なので、3年の段階では色々好きな技術を触ってもらい(なんなら就活前に)、4年次就職活動など終わってから研究に集中してもらいます。 基本、4年の間は卒論に専念してほしいので、単位は3年時点でしっかりとっておいてください。
2025年の卒論テーマはまだ確定していないので,2023, 24 年の卒論などを含めて、研究事例などを紹介しておきます。
エッジ環境向け分散データストア
研究グループでは,エッジ環境向け分散データストアを開発していて,基本機能自体はもう何年も前に出来ています。 この研究の狙いは、Cloud computing におけるスケーラブルデータストアのような存在を、 Edge computing 用に展開することです(別の解説文)。 cloud ではスケーラビリティと対故障性が主要課題でしたが、低遅延データアクセスを可能にするため、データ配置および配信をしっかり管理できるようにしようってことに主眼をおいて研究をしています。
アプリケーション開発者は、自分の作成するアプリケーションのデータ構造と、エッジサーバへのマッピング方法を考えて、データの配置・キャッシュ手法をルールとして定義すれば、あとはシステムがデータ更新を自動で近傍サーバに配信してくれます。
例えば、こんな具合。
- 各道路の情報を、どのエッジに配置するかは、データ構造内に指定する
- 道路情報を変更したら、上記エッジサーバにも随時配信される。
- 走行車両の情報は、現在いる道路の管理サーバに配置したい
- そのようなルールをかけば、勝手に車両情報も随時配信してくれる
分散データストアのセキュリティ拡張
クラウドに配置したデータも適切なアクセス保護をかけないといけないように、edge 環境でも適切なアクセス保護が必要です。
2023年の卒論では、Firebase が提供しているような宣言的な security rule の仕組みを我々の分散データストアにも追加し、エッジ向け ITS (高度交通システム)アプリケーションに適用してみました。 セキュリティルールの判定には、必要に応じて関連レコードへのアクセスが必要となりますが、我々のデータストアでは、データ配置を指定できるので、各サーバにセキュリティ判定に必要なデータを事前配置してやれば、アクセスチェックも即時できるよね(というか、そうしないとデータアクセスに複数サーバアクセスが必要になるよ)って研究です。担当していた藤井君は修士に進学していて、通信路の暗号化なども含めた研究を展開中です。
これとは別に、モバイル系のアプリケーション事例について、実際にセキュリティルールを記述する試みも卒論でおこないました。 例えば、「宅配便の荷物の配送の際に、受取人が許可したら、ドライバーがマンションの玄関にIDカードをかざすだけで、ロックが外れる」みたいな応用事例などを検討してました。
分散データストアと計算の連携
クラウドの世界では,いわゆる serverless computing が用いられ, 「データベースの更新」や「ファイルの追加」があれば,関連する計算をスタートさせ,その結果を「データベースやファイルなどの形で反映」させることができます.AWS lambda などが有名です.
我々のグループでも,いわゆるDB演算における materialized view のようなものを作成したり,あと,2024年度の研究ではコンテナ(仮想化技術の一つ)を用いた計算処理との連携に向けた研究などをおこなっています. たとえば,車が撮影した画像に対して,物体検出などの処理を施し,その結果を DB に格納するといった処理を数十ミリ秒でおこなったり,あるいは,引き続く計算処理をどのように連携させるかといったことを考えています.
分散データストアのアプリケーション評価環境
いろいろ複雑な処理を頑張ってくれる分散データストア、ちゃんと性能がでるか確認したいですよね。 とはいえ、本当にエッジサーバ準備して、クライアント動かすのは大変です。
って訳で、一般のクラスタ環境上で、複数の仮想エッジサーバ(コンテナ)群に、サーバ間通信遅延を設定しながら動かして、性能評価をおこなえるようにするって研究をおこなっています。 当然、クライアントの動きもエミュレートしないといけないので、こちらはこちらで、ITS アプリ事例用のエミュレータを作成しています。 うちのエッジサーバを kubernetes 上で動作させています.ネットワーク遅延などについては,最近は kubernetes 用の chaos-mesh というツールを利用したりしています.このあたりは 2024年度卒論でも取り上げています.
また,2023年度の卒論では、クライアントの配置が不均等で、それに応じてエッジサーバも不均等に配置されたような環境について、ちゃんと性能評価できるようになったよって研究をやっていました。例えば、このあたりだって 2 号線沿いや 43号線沿いは車多いけど、大学付近は車少ないでしょ。 サーバ間遅延とクライアントに関してそれぞれ卒論で研究して、二人の内容をまとめる形で研究会で発表しています。
将来的には,負荷状況に応じてデータ分散を工夫したりなんて話をしたいところなんですが,いつ頃になりますかね.
分散データストアとネットワーク技術
情報伝搬については、サーバから各クライアントに unicast 通信するのでもいいですが、broadcast/multicast ももっと使ってもいいんじゃないって思っています。 無線環境だと,通信の際に空間を共有するので,同時接続数や通信総量に制限がかかるので.一方で,全員に「聞こえる」ような通信は速度も制限されるので,いろいろ難しいところがあります.
てなわけで,1対1 の高速通信や broadcast/multicast を用いた少量低遅延通信などをうまく織り交ぜて,効率的な情報インフラ作れないかと思っています. 例えば,2023年の卒論では UDP broadcast を用いた場合のネットワーク基礎性能の評価などもおこなってくれました.あと,24年の卒論ではモバイルデバイス (Android OS) 用情報共有ミドルウェアの開発などをおこないました.そろそろ対外発表できるような成果をあげていきたいところです. 通信路の暗号化なども含めて、いろいろ計画中です.
地域情報利用アプリケーションの開発
せっかく地域情報を即時共有できる基盤を作っているんだから, そういう基盤技術を見据えたアプリケーション開発も進めています. このあたりは,学生の皆さんからのアイデアに期待したいところです.
例えば,運転補助システムなどを見据えた拡張現実アプリケーションの開発を, 2023, 2024年度の卒論でおこなっていました.23年はクラウド上に人物位置情報が提供されている前提で,拡張カメラアプリをその方向にかざすと、その位置に「人アイコン」が現れるようにしました.対象の人が「カメラに写っている」ならありがたくもないですが、壁の向こうにいても「見える」ってのがポイントで、将来的に運転補助などに使えればって狙いです。で,人物位置情報を提供すべく,24年の卒論ではカメラで撮影した写真から人物検出をおこない位置情報を推定しクラウドに提供する機構をつくっています. これらのアプリは Unity を用いて作成され、Android 端末で動作確認しています.
これ以外にも,
- 死角領域の把握に基づく周辺物体情報の共有
- 空撮交通データセット inD を用いた交通危険状況の分析ツール など,主に交通系を意識したアプリケーション展開をおこなっていました.
まあ,皆さんのアイデア次第で色々面白いものを作っていけたら嬉しいです.