2012年度森泰吉郎記念研究振興基金研究者育成費 修士課程 研究報告

Web ラウザ内で完結す

Web アプケーシン開発環境の実現方法の研


慶應義塾大学 政策・メディア研究科 修士課程

矢萩寛人


 今回私が実現方法を研究するものは、ソフトウエア統合開発環境の諸機能をブラウザ上において実現する試みである。従来はローカル環境においてしか実行できなかった統合開発環境をWeb上で利用可能にすることで、ソフトウエアの設計から開発における全工程をWeb上に集約し、各開発工程における作業をより容易にする手段を提供することを目標とする。


1.本研究の技術的背景

近年のコンピューティングスタイルは、タブレットPC、スマートフォンなど端末面での多様化が進み、従来のコンピューティングの枠組みから外れた新しいコンピューティングスタイルが継続的に提案されている。更にはWebブラウザのみをインストールして利用することを前提としたノートパソコンなど、アーキテクチャやOSの革新にとどまらない全く新しいコンピュータの形の提案もある。さらに「クラウドコンピューティング」に見られるように、「サービス化」が今やソフトウエア提供手段の中心になっている。この変化により各ソフトウエア分野の開発者はWebアプリケーション分野への注力を行うことになったが、その流れの中でも統合開発環境はローカルアプリケーションが大きなシェアをしめており、WebIDE分野における覇者は依然として存在しない。これは従来の技術環境ではこれらの実現に大きな困難が伴っていたためであるが、近年のWebブラウザの進化やクラウドコンピューティングの拡大に伴うサーバ資源のスケーラビリティー向上などといった技術革新によってソフトウエア開発環境のWebアプリケーション化に伴う困難は減少しつつある。

2.本研究で解決を図る課題

 近年のソフトウエア開発環境は非常に多くのフレームワークやライブラリによって構成され、複雑化する一方で開発現場への工数的要求は以前にも増して厳しくなっている。そのため開発環境構築などの付随的作業にかける時間を短縮するニーズは以前にもより一層高まっている状況である。しかしながらその一方で統合開発環境がこれらのニーズに答えている要素は決して多くはない。加えて本番運用環境の構築も大きな問題である。本番運用環境は開発環境と同様に各種フレームワークやライブラリが動作する環境が整備されているものでなければならないが、その構成は開発端末の多くで使われている環境と構成が異なる点が多い。さらにIaaS化の進展により、クラスタリングを始めとした動的な負荷分散機構など複雑性を増す要素が増加している。

 更に最新傾向としてはIAサーバと同一のアーキテクチャを採用しないスマートフォンやタブレット端末などの台頭によりこれらの端末を利用したソフトウエア開発手段の確立が求められている他、ソーシャルコーディングへの対応性も大きな問題である。以上のように現在のインストールアプリケーション型IDEには多くの問題が存在し、もはや開発者のニーズを充足させるために十分な機能を搭載しているとは言いがたい状況である。そのため本プロジェクトでは今日的なWeb アプリケーション開発手法に適合した新世代のIDE を開発することにした。

3.本研究の目指すもの

本研究ではWebアプリケーション開発において必要な環境をパッケージとして用意し、Web アプリケーション化した統合開発環境をその環境上で動かすことで開発環境構築の簡易化、開発環境と本番環境の共通化およびプラットフォーム横断的に利用できる統合開発環境の実現を図る。IDEWebアプリケーションとして提供され、クライアントサイドで実行されるアプリケーションは全てAjaxアプリケーションとしてサーバサイドからダウンロードする。さらにファイル管理や構文解析、本番環境へのデプロイなどソースエディタ以外の機能は全てサーバサイドに実装することでクライアントサイド端末の性能やプラットフォームを問わず同一の開発環境を簡単に構築する事ができるようにする。また、デプロイ時の障害発生リスクを低減するために、本システムにおけるサーバサイドには本番用サーバにより近いプラットフォームを利用する。

4.本研究で期待される効果

 本研究によって実現する手法による効果により以下の点においてWebアプリケーション開発における開発効率向上が大きく見込まれる。従来の方法において、のWebアプリケーション開発を行うユーザが開発環境を構築する際にはサーバセットアップやフレームワークの導入などに多大な労力が掛かっていたが、本システムを利用する事によりユーザは本システムへの登録手順を行うだけでデバッグ環境を含めた開発環境を手にする事ができる。これにより従来の手法に比べて大幅に開発環境構築の省力化を実現することが出来る。また、従来の開発環境は

従来のコンピュータと同じOSを利用しないタブレットデバイス上やWebブラウジング専用マシン上で動作させることが出来ないものがほとんどであったが、本システムを利用することによりWebブラウザがインストールされているマシンであればどのような環境上でも開発作業を行うことが出来るようになるほか、複数の端末を使って開発を行なっている環境においても開発環境の構築が1回で済むようになる。さらに従来の手法ではユーザは開発環境の他にプレゼンテーション用の環境を構築する必要があったが本研究成果を用いるとこの手間を省くことができるほか、本番環境との調整も容易になる。

5.本年度の進捗

 私は本研究を慶應義塾大学服部隆志教授の指導の元、2011年9月より行なってきた。研究に際しては延べ15名の学部生も参加し、担当モジュールごとに週1回以上の進捗連絡会議を開催する他、進捗を週1回の全メンバーが集合した会議にて確認・共有してきた。更にその際に各進捗時点での技術的並びに学術的観点からの指導を服部教授から受け、研究計画の改良並びに見直しを行なってきた。

 プロジェクト開始2年目に入る今年は開発プロジェクトとしての組織づくり、ワークフローづくりや一般の開発者からの意見収集により力を入れた。具体的にはオープンソースに関連する団体が一同に集うオープンソースカンファレンスのうち仙台・東京・京都・沖縄・広島・福岡にて発表し開発者交流に務めた他、SFC Open Research Forumに出展し開発者以外の聴衆も含むより広い職種・業種の人物の意見を聴取した。

 更に、オープンソースプロジェクトへの一般参加者を受け入れる準備として各種のワーキングプロセスを定義し、また資料を作成した。その結果として年度後半にはベトナムで日本企業向けに特化したソフトウエア受託開発を請け負う企業との交流を加速させることができ、ソフトウエアのバージョン管理に関する手法の実験を共同で行った他、プロジェクト全体の開発への関与度合いも高まりつつある。

 更にプロジェクト内部からの意見提案として多くの新規機能の提案が行われ、そのうち一部実際に実装されるに至った他、いくつかは実装の採用に向けた品質管理プロセスを実施中である。

6.成果の活用見込み

 本研究において作成したプログラムは引き続き随時オープンソースにして公開し、無償での利用及び改変を可能にすることでソフトウエア工学及び関連する諸産業の発展に貢献することを目指している。

 更に本システムを用いた開発を推進すべく通常の学会発表に加えハンズオンセミナーイベントやシステム・インテグレーターへの普及活動を行い、本システムを実際の開発現場において主要なオープンソース開発環境とすることを目指す。


(参考)開発プロジェクトに関する各種情報

ソースコード: https://github.com/2ga/2ga

開発タスク及び進捗状況: http://dev.2ga.net

開発プロジェクトに関する全体概要: http://2ga.net