SlideShare a Scribd company logo
1 of 20
XMPPの紹介
神戸隆行(椎路ちひろ)Twitter: @ChihiroShiiji / FB: takayuki.kando
2015/12/06(第12.5回福岡市西区プログラム勉強会資料)
自己紹介
 神戸 隆行(かんど たかゆき)、PN. 椎路ちひろ(しいじ ちひろ)
Twitter: @ChihiroShiiji / FB: takayuki.kando
 出身は名古屋、趣味イラストとコスプレ
 本業は九大の社会人博士課程で博士を取ろうとしながら研究開発に従事する有
期雇用の勤め人@百道浜
 専門は流転中:
 数値解析(のプログラミング・インターフェースの改良、修論@名大)
→数式処理(のプログラミング・インターフェースの改良@某F研)
→プログラム最適化(博士課程一回目の失敗@東工大)
(2005年に仕事を紹介され福岡へ来た)
→コンパイラ開発(Redefis、動的再構成可能プロセッサ向けコンパイラ)
→SW/HW開発環境(IDE上からクラウド上の開発ツールを利用できるミドルウェア
PTaaSの開発) http://www.qualiarc.com/?post_type=seihin&p=202
 使用プログラミング言語:
 最初はFORTRAN、大学以降はC++とC、今は主にJava、他は必要に応じてボチボチ
 本日は趣味と仕事で利用しているXMPPの紹介
 幾つかのソースとサンプルをGitHub[ https://github.com/TakayukiKando/Lore ]に置いてます
2015/04/122 第11回福岡市西区プログラム勉強会
この発表の内容
 XMPPの概要と特長
 インスタントメッセージング&プレゼンスの説明
 XMPPの基本的な概念の説明
 他プロトコルとの比較
 HTTP, IRC, SMTP&POP
 XMPPの拡張可能性、プロトコルの定義と通信例
 拡張規格の例
…十分長くなってしまったのでプログラミングは次回以降に
XMPPとは
 XMPP: eXtensible Messaging and Presence
Protocol(旧名: jabbar)
 標準化団体: http://xmpp.org/
 コア部分はRFCとしてIETFへ出されるが、そのRFCの内容の検討
 XMPP内の拡張(XEP: XMPP Extension Protocols)の 策定
 インスタント・メッセージングとプレゼンス(状態)情報のための
オープンなプロトコル
 例:GoogleTalk…残念ながらサービス終了
 まだだ、まだ終わらんよ!
 規格の制定プロセスは進行中
 さまざまなクライアントやサーバの実装も存続中
 現状、インスタント・メッセージング・サービスは特定の企業が提供し、
プロトコルが非公開であるものが多い
 SNSの機能の一部として提供されていることも多い
4
XMPPの狙いと特長
 狙い:
 メール、IRC、Web上の各種メッセージングサービス、マイクロBlog、RSSと
いったプッシュ通知を伴うテキスト送受信サービスの機能を包含し、置き換える
ことも可能なプロトコル
 既存のオープンでない企業独自のメッセージングサービスを置き換え可能であ
るオープンなプロトコル
 特長:
 オープン
 オープンな制定プロセス
 ドキュメントもオープン・アクセス
 拡張可能(詳細は後述)
 プロトコル自身をセキュアに拡張可能
 クライアントもサーバも段階的にプロトコルをサポートすることで機能を追加可能
 セキュア(詳細は後述)
 サーバ間のリレー接続を排し、セキュアなサーバのみでのネットワークの実現を可能
にする
 連絡先リストによりSPAMユーザを拒否し易くする
 拡張可能なプロトコルにより、実行可能なダウンロードコンテンツによる拡張を必要と
しない
インスタント・メッセージング
 テキスト・メッセージングはメール、チャットなどユーザ間でテ
キストメッセージを送り合うサービスの総称
 中でもインスタント・メッセージングは両者がオンラインであれば即
時にメッセージを送受信できるサービス
 ただしXMPPではメールのようにオフライン状態のユーザあてのメッセー
ジを蓄積して後で配送することもできる(オフライン・メッセージ)
 基本は1対1
 ただしXMPPは:
 複数人での会議もサポート(チャット)
 マイクロブログ、RSSに似たマルチキャスト配信もサポート(PubSub)
 拡張機能:
 音声通話、映像通話、ファイル転送、……etc.(Stream Initiation、
JIngle)
 メッセージングのために必要な連絡先リスト(Roster)の管理
も含む
 連絡を許すユーザの登録、拒否するユーザの登録など
プレゼンス
 ユーザの状態をマルチキャストする機能
 送られる状態の例:
 オンライン、オフライン、ビジー、離席、…etc.
 任意のショート・テキスト
 メッセージ入力中を示す通知
 連絡先リスト(Roster)に登録されている相手にだけ配信され
る
 拡張機能:
 ユーザーアバター(所謂「アイコン」)画像
 現在聞いている曲
 …etc.
XMPPネットワークの構造と機能
XMPP
サーバ
XMPP
クライアント
XMPP
サーバ・コン
ポーネント
XMPP
クライアント
XMPP
クライアント
XMPP
クライアント
他所のXMPP
サーバ
UserA
UserB
ボット(ユーザがおらず自動応
答するクライアント)
サーバに機
能を追加する
メッセージ等をルーティ
ングする
ユーザを認証する
ユーザーアカウント情
報を管理する
ユーザの連絡先リスト
を管理する
オフライン・メッセージを
保管する
実装ポリシー:
クライアントはUIに専念
サーバ側に様々な機能を実現
することが推奨されている
ユーザID: Jabber ID(JID)
 ユーザ・アカウント、ユーザが利用する個々の接続、サーバ、サー
バの拡張機能といったものを一意に識別する名前
 メッセージなどを配信する際に宛先として使用する
 連絡先リストの識別子(ID)でもある
 このようにユーザはクライアントの接続毎に識別できるため複数個所
からの接続が可能
 一般形は:
 <ユーザ名>@<サービス名>/<リソース名>
 例:
 xmpp.xgmtk.orgというDNS名のXMPPサーバ: xmpp.xgmtk.org
 上記サーバのユーザkando: kando@xmpp.xgmtk.org
 上記ユーザkandoが使うクライアントclient :
kando@xmpp.xgmtk.org/client
 上記サーバの拡張コンポーネントchatroom:
chatroom.xmpp.xgmtk.org
 名称はXMPPがかつてJabberと呼ばれていたことによる
XMPPネットワークの特徴
Server
Client
Client
Client
Server Server
Client
Client
Client
Server
Server
Server
Serve
r
Serve
r
Serve
r メール(SMTP+POP)
サーバ間通信あり
他サーバにはサーバ間
中継あり
クライアントは一つのサー
バに接続
プッシュ型プロトコル
セッション管理なし
Subscribe不要
XMPP
サーバ間通信あり
ただしサーバー間は直接
接続で中継はない
クライアントは複数のサー
バに直接接続可
プッシュ型プロトコル
セッション管理あり
Subscribe必要
Web(HTTP)
サーバ間通信なし
クライアントは複数のサー
バに直接接続
プル型プロトコル
セッション管理なし
Subscribe不要
Client
Client
Client
10
IRCとXMPPの比較
IRC XMPP
ユーザ・アドレス なし あり
ユーザ間メッセージング なし(DCCでは可能) あり
拡張機能 なし(DCCではファイル転
送可能)
音声通話、映像通話、ファ
イル転送、他
連絡先リスト なし あり
プレゼンス なし あり
会議室(チャット) チャネル
ユーザはチャネルを作成
できる
チャネルを指定して参加
チャネルは参加者がい
なくなると自動消失
チャットルーム
サーバにチャットルーム
を設置できる
管理者を指定できる
明示的に削除するまで
利用者がいなくても存続
サーバ間接続 ツリー・トポロジー、サーバ
間リレー
サーバ間は直接接続のみ。
リレーはしない
※ DCC: IRCの拡張、ユーザ間の直接チャットとファイル転送を可能にする。規格化はされていない
XMPPとHTTPの比較
12
HTTP XMPP
開発された目
的
ドキュメント公開、ファイル転送 インスタント・メッセージング
通信のモデル 厳密なサーバ・クライアント型、
プル型、subscribe不要
サーバ・クライアント型、プッシュ型、
subscribeに基づくユーザー管理
セッション管理 なし、cookieなどを用いプログラ
マが行う
あり(ログインからログアウトまでが1
セッション、この間基本的に接続しっ
ぱなし)
認証/暗号化 なし、行う場合は単位となるアク
セス(GETやPOST)毎
セッション開始時に認証、暗号化方
式の協議も行う
拡張可能性 プロトコル自身にはなし、コンテ
ンツにスクリプトやフォームを含
めることで対応
XMLによりプロトコルが定義され、
XMLの名前空間の仕組みを利用して
プロトコル自身の拡張が可能
XMPPの拡張可能性
 将来の必要に対応できる柔軟性
 プロトコルがコア・プロトコル+拡張プロトコルの集合とな
りサーバやクライアントの実装を段階的に機能強化可能
 XMPPではプロトコルを安全に拡張できる
 XMLによるプロトコルの定義
 HTTPには拡張可能性がないので機能拡張は以下により行
われてきた:
 コンテンツの動的生成(CGI、PHP、…etc.)
 実行可能コンテンツの配布(JavaScript、Flash、…etc.)
XMLによるプロトコル定義
 XMPPのプロトコルはXMLを通じて定義される
 XMLの解析、検証、生成、拡張の仕組みを利用して
XMPPの「パケット」の解析、検証、生成、拡張を行うこと
ができる
 実際、入力の処理にはXMLパーサが、出力の生成にはXML
フォーマッタが利用される
 規格においてプロトコルの形式的な定義はXML Schemaで
記述されている
 XMLの名前空間の仕組みを利用してプロトコルの拡張が定
義されている
 形式的な厳密さと拡張可能性の両立
XML文書としてのXMPPセッション
 XMPPの通信の1セッションは2つ1組のXML文書の送
受信と看做すことができる
 入出・出力のデータ列をそれぞれまとめてストリーム・オブジェ
クトと看做すことができるのと同じアイディア
 XMPPの通信セッションは全て1対のXML文書となる
 クライアントとサーバ間
 サーバとサーバの間
 サーバとサーバ拡張コンポーネントの間
 …etc.
XML文書としての構造
 XML文書のトップレベル要素はStream要素
 XMPPのセッションに対応
 トップレベルの直下にはスタンザと総称される3種類の要
素がある
 俗には「パケット」とも称される
 各種拡張は多くの場合スタンザに子要素を追加して行われる
 スタンザ
 Presence要素: プレゼンス情報を表すスタンザ
 Message要素: テキスト・メッセージを表すスタンザ
 IQ要素: 各種問合せやデータの送受信に利用されるスタンザ
XMPPセッションの例:クライアント→サーバ
<?xml version="1.0"?>
<stream:stream to="xmpp.xgmtk.org" version="1.0" xmlns="jabber:client"
xmlns:stream="http://etherx.jabber.org/streams">
<!-- …… -->
<presence>
<show>away</show>
<status>I am attending to Nishi-Pro.</status>
</presence>
<!-- …… -->
<message type="chat" to="choonggeun@xmpp.xgmtk.org">
<body>Hello!!</body>
</message>
<!-- …… -->
</stream:stream>
toによるメッセージの宛先指定
fromアトリビュートはサーバが
付加して受信側に送るのでクラ
イアントは偽装できない
セッションの開始
セッションの終了
プレゼンス情報の送信、toがない場合はサーバに
より必要な範囲へ配信される
メッセージ本文
拡張規格(XEP)の例(1)
 Data Forms(XEP-0004)
 クライアントからの各種問合せに必要な情報の入力を促すフォームの
定義法
 Jabber RPC(XEP-0009)
 XML RPCのXMPP版
 Service Discovery(Disco) (XEP-0030)
 ネットワークにどのような機能を備えたサーバや、サーバ拡張やクライ
アントが繋がっているかを調べるサービス発見プロトコル
 Multi-User Chat(XEP-0045)
 チャット・ルームを実現する
 Ad-Hoc commands(XEP-0050)
 サーバーサイドの設定等をクライアントに設定Wizard風に尋ねる規格
 Pub Sub(XEP-0060)
 登録ユーザに向けてマイクロBlogやRSS風の情報のマルチキャストを
行う
拡張規格(XEP)の例(2)
 XHTML-IM (XEP-0071)
 文を構造化し修飾する限定的なHTMLメッセージの規格
 User Avatar (XEP-0084)
 ユーザのアバター(アイコン)画像の扱い
 Stream Initiation (XEP-0095, XEP-0096)
 ファイル転送等に使えるデータストリームのネゴシエーションの規格
群
 User Mood (XEP-0107)
 「気分」を表す情報の扱い
 User Tune (XEP-0118)
 「現在聞いている曲」などの情報の扱い
 Jingle (XEP-0166他)
 新しいストリーム、ファイル転送、音声通話、映像通話のためのネゴ
シエーションの規格群
まとめ
 XMPPの概要と特長
 インスタントメッセージング&プレゼンスの説明
 XMPPの基本的な概念の説明
 他プロトコルとの比較
 HTTP, IRC, SMTP&POP
 XMPPの拡張可能性、プロトコルの定義と通信例
 拡張規格の例
…十分長くなってしまったのでプログラミングは次回以降に
 参考書
 「マスタリングXMPP」
 Peter Saint-Andre、Kevin Smith、Remko Troncon 著、牧野 聡 訳
 O'Reilly Japan, Inc. 刊、2010年4月
 http://www.oreilly.co.jp/books/9784873114477/
 各種拡張プロトコル規格書
 http://xmpp.org/xmpp-protocols/xmpp-extensions/

More Related Content

What's hot

SQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリSQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリItabashi Masayuki
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門Yuichi Ito
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜Preferred Networks
 
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Kiyotaka Doumae
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版Tokoroten Nakayama
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方Shohei Koyama
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with KarateTakanori Suzuki
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?Minoru Yokomichi
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyYasuharu Nakano
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へYoheiGibo
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019Tokoroten Nakayama
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページCLARA ONLINE, Inc.
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 

What's hot (20)

SQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリSQLアンチパターン~スパゲッティクエリ
SQLアンチパターン~スパゲッティクエリ
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
 
ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版ビジネスパーソンのためのDX入門講座エッセンス版
ビジネスパーソンのためのDX入門講座エッセンス版
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karate
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
「DX完全に理解した」「DXわけがわからないよ」なユーザ企業の方へ
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 

Viewers also liked

XMPP仕様簡単解説
XMPP仕様簡単解説XMPP仕様簡単解説
XMPP仕様簡単解説Keiichi Daiba
 
XMPPクライアント・プログラミング
XMPPクライアント・プログラミングXMPPクライアント・プログラミング
XMPPクライアント・プログラミング隆行 神戸
 
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使うJMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う隆行 神戸
 
オレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPIオレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPI隆行 神戸
 
テンプレート・エンジンVelocity
テンプレート・エンジンVelocityテンプレート・エンジンVelocity
テンプレート・エンジンVelocity隆行 神戸
 
Message delivery over XMPP network
Message delivery over XMPP networkMessage delivery over XMPP network
Message delivery over XMPP networkHideki Saito
 
Transports on XMPP network
Transports on XMPP networkTransports on XMPP network
Transports on XMPP networkHideki Saito
 
組み込みから IoT へ
組み込みから IoT へ組み込みから IoT へ
組み込みから IoT へShin-ya Koga
 
ゴアの預言した「スマート・グリッド」が現実のものに
ゴアの預言した「スマート・グリッド」が現実のものにゴアの預言した「スマート・グリッド」が現実のものに
ゴアの預言した「スマート・グリッド」が現実のものにFusion Reactor LLC
 
デバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoTデバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoTShin-ya Koga
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計隆行 神戸
 
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundleYusuke HIDESHIMA
 
IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解Naoto MATSUMOTO
 
Openfire xmpp server on windows server 2012 r2 with spark sso
Openfire xmpp server on windows server 2012 r2 with spark ssoOpenfire xmpp server on windows server 2012 r2 with spark sso
Openfire xmpp server on windows server 2012 r2 with spark ssolaonap166
 
Microsoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoTMicrosoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoTKeiichi Hashimoto
 
どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう_norin_
 
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめYasuhiro Mawarimichi
 

Viewers also liked (20)

XMPP仕様簡単解説
XMPP仕様簡単解説XMPP仕様簡単解説
XMPP仕様簡単解説
 
XMPPクライアント・プログラミング
XMPPクライアント・プログラミングXMPPクライアント・プログラミング
XMPPクライアント・プログラミング
 
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使うJMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う
 
オレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPIオレオレ言語実装に役立つプル型ASTウォーカーAPI
オレオレ言語実装に役立つプル型ASTウォーカーAPI
 
テンプレート・エンジンVelocity
テンプレート・エンジンVelocityテンプレート・エンジンVelocity
テンプレート・エンジンVelocity
 
Message delivery over XMPP network
Message delivery over XMPP networkMessage delivery over XMPP network
Message delivery over XMPP network
 
Transports on XMPP network
Transports on XMPP networkTransports on XMPP network
Transports on XMPP network
 
組み込みから IoT へ
組み込みから IoT へ組み込みから IoT へ
組み込みから IoT へ
 
ゴアの預言した「スマート・グリッド」が現実のものに
ゴアの預言した「スマート・グリッド」が現実のものにゴアの預言した「スマート・グリッド」が現実のものに
ゴアの預言した「スマート・グリッド」が現実のものに
 
デバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoTデバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoT
 
ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計ゲームマップのためのグラフAPIの設計
ゲームマップのためのグラフAPIの設計
 
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
 
IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解IoT時代を支えるプロトコルMQTT技術詳解
IoT時代を支えるプロトコルMQTT技術詳解
 
Openfire xmpp server on windows server 2012 r2 with spark sso
Openfire xmpp server on windows server 2012 r2 with spark ssoOpenfire xmpp server on windows server 2012 r2 with spark sso
Openfire xmpp server on windows server 2012 r2 with spark sso
 
Microsoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoTMicrosoft Azure EventHubで始めるIoT
Microsoft Azure EventHubで始めるIoT
 
Router chat for np
Router chat for npRouter chat for np
Router chat for np
 
どっかのしたのほう
どっかのしたのほうどっかのしたのほう
どっかのしたのほう
 
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
 
Mqttで始めるIoT
Mqttで始めるIoTMqttで始めるIoT
Mqttで始めるIoT
 

Similar to XMPPの紹介

TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語隆行 神戸
 
すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩You&I
 
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜Ayako Togaeri
 
Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話Kuroiwa Takumi
 
夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例
夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例
夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例Yoshihiro Kishimoto
 
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話Fumiya Sakai
 
2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田Takuya Fujita
 
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2隆行 神戸
 
私の失敗道(仮)
私の失敗道(仮)私の失敗道(仮)
私の失敗道(仮)Yuuki Tan-nai
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」tokyorgirls
 
ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治Drecom Co., Ltd.
 
【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ
【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ
【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへJun Nakahara
 
WebSig1日学校2013開校資料~和田 嘉弘
WebSig1日学校2013開校資料~和田 嘉弘WebSig1日学校2013開校資料~和田 嘉弘
WebSig1日学校2013開校資料~和田 嘉弘WebSig24/7
 
大学におけるICT教育の事例
大学におけるICT教育の事例大学におけるICT教育の事例
大学におけるICT教育の事例Hiroki OKAZAKI
 
認知症プロジェクト~社会課題解決のパートナーとして~
認知症プロジェクト~社会課題解決のパートナーとして~認知症プロジェクト~社会課題解決のパートナーとして~
認知症プロジェクト~社会課題解決のパートナーとして~Dementia Friendly Japan Initiative
 
なぜ、いま情報デザインなのか?
なぜ、いま情報デザインなのか?なぜ、いま情報デザインなのか?
なぜ、いま情報デザインなのか?Takahito Kamihira
 
Sapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptx
Sapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptxSapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptx
Sapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptxyasuhiro ishida
 

Similar to XMPPの紹介 (20)

TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語TRPGオンラインセッション環境とルール&シナリオ記述言語
TRPGオンラインセッション環境とルール&シナリオ記述言語
 
すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩すぱこーに学ぶアプリ開発の第一歩
すぱこーに学ぶアプリ開発の第一歩
 
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
プロジェクトマネジメント再入門 〜PjMは何であって何でないのか〜
 
Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話
 
Jikopr
JikoprJikopr
Jikopr
 
夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例
夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例
夢中にさせる授業「ゲーミフィケーション×授業」2016最新事例
 
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
 
2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田2018.10.8 つくばビットコインミートアップ 藤田
2018.10.8 つくばビットコインミートアップ 藤田
 
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
TRPGオンラインセッション環境とルール&シナリオ記述言語 その2
 
私の失敗道(仮)
私の失敗道(仮)私の失敗道(仮)
私の失敗道(仮)
 
Go x Slack API
Go x Slack APIGo x Slack API
Go x Slack API
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
 
Aizu.LT #16
Aizu.LT #16Aizu.LT #16
Aizu.LT #16
 
ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治
 
【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ
【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ
【Fan】学びの場づくり、"勝手に"最先端はこれだ! コンテンツデザインからコミュニティデザインへ
 
WebSig1日学校2013開校資料~和田 嘉弘
WebSig1日学校2013開校資料~和田 嘉弘WebSig1日学校2013開校資料~和田 嘉弘
WebSig1日学校2013開校資料~和田 嘉弘
 
大学におけるICT教育の事例
大学におけるICT教育の事例大学におけるICT教育の事例
大学におけるICT教育の事例
 
認知症プロジェクト~社会課題解決のパートナーとして~
認知症プロジェクト~社会課題解決のパートナーとして~認知症プロジェクト~社会課題解決のパートナーとして~
認知症プロジェクト~社会課題解決のパートナーとして~
 
なぜ、いま情報デザインなのか?
なぜ、いま情報デザインなのか?なぜ、いま情報デザインなのか?
なぜ、いま情報デザインなのか?
 
Sapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptx
Sapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptxSapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptx
Sapporo Data Pioneers #1 LT:240118_sapporodatapioneers.pptx
 

XMPPの紹介

Editor's Notes

  1. ここで分散ビルド・ミドルウェアで用いられているXMPPというプロトコルについて補足:
  2. ここで分散ビルド・ミドルウェアで用いられているXMPPというプロトコルについて補足: