お客様
お客様は、革新的なデジタルクーポン管理システムを提供する米国の会社です。本システムは、プロモーションクーポンのセットの定義、SMSや電子メールを用いたエンドユーザーへの配布、キャンペーン活動による360ビューの獲得といった企業のマーケティングキャンペーンを管理することができます。デジタルクーポン管理システムは、クーポンの定義、エンドユーザーへのクーポン配布、店舗でのクーポン償還、マーケティングキャンペーンの状況報告(地理的な場所の統計レポート、クーポン償還の時間情報など)を含めて既存クーポンの全ライフサイクルに対して豊富な管理機能でサポートをします。本システムは現在ファストフード業界、喫茶店・カフェ業界およびレストランにおいて利用されています。
要求仕様
- お客様は最初のハードウェア投資を最小化するために、クラウドコンピューティングプラットフォームを採用し、事業の成長を満たすために迅速にインフラストラクチャリソースを拡張できることを望まれました。
- お客様はMSとのパートナーシップを活用してシステムをMS Azureプラットフォームに移行することを希望されました。
- お客様は移行される新ウェッブアプリにはMVC(モデル・ビュー・コントローラ)というデザインパターンを採用することを考えていました。
- ピーク時には、本システムで数十万のトランザクションを処理できるようにする必要があります。
- 本システムはエンドポイントとしてのPOS端末と統合する必要があり、返答時間は2秒未満にならなければなりません。
課題
- 既存アプリケーションは、同期方式で通信するWebベースのアプリケーション、バックエンドのWebサービスのセットと、Windowsのサービスを含んでいます。その為、MS Azureのスケーラビリティを最大化するために、システムの再構築においてはリソースのスケーラビリティをサポートすることが求められます。
- Webベースの既存アプリは、階層が3層存在するアプリケーションです。MVCモデルに移行するためには、様々なデータモデルを定義、再定義する必要があります。
ソリューション
- フェーズ1:デモ版を開発
- フェーズ2:最終版を開発
- フェーズ3:クラウドでシステムを運用開始、メンテナンス
プロジェクトに対して2つのフェーズを定義しました。
-
フェーズ1:単純にMS Azureへの変換
- Webベースの既存アプリからMS AzureのWebロールへと変換します。
- 既存のWebサービスおよびWindowsサービスからMS AzureのWorkerロールへ変換します。
- MS SQL 2008からSQL Azureへ移行します。
-
フェーズ2:アプリの最適化
- MVCパターンをサポートするためにデータモデルを再設計します。
- Azure ロードバランサを採用するためにアプリケーションスティッキーセッションを削除します。
- スケーラビリティ(MS Azureのキュー)用のWebロールとWorkerロールの間の非同期通信により、同期通信に置き換わるアプリケーションを評価します。
使用した技術
- Visual Studio 2010、 MS Team Foundation Server 2010、 MS Test Manager、DevExpress MVC controls、 Stylecop、 MS Project Server、Office 365
- NET 3.5、 WCF、ASP.MVC、SQL 2008、Windows Azure、SQL Azure