冨田様 Windows Azureで作るマイクロブログのBot

2,064 views

Published on

TechEd Japan 2009 ライトニングトーク

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,064
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

冨田様 Windows Azureで作るマイクロブログのBot

  1. 1. WindowsAzureで作るマイクロブログのBot<br />冨田 順 (とみた すなお)http://twitter.com/harutama<br />
  2. 2. 「マイクロブログ」って何?<br />数十文字程度の文章を投稿するために設計されたブログ。<br />ざっくり言うと、Twitterの事。 http://twitter.com/<br />
  3. 3. Botとは?<br /><ul><li>Twitterなどのマイクロブログにメッセージを自動で投稿するプログラム
  4. 4. RSSなどで配信されているデータを転載するもの。
  5. 5. 人口知能など会話ができるもの。
  6. 6. 種類は様々。</li></li></ul><li>Twitterで活動中のBot<br />ニュース<br />毎日新聞、共同通信、帝国データバンク、CNET Japan、スラッシュドット、NASA、ファミ通、ナタリー、etc・・・<br />天気予報、地震速報<br />人口(知能|無能)<br />カミナギ、ha_ma、hanatwitty、etc・・・<br />情報収集系<br />ふらぐったー、ぼむったー、etc・・・<br />
  7. 7. ところで本題<br />
  8. 8. Windows Azure とは?<br />Day3 15:15~16:25 RoomC<br />T2-203<br />Azure 開発概要クラウド時代のアプリケーション開発者として身につけておくべき基礎<br />を、参考にしてください。<br />
  9. 9. Windows Azure 2つのアプリケーションホスト環境=Role<br />WebRoleとWorkerRole<br />
  10. 10. WindowsAzure 2つのRole<br />WebRole<br />ASP.NETアプリケーションをホストするRole。<br />VisualStudioの「ASP.NETWebアプリケーション」プロジェクトで作るような感じ。<br />
  11. 11. WindowsAzure 2つのRole<br />WorkerRole<br />サービスをホストするためのRole。<br />WebRoleとWindows Azure Storage(特にQueue)を経由してやり取りするのが基本的な使い方。<br />
  12. 12. WorkerRoleってどう使えばいいの?<br />
  13. 13. 作成直後のWorkerRole<br />namespace CloudService1_WorkerRole<br />{<br />publicclassWorkerRole : RoleEntryPoint<br /> {<br />publicoverridevoid Start()<br /> {<br />// This is a sample worker implementation. Replace with your logic.<br />RoleManager.WriteToLog(&quot;Information&quot;, &quot;Worker Process entry point called&quot;);<br />while (true)<br /> {<br />Thread.Sleep(10000);<br />RoleManager.WriteToLog(&quot;Information&quot;, &quot;Working&quot;);<br /> }<br />}<br />publicoverrideRoleStatusGetHealthStatus()<br /> {<br />// This is a sample worker implementation. Replace with your logic.<br />returnRoleStatus.Healthy;<br /> }<br /> }<br />}<br />・・・ん?<br />
  14. 14. やっていることは<br />while (true)<br />{<br />Thread.Sleep(10000);<br />RoleManager<br />.WriteToLog(&quot;Information&quot;, &quot;Working&quot;);<br />}<br />10秒休んでログに書く無限ループ<br />
  15. 15. WorkerRoleって<br />Bot作るのに最適!!<br />かも。<br />
  16. 16. 10秒休んでログに書くの無限ループ<br />?秒休んでマイクロブログに投稿する無限ループ<br />Windows Azure でBotできた!!<br />いまここ<br />TechEd のライトニングトークでネタにする<br />
  17. 17. マイクロブログのWebAPI<br />プログラムからマイクロブログへの投稿はWebAPIに対して行う。<br />WebAPIはTwitter互換が(ほぼ)標準<br />TwitterのAPI仕様の日本語訳http://watcher.moe-nifty.com/ memo/2007/04/twitter_api.html<br />
  18. 18. WorkerRoleってBotに使える?<br />
  19. 19. WorkerRoleでの通信<br />WorkerRoleからHTTP通信可能<br />WindowsAzureの外に向かって、リクエストを投げることが可能。<br />HttpWebRequestクラスで80番ポートのHTTP通信を利用できる。<br />もちろん、WebClientクラスも利用可能。<br />
  20. 20. WorkerRoleでの通信<br />各種のWebサービスが利用可能<br />マイクロブログAPIにリクエスト可能。<br />RSSやATOMなどはSystem.ServiceModel.Syndication名前空間を利用することで、簡単に情報を取り出せる。<br />形態素解析や係り受け解析などは、YahooからWebサービスとして提供されている。http://developer.yahoo.co.jp/webapi/jlp/<br />
  21. 21. WorkerRoleで使える機能<br />.NET Framework 3.5がベース<br />LINQが使える。<br />マイクロブログのタイムラインから最新の投稿や、対象とする投稿を抜き出すのがカンタン。<br />SQL Data Services(仮)にもLINQでアクセス。(予定)<br />WCF、WFも利用可能。<br />
  22. 22. WindowsAzureでBotを運用するメリット3つのまとめ<br />
  23. 23. ①<br />24時間365日の運用を低コストで行える<br />最低でも99.95%の外部接続を保証するSLAで提供される。<br />1か月24時間動かすと<br />0.12$(1時間)×24(時間)×30(日)<br />=86.4$<br />
  24. 24. ②<br />メンテナンスフリー<br />OS、ミドルウエアなどのアップデートやパッチ適用が一切不要。<br />運用?何それ?食べられるの?<br />そう考えると、1か月86.4$は安いかも。<br />
  25. 25. ③<br />運用環境とテスト環境の両方が手に入る<br />運用環境<br />テスト環境<br />WindowsAzure管理画面<br />
  26. 26. 最後に<br />
  27. 27. 作ってみた。<br />はてなハイクでBot稼働中です。<br />首都圏の電車運行情報を教えてくれるBothttp://h.hatena.ne.jp/keyword/首都圏運行情報<br />肩こり・筋肉の痛みに反応して励ますBothttp://h.hatena.ne.jp/id/RuyGoncalvesRamosSobrinho<br />冨田 順 (とみた すなお)http://twitter.com/harutama<br />

×