研究課題/領域番号 |
21H03418
|
配分区分 | 補助金 |
研究機関 | 大分大学 |
研究代表者 |
紙名 哲生 大分大学, 理工学部, 准教授 (90431882)
|
研究分担者 |
増原 英彦 東京工業大学, 情報理工学院, 教授 (40280937)
|
研究期間 (年度) |
2021-04-01 – 2025-03-31
|
キーワード | 永続シグナル / シグナルクラス / 計算体系 / SignalJ / マイクロフロントエンド |
研究実績の概要 |
主にバックエンド側の機構として、シグナルの永続化機構を実現した。まず、既にシグナルの機構を持つSignalJにおいて、永続シグナルとそれ以外を構文的に識別するための文法拡張を行った。実行時の振る舞いは、SignalJの実行時ライブラリを拡張して、永続シグナルにおける値変化履歴の永続化の機能を時系列データベースTimescaleDBを用いて実現した。さらに、関連する永続シグナル同士のネットワークをSignalJ(つまりJava)のクラスとして表現し、内部に隠蔽するシグナルクラスの機構を提案した。シグナルクラスのインスタンスは、内部状態として永続シグナルによる永続データを含むため、通常のオブジェクトとは異なる独自のライフサイクルを辿る。これらの機構を抽出した計算体系を作り、型健全性やglitch freedomの性質を証明した。また、永続シグナルの分散化方法についても検討し、永続シグナルの位置透過性を保証するためのid解決サーバを試作した。
フロントエンド側の機構としては、JavaScriptにおけるシグナルの機構を実現した。とくにJavaScriptにおいては、バックエンド側と異なりReactやVueなどのリアクティブなフレームワークが既に存在する。これらとシグナルとの比較を試み、とくにマイクロフロントエンドのようなモジュール性を要求される場面においてシグナルが優位であることがわかり、JavaScriptでもシグナルを採用することにした。さらにそれを拡張し、永続シグナルをフロントエンド側で実現するための方法について検討した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
繰り越し分も含め、当該年度の予算で実施する予定であった研究内容については概ね計画通り実施され、ほぼ予想したとおりの結果を得ることができたため。
|
今後の研究の推進方策 |
研究計画通り、永続シグナルを分散化するための機構を実現する。分散化にあたり、各永続シグナルの位置透過性は重要である。また、関連する永続シグナルはシグナルクラスのインスタンス内にカプセル化されるが、これらのインスタンスはユーザが与える識別子(id)で識別される。このidと、永続シグナルの更新履歴を保存する時系列データベースを紐づけるid解決サーバを含め、分散化を実現する全体のソフトウェアアーキテクチャを設計する。そして実際にそのアーキテクチャに基づいて分散永続シグナルを用いたアプリケーションを試作する。また、分散化においてはシグナルネットワーク内の値更新伝播の整合性を保証することが難しくなる。その整合性保証の仕組みについても検討する。
また、フロントエンド側においても、JavaScriptをベースに同様に永続シグナルの仕組みを実現し、最終的な目標である多層プログラミング言語実現のための布石にする。永続シグナルの仕組み自体はSignalJの後追いとなるが、JavaScriptはスクリプト言語であり、SignalJで行ったようなコンパイラによる実現は馴染まない。そこで、永続シグナルを言語内DSL(ライブラリ)として実現する方法を検討していく。
|