エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

[連載:企業に直撃!] 組込み系エンジニアだからできた! Java開発者必見、Web基盤のモジュール化方法

公開

 

OSGiを応用することでWeb基盤のモジュール化を実現した、Beat Communicationの小原崇氏によるスライド

エンタープライズ向けシステムの開発者にとって、顧客からのカスタマイズ要望や新機能追加を求める声というものは、商機である。と同時に、システムの一貫性に影響を及ぼしかねない。

顧客ニーズや市場トレンドに応えることは重要とはいえ、顧客のために肥大化したソースコードを見つめながら、先人たちの仕事ぶりに不満の一つも言いたくなるエンジニアも少なくないだろう。

組込み向けだったOSGiをWebに応用。機能のモジュール化が可能に

社内SNS構築パッケージで国内最大手のBeat Communication(左は同社代表・村井亮氏による近著)が、2011年10月にリリースした『Beat Shuffle』は、こうしたソフトウエア開発にありがちなひずみを排除するべく、システム内に大胆なモジュール構造を組み入れた製品だ。これを可能にしたのはWeb業界ではあまり例のない、ある意外なテクノロジーへの挑戦によるものだった。

「『Beat Office』という製品の後継である『Beat Shuffle』を開発する際、大幅な設計変更を行いました。主要機能をモジュール化し、将来にわたってカスタマイズ開発を容易に行えるようにするためです。そこで導入したのが、組込みソフトの分野で使われるOSGi(Open Services Gateway initiative)のフレームワークでした」

株式会社Beat Communication
システム開発部
Beat Shuffle開発チーム
小原 崇氏

そう話すのは、同社システム開発部の小原崇氏だ。

OSGiの名はJavaエンジニアなら一度は耳にしたことがあるかもしれない。統合開発環境であるEclipseのコアテクノロジーに採用されたOSGiは、バージョン3.0以降、プラグインによって再起動なしに機能追加できるという機構をもたらした。

ただOSGiは、もともと国内外の大手電機メーカーやソフトウエアベンダーが参画するOSGi Allianceによって、組込みソフトをJavaで実装するためのプラットフォームとして策定されたもの。

今日では優れたそのモジュール管理能力が評価され、携帯電話や車載機、オフィス機器などに広く利用されているが、Webの世界は例外。

GlassFishやWeblogicなど、OSGiをサポートしている例はあったが、サーバに関連した話題がほとんどで、アプリ開発に応用されたという例はこれまでほとんどなかった。

「やってみて分かったのは、今までのWebアプリ開発のやり方とは大きく異なるということ。モジュール同士が参照し合う関係によって成り立っているので、開発者はどのプログラムがどのモジュールになければいけないかを常に意識しなければなりません。今回OSGiの導入によって、従来の開発手法や考え方を大きく転換させられました」

株式会社Beat Communication
システム開発部
Beat Shuffle開発チーム

藤谷佳正氏

同社で小原氏とともに『Beat Shuffle』の開発をけん引してきた藤谷佳正氏は、開発当初の苦労をそう述懐する。

「常にハードに厳しく制約される組込みソフトに対し、Webアプリの場合、開発に使われるサーバ自体の容量、パワーともに比べ物にならないほど余裕がある。そのように、開発条件も考え方も似て非なるものですから、Webアプリ開発者にとって、発想の転換を強いるものだという話はうなずけます」(小原氏)

とはいえ、今までもWebアプリをモジュール化するという概念がなかったわけではなかった。コンポーネント間の相互依存性を極力少なくしたDI(Dependency Injection)を用いれば、機能のモジュール化に近いことはできる。しかし、同社が抱えていた課題を解決するには十分ではなかった。

「Web業界でDIはよく使われる手法ですが、切り離したモジュールを独立して取っておくとか、部品として扱うことができないためカスタマイズ開発の効率化を目指すわたしたちの目的には合いませんでした。その後もいろいろ調査しましたが、OSGi以外の有力な選択肢を見つけることはできませんでしたね」(小原氏)

ではなぜ、同社がWebアプリ開発への応用例が乏しいOSGiを、商用レベルのプロダクトに取り入れることができたのか。また、そのきっかけは何だったのだろうか。

組込み開発経験があったから、発想の転換ができた

「わたし自身が、過去にデジタル複合機の制御モジュール開発した経験が発想の原点になっています。実は高度にネットワーク化されたデジタル複合機は、びっくりするぐらいWebサーバによく似ているんです。『Beat Shuffle』をスクラッチ開発するにあたって当時の仕事を思い出し、WebアプリにもOSGiが応用できるはずと確信し、導入の検討に入りました」(小原氏)

当初はリリースから約3年を経ていた『Beat Office』の次期バージョンを開発するつもりでいた2人だったが、機能拡張性にそろそろ限界が見え始めていたこと、そして技術的な検証の結果、OSGiを取り入れた方が今後のカスタマイズ開発の作業効率向上につながると判断。新たなプロダクトとしてスクラッチ開発することを決意する。

「正式なプロジェクトとして稼働したのは昨年の1月から。小原が中心となって技術調査を行うのと並行して、わたしが外部要件の定義や基盤作りを担当することになり、8人体制で開発を進めました。プロトタイプの制作は12月からはじめ、本格的な開発に着手したのは今年の1月からと、構想から2年弱の時間をかけリリースにこぎ着けたんです。開発に際しては、以前の主力製品である『Beat Office』とは一切互換性がなかったため、すべてイチからの取り組みになりました。メンバー全員、かなり苦労しましたね」(藤谷氏)

「藤谷が言うように、過去の資産が活かせないのは確かに大変でした。ただ、この開発が成功したことによって、新機能の追加やカスタマイズがしやすくなったのは確かですし、逆に機能を削った簡易バージョンの作成も容易になりました。販売戦略的にも大きなメリットを得たことになります。また将来的にはお客さま自身や外部の開発会社がモジュール開発できるようAPIを提供することも検討中。わたし自身今後の展開が楽しみです」(小原氏)

技術が分野をクロスオーバーする時、「異分野出身」が価値になる

小原氏の期待の裏には、次期バージョンとしてリリースが待たれる『Java SE 8』の仕様に、OSGiのモジュール機能が取り入れられることが、決定していることが少なからず影響していると思われる。

『Java SE 8』が広く世界に普及したとき、『Beat Shuffle』の後を追うソフトウエアの少なからず出るだろう。そのとき彼らの取り組みが時代に先駆けた試みとして注目される可能性が高い。先行者としての利益はかなり大きなものになるのではないだろうか。

この事例は意外な分野から取り入れた技術によって、別の分野にブレイクスルーが起こる可能性があることを端的に示している。組込みソフトの分野からWebアプリに応用できる技術があるのであれば、もっと他分野に応用可能な技術があってもおかしくはない。

技術の世界はすでに高度に細分化されてしまっているとはいえ、異分野での経験や個人的な興味、関心を持つ人物の新鮮な視点が、優れた技術やサービスの組み合わせを発見する可能性も秘めている。どんな技術に対しても関心を持って取り組めるエンジニアこそ、次の時代を作るエンジニアなのかもしれない。

取材・文/武田敏則(グレタケ) 撮影/桜井 祐(編集部)