{"created":"2025-01-18T22:49:44.895460+00:00","updated":"2025-01-22T23:50:10.672297+00:00","metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00016491","sets":["934:935:945:946"]},"path":["946"],"owner":"1","recid":"16491","title":["非同期処理のための JavaScript マルチスレッドフレームワーク"],"pubdate":{"attribute_name":"公開日","attribute_value":"2007-08-15"},"_buckets":{"deposit":"a90a45c2-9808-44af-832f-b1274ecaeb04"},"_deposit":{"id":"16491","pid":{"type":"depid","value":"16491","revision_id":0},"owners":[1],"status":"published","created_by":1},"item_title":"非同期処理のための JavaScript マルチスレッドフレームワーク","author_link":["0","0"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"非同期処理のための JavaScript マルチスレッドフレームワーク"},{"subitem_title":"JavaScript Multithread Framework for Asynchronous Processing","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"通常論文","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2007-08-15","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"電気通信大学大学院電気通信学研究科"},{"subitem_text_value":"電気通信大学情報工学科"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Graduate School of Electro-Communications, The University of Electro-Communications","subitem_text_language":"en"},{"subitem_text_value":"Department of Computer Science, The University of Electro-Communications","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/16491/files/IPSJ-TPRO4812002.pdf"},"date":[{"dateType":"Available","dateValue":"2009-08-15"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO4812002.pdf","filesize":[{"value":"405.5 kB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"660","billingrole":"5"},{"tax":["include_tax"],"price":"330","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"488ac727-8311-4ba7-b507-e48cc4d0176b","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2007 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"牧, 大介"},{"creatorName":"岩崎, 英哉"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Daisuke, MAKI","creatorNameLang":"en"},{"creatorName":"Hideya, IWASAKI","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_3_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AA11464814","subitem_source_identifier_type":"NCID"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_6501","resourcetype":"journal article"}]},"item_3_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7802","subitem_source_identifier_type":"ISSN"}]},"item_3_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"Ajax は Web 開発の世界で普及したが、一方で Ajax 開発が従来の Web 開発に比べて非常に困難であることがよく知られている。その理由として、Ajax 開発においては複雑な非同期処理を 1 つのスレッドの上にすべて記述しなければならない点、JavaScript では非同期通信をイベント駆動型でしか記述できないため、制御フローの記述が困難である点があげられる。上の問題を解決するため、本論文では JavaScript のマルチスレッドライブラリを提案する。提供するライブラリの特徴としては、(1) 代表的な複数の Web ブラウザで可搬性があること、(2) プリエンプティブなスレッド切替えが可能であること、(3) オブジェクト指向で API を提供すること、がある。提案機構では、マルチスレッド・スタイルで記述された JavaScript プログラムを継続ベースの並行処理を応用して既存の処理系で実行可能な JavaScript プログラムへと変換し、この変換済みプログラムを実行時ライブラリであるスレッド・スケジューラの上で並行実行する。そして実際に Ajax アプリケーションを記述することで、提案機構の有効性を確かめた。提案機構にはオーバヘッドがあるが、Ajax アプリケーションにおける通信遅延に比べると十分に小さいため、実用上は大きな問題にはならないと考えられる。","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"Although Ajax is widely used in the development of Web applications, it is well known that Ajax development is much more difficult than traditional Web development. There are two reasons: (1) Ajax developers have to write complex asynchronous program on a single thread; (2) asynchronous communication on JavaScript can be programmed only in event driven style, which causes control-flow difficulty. To resolve this problem, we provide multithread library to JavaScript programmers. The proposed library has the following features: (1) it is portable among popular Web browsers; (2) it provides preemptive scheduling; (3) it provides object-oriented API. The proposed system converts JavaScript programs written in multithreaded-style into those in continuation-based style that are executable on existing systems, and then executes them concurrently on a runtime-library called thread-scheduler. To see the effectiveness of the library, we implemented an Ajax application using the library. The overhead of the converted programs is not a serious problem in practice because the overhead is smaller enough than communication delay of Ajax applications.","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"18","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicPageStart":"1","bibliographicIssueDates":{"bibliographicIssueDate":"2007-08-15","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"SIG12(PRO34)","bibliographicVolumeNumber":"48"}]},"relation_version_is_last":true,"weko_creator_id":"1"},"id":16491,"links":{}}