研究課題/領域番号 |
21H03418
|
配分区分 | 補助金 |
研究機関 | 大分大学 |
研究代表者 |
紙名 哲生 大分大学, 理工学部, 准教授 (90431882)
|
研究分担者 |
増原 英彦 東京工業大学, 情報理工学院, 教授 (40280937)
|
研究期間 (年度) |
2021-04-01 – 2025-03-31
|
キーワード | 分散リアクティブプログラミング / 分散永続シグナル / id解決 / 時刻印方式 / オープンアーキテクチャ |
研究実績の概要 |
永続シグナルを分散化するための機構を実現した。まず、関連する永続シグナルのネットワークをカプセル化するシグナルクラスのインスタンスを識別するidと、永続シグナルの更新履歴を保存する時系列データベースを紐づけるid解決サーバを実現し、分散化において重要となる永続シグナルの位置透過性を保証した。シグナルクラスインスタンスを跨る値更新伝播については、広域に分散されたデータベース間の整合性を保証することが必要になる。この問題の解決については、基本的には時刻印方式を採用した。ただし、ネットワークの源泉が複数あったり、データ流の分岐合流がある場合などにおいて、想定される整合性が異なる場合がある。これについては、値更新伝播におけるそれぞれのポリシを定め、プログラマがどのポリシを適用するかを選べるようにした。また、既存の(シグナルクラスを用いる前からあった)時系列データベースをシグナルクラスを通して参照できるようにする機構を設計し、オープンなアーキテクチャを実現した。
フロントエンド側については、JavaScriptをベースに永続シグナルの仕組みを実現した。この際、時系列データベースへのアクセスが必要となるが、ブラウザ非依存の仕組みとするため、Node.jsを用いた中継サーバを通す汎用的な仕組みにした。前年度の成果であるマイクロフロントエンドにおけるシグナルの利用と組み合わせて、コンパイラを通さずに利用できる言語内DSL(ライブラリ)として実現した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
当初の計画で、シグナルの永続化とオブジェクト指向への拡張を当該年度までとしており、分散化の道筋もつけることができたため、次年度からは計画通り多層プログラミング言語への拡張に着手できる。
|
今後の研究の推進方策 |
これまでの研究実績を統合し、バックエンド側とフロントエンド側を統一的に記述できる多層プログラミング言語を設計する。基本的にはSignalJの拡張であるが、フロントエンド側についてはJavaScriptコードの自動生成も検討する。分散化が深く関わるテーマであるため、分散環境における永続シグナルの計算を深く理解することが重要である。そのため、永続シグナル間の分散値更新伝播を形式化した新たな計算体系を形式化する。
ところで、永続シグナルの実利用における一つの問題として、ソフトウェア進化への対応に関する問題が浮かび上がってきた。例えばシグナルクラスを、要求変更やリファクタリングなどによって更新する場合がある。その際には対応する時系列データベースのスキーマも更新する必要が出てくる。とくに上に示したようなオープンなアーキテクチャでは、新旧バージョンのソフトウェアが同時に利用され、新旧スキーマを整合性を保ったまま共存させる必要がある。そこで、永続シグナルを対象とした新たなスキーマ進化言語を設計し、既存のスキーマ進化言語と対応づけることによってこの問題を解決する。
|