アークシステムの業務事例

Webシステムソリューションの事例

Webアプリケーションの設計・構築・保守の事例

ID認証型ロッカーシステム構築

携帯電話を鍵にした新しいロッカーサービスを展開するためのシステムを再構築いたしました。アジャイル方式を採用することでお客様ビジネスの変化に柔軟に対応し、新技術を取り入れながら短期間で構築いたしました。

お客様の業種

サービス

お客様の目的

新規ビジネス展開

アークシステムの支援の特徴

要件定義から製造までインフラも含めてトータルに支援。フレームワークなどアークシステムが主体的に選定。オープンソースを活用することでコストを削減し、保守性の高いシステムを実現

プロダクト

[ Red Hat Enterprise Linux ] [ Tomcat ] [ Oracle ] [ Seasar2 ] [ Velocity ] [ Commons ] [ ozacc-mail ] [ Java ] [ ADE ]

ポイント

  • アジャイル開発により刻々と変化するお客様のビジネスに対応し、高品質なシステムを構築
  • インフラからアプリケーションまで、単なる構築にとどまらず、プロジェクトの進め方や情報共有の方法までトータルにサポート
  • 通信の確立が保障されないシステムで整合性を保つために、非同期アーキテクチャを採用。その技術的な難しさをクリア
  • オープンソース製品も積極的に活用し拡張性を確保しつつコストを抑えることに成功

1.システム紹介

今回ご支援したシステムは、携帯電話やSuicaが鍵になる、新しいタイプのロッカーサービス「クロスキューブ」を実現するシステムです。

「クロスキューブ」概要

  • 携帯電話やSuicaなどを鍵にした、ID認証型ロッカー
  • コインロッカーとしての一次利用はもちろん、私書箱契約やゆうパック受取、ロッカー間配送などさまざまなサービスの利用が可能
  • 全国主要駅などを中心にロッカーを設置。今後も増設予定

概要図:クロスキューブ

お客様

ポストキューブシステム(株)

2.再構築にいたった経緯

刻々と変化するお客様のビジネスに既存システムでは対応しきれなくなってきたため、拡張性および品質の高いシステム基盤を再構築することになりました。アークシステムは前システムでのサポートや、技術的な相談をお受けしていた実績を評価していただき、システム再構築を支援させていただくことになりました。

説明図:再構築にいたった経緯

3.開発の進め方に関する特徴

要件が確定しない状態で開発を開始する必要があったため、お客様との信頼関係をベースにしたアジャイル開発方式を採用いたしました。また、テストの自動化を推進したことでテスト時の負荷を軽減しただけでなく、結果的にメンテナンス性の高いシステムを構築することができました。

3.1.アジャイル開発方式の採用

2週間を単位 (イテレーション) とした繰り返し開発

説明図:アジャイル開発方式の採用~2週間を単位(イテレーション)とした繰り返し開発

3.2.XP(エクストリームプログラミング)の手法を活用

  • イテレーション・プランニング
    • 次のイテレーションで実装すべきストーリ (機能) をお客様と合意しながら決定する
    • 変化する要求や環境に対応するよう常に軌道修正しながらゴールを目指す
  • オンサイトカスタマー
    • 定例ミーティング (状況報告や方針決め) とは別に、仕様に関する問題などをお客様に開発現場に来ていただき開発者と一緒に考える
  • 責任追及よりも問題解決を
    • より良いシステムを作りあげるという目標を共有し、責任追及よりも問題解決を目指し、成功を共有する

3.3.テストの自動化

  • JUnitとS2TestCaseを使い単体テストと結合テストを自動化
  • システムの健全性 (正しく動作する状態かどうか) の常時監視を実現
    • リファクタリングを促進するための担保となる
    • テストしやすい設計を心がけることにより、結果的にメンテナンス性の高いシステムを構築できる
  • 将来の省力化にも期待大
    • 今後、ミドルウェアのバージョンアップ時の検証作業の省力化などにも効果が期待できる

4.アークシステムご支援範囲と情報共有について

4.1.ご支援範囲

インフラからアプリケーションまで、単なる構築にとどまらず、プロジェクトの進め方や情報共有の方法までトータルにサポートいたしました。

4.2.情報共有

開発チームの内部のみならず、開発チームとお客様との間であらゆる情報を生のまま共有するために、ADEを使ってコミュニケーションと情報共有を行いました。お客様も積極的に利用していただけたことで、正確な状況の把握のみならず信頼関係の構築に繋がりました。

Mantis 問題・課題管理、仕様確認のQ&Aなど
Wiki ノウハウやアイディア、連絡事項、スケジュールなど即時性の高い情報の管理
Subversion ドキュメント管理、ソースコード管理など、恒久性の高い情報の管理

5.システムの技術的な工夫

アーキテクチャ面では、通信の確立が保障されないシステムで整合性を保つために、非同期アーキテクチャを採用しました。その技術的な難しさをクリアすると共に、結果としてテストやメンテナンスを行いやすいシステムを実現しました。また、オープンソース・プロダクトを積極的に活用し無駄な作りこみを避けた結果、コストの削減とメンテナンス性の向上に成功しました。

5.1.ニーズに柔軟に対応するアーキテクチャ設計

  • サブシステム間を疎結合にすることにより、独立性と拡張性を確保
    • 各サブシステム間の連携には非同期メッセージングシステムを利用
    • 相手のサブシステムと通信できなかった場合や一時的に処理が増えた場合も、処理をバッファリングし確実に実行するしくみを実現

    説明図:独立性と拡張性を確保したしくみの実現

  • 新しいサービスの追加を容易にするプラグインアーキテクチャ
    • 業務サービスをそれぞれモジュール化し、Seasar2をベースに構築したフレームワークにプラグインすることで、独立性と拡張性を確保

    説明図:独立性と拡張性を確保したプラグインアーキテクチャ

  • 新たな接続方式の追加を容易に
    • ロッカー-サーバー間のネットワーク層 (接続管理部) を象徴化、階層化することにより、今後新たな接続方式を容易に追加可能
    • サービス実装時にも接続方式のことを意識せず開発ができるしくみを実現
  • テストやメンテナンス性の向上
    • 疎結合、モジュール化、階層化を強力に進めることにより、結果として柔軟性が高く、テストやメンテナンスを行いやすいシステムを実現

5.2."不必要なものを作らない" 技術

  • オープンソース活用によりコスト削減とメンテナンス性の向上を実現
    • オープンソースを積極的に活用することにより、無駄に作りこまない( = 不必要なものを作らない) ことに成功
    • 結果としてコストの削減とメンテナンス性の向上を実現
  • 利用したプロダクト
    S2
    • Container、Extension
    • DBFlute
    • S2Dao
    • DIコンテナ、テストフレームワーク
    • ORマッパージェネレータ
    • ORマッパー
    Quartz
    • スケジューリングフレームワーク
    Apache James
    • メールアプリケーションフレームワーク
    subetha-smtp
    • メールテストフレームワーク
    JUnit
    • テストフレームワーク
    Apache Jakarta Velocity
    • テンプレートエンジン
    Apache Jakarta Commons
    • Collections
    • Logging
    • コレクションライブラリ
    • ロギングフレームワーク
    Apache logging log4j
    • ロギングフレームワーク
    ozacc-mail
    • メールライブラリ
    Apache Maven2
    • 構成管理ツール

6.成果・結果

当初求められた要件どおり、変化するビジネスに対応可能なアーキテクチャと、高い技術が要求されるロッカーシステムを実現いたしました。限られた期間やリソースの中、アジャイル開発方式の採用と、オープンソース活用 (無駄な作りこみの排除) により、お客様の本当に望むものを提供することができました。

  • 変化に強いアプリケーションシステムと、コストと可用性をバランスさせたインフラを実現

  • 限られた時間、リソースの中で、お客様の本当に望むものを提供
    • カットオーバーしたシステムはその後も安定して運用中
  • 情報共有文化の継承
    • システムという直接的な生産物のほか、情報共有などプロジェクトをうまく推進するための習慣、文化を継承
    • 今後の運用保守段階でもADEによるコミュニケーション・情報共有が行われる予定

お問い合わせ・資料請求

このページの先頭へ