オンプレミス連携(ハイブリッドクラウド)の実施例など
前回の記事で、「オンプレミスにある電話設備との連携」、「Excel2003形式ファイルでのデータエクスポート」、「PDFファイルでの帳票出力」、「各種の通知用としてメール送信」などが組み込まれていると紹介した。これらは出来る限りAzure上で動作させようとしたが、結果として実現できず、クラウドとオンプレミスのハイブリッド構成となっている。
以下、こうした形態をとった理由や現在のアーキテクチャについて簡単に紹介させて頂く。
なお、Windows Azure Platformには高度な連携機能を実現する為に「Windows Azure AppFablic Service Bus」という機能が準備されているが、今回の案件においてはそこまでの機能の必要性を感じられず、採用していない。
○「オンプレミスにある電話設備との連携」について
物理的な設備(電話回線、PBXなど)は、クラウド上に配置出来ない為、連携が不可避であった。実装的には、電話着信等のイベントに応じてオンプレミスアプリケーションがSQL Azureにアクセスしてデータ更新等を行う方式を取っている。
また、セキュリティにも配慮し、SQL Azureの標準機能であるFirewallでオンプレミスサーバ類からのアクセスのみを許可している。さらに、暗号化接続機能を用いて経路においても対策を施している。
図10は、Azure管理ポータルのSQL Azure Firewall設定画面例である。IPアドレスレンジでアクセス許可を設定する。この例では全世界に公開している。環境に応じて適宜変更してほしい。また、「Allow other Windows Azure Services to access this server」にチェックをつけないと、WebRole等からアクセスできないので注意が必要だ。
○「Excel2003形式ファイルでのデータエクスポート」について
Excel2003形式ファイルでのデータエクスポートに関しては、まず、通常の開発で標準的に使用しているサードパーティ製コンポーネントのテストコードを作成し、Azure上で動作検証を行ったが、互換性の問題からか動作しなかった。そもそもAzure上での動作自体も保障されておらずサポート対象外であった事と、仮に無理矢理動作させることが出来たとしても、Azure(クラウド)上で利用する為のライセンス体系自体が用意されていないという問題があった。
従って、今回はAzure上での実行をあきらめ、Excel2003形式ファイルを生成する為に、簡単な認証機構を付与したWebサービスをオンプレミスにホストし、これにWebRole上にホストしているWebアプリケーションから呼び出す方式を取った。なお、セキュリティ確保の為、実装した簡単な認証機構を利用すると共に、SSL(https)による暗号化接続を用いて経路におけるセキュリティを確保している。
図11は、入退場の状況(出面)を工程表として集計表示した画面と、それをXLSで再現し出力した例である。