(57)【要約】【課題】  ネットワーク・アプリケーションの構築や運用の負荷を軽減する。【解決手段】  サーバ・コンピュータ１３のアーキテクチャは、ランタイム部２０、コンテント・エンジン部３０、及びコンテント部４０で構成され、ランタイム部２０は、他のコンピュータとの情報授受や自己のハードウェア資源に対する処理を実施する機能部であり、コンテント・エンジン部３０は、オブジェクトであるコンテントを一意に定めるアドレスの制御すなわちコンテントを構成するノードによる階層構造管理を行う。コンテント部４０にはコンテントが記憶され、コンテントはノードによるツリー構造を有し、全てのノードはドメイン名及び格納位置からなるＵＲＩによってラベリングされ、コンテントに一意のアドレスを与える。【選択図】        図１
2005258942.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して他の装置との間で情報を授受する情報処理装置であって、
複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶した記憶手段と、
前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理するする授受手段と、
前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に変換する第１の変換手段と、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施す制御手段と、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に変換する第２の変換手段と、含むエンジン手段と、
を含む情報処理装置。
【請求項２】
前記アドレスは、ＵＲＩで表されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記エンジン手段は、装置内部で要求されたオブジェクトのアドレスを解釈しかつ解釈したアドレスのオブジェクトについて外部記憶の場合には、前記第２の変換手段で前記外部言語に変換し、内部記憶の場合には前記授受手段へ該アドレスを出力する判断手段（ドメイン判断）を含むことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記エンジン手段では、第１の変換手段が一部変更として追加を含む処理の要求を取得し、制御手段が前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを追加する処理またはオブジェクトへの変更を行う処理を施すことを特徴とする請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
請求項１乃至請求項４の何れか１項に記載の情報処理装置を、前記ネットワークに複数接続した情報処理システム。
【請求項６】
ネットワークを介して他の装置との間で情報を授受する情報処理方法であって、
複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶し、
前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理し、
前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をし、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施し、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をする
工程を含む情報処理方法。
【請求項７】
ネットワークを介して他の装置との間で情報を授受するコンピュータで実行される情報処理プログラムであって、
複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶させ、
前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理させ、
前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をさせ、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施させ、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をさせる
工程を含む情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、システム、方法及びプログラムにかかり、特に、インターネット等の通信回線を介して情報を授受するオンラインゲームを含むネットワークアプリケーションの開発・運用に用いる情報処理装置、システム、方法及びプログラムに関する。
【背景技術】
【０００２】
近年の情報通信インフラの発展に伴って、パーソナルコンピュータ（ＰＣ）を情報端末としてインターネットなどのネットワークに参加して双方向性情報授受が可能になった。このネットワークの利点を用い、各種サービスを提供するシステムが注目されている。このシステムには、サーバーコンピュータとクライアントコンピュータとの関係を確立し、データの送受信（アップロードやダウンロードなど）などのサーバークライアント型のネットワークシステムがある。また、近年では、ピアツーピア（所謂Ｐ２Ｐ）型のネットワークシステムが実現されている。ピアツーピア型のネットワークシステムは、ネットワークに接続した複数のコンピュータの各々をピア（Peer）として対等な関係にあるように機能を提供するべくシステムを構築したり、さらに何れか１つのコンピュータに一部の機能を集約管理させた機能部を搭載させてシステムを構築したりする。
【０００３】
上記ネットワークシステムにおいてアプリケーションを実行するためにネットワークアプリケーションが各種開発されている。このネットワークアプリケーションの一例として、オンラインゲームが注目されており、このオンラインゲームでは、オンラインゲームに参加するユーザが所有した複数のコンピュータから対象となるオンラインゲームを稼働したコンピュータへアクセスすることにより、複数のユーザがオンラインゲームに参加できるものである。また、オンライン掲示板をコンピュータ上に設けてユーザコンピュータからその掲示板に書き込みを可能とするアプリケーションがある。また、ＷＷＷ（World Wide Web）サーバを稼働してクライアントから所謂ＷＷＷブラウザによりネットワークを介してアクセス可能とするアプリケーションも知られている。
【０００４】
ネットワークアプリケーションシステムでは、他のコンピュータ（例えば、サーバーコンピュータやＰｅｅｒコンピュータ）へ接続する自己のコンピュータ（例えばクライアントコンピュータやＰｅｅｒコンピュータ）において共通の環境下で稼働することを達成するために、各々のコンピュータに、ネットワークアプリケーションシステムの共通仕様による共通のアプリケーションを導入することを要求している。
【０００５】
例えば、ネットワークアプリケーションの一例であるオンラインゲームでは、ユーザの多様な要求に応えるべく、予め種々の仕様を盛り込んでおき、そのアプリケーションを提供する。また、複数のコンピュータが運用したり稼働したりするコンピュータへ接続されることを想定して、そのアクセス制限や利用制限を予め設定しておく場合が多い。
【０００６】
図１２は、ネットワークアプリケーションシステムにおける１つのコンピュータのアーキテクチャを概念的に示したものである。図１２のアーキテクチャは、コンピュータのハードウェア及びそのハードウェアを稼働させるソフトウェアにより構成されるものである。コンピュータ１００は、ハードウェア毎の固有仕様やオペレーティングシステム（ＯＳ）に左右されずにハードウェアの基本動作を制御するバーチャルマシン１０２を構成として構築される。このバーチャルマシン１０２は、バーチャルマシン１０２を利用してコンピュータ１００を稼働するライブラリ１０４が構成に追加可能であり、バーチャルマシン１０２とライブラリ１０４との間でデータを授受するためのインタフェース１０６を双方に備える。
【０００７】
また、バーチャルマシン１０２には、コンピュータ１００でアプリケーションを稼働するための資源であるコンテナ１１０が設けられる。このコンテナ１１０には、外部と通信するためのプロトコル（例えばＨＴＴＰ）機能を実現するためのユニット１１２を含んでおり、外部装置との間で、ＨＴＴＰプロトコルによるデータ授受が可能な構成になっている。このコンテナ１１０は、コンテナ１１０の機能拡張などのためのライブラリ１１４が構成に追加可能であり、コンテナ１１０とライブラリ１１４との間でデータを授受するためのインタフェース１１６を双方に備える。このライブラリ１１４により、コンピュータ１００内部のデータ１１８に対するアクセスが可能となる。
【０００８】
さらに、コンテナ１１０には、コンポーネント１２０，１３０が配置可能である。コンポーネント１２０は、ユニット１１２を介して外部装置とデータ授受するアプリケーション機能を有しており、そのために、コンテナ１１０とコンポーネント１２０との間でデータを授受するためのインタフェース１２２を双方に備える。また、コンポーネント１２０はバーチャルマシン１０２との間でデータ授受するためのインタフェース１２４を備えている。コンポーネント１３０は、内部にファイルデータ１３４を有すると共にコンポーネント１３０に固有のライブラリ１３６を連携して構成され、内部ファイルデータ１３４及びライブラリ１３６を利用するために、コンテナ１３０にインタフェース１３２を備える。
【０００９】
上述のように、コンピュータ１００は、機能追加などのライブラリを追加するときやアプリケーションを利用するときには、そのコンポーネントやライブラリなどの固有のインタフェースを必要とし、そのインタフェースを用いてコンポーネントやライブラリを利用することになる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、そもそも、ネットワークアプリケーションで、ネットワーク上を流通する情報は、そのアプリケーションで利用するデータのみが殆どであり、ネットワークアプリケーション自体に付加価値を追加する場合など、サーバー側に、機能をリアルタイムで追加したり変更したりすることは困難である。例えば、クライアント側において追加機能をダウンロードし、追加機能をインストールする処理を自動的に行うものはあるが、ネットワークアプリケーションを利用中に、サーバー側で自動的にサービスを構築する処理が完了するものはない。また、サービス変更に伴う機能追加、仕様変更、機能削除などの変更にあたっては、ネットワークアプリケーション自体に影響するため、サーバー側で仕様変更やデータ構造変更が要求され、その度にシステム停止やシステム変更が余儀なくされていた。
【００１１】
また、ネットワークアプリケーションを提供するサービス業者は、仕様やデータ構造を決定してネットワークアプリケーションのサービスを構築するが、その仕様やデータ構造はサービス業者が独自に定義したり制御したりすることを前提としており、サービス業者以外の第三者が関連サービスを構築することは困難であった。これは、ネットワークアプリケーションの関連サービスを構築したり運営したりすることが、ネットワークアプリケーション自体や実行環境に依存したものであり、ネットワークアプリケーションの少なくとも一部の領域を抽出した開発や運用が困難なためである。
【００１２】
また、ネットワークアプリケーションは、多数のコンピュータからのアクセスにより高負荷状態になることが予測されるので、予め高負荷に対する対処を想定する必要があるが、ネットワークアプリケーションのどの箇所に高負荷になることを予測することは困難であった。
【００１３】
本発明は、上記事実を考慮して、単純なシステム運用を可能とし、サービス提供者に同期や変更などの煩わしさを感じさせることなく関連サービス構築を容易とするための情報を授受することができる情報処理装置、システム、方法及びプログラムを得ることが目的である。
【課題を解決するための手段】
【００１４】
上記目的を達成するために請求項１の発明の情報処理装置は、ネットワークを介して他の装置との間で情報を授受する情報処理装置であって、複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶した記憶手段と、前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理するする授受手段と、前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に変換する第１の変換手段と、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施す制御手段と、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に変換する第２の変換手段と、含むエンジン手段と、を含んでいる。
【００１５】
本発明の情報処理装置によれば、記憶手段には複数のノードによってツリー構造で表されるオブジェクトが複数記憶されている。このオブジェクトは、ネットワークで自身を識別するための識別情報に、オブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられる。識別情報には、プロトコル名とドメイン名を用いることができる。また、オブジェクト位置情報は、ツリー構造における最上位のノードから自身のノードまでの位置をツリー構造に従って各ノードの名称を示す名称情報を連続して表すことができる。例えば、オブジェクトがツリー構造として、機能、アイテム等の種類及びプロパティ等で代表される属性の順に構成される場合、識別情報の一例としてプロトコル名及びドメイン名機能に、種類及び属性”を順に連結して自身の位置を示す一意のアドレスが与えられる。そのアドレスのオブジェクトについてデータ書込領域を備えている。このデータ書込領域に属性値を格納することで、オブジェクトを表現できる。
【００１６】
授受手段は、ネットワークを介して他の装置との間でＸＭＬ形式の言語などで記述された外部言語で表された情報を授受する。この授受では一般にプロトコルに従ってなされる。これと共に、授受手段は、アドレスが指定された記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理する。これによりオブジェクトへの処理要求を逐次処理することができる。
【００１７】
前記記憶手段と前記授受手段との間には、エンジン手段が設けられる。このエンジン手段は、第１の変換手段、第２の変換手段、及び制御手段を含んでいる。第１の変換手段は、ＸＭＬ形式の言語などで記述された外部言語によるオブジェクトを処理の要求と共に少なくとも１つ取得して取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に変換する。従って、外部からオブジェクトを取得しても、オブジェクトの構造を維持した状態で利用することができる。また、第２の変換手段は、記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま外部言語に変換する。従って、外部へオブジェクトを出力する場合でも、オブジェクトの構造を維持できる。また、制御手段は、要求されたオブジェクトのアドレスを解釈しかつ解釈したアドレスのオブジェクトに対して要求された処理を施す。これにより、自身の位置を示す一意のアドレスで与えられるオブジェクトに対して、要求された処理を、施すことができる。
【００１８】
このように、本発明の情報処理装置は、オブジェクトの有するアドレスの解決をしたり、ツリー構造を維持したまま外部言語による情報に可逆変換したりすることが可能である。これによって、オブジェクトの取得やその値の取得、そして、属する機能の取得について、エンジン手段によるインタフェースによってなされる。従って、エンジン手段は、オブジェクトについて、一意のアドレスの解決やツリー構造を維持したままの可逆変換を可能とする汎用インタフェースとして機能することに相当する。
【００１９】
請求項２の発明は、請求項１に記載の情報処理装置において、前記アドレスは、ＵＲＩで表されることを特徴とする。ＵＲＩ（Uniform Resource Identifier）は、ＴＣＰ／ＩＰ等のプロトコルによって情報を授受するために用いることができ、これをラベルとしてアドレス表現に用いることで、オブジェクトを一意に表すことができる。
【００２０】
請求項３の発明は、請求項１または請求項２に記載の情報処理装置において、前記エンジン手段は、装置内部で要求されたオブジェクトのアドレスを解釈しかつ解釈したアドレスのオブジェクトについて外部記憶の場合には、前記第２の変換手段で前記外部言語に変換し、内部記憶の場合には前記授受手段へ該アドレスを出力する判断手段を含むことを特徴とする。
【００２１】
この判断手段により、例えば、ドメイン名を判別することによって、オブジェクトが外部記憶であるのか内部記憶であるのかを判別することができ、外部記憶にあるオブジェクトも内部記憶にあるオブジェクトも、ＵＲＩによって同等に記述できるため、その違いを意識することなくオブジェクトを操作することができる。
【００２２】
請求項４の発明は、請求項１乃至請求項３の何れか１項に記載の情報処理装置において、前記エンジン手段では、第１の変換手段が一部変更として追加を含む処理の要求を取得し、制御手段が前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを追加する処理またはオブジェクトへの変更を行う処理を施すことを特徴とする。
【００２３】
オブジェクトは、他のオブジェクトの一部に追加したり、利用したりすることが可能である。そこで、エンジン手段において、第１の変換手段が一部変更として追加を含む処理の要求を取得して制御手段がアドレスが指定された記憶手段に記憶されたオブジェクトに対して取得したオブジェクトのツリー構造を保持したまま取得したオブジェクトを追加する処理を施すことにより、オブジェクトを他のオブジェクトに追加したり利用したりできる。
【００２４】
請求項５の発明の情報処理システムは、請求項１乃至請求項４の何れか１項に記載の情報処理装置を、前記ネットワークに複数接続したものである。ネットワークに複数の情報処理装置を接続することで、複数の情報処理装置間でオブジェクトを授受することができる。
【００２５】
前記情報処理装置は、次の情報処理方法による機能を有している。詳細には、請求項６の発明は、ネットワークを介して他の装置との間で情報を授受する情報処理方法であって、複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶し、前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理し、前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をし、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施し、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をする工程を含んでいる。
【００２６】
前記情報処理方法は、次の情報処理プログラムにより、コンピュータで実行させることが可能である。詳細には、請求項７の発明は、ネットワークを介して他の装置との間で情報を授受するコンピュータで実行される情報処理プログラムであって、複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶させ、前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理させ、前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をさせ、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施させ、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をさせる工程を含んでいる。
【発明の効果】
【００２７】
以上説明したように本発明によれば、コンピュータのハードウェアやそのハードウェアを稼働させるオペレーティングシステムに依存することなく、またオブジェクトがネットワーク上の何れにあってもその違いを意識することなく利用できるので、ネットワークアプリケーション構築及び運用の負荷を軽減することができる、という効果がある。
【００２８】
また、本発明によれば、一意のアドレスによるオブジェクトについて、アドレスの解決をしたりツリー構造を維持したまま外部言語による情報に可逆変換したりすることができるので、オブジェクトを扱う方法を事前に掌握したり定義したりする必要がなく、必要に応じてオブジェクトを利用することができる。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。本実施の形態は、ネットワークアプリケーションシステムの一例として、オンラインゲームをネットワークアプリケーションとし、オンラインゲームをを利用する利用側と、そのオンラインゲームを運用する運用側とからなるシステムにおいて、ネットワーク上で情報授受を行う場合に本発明を適用したものである。
【００３０】
図２には、本発明が適用可能なネットワークシステムの概略構成が示されている。図２に示したように、ネットワークシステム１０は、各々同一または異なる操作者が操作可能な複数のコンピュータ１２が、それぞれモデム、ルータ、ターミナル・アダプタ（Terminal Adapter）等の接続装置１６を介して、ネットワーク（例えば、インターネット）１８に接続されて構成されている。複数のコンピュータ１２は、ネットワーク１８を介して、相互通信により情報授受が可能な構成である。
【００３１】
また、以下の説明では、図２に示したように、複数のコンピュータ１２のうち少なくとも１つのコンピュータ１２がオンラインゲームを運用するための各種情報を提供するコンピュータ（以下、「第１サーバ・コンピュータ」という）１３として機能し、また、コンピュータ１２のうち少なくとも１つのコンピュータ１４は、ユーザ側でオンラインゲームを利用するコンピュータ（以下、「ユーザ・コンピュータ」という）１４として機能する構成を一例として説明する。なお、複数のコンピュータ１２のうち少なくとも１つのコンピュータ１２は、他のサーバ・コンピュータの一部の機能を実行したり引き継いだりして（詳細は後述）、その機能を実行するコンピュータ（以下、「第２サーバ・コンピュータ」という）１５として機能する場合がある。
【００３２】
なお、第１サーバ・コンピュータ１３、ユーザ・コンピュータ１４、第２サーバ・コンピュータ１５を各々１台ずつとして説明するが、本発明は、これに限定されるものではなく、複数台でもよい。また、本実施の形態では、サーバ・コンピュータ及びクライアント・コンピュータとの間で情報授受を実行する場合を説明するが、情報の授受はサーバ・コンピュータ及びクライアント・コンピュータの間に限定されるものではなく、コンピュータ間及びコンピュータ内の情報授受を含むものである。
【００３３】
上記ネットワーク１８は本発明のネットワークに相当する。このネットワークは、インターネットやイントラネット等のネットワークを含み、複数の装置間を無線または有線で結合可能な構成であればよい。例えば、複数のローカルエリアネットワーク間を電話回線や無線通信回線で接続した構成を含むものである。また、ネットワーク内に電話回線や無線通信回線との接続のための中継局を設け、この中継局を介して電話回線や無線通信回線に接続された端末をネットワークに参加させてもよい。また、コンピュータ１２は、携帯電話やＰＤＡ等の小型の携帯端末を用いることができる。
【００３４】
本実施の形態では、ネットワークとしてインターネットを適用した場合を説明する。なお、本実施の形態では、詳細は後述するが、単にデータを元のままの状態で授受するのみではなく、ＵＲＩ（Uniform Resource Identifier）を指定してＴＣＰ／ＩＰ等のプロトコルによって情報を授受する。一方、周知のように、１つのコンピュータを、ＷＷＷ（World Wide Web）サーバとして機能させ、他のコンピュータをＷＷＷクライアントとして機能させるアプリケーションがある。このアプリケーションでは、ネットワークを介してサーバ・コンピュータに任意にアクセス可能な構成とし、アクセス位置（アクセス先のサーバ・コンピュータの位置、及びサーバ・コンピュータ内の情報の位置で構成されるデータ）は、ＵＲＩを指定してデータを元のままの状態で授受する。
【００３５】
本実施の形態では、第１サーバ・コンピュータ１３は、ユーザ・コンピュータ１４からアクセス要求があった場合、ＵＲＩによるラベルで指定された位置にあるデータ等を、その構造を維持したままネットワーク１８を介して、アクセス元のユーザ・コンピュータ１４へ送信する。この送受信には、ＨＴＴＰ（Hyper Text Transfer Protocol）等のプロトコルを用いることができる。なお、コンピュータ１２の識別には、ＩＰ（Internet Protocol）アドレスやドメイン名が用いることができる。
【００３６】
図３に示すように、コンピュータ１２は、ＣＰＵ１２Ａ、ＲＯＭ１２Ｂ、及びＲＡＭ１２Ｃが入出力インタフェース１２Ｅを介してデータやコマンドを授受可能に接続された構成であり、入出力インタフェース１２Ｅには、フラッシュメモリなど２次メモリ１２Ｄ，ハードディスクドライブなどの大容量記憶装置１２Ｆが接続されている。また、コンピュータ１２は、当該コンピュータで指示入力をするために、各々キーボード、マウス等の入力装置１２Ｇが設けられており、コンピュータによる処理結果等を表示するためにディスプレイ１２Ｈが設けられている。さらに、コンピュータ１２には、ネットワーク１８に接続するためのネットワーク接続装置１２Ｊ、フレキシブルディスクや光ディスクなどの記憶媒体に読み書きするためのメディア装置１２Ｋが接続されている。なお、コンピュータ１２は、汎用的かつ一般的なハードウェア構成であるため、詳細な説明を省略すると共に、コンピュータ１２に内蔵可能な機器や接続可能な機器についても汎用的かつ一般的なハードウェア構成であるため、その構成及び詳細な説明を省略する。
【００３７】
図１に、上記構成によるコンピュータ１２についてハードウェア資源とソフトウェア資源を用いて稼働するときの、機能的なブロック図を示した。図１は、第１サーバ・コンピュータ１３の構成の一例を示したものである。第１サーバ・コンピュータ１３のアーキテクチャは、ランタイム部２０、コンテント・エンジン部３０、及びコンテント部４０で構成されている。
【００３８】
なお、本実施の形態のランタイム部２０は本発明の授受手段に対応し、コンテント・エンジン部３０は本発明のエンジン手段に対応し、コンテント部４０は本発明の記憶手段に対応する。
【００３９】
ランタイム部２０は、主に、他のコンピュータとの情報授受や第１サーバ・コンピュータ１３のハードウェア資源に対する各種処理を実施する機能部であり、コンテント・エンジン部３０から見て、所謂、ＯＳ及び通信機能などを隠蔽し、マシン依存性を含む環境依存性を解消するための層である。このランタイム部２０は、従来技術のユニット１１２と同様に、外部と通信するためのプロトコル（例えばＨＴＴＰ）機能を実現するための通信ユニット２２を含んでおり、外部装置との間で、通信ユニット２２の定めるプロトコルによるデータ授受が可能な構成になっている。
【００４０】
図１の例ではランタイム部２０が有する通信ユニット２２として、ＳＯＡＰユニット２５及びＨＴＴＰユニット２６を備えた場合を示している。なお、通信プロトコルとしてＨＴＴＰやＳＯＡＰに限定されるものではない。また、コンテント・エンジン部３０は、シリアライズされたメッセージを通信ユニット２２との間で授受するが、通信ユニット２２の用いるプロトコルの違いはランタイム部２０で解消されるため、その違いに左右されることはない。詳細は後述するが、ＵＲＩによって記述されたラベルによってコンテントを把握するが、そのＵＲＩには、プロトコル名が記述されており、そのＵＲＩによって吸収される。
【００４１】
コンテント・エンジン部３０は、本実施の形態において、オブジェクト（後述するコンテント）を一意に定めることを可能にする主要な制御を行う機能部であり、詳細にはオブジェクト（コンテント）を構成するノードによる階層構造管理を行うものである。コンテント部４０は、コンテント・エンジン部３０によって制御される少なくとも１つのコンテントを記憶した記憶部であり、図１の例では、アプリケーションを構成する１または複数のノードからなるコンテント４２、ファイル４４Ａを内包したコンテント４４、データベース５０にアクセスするライブラリとして機能するコンテント４６、第１サーバ・コンピュータ１３内に格納されたファイルにアクセスするライブラリとして機能するコンテント４８を有している。
【００４２】
ここで、オブジェクトは、データ・ノードや実行体であるアプリケーション・ノードの各々、及びそれらの組み合わせによるノード群を含む総体をいい、以下の説明では、コンテントと総称する。また、コンテントは、ノードによるツリー形状で表すことができる階層構造を有することができる。すなわち、コンテントは、アプリケーションを構成する１または複数のノードからなるモジュール、アプリケーションが利用するライブラリ、データベース、ファイル、テキストデータ（マルチメディアデータ）などのリソース等についての総称である。
【００４３】
上記コンテント４４の一例として、アプリケーションにおいてランプを利用する場合を説明する。まず、図７には、アプリケーション内でランプを定義するための一例を示した。ランプは、アプリケーション内の売買価格（１００）、重量（５０）、残燃料（３０）を初期値として有しており、その状態を表すステートの値は、点灯、消灯、一定間隔実行の３種類が定められている。ランプの現在状態は消灯で、点灯はランプを点灯するときに利用するアプリケーション（点灯ロジック）の指定であり、消灯はランプを消灯するときに利用するアプリケーション（消灯ロジック）の指定であり、一定間隔実行はランプの点灯に伴い減少する燃料を求めるアプリケーション（点灯・燃料減少ロジック）の指定である。なお、図７には、これらの定義をユーザに示すためのイメージ（左側）と、アプリケーションで表示されるランプ自体のイメージ（右側）とを示した。
【００４４】
上記コンテント４４としてランプを採用した場合、そのランプを特定するノードが必要である。図５には、本実施の形態においてコンテントとしてランプを表現するための構造例を示した。ランプを表現するコンテントは、ノードによるツリー構造とされ、その基点は、格納位置である。基点は、コンテントを授受するためのプロトコル名、及びコンテントが格納（配置）されたコンピュータやコンピュータ上の位置を表すドメイン名（及び格納位置）により与えられる。本実施の形態では、コンテントを識別するためにＵＲＩ（Uniform Resource Identifier）をラベルとして用いている。例えば、通信プロトコルにＨＴＴＰプロトコルを用い、コンテントが配置されたサーバを示すドメイン名が "game_A" のとき、"http://game_A" となる。ランプコンテントがこれに属すると設定するので、基点に対して”／”を付与する。すなわち、ランプコンテントのみで考えた場合、基点は、”／”で表される。この基点である”／”以前にプロトコル名及びドメイン名（必要であれば格納位置）が与えられることにより、ランプコンテントを一意なアドレスで表現することが可能となる。
【００４５】
すなわち、コンテント・エンジン部３０の管理下のツリー構造によるコンテント４２は、ＵＲＩによるラベルとして、「プロトコル名：／／ドメイン名」を基点とし、続けてコンテント４２のツリー構造が表される。
【００４６】
図５の例では、アプリケーションで利用する品目としてｌａｍｐがある場合、基点（"/"）の下位ノードにカテゴリとして利用可能品目の定義部分とユーザの指定部分とを分類するためのノードが属される。すなわち、基点の下位にｉｔｅｍｓとｕｓｅｒのノードが並列に属している。ｉｔｅｍｓのノードは、下位に属する品目の親ノードを表すもので、図５の例ではｌａｍｐノードが下位に属している。このｌａｍｐノードには、図６に示すように、各種状態値やロジックを表すノードが下位に並列に属している。また、ｕｓｅｒのノードは、上記ｉｔｅｍｓのノードを所有または利用可能なユーザの各種データに対する親ノードであり、図５の例ではｔａｒｏノード、ｌａｍｐノード、ｆｕｅｌノードの順に各ノードが下位に属している。従って、図５の例では、ユーザ「ｔａｒｏ」が、品目として「ｌａｍｐ」を有しており、その残量が「２５」であることを表している。この「ｌａｍｐ」は、点灯及び消灯にロジックを有し、さらに、点灯時には、徐々に燃料が減少するロジックを有している。
【００４７】
これらの各ノードをツリー構造を維持して列挙するときには、”／”等の所定記号で連続させるように設定する。すなわち、”／”等の所定記号は、直前と直後のノードが親子関係にあることを明示するためのものである。言い換えれば、全てのノードは、基点のノードからのパス表現による一意のアドレス表現がなされる。各々のノードは、値を有する場合にその値を格納する領域を有している。
【００４８】
次に、図４を参照して、ランタイム部２０及びコンテント・エンジン部３０の主要構成と共に、コンテント部４０に対する動作の一例を説明する。
【００４９】
ランタイム部２０は、他のコンピュータ１２から情報を授受する通信ユニット２２（図４では、受信側を通信ユニット２２Ａ、他のコンピュータ１２への情報の出力側を通信ユニット２２Ｂと記載）、メッセージを受け取ると共に貯留して逐次出力（要求）するメッセージプール２４を備えている。コンテント・エンジン部３０は、デシリアライズ部３２，パス解決部３４，ドメイン判断部３６，及びシリアライズ部３８を有している。デシリアライズ部３２は、通信ユニット２２からのコンテントの情報（例えば、ＸＭＬ形式で記述された構造化データ）を受け取りコンテントの構造を維持したままの各種情報を内部情報として変換してメッセージプール２４へ出力する機能部である。パス解決部３４は、メッセージプール２４からのメッセージを受け取り、メッセージの対象となるコンテントのアドレスを把握してそのアドレスのコンテントに対して要求の処理を施す機能部である。シリアライズ部３８は、内部情報であるコンテントの要求などのメッセージをコンテントの構造を維持したままの情報（例えば、ＸＭＬ形式で記述された構造化データ）に変換する機能部である。ドメイン判断部３６は、コンテントからの要求のメッセージが自己のコンピュータ内部に対するものであるか外部コンピュータに対してであるかを判断する機能部である。この判断は、ＵＲＩのドメイン名が自己のコンピュータのものであるか否かを判別することで達成できる。
【００５０】
従って、アプリケーションを構成する複数のノードからなるコンテント４２が、データやロジックなどのノードを呼び出す場合、まずドメイン判断部３６で内部コンテントに対する要求メッセージか否かを判断し、内部であるときは、メッセージプール２４に対してメッセージを出力し、その処理を待つ。一方、外部に対する要求であるときは、その要求メッセージをシリアライズ部３８でＸＭＬ形式で記述し、要求の機能を示す一意のアドレスへ向けて通信ユニット２２から出力する。この後、外部からコンテントを受け取る。この場合、通信ユニット２２によりＸＭＬ形式によるメッセージを受け取り、デシリアライズ部３２において内部情報に変換されてメッセージプール２４に貯留される。そして、パス解決部３４により一意のアドレスによるパスが解決されて、コンテントが格納される。
【００５１】
すなわち、本実施の形態では、ＵＲＩでラベリングされた一意のアドレスによるコンテントは、アドレスの解決がなされたり、ツリー構造を維持したままＸＭＬ文書に可逆変換したりすることが可能である。この可逆変換とは、シリアライズ部３８によるシリアライズ変換と、デシリアライズ部３２によるデシリアライズ変換である。これによって、コンテントの取得やその値の取得、そして、属する機能の取得について、コンテント・エンジン部３０による同一のインタフェースによってなされる。従って、コンテント・エンジン部３０は、コンテントについて、ＵＲＩでラベリングされた一意のアドレスの解決がなされたり、ツリー構造を維持したままＸＭＬ文書に可逆変換したりすることが可能な汎用インタフェースとして機能することとなる。
【００５２】
また、本実施の形態では、メッセージプール２４を備えてコンテントへの処理要求を逐次処理することができるので、非同期メッセージングを実現することができる。
【００５３】
なお、本実施の形態のシリアライズ部３８は本発明のエンジン手段を構成する第２の変換手段に対応し、デシリアライズ部３２は本発明の第１の変換手段に対応し、パス解決部３４は本発明の制御手段に対応する。また、本実施の形態のドメイン判断部３６は、本発明のエンジン手段を構成する変換手段に対応する。
【００５４】
次に、ランタイム部２０及びコンテント・エンジン部３０の処理を各々個別に説明する。図８には、ランタイム部２０の処理の流れを示し、図９にはコンテント・エンジン部３０の処理の流れを示した。
【００５５】
ランタイム部２０では、図８のステップ２００において内部または外部よりのラベルを取得する。このラベルは、ＵＲＩで記述されたもので、プロトコル名及びドメイン名から内部または外部からの要求を判別できる。次のステップ２０２では、内部からの要求であるか否かを判断する。ステップ２０２で否定されると、ステップ２０４において、外部からのメッセージを取得する。この取得は、通信ユニット２２の受け取りに相当する。次のステップ２０６では、取得したメッセージをデシリアライズ部３２へ出力する。一方、ステップ２０２で肯定されると、ステップ２０８へ進み、コンテント・エンジン部３０からメッセージを取得する。この取得は、デシリアライズ部３２及びドメイン判断部３６からの受け取り、またはシリアライズ部３８からの受け取りである。次のステップ２１０では、メッセージが外部への出力要求か否かを判断する。この判断は、シリアライズ部３８からの出力に相当するか否かの判断である。ステップ２１０で肯定されたときは、ステップ２１４へ進み、メッセージを通信ユニット２２によって出力する。一方、ステップ２１０で否定されたときは、ステップ２１２でメッセージをメッセージプール２４に貯留し処理する。この処理は要求に応じて出力する処理である。
【００５６】
コンテント・エンジン部３０では、図９のステップ３００において、ＵＲＩを読み取ると共に、コンテントからのものであるか否かを判断する。ステップ３００で否定されると、ステップ３０２においてランタイム部２０からのメッセージを取得し、次のステップ３０４でデシリアライズを要求するものであるか否かを判断する。ステップ３０４で否定されると、ステップ３１０へ進み、一意アドレス処理を実行する（例えば、図１０）。一方、ステップ３０４で肯定されると、ステップ３０６においてＸＭＬ形式などのメッセージを内部情報にデシリアライズ部３２でデシリアライズ変換し、次のステップ３０８でメッセージプール２４へ出力する。
【００５７】
一方、ステップ３００で肯定されると、ステップ３１２へ進み、コンテントからのメッセージを取得する。次のステップ３１４では、メッセージが要求するアドレスが外部であるか内部であるかをドメイン名により判断する。内部に対するものであるときは、ステップ３０８へ進みメッセージプール２４へ出力する。一方、外部であるときは、ステップ３１６においてシリアライズ部３８によるシリアライズ変換を行い、変換結果の情報（ＸＭＬ形式）を次のステップ３１８において、通信ユニット２２へ出力する。
【００５８】
図１０には、コンテントの一意のアドレスを解釈してコンテントを取得する処理の一例、すなわち、パス解決部３４の処理の一例を示した。
【００５９】
図１０のステップ３２０では、アドレスを取得し、次のステップ３２２において、ノードを取得する。このノードは、上述のＵＲＩによるドメイン名及び格納位置に基づきノードを取得する処理である。次のステップ３２４では、取得したアドレスに下位層があるか否かを判断する。この判断は、上述のように、”／”で区切られた識別子が存在するか否かの判別により達成される。ステップ３２４で肯定されたときは次のステップ３２６で下位層ノードを取得し、全てのノードについて取得するまで繰り返す（ステップ３２４で否定）。ステップ３２４で否定されると、ステップ３２８へ進み、コンテントを出力する。
【００６０】
次に、図１３を参照して、上記構成によるコンテントを利用することで達成可能な関連サービスの構築について説明する。ここでは、関連サービスとして、オンラインゲーム上で利用されるアイテムの取引を掲示板を利用して行う場合を説明する。ここでいう、アイテムとは、アプリケーションｇａｍｅ＿Ａ内におけるキャラクタ、このキャラクタが利用可能なオンラインゲーム内の装備や道具などをいう。
【００６１】
第１サーバ・コンピュータ１３ではオンラインゲームであるアプリケーションｇａｍｅ＿Ａが稼働すると共に、このオンラインゲームであるアプリケーションｇａｍｅ＿Ａのアイテムを取引するためのアイテム取引のコンテント（アイテム取引モジュール４０Ｃ）を含んで構成されている。また、第２サーバ・コンピュータ１５ではアイテム取引に関する掲示板のアプリケーションを実行させるためのコンテント（掲示板モジュール４０Ｂ）を含んで構成されており、掲示板のアプリケーションが稼働されている。すなわち、第２サーバ・コンピュータ１５において掲示板の運営を管理するアプリケーション（コンテント）を以下の説明では、便宜上、管理ツール４０Ａとし、掲示板の処理を実行するアプリケーション（コンテント）を、掲示板モジュール４０Ｂとする。また、第１サーバ・コンピュータ１３でアイテム取引処理を実行するアプリケーション（コンテント）を、アイテム取引処理モジュール４０Ｃとする。また、以下の説明ではコンテント・エンジン部を省略して説明する。
【００６２】
また、ここでの説明では、アイテム売却を希望するユーザはプレーヤＵ、アイテム購入を希望するユーザはプレーヤＶとして各々ユーザ・コンピュータを操作するものとし、掲示板の運営を管理する管理者を掲示板運営者Ｗとしてアイテムの売買処理を説明する。なお、プレーヤＵが操作するユーザ・コンピュータ１４上で稼働される、掲示板を介したアイテム売買処理を実行するアプリケーション（コンテント）を、プレーヤモジュール１４Ａとし、プレーヤＶが操作するユーザ・コンピュータ１４上で稼働される、掲示板を介したアイテム売買処理を実行するアプリケーション（コンテント）を、プレーヤモジュール１４Ｂとする。また、以下の説明では、掲示板の運営者がアイテム取引コンテントを利用して掲示板にアイテム取引のサービスを追加する場合を説明する。
【００６３】
まず、掲示板運営者Ｗは、アイテム取引方法照会のため、キーボードなどの操作（指示入力Ｐ１０）による指示によって、管理ツール４０Ａからアイテム取引処理モジュール４０Ｃに対してアクセスし、「アイテム取引内容を取得」という指示のメッセージＭ２０を出力する。この管理ツール４０Ａからアイテム取引処理モジュール４０Ｃへのアクセスは、上述の汎用インタフェース（コンテント・エンジン部３０）を介してなされるので、互いの固有言語には依存しない。次に、アイテム取引処理モジュール４０Ｃは、アイテム取引内容に関する情報として次の３つの取引情報を取得し（プロセスＲ１０）、返信する（メッセージＭ２１）。第１の取引情報は、取り扱っているアイテムの調査方法を記述した情報であり、第２の取引情報は、アイテムの価格の調査方法を記述した情報であり、第３の取引情報は、アイテムの購入方法を記述した情報である。この返信を受けて、管理ツール４０Ａはディスプレイへの表示などにより、掲示板運営者Ｗに対して照会結果を提示する（指示出力Ｐ１１）。掲示板運営者Ｗは、照会結果を基にして、キーボードなどの操作（指示入力Ｐ１２）による指示によって、管理ツール４０Ａから掲示板モジュール４０Ｂに対して「アイテム取引サービスを追加」という指示のメッセージＭ２２を出力する。これによって、掲示板モジュール４０Ｂでは、アイテム取引サービスの追加処理が実行される（プロセスＲ１１）。
【００６４】
次に、プレーヤＵはキーボードなどの操作（指示入力Ｐ１３）によりプレーヤモジュール１４Ａからアプリケーションｇａｍｅ＿Ａで利用することができる「アイテム売却希望」というメッセージＭ２３を第２サーバ・コンピュータ１５の掲示板モジュール４０Ｂへ送信する。すなわち、この送信は、稼働された掲示板にアイテムの売却希望の情報を書き込む処理である。この掲示板をプレーヤＶが参照して取得を希望する場合、プレーヤＶはキーボードなどの操作（指示入力Ｐ１４）によりプレーヤモジュール１４Ｂから「アイテム購入希望」というメッセージＭ２４を掲示板モジュール４０Ｂへ送信する。すなわち、この送信は、掲示板にアイテムの購入希望の情報を書き込む処理である。
【００６５】
掲示板モジュール４０Ｂでは、売買者と購入者の双方の書き込みを監視すなわちアイテム取引の成立を監視しており（プロセスＲ１２）、取引が成立した場合に、「アイテム取引成立」というメッセージＭ２５をアイテム取引処理モジュール４０Ｃへ送信する。この送信情報には、プレーヤＵがアイテムを売ってプレーヤＶが買うというメッセージを含んでいる。また、売買金額を付加してもよい。
【００６６】
アイテム取引処理モジュール４０Ｃは、「プレーヤＵの所持金を販売金額に応じて増加させると共に、持ち物リストから販売したアイテムを削除」というメッセージＭ２６をプレーヤモジュール１４Ａへ送信する。また、アイテム取引処理モジュール４０Ｃは、「プレーヤＶの所持金を購入金額に応じて減少させ、持ち物リストにアイテムを追加」というメッセージＭ２７をプレーヤモジュール１４Ｂへ送信する。ここで、アイテムの管理がアイテム取引処理モジュール４０Ｃでなされているときは、アイテム取引処理モジュール４０Ｃにおいて、プレーヤＵの所持金を販売金額に応じて増加させると共に、持ち物リストから販売したアイテムを削除し、プレーヤＶの所持金を購入金額に応じて減少させ、持ち物リストにアイテムを追加する（プロセスＲ１３）。また、各プレーヤモジュールでなされるときは、プレーヤモジュール１４ＡにおいてプレーヤＵの所持金を販売金額に応じて増加させると共に、持ち物リストから販売したアイテムを削除し（プロセスＲ１４）、プレーヤＶの所持金を購入金額に応じて減少させ、持ち物リストにアイテムを追加する（プロセスＲ１５）。なお、アイテム管理を他の装置で行うときは、装置に対してこれらの情報を送信すればよい。
【００６７】
このように、コンテントに一意のアドレスが与えられており、そのオブジェクトに容易に到達することができるので、サービス提供者（本実施の形態では掲示板）が自在に、コンテントを利用することができる。すなわち、上記のようにサービス提供者が掲示板にアイテム取引サービスを追加する場合、オンラインゲームアプリケーション内のアイテム取引コンテントのアドレスを取得し、掲示板サービスを稼働しているサーバに登録するだけでよい。これによって、従来、ネットワークアプリケーション構築者が定義した方法のみでしか関係するサービスを稼働することが困難であったものを、汎用インタフェースを用いることで、関連サービスを容易に構築することができる。
【００６８】
次に、図１１を参照して、上記構成によるコンテントを利用することで達成可能な負荷分散について説明する。ここでは、第１サーバ・コンピュータ１３の負荷が増大したときに、第１サーバ・コンピュータ１３の負荷を軽減するために、第１サーバ・コンピュータ１３で稼働しているコンテントを他のコンピュータ１２（第２サーバ・コンピュータ１５）へ移動して実行させる場合を説明する。
【００６９】
なお、第１サーバ・コンピュータ１３は、アプリケーションとしてｇａｍｅ＿Ａをネットワーク上で稼働し、そのアプリケーションｇａｍｅ＿Ａにユーザ・コンピュータ１４などのクライアント・コンピュータからアクセスすることで参加する場合を想定する。また、第１サーバ・コンピュータ１３は、コンテントとして、アプリケーションｇａｍｅ＿Ａの運用を管理するアプリケーションを有し、管理者ＡＤＭの指示により、アプリケーションｇａｍｅ＿Ａの各コンテントを操作できるものとする。
【００７０】
また、ここでの説明では、ユーザ・コンピュータ１４を操作するユーザはプレーヤＯＰとしてアプリケーションｇａｍｅ＿Ａに参加するものとし、以下の説明では、負荷分散の一例として、アプリケーションｇａｍｅ＿Ａ内におけるキャラクタの移動処理を説明する。なお、第１サーバ・コンピュータ１３に属するアプリケーションｇａｍｅ＿Ａの運用を管理するアプリケーション（コンテント）を以下の説明では、便宜上、運用管理ツール４２Ａとし、キャラクタの移動処理を実行するアプリケーション（コンテント）を、移動処理モジュール４２Ｂとする。また、後述するように第２サーバ・コンピュータ１５に移動されたキャラクタの移動処理を実行するアプリケーション（コンテント）を、移動処理モジュール４２Ｃとする。また、第１サーバ・コンピュータ１３と第２サーバ・コンピュータ１５のコンテント・エンジン部３０の混同を避けるため、第１サーバ・コンピュータ１３はコンテント・エンジン部３０Ｂ、第２サーバ・コンピュータ１５はコンテント・エンジン部３０Ｃとする。
【００７１】
まず、ユーザ・コンピュータ１４では、クライアント側のアプリケーション（コンテント）としてプレーヤモジュールが稼働され、プレーヤＯＰはキーボードなどの操作（指示入力Ｐ０１）によりプレーヤモジュールからアプリケーションｇａｍｅ＿Ａ内で「プレーヤＰが移動する」というメッセージＭ０１を第１サーバ・コンピュータ１３へ送信する。この送信では、移動処理モジュール（コンテント）４２Ｂのアドレスを指定しており、移動処理モジュール４２Ｂの一意のアドレスを第１サーバ・コンピュータ１３に対して送信することになる。第１サーバ・コンピュータ１３では、コンテント・エンジン部３０Ｂにおいて、メッセージを取得し、移動処理モジュール４２Ｂ（例えば、図１のコンテント４２）が呼び出され、移動処理モジュール４２Ｂが管理するプレーヤＰの位置情報を変更する（プロセスＲ０１）。
【００７２】
このとき、第１サーバ・コンピュータ１３に対して他のコンピュータ１２からプレーヤの移動についてのメッセージが集中すると、移動処理モジュール４２Ｂの処理に対する負荷が増大する。この負荷状況を、管理者ＡＤＭは監視しており、負荷分散の実施を判断する。なお、この判断は、管理者ＡＤＭが行って指示入力してもよいし、ＣＰＵの負荷状況を数値化し、所定値以上の負荷のときに自動的に実行してもよい。ここでは、管理者ＡＤＭが指示入力する場合を説明する。
【００７３】
管理者ＡＤＭはキーボードなどの操作（指示入力Ｐ０２）により移動処理モジュール４２Ｂの負荷分散を指示し、移動処理モジュール４２Ｂに対して「移動対象のコンテントへのメッセージをメッセージプールに貯留した状態を維持する」という指示のメッセージＭ０２をコンテント・エンジン部３０Ｂへ出力する。次に運用管理ツール４２Ａは、移動処理モジュール４２Ｂを移動するため、移動処理モジュール４２Ｂのシリアライズ要求のメッセージＭ０３をコンテント・エンジン部３０Ｂに対して出力する。コンテント・エンジン部３０Ｂはこれを受けて移動処理モジュール４２Ｂのシリアライズを行う。次に運用管理ツール４２Ａは、シリアライズした移動処理モジュール４２Ｂを、第２サーバ・コンピュータ１５へ送信するメッセージＭ０４をコンテント・エンジン部３０Ｂへ出力し、ランタイム部２０から第２サーバ・コンピュータ１５へ送信される。
【００７４】
第２サーバ・コンピュータ１５では、第１サーバ・コンピュータ１３からのシリアライズされた移動処理モジュール４２Ｂを取得し、デシリアライズして格納する。このとき、移動処理モジュール４２Ｂのコンテント構造はそのまま維持されるが、そのコンテントの一意のアドレスが、第２サーバ・コンピュータ１５として与えられることになる。次に運用管理ツール４２Ａは、第１サーバ・コンピュータ１３から移動された移動処理モジュール４２Ｂを削除する指示のメッセージＭ０５をコンテント・エンジン部３０Ｂへ出力する。これにより、コンテント・エンジン部３０Ｂは、移動処理モジュール４２Ｂを削除する。なお、ここでいう削除とは、即時削除ではなく、移動処理モジュール４２Ｂで継続的に行われている処理が完了したときに削除することである。
【００７５】
ここで、第１サーバ・コンピュータ１３から移動処理モジュール４２Ｂを削除すると、任意のコンピュータ１２から一意のアドレスで移動処理モジュール４２Ｂに対するアクセスが要求されるとき、そのコンテントが存在せず、要求に応じることができない。そこで、運用管理ツール４２Ａは、上述の削除指示のメッセージＭ０５の後、参照を表すコンテント４２Ｂａを設ける指示のメッセージＭ０６をコンテント・エンジン部３０Ｂへ出力する。このコンテント４２Ｂａは、移動処理モジュール４２Ｂの位置に、移動処理モジュール４２Ｃを参照することを表すコンテントである。これにより、移動処理モジュール４２Ｂが指示されても、容易に移動処理モジュール４２Ｃを呼び出すことができる。次に、運用管理ツール４２Ａは、コンテント・エンジン部３０Ｂに対して、移動処理モジュール４２Ｂに対する「メッセージをメッセージプールに貯留した状態を解除する」という指示のメッセージＭ０７をコンテント・エンジン部３０Ｂへ出力する。これにより、第１サーバ・コンピュータ１３では、メッセージプール２４から順次メッセージが取り出され、処理が再開される。
【００７６】
この後、プレーヤモジュールから「プレーヤＰが移動する」というメッセージＭ１０が第１サーバ・コンピュータ１３へ送信された場合、この送信では、移動処理モジュール（コンテント）４２Ｂのアドレスが指定されているが、そのアドレスには参照を表すコンテント４２Ｂａがある（Ｍ１２）ので、コンテント・エンジン部３０Ｂは、その参照先である第２サーバ・コンピュータ１５の移動処理モジュール４２Ｃへ向けてメッセージを転送する（Ｍ１２）。第２サーバ・コンピュータ１５では、コンテント・エンジン部３０Ｃにおいて、メッセージを取得し、移動処理モジュール４２Ｃが呼び出され、移動処理モジュール４２Ｃが管理するプレーヤＰの位置情報を変更する（プロセスＲ０２）。
【００７７】
このように、本実施の形態では、コンテントに一意のアドレスが与えられており、そのオブジェクトに容易に到達することができる。また、コンテントをツリー構造で定めているので、コンテントを構造を維持したまま入出力が可能である。これにより、入出力インタフェースを予め設定することなく、コンテントをそのまま利用することができ、装置間で容易に情報を授受することができる。
【００７８】
また、本実施の形態では、一意のアドレスが与えられた上記構成によるコンテントを利用することで、コンテントを装置間で移動することができ、負荷分散をアプリケーションの稼働中に無停止で行うことができる。従って、予め負荷分散を前提としたシステム構築をする必要がない。
【００７９】
また、コンテントに一意のアドレスが与えられており、そのオブジェクトに容易に到達することができるので、例えば掲示板等のサービス提供者が自在に、ネットワークアプリケーションで利用可能なコンテントを利用することができる。これによって、従来、ネットワークアプリケーション構築者が定義した方法のみでしか関係するサービスを稼働することが困難であったものを、ネットワークアプリケーション構築時に想定しない関連サービスとしてサービス提供者が容易に構築することができる。
【００８０】
また、本実施の形態では、一意のアドレスが与えられた上記構成によるコンテントを利用することで、ネットワークアプリケーションの実行環境（運用環境）に連動したものとなり、ネットワークアプリケーション開発時や関連サービス開発時にあって、分業体制を促進することができる。
【００８１】
上記実施の形態では、インターネット等のネットワークの一例を説明したが、このネットワークは、有線及び無線のいずれでもよい。
【００８２】
また、本実施の形態では、ＵＲＩによるアドレス付与されたコンテントをＨＴＴＰプロトコルなどで授受する場合を説明したが、プロトコルを限定するものではない。また、授受するものとして、ＸＭＬ形式で記述された形態の情報に限定されるものではなく、マークアップ言語でない構造化文書のための規格（例えばＹＡＭＬ等）などで記述された形態の情報でもよい。また、この他、ネットワーク間で流通可能な共通の規格による言語形式を採用してもよい。すなわち、以下の条件に合致する形態のものであればよく、任意の形態を採用することができる。その条件とは、コンテントの階層構造を表現できること、処理が固有言語に依存しないこと、プロトコルと親和性があること、多様なデータ形式を表現できること、である。
【００８３】
また、本実施の形態では、ランタイム部２０、コンテント・エンジン部３０、コンテント部４０の何れかの間で、情報授受例えばメッセージの授受をした場合を説明したが、情報授受は各部の間で直接実行されることに限定されない。例えば、キャッシュメモリを備えて情報授受を一時的に記憶し同種の情報授受に対して過去の情報授受を実行する所謂キャッシュ機能を追加してもよい。
【００８４】
また、ネットワーク上や装置内で情報授受する場合、認証機構を付加してコンテントの内部または外部からの取得や呼び出しを許可または制限するアクセス制限機能やライセンスコントロール機能を追加してもよい。
【図面の簡単な説明】
【００８５】
【図１】本発明の実施の形態に係るネットワークシステムのコンピュータについてハードウェア資源とソフトウェア資源を用いて稼働するときの機能的なブロック図である。
【図２】本発明の実施の形態に係るネットワークシステムの概念構成図である。
【図３】コンピュータの基本構成を示すブロック図である。
【図４】本発明の実施の形態に係るコンピュータの機能ブロック図である。
【図５】コンテントの構造の一例を示すイメージ図である。
【図６】コンテント内の一部コンテントを示すイメージ図である。
【図７】アプリケーション内で利用可能なコンテントの一例としてのランプの定義例を示すイメージ図である。
【図８】本実施の形態にかかるサーバ・コンピュータにおけるランタイム部の処理の流れを示すフローチャートである。
【図９】本実施の形態にかかるサーバ・コンピュータにおけるコンテント・エンジン部の処理の流れを示すフローチャートである。
【図１０】本実施の形態にかかるサーバ・コンピュータのコンテント・エンジン部で機能するパス解決部におけるコンテントの一意のアドレス処理の一例を示すフローチャートである。
【図１１】本発明の実施の形態に係るネットワークシステムにおいて、負荷分散を説明するための、コンピュータ間の情報授受を示すイメージ図である。
【図１２】従来のネットワークシステムのコンピュータについてハードウェア資源とソフトウェア資源を用いて稼働するときの機能的なブロック図である。
【図１３】本発明の実施の形態に係るネットワークシステムにおいて、関連サービスの構築を説明するための、コンピュータ間の情報授受を示すイメージ図である。
【符号の説明】
【００８６】
１３…第１サーバ・コンピュータ
１４…ユーザ・コンピュータ
１５…第２サーバ・コンピュータ
１８…ネットワーク
２０…ランタイム部
２２…通信ユニット
２４…メッセージプール
３０…コンテント・エンジン部
３２…デシリアライズ部
３４…パス解決部
３６…ドメイン判断部
３８…シリアライズ部
４０…コンテント部
４２…コンテント
４４…コンテント
【図１】
2005258942.tif 000003
【図２】
2005258942.tif 000004
【図３】
2005258942.tif 000005
【図４】
2005258942.tif 000006
【図５】
2005258942.tif 000007
【図６】
2005258942.tif 000008
【図７】
2005258942.tif 000009
【図８】
2005258942.tif 000010
【図９】
2005258942.tif 000011
【図１０】
2005258942.tif 000012
【図１１】
2005258942.tif 000013
【図１２】
2005258942.tif 000014
【図１３】
2005258942.tif 000015
【手続補正書】
【提出日】平成17年6月23日(2005.6.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介して他の装置との間で情報を授受する情報処理装置であって、
データのノードまたはアプリケーションのノード若しくはそれらの組み合わせによるノード群を含む複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶した記憶手段と、
前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理する授受手段と、
前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に変換する第１の変換手段と、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施す制御手段と、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に変換する第２の変換手段と、含むエンジン手段と、
を含む情報処理装置。
【請求項２】
前記アドレスは、ＵＲＩで表されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記エンジン手段は、装置内部で要求されたオブジェクトのアドレスを解釈しかつ解釈したアドレスのオブジェクトについて外部記憶の場合には、前記第２の変換手段で前記外部言語に変換し、内部記憶の場合には前記授受手段へ該アドレスを出力する判断手段（ドメイン判断）を含むことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記エンジン手段では、第１の変換手段が一部変更として追加を含む処理の要求を取得し、制御手段が前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを追加する処理またはオブジェクトへの変更を行う処理を施すことを特徴とする請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
請求項１乃至請求項４の何れか１項に記載の情報処理装置を、前記ネットワークに複数接続した情報処理システム。
【請求項６】
ネットワークを介して他の装置との間で情報を授受する情報処理方法であって、
データのノードまたはアプリケーションのノード若しくはそれらの組み合わせによるノード群を含む複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶し、
前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理し、
前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をし、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施し、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をする
工程を含む情報処理方法。
【請求項７】
ネットワークを介して他の装置との間で情報を授受するコンピュータで実行される情報処理プログラムであって、
データのノードまたはアプリケーションのノード若しくはそれらの組み合わせによるノード群を含む複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶させ、
前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理させ、
前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をさせ、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施させ、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をさせる
工程を含む情報処理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
上記目的を達成するために請求項１の発明の情報処理装置は、ネットワークを介して他の装置との間で情報を授受する情報処理装置であって、データのノードまたはアプリケーションのノード若しくはそれらの組み合わせによるノード群を含む複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶した記憶手段と、前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理する授受手段と、前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に変換する第１の変換手段と、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施す制御手段と、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に変換する第２の変換手段と、含むエンジン手段と、を含んでいる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
前記情報処理装置は、次の情報処理方法による機能を有している。詳細には、請求項６の発明は、ネットワークを介して他の装置との間で情報を授受する情報処理方法であって、データのノードまたはアプリケーションのノード若しくはそれらの組み合わせによるノード群を含む複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶し、前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理し、前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をし、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施し、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をする工程を含んでいる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
前記情報処理方法は、次の情報処理プログラムにより、コンピュータで実行させることが可能である。詳細には、請求項７の発明は、ネットワークを介して他の装置との間で情報を授受するコンピュータで実行される情報処理プログラムであって、データのノードまたはアプリケーションのノード若しくはそれらの組み合わせによるノード群を含む複数のノードによってツリー構造で表されると共に、前記ネットワークで自身を識別するための識別情報に、前記ツリー構造における最上位のノードから自身のノードまでの位置を前記ツリー構造に従って各ノードの名称を示す名称情報を連続して表すオブジェクト位置情報を連結した自身の位置を示す一意のアドレスが与えられたオブジェクトであって、前記アドレスに対するデータ書込領域を備えたオブジェクトを複数記憶させ、前記ネットワークを介して他の装置との間で外部言語で表された情報を授受すると共に、前記アドレスが指定された前記記憶手段に記憶されたオブジェクトに対して呼び出し、書き込み、削除及び一部変更の少なくとも１つの処理の要求を逐次処理させ、前記ネットワークを介して外部言語による前記オブジェクトを前記処理の要求と共に少なくとも１つ取得し、取得したオブジェクトのツリー構造を保持したまま該取得したオブジェクトを内部言語で表された情報に第１の変換をさせ、前記要求されたオブジェクトの前記アドレスを解釈しかつ解釈したアドレスのオブジェクトに対して前記要求された処理を施させ、前記記憶手段に記憶されたオブジェクトを該オブジェクトのツリー構造を保持したまま前記外部言語に第２の変換をさせる工程を含んでいる。