Flexアプリを3つのパブリック・クラウドと連携する方法
AKABANA
有川 榮一
2010/9/10
【3】Windows Azure+AMF MessagingでクラウドFlex
Windows Azure(以下、Azure)は、Windows Azure Platformの開発環境、サービス・ホスティング環境、およびサービス管理環境として機能するクラウドOSです。
本稿では、AzureにAMF通信を行えるオープンソースの「AMF Messaging Gateway」をデプロイしてFlexと連携させてみましょう。
□ Windows Azureの準備
Windows Azure Accountを作成して、Windows Azure Developer Portalのサイトから準備します。Azureの証明書やサービスの管理などの詳細は、下記記事を参考にしてください。
□ AMF Messaging Gatewayの準備
AMF Messaging Gateway(以下、AMG)は、IIS上で動くHTTPモジュールです。このAMGを使うと、AMF通信ができます。
amfmessaging via kwout
ダウンロードページから「amg-1.0.0-ga.zip」ファイルをローカルにダウンロードします。その後、解凍したら「Akabana.Amf.dll」「Akabana.Amf.Messaging.Gateway.dll」ファイルがあることを確認してください。
□ ローカルでの開発環境の準備
次に、ローカルでWebサービスが開発できるように環境を整えます。本稿では、開発・デプロイ環境の準備を行うために「Windows Azure Tools for Microsoft Visual Studio 1.2」をダウンロードしてインストールします。
注意事項を確認して、環境に合わせてIIS 7.0とSQLServer 2005もインストールします。これによって、Azureの開発環境とデプロイする環境が整います。
□ プロジェクト作成
Azureのサービスを開発するためには、Azure Cloud Serviceプロジェクトを新規作成します。まずは、Azure Toolsのインストールが終わったVisual Studio 2010を立ち上げて、プロジェクトの作成から、Azure Cloud Serviceプロジェクトを選択します。
本稿で利用するクラウドサービスは、「WebRole」です。WebRoleは、HTTP(HTTPS)入力リクエストを処理するWebアプリケーションで構成されます。
[OK]ボタンをクリックすると、ソリューションとプロジェクトが作成されます。
次に、先ほど解凍した「amg-1.0.0-ga」フォルダの「gateway.aspx」ファイルをWebRoleプロジェクトにコピーします。また、DLLフォルダに入っている下記3つのファイルを[参照設定]にします。
- log4net.dll
- Akabana.Amf.dll
- Akabana.Amf.Messaging.Gateway.dll
□ AMGの設定
AMGの設定は、「Web.config」ファイルに追記します。AMGは、【WebRoleのプロジェクト名】で指定されたアセンブリの中からサービスクラスを探します。
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="akabana.amf.messaging.gateway" type="Akabana.Amf.Messaging.Gateway.Configuration.XmlConfigurator, Akabana.Amf.Messaging.Gateway"/>
</configSections>
:
:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="MessagingGateway" type="Akabana.Amf.Messaging.Gateway.MessagingGateway, Akabana.Amf.Messaging.Gateway"/>
</modules>
</system.webServer>
<akabana.amf.messaging.gateway endPoint="/gateway.aspx">
<assemblies>
<assembly type="【WebRoleのプロジェクト名】"/>
</assemblies>
</akabana.amf.messaging.gateway>
</configuration>
□ サンプルC#サービスの作成
サービスクラスは、BlazeDSの場合と同様のインターフェイスで作成します。ただし、C#で実装するので、モデルクラスも作成する必要があります。
Echoクラスは、Wordを保持してFlexに返すためのサービスクラスです。また、MessagingService要素を使って、このクラスをechoとして公開します。
using Akabana.Amf.Messaging;
using samples.echo.model;
namespace samples.echo.service
{
[MessagingService(Name = "echo")]
public class EchoService
{
public Echo execute(Word word)
{
return new Echo() { word = word };
}
}
}
Wordクラスは、Flexから入力されるデータモデルです。
public class Word
{
public string text { get; set; }
}
Echoクラスは、Wordを保持してFlexに返すためのデータモデルです。
public class Echo
{
public Word word { get; set; }
}
□ ローカルで試すためにMXMLファイルを修正
接続URLを「http://127.0.0.1:81/gateway.aspx」に変更して再コンパイルをして、「bin-debug」の中に生成されたファイルを「WebRole1/app/」へコピーします。
サンプルFlexアプリケーションを実行するには、Visual Studioの[Debug]ボタンをクリックして、Webブラウザで「http://127.0.0.1:81/app/EditApp.html」にアクセスします。
□ 接続URLをクラウドにしてAzureへデプロイ
デプロイする前に必ず接続URLを「http://【AZU-APP】.cloudapp.net/gateway.aspx」に変更してFlexアプリケーションのリリースビルドを行います。【AZU-APP】は、デプロイ先のHostedServiceの名前に変更します。そして、「bin-release」の中に生成されたファイルを「WebRole1/app/」へコピーします。
プロジェクトを右クリックして、コンテキストメニューから[発行]を選択します。
[Credentials](証明書)と[HostedServiceSlot to deploy to]と[Storage Account to deploy througt]を選択して[OK]ボタンをクリックすると、デプロイが始まります。
デプロイされたか確認するためには、Webブラウザで「http://【AZU-APP】.cloudapp.net/app/EditApp.html」にアクセスします。【AZU-APP】は、デプロイしたHostedServiceの名前に変更してください。
本稿で作成したAzure用のサービスは、こちらからダウンロードできます。
AMFは、AndroidやiPhoneなどモバイルにも有効
本稿では、1つのFlexアプリケーションと3つのクラウド上にWebアプリケーションをデプロイしてAMF通信で連携することを示しましたが、いかがでしたでしょうか。
今後のFlex/Flash/Adobe AIRアプリケーションは、PCだけではなくモバイル(Packager for iPhone、AIR for AndroidやAndroid 2.2からのFlash Player搭載)でも動作するようになります。その際にも、AMF通信の軽量さと高速さは、重要になっていくと考えられます。本稿が、AMF通信を使用したクラウドRIA開発の参考になれば幸いです。
■ @IT関連記事
Amazon S3とAdobe AIRで“クラウドRIA”を作ってみた クラウドの“クライアント”としてRIAを試す(2) S3 Firefox OrganizerプラグインのようにAmazon S3のデータ構造を体験できるサンプルをActionScriptライブラリで作成 「リッチクライアント & 帳票」フォーラム 2009/9/29 |
AzureのストレージをJavaで扱えるWindowsAzure4j ユカイ、ツーカイ、カイハツ環境!(14) AzureストレージサービスのデータをJavaから参照・更新・削除するプログラムや、そのための無料Eclipseプラグインの使い方を紹介 「Java Solution」フォーラム 2010/4/15 |
クラウド活用「雲活」のために押さえるべき39のポイント 安藤幸央のランダウン(50) 活用するべきサービスか否か、クラウドの利点・問題点、クラウドプラットフォーム提供企業になるための条件、開発者がするべきことに分けて紹介 「Java Solution」フォーラム 2010/2/2 |
編集部より:クラウドコンピューティングに興味を持った読者は下記インデックスページをご確認ください。随時更新中で、クラウド・コンピューティングの最新情報も分かります。
クラウド・コンピューティング技術。そのすべては、ここにある
1-2-3-4 |
INDEX | ||
Flexフレームワークで変わるRIA開発の現場(5) Flexアプリを3つのパブリック・クラウドと連携する方法 |
||
Page1 RIAとクラウドの連携は、何がメリットなのか? XMLやJSONより速い通信フォーマット「AMF」とは サンプルFlexアプリの概要 |
||
Page2 【1】Amazon EC2+BlazeDS 4でクラウドFlex |
||
Page3 【2】Google App Engine+T2でクラウドFlex |
||
Page4 【3】Windows Azure+AMF MessagingでクラウドFlex AMFは、AndroidやiPhoneなどモバイルにも有効 |
リッチクライアント&帳票 全記事一覧へ |
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|