ソースコードの宝石箱、●●Forgeを見逃すなかれ:安藤幸央のランダウン(39)
「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集部)
「Forge」とは何か?
突然ですが、「Forge(フォージ)」とは何のことか、お分かりでしょうか?
もともとの意味は「鍛冶屋」「溶鉄炉」のことを示し、「構築する」「鉄を鍛えて〜にする」といった意味もあります。
本記事の読者の皆さんにとっては、SourceForgeのようなオープンソース系の「開発ホスティングサービス」を思い浮かべる人もいると思います。
ソースコードの管理だけではなく、プロジェクトの進行や、コミュニケーション、仮想マシンによるテストなどさまざまなサービスが無料で提供されています。このようなホスティングサービスは「レポジトリ」(貯蔵庫)とも呼ばれます。
開発ホスティングサービスが持つ機能
開発ホスティングサービスの便利なところは、複数の離れたところで作業する開発メンバーが共同で利用できるところです。
また、バグの管理ができたり、旧バージョンのアーカイブを保存できたり、コスト面でも助けられることが多いでしょう。
開発ホスティングサービスでは、主に以下のようなサービスが提供されています。
- CVS、Subversionによるソースコード管理
- Webページ記述のための仕組み(CMS)とWebページのホスティング
- 開発メンバー用、新バージョンアナウンス用のメーリングリスト
- バグトラッキング(バグの管理)
- ユーザー向け、開発者向けの掲示板(BBS)
- タスク管理のための仕組み
- ダウンロードサービス
- バックアップ、アーカイブサービス
- コンパイル環境の提供
- ドキュメント管理の仕組み
- RSSフィードで開発の最新状況が通知される
編集部注:CVSについて詳しく知りたい読者は、 「CVSとEclipseで「コードの共同所有」」を、Subversionについては「バージョン管理に便利なSubversiveプラグイン」を、タスク管理については「Mylyn&Tracでリズムに乗ってタスクを大掃除♪」を、それぞれご参照ください
開発ホスティングサービスはどう使うのがオトク?
■使いたい機能だけ“つまみ食い”して使う
開発ホスティングサービスでは、プロジェクトのすべてを任せるだけではなく、「バグトラッキング」だけ活用したり、単独機能だけでも十分有用です。例えば、サイズが大きなプログラムファイルの「配布サービス」としても活用できます。
特に、MySQLなどのデータベース環境や、ソースコード管理のCVSやSubversionのセットアップを独自に行わなくても、登録・承認後、すぐにオンラインで使い始められることもメリットとなっています。
■貧弱なPCを使う人に有効
プログラム開発におけるさまざまな環境/リソースを、自分の端末に持たず、オンラインでアウトソーシングする感覚です。保有するPCのスペックが貧弱なときにとても有用なサービスといえるでしょう。
■小規模から大規模開発まで
前述のように、複数の個所で行う複数の人がかかわるプロジェクトで特に有用ですが、1〜2人といった、ごく少人数のプロジェクトでも十分活用できるし、役立つサービスです。
■ソースコード専用の検索エンジンとの連携
ソースコードレポジトリは、Google Code Searchなどのソースコード専用の検索エンジンと組み合わせると最大限の効果を発揮することでしょう。
編集部注:ソースコード専用の検索エンジンについて詳しく知りたい読者は、連載第33回「見つけて得するソースコード専用の検索エンジン」をご参照ください。
いろいろなForgeを見てみよう
現在、実に多くの開発ホスティングサービスがWeb上に存在しています。どんなForgeがあるのか、幾つか見てみましょう。
■最大級の開発ホスティングサービス「SourceForge」
2008年3月現在、17万件を超えるプロジェクトが登録される、現在進行中の最大級の開発ホスティングサービスです。さまざまな言語で書かれた、数多くのオープンソースプロジェクトが登録されています。
■Ruby者開発のための「RubyForge」
プログラミング言語Rubyに限定した開発ホスティングサービスです。2008年3月現在、約5000件を超えるプロジェクトが登録されています。Ruby、Ruby on Rails関連のプロジェクトを探すには重宝すると思います。また、人気のトップダウンロードからは、最近の流行を知ることができます。
■Googleに注目する人はココをチェック! 「Google Code」
Googleが提供する開発ホスティングサービスです。主に、Google内部で開発され、オープンソース化されたソースコードや「Google Summer of Code」で開発されたソースコードが公開されています。
主に、Webアプリケーション系のものが多く、2008年3月現在、約5万件のプロジェクトが登録されています。Googleプロダクト、Google API周辺の開発を行うときにはチェックが欠かせないサービスです。日本語サイトもあります。
■.NET framework周辺の「CodePlex」
Microsoftが提供する開発ホスティングサービスです。.NET Framework周辺のプロジェクトが主流です。統合開発環境Visual Studioからシームレスに接続して作業できます。2008年3月現在約4000のプロジェクトが登録されています。
■MacOS環境に特化した「MacOS Forge」
Appleが主催する開発ホスティングサービスです。Mac Tech Magazineが主催する「MacForge.net」とは別物で、MacOS環境に特化したオープンソースレポジトリとなります。
Apple社が開発したプロダクトのうち、オープンソース化されたものが公開される場所として活用されています。基本ライセンスとしてCreative Commons 2.5が使われています。
■非公開でもOK、統合開発環境と連携して使える「Origo」
Origoはオープンソースとともに、クローズド(非公開)なプロジェクトに対しても利用できる開発ホスティングサービスです。EclipseやVisualStudioなど統合開発環境と連携して使えることも特徴のサービスです。
■Java開発のための「JavaForge」
プログラミング言語Javaに関するコミュニティサイト「Javalobby」が主催する開発ホスティングサービスです。全登録プロジェクト数は2008年3月現在100件少々で、まだまだ発展途上のサービスです。codeBeamerで運用されています。
■Java開発者向けでニュース記事も充実「java.net」
Sun MicrosystemsとO'Reillyが提供する開発ホスティングサービスポータル、コミュニティサイトです。CollabNetで運用されています。
プログラミング言語Javaに特化していて、特にLinux環境でのJavaのプロダクトが豊富なレポジトリです。開発者向けの技術ニュース「Java Today」の記事も充実しています。
クラウド・コンピューティングへの布石
■オンラインの仮想サーバ・サービス
開発ホスティングサービスの一歩先にあるのが、Amazon EC2(Elastic Computer Cloud)/Amazon S3(Simple Storage Service)をはじめとするオンラインの仮想サーバ・サービスです。これを利用することによって、自宅や会社ではない、オンライン上にいくつものサーバを立てることができます。
Amazon EC2は中規模のサーバ環境を安価に借りることができます。システム構成の違いによって若干価格が変わりますが、2008年3月現在1ノード1時間当たり10セントです。
また、柔軟に活用できる仮想サーバ・サービスで、必要に応じてサーバの数をどんどん追加できます。高速のネットワーク回線でつながれたサーバが安価で安定して利用できるのです。
Amazon S3 は大容量のストレージサービスをWebサービス経由で利用できます。2008年3月現在、1カ月1Gbyte当たり0.15ドルです。
Amazon EC2/S3はAmazonが培った冗長化の技術などが活用され、比較的長期的に安定して運用されていますが無停止を保証していません。よって、開発中のサービスのテストや、柔軟にサーバ資源を増減したいサービスなどの場合に有用であり、何にでも使えるというわけではありません。
■各種ツール・サービスだけではなく運用でも
こう考えると、開発における各種ツール・サービスは開発ホスティングサービスでアウトソーシングし、実際の運用でさえもAmazon EC2/S3などでアウトソーシング可能になってきたということになります。
メンテナンスやサーバ管理、トラブル時の対処などを考えると、ますます魅力的なサービスに映るでしょう。インターネット上に拡散したコンピューティングリソースを活用してサービスを提供する「クラウド(雲)・コンピューティング」への体系が確立しつつあると考えられます。
編集部注:クラウド・コンピューティングについて詳しく知りたい読者は、「Web上に登場した3種類の“プラットフォーム”」をご参照ください
開発ホスティングサービス活用の“注意”点
開発ホスティングサービスを活用するには気を付けておかなければならないこともあります。オープンソース系のレポジトリは大変便利に活用できますが、利用の際にはライセンス条項に十分注意する必要があるということです。
特に、商用サービスでの利用や改変、再利用などに注意が必要です。特殊な開発を行っているような極端な例では、ソースコードを見ただけでも問題に問われる場合もあるので、ご自身の仕事や環境を十分に把握したうえで活用しましょう。
「貢献」もして、オープンソース界の未来を垣間見よう
一方で、オープンソースは単に利用するだけではなく「貢献」できると多くの人々に役立つことができるでしょう。
プロジェクトの大部分の開発にかかわるということだけではなく、バグレポートを送ったり、パッチを書いたり、ドキュメントの作成を手伝ったりと、貢献できる事柄は数多く存在します。
日々増え続ける数多くのプロジェクトを活用し、後押ししていくことによって、今後のオープンソース界の未来が垣間見えかもしれません。
次回は2008年5月初めごろに公開の予定です。内容は未定ですが、読者の皆さんの興味を引き、役立つ記事にする予定です。何か取り上げてほしい内容などリクエストがありましたら、編集部や@ITの掲示板までお知らせください。次回もどうぞよろしく。
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ
Java News.jp(Javaに関する最新ニュース)
所属団体
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 次世代を予感させるグリッドコンピューティング
安藤幸央のランダウン(7) 地球外知性探索のSETI@Homeなどで知られるグリッドコンピューティング。今、商用化や標準化など、さまざまな試みに発展している - Twitterやクラウドへも分岐するAjax/Web APIの道
Ajax うきうき Watch(29) 芸能人も参加中のGoogleマイマップEXPO、日本語化するTwitter、クラウドコンピューティング、もうすぐ始まるIE 7への自動更新など全8トピック - RIA/リッチクライアントの明日はどっちだ?
RIA in Developers Summit 2008 レポート 先日開催されたデブサミのセッションの中からRIA/リッチクライアントに関するものを中心にいくつかレポートする - Google OpenSocialによってSNSで何ができるのか?
SNSやWebを変える!? OpenSocial徹底解説(前編) SNSの共通APIとして発表されたOpenSocialの概要や登場した背景、どんなアプリを作ればいいのかを徹底解説! - 明日からできるプロジェクト管理 第1回 デスマーチを止める進ちょく管理の現実解
- 明日からできるプロジェクト管理 第2回 成果物・文書管理にすぐ使えるオープンソース
- 明日からできるプロジェクト管理 第3回 ビルド管理を楽にするオープンソースツール一覧
- 明日からできるプロジェクト管理 第4回 単体テストの品質をチェックするには