シェルスクリプトでアプリを作成、スクラッチ開発の効率を向上──アプリケーションは短いコマンドを並べて簡単に作る。簡単だから作り捨てでもかまわない。 そんな発想の下、誕生した開発環境が、ユニバーサル・シェル・プログラミング(USP)研究所の「ユニケージ開発手法」だ。 誕生から6年の間に、流通業や小売業を中心にユーザーを増やしつつある。
ユニバーサル・シェル・プログラミング(USP)研究所は2004年設立の、まだ若いベンチャー企業である。そのため同社の「ユニケージ開発手法」は、国内外の老舗ベンダーが提供する開発環境に比べると馴染みが薄いかもしれない。だが、システム内製化の一環で流通業や小売業、外食産業の名だたる企業で採用が相次ぎ、にわかに注目を集めつつある。
例えば、良品計画はマーチャンダイジングシステムや、店舗間の情報共有基盤の開発にユニケージ開発手法を用いた。ローソンは全国約8500店舗の時間帯別売上情報管理システムの構築に、東急ハンズはプロモーション管理などの機能を備える店舗情報システムの構築に、それぞれ同手法を採用。IT先進企業として知られる花王も、研修施設予約システムの構築プロジェクトで活用しているという。
40〜50種類コマンドで大概のアプリは開発可能
ユニケージ開発手法は「効率よくスクラッチ開発する」(當仲寛哲代表取締役所長)ことを狙った開発環境である。具体的には、Linuxなどで使われる短いコマンドを組みわせたシェルスクリプトで業務アプリケーションを記述する。その意味では、パート3で紹介したGeneXusやSapiensのようなアプリケーションを自動生成するツールとは一線を画す。
名称に「手法」とあるため単なる方法論と捉えられかねないが、ユニケージ開発手法は開発環境だと位置付けてよかろう。業務アプリケーションの開発に不可欠なコマンド群をUSP研究所が独自に整備して、ユーザー企業に提供しているからだ。
図4-1は、ユニケージ開発手法で作った業務アプリケーションのシェルスクリプトの一部である。「[A]を[Sales]に置き換える」という場合に使うLinuxのコマンド「sed」などのほかに、データのマッチングをする「join0」やフィールドを選択する「self」といった独自コマンドをパイプ(|)で連結してアプリケーションで必要な処理内容を記述していく。要するに、単純なデータ処理用のモジュールを複数用意しておき、それらをコマンドで指定して一連のデータ処理を実行するイメージだ。
USP研究所はこれまでに約2000種類の独自コマンドを作ってきた。現在は、複数のプロジェクトでの実利用を経て100種類程度に収れん。「そのうち40〜50種類ほどで大概のアプリケーションは作ることができる」(當仲所長)という。
データ項目を容易に変更
プロセサ性能も引き出す
ユニケージ開発手法の特徴の1つは、業務データをテキストファイルで管理することである。販売や出荷といったイベントが発生するたびに日付や店舗、金額を書いた「name」形式のテキストファイルを生成(図4-2)。それらを店舗ごとや部門ごとなどの単位で複製したうえで活用する。name形式を用いるのは、「可変長でデータ項目を容易に追加・変更できる」(當仲所長)からだ。「(RDBMSのように)最初から項目を決めておかなくてもよい」(同)。
OSの機能を生かすことで、複数のコアを持つプロセサの性能を最大限に引き出せる点も興味深いポイントだ。前述した通り、ユニケージ開発手法ではパイプ(|)でコマンドを連結してアプリケーションを開発する。一方、Linuxカーネルはパイプでつないだ処理を複数のコアに分散して並列処理する機能を備える。「プログラマーは特に意識することなく、マルチコアを使い切るような並列処理プログラムを作ることができる」(當仲所長)わけだ。
もっとも、こうしたメリットを享受するにはハードルも存在する。アプリケーション自動生成型の開発環境を使う際に操作方法を覚えなければならないのと同様、ユニケージ開発手法では利用可能なコマンドと、その使い方を習得する必要がある。ただし、1990年代に始まったオープン化の流れに乗ってUNIXやLinuxでシステムを開発した経験がある企業にとっては、決して高いハードルではないだろう。USP研究所はLinuxの基礎知識を習得している技術者向けの講習も開催している。
- 栗原 雅(編集部)