企業のアーキテクトは、かつてないほどソフトウェアが複雑さを増し続ける状況に直面しています。そのため、システム統合の問題を克服する手段として SOA (Service-Oriented Architecture) を大いに注目しています。基本的に SOA は、ビジネスと IT (information technology) の間の実務関係を改善することによってビジネスの結果を改善しようとする手法です。
SOA では、同期アプリケーションに対しても非同期アプリケーションに対しても、リクエスト/応答という仕組みを使います。この手法では、ビジネス・アプリケーションの論理や機能は、サービスとして提示されます。アプリケーション開発者やシステム・インテグレーターは、1 つ以上のサービスを合成することによって、そうしたサービスの下にある実装を知らなくてもアプリケーションを構築することができます。この手法を利用すると、切り離された状態にあるデータや、これまでは互換性のなかったレガシー・システムを含めて、ほとんどすべての IT リソースを統合することができます。
SOA の仕組みでは、プロバイダーとコンシューマーは、メッセージを介して通信します。メッセージング・インターフェースは、プラットフォームや言語から独立している必要があります。そのためメッセージは多くの場合、XML スキーマに準拠する XML 文書を使って構築されます。もちろん、アプリケーション・データも、多くの場合は XML フォーマットで保存されます。
XML は基本的な構文を提供するものです。XML を使うことによって、様々な種類のコンピューターやアプリケーション、様々な組織の間で、何層もの変換を通すことなく情報を共有することができます。また XML は、統合されたインフラを構築する基礎となる、共通で標準化されたプラットフォームを提供します。これによって、XML は企業アプリケーションの統合努力をサポートするため、非常に重要です。
XMLBean を利用すると、XML で Java™ プログラミング言語を利用できるようになります。Java プログラミング言語はオープンで公開されている標準に基づくオブジェクト指向言語であり、移植が容易で堅牢、そして信頼性も高いものです。こうした特徴のため、エンターテインメント業界を始めとした多くの業界で広く受け入れられ、実装されています。しかし、XML は Java プログラミング言語と相性が良くありません。この障害を克服するには、XMLBean が最善の選択肢なのです。
XMLBean は XML データのバインディングに使われています。Java アプリケーションは XMLBean を使うことによって、XML をフルに活用することができます。XMLBean は、 XML Schema を使って、 XML インスタンス・データにアクセスして変更するための Java のインターフェースやクラスをコンパイルします。この技術を利用すると、XML Schema をコンパイルして、下記の Java クラスのセットを作り出すことができます。
- 突き当たるすべてのスキーマに対して XMLBean を使う Java クラス
- どのような要求レベルであっても XML データにアクセスできる Java クラス
XMLBean には、データ・バインディング用に次のような API (application program interface) が用意されています。
- XmlObject: XML Schema から Java クラスが生成される場合、Java クラスは XmlObject API を通して生成されます。
- XmlCursor: XmlCursor API によって、XML Infoset に下位レベルでアクセスすることができます。XmlCursor は XML インスタンスでのカーソル位置を表します。
- SchemaType: 基礎となるメタ情報の XML Schema オブジェクト・モデルです。
XMLBean コンパイラーは、XML スキーマのオブジェクト表現を生成します。このオブジェクト表現は、そのスキーマの構造や制約を表現する一連の汎用 Java クラスやインターフェースです。Java クラスやインターフェースが生成されると、このスキーマに準拠する XML インスタンス文書が、その Java クラスやインターフェースにバインドされます。バインディング・プロセスでは、XMLBeans API を使って、実際の XML インスタンス文書の中のデータに対してオブジェクト指向的にアクセスします。
XMLBean を利用することによって、すべてのコードを XML が扱えるように作成する必要がなくなり、単純にアプリケーションの中で XML を使えるようになります。もし XMLBean を使わなかった場合には、スキーマのあらゆる部分を使用し、活用するコードを作成しなくてはなりません。少し考えてみてください。そのスキーマに関するクラスを XMLBean が生成してくれるのです。そうした場合、皆さんが 1 対 1、1 対多、多対多などの関係をいくつ管理すればよいのかを想像してみてください。しかも XMLBean の使い方は非常に簡単なのです。
- XMLBean をインストールする。
- スキーマをコンパイルして JAR (Java Archive) ファイルを生成する。
- スキーマを表現する Java 型に XML インスタンスをバインドするコードを作成する。リスト 1 は、その単純な例です。
リスト 1. XMLBean は容易で、簡単に使うことができます。
File xmlEntertainFile = new File("c:\entertain.xml");
// Bind the instance to the XMLBeans types that were generated.
EntertainDocument entDoc =
EntertainDocument.Factory.parse(xmlEntertainFile);
// Get and then print pieces of the XML instance.
Entertain ent = entDoc.getEntertain();
Entertain[] entArray = ent.getEntertainArray();
for (int i = 0; i < entArray.length; i++)
{
System.out.println(entArray[i]);
}
|
では、こうしたことが、現実の世界とどのように関係するのでしょう。実はコンピューティング・パワーという面に、興味深い変化が現れています。SOA が普及したことによって、コンピューティング・パワーのモデルは、強力なサーバーがハブを構成する従来のハブとスポークのモデルから、ピア・ツー・ピアのモデルに移行しつつあります。後者のモデルでは、ネットワークの末端を組み合わせると、中央にあるサーバーのコンピューティング・パワーを上回ります。つまり中央のサーバーは、実際には単なるネットワーク上のノードにすぎなくなるのです。インターネットの成長と高速インターネット接続によって、エンターテインメント業界もディジタルに移行しつつあります。すべてではないにせよ、大部分の新製品はディジタル的に販売され、配布されており、今後もそれが続くでしょう。
信じられないかもしれませんが、エンターテインメント業界は、悪名高い Napster に見られるように、コンピューティング方式のこうした変化を利用した最初の業界なのです。エンターテインメント業界は、South by Southwest (SXSW, Inc.) によって開催された最近の会議でも見られるように、先駆的な位置を保ち続けています。SXSW は、テキサス州オースチンにある私企業です。この会社は、エンターテインメント業界や関連メディア業界の専門家のために、会議やイベントを開催、提供しています。SXSW が開催した最近の会議 (2006 年 3 月 11 日から 14 日) では、ディジタル制作業者や映画会社が開発や生産性向上に利用できるツールに関して議論が行われました。また、あるパネル・ディスカッション (Looking for XML in All the Wrong Places) では、業界で XML が使われ始めていることを中心議題にとりあげています。この会議の資料にも述べられているように、「誰もが何をするにも XML を使いたがる」状況にあるのです。
特に映画業界は、XML を熱狂的に歓迎しています。映画業界は、劇場などに向けてディジタル製品をパッケージ化し、配布する手法の標準化を大きく進めたことから、そうしたプロセスに XML を使用するようになりました。2005 年の 7 月、DCI (Digital Cinema Initiatives) グループは映画のディジタル化の標準化に向けて、SMPTE (Society of Motion Picture and Television Engineers) の標準化委員会のメンバーと協力しながら、ディジタル映画のためのシステム仕様を公開しました。この仕様には主なスタジオが合意しています。この標準では、パッケージングやファイル・フォーマット、フレーム・レートとタイミング、合成プレイリスト、パッキング・リストなどの領域にXML を使用しています。
今日では、映画業界向けの新たなアプリケーションが、オンライン上に現れつつあります。例えば賞を受賞した Apple のソフトウェア、Final Cut Pro は、オープンで標準に基づく XML Interchange Format をサポートしています。Final Cut Pro では、XML Interchange Format を使ってプロジェクトのあらゆる側面が記述されています。そのため Final Cut Pro では、クリップやビン (bin)、シーケンスから始まって、編集、トランジション、エフェクト、色補正設定やキーフレームに至るまで、開発者やプログラマーが映画設計の細かなポイントにまでアクセスできる仕組みが用意されています。Final Cut Pro で XML を使用することによって、フォーマットはオープンで透過性のあるプレーン・テキストとなるため、様々な種類のツールを使って読み取り、操作することができます。XML Interchange Format を使っているということは、Final Cut Pro のユーザーはプロジェクトに関する包括的な情報を、XML をサポートするどのようなアプリケーションやシステム (データベース・システムやネットワーク・サーバー、HTML ベースの Web オーサリング・ツール、グラフィックス・アプリケーションなど) でも共有できることを意味します 。またこれは、Java ベースのアプリケーションが XMLBean を使って、こうしたデータに容易にアクセスできることも意味します。今や開発者は、Final Cut Pro と完全統合可能な Java ベースのアプリケーションを作成でき、あるいは、時間と費用を大幅に削減できる、カスタマイズされたポスト・プロダクション・システムを構築することもできます。これらはすべて XMLBean のおかげなのです。
当然ですが、ポスト・プロダクションが終わった後に考慮すべき最も重要な事項は、配給方法です。配給をしない限り利益は得られません。Amazon.com のようなエージェントのおかげで、インターネットは様々な形式のメディア製品 (DVD やあらゆる種類の音楽、そしてもちろん本、など) の配布に不可欠の要素となりました。Amazon.com は通常は書店と考えられていますが、実はエンターテインメント業界の配給ネットワークの一部でもあります。XML ベースのプロトコルで構成される AWS (Amazon Web Services) は、Amazon の技術プラットフォームや製品データに直接アクセスするための機能を提供しています。そうした機能は、一連の製品に関する情報の取得からショッピング・カートへのアイテムの追加まで幅広く含み、アプリケーションのパフォーマンスを高めたり、高機能なサーチを追加したりすることができます。AWS を利用することによって Amazon の強力なプラットフォームに直接アクセスでき、それによってアプリケーションの実現や機能向上を図ることができるのです。
エンターテインメント業界にとって、Amazon.com だけが唯一のインターネット配給ソースではありません。Netflix.com のような会社も、配給ネットワークの一部です。Netflix は、RSS (Really Simple Syndication) フィードを使って彼らのコンテンツにアクセスできるようにしています。開発者達は RSS フィードを使うことによって、Netflix が提供する情報を表示するための、新たな、そして興味深い方法を作り出すことができます。そしてもちろん、RSS フィードは Netflix のためだけのものではありません。XML に対応したこのような文書は、ニュース配信会社からコンテンツ・プロバイダーまで、様々なサイトに用意されています。
皆さんが想像されるとおり、こうした新しい手法には非常に大きな利点があるばかりではありません。こうした変化によって、DRM (Digital Rights Management) や違法コピーを取り巻く重要な問題も表面化してきます。新たな配給チャネルが開かれることによって、映画制作会社 (スタジオや独立プロダクション・ハウスなど) は、映画館やテレビ局、ビデオ・レンタル店、またペイ・パー・ビューのプロバイダーなど、彼らの製品を購入するすべての関係者と交渉する必要が出てきます。また業界の何社かは現在、、最新の、そして恐らく最もコスト効果の高い配給方法、つまりインターネットを使って、利益を保ちながらセキュアな方法で製品を配給する方法を見つけようと e コマースの会社と議論を重ねています。関係者がこのように増えることによって、DRM に関連する問題も一層複雑になります。
XMLBean が広く使われるようになるための鍵は、エンターテインメント業界全体に採用されるオープンな XML 標準を確立することです。(この業界で検討中の XML 標準に関する情報は、「参考文献」を参照してください。) しかし、もし皆さんがこの世界で何らかの開発を行う必要があり、またコード作成の基準となる XML 標準を持っている場合には (たとえそれが独自の XML スキーマであったとしても)、XMLBean を活用することができます。(標準的なものか否かによらず) XML を使う限り、XMLBean を使うことで開発をスピードアップでき、テストや維持が必要なコードを削減でき、しかも一般的には、より疎結合で、より高度なサービス指向を実現することができます。また DRM の領域で様々な XML 標準が作成されるようになると、そうした標準を強制し、また標準に従って作業する上で、やはり XMLBean を活用することができます。XMLBean の技術的な利点として、この記事や他の記事でもいくつかをあげていますが、DRM 標準のアプリケーションに対する一貫したアプローチによって、パートナーや配給者、顧客などの間での権利データの展開や交換がスムーズになることに皆さんは気付くと思います。これから DRM の領域で登場する標準として、ODRL (Open Digital Rights Language) があります。この XML スキーマは ODRL のサイトからダウンロードすることができます (「参考文献」を参照してください)。
ODRL のサイトから XML スキーマをダウンロードするには、次の手順に従います。
- XMLBean とコンテナーを、コードを展開する場所にダウンロードしてインストールします (この手順の詳細を説明した記事を「参考文献」にあげてあります)。
- ODRL のサイトから Expression Language Schema と Data Dictionary Schema を取得し、作成したコンテナーにこれらのファイルを保存します。
- XMLBean の Web サイトに行き、XML スキーマ・ファイルから XMLBean を生成します。Java ソース・ファイルを保持するオプションを選択します。生成される xmlTypes.jar ファイルには、 ODRL や XMLBean で作業する際に必要なクラスが含まれています。
XMLBean を使うことには、他にもいくつか利点があります。XMLBean は、今日の市場でおそらく最も成熟した XML オブジェクト・バインディング技術であり、しかも無料です。つまり XML に関して作業を行う場合、XMLBean は真っ先に考慮すべきツールなのです。エンターテインメント業界で XML が急速に使われるようになるにつれ、Java ベースのアプリケーションで XML コンテンツを利用できるという、XMLBean による利点は、より明確になるはずです。
エンターテインメント業界では、様々なレベルで、そして様々なアプリケーションで XML を使っています。Java プログラミング言語がオブジェクト指向言語の世界標準であること、そして XML が最高のデータ・フォーマットになったことから、近いうちに XMLBean は推奨のJava バインディング・ツールとなるでしょう。XMLBean は Java 開発用のクラスを作成できるため、重複した開発を避け、時間や費用を削減することができます。こうしたことから、顧客やベンダーのアプリケーションを開発する上で、XMLBean は非常に効果的な手段と言うことができます。
学ぶために
- 興味深い話題を取り上げた
Web Services Business Strategies and Architectures
(Mike Clark、Peter Fletcher、Jeffrey J. Hansonらによる共著、 2003 年 A-Press 刊) を読み、様々なビジネス問題に XML の手法を応用する方法を学んでください。
-
Web Services and the Real Estate Industry
(Kunal Mittal 著、2002 年Tect 刊) を読み、Web サービスが不動産業界に役立つことを示す詳細なユース・ケースを学んでください。この本には Web サービスのサンプル・コードも提供されています。
- XML Journal のサイトに置かれた、Kunal Mittal 著による記事、「Standards in the Real Estate Industry」を読んでください。
- Oasis Cover Pages サイトから、ODRL に関する詳しい情報を入手してください。
- 「XMLBeanを使ってApache GeronimoにSOAアプリケーションをデプロイする」(Kunal Mittal 著、developerWorks、2006年5月) を読み、XMLBean と Apache Geronimo の使い方を学んでください。
- W3C (World Wide Web Consortium) の Entertainment Sector のサイトから、エンターテインメント業界のための様々な XML 標準について学んでください。
- 2005年7月に実装された DCI (Digital Cinema Initiatives, LLC) の標準、Digital Cinema Systems Specificationを見てください。
-
ODRL Initiative のサイトを訪れ、ディジタル著作権管理 (Digital Rights Management) 表現言語のオープンスタンダード、ODRL (Open Digital Rights Language) Initiative に関して学んでください。
-
developerWorks の XML ゾーンでは、広範な種類の技術記事やヒント、チュートリアル、標準、IBM レッドブックなどが用意されています。
-
XML 1.1 および関連技術において IBM 認証開発者になる方法についてはこちらを参照してください。
-
developerWorks technical events and webcasts で最新情報を入手してください。
製品や技術を入手するために
-
XMLBeans のコピーのダウンロードに関する詳しい情報は、Apache XML Project サイトのこちらを見てください。
議論するために
- XML に関する話題を中心に取り上げる、XML zone discussion forums に参加してください。

Kunal Mittalは、Java技術、J2EE、およびWebサービス技術を専門とするコンサルタントです。こうした分野の書籍の共著や寄稿を行っています。現在、Sony Pictures Entertainmentのポータル・プロジェクトに携わっています。詳細については、著者のWebサイトhttp://www.soaconsultant.comを参照してください。