現在、米国アトランタで開催中のMicrosoft Tech・Ed North AmericaでWindows Azure AppFabric Service Bus V2サービスの新しいCTP提供を開始するアナウンスがありました。
これを受けて、Windows Azure AppFabric V2 SDKのCTP版がMay Updateに更新されています。サービスの正式な提供開始へ向けた準備として、多くのUpdateが提供されています。まず、Queueという概念が導入されました。高信頼のメッセージングプラットフォームとしてService Busが利用できるようになります。May UpdateのAPIにはQueueに対応したAPIおよびサンプルが提供されています。
V1で実行されていたコードをV2環境で実行するには数行のコード変更のみでマイグレーション可能になっています。
それではコードを見ていきましょう。
このコードがV1用のコードです。
//エンドポイントのURIを生成
Uri address = ServiceBusEnvironment.CreateServiceUri(“sb”,
ConfigurationManager.AppSettings[“Namespace”], “HelloAppFabric”);
//エンドポイントに対する資格情報を生成
TransportClientEndpointBehavior SBCredential
= new
TransportClientEndpointBehavior();
//SharedSecretを選択し、資格情報に設定
SBCredential.CredentialType
= TransportClientCredentialType.SharedSecret;
//資格情報に発行者(issuer)を設定
SBCredential.Credentials.SharedSecret.IssuerName
= ConfigurationManager.AppSettings[“Issuer”];
//資格情報にIssuer Keyを設定
SBCredential.Credentials.SharedSecret.IssuerSecret
= ConfigurationManager.AppSettings[“DefaultKey”];
//ServiceHostのインスタンスを生成
ServiceHost host = new
ServiceHost(typeof(HelloAppFabric));
//サービスバスを介したRelayエンドポイントを追加
var ep = host.AddServiceEndpoint(
typeof(IHelloAppFabric),
new
NetTcpRelayBinding(),
address);
//エンドポイントにServiceRegistoryの設定を反映
IEndpointBehavior serviceRegistrySettings
= new
ServiceRegistrySettings(DiscoveryType.Public);
//エンドポイントの構成にServiceBusの資格情報を追加
ep.Behaviors.Add(serviceRegistrySettings);
ep.Behaviors.Add(SBCredential);
// サービスをOpen
host.Open();
Console.WriteLine(“Service Started…”);
Console.WriteLine(“Press [Enter] to exit”);
Console.ReadLine();
host.Close();
そして、下がV2のコードです。
//エンドポイントのURIを生成
Uri address = ServiceBusEnvironment.CreateServiceUri(“sb”,
ConfigurationManager.AppSettings[“Namespace”], “HelloAppFabric”);
//エンドポイントに対する資格情報を生成
TransportClientEndpointBehavior SBCredential
= new
TransportClientEndpointBehavior();
//SharedSecretを選択し、資格情報に設定
SBCredential.CredentialType
= TransportClientCredentialType.SharedSecret;
//資格情報に発行者(issuer)を設定
SBCredential.Credentials.SharedSecret.IssuerName
= ConfigurationManager.AppSettings[“Issuer”];
//資格情報にIssuer Keyを設定
SBCredential.Credentials.SharedSecret.IssuerSecret
= ConfigurationManager.AppSettings[“DefaultKey”];
//ServiceHostのインスタンスを生成
ServiceHost host = new
ServiceHost(typeof(HelloAppFabric));
//サービスバスを介したRelayエンドポイントを追加
var ep = host.AddServiceEndpoint(
typeof(IHelloAppFabric),
new
NetTcpRelayBinding(),
address);
//エンドポイントにServiceRegistoryの設定を反映
IEndpointBehavior serviceRegistrySettings
= new
ServiceRegistrySettings(DiscoveryType.Public);
//エンドポイントの構成にServiceBusの資格情報を追加
ep.Behaviors.Add(serviceRegistrySettings);
ep.Behaviors.Add(SBCredential);
// サービスをOpen
host.Open();
Console.WriteLine(“Service Started…”);
Console.WriteLine(“Press [Enter] to exit”);
Console.ReadLine();
host.Close();
両者のコードを比較して何か気づきませんか?
そうです。まったく一緒なのです。
つまり、「参照設定」でMicrosoft.ServiceBus.dllの参照を、V1.0からV2.0に変更するだけです。もちろん、AppFabric Labで作成してあるName Spaceやキーへの変更は必要です。これらの情報を構成情報に外だししておくことで、コードをまったく書き換えることなくV2へ移行することが可能です。この点がAzure AppFabric SDK V2.0 February Updateからの変更点です。
いうまでもありませんが、クライアント側のコードも変更不要です。
このように従来のコードを書き換えることなく、Service Bus V1で実行されていたコードをService Bus V2で実行することが可能になります。
もちろん、この例はこれまで実行していたコードをそのまま移行する例にすぎません。
Service Bus V2 CTP May Updateで追加された新たな機能は、追ってご紹介していきたいと思います。
Comments are closed here.