- OSS活用ポイント
-
- 世の中の信用度や人気度、更新頻度を分析し、枯れたOSSを活用した短期開発(CELF)用
- 製品開発戦略によっては、果敢に新進のOSSを活用し積極的にノウハウを吸収(Appsnaut)用
- WAF(Webアプリ・ファイアウォール)や負荷テスト、動画処理にもOSSを積極活用
- 開発メンバー
- SCSK株式会社
流通システム第一事業本部 流通システム第一部 Curlプロダクト課長
岡田 一志 - SCSK株式会社
流通システム第一事業本部 流通システム第一部 Curlプロダクト課 プロフェッショナルITスペシャリスト
福田 祥貴 - SCSK株式会社
流通システム第一事業本部 流通システム第一部 Curlプロダクト課 プロフェッショナルITスペシャリスト
菅原 洋介 - SCSK株式会社
流通システム第一事業本部 流通システム第一部 Curlプロダクト課 プロフェッショナルITスペシャリスト
田 登
CELF/Appsnautの概要
OSSを異なる手法で駆使し開発したCELFとAppsnaut
あなたの会社では、予算実績管理や見積・ 案件管理、各種日報管理などはどのように行われているだろうか。基幹システムに組み込まれていない場合は、専用の個別アプリを開発したり、Microsoft OfficeのExcelやAccessなどを利用して管理したりして、いわゆる“隙間アプリ”をいくつも運用しているケースも多いだろう。個別アプリをSI業者に依頼すれば高額な 開発費や保守費が発生する上に、追加開発のたびにさらなる投資が必要になる。また、Excelなどで管理する場合も、シートを変更されたり想定外の入力や記入漏れが発生したりするほか、マクロ技術者の不足、ファイルの散乱による内部統制上の課題や情報漏えいのリスクなど課題を抱えることになる。
「SCSKでは、そうした隙間アプリの課題を解決するため、Web業務アプリ開発サービス『CELF』(セルフ)と、アプリケーション・コンテンツ配信基盤『Appsnaut』(アップスノート)を開発した。これら、CELFと Appsnautは、SCSKのプロフェッショナルITスペシャリストたちがOSSを異なる手法で駆使し、開発したサービスであることにも注目いただきたいのです」と語るのは、流通システム第一事業本部流通システム第一部Curlプロダクト課長で、これら2つの開発のプロジェクトリーダーを務めた岡田一志だ。CELFは、現場の業務で利用するWebアプリケーションを、Excelを使える知識レベルがあればエンドユーザーでも簡単に作ることができるサービス。プログラミングの知識も不要で、マクロのような動きや共有データの更新・表示処理も作ることができる。作るだけではなく、利用者やグループを限定してWebアプリケーションを公開したり活用したりすることで、データを更新・共有・一元管理してリアルタイムに集計することも可能だ。゚
主流の基幹システムから外れた隙間アプリのようなシステムもCELFでWebアプリ化できるため、予算・実績管理や業績管理、日報管理、見積・案件管理などで多く利用されている。岡田は「CELFを活用することで、アプリ開発の課題であった開発・保守費用の無駄な投資や、特定の開発担当者の属人化問題などを、EUC(エンドユーザー・コンピューティング)/ EUD(エンドユーザー開発)、あるいは一般のユーザーが自ら業務に必要なアプリケーションを開発する『シチズンデベロッパー』を推進することで解決できるツールといえます」と話す。
また、Appsnautは、PCやスマートデバイスにファイルを配信するためのポータルサイトとその管理機能を提供するエンタープライズ情報配信基盤だ。企業内に閉じた形でApp StoreやiCloud、LINEのような自社独自のマーケットプレイス(プッシュ型の配信基盤)を運用することを可能にするため、社内で利用するアプリケーションやコンテンツ、ドキュメント、メッセージなどをパブリックサービス経由で公開することなく、関係者だけに安全に配信することができる。
OSS活用ポイント
リスクのある開発技術にチャレンジするよりも枯れた技術で安全に進めるべき事情
CELFとAppsnautは、SCSKのCurl(クロスプラットフォームRIA開発環境)を担当している部門が主導して開発された。Curlの言語やCDE(開発環境)を作る上で必要となる部品やノウハウ、フレームワークを有し、それらをベースに作られたため、生産性は高くスピーディな機能拡張も可能にしたという。「市場には複数の競合製品が存在していましたが、どれもある程度のWebアプリを作ることができてもExcelと同等の操作性をもったアプリをエンドユーザーには提供できず、さらに機能を作り込むためにはプログラミングが必要な製品ばかり。CELFではそのプログラミングも全て不要にすることで他社製品よりも実質的なEUC/EUDを可能にし、それが差別化となっています」と岡田は強調する。クラウドサービスとオンプレミスの両方を用意しているのもポイントだという。
CELFの開発に当たっては30種類以上のOSSを活用しているが、いずれも最新のOSSは使っておらず、比較的歴史の長い、いわば枯れたOSSを選択している。その理由として、流通システム第一事業本部のプロフェッショナルITスペシャリストで、CELFの開発を主導した福田祥貴は次のように説明する。「私たちの部門ではシステム開発を行う際、元々資産として保有している部品やフレームワークもOSSをベースとしているものが多く、使い慣れた『MySQL』(リレーショナルデータベース管理)や『Spring Framework』(Javaプラットフォーム向けOSSフレームワーク)などを自然と選択しました。また、チーム開発のために『Redmine』(プロジェクト管理)や『Git』(分散型バージョン管理)などのOSSを使うことが開発メンバーの中で浸透していました」
クラウドサービスとしてCELFを提供するにあたり、マルチテナント的な形で公開するための要素技術として「Hibernate」(JavaでO/Rマッピングを実現するためのツール)を活用したほか、Excelと連携しデータをインポートするために「ApachePOI」(Office形式のファイルを読み書きできるJavaライブラリ)を用いて連携するなどしている。
「開発期間も短く、2016年1月から開発を開始し、4月に開発を完了するスケジュールが立てられていたため、リスクのある開発技術にチャレンジするよりも枯れた技術で安全に進めたかったという事情もあったのです」と福田は振り返る。
また、開発以外でもCELFではOSSを活用している。その1つが、Apacheのモジュールとして動作するホスト型WAF(Webアプリケーション・ファイアウォール)の「ModSecurity」の採用だ。リクエストヘッダや引数・表示するコンテンツなどから攻撃や脆弱性を検出し、不正アクセスやワームなどによる攻撃からWebアプリケーションを守る。
さらに、CELFの負荷テストにおいては「ApacheBench」も活用した。ApacheBenchは1回のコマンド実行で単一かつ同一のURLに対するリクエストを指定した分だけ生成するため、Webアプリケーションのパフォーマンス評価に適していたという。「OSSの選定においては、それが世の中でどれくらいコミットされているか、誰が協賛しているか、どのようにコントリビュートされているかなどを詳細に調べ、信用度や人気度、更新頻度の分析を行ったほか、OSSのApacheやGPLなどのライセンスに関する取扱いについても慎重に調査・検討を重ねました」と福田は説明する。
果敢に新進のNode.jsを活用し積極的にノウハウを吸収
一方、Appsnaut開発のきっかけは、2013年頃に開発したCurl言語のみでモバイルアプリを開発できる「Caede」のオプションでリリースするつもりだったサービスが元になっている。ユーザーニーズを盛り込んでいくうちに情報配信ツールとなり、それが独立してAppsnautとなった。「Appsnautの場合はCELFとは対照的で、枯れていないOSSが使われています」と述べるのは、流通システム第一事業本部のプロフェッショナルITスペシャリストで、 Appsnautの開発を主導した菅原洋介だ。当時、Caedeの開発が終了した頃、手持ちのJavaScriptのスキルセットで何とかしたいと考えていたが、彼の部門は基本的にフロントエンドの技術者ばかりだったためJavaやRubyなどサーバサイドに詳しい技術者がいなかった。その時、話題となり始めていたのが「Node.js」(ChromeのV8 JavaScriptエンジンで動作するサーバサイドJavaScript環境。軽量で効率的に動作する非同期型のイベント駆動モデルを採用)だったという。
「当時はまだNode.jsは日本での採用事例が少なく、アメリカのウォルマートなどで採用されたという事例が出始めた頃でした。リスクを認識した上でNode.jsを活用し、積極的にノウハウの吸収を行おうと考えたのです」と菅原は打ち明ける。
Appsnautでは細かいものを含めると100近いOSSが活用されている。Node.js関連だけをピックアップしてみても、「node-apk-parser」(node.jsで開発されたapk(Android専用ソフトウェアパッケージのファイル)内のマニフェストファイルの情報を解析し出力するプログラム)、「express」(Node.jsのMVC(Model View Controller)フレームワーク)、「node-apn」(Node.jsのAppleプッシュ通知モジュール)、「mongoose」(node.js向けに開発されたMongoDB(NoSQLデータベース)オブジェクト用モデリングツール)など多種多様だ。
流通システム第一事業本部のプロフェッショナルITスペシャリストで、菅原と同じAppsnautの開発責任者を務めた田登は、「Node.jsを使ったことにより、たくさんのOSSモジュールが容易に導入でき、それらを活用することでAppsnautの開発は、非常に開発効率が高く、検証もしやすく、開発スピードも速くなりました」と感想を述べる。
また、Appsnautでは、「FFmpeg」(動画・音声をさまざまな形に加工するマルチプラットフォームフリーウェア)も活用。動画を処理するためのツールを持っていなかったため、OSSの中でも最も強力なもののひとつとしてこれを採用したと田はいう。「多くの動画のフォーマットに対応しているので、動画間のコンバートやストリーミングの処理なども全てこの FFmpegで行っています。ただし、動画の権利関係は別に設定されているケースが多いため、その調査と契約に時間がかかりました」
今後の展開
単なる”Excelライク”ではなく”Excelよりも使いやすいWebアプリ”をめざす
将来的には、CELFとAppsnautを組み合わせることにより、BaaS(Backend as a Service;Webアプリケーションに関するユーザー管理やデータ管理などのサーバサイド機能をクラウド上でまとめて提供するサービス)を実現することも視野に入れている。例えば、CELFにバックエンドAPIを組み込みAppsnautで配信することにより、BaaSの利用者はバックエンドを開発せずにWebアプリケーションを容易に構築できるようにしたり、ストリーミングでモバイルにプッシュ通知するエンジンとして活用したりするアイデアもあるという。「特にCELFはEUC/EUDの面をブラッシュアップし、“Excelライク”ではなく“Excelよりも使いやすいWebアプリ”に成熟させることで、真のシチズンデベロッパーのためのツールをめざします」と岡田は意気込む。枯れたOSSを使うしたたかな戦略性と、あえて未踏のOSSを使う果敢さ。どちらもSCSKならではの企業文化が色濃く反映したOSS開発事例だ。CELFとAppsnautを立ち上げた部隊が次に狙う分野はどこか。今後が大いに注目される。
製品・サービスに関する問い合わせ先: 問い合わせ専用フォーム