(57)【要約】【課題】ＣＯＲＢＡに準拠するクライアント・サーバ・システムで、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うこと。【解決手段】オブジェクトリファレンス７００より、送信先のＣＯＲＢＡサーバ３００で使用可能なサーバＮＣＳ（サーバ文字コード情報）を取得するクライアントオブジェクト１０１と、ＣＯＲＢＡクライアント１００で使用可能であってオブジェクトリファレンス７００に未登録のクライアントＮＣＳ（クライアント文字コード情報）とサーバＮＣＳ（サーバ文字コード情報）との対応関係を表すコードセットレジストリ変換テーブル１０３を参照し、クライアントＮＣＳをサーバＮＣＳに変換した後、ＣＯＲＢＡサーバ３００へ送信されるＧＩＯＰメッセージ４１０にサーバＮＣＳを設定するクライアントＯＲＢ１０２とを備えている。【選択図】　　　図３
2004021562.tif 000002
【特許請求の範囲】
【請求項１】
ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換プログラムであって、
コンピュータを、
オブジェクトリファレンスより、送信先のＣＯＲＢＡサーバで使用可能なサーバ文字コード情報を取得するオブジェクトリファレンス文字コード情報取得手段、
前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換手段、
前記ＣＯＲＢＡクライアントから前記ＣＯＲＢＡサーバへ送信される通信データに前記変換手段により変換されたサーバ文字コード情報を設定する設定手段、
として機能させるためのクライアント文字コード変換プログラム。
【請求項２】
前記コンピュータを、ＣＯＲＢＡサーバより受信された通信データから前記ＣＯＲＢＡサーバで設定されたサーバ文字コード情報を取得する通信データ文字コード情報取得手段として機能させ、前記変換手段は、前記テーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記サーバ文字コード情報を前記クライアント文字コード情報に変換することを特徴とする請求項１に記載のクライアント文字コード変換プログラム。
【請求項３】
ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換プログラムであって、
コンピュータを、
ＣＯＲＢＡサーバより受信された通信データから前記ＣＯＲＢＡサーバで設定されたサーバ文字コード情報を取得する通信データ文字コード情報取得手段、
前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記サーバ文字コード情報を前記クライアント文字コード情報に変換する変換手段、
として機能させるためのクライアント文字コード変換プログラム。
【請求項４】
ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡサーバに適用されるサーバ文字コード変換プログラムであって、
前記コンピュータを、
ＣＯＲＢＡクライアントより受信された通信データから前記ＣＯＲＢＡクライアントで設定されたクライアント文字コード情報を取得する通信データ文字コード情報取得手段、
前記ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報と前記ＣＯＲＢＡサーバで使用可能なサーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換手段、
として機能させるためのサーバ文字コード変換プログラム。
【請求項５】
前記コンピュータを、ＣＯＲＢＡクライアントより受信された通信データから取得された前記クライアント文字コード情報を保存する保存手段、前記通信データの応答送信時に、保存された前記クライアント文字コード情報を通信データに設定し、該通信データを前記ＣＯＲＢＡクライアントへ送信する送信手段、として機能させるための請求項４に記載のサーバ文字コード変換プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＯＲＢＡ（Ｃｏｍｍｏｎ　Ｏｂｊｅｃｔ　Ｒｅｑｕｅｓｔ　Ｂｒｏｋｅｒ　Ａｒｃｈｉｔｅｃｔｕｒｅ）における文字コードセット変換に用いられるクライアント文字コード変換プログラムおよびサーバ文字コード変換プログラムに関するものであり、特に、ＣＯＲＢＡに準拠するクライアント・サーバ・システムで、オブジェクトリファレンスに未登録の文字コード情報（例えば、ベンダ固有文字コードセット）を用いた文字コード情報変換を行うことができるクライアント文字コード変換プログラムおよびサーバ文字コード変換プログラムに関するものである。
【０００２】
【従来の技術】
ＣＯＲＢＡは、標準化団体ＯＭＧ（Ｏｂｊｅｃｔ　Ｍａｎａｇｅｍｅｎｔ　Ｇｒｏｕｐ）が定める異機種間接続のための標準化仕様であり、異機種間の連携プロトコルと分散アプリケーション構築のための各種ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ　Ｉｎｔｅｒｆａｃｅ）を規定するものである。
【０００３】
簡単に言えば、ＣＯＲＢＡは、分散システム環境でＣＯＲＢＡに準拠したクライアント（以下、ＣＯＲＢＡクライアント）が、ＣＯＲＢＡに準拠したサーバ（以下、ＣＯＲＢＡサーバ）内のオブジェクト（例えば、アプリケーションプログラム）にアクセスするためのメカニズムを提供する標準技術である。
【０００４】
ここで、ＣＯＲＢＡにおけるオブジェクトとは、クライアントから要求することができる一つまたは複数のサービスを提供する、識別可能にカプセル化されたエンティティをいう。
【０００５】
図１３は、従来のＣＯＲＢＡに準拠するクライアント・サーバ・システムの構成を示すブロック図である。同図において、ＣＯＲＢＡクライアント１０は、クライアントオブジェクト１１およびクライアントＯＲＢ１２を備えている。クライアントオブジェクト１１は、各種処理や通信を実行するためのアプリケーションプログラム等である。
【０００６】
クライアントＯＲＢ（Ｏｂｊｅｃｔ　Ｒｅｑｕｅｓｔ　Ｂｒｏｋｅｒ：分散オブジェクト間通信機構）１２は、クライアントオブジェクト１１とサーバオブジェクト３１との通信を仲介するソフトウェア・バスであり、ネットワーク２０を介してネーミングサービスサーバ５０およびＣＯＲＢＡサーバ３０へアクセスする。
【０００７】
具体的には、クライアントＯＲＢ１２は、特定のオペレーティングシステム、特定のプログラム言語、特定のアーキテクチャに依存しない中立的なストリーム形式のデータ（後述するＧＩＯＰ（Ｇｅｎｅｒａｌ　Ｉｎｔｅｒ−ＯＲＢ　Ｐｒｏｔｏｃｏｌ）メッセージ４０）を用いてネットワーク２０を介してサーバＯＲＢ３２との間で通信を行う機能を備えている。
【０００８】
ＣＯＲＢＡサーバ３０は、サーバオブジェクト３１およびサーバＯＲＢ３２を備えている。サーバオブジェクト３１は、各種処理や通信を実行するためのアプリケーションプログラム等である。サーバＯＲＢ３２は、ネットワーク２０を介してクライアントＯＲＢ１２にアクセスされ、クライアントオブジェクト１１とサーバオブジェクト３１との通信を仲介するソフトウェア・バスである。
【０００９】
このサーバＯＲＢ３２も、特定のオペレーティングシステム、特定のプログラム言語、特定のアーキテクチャに依存しない中立的なストリーム形式のデータ（後述するＧＩＯＰメッセージ４０）を用いてネットワーク２０を介してクライアントＯＲＢ１２との間で通信を行う機能を備えている。
【００１０】
ここで、ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおいて、オペレーティングシステム、プラットフォームやプログラム開発言語の違いは、取り扱うことができる文字コード体系の違いとなって顕れる。現在、文字コード体系としては、図１４に示したように、複数種類の文字コードセットおよびコードセットレジストリがある。
【００１１】
文字コードセットは、一定の基準により付けられた文字コードの集合である。文字コードは、コンピュータで扱われる文字に付けられた識別番号である。コードセットレジストリは、対応する文字コードセットを一意に特定するための値である。
【００１２】
図１４によれば、ＩＳＯ８８５９−１（Ｌａｔｉｎ−１）、ＩＳＯ／ＩＥＣ　１０６４６−１ＵＣＳ２−１およびＩＳＯ／ＩＥＣ１０６４６−１ＵＣＳ４−１は、ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ｏｒｇａｎｉｚａｔｉｏｎ　Ｆｏｒ　Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ）で標準化された文字コードセットである。また、ＪＩＳおよびＪＩＳ日本語ＥＵＣは、ＪＩＳ（Ｊａｐａｎ　Ｉｎｄｕｓｔｒｉａｌ　Ｓｔａｎｄａｒｄ）により標準化された文字コードセットである。
【００１３】
以下では、上述した文字コードセットがＩＳＯやＪＩＳ等の公益機関により標準化されたものであるため、これらの文字コードセットを標準文字コードセットと称する。これらの標準文字コードセットおよびコードセットレジストリは、国際的な標準化団体であるＯＳＦ（Ｏｐｅｎ　Ｓｏｆｔｗａｒｅ　Ｆｏｕｎｄａｔｉｏｎ）により統括管理されており、オブジェクトリファレンスデータベース５１に格納されたオブジェクトリファレンスに含まれている。
【００１４】
また、文字コードセットには、標準文字コードセットの他に、ベンダ固有文字コードセットが存在する。ベンダ固有文字コードセットは、コンピュータハードウェア／ソフトウェアの製造／販売者であるベンダが、標準文字コードセットをベースに、ベンダごとに必要な文字（機種依存文字等）に対応する文字コードを追加したものであり、ベンダ固有の文字コードセットである。
【００１５】
図１４によれば、Ｂ社ＪＩＳは、Ｂ社（ベンダ）で用いられるベンダ固有文字コードセットである。一方、Ａ社日本語ＥＵＣ　その１、Ａ社日本語ＥＵＣ　その２、・・・、Ａ社ＥＢＣＤＩＣ（英小文字）は、Ａ社（ベンダ）で用いられるベンダ固有文字コードセットである。
【００１６】
文字コード体系は、ＣＯＲＢＡクライアント１０やＣＯＲＢＡサーバ３０で使用される上述したオペレーティングシステム等に依存する。従って、ＣＯＲＢＡクライアント１０とＣＯＲＢＡサーバ３０とにおいては、ベンダやオペレーティングシステム、プラットフォームやプログラム開発言語が異なる場合があり、それぞれの文字コード体系が異なる場合も珍しくない。
【００１７】
同図に示した例では、ＣＯＲＢＡクライアント１０では、クライアントＮＣＳ（Ｎａｔｉｖｅ　Ｃｏｄｅ　Ｓｅｔ）として標準文字コードセットであるＪＩＳ（０ｘ０００３０００１）が用いられている。一方、ＣＯＲＢＡサーバ３０では、サーバＮＣＳとして標準文字コードであるＩＳＯ／ＩＥＣ　１０６４６−１ＵＣＳ２−１（０ｘ０００１０１００）が用いられており、ＣＣＳ（Ｃｏｎｖｅｒｓｉｏｎ　Ｃｏｄｅ　Ｓｅｔ）として標準文字コードセットであるＪＩＳ（０ｘ０００３０００１）が用いられている。
【００１８】
ＣＯＲＢＡクライアント１０とＣＯＲＢＡサーバ３０との間で、異なる標準文字コードセット（コードセットレジストリ）が用いられている場合には、後述するコードセット変換についての折衝が行われる。
【００１９】
図１３に戻り、ＣＯＲＢＡクライアント１０において、クライアントＮＣＳは、クライアントオブジェクト１１で使用されるコードセットレジストリ（文字コードセット）である。
【００２０】
一方、ＣＯＲＢＡサーバ３０において、サーバＮＣＳは、サーバオブジェクト３１で使用されるコードセットレジストリ（文字コードセット）である。ＣＣＳは、サーバＮＣＳとの間で変換可能なコードセットレジストリ（文字コードセット）である。
【００２１】
また、クライアントＯＲＢ１２とサーバＯＲＢ３２との間では、上述したように中立的なデータであるＧＩＯＰメッセージ４０がやりとりされる。このＧＩＯＰメッセージ４０は、図１５（ａ）に示したフォーマットとされている。同図に示したようにＧＩＯＰメッセージのフォーマットは、ＧＩＯＰヘッダ、リクエストヘッダおよびリクエストボディという情報から構成されている。
【００２２】
リクエストヘッダは、図１５（ｂ）に示したように、ｒｅｑｕｅｓｔ＿ｉｄ（リクエストＩＤ）、ｒｅｓｐｏｎｓｅ＿ｆｌａｇｓ（レスポンスフラグ）、ｔａｇｅｔ、ｏｐｅｒａｔｉｏｎ、ｓｅｒｖｉｃｅ＿ｃｏｎｔｅｘｔという情報から構成されている。また、ｓｅｒｖｉｃｅ＿ｃｏｎｔｅｘｔは、図１５（ｃ）に示したように、ｃｏｎｔｅｘｔ＿ｉｄ、ｃｏｎｔｅｘｔ＿ｄａｔａ長、ＴＣＳ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｄｅ　Ｓｅｔ）という情報から構成されている。
【００２３】
ここで、図１５（ｃ）に示したＴＣＳは、特定のオペレーティングシステム、特定のプログラム言語、特定のアーキテクチャに依存しない中立的なコードセットレジストリ（文字コードセット）である。
【００２４】
図１３に戻り、ネーミングサービスサーバ５０は、ＣＯＲＢＡにおけるネーミングサービスをＣＯＲＢＡクライアント１０へ提供するサーバであり、サーバオブジェクト３１を名前で管理する機能を備えている。
【００２５】
このネーミングサービスによれば、クライアントオブジェクト１１がサーバオブジェクト３１にアクセスする場合には、サーバオブジェクト３１の位置ではなく、名前でアクセスできるようになるため、サーバオブジェクト３１の物理的な位置を意識する必要がない。
【００２６】
具体的には、ネーミングサービスサーバ５０は、クライアントオブジェクト１１から問い合わせがあった場合、オブジェクトリファレンスデータベース５１からオブジェクトリファレンスを読み出し、これをクライアントオブジェクト１１へ返すことにより、ネーミングサービスを提供する。
【００２７】
このオブジェクトリファレンスは、サーバオブジェクト３１を名前で一意に識別するための情報である。具体的には、オブジェクトリファレンスは、ＩＯＲ（Ｉｎｔｅｒｏｐｅｒａｂｌｅ　Ｏｂｊｅｃｔ　Ｒｅｆｅｒｅｎｃｅ）ヘッダ、ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）、ホスト名、ＰＯＲＴ番号、オブジェクトキー等や、上述したサーバＮＣＳ、ＣＣＳという情報から構成されている。
【００２８】
ＩＯＲヘッダは、オブジェクトリファレンスのヘッダ情報である。ＩＤは、オブジェクトリファレンスを識別するための識別子情報である。ホスト名は、オブジェクトを有するホストの名称である。但し、ホスト名には、ＣＯＲＢＡサーバ３０のＩＰアドレスがそのまま設定されることもある。
【００２９】
ＰＯＲＴ番号は、サーバオブジェクト３１を特定するためのポート番号である。オブジェクトキーには、サーバＯＲＢに対応するベンダの独自情報が設定される。従って、図１３の場合、オブジェクトキーには、サーバＯＲＢ３２に対応するベンダ独自情報が設定される。
【００３０】
ここで、クライアントＯＲＢ１２は、オブジェクトリファレンスから得られるサーバＮＣＳおよびＣＣＳに基づいてＴＣＳを決定し、このＴＣＳをＧＩＯＰメッセージ４０に埋め込み、サーバＯＲＢ３２へ送信する。
【００３１】
つぎに、上述したクライアント・サーバ・システムにおけるコードセット変換の折衝について説明する。図１３において、クライアントオブジェクト１１は、ネットワーク２０を介してネーミングサービスサーバ５０へアクセスし、サーバオブジェクト３１に対応するオブジェクトリファレンス（サーバＮＣＳおよびＣＣＳを含む）を要求する。
【００３２】
これにより、ネーミングサービスサーバ５０は、オブジェクトリファレンスデータベース５１から当該オブジェクトリファレンスを読み出し、これをクライアントオブジェクト１１へ送信する。
【００３３】
そして、クライアントオブジェクト１１は、上記オブジェクトリファレンスを取得し、クライアントＮＣＳ（０ｘ０００３０００１（ＪＩＳ））に対応する送信データと、取得したオブジェクトリファレンスとをクライアントＯＲＢ１２に渡す。
【００３４】
クライアントＯＲＢ１２は、オブジェクトリファレンスからサーバＮＣＳ（０ｘ０００１０１００（ＩＳＯ／ＩＥＣ　１０６４６−１ＵＣＳ２−１））およびＣＣＳ（０ｘ０００３０００１（ＪＩＳ））を取得する。
【００３５】
つぎに、クライアントＯＲＢ１２は、クライアントＮＣＳ（０ｘ０００３０００１（ＪＩＳ））と、サーバＮＣＳ（０ｘ０００１０１００（ＩＳＯ／ＩＥＣ　１０６４６−１ＵＣＳ２−１））およびＣＣＳ（０ｘ０００３０００１（ＪＩＳ））との比較結果に基づいて、ＧＩＯＰメッセージ４０に設定するＴＣＳを決定するというＴＣＳ決定処理を実行する。
【００３６】
具体的には、第１ステップでは、クライアントＯＲＢ１２は、クライアントＮＣＳ（０ｘ０００３０００１（ＪＩＳ））と、サーバＮＣＳ（０ｘ０００１０１００（ＩＳＯ／ＩＥＣ　１０６４６−１ＵＣＳ２−１））とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。なお、第１ステップの判断結果が「Ｙｅｓ」である場合、クライアントＯＲＢ１２は、当該サーバＮＣＳをＴＣＳとして決定する。
【００３７】
上記第１ステップの判断結果が「Ｎｏ」である場合、第２ステップでは、クライアントＯＲＢ１２は、クライアントＮＣＳ（０ｘ０００３０００１（ＪＩＳ））と、ＣＣＳ（０ｘ０００３０００１（ＪＩＳ））とが一致するか否かを判断し、この場合、判断結果を「Ｙｅｓ」として、当該ＣＣＳをＴＣＳとして決定する。なお、第２ステップの判断結果が「Ｎｏ」である場合、コードセット変換が不可であるためエラーとされる。
【００３８】
そして、クライアントＯＲＢ１２は、ＴＣＳ決定処理で決定されたＴＣＳおよび送信データをＧＩＯＰメッセージ４０に設定した後、ネットワーク２０を介してＧＩＯＰメッセージ４０をサーバＯＲＢ３２へ送信する。
【００３９】
サーバＯＲＢ３２は、ＧＩＯＰメッセージ４０を受信すると、ＧＩＯＰメッセージ４０に設定されたＴＣＳがサーバＮＣＳと一致する場合、当該ＴＣＳをサーバＮＣＳとして、受信データ（上記受信された送信データ）およびサーバＮＣＳをサーバオブジェクト３１へ渡す。
【００４０】
一方、ＧＩＯＰメッセージ４０に設定されたＴＣＳがＣＣＳと一致する場合、サーバＯＲＢ３２は、当該ＴＣＳ（ＣＣＳ）をサーバＮＣＳに変換した後、受信データおよびサーバＮＣＳをサーバオブジェクト３１へ渡す。
【００４１】
【発明が解決しようとする課題】
ところで、前述したように、従来のＣＯＲＢＡに準拠するクライアント・サーバ・システムにおいては、ＣＯＲＢＡクライアント１０およびＣＯＲＢＡサーバ３０の双方で標準文字コードセットが用いられている場合、上述した文字コードセット変換により、問題なく動作する。
【００４２】
しかしながら、従来では、標準文字コードセットに代えてベンダ固有文字コードセットが用いられており、かつオブジェクトリファレンスに当該ベンダ固有文字コードセット（文字コード情報）が登録されていない場合、相手側が、当該ベンダ固有文字コードセット（文字コード情報）を未知の文字コードセット（文字コード情報）として認識するため、文字コードセット変換（文字コード情報変換）ができず、エラーが発生するという問題があった。
【００４３】
本発明は、上記に鑑みてなされたもので、ＣＯＲＢＡに準拠するクライアント・サーバ・システムで、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができるクライアント文字コード変換プログラムおよびサーバ文字コード変換プログラムを提供することを目的とする。
【００４４】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換プログラムであって、コンピュータを、オブジェクトリファレンスより、送信先のＣＯＲＢＡサーバで使用可能なサーバ文字コード情報を取得するオブジェクトリファレンス文字コード情報取得手段、前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換手段、前記ＣＯＲＢＡクライアントから前記ＣＯＲＢＡサーバへ送信される通信データに前記変換手段により変換されたサーバ文字コード情報を設定する設定手段、として機能させるためのクライアント文字コード変換プログラムである。
【００４５】
この発明によれば、オブジェクトリファレンスより、送信先のＣＯＲＢＡサーバで使用可能なサーバ文字コード情報を取得し、ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報とサーバ文字コード情報との対応関係を表すテーブルを参照し、クライアント文字コード情報をサーバ文字コード情報に変換し、ＣＯＲＢＡクライアントからＣＯＲＢＡサーバへ送信される通信データに、変換されたサーバ文字コード情報をＣＯＲＢＡクライアント側で設定することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができる。
【００４６】
また、本発明は、ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換プログラムであって、コンピュータを、ＣＯＲＢＡサーバより受信された通信データから前記ＣＯＲＢＡサーバで設定されたサーバ文字コード情報を取得する通信データ文字コード情報取得手段、前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記サーバ文字コード情報を前記クライアント文字コード情報に変換する変換手段、として機能させるためのクライアント文字コード変換プログラムである。
【００４７】
この発明によれば、ＣＯＲＢＡサーバより受信された通信データからＣＯＲＢＡサーバで設定されたサーバ文字コード情報をクライアント文字コード情報にＣＯＲＢＡクライアント側で変換することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができる。
【００４８】
また、本発明は、ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡサーバに適用されるサーバ文字コード変換プログラムであって、前記コンピュータを、ＣＯＲＢＡクライアントより受信された通信データから前記ＣＯＲＢＡクライアントで設定されたクライアント文字コード情報を取得する通信データ文字コード情報取得手段、前記ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報と前記ＣＯＲＢＡサーバで使用可能なサーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換手段、として機能させるためのサーバ文字コード変換プログラムである。
【００４９】
この発明によれば、ＣＯＲＢＡクライアントより受信された通信データからＣＯＲＢＡクライアントで設定されたクライアント文字コード情報を取得し、ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報とサーバ文字コード情報との対応関係を表すテーブルを参照し、クライアント文字コード情報をサーバ文字コード情報にＣＯＲＢＡサーバ側で変換することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができる。
【００５０】
【発明の実施の形態】
以下、図面を参照して本発明にかかるクライアント文字コード変換プログラムおよびサーバ文字コード変換プログラムの一実施の形態について詳細に説明する。
【００５１】
図１は、本発明にかかる一実施の形態の構成を示すブロック図である。この図には、ＣＯＲＢＡに準拠するクライアント・サーバ・システムが図示されている。同図において、ＣＯＲＢＡクライアント１００は、ネットワーク２００を介して、ＣＯＲＢＡサーバ３００およびネーミングサービスサーバ５００に接続されており、クライアントオブジェクト１０１、クライアントＯＲＢ１０２およびコードセットレジストリ変換テーブル１０３を備えている。
【００５２】
クライアントオブジェクト１０１は、各種処理や通信を実行するためのアプリケーションプログラム等である。このクライアントオブジェクト１０１では、前述したクライアントＮＣＳとして、ベンダ固有文字コードセットである０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２）（図１４参照）が使用される。なお、この０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２）は、ベンダ固有文字コードセットであるためオブジェクトリファレンスデータベース５０１に格納されたオブジェクトリファレンスに登録されていない。
【００５３】
クライアントＯＲＢ１０２は、クライアントオブジェクト１０１とサーバオブジェクト３０１との通信を仲介するソフトウェア・バスであり、ネットワーク２００を介してネーミングサービスサーバ５００およびＣＯＲＢＡサーバ３００へアクセスする。
【００５４】
また、クライアントＯＲＢ１０２は、ＴＣＳを決定する処理を実行し、このＴＣＳをＧＩＯＰメッセージ４００に設定する。ＴＣＳは、前述したように、特定のオペレーティングシステム、特定のプログラム言語、特定のアーキテクチャに依存しない中立的なコードセットレジストリ（文字コードセット）である。ＧＩＯＰメッセージ４００は、前述した図１５（ａ）〜図１５（ｃ）に示したフォーマットに準拠している。
【００５５】
コードセットレジストリ変換テーブル１０３は、ＣＯＲＢＡクライアント１００の通信相手（同図ではＣＯＲＢＡサーバ３００）との間で、オブジェクトリファレンスに未登録のベンダ固有文字コードセットを用いることができるようにするためのテーブルである。
【００５６】
具体的には、コードセットレジストリ変換テーブル１０３は、自コードセットレジストリと、相手コードセットレジストリとの間で変換を行うためのテーブルである。自コードセットレジストリは、クライアントＮＣＳであり、この場合、０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２）である。相手コードセットレジストリは、後述するサーバＮＣＳやＣＣＳであり、０ｘ０００３００１０（サーバＮＣＳ）等である。
【００５７】
ここで、従来では、ベンダ固有文字コードセットの０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２）は、ＣＯＲＢＡサーバ３００で未知の文字コードセットとして認識されるため、文字コード変換を行うことができない。
【００５８】
これに対して、一実施の形態では、コードセットレジストリ変換テーブル１０３により、０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２）をＣＯＲＢＡサーバ３００で対応可能なサーバＮＣＳやＣＣＳに対応付けることにより、文字コード変換を可能としている。
【００５９】
但し、コードセットレジストリ変換テーブル１０３においては、自コードセットレジストリ（文字コードセット）の範囲と、相手コードセットレジストリ（文字コードセット）の範囲とが一部共通していることを要する。
【００６０】
具体的には、図２に示したように、ＪＩＳ日本語ＥＵＣにおいては、範囲１が文字コードの範囲とされている。このＪＩＳ日本語ＥＵＣは、図１に示したコードセットレジストリ変換テーブル１０３の相手コードセットレジストリ（０ｘ０００３００１０（サーバＮＣＳ））に対応している。
【００６１】
また、図２に示したＡ社日本語ＥＵＣ　その２は、標準文字コードセットであるＪＩＳ日本語ＥＵＣをベースに、Ａ社（ベンダ）に必要な文字（機種依存文字等）に対応する文字コード（範囲２および範囲４）が追加されたものである。従って、Ａ社日本語ＥＵＣ　その２の範囲は、範囲１（ＪＩＳ日本語ＥＵＣ）、範囲２および範囲４である。
【００６２】
つまり、Ａ社日本語ＥＵＣ　その２（ベンダ固有文字コードセット）とＪＩＳ日本語ＥＵＣ（標準文字コードセット）とにおいては、範囲１が共通しており、この範囲１に対応する文字コードが一致する。
【００６３】
同様にして、図２に示したＢ社日本語ＥＵＣは、標準文字コードセットであるＪＩＳ日本語ＥＵＣをベースに、Ｂ社（ベンダ）に必要な文字（機種依存文字等）に対応する文字コード（範囲３および範囲４）が追加されたものである。従って、Ｂ社日本語ＥＵＣの範囲は、範囲１（ＪＩＳ日本語ＥＵＣ）、範囲３および範囲４である。
【００６４】
つまり、Ｂ社日本語ＥＵＣ（ベンダ固有文字コードセット）とＪＩＳ日本語ＥＵＣ（標準文字コードセット）とにおいては、範囲１が共通しており、この範囲１に対応する文字コードが一致する。
【００６５】
また、Ａ社日本語ＥＵＣ　その２（ベンダ固有文字コードセット）とＢ社日本語ＥＵＣ（ベンダ固有文字コードセット）とにおいては、範囲１および４が共通しており、これらの範囲１および４に対応する文字コードが一致する。
【００６６】
このように、共通する範囲（文字コード）を有する関係にある自コードセットレジストリ（文字コードセット）と、相手コードセットレジストリ（文字コードセット）との場合には、上記範囲（文字コード）に基づく互換性がある。一実施の形態では、上記互換性を利用して、従来できなかった文字コード変換を可能としている。
【００６７】
図１に戻り、ＣＯＲＢＡサーバ３００は、サーバオブジェクト３０１およびサーバＯＲＢ３０２、コードセットレジストリ変換テーブル３０３および記憶部３０４を備えている。サーバオブジェクト３０１は、各種処理や通信を実行するためのアプリケーションプログラム等である。
【００６８】
サーバＯＲＢ３０２は、ネットワーク２００を介してクライアントＯＲＢ１０２にアクセスされ、クライアントオブジェクト１０１とサーバオブジェクト３０１との通信を仲介するソフトウェア・バスである。
【００６９】
このサーバＯＲＢ３０２も、特定のオペレーティングシステム、特定のプログラム言語、特定のアーキテクチャに依存しない中立的なストリーム形式のデータ（ＧＩＯＰメッセージ４００）を用いてネットワーク２００を介してクライアントＯＲＢ１０２との間で通信を行う機能を備えている。
【００７０】
コードセットレジストリ変換テーブル３０３は、ＣＯＲＢＡサーバ３００の通信相手（同図ではＣＯＲＢＡクライアント１００）との間で、オブジェクトリファレンスに未登録のベンダ固有文字コードセットを用いることができるようにするためのテーブルである。
【００７１】
具体的には、コードセットレジストリ変換テーブル３０３は、相手コードセットレジストリと、自コードセットレジストリとの間で変換を行うためのテーブルである。相手コードセットレジストリは、ＴＣＳであり、この場合、ベンダ固有文字コードセットに対応する０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２）である。自コードセットレジストリは、サーバＮＣＳやＣＣＳである。
【００７２】
ここで、サーバＮＣＳは、前述したように、サーバオブジェクト３０１で使用されるコードセットレジストリ（文字コードセット）である。一方、ＣＣＳは、サーバＮＣＳとの間で変換可能なコードセットレジストリ（文字コードセット）である。
【００７３】
同図に示した例では、サーバＮＣＳは、標準文字コードセットに対応する０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ）である。一方、ＣＣＳは、標準文字コードセットに対応する０ｘ０００１０１００（ＩＳＯ／ＩＥＣ　１０６４６−１　ＵＣＳ２−１）、０Ｘ０００３０００１（ＪＩＳ）である。
【００７４】
記憶部３０４には、ＣＯＲＢＡクライアント１００のクライアントＯＲＢ１０２から送信されたＧＩＯＰメッセージ４００等を受信した場合に、ＧＩＯＰメッセージ４００等に含まれるリクエストＩＤおよびＴＣＳ（相手コードセットレジストリ）が記憶される。
【００７５】
ネーミングサービスサーバ５００は、ＣＯＲＢＡにおけるネーミングサービスをＣＯＲＢＡクライアント１００へ提供するサーバであり、サーバオブジェクト３０１を名前で管理する機能を備えている。
【００７６】
このネーミングサービスによれば、クライアントオブジェクト１０１がサーバオブジェクト３０１にアクセスする場合には、サーバオブジェクト３０１の位置ではなく、名前でアクセスできるようになるため、サーバオブジェクト３０１の物理的な位置を意識する必要がない。
【００７７】
具体的には、ネーミングサービスサーバ５００は、クライアントオブジェクト１０１から問い合わせがあった場合、オブジェクトリファレンスデータベース５０１からオブジェクトリファレンスを読み出し、これをクライアントオブジェクト１０１へ返すことにより、ネーミングサービスを提供する。
【００７８】
このオブジェクトリファレンスは、サーバオブジェクト３０１を名前で一意に識別するための情報である。具体的には、オブジェクトリファレンスは、前述したＩＯＲヘッダ、ＩＤ、ホスト名（ＩＰアドレス）、ＰＯＲＴ番号、オブジェクトキー等や、上述したサーバＮＣＳ、ＣＣＳという情報から構成されている。
【００７９】
（ＣＯＲＢＡクライアント１００における要求送信動作）
つぎに、図１に示したＣＯＲＢＡクライアント１００における要求送信動作について、図３〜図５を参照しつつ説明する。
【００８０】
図３は、図１に示したＣＯＲＢＡクライアント１００における要求送信動作を説明するブロック図である。図４は、図３に示したＣＯＲＢＡクライアント１００における要求送信動作を説明するフローチャートである。
【００８１】
図４に示したステップＳＡ１では、ＣＯＲＢＡクライアント１００のクライアントオブジェクト１０１は、クライアントＯＲＢ１０２およびネットワーク２００を介してネーミングサービスサーバ５００へアクセスし、図３に示したサーバオブジェクト３０１に対応するオブジェクトリファレンス７００（サーバＮＣＳ（＝０ｘ０００３００１０）およびＣＣＳ（＝０ｘ０００１０１００、０ｘ０００３０００１）を含む）を取得する。
【００８２】
ステップＳＡ２では、クライアントオブジェクト１０１は、オブジェクトリファレンス７００と、クライアントＮＣＳ（０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２））に対応する送信データ６００とをクライアントＯＲＢ１０２に渡し、送信要求を出す。
【００８３】
ステップＳＡ３では、クライアントＯＲＢ１０２は、送信データ６００に含まれるクライアントＮＣＳ（０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２））と、オブジェクトリファレンス７００に含まれるサーバＮＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））およびＣＣＳ（０ｘ０００１０１００（ＩＳＯ／ＩＥＣ　１０６４６−１　ＵＣＳ２−１）、０ｘ０００３０００１（ＪＩＳ））と、コードセットレジストリ変換テーブル１０３との比較結果に基づいて、ＴＣＳを決定するというＴＣＳ決定処理を実行する。
【００８４】
具体的には、図５に示したステップＳＢ１では、クライアントＯＲＢ１０２は、クライアントＮＣＳ（０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２））と、サーバＮＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【００８５】
なお、ステップＳＢ１の判断結果が「Ｙｅｓ」である場合、ステップＳＢ６では、クライアントＯＲＢ１０２は、当該サーバＮＣＳをＴＣＳとして決定する。
【００８６】
ステップＳＢ２では、クライアントＯＲＢ１０２は、クライアントＮＣＳ（０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２））と、ＣＣＳ（０ｘ０００１０１００（ＩＳＯ／ＩＥＣ　１０６４６−１　ＵＣＳ２−１）、０ｘ０００３０００１（ＪＩＳ））とが一致するか否かを判断し、この場合、判断結果を「Ｎｏ」とする。
【００８７】
なお、ステップＳＢ２の判断結果が「Ｙｅｓ」である場合、ステップＳＢ７では、クライアントＯＲＢ１０２は、当該ＣＣＳをＴＣＳとして決定する。
【００８８】
ステップＳＢ３では、クライアントＯＲＢ１０２は、コードセットレジストリ変換テーブル１０３に、自コードセットレジストリとしてのクライアントＮＣＳ（０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２））と、相手コードセットレジストリとしてのサーバＮＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））との組み合わせが登録されているか否かを判断し、この場合、判断結果を「Ｙｅｓ」とする。
【００８９】
ステップＳＢ８では、クライアントＯＲＢ１０２は、コードセットレジストリ変換テーブル１０３に登録されている相手コードセットレジストリとしての上記サーバＮＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））をＴＣＳとして決定する。
【００９０】
一方、ステップＳＢ３の判断結果が「Ｎｏ」である場合、ステップＳＢ４では、クライアントＯＲＢ１０２は、コードセットレジストリ変換テーブル１０３に、自コードセットレジストリとしてのクライアントＮＣＳ（０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２））と、相手コードセットレジストリとしてのＣＣＳ（０ｘ０００１０１００（ＩＳＯ／ＩＥＣ　１０６４６−１　ＵＣＳ２−１）または０ｘ０００３０００１（ＪＩＳ））との組み合わせが登録されているか否かを判断する。
【００９１】
このステップＳＢ４の判断結果が「Ｙｅｓ」である場合、ステップＳＢ９では、クライアントＯＲＢ１０２は、コードセットレジストリ変換テーブル１０３に登録されている相手コードセットレジストリとしての上記ＣＣＳをＴＣＳとして決定する。
【００９２】
一方、ステップＳＢ４の判断結果が「Ｎｏ」である場合、ステップＳＢ５では、クライアントＯＲＢ１０２は、汎用コードセットレジストリをＴＣＳとして決定する。この汎用コードセットレジストリは、ＣＯＲＢＡサーバ３００側でエラーが発生しても良いＴＣＳを決定するためのコードセットレジストリであり、例えば、０ｘ０００１０００１（ＩＳＯ８８５９−１（Ｌａｔｉｎ−１））である。
【００９３】
図４に戻り、ステップＳＡ４では、クライアントＯＲＢ１０２は、上述したＴＣＳ決定処理で決定されたＴＣＳおよび送信データ６００をＧＩＯＰメッセージ４１０に設定することにより、ＧＩＯＰメッセージ４１０（リクエストＩＤ（ｒｅｑｕｅｓｔ＿ｉｄ：図１５（ｂ）参照）＝ｍ）を生成する。ステップＳＡ５では、クライアントＯＲＢ１０２は、ネットワーク２００を介して、ＧＩＯＰメッセージ４１０をＣＯＲＢＡサーバ３００（サーバＯＲＢ３０２）へ送信する。
【００９４】
そして、サーバＯＲＢ３０２は、ＧＩＯＰメッセージ４１０を受信すると、ＧＩＯＰメッセージ４１０に設定されたＴＣＳがサーバＮＣＳと一致する場合、当該ＴＣＳをサーバＮＣＳとして、受信データ（上記受信された送信データ）およびサーバＮＣＳをサーバオブジェクト３０１へ渡す。
【００９５】
一方、ＧＩＯＰメッセージ４１０に設定されたＴＣＳがＣＣＳと一致する場合、サーバＯＲＢ３０２は、当該ＴＣＳ（ＣＣＳ）をサーバＮＣＳに変換した後、受信データおよびサーバＮＣＳをサーバオブジェクト３０１へ渡す。
【００９６】
（ＣＯＲＢＡクライアント１００における応答受信動作）
つぎに、図１に示したＣＯＲＢＡクライアント１００における応答受信動作について、図６および図７を参照しつつ説明する。
【００９７】
図６は、図１に示したＣＯＲＢＡクライアント１００における応答受信動作を説明するブロック図である。図７は、図６に示したＣＯＲＢＡクライアント１００における応答受信時の文字コードセット変換処理を説明するフローチャートである。
【００９８】
ＣＯＲＢＡサーバ３００のサーバＯＲＢ３０２（図１参照）より送信されたＧＩＯＰメッセージ４２０がネットワーク２００を介してクライアントＯＲＢ１０２に受信されると、図７に示したステップＳＣ１では、クライアントＯＲＢ１０２は、受信したＧＩＯＰメッセージ４２０に含まれるＴＣＳがサポート対象（直接変換可能）であるか否かを判断する。
【００９９】
ＧＩＯＰメッセージ４２０は、ＧＩＯＰメッセージ４１０（図３参照）に対するＣＯＲＢＡサーバ３００（サーバＯＲＢ３０２）からの応答である。同図に示した例では、ＧＩＯＰメッセージ４２０にＴＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））が設定されている。
【０１００】
ステップＳＣ１の判断結果が「Ｙｅｓ」である場合、ステップＳＣ４では、クライアントＯＲＢ１０２は、ＧＩＯＰメッセージ４２０に設定されたＴＣＳをクライアントＮＣＳに直接変換し、このクライアントＮＣＳに対応する受信データ６１０をクライアントオブジェクト１０１に渡す。
【０１０１】
一方、ステップＳＣ１の判断結果が「Ｎｏ」である場合、ステップＳＣ２では、クライアントＯＲＢ１０２は、受信したＧＩＯＰメッセージ４２０に含まれるＴＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））がコードセットレジストリ変換テーブル１０３の相手コードセットレジストリに登録されているか否かを判断する。
【０１０２】
ステップＳＣ２の判断結果が「Ｙｅｓ」である場合、ステップＳＣ５では、クライアントＯＲＢ１０２は、コードセットレジストリ変換テーブル１０３を参照し、上記相手コードセットレジストリに対応する自コードセットレジストリ（クライアントＮＣＳ）を確認する。同図に示した例では、自コードセットレジストリ（クライアントＮＣＳ）は、０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２）である。
【０１０３】
つぎに、クライアントＯＲＢ１０２は、ＴＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））をクライアントＮＣＳ（０ｘ１００４０００２（Ａ社日本語ＥＵＣ　その２））に変換し、このクライアントＮＣＳに対応する受信データ６１０をクライアントオブジェクト１０１に渡す。
【０１０４】
一方、ステップＳＣ２の判断結果が「Ｎｏ」である場合、ステップＳＣ３では、クライアントＯＲＢ１０２は、文字コード変換ができないため、文字コード変換エラーとする。
【０１０５】
（ＣＯＲＢＡサーバ３００における要求受信動作）
つぎに、図１に示したＣＯＲＢＡサーバ３００における要求受信時のＴＣＳ決定処理について、図８および図９を参照しつつ説明する。
【０１０６】
図８は、図１に示したＣＯＲＢＡサーバ３００における要求受信時のＴＣＳ決定処理を説明するブロック図である。図９は、図８に示したＣＯＲＢＡサーバ３００における要求受信時のＴＣＳ決定処理を説明するフローチャートである。
【０１０７】
ＣＯＲＢＡクライアント１００のクライアントＯＲＢ１０２（図３参照）より送信されたＧＩＯＰメッセージ４１０がネットワーク２００を介してサーバＯＲＢ３０２に受信されると、図９に示したステップＳＤ１では、サーバＯＲＢ３０２は、受信したＧＩＯＰメッセージ４１０に含まれるＴＣＳがサポート対象（直接変換可能）であるか否かを判断する。
【０１０８】
ＧＩＯＰメッセージ４１０には、ＴＣＳ（０ｘ０００３００１０（ＪＩＳ日本語ＥＵＣ））およびリクエストＩＤ（＝ｍ）が設定されている。
【０１０９】
ステップＳＤ１の判断結果が「Ｙｅｓ」である場合、ステップＳＤ４では、サーバＯＲＢ３０２は、ＧＩＯＰメッセージ４１０に設定されたＴＣＳをサーバＮＣＳに直接変換し、このサーバＮＣＳに対応する受信データ６２０をサーバオブジェクト３０１に渡す。
【０１１０】
一方、ステップＳＤ１の判断結果が「Ｎｏ」である場合、ステップＳＤ２では、サーバＯＲＢ３０２は、受信したＧＩＯＰメッセージ４１０に含まれるＴＣＳがコードセットレジストリ変換テーブル３０３の相手コードセットレジストリに登録されているか否かを判断する。
【０１１１】
ステップＳＤ２の判断結果が「Ｙｅｓ」である場合、ステップＳＤ５では、サーバＯＲＢ３０２は、コードセットレジストリ変換テーブル３０３を参照し、上記相手コードセットレジストリに対応する自コードセットレジストリ（サーバＮＣＳ）を確認する。
【０１１２】
つぎに、サーバＯＲＢ３０２は、ＴＣＳをサーバＮＣＳに変換し、このサーバＮＣＳに対応する受信データ６２０をサーバオブジェクト３０１に渡す。ステップＳＤ６では、サーバＯＲＢ３０２は、受信したＧＩＯＰメッセージ４１０に含まれるリクエストＩＤに対応付けてＴＣＳを記憶部３０４に記憶させる。
【０１１３】
一方、ステップＳＤ２の判断結果が「Ｎｏ」である場合、ステップＳＤ３では、サーバＯＲＢ３０２は、文字コード変換ができないため、文字コード変換エラーとする。
【０１１４】
（ＣＯＲＢＡサーバ３００における応答送信動作）
つぎに、図１に示したＣＯＲＢＡサーバ３００における応答送信時のＴＣＳ決定処理について、図１０および図１１を参照しつつ説明する。
【０１１５】
図１０は、図１に示したＣＯＲＢＡサーバ３００における応答送信時のＴＣＳ設定処理を説明するブロック図である。図１１は、図１０に示したＣＯＲＢＡサーバ３００における応答送信時のＴＣＳ設定処理を説明するフローチャートである。
【０１１６】
サーバオブジェクト３０１は、図８に示したＧＩＯＰメッセージ４１０を受信した後、応答としてのＧＩＯＰメッセージ４２０をＣＯＲＢＡクライアント１００（クライアントＯＲＢ１０２）へ送信するという応答送信動作を実行する。
【０１１７】
すなわち、サーバオブジェクト３０１より送信データ６３０がサーバＯＲＢ３０２に渡されると、図１１に示したステップＳＥ１では、サーバＯＲＢ３０２は、ステップＳＤ６（図９参照）で記憶したリクエストＩＤおよびＴＣＳを記憶部３０４から読み出す。
【０１１８】
ステップＳＥ２では、サーバＯＲＢ３０２は、ＧＩＯＰメッセージ４２０に上記リクエストＩＤおよびＴＣＳを設定し、送信データ６３０をＧＩＯＰメッセージ４２０としてＣＯＲＢＡクライアント１００のクライアントＯＲＢ１０２へ送信する。
【０１１９】
以上説明したように、一実施の形態によれば、図３に示したように、オブジェクトリファレンス７００より、送信先のＣＯＲＢＡサーバ３００で使用可能なサーバＮＣＳおよびＣＣＳ（サーバ文字コード情報）を取得し、ＣＯＲＢＡクライアント１００で使用可能であってオブジェクトリファレンス７００に未登録の自コードセットレジストリ（クライアント文字コード情報）と相手コードセットレジストリ（サーバ文字コード情報）との対応関係を表すコードセットレジストリ変換テーブル１０３を参照し、クライアント文字コード情報をサーバ文字コード情報に変換した後、ＣＯＲＢＡクライアント１００からＣＯＲＢＡサーバ３００へ送信されるＧＩＯＰメッセージ４１０に相手コードセットレジストリ（サーバ文字コード情報）をＣＯＲＢＡクライアント１００側で設定することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができる。
【０１２０】
また、一実施の形態によれば、図６に示したように、ＣＯＲＢＡサーバ３００より受信されたＧＩＯＰメッセージ４２０からＣＯＲＢＡサーバ３００で設定されたＴＣＳ（サーバ文字コード情報）を自コードセットレジストリ（クライアント文字コード情報）にＣＯＲＢＡクライアント１００側で変換することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができる。
【０１２１】
また、一実施の形態によれば、図８に示したように、ＣＯＲＢＡクライアント１００より受信されたＧＩＯＰメッセージ４１０からＣＯＲＢＡクライアント１００で設定されたＴＣＳ（クライアント文字コード情報）を取得し、ＣＯＲＢＡクライアント１００で使用可能であってオブジェクトリファレンスに未登録の相手コードセットレジストリ（クライアント文字コード情報）と自コードセットレジストリ（サーバ文字コード情報）との対応関係を表すコードセットレジストリ変換テーブル３０３を参照し、相手コードセットレジストリ（クライアント文字コード情報）を自コードセットレジストリ（サーバ文字コード情報）にＣＯＲＢＡサーバ３００側で変換することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができる。
【０１２２】
また、一実施の形態によれば、図８に示したＣＯＲＢＡクライアント１００より受信されたＧＩＯＰメッセージ４１０から取得されたＴＣＳ（クライアント文字コード情報）を記憶部３０４に記憶した後、図１０に示したＧＩＯＰメッセージ４２０の応答送信時に、記憶されたＴＣＳ（クライアント文字コード情報）をＧＩＯＰメッセージ４２０に設定し、該ＧＩＯＰメッセージ４２０をＣＯＲＢＡクライアント１００へＣＯＲＢＡサーバ３００側で送信することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができる。
【０１２３】
以上本発明にかかる一実施の形態について図面を参照して詳述してきたが、具体的な構成例はこの一実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【０１２４】
例えば、前述した一実施の形態においては、図１に示したＣＯＲＢＡクライアント１００またはＣＯＲＢＡサーバ３００の機能を実現するためのプログラムを図１２に示したコンピュータ読み取り可能な記録媒体９００に記録して、この記録媒体９００に記録されたプログラムを同図に示したコンピュータ８００に読み込ませ、実行することにより各機能を実現してもよい。
【０１２５】
同図に示したコンピュータ８００は、上記プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）８１０と、キーボード、マウス等の入力装置８２０と、各種データを記憶するＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）８３０と、演算パラメータ等を記憶するＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）８４０と、記録媒体９００からプログラムを読み取る読取装置８５０と、ディスプレイ、プリンタ等の出力装置８６０と、装置各部を接続するバス８７０とから構成されている。
【０１２６】
ＣＰＵ８１０は、読取装置８５０を経由して記録媒体９００に記録されているプログラムを読み込んだ後、プログラムを実行することにより、前述した機能を実現する。なお、記録媒体９００としては、光ディスク、フレキシブルディスク、ハードディスク等が挙げられる。
【０１２７】
（付記１）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換プログラムであって、
コンピュータを、
オブジェクトリファレンスより、送信先のＣＯＲＢＡサーバで使用可能なサーバ文字コード情報を取得するオブジェクトリファレンス文字コード情報取得手段、
前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換手段、
前記ＣＯＲＢＡクライアントから前記ＣＯＲＢＡサーバへ送信される通信データに前記変換手段により変換されたサーバ文字コード情報を設定する設定手段、
として機能させるためのクライアント文字コード変換プログラム。
【０１２８】
（付記２）前記コンピュータを、ＣＯＲＢＡサーバより受信された通信データから前記ＣＯＲＢＡサーバで設定されたサーバ文字コード情報を取得する通信データ文字コード情報取得手段として機能させ、前記変換手段は、前記テーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記サーバ文字コード情報を前記クライアント文字コード情報に変換することを特徴とする付記１に記載のクライアント文字コード変換プログラム。
【０１２９】
（付記３）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換プログラムであって、
コンピュータを、
ＣＯＲＢＡサーバより受信された通信データから前記ＣＯＲＢＡサーバで設定されたサーバ文字コード情報を取得する通信データ文字コード情報取得手段、
前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記サーバ文字コード情報を前記クライアント文字コード情報に変換する変換手段、
として機能させるためのクライアント文字コード変換プログラム。
【０１３０】
（付記４）前記クライアント文字コード情報と前記サーバ文字コード情報とは、共通の文字コードを有していることを特徴とする付記１〜３のいずれか一つに記載のクライアント文字コード変換プログラム。
【０１３１】
（付記５）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントであって、
オブジェクトリファレンスより、送信先のＣＯＲＢＡサーバで使用可能なサーバ文字コード情報を取得するオブジェクトリファレンス文字コード情報取得手段と、
前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換手段と、
前記ＣＯＲＢＡクライアントから前記ＣＯＲＢＡサーバへ送信される通信データに前記変換手段により変換されたサーバ文字コード情報を設定する設定手段と、
を備えたことを特徴とするＣＯＲＢＡクライアント。
【０１３２】
（付記６）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントであって、
ＣＯＲＢＡサーバより受信された通信データから前記ＣＯＲＢＡサーバで設定されたサーバ文字コード情報を取得する通信データ文字コード情報取得手段と、前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記サーバ文字コード情報を前記クライアント文字コード情報に変換する変換手段と、
を備えたことを特徴とするＣＯＲＢＡクライアント。
【０１３３】
（付記７）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換方法であって、
オブジェクトリファレンスより、送信先のＣＯＲＢＡサーバで使用可能なサーバ文字コード情報を取得するオブジェクトリファレンス文字コード情報取得工程と、
前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換工程と、
前記ＣＯＲＢＡクライアントから前記ＣＯＲＢＡサーバへ送信される通信データに前記変換工程で変換されたサーバ文字コード情報を設定する設定工程と、
を含むことを特徴とするクライアント文字コード変換方法。
【０１３４】
（付記８）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡクライアントに適用されるクライアント文字コード変換方法であって、
ＣＯＲＢＡサーバより受信された通信データから前記ＣＯＲＢＡサーバで設定されたサーバ文字コード情報を取得する通信データ文字コード情報取得工程と、前記ＣＯＲＢＡクライアントで使用可能であって前記オブジェクトリファレンスに未登録のクライアント文字コード情報と前記サーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得工程で取得された前記サーバ文字コード情報を前記クライアント文字コード情報に変換する変換工程と、
を含むことを特徴とするクライアント文字コード変換方法。
【０１３５】
（付記９）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡサーバに適用されるサーバ文字コード変換プログラムであって、
前記コンピュータを、
ＣＯＲＢＡクライアントより受信された通信データから前記ＣＯＲＢＡクライアントで設定されたクライアント文字コード情報を取得する通信データ文字コード情報取得手段、
前記ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報と前記ＣＯＲＢＡサーバで使用可能なサーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換手段、
として機能させるためのサーバ文字コード変換プログラム。
【０１３６】
（付記１０）前記コンピュータを、ＣＯＲＢＡクライアントより受信された通信データから取得された前記クライアント文字コード情報を保存する保存手段、前記通信データの応答送信時に、保存された前記クライアント文字コード情報を通信データに設定し、該通信データを前記ＣＯＲＢＡクライアントへ送信する送信手段、として機能させるための付記９に記載のサーバ文字コード変換プログラム。
【０１３７】
（付記１１）前記クライアント文字コード情報と前記サーバ文字コード情報とは、共通の文字コードを有していることを特徴とする付記９または１０に記載のサーバ文字コード変換プログラム。
【０１３８】
（付記１２）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡサーバであって、
ＣＯＲＢＡクライアントより受信された通信データから前記ＣＯＲＢＡクライアントで設定されたクライアント文字コード情報を取得する通信データ文字コード情報取得手段と、
前記ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報と前記ＣＯＲＢＡサーバで使用可能なサーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得手段により取得された前記クライアント文字コード情報を前記通サーバ文字コード情報に変換する変換手段と、
を備えたことを特徴とするＣＯＲＢＡサーバ。
【０１３９】
（付記１３）ＣＯＲＢＡクライアントより受信された通信データから取得された前記クライアント文字コード情報を保存する保存手段と、前記通信データの応答送信時に、保存された前記クライアント文字コード情報を通信データに設定し、該通信データを前記ＣＯＲＢＡクライアントへ送信する送信手段と、を備えたことを特徴とする付記１２に記載のＣＯＲＢＡサーバ。
【０１４０】
（付記１４）ＣＯＲＢＡに準拠するクライアント・サーバ・システムにおけるＣＯＲＢＡサーバに適用されるサーバ文字コード変換方法であって、
ＣＯＲＢＡクライアントより受信された通信データから前記ＣＯＲＢＡクライアントで設定されたクライアント文字コード情報を取得する通信データ文字コード情報取得工程と、
前記ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報と前記ＣＯＲＢＡサーバで使用可能なサーバ文字コード情報との対応関係を表すテーブルを参照し、前記通信データ文字コード情報取得工程で取得された前記クライアント文字コード情報を前記サーバ文字コード情報に変換する変換工程と、
を含むことを特徴とするサーバ文字コード変換方法。
【０１４１】
（付記１５）ＣＯＲＢＡクライアントより受信された通信データから取得された前記クライアント文字コード情報を保存する保存工程と、前記通信データの応答送信時に、保存された前記クライアント文字コード情報を通信データに設定し、該通信データを前記ＣＯＲＢＡクライアントへ送信する送信工程と、を含むことを特徴とする付記１４に記載のサーバ文字コード変換方法。
【０１４２】
【発明の効果】
以上説明したように、本発明によれば、オブジェクトリファレンスより、送信先のＣＯＲＢＡサーバで使用可能なサーバ文字コード情報を取得し、ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報とサーバ文字コード情報との対応関係を表すテーブルを参照し、クライアント文字コード情報をサーバ文字コード情報に変換した後、ＣＯＲＢＡクライアントからＣＯＲＢＡサーバへ送信される通信データに、変換されたサーバ文字コード情報をＣＯＲＢＡクライアント側で設定することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができるという効果を奏する。
【０１４３】
また、本発明によれば、ＣＯＲＢＡサーバより受信された通信データからＣＯＲＢＡサーバで設定されたサーバ文字コード情報をクライアント文字コード情報にＣＯＲＢＡクライアント側で変換することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができるという効果を奏する。
【０１４４】
また、本発明によれば、ＣＯＲＢＡクライアントより受信された通信データからＣＯＲＢＡクライアントで設定されたクライアント文字コード情報を取得し、ＣＯＲＢＡクライアントで使用可能であってオブジェクトリファレンスに未登録のクライアント文字コード情報とサーバ文字コード情報との対応関係を表すテーブルを参照し、クライアント文字コード情報をサーバ文字コード情報にＣＯＲＢＡサーバ側で変換することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができるという効果を奏する。
【０１４５】
また、本発明によれば、ＣＯＲＢＡクライアントより受信された通信データから取得されたクライアント文字コード情報を保存した後、通信データの応答送信時に、保存されたクライアント文字コード情報を通信データに設定し、該通信データをＣＯＲＢＡクライアントへＣＯＲＢＡサーバ側で送信することとしたので、オブジェクトリファレンスに未登録の文字コード情報を用いた文字コード情報変換を行うことができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかる一実施の形態の構成を示すブロック図である。
【図２】同一実施の形態の動作原理を説明する図である。
【図３】図１に示したＣＯＲＢＡクライアント１００における要求送信動作を説明するブロック図である。
【図４】図３に示したＣＯＲＢＡクライアント１００における要求送信動作を説明するフローチャートである。
【図５】図４に示したＴＣＳ決定処理を説明するフローチャートである。
【図６】図１に示したＣＯＲＢＡクライアント１００における応答受信動作を説明するブロック図である。
【図７】図６に示したＣＯＲＢＡクライアント１００における応答受信時の文字コードセット変換処理を説明するフローチャートである。
【図８】図１に示したＣＯＲＢＡサーバ３００における要求受信時のＴＣＳ決定処理を説明するブロック図である。
【図９】図８に示したＣＯＲＢＡサーバ３００における要求受信時のＴＣＳ決定処理を説明するフローチャートである。
【図１０】図１に示したＣＯＲＢＡサーバ３００における応答送信時のＴＣＳ設定処理を説明するブロック図である。
【図１１】図１０に示したＣＯＲＢＡサーバ３００における応答送信時のＴＣＳ設定処理を説明するフローチャートである。
【図１２】同一実施の形態の変形例の構成を示すブロック図である。
【図１３】従来のＣＯＲＢＡに準拠するクライアント・サーバ・システムの構成を示すブロック図である。
【図１４】文字コードセット／コードセットレジストリ一覧を示す図である。
【図１５】ＧＩＯＰメッセージのフォーマットを示す図である。
【符号の説明】
１００　ＣＯＲＢＡクライアント
１０１　クライアントオブジェクト
１０２　クライアントＯＲＢ
１０３　コードセットレジストリ変換テーブル
２００　ネットワーク
３００　ＣＯＲＢＡサーバ
３０１　サーバオブジェクト
３０２　サーバＯＲＢ
３０３　コードセットレジストリ変換テーブル
３０４　記憶部
４００　ＧＩＯＰメッセージ
５００　ネーミングサービスサーバ
５０１　オブジェクトリファレンスデータベース
【図１】
2004021562.tif 000003
【図２】
2004021562.tif 000004
【図３】
2004021562.tif 000005
【図４】
2004021562.tif 000006
【図５】
2004021562.tif 000007
【図６】
2004021562.tif 000008
【図７】
2004021562.tif 000009
【図８】
2004021562.tif 000010
【図９】
2004021562.tif 000011
【図１０】
2004021562.tif 000012
【図１１】
2004021562.tif 000013
【図１２】
2004021562.tif 000014
【図１３】
2004021562.tif 000015
【図１４】
2004021562.tif 000016
【図１５】
2004021562.tif 000017