{"updated":"2025-01-21T09:12:16.839579+00:00","metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00106989","sets":["581:7397:7703"]},"path":["7703"],"owner":"11","recid":"106989","title":["mod_mruby:スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構"],"pubdate":{"attribute_name":"公開日","attribute_value":"2014-11-15"},"_buckets":{"deposit":"9f653c1e-e4ed-45d9-8795-8b6ce7ccd437"},"_deposit":{"id":"106989","pid":{"type":"depid","value":"106989","revision_id":0},"owners":[11],"status":"published","created_by":11},"item_title":"mod_mruby:スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構","author_link":["14870","14868","14869","14867"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"mod_mruby:スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構"},{"subitem_title":"mod_mruby: A Fast and Memory-Efficient Web Server Extension Mechanism Using Scripting Language","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[一般論文] Web server,Apache,mruby,mod_mruby,interpreter","subitem_subject_scheme":"Other"}]},"item_type_id":"2","publish_date":"2014-11-15","item_2_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"京都大学情報学研究科"},{"subitem_text_value":"京都大学学術情報メディアセンター"}]},"item_2_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Graduate School of Informatics, Kyoto University","subitem_text_language":"en"},{"subitem_text_value":"Academic Center for Computing and Media Studies, Kyoto University","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"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/106989/files/IPSJ-JNL5511017.pdf"},"date":[{"dateType":"Available","dateValue":"2016-11-15"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-JNL5511017.pdf","filesize":[{"value":"868.7 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":"8"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"3ad0158c-22bb-48dc-aa74-740c9683a5d7","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2014 by the Information Processing Society of Japan"}]},"item_2_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"松本, 亮介"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"岡部, 寿男"}],"nameIdentifiers":[{}]}]},"item_2_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Ryosuke, Matsumoto","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Yasuo, Okabe","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_2_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AN00116647","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_2_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7764","subitem_source_identifier_type":"ISSN"}]},"item_2_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"Webサービスの大規模・複雑化にともない,Webアプリケーションの開発だけでなく,Webサーバソフトウェアの機能拡張も必要になる場合が多い.Webサーバの機能拡張において,高速かつ軽量に動作することを重視した場合,C言語による実装が主流であったが,生産性や保守性を考慮した場合はスクリプト言語で機能拡張を行う手法も提供されている.しかし,従来手法は,Webアプリケーションの実装だけでなく,Webサーバの内部処理を拡張することを主目的とした場合,高速性・省メモリ・安全性の面で課題が残る.そこで,スクリプト言語で安全に機能拡張でき,かつ,高速・省メモリに動作するWebサーバの機能拡張支援機構を提案する.Webサーバプロセスから内部処理としてスクリプトが呼び出された際,高速に処理するために,インタプリタの状態を保存する状態遷移保存領域の生成を,サーバプロセス起動時に生成しておいて,それを複数のスクリプトで共有して実行するアーキテクチャをとった.また,メモリ増加量を低減し,かつ,状態遷移保存領域を共有することにより生じるスクリプト間の干渉を防止して安全に機能拡張するために,スクリプト実行後に状態遷移保存領域からメモリ増加の原因となるバイトコード,および,任意のグローバル変数・例外フラグを解放するようにした.このアーキテクチャの実装には,組み込みスクリプト言語mrubyとApacheを利用し,Rubyスクリプトによって容易にApache内部の機能拡張を行えるようにした.このApacheの機能拡張支援機構をmod_mrubyと呼ぶことにする.","subitem_description_type":"Other"}]},"item_2_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"As the increase of large-scale and complex Web services, not only a development of Web applications but also an implementation of Web server extensions is required in many cases. The Web server extensions were mainly implemented in C language because of fast and memory-efficient behavior, and extension methods using scripting language also are provided with consideration of maintainability and productivity. However, if the existing methods primarily intended to enhance not the implementation of Web applications but the implementation of internal processing of the Web server, the problem remains in terms of fast, memory-efficiency and safety. Therefore, we propose a fast and memory-efficient Web server extension mechanism using scripting language. We design the architecture that a server process create the region to save the state of the interpreter at the server process startup, and multiple scripts share the region in order to process fast when the script is called as internal processing from a Web server process. The server process free any global variables, the exception flag and the byte-code which cause the increase of memory usage mainly, in order to reduce the memory usage and extend safely by preventing interference between each scripts because of sharing the region. We implement the mechanism that can extend the internal processing of Apache easily by Ruby scripts using Apache and embeddable scripting language mruby. It's called “mod_mruby”.","subitem_description_type":"Other"}]},"item_2_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"2460","bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌"}],"bibliographicPageStart":"2451","bibliographicIssueDates":{"bibliographicIssueDate":"2014-11-15","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"11","bibliographicVolumeNumber":"55"}]},"relation_version_is_last":true,"weko_creator_id":"11"},"created":"2025-01-18T23:50:17.502268+00:00","id":106989,"links":{}}