Project/Area Number |
23K11763
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Allocation Type | Multi-year Fund |
Section | 一般 |
Review Section |
Basic Section 90020:Library and information science, humanistic and social informatics-related
|
Research Institution | University of Tsukuba |
Principal Investigator |
阪口 哲男 筑波大学, 図書館情報メディア系, 准教授 (10225790)
|
Project Period (FY) |
2023-04-01 – 2026-03-31
|
Project Status |
Granted (Fiscal Year 2023)
|
Budget Amount *help |
¥1,950,000 (Direct Cost: ¥1,500,000、Indirect Cost: ¥450,000)
Fiscal Year 2025: ¥520,000 (Direct Cost: ¥400,000、Indirect Cost: ¥120,000)
Fiscal Year 2024: ¥910,000 (Direct Cost: ¥700,000、Indirect Cost: ¥210,000)
Fiscal Year 2023: ¥520,000 (Direct Cost: ¥400,000、Indirect Cost: ¥120,000)
|
Keywords | WebAssembly / SaaS型プログラミング環境 / プログラミング入門 / 永続的記憶プログラミング / Python / Webサーバプログラミング |
Outline of Research at the Start |
Web ブラウザの高機能化とその標準化により、PC等の端末機器への導入作業なしに利用可能なアプリケーションが増えている。プログラム開発環境についても同様であるが、根幹的な機能はサーバ上にあり、多数の利用者に供するために様々な制限がある。 本研究は、プログラミング初学者が端末機器への導入作業をすることなく、入門編から一歩進んだプログラミングを学ぶための環境に必要な技術要素を明らかにする。システム構成においてサーバへの依存度を減らし、サーバによる制限を極力排除したものを目指す。対象とするプログラミングには、情報検索システム構築のようなファイルやデータベース等永続的記憶を用いた課題を想定する。
|
Outline of Annual Research Achievements |
本研究の目的は、プログラミング初学者による手元の端末機器へ導入作業が不要でサーバ側にも負荷にならない、入門編から一歩進んだプログラミングを学ぶための環境に必要な技術要素を明らかにすることである。 Google Colaboratoryのようなサーバ側でのプログラム実行環境に対し、本研究ではWeb ブラウザ上の高性能なプログラム実行機構として近年注目されているWebAssembly (以下WASM)を利用することにより、サーバへの依存度を減らし、サーバへの負荷を由来とする制限を極力排除する事を目指す。 WASMを用いた高級言語としてPythonを選び、標準ドキュメントにも言及されているPyodide処理系を選定した。永続的記憶機構については研究計画時に想定していたリレーショナルデータベースSQLiteをWASMで構築するプロジェクトがあり、これをPythonから利用するための処理系が既に公開されており、これを採用した。一方、本課題ではWebベースの情報検索システム開発の演習課題なども視野に入れているため、Webサーバ機能が必要になる。しかしながら、WASMそのものはWebブラウザ内でプログラムを実行する仕組みであり、ネットワーク通信等セキュリティに懸念が生じる機能を使うことが出来ない。その代替手段について調査し、WebContainersというWebブラウザ内でWebサーバ開発を可能にするツールを見出した。これを用いるとHTTP通信がTCP/IPではなくWebブラウザ内でのプロセス間通信に置き換えられ、Webサーバプログラミングが可能となる。2023年度ではこれらを組み合わせ、最低限の検索システム例を実行可能なことを確認したが、ブラウザ内リソースの制約があり、プログラムライブラリなどを大幅に削除する必要があることや、開発環境としての使い勝手に課題が残った。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
研究実績の概要で述べたように、簡単な情報検索システムをPython言語によりWebブラウザ内で閉じたものとして開発するために必要な構成要素を確認し、それらを組み合わせて入門的な検索システムの試作までは確認できた。研究協力者による必要ツールの調査も捗ったため、本課題1年目としては順調に進められたと考えられる。一方、本研究の目的ではプログラミング入門者にも使える開発環境を目指しているが、現状では、(1) Webブラウザ内で利用可能なリソースの制限により、Python用ライブラリなどを大幅に削減する必要があり、(2) 開発環境としてのデバッガ等の機能が十分ではない、という課題が残されている。一方、これらの課題のうち後者はプログラミング一般の課題でもあり、JupyterLiteのような既存のものとの組み合わせも考え得るので、本課題として主に残された課題は前者の制限されたリソース内でどこまでの機能が実現可能かを確かめることであると考えられる。
|
Strategy for Future Research Activity |
現在までの進捗状況にも述べたように、本研究の残された課題としては、(1) Webブラウザの制限されたリソース内で削減するライブラリの最少化、(2)プログラム開発環境の機能充実化、があげられる。後者はJupyterLite等既存のものを組み合わせる可能性があり、そのためにもブラウザ内で用いることが出来るリソースの制限への対策が重要なので、まずは前者についての調査と対策技術の検討を進める。特にWebブラウザのリソース制限はブラウザの種類や実行する際のOSなどの環境にも依存する可能性がある。そのため、動的に制限量を確認して、プログラム実行に必要な最小限のライブラリのみを読み込むなどの対応策の検討と実験から進めていく。
|