オンライン・ムック Plus

Web 2.0で変わるWebプログラミングの常識:実は、Ajaxのウラにこそ勝算がある (1/5)

見た目にインパクトが大きいAjax利用のWebアプリケーション。しかし、その見た目を支える要となるものは、背後にある有益な情報処理と活用方法だ。Ajaxのインパクトに負けないWebアプリはどのように作られるのか?


 このオンライン・ムックPlus「Web 2.0で変わるWebプログラミングの常識」では、これまでにAjaxの概要(第1回)から発展系としてどのような取り組みあるのか(第2回)、そして、効率的な組み込み方法の一つとしてJSONと呼ばれるデータ形式のやり取り(第3回)について解説した。

 この一連の特集を読むことで、プログラミングノウハウを一から十まですべてを学べるほどのボリュームは詰め込めないが、それでも最低限押さえておくべきポイントが理解できるはずだ。今回の記事でテーマとなるのは、Ajaxというものが見た目のインパクトさだけを表現するものではないということだ。

 Ajaxは、主にWebアプリケーションのフロントエンドとして用いられる技術。その背後は、サーバ上でOSやデータベースが支えている。文字や画像データを効果的に見せてこそ、Ajaxの技術が生かされるのだ。その発展系として考えられるWebサービス連携について説明しよう。

クロスドメインの制限はJSONと動的なscriptタグで解決

 第3回の最後には、クライアントからサーバへJSONで送信するやり取りを解説した(関連記事)。さて今度は逆に、XMLHttpRequestオブジェクトがXMLのデータを受信可能であるということを生かし、Webサービスとの連携を考えてみよう。

 近年Webサービスは、基幹を支えるものとして注視されており、Google API、Yahoo! API、Amazon APIなど、さまざまなWebサービスがAPIとして提供されている。Ajaxで、これらのAPIが呼び出せれば、さぞかし便利になるだろう。

 しかし残念ながら、XMLHttpRequestオブジェクトを使って、これらのAPIを呼び出すことはできない。これは技術的な理由ではなく、セキュリティ上からの理由だ。

 多くのWebブラウザは、XMLHttpRequestオブジェクトの通信先を、そのHTMLコンテンツを送信したのと同じサーバに限るよう、セキュリティの制限が課せられている。つまり、HTMLコンテンツと同じサーバにWebサービスが存在しなければ、該当するWebサービスを呼び出すことができないことを意味する。

 このような制限を「クロスドメインの制限」と呼ぶ。

プロキシで解決する

 この問題を解決する方法の1つが、サーバ側にもWebアプリケーションを配置し、通信をプロキシするというものだ(図1)。

fig01.gif 図1■Webサービスの呼び出しを中継するプロキシ構造例

 プロキシによる通信手段では、データを加工するという選択肢と、データを加工しないという選択肢がある。

 つまり、単純にリクエストを中継してWebサービスからの戻り値(XMLデータ)をそのまま返し、JavaScript側でパースするという方法だけではなく、Webサービスからの戻り値を加工して、JSON形式などに変換してから返す方法もあるのだ。

動的なscriptタグで解決する方法

 クロスドメインの制限を回避するために、今までには、もっぱらこのプロキシを用いる方法が採用されてきた。

 しかし近年では、もうひとつ違う方法が使われ始めている。それは、「scriptタグを動的に作る」という方法だ。

 scriptタグでは、次のようにとして外部のJavaScriptのファイルを読み込むことができる。


<script language="JavaScript"
  src="ソースのURL">
</script>

 この時、scriptタグのsrcに指定する場所にはクロスドメインの制限がないのだ。つまり、インターネット上のどのような場所からでもJavaScriptのコードを参照することができる。

       1|2|3|4|5 次のページへ

Copyright© 2010 ITmedia, Inc. All Rights Reserved.




キャリアアップ



エンタープライズ・ピックアップ

news004.jpg 世界で勝つ 強い日本企業のつくり方:利用契約の検討――グローバルクラウドで失敗しないために(前編)
2010年以降、クラウドサービスの利用がさらに加速する。サービスを利用する企業はプロバイダーのデータセンターに預けた自社情報を保護するために、法的な要素を理解しておかなければならない。企業が注意を払うべき法的な検討事項を整理する。

news001.jpg IT投資の新方程式:「Twitter使ってます」――現役MS社員が“社員力”を語る(前編)
マイクロソフトが掲げるプロモーションメッセージ「社員にチカラを。ITで企業力を。(以下、BIEB)」からは、ITで社員の生産性を向上することが業績の拡大につながる、といったニュアンスを感じる。そこで気になるのが「じゃあ、マイクロソフトの社員自身はどうなのよ?」ということ。3人の現役MS社員により実態が明らかになる……?

news010.jpg 産業構造を変えるか:「住宅クラウド」の衝撃
住宅都市工学研究所が進める「住宅クラウド」は、クラウドが企業のIT領域にとどまらず、ビジネスのやり方自体を変える可能性を示している。

news010.jpg オルタナティブな生き方 栗原進さん:ネットでリアルを楽しくしたい
SE出身の企業広報マンでありながら、趣味は落語で憧れの人はインディ・ジョーンズとアナログ全開の栗原さんに、ブログを書く理由やネットからはじまるコミュニケーションについて伺った。

news001.jpg 最強最速アルゴリズマー養成講座:トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。