冨田様 windows azureで作るマイクロブログのbot

25
Windows Azure ででで でででででででで Bot 冨冨 冨冨冨 冨冨冨 http://twitter.com/harutama

Upload: sunao-tomita

Post on 16-Jan-2015

1.761 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

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

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

冨田 順 (とみた すなお)http://twitter.com/harutama

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

「マイクロブログ」って何?

• 数十文字程度の文章を投稿するために設計されたブログ。• ざっくり言うと、 Twitter の事。

http://twitter.com/

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

Bot とは?

Twitter などのマイクロブログにメッセージを自動で投稿するプログラム RSS などで配信されているデータを

転載するもの。 人口知能など会話ができるもの。 種類は様々。

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

Twitter で活動中の Bot• ニュース–毎日新聞、共同通信、帝国データバンク、

CNET Japan 、スラッシュドット、 NASA 、ファミ通、ナタリー、 etc ・・・

• 天気予報、地震速報• 人口 ( 知能 | 無能 )–カミナギ、 ha_ma 、 hanatwitty 、 et

c ・・・• 情報収集系–ふらぐったー、ぼむったー、 etc ・・・

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

ところで本題

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

Windows Azure とは?

Day3   15:15 ~ 16:25   RoomC

T2-203Azure 開発概要クラウド時代のアプリケーション開発者として身につけておくべき基礎

を、参考にしてください。

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

Windows Azure 2 つのアプリケーションホスト環境= Role

WebRoleと

WorkerRole

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

Windows Azure 2つの Role

• ASP.NET アプリケーションをホストする Role 。

• VisualStudio の「 ASP.NET Web アプリケーション」プロジェクトで作るような感じ。

WebRole

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

Windows Azure 2つの Role

• サービスをホストするための Role 。• WebRole と Windows Azure

Storage (特に Queue )を経由してやり取りするのが基本的な使い方。

WorkerRole

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

WorkerRole ってどう使えばいいの?

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

作成直後の WorkerRole

namespace CloudService1_WorkerRole{ public class WorkerRole : RoleEntryPoint { public override void Start() { // This is a sample worker implementation. Replace with your logic. RoleManager.WriteToLog("Information", "Worker Process entry point called");

while (true) { Thread.Sleep(10000); RoleManager.WriteToLog("Information", "Working"); } } public override RoleStatus GetHealthStatus() { // This is a sample worker implementation. Replace with your logic. return RoleStatus.Healthy; } }}

・・・ん?

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

やっていることは

while (true){ Thread.Sleep(10000); RoleManager .WriteToLog("Information", "Working");}

10 秒休んでログに書く無限ループ

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

WorkerRole って

Bot 作るのに

最適 !!かも。

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

10 秒休んでログに書くの無限ループ

? 秒休んでマイクロブログに投稿する無限ループ

Windows Azure で Bot できた !!

Tech Ed のライトニングトークでネタにする

いまここ

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

マイクロブログの WebAPI

• プログラムからマイクロブログへの投稿はWebAPI に対して行う。

• WebAPI は Twitter 互換が ( ほぼ ) 標準– Twitter の API 仕様の日本語訳

http://watcher.moe-nifty.com/memo/2007/04/

twitter_api.html

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

WorkerRole ってBot に使える?

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

WorkerRole での通信

• WorkerRole から HTTP 通信可能–Windows Azure の外に向かって、リ

クエストを投げることが可能。–HttpWebRequest クラスで 80 番ポート

の HTTP 通信を利用できる。–もちろん、 WebClient クラスも利用可能。

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

WorkerRole での通信

• 各種の Web サービスが利用可能–マイクロブログ API にリクエスト可能。–RSS や ATOM などは

System.ServiceModel.Syndication名前空間を利用することで、簡単に情報を取り出せる。–形態素解析や係り受け解析など

は、 Yahoo から Web サービスとして提供されている。http://developer.yahoo.co.jp/webapi/jlp/

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

WorkerRole で使える機能

• .NET Framework 3.5 がベース– LINQ が使える。• マイクロブログのタイムラインから最新の投稿や、

対象とする投稿を抜き出すのがカンタン。• SQL Data Services( 仮 ) にも LINQ でアクセス。

( 予定 )

–WCF 、 WF も利用可能。

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

Windows Azure でBot を運用する

メリット

3 つのまとめ

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

①24 時間 365 日の運用を

低コストで行える

1 か月 24 時間動かすと0.12$(1 時間 )×24( 時間 )×30( 日 )

= 86.4$

最低でも 99.95 %の外部接続を保証する SLA で提供される。

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

②メンテナンスフリー

OS 、ミドルウエアなどのアップデートやパッチ適用が一切不要。

運用?何それ?食べられるの?

そう考えると、 1 か月 86.4$ は安いかも。

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

③運用環境とテスト環境

の両方が手に入る

運用環境 テスト環境

Windows Azure管理画面

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

最後に

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

作ってみた。

• はてなハイクで Bot 稼働中です。–首都圏の電車運行情報を教えてくれる Bot

http://h.hatena.ne.jp/keyword/ 首都圏運行情報–肩こり・筋肉の痛みに反応して励ます Bot

http://h.hatena.ne.jp/id/RuyGoncalvesRamosSobrinho

冨田 順 (とみた すなお)http://twitter.com/harutama