細かい仕組みや技術的な内容、インスタントメッセンジャー自体の説明/チャット自体について、
基本的なネット・コンピュータ用語等については他ページやサイトを見てもらうとして、
このページは数あるインスタントメッセージング/チャットシステムのうちの一つである、
Jabber/XMPPを知ってくれる人が少しでも増えればなあ的な目論見の為のそれっぽい説明ページです。
元々は借りてるwikiでJabberについてのメモというページ作ったりしてあるんですが、
あくまでリンク集でしかないもので「もう少しそれらしい入門的なページを」という思いもあって作ったページです。
まず使ってから知ってもらう事を目的として、
一つのメッセンジャー/チャットアプリとして利用する為に掻い摘んだ事を書いてあります。
経年による用語やサービスの風化など、いろいろ突っ込み所も多いので思う所があれば何かご連絡を。
単語の説明については外部サイトのXMPP用語集にリンクを張らせてもらいます。
っていうか、そういう風にしたいです。将来的には。
用語ごとに項目作ったりしてアレコレと相互的にやりたいんですけど、
まずはこのページ自体をとりあえずの形にしなければいけないわけで
まず「Jabber(ジャバー)」とは、
1999年に公開・発表されたオープンソースのIMシステムのプロジェクトであり、歴史自体は結構古いものとなります。
それらのシステムを利用した最初のIMサービスというか、
インターネット上で公開されたJabberのIMサーバーがJabber.orgというサイトで、
今現在もサーバーは存在してサービスも続いています。
そのJabberから名称を変えた…というよりは、
Jabberを元に生まれたものが、
「XMPP(エックスエムピーピー、eXtensible Messaging and Presence Protocol)」であり、
2004年にIETF(インターネット技術タスクフォース。インターネットで利用される技術の標準化を策定する組織)にて、
IMシステムの標準案として認定もされており、
かつてのGoogle Talkや、Facebookチャットへのクライアント接続用などに使われていました。
現在でも使われている所では、HipChatのシステムや、Slackのゲートウェイなど、
様々な場所で使われていたりするプロトコルでもあります。
そんな感じの経緯もあって、古くからのサイトにJabberと表記されていたり、未だにJabberとXMPPは混在されて使われている事が多く、
普通に使う分にはJabberとXMPPは同じものと考えて問題ありません。
よく、インスタントメッセンジャーの解説で「電子メールとチャットの中間」などと言う例えがありますが、
XMPPを一言で説明するとちょうどそんな感じなんですよね。
それと言うのは、一般的にインターネット上でXMPPを利用する際には、
数多く存在するXMPPサーバーにて、
「任意の名前@登録したサーバーのドメイン名
(例:sample_name@sample_server-name.com)」
という感じのメールアドレスと似た(というか表記上は同じな)アカウント(※1 JIDと呼ばれているもの)を取得し、
それを使用して接続してメッセージを送信して会話をする。
…という仕組みになっているからです。
大抵のIMサービスのように、
特定のソフト(クライアント)が用意されているわけではなく、
幾つもあるクライアントの中から任意の物を選び、それを使って接続するという点も、
電子メールにおけるメーラー(メールクライアント、メールソフト)の使い方と似ています。
しかし、基本的にXMPPのアカウント(JID)宛てにはメールは送信できず、
仮にメールを送ってしまったとしてもアドレスが無効だとかエラーで返ってくるはずなので、
アカウントの表記における混乱の心配は少ないものと思われます。
(Google TalkにおけるGmailのような、メールアドレスとJIDが一緒になっている物や、そう設定している人もいるでしょうけど、
まあ普通に使う分にはメールアドレスとは別物だと思っていた方がいいかと思います)
つまりXMPPは一種のIMサービスやソフト自体の事を示すのではなく、
IMのシステムやサーバー、クライアント、プロトコル等の総称なわけです。
好みのサーバーやクライアントを選択する自由があるとも言えますが、
逆に考えると他のIMのように特定のソフトをインストールして、
それで指示に従えばいいだけではないということです。
大抵のXMPPサーバーでは導入方法も記載されている事が多いですが、
(日本ではXMPP.JPの「使い方」のページや、step.imの「はじめよう」のページなど)
まずそれ以前にXMPP自体が「なんだそれ?」って状態の人のが多いかなと思われます。
そんな人に向けてのページがここだったりするんですが、実際に理解できるかどうかはわかりません。
色々面倒だって人もいるかなと思うので、
最低限
■JabberとXMPPは同じもの
■XMPPのアカウントはメールアドレスと表記が似ているJIDと呼ばれるものを使う
■特定のアプリ/クライアントではなくXMPPに対応するクライアントを使って接続する
■特定の企業が運営しているIMサービスというわけではない
…くらいを頭に入れておけば問題はないかと思います。
さらに一言で言ってしまえば、
■電子メールのシステムをそのままインスタントメッセンジャーにしたようなモノがJabber/XMPP
となります。
多少乱暴な言い方ですが、理解してもらうにはコレが一番わかりやすいかなあと。
色々すっ飛ばしてるんで、解説と言うには問題も多いでしょうが、まあこんな感じのものです。
2008年のCiscoのJabber買収によって「Cisco Jabber」という名称で商業利用されていたりもするんですが、
その辺りも普通に使う分には関係ないので気になったら調べたりしてみてください。
というか、CiscoのブログでJabber誕生からの経緯が書かれてるんでそっち読んだ方が早いと思います。
この辺りはくどいだけというか、普通に使う分にはあまり関係ないかもしれないんで飛ばしても構いません。
というか、最初に書いてから時間が経ってしまった結果過去形になってしまった事ばかりです。
Jabberから続くXMPPの最大の特徴はオープンソースであるという事です。
オープンソースである為に、多くの人々によって各種OS用のXMPPクライアントが開発されており、
接続に対応しているソフト/クライアントも数多く存在しています。
つまり、OSやプラットフォームに依存しないIMサービスとも言えるわけです。
XMPPなら大抵のIMサービスのようにOSが対応してない為に会話が出来ないなんて事も無くなるわけで、
世界中のどんな人とも繋がれる可能性も持っているわけです。
たとえばパソコンとスマートフォンとのリアルタイムコミュニケーションの方法の一つにも考えられるわけです。
もっとも、互いにXMPPを利用してくれればの話ですけどね。
あとそのスマートフォン用のクライアントの使い勝手の関係もあるでしょうけど。
XMPPにはJingleという拡張プロトコルが存在してまして、
そのJingleがあるおかげで他のIMのように、音声通話やビデオチャットなどの機能もサポートされています。
ただ、全てのXMPPクライアントで使えるというわけではなく、特定のクライアント同士でなければその機能が使えません。
(WindowsだとPsi同士で音声チャットが可能であり、Gajim同士でも可能、のはず)
……まあ、この辺りはwikipediaでも日本語ページが作られてないくらいにはわざわざ説明すんのがめんどくさいってのもあるとは思います。
とにかく、(使い勝手はともかく)テキストチャット以外の機能も実装されてるのがXMPPというものです。
現在の著名なメッセンジャー/チャットサービスの多くは、
セキュリティ上からエンドツーエンド暗号化機能を搭載、暗号化接続に対応していますが、
XMPPもOpenPGPやOTR(※3)に対応しており、
OMEMO(※4 )という機能によって複数のユーザーへの通信の暗号化も可能になっています。
アプリ/クライアントごとに対応している暗号化機能は違いますが、
下記で挙げられているクライアントの大半はそれらの機能に対応しているので、セキュリティ上も安心ができます。
相手側も対応したものを使っていればですが。
前述でもあるように、XMPPはIETFでIMの標準案として認定されていて、
多くの場所で使われている使われていた事もあるプロトコルです。
前述の繰り返しにはなりますが、
かつて存在したGoogle Talkというサービス/チャットソフトでも採用されたプロトコルでもあり、
Google Talkユーザーは、Google Talkのユーザーだけではなく、
公開XMPPサーバーに接続していたユーザーとも会話ができました。
(現在、Google Talkのサポートは終了しており、
GoogleTalkサーバー自体にはXMPPクライアントでの接続ができて、他の相手と一対一の会話はできます。
しかし、後継のハングアウト自体はXMPPではない独自のプロトコルです)
□Windows 版 Google トークアプリのサービス終了について
>なお、Pidgin や Gajim などの互換性があるサードパーティ製アプリを利用すれば Google トークにも引き続きアクセスできます。
□ハングアウト チャットのよくある質問
>サードパーティ製のチャット クライアントはサポートされていますか。
>現在、ハングアウトではサードパーティ製クライアントとの 1 対 1 のチャットがサポートされています。
>XMPP フェデレーションを含め XMPP 規格はハングアウトではサポートされていませんが、
>サードパーティ製チャット クライアントからは、引き続き Google トーク ネットワークに接続できるほか、
>Google トーク ネットワークを介してハングアウトで 1 対 1 のチャットも行えます。
しかし、アプリパスワードでログインすると普通のXMPPアカウントとして使えるらしい、とも。
まあどちらにしても、「Googleトーク」はサポート終了しているんで、この辺りは自己責任で、って事になるんでしょうね。
また、かつてFacebookのチャットにはXMPP対応クライアントを使っての接続ができました。
ただし、FacebookがXMPPを採用していたのではなく、
あくまでXMPP接続のゲートウェイを開放していただけです。
ただ、2015年4月30日にそのXMPPゲートウェイのあるAPIのバージョン変更という形で利用できなくなりました。
そういうわけで現在はPigdinだろうがなんだろうが接続できません。
□Pigdin、Adium、iChatなどのプログラムを使用してデスクトップでFacebookチャットを使うことはできますか。 | Facebookヘルプセンター
□Facebookプラットフォーム変更ログ
>v1.0 有効期限 2015年4月30日
>1.0が破棄されると、http://chat.facebook.com にあるチャット/XMPPサービスおよびAPIは利用できなくなります。
他に、SlackというチャットサービスではXMPPプロトコルを利用して接続できるようゲートウェイが用意されていました。
□IRCとXMPPを使って Slack に接続する
>まことに残念ですが、ゲートウェイへのサポートを終了いたします。5月15日以降、XMPP および IRC ゲートウェイを使用して Slack へ接続することはできなくなります。
こんな風に他チャットとかとのゲートウェイ、橋渡し的な利用もされていた事もあるのがXMPPなわけです。
Hipchatのように、プロトコルにXMPPを採用してサービスを運用していた所もあります。
□XMPP/Jabber support details
その為、用意されたクライアントの他にも使い慣れたXMPP対応クライアントを使っての接続が可能となっています。
この辺りはまあリンク先でも読んでくださいなと。
□Important Stride and Hipchat update: Atlassian and Slack announce a new partnership
>Stride and Hipchat Cloud APIs, developer support, and Marketplace support tickets will remain available through Feb 15, 2019; Stride and Hipchat Cloud services will shut down after this date
□https://www.itmedia.co.jp/news/articles/1807/27/news063.html
>HipchatとStrideについては、既存ユーザーにSlackへの移行を勧めており、2019年2月にはサービスを終了する計画だ。
メッセンジャー/チャットアプリの一つであるWhatsappもプロトコルはXMPPベースだったりするらしいですが、
接続先が公開されてなかったりとかなんか認証が特別だとかで他からの接続は出来ないっぽいんですよね。
まあ、コレも一応そういう例がありますよ、ということで書いておきます。
EVE Online、フォートナイト、League of Legends等のオンラインゲームのチャットシステム等にもXMPPが使われたりしているそうです。
実際確かめてるわけではないので詳しくはわかりませんが、
検索するとXMPPクライアントを使って上げられたオンラインゲームのチャットに接続する方法の解説などが書かれていることがあります。
その他にメッセンジャー/チャットからは外れますが、
Presence Protocol(プレゼンスプロトコル)という名称なだけあって、通知プロトコルとしても使われたりしてる事もあります。
有名なところではNintendo Switchのプッシュ通知用にXMPPをカスタムしたものが使われたりしています。
標準案、つまりスタンダードとして認定されてるからこそ、こういう意見もありました。
Skype からの自由を―FSFE が Windows Messenger の停止で Jabber への移行を呼びかけ
>「重要な技術は一企業にコントロールされるべきではなく、
>インターネットを偉大なものにしたオープンスタンダードを頼りにすべきだ。
>MSN ユーザーは、XMPP プロトコルのようなオープンスタンダード技術やフリーソフトウェアチャットプログラムに切り替えるべきだ」
…というように、FSFE(フリーソフトウェア財団ヨーロッパ)が推奨しているIMプロトコルでもあります。
セキュリティについても触れられているように、
接続に関してもSSL接続やTLS接続にも対応している為、その辺りの心配も少なくなると思います。
その後、2014年5月に暗号化接続が必須となった為、一応その辺りについては問題ないかとは思います。
……どうにも説明がまとまりませんが、
(様々な機能が実装されているものの)テキストでの会話でならXMPPは優れたシステムと言えるはずです。
その他のの優れた点については……ほかの誰かが説明してくれると思うので、ここでは触れません。というかめんどくs
俗にマルチIMなどと言われ、複数のIM/チャットサービスに接続できるソフト/クライアントでもXMPPに対応しているものがあります。
PC用クライアントばかり羅列しましたが、スマートフォン向けのクライアントとかも紹介を。
Android用では、
iPhoneというかiOSとかだと、
などがあるようです。
...以上のクライアントやアプリなどを使ってXMPPを利用することができます。
というか、キリがなくてよくわからんのでこの辺りの情報とか誰か教えてくだs
...確認できた範囲でも現状これくらいのクライアントがありますよ、という何か。
こんだけあればどれ使えばいいのかそりゃわからんですよね。
ふつーに使うとすればここで紹介したPSI+かGajimあたりあたりがいいんじゃないかなとは思います。
あくまでふつーに使うのであれば。
Androidの場合はConversationsがよく使われていたりするそうです。
iOSの場合は…選択肢自体が無いも同然なので、上記のやつぐらいかなと。
こういうページやサイトとはいえ、ただリンク等の羅列だけってのも何なので、
一応クライアントの使い方らしきもののページをちまちまと書きつつ別ページに作ったりしていますしていました。
ほとんどが手探りで書いたものなので、あまり当てにはしないでください。というか一応残してはおくものの情報としては古いものなので。
気が向いたら増やしていく予定でしたが、このままです。
これで何かそれらしい言葉閉めができればいいんでしょうけど、そういうのはできないのでやりません。
というより多分このページはずっと未完成のままだろうと思うんで暫くはタイトルも仮つけたままにしておこうかなと。
まあコレが自分の出来る範囲での入門ページですよ、というページです。
先にも書いてはありますが、なんかこう問題があったり言いたい事とかあればTwitter辺りにでもご連絡くださいな、と。