本稿はWebサービス・アーキテクチャーにおけるグローバリゼーションの要件を示し、グローバリゼーション・アーキテクチャーに基づいた高レベルの対応アーキテクチャーを紹介するため、Webサービス・アーキテクチャーのインプリメンテーションへのグローバリゼーション・ソリューションの導入に関心のある読者が第一歩を踏み出すには有益です。
グローバリゼーションとは、グローバル化されたシステムの設計および実践であり、機能ではありません。むしろ、アーキテクチャーです。グローバルな市場で成功を収めるために、IBMはグローバルなe-businessのサポートに必要なアーキテクチャーを定義して、グローバリゼーションの主要な機能を提供するための高位テクノロジーに焦点を当てます。
グローバリゼーション・アーキテクチャーに従うと、以下のような数多くの利点が得られます。
- 単一のサーバーで複数の言語のアプリケーションをサポートできるため、アプリケーションをグローバルに開発、配備、供給するために必要なコストと時間を削減できます。
- 言語サポートの要件ではなく、ロード・レベルおよびリソースに基づいてサーバーの配備を設計できます。
- 同じバージョンおよび同じパッチ・レベルの製品を、世界中のサーバーで使用できます。これにより、サポート、保守、およびトレーニングのコストを削減できます。
- 各製品が、従来の業界標準に準拠した、一貫した方法でデータ (照合、日付/時刻形式など) を処理できます。したがって、製品に基づいたソリューションにおいて、処理方法の一貫性を保証できます。
IBMのe-ビジネス・アーキテクチャーには、相互に関連する5つの基本要件があります。これらを図1 に示します。
図1. IBMのグローバリゼーション・アーキテクチャー
単一実行 というのは、単一のプログラム・コードベースがすべての言語、国、地域をサポートできるということを意味します。ソフトウェア・プログラムは、単一実行によって、サポートされるすべての国や地域の文化的要件を処理できるように開発しなければなりません。このようにして、文化的および言語的に独立したプログラム・コードベースが、文化的および言語的に依存する情報を実行時に呼び出します。これにより、投入されるコストと労力が削減され、プロセスも簡略化されます。
単一実行は、5つの要件のうち、最も重要なものです。これは、グローバル・システムを効率的かつ正確に設計、構築および保守できるようにするための重要な要件です。
単一実行には、すべての言語をサポートする単一のプログラム・コードベースが必要となるため、プログラム・コードベースは、いずれの言語にサービスを提供するのかを認識しておく必要があります。この情報はロケール の概念から派生します。英語ではロケール (locale) という語は、何かが発生する/した場所のことを意味します。グローバリゼーションにおいては一般的に、言語および国/地域を意味します。例えば、en_USは米国英語を表し、ja_JPは日本国内の日本語、fr_FRはフランス国内のフランス語を意味します。場合によっては、より具体的な情報が必要となるケースがあります。例えばドイツでは、de_DEだけでは不十分であり、テキスト・データを分類する際に、少なくとも2つの方法が使用されます。このような場合は、大抵はロケールの変形 (例えば、現行のJDKモデルではde_DE_Traditional) が使用されるか、ロケールのキーワード検索 (OpenI18Nロケール命名規則de_DE@collation=Traditionalなど) が使用されます。
図2 では、単一実行を行うロケール・モデルがグローバル・ソリューションを提供する方法を、典型的かつ簡単なシナリオで示します。
図2. 単一実行とロケール・モデル
- 3人の顧客がいるとします。彼らは米国人、日本人、フランス人であり、それぞれの指向言語は米国英語、日本国内の日本語、フランス国内のフランス語です。
- アプリケーションは単一実行 をベースとし、顧客の文化的設定を基にバックエンド・データを取得します。
- バックエンド・データ・システムは、ロケール・モデル 、つまりグローバル・アプリケーションにサービスを提供するロケール情報によってカテゴリー化されたデータ・システムを、ベースにします。
- 典型的はデータ・フローは以下のとおりです。
- アプリケーションは顧客からの要求を受け取り、ロケール 情報を取得します。
- 単一実行 により、ロケール 情報がバックエンド・データ・システムに渡されます。
- バックエンド・データ・システムは正確なデータを検索し、そのデータを単一実行 システムへと返信します。
- 単一実行 システムはデータを顧客に返信します。
このようにして、顧客の文化的設定に適切に対応できます。
単一実行システムではすべての言語がサポートされるため、プラットフォーム、プログラム、または言語が何であれ、エンコード・システムによってすべての文字に固有の番号が提供されなければなりません。(エンコード・システムは、それぞれの文字に番号を割り当てて、コンピューターがそれらの文字を処理できるようにするための方法です。)Unicode (参考文献を参照) は、このエンコード・システムを定義するために開発されました。Unicodeは、文字を番号にマッピングする単一の一貫したスキーマを提供して、世界中のあらゆる言語を表現することができます。Unicodeにより、アプリケーションはマルチリンガル・サポート機能を提供できます。
単一実行できるということは、複数のロケールを対象として単一かつ唯一の処理を実行できるということです。したがって、ロケールに特有のプログラム・データのそれぞれのセットを処理するための、標準化されたアプローチ (ローカリゼーション・パック と呼ばれます) が必要となります。ローカリゼーション・パックにはアプリケーション依存型およびアプリケーション独立型 という2種類のタイプがあります。前者はメニュー、ダイアログ、および他のユーザー・インターフェース・エレメントであり、後者は照合テーブル、翻字規則、および日付や時刻エレメントの名前などを扱います。ローカリゼーション・パック・マネージャー は、ローカリゼーション・パック・リソースのロケーションやそれらのロード、およびそれらへのアクセスを管理するモジュールです。図3 にそれらの関係を示します。
図3. ローカリゼーション・パックとローカリゼーション・パック・マネージャー
非常に簡単な例でこの概念を説明します。アプリケーション・プログラムで、単一のキー (msg1) が単一のストリング値 (Hello) に関連付けられています。多くの言語のバージョンが必要であるため、図4 のような、対応するローカリゼーション・パックを作成することになります。
図4. Helloメッセージのローカリゼーション・パック
グローバリゼーションでは、キーボード、マウス、または他のデバイスを用いて様々な言語のテキストを入力する機能と、各言語のテキストを画面やプリンターに適切に出力する機能も必要となります。言語サービスを用いて、音声入力のような、よりユーザー・フレンドリーなインターフェースをエンド・ユーザーに提供することもできます。一般的なオペレーティング・システムでは、これらの機能がサポートされています。通常は、アプリケーションでこのサポートを直接考慮する必要はありません。
TCP/IPによってインターネットが実現され、HTTPによってワールド・ワイド・ウェブが実現されたのと同様に、オープン・スタンダードのWebサービスによって動的なe-businessが実現されます。Webサービスを使用する動的なe-businessアプリケーションは、オープン・ネットワークを介することで、ビジネスをグローバルに展開できる可能性を秘めています。従ってWebサービスは、動的e-businessをグローバルにサポートできなければなりません。この要件を満たすには、前セクションで紹介したグローバリゼーション・アーキテクチャーの基本エレメントをWebサービスに適用する必要があります。
Webサービスの分野においては、その規格だけでなくテクノロジーも急速に変化しています。このセクションでは、基本アーキテクチャーの概要を眺めるに留めます。
Webサービスのグローバリゼーションは、図5 に示すようなものです。Universal Description, Discovery, and Integration (UDDI) は、Webサービスの検出を記述し、可能にする規格ベースの仕様です。これにより、xml: lang= ... という属性を使用して、マルチリンガル・ビジネスを構築することができます。サービスのインターフェースを作成するために使用する言語であるWeb Services Description Language (WSDL) は、グローバリゼーションに依存しません。これは、サービス・プロバイダーおよびサービス要求元に対し、物理バインディングのみを処理するためです。Webサービス・システムでは、データの送受信にSOAPプロトコルが使用され、このプロトコルでは、データの転送でXMLを使用します。XMLは、Unicodeですべて表現できます。(W3Cで定義された通り、SOAPは、構造化された情報を非集中型の分散環境で送受信することを目的とする、軽サイズのプロトコルです。詳細は参考文献を参照してください。)Webサービス・システムでグローバルなビジネスを行うには、サービス・プロバイダーとサービス要求元がともに、図1 で示したIBMの基本グローバリゼーション・アーキテクチャーに基づいて、グローバリゼーションに対応している必要があります。
図5. グローバリゼーションWebサービス・アーキテクチャー
グローバルWebサービス・システムの基本エレメントは、グローバル・アプリケーションの場合と同様です。
Webサービス・システムには、複数のマシンで実行される数多くのプログラムが含まれます。Webサービスをグローバルに配備するには、システムの各プログラム (サービスの配備自体も含む) が単一実行のポリシーに厳密に従う必要があります。グローバル・アプリケーションのベースが単一実行であるのと同様に、Webサービス・システムのベースも単一実行です。
グローバルWebサービス・アーキテクチャーでは、この要件に最も焦点を当てる必要があります。Webサービス・システムでロケール・モデルを機能させるには、エンド・ユーザーのロケール情報の伝送方法が一貫していて標準化されている必要があり、一連のサービス・プロバイダーを正常に通過できなければなりません。(ロケールの定義は、言語の識別タグを定義するインターネット標準のRFC 1766に従います。国別コードについてはISO 3166に従い、言語コードについてはISO 639に従います。現時点でIBMは、エンド・ユーザーのロケール定義をSOAPヘッダーに組み込む作業に取り組んでいます。)以下に1つのシナリオを例示します。このシナリオでは、旅行代理店のサービス・システムがエンド・ユーザーの要求を受信してから、そのエンド・ユーザーに代わって航空会社のサービス・システムと連絡を取ります。航空会社のサービス・システムは、エンド・ユーザーの文化的設定 (日時表記、通貨表記、寸法表記など) に応じた予約メッセージを返す必要があります。
グローバル環境でWebサービスをインプリメントするための方法は、他にもあります。しかし、基本的な作業パターンは以下と同様です。
- UDDIを使用してマルチリンガル・ビジネスを公開する。
- マルチリンガル・ビジネスを定義する。
- マルチリンガル・ビジネスを公開する。
- マルチリンガル・ビジネスを検出する。
- SOAPを使用してマルチリンガル・ビジネスをインプリメントする。
- マルチリンガル環境を構築する。
- マルチリンガルWebサービスをインプリメントする。
- サービス・プロバイダーは、マルチリンガル・ビジネスの運用をサポートするために、インターフェースにロケール情報を提供する必要があります。(SOAPでは、ロケール/言語情報の通信を行うための規格が、現時点ではありません。この規格には、使用可能になり次第、切り替えることができます。)
- サービス要求元は通常、以下を行います。
- ユーザーの設定言語を判別する。
- マルチリンガル・サポートのサービス・プロバイダーを呼び出し、ユーザーの言語設定情報を渡す。
- 指定された言語で、結果をユーザーに戻す。
SOAPではデータを転送するためにXMLを使用します。そのため、SOAPはプラットフォームとプログラミング言語には依存しません。したがって、Webサービスで送受信されるデータはすべてXMLで表されます。XMLはすべてUnicodeで表現され、それはマルチリンガル・データにおいて重要な要素となります。つまり、これらの規格により、マルチリンガル・サポートが保証されるのです。
XMLにはlang といったタグがあり、これらは特定のフィールドにラベルを付加して、説明文のような言語的に意味のある情報の言語設定を指示するために使用されます。そのため、Webサービスでは実際には、グローバル・データの表記処理が再度施行されます。図6 に例を示します。
図6. マルチリンガル・ビジネスの説明
単一実行の必要性がWebサービス・アーキテクチャーを構成するすべてのプログラムにあてはまるのと同様に、ローカリゼーション・パックの必要性もすべてのプログラムにあてはまります。この要素は、通常のアプリケーションに対する場合にも、Webサービスに対する場合にも同じものです。図7 では、航空会社がWebサービス・システムでマルチリンガル・サービスを提供しようとしています。
図7. サービス・プロバイダーのローカリゼーション・パック
Webサービスにおいては、入出力に関する特別な要件はありません。これは、通常はこの要件がオペレーティング・システムまたは他のプログラムによって処理され、ユーザーの目には直接触れることがないためです。
グローバリゼーション・アーキテクチャー、単一実行、ロケール・モデル、マルチリンガル・データ、ローカリゼーション・パック、およびマルチリンガル・データの入出力についての基本要件は、Webサービス・アーキテクチャーでのグローバリゼーション・ソリューションを考慮する際に適用できます。Webサービスは迅速に変化し、その関連分野は広大です。本稿では、Webサービスにおけるグローバリゼーションのほんの基礎を示したに過ぎません。
- Xiao Hui Zhu氏、Ting Yong Zhu氏、Yang Wang氏 (IBM WebSphere、2002年11月) による『Enabling Web services for globalization using WebSphere Application Server Version 4.0』をご覧ください。
- IBM Redbook『E-business globalization solution design guide: Getting started』をご確認ください。
-
Unicode consortium をご参照ください。
-
SOAP の詳細についてご参照ください。
- IBMのグローバリゼーションに関するサイトについては、http://www-3.ibm.com/software/globalization/ をご覧ください。
Xiao Hui Zhu氏は、中国のIBM Software Development Labのソフトウェア・エンジニアです。彼女は1994年11月にIBMに入社し、Globalization機関のプロジェクト・マネージャーとしてキャリアを開始し、テスター、設計者、コーディネーター、コンサルタントなどの様々な役職を経験しました。現在、彼女は上海のGlobalization Certification Laboratoryのテクニカル・リーダーです。本稿についてのコメントをお寄せください。彼女の連絡先はzhuxiaoh@cn.ibm.com です。ご連絡をお待ちしております。