XMLとの連携・活用 |
|
XMLがどんなものであるかの説明は、XML eXpert eXchangeフォーラムの記事に譲るとして、ここではWebアプリケーションとXMLとのかかわりについて説明します。
最近では、サン・マイクロシステムズやマイクロソフト、IBMなどが「Webサービス」の中核にXMLを据えてきています。もはや、XMLがWebの世界でも必須となることは間違いない情勢といえます。
ここでは、XMLの持つ利点を簡単に解説し、なぜXMLが多くの事例で採用されるのか、その理由について考えてみましょう(とはいえ、こうしてあらためて「なぜXMLを使うのか」ということを考える機会は、最近ではなかなか少なくなってきているのかもしれません。アットマーク・アイティの記事を見ていても、XMLがなぜ優れていて、どうしてよく用いられているのかを論じる時期はもう過ぎていて、日々登場する新しい関連テクノロジに関する解説やチュートリアルの情報がほとんどといってもいいような状況になっているようです)。
XMLの優れている点を、その特徴を挙げつつ考えると、以下のようなものがあります。
(1)オープンな仕様
XMLは、W3Cという非営利団体によって勧告された規格であり、特定のベンダによって仕様が変更されることはありません。また、だれでもすべての仕様を無償で入手することが可能なため修得コストが低く、取り組みやすいといえます。
(2)記法を修得しやすい
XMLが登場する以前から、インターネットの世界ではHTMLがすでに普及していました。そのため、開発者にとってマークアップ型言語への抵抗は少なく、HTMLからのステップアップという流れで修得することができます。
(3)テキストベース
XMLはHTMLと同じく、すべてテキストベースで記述しますので、コーディングに関して特別なツールを必要としません。もちろん、専用のツールがあれば記述は楽になりますが、一般的なテキストエディタがあれば記述できます。
(4)開発コスト、導入コストが低い
仕様が公開されていることもあり、XMLをアプリケーションで扱うためのパーサなどの各種API、ライブラリの多くが無償で入手できます。開発面でのコストが低いことで参入企業が増え、市場原理が働いてさらにコストが下がることも期待できます。
(5)既存の言語(SGML)をベースに作られている
XMLの仕様自体が、SGMLという歴史のあるマークアップ言語をベースに作られていますので、コアな仕様が短期間で大きく変更されるということはまずないといっていいでしょう。開発者にとっては、仕様変更による対応の必要が減ります。
(6)文書の妥当性をチェックしやすい
DTDにより明示的に文書の構造を定義できるので、フォーマットに従わない無意味な文書を排除できます。また、そのためのチェック機能を開発者が実装する必要もありません(パーサなどに含まれるため)。
(7)可変長で変更に強く、拡張もしやすい
XMLは、可変長のデータの扱いに優れています。アプリケーションの仕様変更によってデータ項目の追加や削除が必要になった場合でも既存データの修正が少なくて済み、データが修正後の仕様に従っているかを容易に確認できます。
(8)特定の処理系に依存しない
XMLは特定の処理系に依存するデータ構造ではないため、どのような処理系でもAPIさえあればXMLを扱うことができます。Javaで扱えるのはもちろん、Java以外の言語で扱うことも可能です。
以下に、ここまでで説明した特徴から考えられるメリットを列挙してみましょう。
●安定性
コンピュータ・システムの世界ではバージョンアップによって仕様が大きく変わってしまうことが珍しくありません。あまりに変更が大きいと既存のシステムを根本から変更する必要が生じる場合もあり、コストがかさむ結果となります。コンピュータ・システムの世界では、仕様の拡張はあってしかるべきですが、根本的な部分については仕様がきちんと固まっている規格の方が、開発者が手を付けやすいことは間違いないでしょう。XMLでは、上記の(1)(5)(8)などの理由で、仕様が根底から変更されることはなく、利用に関して安定性があるといえます。
●柔軟性
基盤となる技術の仕様が安定していたとしても、業務システムには変更がつきものです。それは例えば、アプリケーション的な仕様や設計の変更、運用環境に関する変更などです。こういった場合に柔軟な対応ができると、開発者にとってのメリットがあります。XMLでは、上記(7)がまさにそれにあたります。また、(3)(6)(8)なども、柔軟性に寄与しているといえるでしょう。
●参入障壁が低い
優れたテクノロジであっても、修得が難解であったり、開発のためのツールが限定されていたりすると、開発者にとってはコストが高く、導入をためらうことになったりします。また、市場でのシェアが低いと、市場原理も働かず、使う側の導入コストも高いために普及しないということもあるので、必ずしも技術的優位だけがあればいいというわけではありません。XMLでは、(2)(3)(4)などが、参入障壁を下げているといってよいでしょう。
「Java Solution FAQ」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|