• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

リッチクライアントの中心技術「Ajax」を学ぶ

Part2 通信データ形式と想定外の利用に対する対策

大澤文孝 テクニカル・ライター/プログラマ 2006/12/15 日経SYSTEMS
出典:日経システム構築 2006年3月号128ページより
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
目次一覧

Ajaxのサーバーサイド・プログラムはWebサービスである。AjaxではWebサービスを頻繁に呼び出すので,やり取りするデータ形式によっては性能が低下する。そこでXMLより簡易な形式が使われることが多い。また,作成したWebサービスは想定外の使われ方をされる恐れがある。転用を難しくすることで,想定した使い方のみになるようにしたい。

 一般的なWebアプリケーションは利用者の操作を契機にサーバーと通信を開始するが,AjaxはJavaScriptの指示でサーバー側のプログラムを呼び出す(図1)。ページの部分的な変更が可能で,マウスの移動などを契機にプログラムを動作できる。これらにより,Ajaxでは操作性を向上させたり性能を向上させたりすることが可能になる。これがPart1で説明したAjaxの特徴だ。

図1●Ajaxの基本的な動き
Ajaxアプリケーションは,WebブラウザではなくJavaScriptがWebサーバーへの接続を指示する。送受信されるデータ形式は,HTMLではなくXMLまたはテキスト形式。呼び出されるサーバー側プログラムは,Webサービスになる
[画像のクリックで拡大表示]

 Part2では,Ajaxアプリケーションを開発する際の注意点,特にサーバー側のWebサービスにまつわる注意点を取り上げる。

●サーバーとの通信データ
性能重視ならXMLは使わない

 Ajaxのサーバー側プログラムであるWebサービスは,Ajaxクライアントによって何度も呼び出される可能性がある。例えばマウスの動きによって何か処理するのであれば,マウスが動くたびに呼び出される。つまり,Ajaxアプリケーションの処理性能はWebサービスとの通信処理に依存することになる。処理性能を左右するポイントは,通信データ形式にある。

SOAPより軽量なXMLRPC

 一般にWebサービスと言えば,XML形式でデータをやり取りするのが基本である。Webサービスと言えばすぐに思い浮かぶのが「SOAP」だ。しかしSOAPは,SOAPエンベロープ(ヘッダーなどを含むフォーマット)を付けて送受信する必要があり,やや冗長なプロトコルである。AjaxでSOAPを扱うことは可能だが,JavaScriptでSOAPを使おうとすると,開発者がSOAPエンベロープなどの要素を作成する必要があり,プログラムが複雑になる。そのため,Ajaxでの通信にSOAPが使われることはほとんどない

 SOAPより少し軽量なプロトコルとして「XMLRPC」がある。XMLRPCは,引数や戻り値を,型に応じた簡単なタグでくくって呼び出す方式である。ブログの実装などでよく使われており,ライブラリも充実している。AjaxでXMLRPCのWebサービスを呼び出すには,文字列結合やDOMDocumentオブジェクト(XMLのオブジェクト形式)を使って,引数をXML形式で作成する。その引数をXMLHttpRequestオブジェクトのsendメソッドの引数として指定すれば,サーバー側のプログラムが呼び出される(図2)。サーバー側からの戻り値はXML形式になるので,適時パース(解析)処理が必要になる

図2●XMLRPCでWebサービスを呼び出す場合の例
クライアントとサーバー間のやり取りはXML形式のデータになる。サービスを呼び出すには,XML形式の引数を作成する必要がある。Webサービスの戻り値から利用者に表示する値などを取得するには,XML形式のデータをパースする必要がある
[画像のクリックで拡大表示]

ここから先はITpro会員(無料)の登録が必要です。

次ページ Webサービスの引数にXMLを使わないREST
  • 1
  • 2
  • 3
  • 4

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【AIと倫理】

    脳から学べば汎用AIの実現は近い、開発を萎縮させない議論を

     ドワンゴ人工知能研究所の山川宏所長は、最新の脳神経科学の成果を取り込んだ、汎用AIの研究開発に取り組んでいる。実現する手法として提唱するのが、脳が持つ部位ごとの機能をコンピュータに模倣させ、各機能を連携させることで汎用性の高い知性を実現するという「全脳アーキテクチャ(WBA)」だ。

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

クライアント/OA機器

ネットワーク/通信サービス

セキュリティ

もっと見る