レーティング方法や活用技術

SCSKとOSS

OSS Radar Scopeはこうして生まれた 2人のキーマンが語るその存在価値と開発秘話

  • PART1 開発エピソードや運営の裏話
  • PART2 レーティング方法や活用技術
  • PART3 活用方法や社外の評価

PART2 レーティング方法や活用技術

日本でもOSSの利用率が年々増加し、その勢いは幅広い領域にまで広がっています。しかし、OSSを活用するにあたり、個人の限られた知識や経験、不十分な検証で選択し利用を決めた場合、後にトラブルやリスクを抱える可能性は高まります。

そこで、一般的なビジネスユーザーのOSS選定をサポートすることを目的に開発したのがSCSKの「OSS Radar Scope®」(オーエスエス・レーダー・スコープ)です。選択肢が多く、情報収集の敷居が高いOSSの選定に対して、OSSの成熟度/品質/サービスなど客観的な情報をWebなどから収集・蓄積し、透明性の高い基準で評価した上で、わかりやすい形に可視化しています。

今回は、開発と運営を担当した2人のキーマンに、OSS Radar Scope®の肝となるレーティングの方法や活用した技術について話を聞きました。

5つの視点でスコアリングし重み付けを掛けた値でスコアを算出

―前回は、OSS Radar Scope®開発の裏話や見直しのエピソードなどをうかがいました。そこで気になるのは、OSS Radar Scope®がどんな基準でOSSを評価しているのかという点です。その根拠となるレーティングの考え方について説明してください。

湯川:分かりました。OSS Radar Scope®では、1)計画的なバージョンアップを経ているOSSは良質のOSSである可能性が高い、2)出版された書籍の冊数が多いOSSは良質のOSSである可能性が高いなどの仮説に基づき、次の5つの視点を裏付ける客観的データを元に月次単位で情報の更新を行い、月次でレーティングを行っています。

第1にリリース履歴。これには要素が2つあり、計画的なバージョンアップを経ているOSSは良質のOSSである可能性が高い、パッチリリースの頻度が適切なOSSは良質のOSSである可能性が高いという判断です。

第2にドキュメント/関連出版物。ユーザー向けドキュメントの質/量に力を入れているのは良質のOSSである可能性が高く、また出版された書籍の冊数が多いOSSはユーザーが利用しやすく良質のOSSである可能性が高いというもの。

第3にサポート情報。サービスを提供する「ベンダーの数」×「提供されるサービスの品揃え」とOSSの質は比例すると判断しています。

第4にコミュニティの活動状況。開発者間でのオープンなコミュニケーションやユーザーからのフィードバックが多いOSSは良質のOSSである可能性が高いという判断。

第5にプロジェクトの継続性。初期リリースからの経過年数の長いOSSは成熟し、安定性と信頼性が高いと考えます。

これらのレーティングのため、各データの値をスコアリング表に基づきスコアリングし、その値に重み付け(重視する割合)を掛けた値でスコアを算出しています。

図1 OSS Radar Scope®のレーティングを行うためのスコアリング表(2015年9月現在)

鰈崎:スコアリング表の設定値や重み付けの値は、経験に基づき独自の観点から設定しています。

OSSコミュニティのメーリングリストやWebフォーラムのトラフィック、新バージョンのリリース情報を月単位で集計してカウントしています。当初は毎月5日間かけて2人で手分けしながらデータを集めOSS Radar Scope®のレーティングに反映していましたが、最近はスクリプトを使ってメーリングリストの約9割、バージョンのリリース情報の約4割は自動収集できるようにしています。

世界で60万本以上ともいわれるOSSの中で、現在はビジネスで使いやすい定番といわれるものを中心に159本を厳選して掲載し、今後新しいOSSをOSS Radar Scope®に加えるかどうかの判断は、ユーザーの声なども参考にして決定します。注目すべきOSSは社外向けの「OSSユーザーのための勉強会 < OSS X Users Meeting >」でも随時取り上げるようにしています。

開発の生産性が高く先進的な機能を提供するPlay Frameworkを基盤に採用

―ここで少しOSS Radar Scope®がどんな技術で開発されているのかを説明してください。

鰈崎:OSS Radar Scope®はScala とJavaで書かれたオープンソースのWebアプリケーションフレームワーク「Play Framework」を使用して開発しています。Play Frameworkは静的型付けによる型安全(Type safe)なRubyOnRails(RoR)の影響を受けたフレームワークで、非同期HTTPプログラミングやScala/Javaのハイブリッド開発が可能で、開発の生産性が高く、HTMLテンプレートなどあらゆる物がコンパイル時にチェックできるのが特徴です。ただ、Play Framework はJavaEEを基本的に無視するので作法に慣れるまで少し時間がかかりました。

また、レーダーチャートのカラー表示の部分はJavaScriptのグラフィックライブラリ「Raphel.js」を活用しました。Internet ExplorerがSVG に対応していなかった当時は同一のソースコードでユーザーのブラウザに合わせてSVG とVML技術を自動的に切り替えてベクトルグラフィックスを出力することができたので重宝しました。
VML(Vector Markup Language)は、2次元コンピュータグラフィックスをコンピュータ内部で表現するデータ形式の代表的な2つのうち1つであるベクター形式の画像を描画するための XML 言語です。

OSSのマスターデータ/ジャーナルデータ/ランキング集計データの格納先にはOSSのRDBMSであるPostgreSQLを使っています。前に紹介した有志社員によるJava勉強会には、Javaで実装されたインメモリDBのH2を使っており、DBMSの切り替えが簡単にできるのもPlay Frameworkの特徴の一つです。H2はJavaで実装されたインメモリRDBMSです。組み込みモードを使うことにより手軽に利用することができるので、開発環境などで利用するのに適しています。他にはデータ収集のバッチプログラムにRuby、OSはCentOS、監視にZabbixを活用しています。

(Part3へ続く)

(インタビュー実施時期:2015年10月)

  • PART1 開発エピソードや運営の裏話
  • PART2 レーティング方法や活用技術
  • PART3 活用方法や社外の評価