特集:デビッド・チャペル氏への特設インタビュー

クラウドとWindows Azureの“もやもや”解消!

デジタルアドバンテージ 一色 政彦
2009/11/10
Page1 Page2 Page3 Page4

コミュニケーションAPI(WCF)として、SOAPとRESTはどちらを使うべきか?

―― 現在、ネットワーク越しにプログラム間で通信するためのインターフェイスとしては、主にSOAP(=XML Webサービス)とRESTがあります。例えばSilverlightアプリケーションから、Windows Azure上のWebアプリケーションに連携する場合など、どちらの通信インターフェイスを採用すべきなのでしょうか?

デビッド これはWindows Azureに特定した話ではありませんね。SOAPか、RESTかは、個人的に大好きな話題なので、個人的なオピニオンとしてお話しします。

 わたし自身は長い間、SOAPのファンであり、RESTは取るに足らないと思っていました。しかしいまやRESTful(=RESTの設計原則を厳密に守っているREST)の大ファンになってしまいました。

 多くの開発者は通常、RESTfulインターフェイスが利用できるなら、迷わずそれを利用します。特にアクセス対象がデータで、頻繁にアクセスされるなら、RESTサービスの方がより良いと思っています。

 逆に、高度なセキュリティが必要な場面ではSOAPを使った方がいいです。しかしながらわたしの経験では、そのような高度なセキュリティが必要な場面は、特にインターネット上での通信の場合のみです。

 ですから一般的には、RESTfulインターフェイスの方がより優れていると、わたし自身は考えています。

 ちなみに、例えばWindows Azureでの通信インターフェイスはすべて、SOAPではなく、RESTfulインターフェイスになっていることに注意してください。Windows Azureストレージにアクセスする場合、SOAPで通信したくても、SOAPは利用できません。

―― では、SOAPは消えてなくなる運命なのでしょうか?

デビッド そんなことはありませんよ。企業のファイアウォール内ではSOAPベースのサービスがすでにたくさん構築されています。それらを利用する場合には、自動的にSOAPを選択することになります。

 SOAPはいくつかのシナリオでは意義があります。例えば、組織内で重要な、高度かつ強固なセキュリティを持つ認証のための通信インターフェイスであれば、SOAPの方がよいでしょう。

平野 そのほか、トランザクションを実装する必要があるアプリケーションも、SOAPでなければ実現が難しいですね。

デビッド もしSOAPかRESTかという議論にご興味があれば、わたしのブログにあるPDFファイル(英語)を一度読んでみてください。

Windows AzureでもMapReduceは必要なのか?

―― 最近、グーグルやアマゾンのクラウド近辺で、MapReduce(=膨大なデータを分散並列処理する技術)が話題になっています。これはWindows Azure上のクラウド・サービスで使うような技術なのでしょうか?

デビッド MapReduceとは、超膨大なデータセットをまず分散並列処理(Map)し、次にそれらの結果を統合(Reduce)する技術です。そもそもの前提として、現時点では、Windows Azure環境においてMapReduceがサポートされていません。もしMapReduceが本当に必要で、自分で書きたいというのであれば、とても面倒ですが、独自に実装することも可能かもしれません。そこでここでは、Windows Azureの話ではなく、一般的なMapReduce(例えばAmazon Elastic MapReduce)についてお答えします。

 「MapReduceがどこで使えるのか?」という質問ですが、処理対象が何であれ、それがテラ・バイト級のデータを並列処理したいのであれば、MapReduceを使う価値はあります。MapReduce活用の典型的な例としては、Webのインデックス構築があります。実際に、グーグルやヤフーはMapReduce技術(や、そのオープンソース版のHadoop)を活用したアプリケーションで、検索エンジンのインデックスを構築したりしています。この2社はWebデータという超膨大なデータセットを処理してインデックスを構築する必要があります。

 ちなみに、わたしは開発者に「Windows AzureでもMapReduceをサポートする必要がありますか?」と何度か聞いたことがあります。それに対し、みんな同じ返事をします。「MapReduceって何ですか?」と。Windows Azure開発者はMapReduceのことをあまり知りません。MapReduceがアマゾンの世界やグーグルの世界のものだからです。

平野 ちなみに、マイクロソフトの検索エンジン「Bing」では、Microsoft ResearchのDryadという分散並列処理技術を活用しています。

最後に ―― 日本の開発者へのアドバイス

―― では最後に、クラウド関心を持つ日本の開発者に何かアドバイスはありますか?

デビッド 恐らく、まずはわたしのWindows Azure Platformに関するホワイト・ペーパー(日本語)Windows Azureに関するホワイト・ペーパー(日本語)を読んでいただくのが一番良いと思います。そこに、Windows Azure開発を始めるための基礎が書かれていますので。

 さらに、いまならWindows AzureのCTP利用は無償です。ただしアカウントのトークンはすぐには到着しません。でもトークンが届いたら、ぜひWindows Azureでいろいろと遊んでみてください。

―― デビッドさん、平野さん、ありがとうございました。

 Windows AzureのCTP版の利用は、2009年12月31日まで延期されることが先日発表された(つまり、2009年11月17日に正式版がローンチされるが、その正式稼働は2010年1月1日になる予定)。また、2010年1月分は請求書が来るものの、これは次月からの課金を予測できるようにするためのものなので、割引により0ドルになる。つまり、2010年1月も実質的に無償である。本当の課金は2010年2月からが始まる予定だ。要するに、まだ約3カ月弱は無償でWindows Azureが試せるというわけだ。

 当面利用する計画はないにしても、無償のうちにWindows Azureの経験を済ませておくのがお得だ。取りあえずはアカウントを取得して、とにかく何か作ってみよう。そのような遊びからWindows Azureを活用した新たなビジネス・チャンスが見つかるのかもしれないのだから。End of Article

 

 INDEX
  [特集] デビッド・チャペル氏への特設インタビュー
  クラウドとWindows Azureの“もやもや”解消!
    1.クラウド時代は来るのか?/Windows Azureの経済的なメリットは?
    2.Windows Azure向きアプリとは?/米国事情は?/IT Proは仕事を失う?
    3.既存システム移行時の問題は?/RDBか? Key-Valueストアか?
  4.SOAPか? RESTか?/MapReduceは必要なのか?/開発者へのアドバイス

Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

.NET未来展望台

未来展望台コーナースポンサーからのお知らせ


- PR -
- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

SEOは総合格闘技である――「SEOおたく」が語る普遍のマインド
SEOの最新情報を発信する「SEOおたく」の中の人として知られる著者が、SEO担当者が持つべ...

HubSpot CMSにWebサイトの「定石」を実装 WACUL×100のパッケージ第1弾を提供開始
WACULと100は共同で、Webサイトの「定石」をHubSpotで実装する「Webサイト構築パッケージ...

電通調査で「料理は面倒」が6割超 なぜそうなった?
電通の国内電通グループ横断プロジェクト「電通 食生活ラボ」は、「食生活に関する生活者...