本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

Webサービスのグローバリゼーション・モデル

Xiao Zhu, Globalization Certification Laboratory, IBM China Software Development Lab
Xiao Hui Zhu氏は、中国のIBM Software Development Labのソフトウェア・エンジニアです。彼女は1994年11月にIBMに入社し、Globalization機関のプロジェクト・マネージャーとしてキャリアを開始し、テスター、設計者、コーディネーター、コンサルタントなどの様々な役職を経験しました。現在、彼女は上海のGlobalization Certification Laboratoryのテクニカル・リーダーです。本稿についてのコメントをお寄せください。彼女の連絡先はzhuxiaoh@cn.ibm.com です。ご連絡をお待ちしております。

概要: グローバリゼーションとは、単一のサーバーまたはエンド・ユーザーのマシンで実行されているソフトウェアの単一のインスタンスが、マルチリンガル・データを処理して、文化的に正しい情報 (照合、日付、数字フォーマットなど) を表示できるように、システム、ソフトウェア、サービス、およびプロシージャーを適切に設計して実践することです。グローバリゼーションは、すでにWebアプリケーションにおいて考慮すべき事項となっています。動的なe-businessを可能にするオープン・スタンダードのWebサービスは、ネットワークを介して世界中の様々なユーザーとの取り引きを可能にするので、グローバルなビジネスを行うための強力な手段です。

本稿ではまず、グローバリゼーション・アーキテクチャーの基本エレメントについて説明してから、これらをWebサービス・アーキテクチャーへと適用していきます。これらの概念を明示するために、本稿ではいくつかの例を挙げ、詳細についての参照資料もご紹介します。

日付:  2003年 6月
レベル:  初級 この記事の原文:  英語
アクティビティー: 915 ビュー
お気軽にご意見・ご感想をお寄せください: 


対象とする読者

本稿はWebサービス・アーキテクチャーにおけるグローバリゼーションの要件を示し、グローバリゼーション・アーキテクチャーに基づいた高レベルの対応アーキテクチャーを紹介するため、Webサービス・アーキテクチャーのインプリメンテーションへのグローバリゼーション・ソリューションの導入に関心のある読者が第一歩を踏み出すには有益です。


グローバリゼーション・アーキテクチャー

グローバリゼーションとは、グローバル化されたシステムの設計および実践であり、機能ではありません。むしろ、アーキテクチャーです。グローバルな市場で成功を収めるために、IBMはグローバルなe-businessのサポートに必要なアーキテクチャーを定義して、グローバリゼーションの主要な機能を提供するための高位テクノロジーに焦点を当てます。

グローバリゼーション・アーキテクチャーに従うと、以下のような数多くの利点が得られます。

  • 単一のサーバーで複数の言語のアプリケーションをサポートできるため、アプリケーションをグローバルに開発、配備、供給するために必要なコストと時間を削減できます。
  • 言語サポートの要件ではなく、ロード・レベルおよびリソースに基づいてサーバーの配備を設計できます。
  • 同じバージョンおよび同じパッチ・レベルの製品を、世界中のサーバーで使用できます。これにより、サポート、保守、およびトレーニングのコストを削減できます。
  • 各製品が、従来の業界標準に準拠した、一貫した方法でデータ (照合、日付/時刻形式など) を処理できます。したがって、製品に基づいたソリューションにおいて、処理方法の一貫性を保証できます。

IBMのe-ビジネス・アーキテクチャーには、相互に関連する5つの基本要件があります。これらを図1 に示します。


図1. IBMのグローバリゼーション・アーキテクチャー
IBMのグローバリゼーション・アーキテクチャー

単一実行 (single executable)

単一実行 というのは、単一のプログラム・コードベースがすべての言語、国、地域をサポートできるということを意味します。ソフトウェア・プログラムは、単一実行によって、サポートされるすべての国や地域の文化的要件を処理できるように開発しなければなりません。このようにして、文化的および言語的に独立したプログラム・コードベースが、文化的および言語的に依存する情報を実行時に呼び出します。これにより、投入されるコストと労力が削減され、プロセスも簡略化されます。

単一実行は、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メッセージのローカリゼーション・パック
Helloメッセージのローカリゼーション・パック

マルチリンガル・データの入出力

グローバリゼーションでは、キーボード、マウス、または他のデバイスを用いて様々な言語のテキストを入力する機能と、各言語のテキストを画面やプリンターに適切に出力する機能も必要となります。言語サービスを用いて、音声入力のような、よりユーザー・フレンドリーなインターフェースをエンド・ユーザーに提供することもできます。一般的なオペレーティング・システムでは、これらの機能がサポートされています。通常は、アプリケーションでこのサポートを直接考慮する必要はありません。


Webサービスのグローバリゼーション・モデル

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サービス・アーキテクチャーでは、この要件に最も焦点を当てる必要があります。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氏は、中国のIBM Software Development Labのソフトウェア・エンジニアです。彼女は1994年11月にIBMに入社し、Globalization機関のプロジェクト・マネージャーとしてキャリアを開始し、テスター、設計者、コーディネーター、コンサルタントなどの様々な役職を経験しました。現在、彼女は上海のGlobalization Certification Laboratoryのテクニカル・リーダーです。本稿についてのコメントをお寄せください。彼女の連絡先はzhuxiaoh@cn.ibm.com です。ご連絡をお待ちしております。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=SOA and Web services
ArticleID=242128
ArticleTitle=Webサービスのグローバリゼーション・モデル
publish-date=062003
author1-email=zhuxiaoh@cn.ibm.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。