jump to navigation

[プロトコル] SOAPとRESTとついでにJSON 11月 2, 2009

Posted by hyhy in 技術情報.
Tags: , , ,
comments closed

厳密な説明はナシで。

SOAPとRESTについては、ネットワーク経由でオブジェクト間の通信を行う軽量のプロトコルで、通信内容の記述にXMLを用います。
転送用プロトコルとして、HTTPやSMTPなど既存の任意の通信プロトコルを使用します。
これらは結局のところ、HTTP経由のリクエストでXMLとしてデータを取得するというのが主流で、SOAPやらRESTというのは「データ構造のみが規定」されたXMLだと思ってください。
※厳密ではないです。。。

■SOAP
Simple Object Access Protocol
SOAPとは、XMLとHTTPなどをベースとした、他のコンピュータにあるデータやサービスを呼び出すためのプロトコル(通信規約)。
Microsoft社やUserLand Software社、Developmentor社が中心となって開発された。
 SOAPによる通信では、XML文書にエンベロープ(封筒)と呼ばれる付帯情報が付いたメッセージを、HTTPなどのプロトコルで交換する。サービスを利用するクライアントと、サービスを提供するサーバの双方がSOAPの生成・解釈エンジンを持つことで、異なる環境間でのオブジェクト呼び出しを可能にしている。
 SOAP 1.1では、実際にデータの送受信に使う下位プロトコルは、すでに広く普及しているHTTPやSMTP、FTPなどから選択できるようになっており、企業間で利用する場合でもファイアウォールなどを安全に通過することができる(SOAP 1.0ではHTTPのみ)。
 なお、SOAPメッセージの生成エンジンは「SOAPプロキシ」、解釈エンジンは「SOAPリスナ」と呼ばれることもある。
RESTに比べてデータ構造が若干複雑なので、現在はあまり使われていない。
soap
※WEBサービスについて
 SOAPによって外部から利用可能な、部品化されたWebベースのアプリケーションソフトは「Webサービス」と呼ばれる。インターネット上で各社が提供しているWebサービスを集め、誰でも検索・照会できるようにするWebサービスを「UDDI」という。

■REST
Representational State Transfer
HTTPリクエストに対してXMLをレスポンスとして返します。
ネットワークシステムのアーキテクチャスタイル。
RESTの最大の特徴は「WebブラウザにURLを入力すれば動作確認できる」事。
RESTの使用例の一つに「RSS配信」がある。RSS配信では、特定のURLにアクセスすると、XMLのRSSフォーマットで記述されたデータが配信される。XMLで取得できることで、受信側で自由に加工することができる。
SOAPと比べて、記述が柔軟。

■SOAPとREST
参考サイト
[共通点]
* 通信内容がすべてテキストであることによる可読性
* HTTPSを使っての暗号化(サーバ証明/クライアント証明)
* HTTPプロキシを使ってFirewallを越える
* リアルタイムな応答
* HTTP, XMLをターゲットにしたライブラリやアプライアンスの流用
* XMLに対してXSLTを使ってのフォーマット変換

■JSON
JSON(ジェイソン、JavaScript Object Notation)
JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ記述言語。
JSONはウェブブラウザなどでよく使われているECMA-262, revision 3準拠のJavaScript(ECMAScript)をベースとしている。2006年7月にRFC 4627で仕様が規定され、MIMEタイプはapplication/json、拡張子はjsonとされた。 JSONはJavaScriptにおけるオブジェクト表記法のサブセットであるが、JavaScriptでの利用に限られたものではない。

JSONは単純であるので、特にAjaxの分野で利用が広がりつつある。JavaScriptでJSONをパースして読み込むには、文字列をJavaScriptのコードとして解釈させるeval()関数を作用させるだけでよい。このように、広く普及しているウェブブラウザ搭載言語であるJavaScriptで簡単に読み込める。

JavaScript言語以外でのほとんどの言語において、JSONは単純な処理で書き出しや読み込むことができる。また、実装されたプログラミング言語数はYAMLより多いと言われる。そのため、JSONは異なるプログラミング言語の間でのデータの受渡しには能率的である。ウェブアプリケーションの場合において、ウェブクライアントでのJavaScriptとのデータの受渡しなどはその最たる活用例と言える。プロセス間通信、マシン間通信においても、疎結合にするため、JSONで情報を受け渡しすることもある。

JSONを簡単に編集:JSON Editor
JSONを使ったキャッシング
JSON Parser Online

[プロトコル] PubSubHubbubについて 10月 31, 2009

Posted by hyhy in 技術情報.
Tags:
comments closed

Push型Webサービスを実現する方法として、HTTPベースのプロトコルである「PubSubHubbub」が使われたりします。
「パブサブハバブ」と読むらしいです。

リアルタイムな更新通知プロトコル「PubSubHubbub」
ウノウラボ PubSubHubbubとは
PubSubHubbubでRSSもTwitter並にリアルタイムに
RSSの購読を効率化するための PubSubHubbub というプロトコルがあるらしい

[プロトコル] LDAPについて 7月 14, 2009

Posted by hyhy in 技術情報.
Tags:
comments closed

LDAPについてよく理解できてないので、まとめ。

LDAP・・・Lightweight Directory Access Protocol
一言でいうなれば、ディレクトリサービス
TCP/IP上でづおさするインターネット標準のディレクトリアクセスプロトコルで、WebブラウザなどのLDAPクライアントから、直接ディレクトリサービスを検索・参照することができます。

■詳細
LDAPとは,電子的な電話帳(ディレクトリサーバ,あるいはLDAPサーバと呼ばれる)と通
信し,各種の情報を読み書きするためのプロトコルである。電話帳と言っても,名前,電話番号,住所のみを格納できるのではなく,運用目的にあわせて任意の情報を追加することができる。
LDAPサーバのフリーソフトとしてはOpenLDAPが有名。
商用のものとしてはeDirectory(Novell),Internet Directory(Oracle),Domino(Lotus),Exchange Server(Microsoft),Active Directory(Microsoft)

これらのLDAPサーバはクライアント側から見れば,ほとんど同じ振る舞いをする。しかし,レプリケーション(後述)や分散ディレクトリなど,LDAPサーバ間の通信においては,RFCで定義されていない部分も多く,互換性はないと考えた方がよい。そのため,複数のLDAPサーバを連携させながら運用する場合には,同じソフトを用いる方が安全である。

LDAPサーバでは,通常の電話帳と同じように,情報は頻繁には更新されないことを仮定しており,検索(コンピュータへのログイン時の認証など)は高速にできるように設計されている。しかしその反面,情報の更新や追加などの処理は遅い。そのため,頻繁に情報が更新される用途には不向きとされる。

■LDAPで何ができるのか?
1)認証と情報の読み込み
LDAPサーバのもっとも単純な利用方法は認証である。
ユーザを階層的に管理することができない,あるいはセキュリティ的に問題があるなど,大規模なグループに対してサービスを行おうと思うと,不十分である。

2)アクセス制御
ACI(Access Control Information,アクセス制御情報)6でアクセス制御が可能である。例えば,
ユーザごとにアクセスできる情報,許可するアクセスの種類やアクセスできる範囲を設定するなど,きめ細かいアクセス制御を設定できる。また,OpenLDAPではTCP Wrappersと組み合わせることによって,特定のホストからのアクセスのみを許可することができるが,特定のホストから特定のユーザのみがアクセス可能,という設定はできない。

3)レプリカ
1台のLDAPサーバだけでは,ユーザからのアクセスを処理しきれなくなり,認証や情報の読み出しに遅延が生じる可能性がある。そこで,同じ内容を保持するLDAPサーバを複数台設置することにより,負荷を分散させることができる。

4)セキュリティ
LDAPサーバはIDとパスワードのみではなく,いろいろな情報を格納することができる。
そのため,情報の漏洩には特別の配慮が必要である。情報漏洩の防止には,LDAPサーバ内部と,クライアントとの情報のやり取りの過程の2つを考える必要がある。
まず,LDAPサーバ内部のセキュリティ対策としては,パスワードをそのままの形では保存しない,ということが挙げられる。平文で保存することもできるが,一方向ハッシュ(SHAやSSHAなど)をかけた状態で保存すれば,たとえパスワードが漏洩しても元のパスワードを復元することは非常に困難であり,不正なアクセスを防止することに有効である。

参考

[プロトコル] Bonjourプロトコルについて 7月 5, 2009

Posted by hyhy in 技術情報.
Tags:
comments closed

Bonjourとは、米Apple社が開発したプロトコルです。
ゼロコンフィギュレーション・ネットワークとも呼ばれていますが、IP ネットワーク上のコンピュータ、デバイス、およびサービスを自動的に検出するサービスです。Bonjour では、業界標準の IP プロトコルが使用されているので、IP アドレスを入力したり DNS サーバを設定しなくても、デバイスが相互に自動的に検出されます。

wiki
Bonjour for Windows 1.0.4