(57)【要約】【課題】機器を跨いだコールによる処理の実行を実現する。【解決手段】第１の機器は、該機器のメモリ空間において格納オブジェクトを指定する指定情報に対して処理システムにおける識別情報を割り当てる。そして割り当てられた識別情報を含む、第２の機器が提供する関数へのコールを生成して送信する。このとき第１の機器は、生成したコールに含まれる識別情報に対応するオブジェクトについて、該オブジェクトを生成するための生成情報を生成し、該コールに関連付けて送信する。一方第２の機器は、受信したコールに未知の識別情報が含まれる場合、該コールに関連付けられた生成情報に基づいて未知の識別情報に対応するオブジェクトを生成して格納する。そして第２の機器は、該機器のメモリ空間において格納オブジェクトを指定する指定情報に対して未知の識別情報を関連付けて登録する。【選択図】図５
2014000372.tif 000002
【特許請求の範囲】
【請求項１】
第１の機器が、該第１の機器とは異なる第２の機器が提供する関数についてのコールを生成し、前記第２の機器に該関数に対応する処理を実行させる処理システムであって、
前記第１の機器は、
オブジェクトを格納する第１のメモリと、
前記第１のメモリに格納されたオブジェクトを指定する指定情報に対して、前記処理システムにおける識別情報を割り当てる割り当て手段と、
前記割り当て手段により割り当てられた識別情報を含む前記コールを生成して前記第２の機器に送信するコール送信手段と、
前記コールに含まれる識別情報に対応するオブジェクトについて、該オブジェクトを生成するための生成情報を生成し、前記コールに関連付けて送信する情報送信手段と、を有し、
前記第２の機器は、
オブジェクトを格納する第２のメモリと、
前記コールまたは前記生成情報を受信する受信手段と、
前記受信手段により受信された前記コールに未知の識別情報が含まれる場合、前記コールに関連付けられた前記生成情報に基づいて該未知の識別情報に対応するオブジェクトを生成して前記第２のメモリに格納し、該未知の識別情報に対応するオブジェクトを指定する指定情報に対して該未知の識別情報を関連付けて登録する登録手段と、を有する
ことを特徴とする処理システム。
【請求項２】
前記情報送信手段は、前記コールに含まれる識別情報に対応するオブジェクトのうち、指定情報に対して新たに識別情報が割り当てられたオブジェクトが存在する場合に、該オブジェクトの前記生成情報を生成して送信することを特徴とする請求項１に記載の処理システム。
【請求項３】
前記第２の機器は、複数の前記第１の機器と通信接続しており、
前記第１の機器は、前記コールに含まれる識別情報に対応するオブジェクトについての前記生成情報を、該識別情報に関連付けて、前記第２の機器に通信接続している他の前記第１の機器と共有する共有手段をさらに有する
ことを特徴とする請求項１または２に記載の処理システム。
【請求項４】
前記割り当て手段は、前記共有手段により前記他の第１の機器から未知の識別情報が共有された場合に、該未知の識別情報に関連付けられた前記生成情報に基づいて該未知の識別情報に対応するオブジェクトを生成して前記第１のメモリに格納し、該未知の識別情報に対応するオブジェクトを指定する指定情報に対して該未知の識別情報を割り当てることを特徴とする請求項３に記載の処理システム。
【請求項５】
前記第１の機器は、複数の第３の機器と通信接続しており、該複数の第３の機器の各々について前記第２の機器が提供する関数についてのコールの生成を含む処理を独立して実行し、
前記第１の機器は、前記独立して実行される処理において生成された前記コールに含まれる識別情報に対応するオブジェクトについての生成情報を、該識別情報に関連付けて、他の前記独立して実行される処理と共有する共有手段をさらに有する
ことを特徴とする請求項１または２に記載の処理システム。
【請求項６】
前記第２の機器は、前記受信手段により受信された前記コールに含まれる識別情報に関連付けられた指定情報を用いて、コールされた関数に対応する処理を実行する処理手段をさらに有することを特徴とする請求項１乃至５のいずれか１項に記載の処理システム。
【請求項７】
指定情報は、前記第１または第２のメモリに格納されたオブジェクトについての各メモリ空間におけるポインタであり、
前記識別情報は、指定情報に割り当てられたハンドラであり、
前記第２の機器は、前記受信手段により受信された前記コールに含まれるハンドラに関連付けられたポインタを用いて、コールされた関数に対応する処理を実行する処理手段をさらに有する
ことを特徴とする請求項１乃至５のいずれか１項に記載の処理システム。
【請求項８】
提供する関数についてのコールを他の機器から受信したことに応じて、該関数に対応する処理を実行する情報処理装置であって、
オブジェクトを格納するメモリと、
前記他の機器において該他の機器が保持するオブジェクトを指定する指定情報について割り当てられた識別情報を含む前記コールと、該コールに含まれる識別情報に対応するオブジェクトを生成するための生成情報とを、前記他の機器から受信する受信手段と、
前記受信手段により受信された前記コールに未知の識別情報が含まれる場合、前記生成情報に基づいて該未知の識別情報に対応するオブジェクトを生成して前記メモリに格納し、該未知の識別情報に対応するオブジェクトを指定する指定情報に対して該未知の識別情報を関連付けて登録する登録手段と、を有する
ことを特徴とする情報処理装置。
【請求項９】
オブジェクトを格納するメモリを有し、提供する関数についてのコールを他の機器から受信したことに応じて、該関数に対応する処理を実行する情報処理装置の制御方法であって、
前記情報処理装置の受信手段が、前記他の機器において該他の機器が保持するオブジェクトを指定する指定情報について割り当てられた識別情報を含む前記コールと、該コールに含まれる識別情報に対応するオブジェクトを生成するための生成情報とを、前記他の機器から受信する受信工程と、
前記情報処理装置の登録手段が、前記受信工程において受信された前記コールに未知の識別情報が含まれる場合、前記生成情報に基づいて該未知の識別情報に対応するオブジェクトを生成して前記メモリに格納し、該未知の識別情報に対応するオブジェクトを指定する指定情報に対して該未知の識別情報を関連付けて登録する登録工程と、を有する
ことを特徴とする情報処理装置の制御方法。
【請求項１０】
コンピュータに、請求項９に記載の情報処理装置の制御方法を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理システム、情報処理装置、制御方法、プログラム、及び記録媒体に関し、特に機器を跨いで処理を実現する技術に関する。
【背景技術】
【０００２】
ネットワーク接続可能なパーソナルコンピュータ（ＰＣ）等のクライアント機器が普及している。このような機器の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【０００３】
ネットワークユーザに対するサービスの１つとして、ＭＭＯＲＰＧ（Massively Multiplayer Online Role-Playing Game）等の多人数同時参加型のネットワークゲームがある。多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント機器を、ゲームを提供するサーバに接続することで、該サーバに接続されているクライアント機器を使用するユーザとの対戦プレイや協力プレイを行うことができる。
【０００４】
一般的な多人数参加型のネットワークゲームでは、クライアント機器はサーバとの間でゲームの描画に必要なデータの送受信を行う。クライアント機器は、受信した描画に必要なデータを用いて描画処理を実行し、生成したゲーム画面をクライアント機器に接続された表示装置に提示することで、ユーザにゲーム画面を提供する。また、ユーザが入力インタフェースを操作することで入力された情報はサーバに送信され、サーバにおける演算処理に使用されたり、サーバに接続された他のクライアント機器に伝送されたりする。
【０００５】
しかしながら、このようなクライアント機器で描画処理を行うネットワークゲームの中には、十分な描画性能を有するＰＣや専用のゲーム機をユーザが使用すること必要となるものがある。このため、ネットワークゲーム（１コンテンツ）のユーザ数は、コンテンツが要求するクライアント機器の性能に依存してしまう。高性能の機器は当然高価であり、該機器を所有できるユーザも限られる。即ち、例えば美麗なグラフィックを提供するゲーム等の高い描画性能が要求されるゲームでは、ユーザ数を増加させることが困難である。
【０００６】
これに対し、近年ではクライアント機器の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームシステムも提供されている。特許文献１のようなゲームシステムでは、サーバはクライアント機器においてなされた操作の情報を取得し、該情報を用いて描画処理を実行して得られたゲーム画面を、クライアント機器に対して提供している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００９／１３８８７８号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１のようにサーバが描画処理を実行する場合、例えばクライアント機器において描画処理以外のメインの処理を実行し、描画処理に係る処理をサーバに実行させる態様が考えられる。即ち、クライアント機器はメインの処理の過程でサーバが提供する描画機能を適宜使用し、ゲーム画面を取得することができる。
【０００９】
このような態様の実現の１つの形式として、クライアント機器のメインの処理においてサーバが提供する描画処理に係る関数に対するコールを発生し、該関数を利用する方法が考えられる。しかしながら、通常のコールバック関数のように、コールとしてオブジェクトへのポインタを含むハンドラを関数に提供する方法は、特許文献１のゲームシステムのような異なる機器間での使用はできなかった。これは、各機器が独立したメモリ空間を使用しており、一方の機器のメモリ空間のオブジェクトへのポインタが、他方の機器のメモリ空間では使用できないためである。
【００１０】
本発明は、上述の問題点に鑑みてなされたものであり、機器を跨いだコールによる処理の実行を実現する処理システム、情報処理装置、制御方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述の目的を達成するために、本発明の処理システムは、以下の構成を備える。
第１の機器が、該第１の機器とは異なる第２の機器が提供する関数についてのコールを生成し、第２の機器に該関数に対応する処理を実行させる処理システムであって、第１の機器は、オブジェクトを格納する第１のメモリと、第１のメモリに格納されたオブジェクトを指定する指定情報に対して、処理システムにおける識別情報を割り当てる割り当て手段と、割り当て手段により割り当てられた識別情報を含むコールを生成して第２の機器に送信するコール送信手段と、コールに含まれる識別情報に対応するオブジェクトについて、該オブジェクトを生成するための生成情報を生成し、コールに関連付けて送信する情報送信手段と、を有し、第２の機器は、オブジェクトを格納する第２のメモリと、コールまたは生成情報を受信する受信手段と、受信手段により受信されたコールに未知の識別情報が含まれる場合、コールに関連付けられた生成情報に基づいて該未知の識別情報に対応するオブジェクトを生成して第２のメモリに格納し、該未知の識別情報に対応するオブジェクトを指定する指定情報に対して該未知の識別情報を関連付けて登録する登録手段と、を有することを特徴とする。
【発明の効果】
【００１２】
このような構成により本発明によれば、機器を跨いだコールによる処理の実行を実現することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の（ａ）実施形態１に係るゲームシステムのシステム構成を示した図、（ｂ）実施形態２に係るゲームシステムのシステム構成を示した図
【図２】本発明の実施形態に係るクライアント端末１００の機能構成を示したブロック図
【図３】本発明の実施形態に係るサーバ２００の機能構成を示したブロック図
【図４】本発明の実施形態に係る各機器のハンドラテーブルを例示した図
【図５】本発明の実施形態に係るハンドラテーブル更新動作の概要を例示した動作フロー
【図６】本発明の実施形態に係るハンドラテーブル更新動作を説明するための図
【図７】本発明の実施形態に係るハンドラテーブル更新動作を説明するための別の図
【図８】本発明の実施形態２に係るクライアント端末１００で実行される、クライアントハンドラテーブル更新処理を例示したフローチャート
【図９】本発明の実施形態３に係るゲームシステムのシステム構成を示した図
【発明を実施するための形態】
【００１４】
［実施形態１］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、処理システムの一例として、ユーザが操作する第１の機器としてのクライアント端末１００、及び提供するゲームコンテンツに係る画面を配信する第２の機器としてのサーバ２００で構成されるゲームシステムに本発明を適用した例を説明する。
【００１５】
《ゲームシステムの構成》
図１（ａ）は、本発明の実施形態に係るゲームシステムのシステム構成を示す図である。
【００１６】
図示されるように、クライアント端末１００とサーバ２００とは、ネットワーク３００を介して接続されている。本実施形態のゲームシステムでは、サーバ２００は提供するゲームコンテンツの画面生成に係る処理命令をクライアント端末１００から受信し、該命令に対応した処理を実行する。そしてサーバ２００は、生成した画面を符号化動画データとしてクライアント端末１００にストリーミング配信するものとする。
【００１７】
本実施形態においてクライアント端末１００は、例えばゲームコンテンツの描画系統に係る処理以外を実行する家庭用ゲーム機を想定して説明するが、本発明の実施はこれに限られるものではない。クライアント端末１００は、例えばＰＣ、携帯ゲーム機、携帯電話、ＰＤＡ、タブレット等のサーバ２００が提供する機能（関数）へのコールを発生し、サーバ２００に該機能を実行させることが可能な任意の機器であってよい。
【００１８】
本実施形態においてサーバ２００は、ゲームコンテンツの描画系統に係る処理を、クライアント端末１００における実行に代わって実行する。このとき、クライアント端末１００は処理命令を行うマスタとして機能し、サーバ２００は該処理命令に対応したゲームコンテンツの描画機能を提供するスレーブとして機能する形態となる。なお、本実施形態ではサーバ２００が描画機能を提供するものとして説明するが、本発明はこのような描画機能に限らず適用可能であることは理解されよう。また、本実施形態では第２の機器はサーバ２００であるものとして説明するが、第２の機器はサーバに限らず、提供する機能の実行をコールにより受け付けることが可能な任意の機器であってよい。
【００１９】
〈クライアント端末１００の構成〉
図２は、本発明の実施形態に係るクライアント端末１００の機能構成を示したブロック図である。
【００２０】
制御部１０１は、例えばＣＰＵ等である。制御部１０１は、クライアント端末１００が有する各ブロックの動作を制御する。具体的には制御部１０１は、例えばＲＯＭ１０２に記憶された各ブロックの動作プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより、各ブロックの動作を制御する。
【００２１】
ＲＯＭ１０２は、例えば書き換え可能な不揮発性メモリである。ＲＯＭ１０２は、クライアント端末１００が有する各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等の情報を記憶する。
【００２２】
ＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、クライアント端末１００が有する各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を記憶する格納領域として機能する。また本実施形態ではＲＡＭ１０３には、各ブロックの動作において用いられる各種オブジェクトが格納される。各種オブジェクトは、例えばユーザの操作対象キャラクタの状態を示すパラメータ等、プログラムにおいて割り当てられた特定の構造体であってよい。
【００２３】
また本実施形態ではＲＡＭ１０３には、サーバ２００が提供する機能に対応する関数（提供関数）についてのコールに含めるハンドラを管理するクライアントハンドラテーブルが記憶される。具体的にはクライアントハンドラテーブルは、コールに含めるハンドラと、ＲＡＭ１０３に格納された各種オブジェクトのポインタとの対応を管理する。例えば提供関数が
InitialisationMethod(Data, &pObject1, &pObject2, &pObject3)
と定義される場合、該関数の実行にはデータ（Data）に加え、３種類のインスタンスを渡す必要がある。このとき各インスタンスはＲＡＭ１０３上のオブジェクトを示すポインタであるが、上述したようにクライアント端末１００とサーバ２００間でメモリ空間が異なるため、サーバ２００において該ポインタは正しく解釈されない。故に、本実施形態では提供関数のインスタンスとして含めるポインタについては、ポインタを一意に特定するハンドラを割り当て、該ハンドラをコールに含めて送信する。図４（ａ）に示されるように、クライアントハンドラテーブルには、インスタンスとして用いるポインタと、該ポインタに割り当てられたハンドラとが関連付けられて管理される。
【００２４】
復号部１０４は、サーバ２００から受信した符号化動画データを復号し、後述する表示部１０７に提示する画面を生成する。なお、本実施形態ではクライアント端末１００は、ゲームコンテンツに係る画面をサーバ２００から符号化動画データの形態で受信するものとして説明するが、受信するデータの形態はこれに限られるものではないことは容易に想像されよう。
【００２５】
通信部１０５は、クライアント端末１００が有する通信インタフェースである。クライアント端末１００は、通信部１０５を介してネットワーク３００上のサーバ２００と接続可能であり、規定されるプロトコルに従ってデータ送受信を行うことができる。
【００２６】
操作入力部１０６は、例えば操作ボタンやタッチパネルセンサ等の、クライアント端末１００が有するユーザインタフェースである。操作入力部１０６は、ユーザにより操作入力がなされたことを検出すると、該操作入力に対応する制御信号を制御部１０１に対して出力する。
【００２７】
表示部１０７は、例えばＬＣＤ等のクライアント端末１００が有する表示装置である。サーバ２００から受信したゲームコンテンツに係る画面は、表示部１０７に提示されることでユーザに提供される。
【００２８】
〈サーバ２００の構成〉
図３は、本発明の実施形態に係るサーバ２００の機能構成を示したブロック図である。
【００２９】
サーバ制御部２０１は、例えばＣＰＵであり、サーバ２００が有する各ブロックの動作を制御する。具体的にはサーバ制御部２０１は、例えばサーバＲＯＭ２０２に記憶された各ブロックの動作プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより各ブロックの動作を制御する。
【００３０】
サーバＲＯＭ２０２は、例えば書き換え可能な不揮発性メモリである。サーバＲＯＭ２０２は、サーバ２００が有する各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等の情報を記憶する。またサーバＲＯＭ２０２には、サーバ２００が提供するサービスの利用者のアカウント情報が管理される。クライアント端末１００のユーザは、ゲームコンテンツ利用時には該アカウント情報を用いてサーバ２００にサービスログインすることで、端末における進行状況に応じた画面の提供を受けることができる。
【００３１】
サーバＲＡＭ２０３は、揮発性メモリである。サーバＲＡＭ２０３は、サーバ２００が有する各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を記憶する格納領域として機能する。本実施形態ではサーバＲＡＭ２０３には、処理において用いられる各種オブジェクトが格納される。各種オブジェクトの一部は、クライアント端末１００のＲＡＭ１０３に格納されたオブジェクトと対応する。
【００３２】
またサーバＲＡＭ２０３には、提供関数についてのコールに含まれていたハンドラを管理するサーバハンドラテーブルが記憶される。具体的にはサーバハンドラテーブルは、コールに含まれていたハンドラと、該ハンドラに対応する、サーバＲＡＭ２０３に格納されたオブジェクトのポインタとの対応を管理する。サーバハンドラテーブルは、図４（ｂ）に示されるようにクライアント端末１００において割り当てられたハンドラに対し、サーバＲＡＭ２０３上での対応するオブジェクトへのポインタを関連付けて管理する。なお、サーバハンドラテーブルとクライアントハンドラテーブルとは、基本的には１対１対応している。即ち、クライアント端末１００とサーバ２００では、共通のハンドラについて、各メモリ空間における対応するオブジェクトへのポインタがテーブルを用いて管理される。
【００３３】
サーバ描画部２０４は、例えばＧＰＵであり、提供するサービスであるゲームコンテンツについてのゲーム画面を描画する。例えば３次元シーンをゲーム画面として提供するコンテンツの場合、サーバ描画部２０４はサーバ制御部２０１により描画範囲に含まれる描画オブジェクトの情報を受信し、不図示のＶＲＡＭに順に描画してゲーム画面を生成する。なお、ゲーム画面の生成に用いられるモデルデータやテクスチャデータ等は、サーバ記録媒体２０５に格納されているものとする。
【００３４】
サーバ符号化部２０６は、サーバ描画部２０４により生成されたゲーム画面を符号化し、符号化動画データを生成する。本実施形態では、サーバ２００からクライアント端末１００に提供されるゲーム画面は、予め定められた形式の符号化動画データの１フレームとして送信される。
【００３５】
サーバ通信部２０７は、サーバ２００が有する通信インタフェースである。サーバ２００は、サーバ通信部２０７を介してネットワーク３００上のサーバ２００と接続可能であり、規定されるプロトコルに従ってデータ送受信を行うことができる。本実施形態ではサーバ２００は、サーバ符号化部２０６において生成された符号化動画データを、ストリーミング方式でクライアント端末１００に送信する。
【００３６】
《ハンドラテーブル更新動作》
ここで、上述したクライアントハンドラテーブル及びサーバハンドラテーブルの更新動作について、図５の動作フローを用いて概要を説明する。なお、本動作フローに係る処理は、クライアント端末１００で行われる処理において制御部１０１が、サーバ２００が提供する提供関数へのコールを発生させることを決定した際に実行される。
【００３７】
Ｓ５０１で、制御部１０１は、コールに含めるインスタンス、即ちＲＡＭ１０３に記憶されているオブジェクトへのポインタを抽出する。
【００３８】
Ｓ５０２で、制御部１０１は、Ｓ５０１において抽出したポインタの各々について、クライアントハンドラテーブルを参照してハンドラが既に割り当てられているか否かを判断する。
【００３９】
Ｓ５０３で、制御部１０１は、ハンドラが未割り当てのポインタについて、新たなハンドラを割り当て、クライアントハンドラテーブルに登録する。
【００４０】
Ｓ５０４で、制御部１０１は、新たなハンドラを割り当てたポインタが指定するオブジェクトについて、該オブジェクトを生成するために必要な生成情報を生成する。本実施形態のように、異なるメモリ空間で１つのオブジェクトを参照するためには、それぞれのメモリ空間に同一のオブジェクトを生成する必要がある。即ち、クライアント端末１００において生成されているオブジェクトをサーバ２００においても参照させるためには、制御部１０１は該オブジェクトをサーバ２００において生成させるための生成情報を送出し、サーバ制御部２０１に同一のオブジェクトを生成させればよい。なお、生成情報は、例えばオブジェクトの生成に必要なパラメータや処理手順を生成する、割り当てられたハンドラの情報が関連付けられた情報であってよい。
【００４１】
Ｓ５０５で、制御部１０１は、Ｓ５０１において抽出したポインタの各々について割り当てられたハンドラをパッケージ化して通信部１０５に伝送し、コールとしてサーバ２００に送信させる。このとき、抽出したポイントの中に新たにハンドラを割り当てたポインタが存在する場合、制御部１０１は該ポインタについての生成情報をコールに含める。
【００４２】
なお、本実施形態ではコールに生成情報を含めて送信するものとして説明するが、コールと生成情報とは関連付けが判別可能であれば、別々に送信されてもよいことは理解されよう。また本実施形態では、生成情報にはハンドラの情報が関連付けられているものとして説明するが、これに限られない。例えばコールに１つのハンドラのみが含まれる場合、コールと生成情報との関連付けが判別可能であれば、生成情報にハンドラの情報が関連付けられている必要はない。
【００４３】
Ｓ５０６で、サーバ制御部２０１は、クライアント端末１００から送出されたコールを受信する。
【００４４】
Ｓ５０７で、サーバ制御部２０１は、受信したコールにサーバハンドラテーブルに存在しないハンドラ（未知のハンドラ）が含まれているか否かを判断する。
【００４５】
Ｓ５０８で、サーバ制御部２０１は、コールに含まれている生成情報を参照し、未知のハンドラに対応するオブジェクトを生成し、サーバＲＡＭ２０３に格納する。
【００４６】
Ｓ５０９で、サーバ制御部２０１は、Ｓ５０８において生成したオブジェクトへのポインタと未知のハンドラとを関連付けてサーバハンドラテーブルに登録する。
【００４７】
Ｓ５１０で、サーバ制御部２０１は、コールされた提供関数を実行する。このときサーバ制御部２０１は、サーバハンドラテーブルを参照し、コールに含まれるハンドラの各々に対応するポインタを該提供関数のインスタンスとして渡し、実行する。
【００４８】
このようにすることで、メモリ空間が異なる装置間において、他の装置が提供する関数への、コールによる実行命令を実現できる。また、ハンドラによりポインタの特定が可能であるため、コールについてのデータ通信量を低減することができる。
【００４９】
〈具体例〉
ここで、上述の動作フローの動作例について説明する。例えばクライアントハンドラテーブルに１つもハンドラ及びポインタが登録されていない場合に、提供関数
InitialisationMethod(Data, &pObject1, &pObject2, &pObject3)
へのコールを行う場合を考える。
【００５０】
このとき、ポインタpObject1、pObject2、及びpObject3にはまだハンドラが割り当てられていないため、制御部１０１は図６（ａ）に示すように、各ポインタにハンドラを割り当ててクライアントハンドラテーブル６００に登録する。そして制御部１０１は、InitialisationMethod関数へのコール６０１として、
・Data（Object1、Object2、Object3の生成情報を含む）
・pObject1に割り当てたハンドラ「１」
・pObject2に割り当てたハンドラ「２」
・pObject3に割り当てたハンドラ「３」
をパッケージ化して通信部１０５に伝送し、サーバ２００に送信させる。
【００５１】
一方、サーバ２００においてコール６０１が受信されると、まずサーバ制御部２０１はコールに含まれる生成情報を参照し、各ハンドラに対応するオブジェクト６１１、６１２、及び６１３（Object1、Object2、及びObject3）をサーバＲＡＭ２０３に生成する。そしてサーバ制御部２０１は、生成したオブジェクトについてのポインタに、対応するハンドラを関連付けてサーバハンドラテーブル６１０に登録する。
【００５２】
このようにすることで、クライアント端末１００のＲＡＭ１０３に存在するObject1、Object2、及びObject3と同一のオブジェクトをサーバＲＡＭ２０３に生成した上で、それぞれクライアント端末１００とサーバ２００との間で共通のハンドラを割り当てることができる。即ち、各ハンドラテーブルに登録された後は、それぞれのオブジェクトはハンドラのみによって特定することができる。
【００５３】
また、例えばクライアントハンドラテーブルが図６（ａ）のようである場合に、特定のオブジェクトに対する動作を規定する関数
pObject2−＞FunctionCall(Data, &pObject4)
へのコールを行う場合を考える。
【００５４】
このとき、ポインタpObject4にはまだハンドラが割り当てられていないため、制御部１０１は図７（ａ）に示すようにハンドラ「４」を割り当ててクライアントハンドラテーブル７００に登録する。そして制御部１０１は、FunctionCall関数へのコール７０１として、
・Data（Object4の生成情報を含む）
・pObject2に割り当てたハンドラ「２」
・pObject4に割り当てたハンドラ「４」
をパッケージ化して通信部１０５に伝送し、サーバ２００に送信させる。
【００５５】
一方、サーバ２００においてコール７０１が受信されると、まずサーバ制御部２０１はコールに含まれる生成情報を参照し、ハンドラ「４」に対応するオブジェクト７１１（Object4）をサーバＲＡＭ２０３に生成する。そしてサーバ制御部２０１は、生成したオブジェクトについてのポインタ（pObject4 on サーバ２００）に、対応するハンドラ「４」を関連付けてサーバハンドラテーブル７１０に登録する。
【００５６】
このようにコールのデータ構成を変更することで、特定のオブジェクトに対する動作を規定する関数であっても対応することができる。
【００５７】
以上説明したように、本実施形態の処理システムは、機器を跨いだコールによる処理の実行を実現することができる。具体的には処理システムは、第１の機器は、該機器のメモリ空間において格納オブジェクトを指定する指定情報に対して処理システムにおける識別情報を割り当てる。そして割り当てられた識別情報を含む、第２の機器が提供する関数へのコールを生成して送信する。このとき第１の機器は、生成したコールに含まれる識別情報に対応するオブジェクトについて、該オブジェクトを生成するための生成情報を生成し、該コールに関連付けて送信する。一方第２の機器は、受信したコールに未知の識別情報が含まれる場合、該コールに関連付けられた生成情報に基づいて未知の識別情報に対応するオブジェクトを生成して格納する。そして第２の機器は、該機器のメモリ空間において格納オブジェクトを指定する指定情報に対して未知の識別情報を関連付けて登録する。
【００５８】
［実施形態２］
上述した実施形態１では、サーバ２００に対して１台のクライアント端末１００が接続する例について説明した。本実施形態では、例えばサーバ２００が提供するゲームコンテンツが多人数同時参加型オンラインゲームであり、サーバ２００に対して複数台のクライアント端末１００が接続する例について説明する。
【００５９】
なお、本実施形態ではサーバ２００は多人数同時参加型オンラインゲームを提供するものとして説明するが、本発明の実施はこのような複数のユーザが同時に１つのゲーム空間に参加するコンテンツに限られるものではない。本実施形態に係る発明は、複数のクライアント端末からなされるコールに、共通するオブジェクトについてのハンドラが含まれる場合に適用可能である。
【００６０】
多人数同時参加型オンラインゲームのように、複数のクライアント端末に対してゲームコンテンツを提供する場合、各クライアント端末に提供される画面や、画面内に含まれるキャラクタや地形等の描画処理において共通のオブジェクトが用いられる可能性がある。このとき、実施形態１のようにクライアント端末ごとにハンドラテーブルを対応付けて管理している場合、同一のオブジェクトであってもクライアント端末ごとに異なるハンドラが割り当てられて管理されることになる。即ち、サーバ２００のメモリ空間には同一のオブジェクトが複数生成され、さらに各々について異なるハンドラを割り当てて管理するハンドラテーブルがそれぞれ存在することになる。このことは、実質的には１つのオブジェクトがサーバ２００のメモリ空間に複数存在するため、メモリ空間を不要に占有することになり好ましくない。
【００６１】
本実施形態では、このような問題に鑑み、機器を跨いだコールによる処理の実行を行うシステムにおいて、より効率的なメモリ使用を実現するゲームシステムを提供する。
【００６２】
《ゲームシステムの構成》
図１（ｂ）に、本実施形態のゲームシステムのシステム構成を示す。図示されるように、サーバ２００にはネットワーク３００を介して複数のクライアント端末１００が接続される。なお、本実施形態のゲームシステムにおいてクライアント端末１００及びサーバ２００の機能構成は、クライアント端末１００の通信部１０５が他のクライアント端末１００との通信を行うこと以外は共通であるため、説明を省略する。
【００６３】
本実施形態のクライアント端末１００では、サーバ２００の提供関数へのコールにハンドラ未割当のポインタが含まれる場合に、次のように処理が行われる。制御部１０１は、ハンドラ未割当のポインタについて新たに割り当てたハンドラを示す情報と、該ポインタが示すオブジェクトについての生成情報とを、サーバ２００だけでなく、サーバ２００に接続されている他のクライアント端末１００にもハンドラ割当情報として送信する。即ち、このように他のクライアント端末１００に対しても、新たにハンドラを割り当てたオブジェクト及び該ハンドラの情報を送信することで、クライアント端末間でクライアントハンドラテーブルを同期させることができる。
【００６４】
本実施形態では、このようにクライアント端末間でクライアントハンドラテーブルを同期して共通のハンドラテーブルを各端末に持たせる。これにより、サーバ２００のサーバＲＡＭ２０３に同一のオブジェクトが生成される、さらにはサーバ２００がクライアント端末ごとにサーバハンドラテーブルを所有する必要がなくなるため、効率的なメモリ使用が図れる。
【００６５】
《クライアントハンドラテーブル更新処理》
ここで、本実施形態のクライアント端末１００で実行されるクライアントハンドラテーブル更新処理について図８のフローチャートを用いて詳細を説明する。該フローチャートに対応する処理は、制御部１０１が、例えばＲＯＭ１０２に記憶されている対応する処理プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本クライアントハンドラテーブル更新処理は、例えばゲームコンテンツに係るアプリケーションが実行された際に開始され、該アプリケーションにおけるフレーム単位の処理ループに合わせて繰り返し実行されるものとして説明する。
【００６６】
Ｓ８０１で、制御部１０１は、他のクライアント端末１００から新たなオブジェクトについてハンドラを割り当てたことを示すハンドラ割当情報を通信部１０５が受信したか否かを判断する。制御部１０１は、通信部１０５が他のクライアント端末１００からハンドラ割当情報を受信したと判断した場合は処理をＳ８０２に移し、受信していないと判断した場合は処理をＳ８０３に移す。
【００６７】
Ｓ８０２で、制御部１０１は、ハンドラ割当情報に含まれる生成情報に基づいてＲＡＭ１０３に新たなオブジェクトを生成し、該オブジェクトへのポインタにハンドラ割当情報で指定されたハンドラを関連づけてクライアントハンドラテーブルに登録する。
【００６８】
Ｓ８０３で、制御部１０１は、現在のフレームの処理においてサーバ２００に送信するコールに含めるポインタに、ハンドラ未割当のポインタが存在するか否かを判断する。制御部１０１は、送信するコールに含めるポインタにハンドラ未割当のポインタが存在すると判断した場合は処理をＳ８０４に移し、存在しないと判断した場合は本クライアントハンドラテーブル更新処理を完了する。
【００６９】
Ｓ８０４で、制御部１０１は、ハンドラ未割当のポインタについて割り当てたハンドラを示す情報と、該ポインタが示すオブジェクトの生成情報とを通信部１０５に伝送し、ハンドラ割当情報としてサーバ２００に接続している他のクライアント端末１００に送信させ、本クライアントハンドラテーブル更新処理を完了する。
【００７０】
このようにすることで、サーバ２００に接続している全クライアント端末において共通のハンドラを使用してサーバ２００の提供関数へのコールを生成することができる。なお、本実施形態ではサーバ２００に接続している全クライアント端末においてオブジェクトについて割り当てたハンドラの情報を共有するものとして説明したが、本発明の実施はこれに限られるものではない。本発明は、例えばゲーム内で特定のフィールドに操作キャラクタが位置しているクライアント端末群や、ゲーム内で協力プレイを行っているユーザのクライアント端末群等、サーバ２００に接続しているクライアント端末のうち、一部のクライアント端末間でハンドラの情報を共有するものとしてもよい。
【００７１】
［実施形態３］
上述した実施形態２では、サーバ２００に対して複数台のクライアント端末１００が接続する際に、クライアント端末間でクライアントハンドラテーブルを同期して利用する態様について説明した。本実施形態では、クライアント端末間でのクライアントハンドラテーブルの同期を不要とする態様について説明する。
【００７２】
《ゲームシステムの構成》
図９に、本実施形態のゲームシステムのシステム構成を示す。本実施形態のゲームシステムにおいて、ネットワーク３００を介してサーバ２００に複数のクライアント端末１００が接続される点は、実施形態２と同様である。本実施形態ではサーバ２００は、さらに描画サーバ４００と接続する。図９の例では、サーバ２００と描画サーバ４００とは直接接続されるものとして示されているが、サーバ２００と描画サーバ４００とはネットワーク３００を介して接続されてもよいことは容易に想像されよう。
【００７３】
なお、本実施形態のゲームシステムにおいて、クライアント端末１００、サーバ２００、及び描画サーバ４００は、上述した２つの実施形態とは行われる処理の分担が異なる。本実施形態では、上述の実施形態とは異なり、描画サーバ４００がサーバ２００で行われるゲームコンテンツの描画系統に係る処理を実行する。そしてサーバ２００が、描画サーバ４００が提供する機能へのコールを発生し、描画サーバ４００に処理を行わせる。即ち、本実施形態ではクライアント端末１００においては、描画命令等のゲームコンテンツの具体的な処理を行う必要はない。クライアント端末１００は、サーバ２００から受信した符号動画データの再生を行う。またクライアント端末１００は、ゲームコンテンツに係るユーザ操作入力を受け付け、該操作内容をサーバ２００に送信する。
【００７４】
つまり、本実施形態のゲームシステムでは、クライアント端末１００は例えばウェブブラウザ等のサーバ２００から提供される符号化動画データの再生を行うアプリケーションと操作入力インタフェースさえ有していればよく、特定のゲームプログラム等を保持及び実行する必要がない。ゲームコンテンツに係る具体的な処理は、サーバ２００において行われ、そのうち描画系統に係る処理についてサーバ２００は描画サーバ４００にコールを送信して処理を実行させる。もちろん、上述した実施形態で説明されたハンドラテーブル更新動作はサーバ２００と描画サーバ４００とで行われ、サーバ２００はクライアントハンドラテーブルに相当するテーブル、描画サーバ４００はサーバハンドラテーブルに相当するテーブルを管理する。
【００７５】
本実施形態のゲームシステムでは、複数のクライアント端末１００の各々についての具体的な処理はサーバ２００において実行されることになる。この場合、サーバ制御部２０１は、各クライアント端末の処理についてクライアントハンドラテーブルに相当するテーブルを管理する必要はなく、複数のクライアント端末について、１つのテーブルと各オブジェクトについての生成情報とを管理することで足りる。即ち、複数のクライアント端末の処理について同一のメモリ空間上にある共通のテーブルを使用することで、いずれかの処理で新たなオブジェクトについて割り当てたハンドラの情報を、上述のクライアントハンドラテーブル更新処理を行うことなく共有することができる。
【００７６】
このようにすることで、上述の実施形態２と同様にサーバ２００に接続している複数のクライアント端末についての処理において、共通のハンドラを使用して描画サーバ４００の提供関数へのコールを生成することができる。なお、この場合、複数のクライアント端末についての処理が参照するオブジェクトは、サーバ２００内の同一のメモリ空間に存在するため、生成情報に基づいて新たにオブジェクトを生成して格納する必要はない。サーバ制御部２０１は、新たにオブジェクトを生成する必要がある際に、既にメモリ空間に生成されているオブジェクトについての生成情報を参照し、合致するものが存在する場合は該オブジェクトを生成する必要なく、既に生成されたオブジェクトを利用すればよい。
【００７７】
なお、上述した実施形態１、２、及び３では、コールにはポインタに対して割り当てられたハンドラを含めるものとして説明したが、本発明の実施はこれに限られるものではない。本発明は、同一のオブジェクトが異なる機器のメモリ空間において異なるアドレスに格納されるために、該オブジェクトへのアドレス参照をコールに含めたとしても好ましい結果が得られないことを解消するものである。即ち、ハンドラのような識別情報を割り当てる対象は、ポインタに限らず、メモリ空間における特定のアドレスを指定する指定情報であればよい。
【図１】
2014000372.tif 000003
【図２】
2014000372.tif 000004
【図３】
2014000372.tif 000005
【図４】
2014000372.tif 000006
【図５】
2014000372.tif 000007
【図６】
2014000372.tif 000008
【図７】
2014000372.tif 000009
【図８】
2014000372.tif 000010
【図９】
2014000372.tif 000011