特集:デビッド・チャペル氏への特設インタビュー クラウドとWindows Azureの“もやもや”解消! デジタルアドバンテージ 一色 政彦2009/11/10 |
|
|
●コミュニケーション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を活用した新たなビジネス・チャンスが見つかるのかもしれないのだから。
INDEX | ||
[特集] デビッド・チャペル氏への特設インタビュー | ||
クラウドとWindows Azureの“もやもや”解消! | ||
1.クラウド時代は来るのか?/Windows Azureの経済的なメリットは? | ||
2.Windows Azure向きアプリとは?/米国事情は?/IT Proは仕事を失う? | ||
3.既存システム移行時の問題は?/RDBか? Key-Valueストアか? | ||
4.SOAPか? RESTか?/MapReduceは必要なのか?/開発者へのアドバイス | ||
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
キャリアアップ
未来展望台コーナースポンサーからのお知らせ
- - PR -
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
SEOは総合格闘技である――「SEOおたく」が語る普遍のマインド
SEOの最新情報を発信する「SEOおたく」の中の人として知られる著者が、SEO担当者が持つべ...
HubSpot CMSにWebサイトの「定石」を実装 WACUL×100のパッケージ第1弾を提供開始
WACULと100は共同で、Webサイトの「定石」をHubSpotで実装する「Webサイト構築パッケージ...
電通調査で「料理は面倒」が6割超 なぜそうなった?
電通の国内電通グループ横断プロジェクト「電通 食生活ラボ」は、「食生活に関する生活者...