セッション ID:T1-311 Windows Azure と Bing を利用した クラウド アプリケーション開発 マイクロソフト株式会社 デベロッパー& プラットフォーム統括本部 エバンジェリスト 砂金 信一郎 イースト株式会社 ソフトウェア事業部 遠藤 大樹 スピーカー紹介 い さ ご 砂金 信一郎 [email protected] アーキテクト エバンジェリスト マイクロソフト株式会社 デベロッパー&プラットフォーム統括本部 クラウドプラットフォーム推進部 所属 ブログでも Azure の話題を提供 http://blogs.itmedia.co.jp/isago/ Twitter フォローはお気軽に http://twitter.com/shin135/ 遠藤 大樹 ソフトウェア事業部 イースト株式会社 イースト株式会社にて主に ASP.NET でのアプリケーション開発を手がける Web 開発者。Windows Azure の黎明期から関わっており、昨年の Tech・Ed 2009 で は JTB とイーストで開発した旅のアルバム サービス「 TORIPOTO 」の Windows Azure 対応で得られた知見を解説。その後 Windows Azure と Bing Map を組み 合わせたサービスなどの開発にも関わっており、今回はその開発ノウハウを披露し ます。「Microsoft のクラウド コンピューティング Windows Azure 入門」共著。 3 セッションの目的とゴール セッションの目的 Bing の各種サービスの概要理解 Windows Azure でのマッシュアップ例の提示 セッションのゴール マイクロソフトのクラウド戦略における Windows Azure と Bing API の位置づけを説明 できるようになる 代表的な Bing API の特長と利用方法を説明で きるようになる Bing の各種サービスを活用したクラウド アプリケーションを実際に作ってみたいという パッションをお持ち帰りいただく 4 本セッションでは、日本で正式提供 していなサービスも紹介します。 あらかじめご了承の上ご参加ください。 5 アジェンダ Azure の復習& Bing の概要 1. Bing Maps API の紹介とデモ 2. 3. 6 翻訳 API にみる可能性 マイクロソフトの ビジネス向け クラウド サービス 生産性 コミュニケーション コラボレーション ビジネス アプリケーション 管理 ストレージ プラットフォーム マイクロソフトの 個人向けクラウド サービス 検索 Web メール、SNS、コラボレーション ニュース &エンターテイメント セキュリティ管理 ストレージ クラウド サービスの分類・俯瞰 アプリケーション アプリケーション アプリケーション ミドルウェア ミドルウェア ミドルウェア OS OS OS ハードウェア ハードウェア ハードウェア SaaS PaaS 完成品の ソフトウェアを提供 IaaS 開発・実行環境となる プラットフォームを提供 ハードウェアを提供 ○ すぐに利用でき、ASP ○ スケーラビリティ、コス からの延長で利用は一番、 トにおいて他サービスに 進んでいる 勝る × プラットフォームとして × アプリケーション開発が の拡張性、自由度に欠け 必須ということと、後発 る場合が多い のため、事例は少ない 9 (CPU貸し、ディスク貸し) ○ 自由度が高く自社運用と 差がないため、利用障壁 は低い × これまで同様の管理が必 要になり、煩雑化 する可能性がある Windows Azure の復習 (主に).NET アプリを簡単に動かす場 仮想マシン、ストレージともにスケーラブル ファブリックコントローラーが可用性を担保 10 Announcing... コンサルティングサービス Azure 実装ガイド提供! マイクロソフトコンサルティングサービスに よる Azure 実装ガイドを提供予定! ベストセラー「Visual Studio による Web アプリケーション構築技法」の著者 赤間による Azure 実装ガイドラインを Web 経由で提供 実践的な実装方法を解説した Workshop 資料を ダウンロード提供予定 11 Azure を活用するビジネス的意義 初期投資 無駄の排除 スピード 運用 • 費用として支払うため、資産計上しなくて済む • 従量制課金であるため、必要がなくなれば、容易に停止可能 安い • キャンペーン サイトや頻度の少ないバッチ処理に有効 • すぐにアプリの開発、利用が可能になる • 新規事業などの変化の早いニーズに対応 簡単 • システム管理業務をすべてアウトソース、パッチ適用も自動化 • 遠隔地での冗長化で事業継続性を確保 スケーラ • スケーラブルな基盤設計要求からスキルの高い技術者を解放 ビリティ • 所有が不可能な規模に、理論上無限の拡張が可能 グローバル展開 12 • ハードウェアやOSの購買、インフラ構築費用が不要 • 世界中に建設されたデータセンターとネットワーク網を活用 • データやアプリケーションを効率的に配布・管理 +α クラウド アプリ構築の素材 API 経由 サービス 呼び出し Web検索 Maps 空間情報 アプリ 構築基盤 13 Translator 翻訳 Web 検索サービスとしての Bing 14 Bing Maps の位置情報サービス 15 Bing Translator の翻訳サービス http://www.microsofttranslator.com/ 16 Bing の基盤を支える Autopilot 大量のコンピュータ リソースを管理する技術は Azure のファブリックコントローラーと同じ インデックス作成 17 Bing の開発者向けページ(英語) http://www.bing.com/developers 18 App ID の取得が必要 19 検索 API の利用方法 (REST) http://api.bing.net/json.aspx? Appid={ 事前に取得したAppidを入力 } Query=Miguel+A.+Castro& Sources=web • • • • • 20 WebResult Title Description DisplayUrl Url DateTime ImageResult • Title • Url • Thumbnail • Url • Width • Height VideoResult • Title • PlayUrl • StaticThumbnail • Url • Width • Height JSON での結果取得 Data Contract Object Model { "SearchResponse": { "Version":"2.2", "Query": { "SearchTerms":"Miguel A Castro"}, "Web": { "Total":8,550,000, "Offset":0, "Results": • BingSearchResultData – top level • Response (SearchResponse) • Query • Web • WebResult[] (Results) • Title • Description • Url [ { "Title":"Miguel Castro", "Description":"Miguel Castro [email protected]", "Url":"http:\/\/www.pmg.lcs.mit.edu\/~castro\/", "CacheUrl":"http:\/\/cc.bingj.com\/cache.aspx?q=migu..", "DisplayUrl":"www.pmg.lcs.mit.edu\/~castro", "DateTime":"2010-05-01T22:38:20Z" }, { < 次の検索結果 > } ] } } } } 21 詳細は http://www.msteched.com/2010/NorthAmerica/WEB310 (英語) Bing を利用したサービスの一例 http://spindex.cloudapp.net/ (現時点招待制ベータ) 22 Azure の復習& Bing の概要 1. Bing Maps API の紹介とデモ 2. 3. 23 翻訳 API にみる可能性 Bing Maps の開発リソース http://www.microsoft.com/maps/ 24 Key は即時発行。評価用を選択 https://www.bingmapsportal.com/ 25 Bing Maps を制御する API 群 Bing Bing Bing Bing 26 Maps Maps Maps Maps Web Services AJAX Control Silverlight Control Account Center Bing Maps Silverlight Control Silverlight から Bing Maps を制御 マネージ コードでの開発 Deep Zoom 機能の活用 パフォーマンスの大幅な改善(対 AJAX ) CTP 期間を経て機能を強化 Data Binding プッシュピン対応 Out of Browser JavaScript interface も利用可能 http://www.microsoft.com/maps/isdk/silverlight/ 27 インタラクティブ API http://www.microsoft.com/maps/isdk/silverlight/ 28 SDK のダウンロード http://bit.ly/mapsctl 29 Bing Maps と Azure の組み合わせ例 http://www.eyeonearth.eu/ 30 Eye on Earth のアーキテクチャ 大気・水質 観測データ Silverlight UI Bing Maps Control SMS ゲートウェイ 31 データ サービス SQL Azure 観光統計ぷらっとふぉーむ 自治体向け観光統計データ公開サービス 三菱総合研究所クラウド ユーザー研究 会のプロトタイプ検証用プロジェクト 観光統計データを Bing Maps 上に表示 開発はイーストが担当 32 観光統計ぷらっとふぉーむ 開発ツール Visual Studio 2010 + .NET Framework 4 Expression Blend 4 RC Windows Azure Tools for Microsoft Visual Studio 1.2 ( 2010 年 6 月) Microsoft Silverlight 4 Tools for Visual Studio 2010 Silverlight 4 Toolkit April 2010 Bing Maps Silverlight Control SDK 34 アーキテクチャ(初期版) SQL Azureにデータを格納 マイクロソフト オンライン サービス Bing Maps Windows Azure WebRole 観光統計データ サービス (WCF Data Services) 35 SQL Azure 観光統計 情報DB 初期版の問題点 限界を試すことも目的のうち SQL Azure + WCF Data Services 最初は簡単な方法でとのことだったが… 2万5千地点の情報で 30 MB のデータ転送が発生 起動時のデータ取得に時間がかかる 費用が気になる(お客様の声) パフォーマンス改善のために考慮した点 WCF Data Services はデータ量が増える XML で応答されるため、タグの情報量が多い 観光統計データの更新頻度は少ない SQL Azure からデータを取得する必要はあるか? 36 アーキテクチャ(最終版) BLOB からデータを取得するように変更 マイクロソフト オンライン サービス Bing Maps Windows Azure WebRole 観光統計データ サービス (WCF) 37 SQL Azure 観光統計情報 ( ZIP 圧縮 CSV ) 将来構想 観光統計ぷらっとふぉーむの拡張 検索・統計機能の拡充 SQL Azure Azure Storage 等 他のサービスとのマッシュアップ Dallas のデータ配信サービス 38 Bing Mapsを使ったアプリ開発 1. Bing Maps Silverlight Control SDKの インストール 2. Silverlight プロジェクト作成 3. 以下を参照設定 Microsoft.Maps.MapControl.Common.dll Microsoft.Maps.MapControl.dll ※Bing Maps Silverlight Control SDKに含まれる 39 Bing Maps を使うコード(XAML) <UserControl x:Class="BingMapApp.MainPage" xmlns="http://schemas.microsoft.com/... xmlns:m="clr-namespace:Microsoft.Maps.MapCont rol;assembly=Microsoft.Maps.MapControl" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White"> <m:Map Mode="Aerial" Center="38.5,136.0" CredentialsProvider="[key]"> </m:Map> </Grid> </UserControl> 40 XAML のみで Bing Mapsを表示 Silverlight からのデータ アクセス 目的に合わせて選択 Web サービス WCF WCF Data Services WCF RIA Services REST などのその他サービス 認証不要かつ更新頻度低なら BLOB から直接 BLOB に配置したXMLファイルなどを直接参照 CDN が使える root コンテナに clientaccesspolicy.xml を配置 42 BLOB から位置情報を取得して 地図上に表示 プラットフォームとしての Bing Maps Map Data/ Tiles マイクロソフト製 アプリ サード パーティ製 アプリ ブラウザーから 利用 API を利用して サービスを開発 maps.bing.com microsoft.com/maps/developers Imagery/ Tiles DEMs/ Buildings Geocoding/ Rooftop Yellow Pages/ POIs Traffic 豊富なデータ セット ※北米特定地域でのみ提供しているサービス含む 44 Search/ Proximity Routing/ Directions Data Services/ Reporting Bing Map Apps 英語版に言語、地域を切り替えるとボタンが現れる 45 地図にアプリをのせる Bing Map Apps Bing Maps API Bing Maps Apps アプリ 地図表示 地図 データ アプリ アプリに地図を 読み込む 46 地図にアプリを のせる Bing Map Apps の開発方法 SDK ダウンロードには Connect. への登録が必要 http://connect.microsoft.com/bingmapapps 47 Azure の復習& Bing の概要 1. Bing Maps API の紹介とデモ 2. 3. 48 翻訳 API にみる可能性 IE アクセラレータにも対応した Bing 翻訳サービス 49 翻訳サービスも API で利用可能 http://www.microsofttranslator.com/dev/ 50 Messenger での実装 [email protected] を「知り合い」に追 加して語りかける 翻訳元、翻訳先の 言語コードを指示す ると発言が翻訳され て帰ってくる 51 WorkerRole での Twitter bot の実装例 public override void Start() { // This is a sample worker implementation. Replace with your logic. RoleManager.WriteToLog("Information", "Worker Process entry point called"); while (true) { try { string message = DateTime.Now.ToString() + " なう。"; TwitterPost.PostMessage(message); } catch (Exception e) { RoleManager.WriteToLog("Error", e.Message); } RoleManager.WriteToLog("Information", "Working"); Thread.Sleep(1 * 60 * 1,000); } } 52 Special Thanks: @harutama Twitter 翻訳 bot の実装例 private static void Proc(TwitterFrontend twitter, BingFrontend bing) { List<Timeline> tl = twitter.Mentions(MaxId.ToString()); IEnumerable<Timeline> selected = from x in tl where x.User.ScreenName != TwitterFrontend.ScreenName select x; foreach (Timeline t in selected) { string fromLang = bing.Detect(t.ShapedText()); //言語が違う時だけ翻訳 if (!fromLang.Equals(t.User.Lang, StringComparison.CurrentCultureIgnoreCase)) { string translated = bing.Translate(t.ShapedText(), fromLang, t.User.Lang); //Updateをかける if (t.InReplyToStatusId == null) { string postStr = '@' + t.User.ScreenName + ' ' + translated; twitter.StatusUpdate(postStr, t.ID); } else { string postStr = '@' + t.InReplyToScreenName + ' ' + translated; twitter.StatusUpdate(postStr, t.InReplyToStatusId); } } } } 53 Special Thanks: @harutama 本セッションでお伝えしたこと Azure と Bing 各サービスの概要 Bing 各サービスの API 利用方法 Bing Maps を活用した Azure アプリの 実装方法 地図にアプリをのせるBing Map Apps の紹介 Bing Translator を活用した Azure アプリの実装方法 54 次世代のクラウド開発に向けて Azure の特長は既存資産 (アプリ、開発スキル)の再利用性にある 特に、 .NET で実装された業務アプリの クラウド移行には非常に適している しかしながら、次世代のソーシャルな クラウド アプリをゼロベースで構築する 場面でも、もちろん利用していただきたい 本セッションの内容が、新サービスの企画、 構想を練る上で参考になれば幸いである 55 関連セッション T1-502:クラウド コンピューティングの最先端技術動向と選択の戦 略 LT-03:ライトニングトーク(クラウド特集) T1-307:Windows Azure を使用したスケーラブルなアプリケー ション構築 T1-308:Visual Studio 2010 による Windows Azure アプリケー ション開発 T3-403:Open Data Protocol (Odata) と WCF Data Services に よるサービスの作成 56 リファレンス Bing 開発者向けページ(英語) http://www.bing.com/developers Bing Maps 開発リソース(英語) http://www.microsoft.com/maps/ Bing Maps Silverlight Control インタラクティブ API (英語) http://www.microsoft.com/maps/isdk/silverlight/ Bing Map Apps SDK 入手(要登録、英語) http://connect.microsoft.com/bingmapapps Microsoft Translator 開発者向けサービス http://www.microsofttranslator.com/dev/ 57 ご清聴ありがとうございました。 T1-311 アンケートにご協力ください。 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
© Copyright 2024 ExpyDoc