VoluntasさんのBPStudyの発表を観に行った。
以下メモ。
XMPP xml base
AMQP binary
Erlang
Open Telecom Platform プロセスを監視できるこれが一番大きい。(実際に作るとなると並列、分散はどうでもいい)
まあ、エリクソンが作って使っている集大成だから。
メジャーアプリ。
Facebook Online Chat
AWS imple DB
Apcache CouchDB IBMが力をいれているC++から移行。
分散ハッシュDB Jai /Scalaris gooをpowerしている。Amazaon Key Value Storage実装
higempon 20090509/1241863278
このエントリのせいでErlang
情報処理学会に出ている2009/3のErlangの解説記事
XMPPとは
XMLベースのプロトコル
RFCで
Jabber -> XMPP
Google Talkが採用(完全準拠?)
動きはMail serverと同じ
TCPコネクション張りっぱなし
仕様はがちがち
拡張もいっぱい、まあXMLですから
基本:Client同士がMessageを直接やりとりする。
しかしportがつぶれていると
googleのライブラリはHole panchingしている。
すげー力業 10万行のC++
状態をXMPP Serverが状態を配る。
message サーバは1 domainを担当する。
google じゃなくて自前もできる。
Serverがコネクションをリレーしてくれる。
日本では流行っていないが、海外では1ユーザ月額課金のサービスがある。
接続
XMPP Serverにログイン
XMPP ServerにIDとIPを伝える
XML目っ正ー時
別のXMPPサーバに転送
別サーバはDNS検索
セキュリティ
SSL/TLSによる通信を暗号化
DNSでドメイン名を逆引き確認
SASLによるチャレンジ型検証
SASL RFC2222
XMPPの未来
googleがさいようしたのは大きい
プッシュベースのアプローチは大事
非同期メッセージは必要
ソリューションという形が進みそう
OpenFireという「製品」がある→チャットルームが作れる。ただしクライアント側が対応していないといけない。
同時接続クライアントは?
10KはOKでしょう。
そもそもにスケールを前提に仕様が作られている
クラスターベースでやる
ejabberd
XMPP
Erlang
Unbutuならapt-get
Ejabberd "cloud Edition alpha"
データベースをS3に配置
将来的にはSQSを使うようだ
AWS import/export
HDDをアマゾンへ送る(!、ハードのスペックが指定されている、重量等
アマゾン側でS3にインポートする
1TByteでupで$100,
日本のクレジットが通ったが、アメリカに郵送。
帯域の問題でFedexの方がやすい。時間を買っている。
AMQP
Advanced Message Queue Protocol
MQの保湯順規格を目指すプロトロコる
メッセージ指向ミドルウェア
アプリケーション菅野通信プロト古老
言語や環境に関係なく相互接続を実現
今年中に1.0が公開されるはず
バイナリプロトコル
PubSub型
ストア・アンド・フォワード
TCPであることを利用した信頼転送
非同期なのにトランザクション、コールバックしない(これがメリット)。
マルチキャスト
Publish
Exchangeがqueueにひたすら突っ込む
Direct Exchange Type
ルーティングキーがきも
funout
ルーティングキーすらなし。
さらのキー。ただひたすら他得られる
パターンを使用したルーティングキー
a.b.c.dといったキーパターン
#や*のワイルドカードが使用可能
AMQP 0.8まで実装済み
Rabbit MQ
130万request/s (1つのサーバで!)・・・他の部分が持たない?
10K line
ただし、Erlangのundocumentedな機能を多用なので、VMのコードを読まないとダメ。
金融機関とかが使うらしい。
ニュースの配信、電話会社等。
XMPP gatewayやSTOMP gateway
作っている会社はL shiftはこれで食っている
Kay App Engine / Python 専用フレームワーク
kayはtmatsuoさんの息子の名前
非同期と純関数は計算としてはうれしいのだが、人間にやさしくない。
とんがったパーツなのだが、クライアントが手書き。
clientの実装作業を受注しているのではないだろうか。
金がかかっている。AMQPは。
GAE上でXMPPを使えるようになるらしい。
googl
e IOで発表されるかも
XMPP
ルームチャットはN:Nになる??
その負荷を面倒を見たくないからgoogleはgroup chatなし(googleはstar型になっている)
SQSがアマゾンにある
rabittmqはqueueのバックエンドはmnesiaを使っている。
2Gの制限はぶった切ることで対応、基本全てメモリ。
基本的に永続化しない。
mnesiaはよく使われているのか?微妙
ただ分散dbなので設定ファイルを蒔くのに使う
制限がきついのが痛い→wrapperを書くことになる。
tokyo cabinetを後ろにつないだひとがいるらしい。でもなんかメモリリークしてる。
0 件のコメント:
コメントを投稿