Entering Passive Mode

カテゴリ 'WWW' の記事
< 1 2 3 4 5 >

ちょいと長かったか

今回のトピックはちょいと長かった。
最初は自分の頭を整理する程度に考えていたのだが、
色々と考えているうちに、いつの間にかどんどん書き進め、
気が付けば 1 ヶ月を超える長いネタになった。

最近は WWW 開発が非常に活発だ。
これほど技術が複雑に絡まっているにも関わらず、
WWW 系の技術者はどんどん増えている。

だからこそ WWW 向けの開発トピックは避けてきたのだが、
さすがにネタが尽きてきた感がある。
そろそろ腹をくくる必要があるかもな……。

WWW

さて、長きに渡って色々と見てきた。
有名どころを取り上げて話をしてきたが、
これは WWW で使われている技術のごく一部に過ぎない。

初期はその存在が明確にあった HTTP も、
今となってはプラットフォームとなり、
TCP や UDP のように目に見えない存在になりつつある。

現在は、Ajax など次世代 Web を担う技術が注目され、
XML や JavaScript 等を駆使した開発スタイルであるが、
2 年後、3 年後にはどうなっているだろうか。

Asynchronous JavaScript + XML (Ajax)

XMLHttpRequest は、COM クラスであるため、
XMLHttpRequest は Intenet Explorer 上で動作する、
JavaScript や VBScript から利用することができる。

Intenet Explorer はセキュリティ設定を持っているため、
COM クラスは一般的に利用することはできないのだが、
XMLHttpRequest は、スクリプト言語等で利用する際に、
Web ブラウザのセキュリティ設定に従い、
安全な処理が可能であるという情報が登録されている。

そのため、XMLHttpRequest はインターネットゾーンで、
警告なく利用することが可能ということである。
(利用者側で、警告を出すように設定することも可能だ)

XMLHttpRequest

Microsoft は、2000 年を目前にした頃、
Office ソフトの最新版、Office 2000 をリリースした。

Office 2000 では XML サポート機能が強化され、
製品の一部として、同社の XML ライブラリが含まれていた。
この中に、Microsoft の隠れた新兵器が含まれていた。
それが、XMLHttpRequest と呼ばれる機能である。

XMLHttpRequest は、HTTP でサーバに接続し、
XML 等のデータを取得することができる軽量クラスだ。
必要最小限の命令セットで構成されているため、
クラス自体は非常にシンプルであり、利用が簡単である。

Web サービスの役割と利用

今度は、Web サービスを利用する側、
つまり、クライアントの方を考えてみよう。

RPC 系の Web サービスは、高度な水準であるため、
主に SOAP 機能を持つプログラムで利用される。
基本的に通信内容の XML はフレームワークで処理され、
プログラマが直接 XML を扱うことは殆どない。

REST や、任意の XML を利用する Web サービスの場合、
(便宜上、データ系と呼ぶことにする)
XML はそのままデータとして扱われるので、
XML の内容を、自力で解析する必要があり、
HTTP で通信を行う機能を持ち、
DOM 等で XML の解析が可能なプログラムで利用される。

REST (Representational State Transfer)

昨日は RPC ベースである Web サービスを紹介した。
基本的には、オブジェクトのメソッド呼び出しを
HTTP を利用してカプセル化したものであった。

それに対し、Web 上のデータに対する処理を、
全く別の視点から捉えたものに、
REST (Representational State Transfer) がある。

RPC では、オブジェクトの操作がメインであるため、
「メソッド呼び出し」を HTTP で表現した。
つまり、操作対象はオブジェクトであり、
オブジェクト指向のデータカプセル化の原則が存在する。

Web サービス

Web サーバが XML によるデータを外部に公開し、
データの形式や、利用(呼び出し)方法を規格化することで、
HTTP を媒介として構造化データの通信が可能となる。
こういう機能は Web サービスと呼ばれる。

ユーザエージェントから Web サーバに、
クエリ文字列や本体を経由してパラメータを渡し、
Web サーバが処理して XML で結果を返す。

基本はこれだけである。

Extensible HTML (XHTML)

XML によって、データの交換が容易になり、
Web サイト間でデータを XML で受け渡し、
それを加工して表示するようなサービスが生まれると、
XML の重要性はますます増してくることになる。

そんな時、新たな問題となってきたのが、
初期の頃から WWW を支えてきた HTML であった。

XML を中心に構築されたシステムでも、
利用者が Web ブラウザで操作する画面を表示する際は、
最終的に HTML を使って表現する必要がある。

XSL #4: テンプレートを書く

いよいよ、テンプレートを書いてみよう。
RSS 2.0 からの変換を行うので、
<channel> と <item> に着目してルールを書くことにする。

元の XML は以下の通り。
http://loafer.jp/mixi/diary/rss.xsp

========== simple.xsl ==========
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>

XSL #3: XPath と組み込みテンプレート

XSLT では、XPath を使って元の XML 文書を処理する。
XPath では、XML 文書の内容を「ノード」に分解し、
「ノード」全てを 1 つの大きな階層構造として取り扱う。

XML の要素だけでなく、テキストや、コメント、
そして属性や処理命令なども全てノードとして扱われる。
ノードは階層構造となり、最上位のノードは、
仮想的なノードである「ルートノード」である。
XML の文書要素はルートノードの子供ノードとなる。

    <root>
        <p align="center">
          テキストも<em>ノード</em>として扱います。
        </p>
    </root>
    <?apply href="footer.xml" ?>

< 1 2 3 4 5 >
このページのトップへ戻る
© 2008 Project Loafer/Project Fireball and all blog writers. Powered by Nucleus CMS