(57)【要約】【課題】サーバ側ロジックのモジュール化のためのモジュール処理方法およびシステムを提供する。【解決手段】サーバ−クライアント環境でサービスを提供するサーバのモジュール処理方法であって、サーバが、サービスのためのサーバ機能を含む第１サーバモジュールファイルの入力を受けて格納および管理する段階、サーバが、クライアントプログラムの開発者から提供された第２サーバモジュールファイルの入力を受けて格納および管理する段階、およびサーバで、第１サーバモジュールファイルに含まれたプログラムコードを利用してサーバ機能を駆動し、サーバ機能を通じてクライアントの接続を管理し、接続するクライアントにサービスを提供するためのサービスロジックを第２サーバモジュールファイルに含まれたプログラムコードを利用して処理する段階を含むことを特徴とする、モジュール処理方法。【選択図】図１
2017120637.tif 000002
【特許請求の範囲】
【請求項１】
サーバ−クライアント環境でサービスを提供するサーバのモジュール処理方法であって、
前記サーバが、前記サービスのためのサーバ機能を含む第１サーバモジュールファイルの入力を受けて格納および管理する段階、
前記サーバが、クライアントプログラムの開発者から提供された第２サーバモジュールファイルの入力を受けて格納および管理する段階、および
前記サーバで、前記第１サーバモジュールファイルに含まれたプログラムコードを利用して前記サーバ機能を駆動し、前記サーバ機能を通じてクライアントの接続を管理し、接続するクライアントに前記サービスを提供するためのサービスロジックを前記第２サーバモジュールファイルに含まれたプログラムコードを利用して処理する段階
を含むことを特徴とする、モジュール処理方法。
【請求項２】
前記第１サーバモジュールファイルは、前記サービスのために構築されたデータベースへのアクセスを管理するためのモジュールおよび前記クライアントの接続を管理するためのモジュールを含み、
前記第２サーバモジュールファイルは、前記サーバから前記クライアントに前記サービスを提供するためのサービスロジックを処理するために前記サーバを制御するためのモジュールを含む、請求項１に記載のモジュール処理方法。
【請求項３】
前記サービスはゲームサービスを含み、
前記サービスロジックは、前記ゲームサービスを通じて提供されるゲームのルールにしたがって前記クライアントで前記ゲームが行われるように制御するためのロジックであって、前記第２サーバモジュールファイルに含まれた前記プログラムコードにしたがって前記サーバによって制御されることを含む、請求項１に記載のモジュール処理方法。
【請求項４】
前記第１サーバモジュールファイルおよび前記第２サーバモジュールファイルは、前記基本共通オブジェクトモジュールに対するオブジェクト継承（ｏｂｊｅｃｔ  ｉｎｈｅｒｉｔａｎｃｅ）を基盤として開発されたプログラムコードを含み、
前記基本共通オブジェクトモジュールは、前記サービスのためにオブジェクト指向プログラムミング（ｏｂｊｅｃｔｉｖｅ−ｏｒｉｅｎｔｅｄ  ｐｒｏｇｒａｍｍｉｎｇ）言語によって予め生成されたモジュールである、請求項１に記載のモジュール処理方法。
【請求項５】
前記クライアントは、前記クライアントプログラムの開発者によって生成されたクライアントプログラムがインストールおよび駆動される電子機器を含み、前記クライアントプログラムの制御にしたがってネットワークを介して前記サーバに接続する、請求項１に記載のモジュール処理方法。
【請求項６】
前記サーバで、前記第１サーバモジュールファイルに含まれたプログラムコードおよび前記第２サーバモジュールファイルに含まれたプログラムコードを作成するのに利用されたプログラミング言語間の差を取り除くために、前記第１サーバモジュールファイルに含まれた前記プログラムコードまたは前記第２サーバモジュールファイルに含まれた前記プログラムコードを修正する段階
をさらに含むことを特徴とする、請求項１に記載のモジュール処理方法。
【請求項７】
請求項１乃至６のうちのいずれか一項の方法を実行するためのプログラムが記録されていることを特徴とする、コンピュータで読み取り可能な記録媒体。
【請求項８】
サーバ−クライアント環境でサービスを提供するサーバのモジュール処理システムであって、
コンピュータで読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサ
を含み、
前記少なくとも１つのプロセッサは、
前記サービスのためのサーバ機能を含む第１サーバモジュールファイルの入力を受けて格納および管理するように前記サーバを制御し、クライアントプログラムの開発者から提供された第２サーバモジュールファイルの入力を受けて格納および管理するように前記サーバを制御するファイル管理制御部、および
前記第１サーバモジュールファイルに含まれたプログラムコードを利用して前記サーバ機能を駆動し、前記サーバ機能を通じてクライアントの接続を管理し、接続するクライアントに前記サービスを提供するためのサービスロジックを前記第２サーバモジュールファイルに含まれたプログラムコードを利用して処理するロジック処理部
を備えることを特徴とする、モジュール処理システム。
【請求項９】
前記第１サーバモジュールファイルは、前記サービスのために構築されたデータベースへのアクセスを管理するためのモジュールおよび前記クライアントの接続を管理するためのモジュールを含み、
前記第２サーバモジュールファイルは、前記サーバから前記クライアントに前記サービスを提供するためのサービスロジックを処理するために前記サーバを制御するためのモジュールを含む、請求項８に記載のモジュール処理システム。
【請求項１０】
前記サービスはゲームサービスを含み、
前記サービスロジックは、前記ゲームサービスを通じて提供されるゲームのルールにしたがって前記クライアントで前記ゲームが行われるように制御するためのロジックであって、前記第２サーバモジュールファイルに含まれた前記プログラムコードにしたがって前記サーバによって制御される、請求項８に記載のモジュール処理システム。
【請求項１１】
前記第１サーバモジュールファイルおよび前記第２サーバモジュールファイルは、前記基本共通オブジェクトモジュールに対するオブジェクト継承（ｏｂｊｅｃｔ  ｉｎｈｅｒｉｔａｎｃｅ）を基盤として開発されたプログラムコードを含み、
前記基本共通オブジェクトモジュールは、前記サービスのためにオブジェクト指向プログラムミング（ｏｂｊｅｃｔｉｖｅ−ｏｒｉｅｎｔｅｄ  ｐｒｏｇｒａｍｍｉｎｇ）言語によって予め生成されたモジュールである、請求項８に記載のモジュール処理システム。
【請求項１２】
前記クライアントは、前記クライアントプログラムの開発者によって生成されたクライアントプログラムがインストールおよび駆動される電子機器を含み、前記クライアントプログラムの制御にしたがってネットワークを介して前記サーバに接続する、請求項８に記載のモジュール処理システム。
【請求項１３】
前記少なくとも１つのプロセッサは、
前記第１サーバモジュールファイルに含まれたプログラムコードおよび前記第２サーバモジュールファイルに含まれたプログラムコードを作成するのに利用されたプログラミング言語間の差を取り除くために、前記第１サーバモジュールファイルに含まれたプログラムコードまたは前記第２サーバモジュールファイルに含まれたプログラムコードを修正するコード修正部
をさらに備える、請求項８に記載のモジュール処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
下記の説明は、サーバ側ロジックのモジュール化のためのモジュール処理方法およびシステムに関する。
【背景技術】
【０００２】
最近の従来技術に係るサーバ−クライアント環境では、サービスを開発する主体とサーバを運営する主体とが分離しているのが大部分である。例えば、サービスを提供するサーバは、サーバを運営する主体で開発されたソース（プログラムコード）を通じて動作し、このようなソースが１つのモジュールファイルで作成されていた。サーバを運営する主体のサーバプログラム開発者は、サーバのためのモジュールを１つのモジュールファイルによって開発し、サービスを開発する主体である開発者は、クライアントにインストールされて駆動するクライアントプログラムを開発してクライアントに配布する。ここで、クライアントは、クライアントプログラムを利用してサーバに接続することができ、サーバは、サーバのために開発されたモジュールを利用しながら接続したクライアントにサービスを提供することができる。
【０００３】
図１は、従来技術における、サーバモジュールファイルの例を示した図である。従来技術において、サーバ１００は、「サーバプログラム．ｅｘｅ」１１０のように、ＤＢアクセスソース１１１、サービスロジックソース１１２、接続管理ソース１１３、および外部モジュール管理ソース１１４のようなプログラムコードが含まれた１つのファイルを通じて動作していた。言い換えれば、従来技術のサーバ１００は、このような１つのファイルに含まれたプログラムコードの制御にしたがって、クライアントプログラム１２１がインストールおよび駆動されたクライアント１２０にサービスを提供する。ここで、ＤＢアクセスソース１１１は、サービスと関連するデータベースにデータを書き込むか読み取るための処理コードを含んでもよく、サービスロジックソース１１２は、ゲームロジックのように提供されなければならないサービスロジックに対する処理コードを含んでもよい。また、接続管理ソース１１３は、クライアント１２０の接続を管理するための処理コードを含んでもよく、外部モジュール管理ソース１１４は、多様な外部モジュールを管理するための処理コードを含んでもよい。
【０００４】
サービスに応じて多様な外部モジュール（一例として、ＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋｉｎｇ  Ｌｉｂｒａｒｙ）ファイル）が利用されてもよいが、これは一般的な機能を使用するためのものに過ぎず、サービスの提供のために開発されなければならないサーバ側の機能は、１つのモジュールファイルで製作されて利用されている。
【０００５】
これにより、開発されなければならないモジュールファイルが含むコードの複雑度が増加する上に、コードの修正が難しく、コードに変化が生じるたびにモジュールファイルをすべて再構築（ｂｕｉｌｄ）しなければならないという問題がある。
【０００６】
これだけでなく、モジュールファイルにサーバ側のサービスロジックが含まれるため、サーバプログラム開発者がクライアントプログラム開発者によって提供されるサービスに関する知識を十分に熟知しなければならない必要性が増加するという問題がある。例えば、カードゲームサービスを提供する場合、サーバを運営するサーバプログラム開発者もこのカードゲームサービスのルールを把握していなければならず、カードゲームサービスに対するサーバ側のサービスロジックをモジュールファイルに含ませて開発しなければならないという問題がある。
【０００７】
互いに異なる開発者が同じオブジェクトをプログラム上でそれぞれ開発する場合、同じオブジェクトに対する概念の理解が互いに異なるのが当然であることから、同じオブジェクトが異なる方式で開発されたり、まったく異なるように動作するように開発されたりするようになる。したがって、同じサービスに対するサービス開発者の理解とサーバ側の開発者の理解が互いに異なる場合が多いため、このような差を調整するための時間と費用が多く消耗される。互いに同じ機能（認証、ハッキング防止ロジックなど）をそれぞれ開発することによって追加の費用が生じるという問題が発生すると同時に、互いに互換しないという問題も発生する。
【０００８】
図２は、従来技術における、カードゲームでのカードを互いに異なる方式によって作成したプログラムコードの例を示している。１番目のプログラムコード２１０と２番目のプログラムコード２２０はすべて、トランプカードゲームのカードを実現するためのプログラムコードを示している。しかし、１番目のプログラムコード２１０ではカードナンバーが「１」から始まるが、２番目のプログラムコード２２０のカードナンバーは「０」から始まるため、２つのプログラムコード（２１０および２２０）は互いに互換しない。
【０００９】
サーバ側プログラムコードとクライアント側プログラムコードが図２の２つのプログラムコード（２１０および２２０）のように互いに異なる場合、サーバ側とクライアント側とで関連するデータをやり取りするときに、１を加えるか引かなければならなくなり、これによってプログラムコード上のエラーやロジックエラーが発生する可能性が増加するようになるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
サーバ側プログラムコードのうち、サーバ側サービスロジックのようにサービスに密接なプログラムコードの開発をクライアントプログラム開発者によって開発するようにし、モジュール化されたサーバ側プログラムコードを通じてサービスを提供することができるサーバのモジュール処理方法およびシステムを提供する。
【課題を解決するための手段】
【００１１】
サーバ−クライアント環境でサービスを提供するサーバのモジュール処理方法であって、サーバが、サービスのためのサーバ機能を含む第１サーバモジュールファイルの入力を受けて格納および管理する段階、サーバが、クライアントプログラムの開発者から提供された第２サーバモジュールファイルの入力を受けて格納および管理する段階、およびサーバで、第１サーバモジュールファイルに含まれたプログラムコードを利用してサーバ機能を駆動し、サーバ機能を通じてクライアントの接続を管理し、接続するクライアントにサービスを提供するためのサービスロジックを第２サーバモジュールファイルに含まれたプログラムコードを利用して処理する段階を含むことを特徴とする、モジュール処理方法を提供する。
【００１２】
一形態によると、第１サーバモジュールファイルは、サービスのために構築されたデータベースへのアクセスを管理するためのモジュールおよびクライアントの接続を管理するためのモジュールを含み、第２サーバモジュールファイルは、サーバからクライアントにサービスを提供するためのサービスロジックを処理するためにサーバを制御するためのモジュールを含んでいてもよい。
【００１３】
また他の形態によると、サービスはゲームサービスを含み、サービスロジックは、ゲームサービスを通じて提供されるゲームのルールにしたがってクライアントでゲームが行われるように制御するためのロジックであって、第２サーバモジュールファイルに含まれたプログラムコードにしたがってサーバによって制御されることを含んでいてもよい。
【００１４】
また他の形態によると、第１サーバモジュールファイルおよび第２サーバモジュールファイルは、基本共通オブジェクトモジュールに対するオブジェクト継承（ｏｂｊｅｃｔ  ｉｎｈｅｒｉｔａｎｃｅ）を基盤として開発されたプログラムコードを含み、基本共通オブジェクトモジュールは、サービスのためにオブジェクト指向プログラムミング（ｏｂｊｅｃｔｉｖｅ−ｏｒｉｅｎｔｅｄ  ｐｒｏｇｒａｍｍｉｎｇ）言語によって予め生成されたモジュールであってもよい。
【００１５】
また他の形態によると、クライアントは、クライアントプログラム開発者によって生成されたクライアントプログラムがインストールおよび駆動される電子機器を含み、クライアントプログラムの制御にしたがってネットワークを介してサーバに接続してもよい。
【００１６】
さらに他の形態によると、モジュール処理方法は、サーバで、第１サーバモジュールファイルに含まれたプログラムコードおよび第２サーバモジュールファイルに含まれたプログラムコードを作成するのに利用されたプログラミング言語間の差を取り除くために、第１サーバモジュールファイルに含まれたプログラムコードまたは第２サーバモジュールファイルに含まれたプログラムコードを修正する段階をさらに含むことをさらに含んでいてもよい。
【００１７】
サーバ−クライアント環境でサービスを提供するサーバのモジュール処理システムであって、コンピュータで読み取り可能な命令を実行するように実現される少なくとも１つのプロセッサを含み、少なくとも１つのプロセッサは、サービスのためのサーバ機能を含む第１サーバモジュールファイルの入力を受けて格納および管理するようにサーバを制御し、クライアントプログラムの開発者から提供された第２サーバモジュールファイルの入力を受けて格納および管理するようにサーバを制御するファイル管理制御部、および第１サーバモジュールファイルに含まれたプログラムコードを利用してサーバ機能を駆動し、サーバ機能を通じてクライアントの接続を管理し、接続するクライアントにサービスを提供するためのサービスロジックを第２サーバモジュールファイルに含まれたプログラムコードを利用して処理するロジック処理部を備えることを特徴とする、モジュール処理システムを提供する。
【発明の効果】
【００１８】
サーバ側のプログラムコードのうち、サーバ側サービスロジックのようにサービスに密接なプログラムコードの開発をクライアントプログラム開発者によって開発することにより、サーバでモジュール化されたサーバ側プログラムコードを通じてサービスを提供することができる。
【００１９】
サーバ側プログラムコードのモジュール化によってサーバ側プログラムコードに対する分業化が可能となり、プログラムコードの複雑度を減らすことができる上に、モジュールの交換を容易に行うことができる。
【００２０】
サーバ側モジュールを互いに異なるサービスを提供するサーバで共用することが可能となり、サーバの開発人員を最小化することができる。
【００２１】
サービス開発者の側面では、サーバ側の開発者とのコミュニケーション時間と費用が減少することにより、サービスコンテンツの開発だけに集中することができる。
【図面の簡単な説明】
【００２２】
【図１】従来技術における、サーバモジュールファイルの例を示した図である。
【図２】従来技術における、カードゲームでのカードを互いに異なる方式によって作成したプログラムコードの例を示している。
【図３】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【図４】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【図５】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図である。
【図６】本発明の一実施形態における。サーバが実行することのできるモジュール処理方法の例を示したフローチャートである。
【図７】本発明の一実施形態における、サーバ側のモジュールの例を示した図である。
【図８】本発明の一実施形態における、オブジェクト継承を説明するための図である。
【発明を実施するための形態】
【００２３】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【００２４】
図３は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図３のネットワーク環境は、複数の電子機器３１０、３２０、３３０、３４０、複数のサーバ３５０、３６０、およびネットワーク３７０を含む例を示している。このような図３は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図３のように限定されることはない。
【００２５】
複数の電子機器３１０、３２０、３３０、３４０は、コンピュータ装置によって実現される固定型端末や移動型端末であってもよい。複数の電子機器３１０、３２０、３３０、３４０の例としては、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、タブレットＰＣなどがある。一例として、電子機器１（３１０）は、無線または有線通信方式を利用し、ネットワーク３７０を介して他の電子機器３２０、３３０、３４０および／またはサーバ３５０、３６０と通信してもよい。
【００２６】
通信方式が制限されることはなく、ネットワーク３７０が含むことのできる通信網（一例として、移動通信網、有線インターネット、無線インターネット、放送網）を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク３７０は、ＰＡＮ（ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＣＡＮ（ｃａｍｐｕｓ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＭＡＮ（ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＢＢＮ（ｂｒｏａｄｂａｎｄ  ｎｅｔｗｏｒｋ）、インターネットなどのネットワークのうちの１つ以上の任意のネットワークを含んでもよい。さらに、ネットワーク３７０は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的（ｈｉｅｒａｒｃｈｉｃａｌ）ネットワークなどを含むネットワークトポロジのうちの任意の１つ以上を含んでもよいが、これに制限されることはない。
【００２７】
サーバ３５０、３６０それぞれは、複数の電子機器３１０、３２０、３３０、３４０とネットワーク３７０を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてもよい。
【００２８】
一例として、サーバ３６０は、ネットワーク３７０を介して接続した電子機器１（３１０）にアプリケーションのインストールのためのファイルを提供してもよい。この場合、電子機器１（３１０）は、サーバ３６０から提供されたファイルを利用してアプリケーションをインストールしてもよい。また、電子機器１（３１０）が含むオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ：ＯＳ）および少なくとも１つのプログラム（一例として、ブラウザや前記インストールされたアプリケーション）の制御にしたがってサーバ３５０に接続し、サーバ３５０が提供するサービスやコンテンツの提供を受けてもよい。例えば、電子機器１（３１０）がアプリケーションの制御にしたがってネットワーク３７０を介してサービス要請メッセージをサーバ３５０に送信すると、サーバ３５０はサービス要請メッセージに対応するコードを電子機器１（３１０）に送信してもよく、電子機器１（３１０）はアプリケーションの制御にしたがってコードに基づく画面を構成して表示することによってユーザにコンテンツを提供してもよい。他の例として、サーバ３５０は、メッセージングサービスのための通信セッションを設定し、設定された通信セッションを通じて複数の電子機器３１０、３２０、３３０、３４０間のメッセージ送受信をルーティングしてもよい。また他の例として、サーバ３５０は、複数の電子機器３１０、３２０、３３０、３４０間の映像通話を中継してもよい。さらに他の例として、サーバ３５０は、複数の電子機器３１０、３２０、３３０、３４０にゲームサービスを提供してもよい。
【００２９】
図４は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図４では、１つの電子機器に対する例として電子機器１（３１０）を、１つのサーバに対する例としてサーバ３５０の内部構成を説明する。他の電子機器３２０、３３０、３４０やサーバ３６０も、同一または類似の内部構成を備えてもよい。
【００３０】
電子機器１（３１０）とサーバ３５０は、メモリ４１１、４２１、プロセッサ４１２、４２２、通信モジュール４１３、４２３、および入力／出力インタフェース４１４、４２４を含んでもよい。メモリ４１１、４２１は、コンピュータで読み取り可能な記録媒体であって、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、およびディスクドライブのような永久大容量記憶装置（ｐｅｒｍａｎｅｎｔ  ｍａｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）を含んでよい。また、メモリ４１１、４２１には、オペレーティングシステムと、少なくとも１つのプログラムコード（一例として、電気機器１（３１０）にインストールされ駆動するブラウザや映像通話のためのアプリケーションなどのためのコード）が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム（ｄｒｉｖｅ  ｍｅｃｈａｎｉｓｍ）を利用してメモリ４１１、４２１とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、ＤＶＤ／ＣＤ−ＲＯＭドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール４１３、４２３を利用してメモリ４１１、４２１にロードされてもよい。例えば、少なくとも１つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム（一例として、上述したサーバ３６０）がネットワーク３７０を介して提供するファイルによってインストールされるプログラム（一例として、上述したアプリケーション）に基づいてメモリ４１１、４２１にロードされてもよい。
【００３１】
プロセッサ４１２、４２２は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ４１１、４２１または通信モジュール４１３、４２３によって、プロセッサ４１２、４２２に提供されてよい。例えば、プロセッサ４１２、４２２は、メモリ４１１、４２１のような記録装置に格納されたプログラムコードを実行するように構成されてもよい。
【００３２】
通信モジュール４１３、４２３は、ネットワーク３７０を介して電子機器１（３１０）とサーバ３５０とが互いに通信するための機能を提供してもよいし、他の電子機器（一例として、電子機器２（３２０））または他のサーバ（一例として、サーバ３６０）と通信するための機能を提供してもよい。一例として、電子機器１（３１０）のプロセッサ４１２がメモリ４１１のような記録装置に格納されたプログラムコードにしたがって生成した要請（一例として、映像通話サービスのための要請）が、通信モジュール４１３の制御にしたがってネットワーク３７０を介してサーバ３５０に伝達されてもよい。これとは逆に、サーバ３５０のプロセッサ４２２の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール４２３とネットワーク３７０を経て電子機器１（３１０）の通信モジュール４１３を通じて電子機器１（３１０）によって受信されてもよい。例えば、通信モジュール４１３を通じて受信されたサーバ３５０の制御信号や命令などは、プロセッサ４１２やメモリ４１１に伝達されてもよく、コンテンツやファイルなどは、電子機器１（３１０）がさらに含むことのできる格納媒体に格納されてもよい。
【００３３】
入力／出力インタフェース４１４、４２４は、入力／出力装置４１５とのインタフェースのための手段であってもよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、また出力装置は、アプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでもよい。他の例として、入力／出力インタフェース４１４は、タッチスクリーンのように入力と出力のための機能が１つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器１（３１０）のプロセッサ４１２は、メモリ４１１にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ３５０や電子機器２（３２０）が提供するデータを利用して構成されるサービス画面やコンテンツが入力／出力インタフェース４１４を通じてディスプレイに表示されてもよい。
【００３４】
また、他の実施形態において、電子機器１（３１０）とサーバ３５０は、図４の構成要素よりもさらに多くの構成要素を含んでもよい。しかし、大部分の従来技術構成要素を明確に図に示す必要はない。例えば、電子機器１（３１０）は、上述した入出力装置４１５のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ（ｔｒａｎｓｃｅｉｖｅｒ）、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器１（３１０）がスマートフォンである場合は、一般的にスマートフォンが備えている加速度センサやジャイロセンサ、カメラ、各種物理的なボタンやタッチパネルを利用したボタン、入力／出力ポートなどの多様な構成要素が電子機器１（３１０）にさらに含まれるように実現されてもよいことが分かる。
【００３５】
本実施形態で、サーバ３５０は、ネットワーク３７０を介して接続した通信端末（一例として、電子機器１（３１０）および電子機器２（３２０））にサービスを提供するシステム装置であってもよい。
【００３６】
図５は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図であり、図６は、本発明の一実施形態における、サーバが実行することのできるモジュール処理方法の例を示したフローチャートである。
【００３７】
サーバ３５０は、ゲームサービスを提供するゲームサーバと特定のサービスを提供するシステム装置であってもよく、図５に示すように、サーバ３５０のプロセッサ４２２は、構成要素として、ファイル管理制御部５１０、ロジック処理部５２０、およびコード修正部５３０を備えてもよい。ここで、コード修正部５３０は、必要によって選択的にプロセッサ４２２に含まれて利用されてもよい。このようなプロセッサ４２２およびプロセッサ４２２の構成要素は、図６のモジュール処理方法が含む段階４１０〜４６０を実行するようにサーバ３５０を制御してもよい。ここで、プロセッサ４２２およびプロセッサ４２２の構成要素は、メモリ４２１が含むオペレーティングシステムのコードと少なくとも１つのプログラムコードによる命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行するように実現されてもよい。ここで、プロセッサ４２２の構成要素は、プロセッサ４２２によって実行される互いに異なる機能（ｄｉｆｆｅｒｅｎｔ  ｆｕｎｃｔｉｏｎｓ）の表現であってもよい。例えば、プロセッサ４２２が上述した命令にしたがってサービスロジックを処理するために動作する機能的表現としてロジック処理部５２０が使用されてもよい。
【００３８】
段階６１０で、プロセッサ４２２は、モジュール処理方法のためのプログラムのファイルに格納されたプログラムコードをメモリ４２１にロードしてもよい。例えば、プログラムは、サービスの提供のために必要なファイルを管理し、該当のファイルに含まれたプログラムコードもメモリ４２１にロードするためにサーバ３５０に予め設定されたプログラムであってもよい。サーバ３５０に予めインストールされているプログラムが実行された場合、プロセッサ４２２は、プログラムのファイルからプログラムコードをメモリ４２１にロードしてもよい。
【００３９】
段階６２０で、ファイル管理制御部５１０は、サーバプログラム開発者によって開発された第１サーバモジュールファイルの入力を受けて格納および管理するようにサーバ３５０を制御してもよい。ここで、第１サーバモジュールファイルは、サービスのために構築されたデータベースへのアクセスを管理するためのモジュールおよびクライアントの接続を管理するためのモジュールを少なくとも含んでもよい。さらに、必要によって、外部モジュールを管理するためのモジュールのように追加のモジュールをさらに含んでもよい。言い換えれば、サーバプログラム開発者は、一般的なサーバ側の機能を開発して提供することができる。
【００４０】
段階６３０で、ファイル管理制御部５１０は、クライアントプログラム開発者によって開発された第２サーバモジュールファイルの入力を受けて格納および管理するようにサーバ３５０を制御してもよい。第２サーバモジュールファイルは、サーバ３５０からクライアントにサービスを提供するためのサービスロジックを処理するためにサーバ３５０を制御するためのモジュールを含んでもよい。言い換えれば、サービスロジックのように提供しようとするサービスに特定的な機能を処理するためにサーバ３５０を制御するためのプログラムコードは、クライアントプログラム開発者によって開発されて提供されることができる。
【００４１】
それぞれのサーバモジュールファイルの開発のためにオブジェクト指向プログラムミング（ｏｂｊｅｃｔｉｖｅ−ｏｒｉｅｎｔｅｄ  ｐｒｏｇｒａｍｍｉｎｇ）言語によって予め生成された基本共通オブジェクトモジュールが、サーバプログラム開発者およびクライアントプログラム開発者にそれぞれ提供されてもよい。ここで、第１サーバモジュールファイルおよび第２サーバモジュールファイルは、基本共通オブジェクトモジュールに対するオブジェクト継承（ｏｂｊｅｃｔ  ｉｎｈｅｒｉｔａｎｃｅ）を基盤として開発されたプログラムコードを含んでもよい。したがって、共通する部分をサーバプログラム開発者およびクライアントプログラム開発者がそれぞれ別に実現する必要がなくなり、誤解や疎通の間違いを根本的に遮断することができる。さらに、共通する部分の実現がなくなるため、全体コード量を減らすことができる。
【００４２】
段階６４０で、プロセッサ４２２は、第１サーバモジュールファイルに含まれたプログラムコードおよび第２サーバモジュールファイルに含まれたプログラムコードをメモリ２２１にロードしてもよい。
【００４３】
段階６５０で、コード修正部５３０は、第１サーバモジュールファイルに含まれたプログラムコードおよび第２サーバモジュールファイルに含まれたプログラムコードを作成するのに利用されたプログラミング言語間の差を取り除くために、第１サーバモジュールファイルに含まれたプログラムコードまたは第２サーバモジュールファイルに含まれたプログラムコードを修正してもよい。第１サーバモジュールファイルに含まれたプログラムコードと第２サーバモジュールファイルに含まれたプログラムコードは、互いに異なるプログラミング言語によって作成されること場合もある。例えば、第１サーバモジュールファイルに含まれたプログラムコードは、サーバ３５０の性能のためにＣ＋＋やＣのようなプログラムミング言語で作成されることがあるし、第２サーバモジュールファイルに含まれたプログラムコードは、製作の便宜のためにユニティ（Ｕｎｉｔｙ）のＣ＃のようなプログラミング言語で作成されることがある。一例として、Ｃ＃で使用される「Ｌｉｓｔ」とＣ＋＋で使用される「ｌｉｓｔ」は、互いに異なる意味をもつ。プログラミング言語による差の例は、以下のとおりとなる。
【００４４】
−Ｌｉｓｔ（Ｃ＃）＝ｖｅｃｔｅｒ（Ｃ＋＋）
−ＡｒｒａｙＬｉｓｔ（Ｃ＃）＝Ａｒｒａｙ（Ｃ＋＋）
−ＬｉｎｋｅｄＬｉｓｔ（Ｃ＃）＝ｌｉｓｔ（Ｃ＋＋）
【００４５】
Ｃ＃で使用される「Ｌｉｓｔ」はＣ＋＋で使用される「ｖｅｃｔｅｒ」の概念であり、Ｃ＃で使用される「ＡｒｒａｙＬｉｓｔ」はＣ＋＋で使用される「Ａｒｒａｙ」の概念であり、Ｃ＃で使用される「ＬｉｎｋｅｄＬｉｓｔ」はＣ＋＋で使用される「ｌｉｓｔ」の概念である。このように使用されるプログラミング言語により、サーバとクライアントとの間でやり取りするデータにエラーが発生する余地が存在する。したがって、コード修正部５３０は、互いに異なるプログラミング言語によって生じる差を取り除くために、第１サーバモジュールファイルに含まれたプログラムコードまたは第２サーバモジュールファイルに含まれたプログラムコードを修正してもよい。このような段階６５０は、必要によって選択的にモジュール処理方法に含まれてもよい。
【００４６】
段階６６０で、ロジック処理部５２０は、第１サーバモジュールファイルに含まれたプログラムコードを利用してサービスのためのサーバ機能を駆動するが、サーバ機能を通じて接続するクライアントにサービスを提供するためのサービスロジックを第２サーバモジュールファイルに含まれたプログラムコードを利用して処理してもよい。例えば、サービスはゲームサービスを含んでもよい。ここで、サービスロジックは、ゲームサービスを通じて提供されるゲームのルールにしたがってクライアントでゲームが行われるように制御するためのロジックであって、第２サーバモジュールファイルに含まれたプログラムコードにしたがってサーバ３５０によって制御されてもよい。
【００４７】
クライアントは、クライアントプログラム開発者によって生成されたクライアントプログラムがインストールおよび駆動される電子機器（一例として、電子機器１（３１０））を含み、クライアントプログラムの制御にしたがってネットワークを介してサーバ３５０に接続してもよい。
【００４８】
図７は、本発明の一実施形態における、サーバ側モジュールの例を示した図である。サーバ側７１０には、サーバプログラム開発者によって、ＤＢアクセス管理モジュール７１１および外部モジュール管理モジュール７１２のようにサーバ３５０の一般的な機能のためのモジュールが開発されて実現されてもよい。このようなサーバ側７１０には、クライアントのアクセスを管理するためのアクセス管理モジュールなどがさらに含まれてもよい。
【００４９】
ここで、従来技術では１つのモジュールファイルに実現されていたサービスロジックが、本発明の実施形態では、別のサービスロジックモジュール７２１としてサービス開発者側７２０によって開発されてサーバ側７１０に含まれてもよい。上述では、クライアントプログラム開発者によって開発された第２サーバモジュールファイルを通じてサービスロジックのためのプログラムコードが別のモジュールによって受信されてもよいことについて説明した。クライアントモジュール７２２は、クライアントを実現する電子機器にインストールおよび駆動されるアプリケーションを含んでもよい。
【００５０】
例えば、電子機器１（３１０）からクライアントモジュール７２２を通じてサーバ３５０に接続すると、サーバ３５０は、サービスロジックモジュール７２１を通じて電子機器１（３１０）にサービスを提供してもよい。
【００５１】
このとき、ＤＢアクセス管理モジュール７１１は、サービスの提供に必要なデータをＤＢゲートウェイまたはＤＢ７３０に書き込こむか読み取ってもよい。外部モジュール管理モジュール７１２は、外部モジュール７４０を管理するのに利用されてもよい。サービスロジックモジュール７２１も、１つの外部モジュールとして外部モジュール管理モジュール７１２によって管理されてもよい。
【００５２】
図８は、本発明の一実施形態における、オブジェクト継承を説明するための図である。基本共通オブジェクトモジュール８１０は、上述したように、オブジェクト指向プログラムミング（ｏｂｊｅｃｔｉｖｅ−ｏｒｉｅｎｔｅｄ  ｐｒｏｇｒａｍｍｉｎｇ）言語によって予め生成されてもよい。このような基本共通オブジェクトモジュールは、サーバプログラム開発者とクライアントプログラム開発者にそれぞれ提供されてもよく、サーバプログラム開発者とクライアントプログラム開発者は、提供された基本共通オブジェクトモジュールに対するオブジェクト継承を基盤としてそれぞれのプログラムコードを開発してもよい。
【００５３】
サーバ側モジュール８２０で作成されたクラスの大部分は共通して使用されてもよく、「ＲｏｏｍＰｌａｙｅｒ」オブジェクトを継承した「Ｄｅａｌｅｒ」オブジェクトのように、基本共通オブジェクトモジュール８１０のクラスを継承してもよい。
【００５４】
これと同じように、クライアント側モジュール８３０も、「ＢｅｔＭｏｎｅｙ」オブジェクトを継承した「Ｂｅｔｔｉｎｇ」オブジェクトや、「ＲｏｏｍＰｌａｙｅｒ」オブジェクトを継承した「ＧａｍｅＰｌａｙｅｒ」オブジェクトのように、基本共通オブジェクトモジュール８１０のクラスを継承してもよい。
【００５５】
言い換えれば、共通する部分を、基本共通オブジェクトモジュール８１０を通じて提供し、必要なオブジェクトを継承して使用することにより、サーバプログラム開発者とクライアントプログラム開発者が共通する部分を別に実現する必要がなくなる。
【００５６】
このように、本発明の実施形態によると、サーバ側プログラムコードのうち、サーバ側サービスロジックのようにサービスに密接なプログラムコードの開発をクライアントプログラム開発者によって開発することにより、サーバでモジュール化されたサーバ側プログラムコードを通じてサービスを提供することができる。また、サーバ側プログラムコードのモジュール化によってサーバ側プログラムコードに対する分業化が可能となり、プログラムコードの複雑度を減らすことができる上に、モジュールの交換を容易に行うことができる。さらに、サーバ側モジュールを互いに異なるサービスを提供するサーバで共用することが可能となり、サーバの開発人員を最小化することができるし、サービス開発者の側面では、サーバ側の開発者とのコミュニケーション時間と費用が減少することによってサービスコンテンツの開発だけに集中することができる。
【００５７】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、および／またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてもよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてもよい。処理装置は、オペレーティングシステム（ＯＳ）および前記ＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでもよい。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成（ｐｒｏｃｅｓｓｉｎｇ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）も可能である。
【００５８】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に（ｃｏｌｌｅｃｔｉｖｅｌｙ）処理装置を命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供するために、いかなる種類の機械、コンポーネント、物理装置、仮想装置（ｖｉｒｔｕａｌ  ｅｑｕｉｐｍｅｎｔ）、コンピュータ格納媒体または装置、または送信される信号波（ｓｉｇｎａｌ  ｗａｖｅ）に永久的または一時的に具現化（ｅｍｂｏｄｙ）されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された方法で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【００５９】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【００６０】
以上のように、実施形態を限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能である。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、および／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【００６１】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【００６２】
１００：サーバ
１１０：サーバプログラム．ｅｘｅ
１１１：ＤＢアクセスソース
１１２：サービスロジックソース
１１３：接続管理ソース
１１４：外部モジュール管理ソース
１２０：クライアント
１２１：クライアントプログラム
【図１】
2017120637.tif 000003
【図２】
2017120637.tif 000004
【図３】
2017120637.tif 000005
【図４】
2017120637.tif 000006
【図５】
2017120637.tif 000007
【図６】
2017120637.tif 000008
【図７】
2017120637.tif 000009
【図８】
2017120637.tif 000010