以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が置換可能かつ容易なもの、あるいは実質的に同一のものが含まれる。
[実施形態]
<プログラム管理システムの概要>
図1に示す本実施形態のプログラム管理システムSys1は、端末機器10と、外部機器20とを備え、これらが相互に通信し連携することで、端末機器10によって作成されたプログラムを、外部機器20によって適正に管理することができるシステムである。端末機器10は、プログラム管理システムSys1による管理の対象となるソフトウェアプログラムを作成可能な電子機器である。外部機器20は、ネットワークN上に実装されるクラウドサービス機器(クラウドサーバ)を構成するものである。ネットワークNは、Wi-Fi(登録商標)、4G、5G等を用いた無線通信、通信線を用いた有線通信を問わず任意の通信網によって構成され、外部機器20と端末機器10とを通信可能に接続する。外部機器20と端末機器10とは、典型的には、ネットワークNを介して相互に通信を行う。端末機器10は、典型的には、外部機器20と相互に通信し連携することで当該外部機器20から様々なクラウドサービスを受けることができる。本実施形態のプログラム管理システムSys1は、端末機器10によって作成されたプログラムについての様々なステータス情報(言い換えれば、属性情報)に基づいて、外部機器20によってプログラムを管理する。以下、各図を参照してプログラム管理システムSys1の各構成について詳細に説明する。
<管理対象となるプログラム>
ここでまず、プログラム管理システムSys1による管理の対象となるソフトウェアプログラムについて説明する。本実施形態において、管理の対象となるソフトウェアプログラムは、動作対象機器で実行させることで当該動作対象機器を動作させるプログラムである。
ここで、動作対象機器とは、プログラム管理システムSys1による管理の対象となるプログラムによって動作する機器である。動作対象機器は、典型的には、ユーザが携帯可能に構成されるものであるがこれに限らない。動作対象機器は、例えば、スマートフォン、タブレット型PC、ノート型PC、デスクトップ型PC、PDA、携帯ゲーム機器、人体に装着可能なウェアラブル機器等によって構成することができる。ウェアラブル機器としては、例えば、リストバンド型、眼鏡型、指輪型、靴型、ペンダント型等の機器が挙げられる。動作対象機器としては、例えば、端末機器10や当該端末機器10と相互に通信可能である電子時計等が含まれていてもよい。
本実施形態において、管理の対象となるソフトウェアプログラムは、典型的には、動作対象機器のブラウザ等の他のアプリケーションプログラムの中に組み込まれて実行される比較的に小さなサイズのプログラムである。ここでは一例として、管理の対象となるソフトウェアプログラムは、ブラウザ上で実行されるアプリケーションプログラムであるアプレットや当該アプレットを構成する各種ブロックプログラムであるものとして説明する。アプレットは、典型的には、シーケンスが決まっているアプリケーションプログラムという位置づけである。
本実施形態のアプレットは、動作対象機器で実行させることで当該動作対象機器を動作させるプログラムである。アプレットは、動作対象機器を単体で所定の動作を行わせるプログラムであってもよいし、複数の動作対象機器を連携させて所定の動作を行わせるプログラムであってもよい。本実施形態のアプレットは、複数のブロックプログラムを含んで構成される。ここでは、アプレットは、ブロックプログラムとして、サービスブロックプログラムと、トリガブロックプログラムと、アクションブロックプログラムとを含み、これら3つの要素が組み合わせられることで1つのアプレットが構築される。以下の説明では、サービスブロックプログラムを「サービスブロック」、トリガブロックプログラムを「トリガブロック」、アクションブロックプログラムを「アクションブロック」という場合がある。
サービスブロックとは、ユーザが望む目的に応じたサービス内容に応じて動作対象機器が出力する出力情報を規定するプログラムである。言い換えれば、サービスブロックとは、サービス内容に応じて取得したい出力情報の内容を特定するプログラムである。
トリガブロックとは、サービス内容に応じた出力情報を出力するためのアクションを発動するトリガの内容と当該トリガを生成するトリガ生成部とを規定しトリガ生成部にトリガを生成させるプログラムである。ここで、トリガとは、サービスの内容に応じたアクションを発動させるためのきっかけである。トリガ生成部とは、動作対象機器に設けられ、トリガを生成するものである。動作対象機器においてトリガ生成部を構成し得るもの(トリガ生成部候補)としては、一例として、動作対象機器の入力部、検出部、計時部等が挙げられる。動作対象機器の入力部は、動作対象機器に対する種々の入力を受け付ける部分であり、例えば、タッチパネル、操作ボタン、音声入力装置、リューズ、プッシュボタン、レジスタリング等を含んで構成されてもよい。動作対象機器の検出部は、種々の情報を検出する検出器であり、例えば、加速度センサ、チルトスイッチ、照度センサ、温度センサ、電圧センサ、測位器等を含んで構成されてもよい。動作対象機器の計時部は、時刻(機器内部時刻)を計時する回路である。当該トリガ生成部によって生成されるトリガとしては、一例として、入力部に対する所定の入力、検出部による所定の情報の検出、計時部による計時結果等が挙げられる。トリガブロックは、当該トリガブロックを含むアプレットが動作対象機器の処理部によって実行されることで、当該トリガブロックによって規定されたトリガ生成部にトリガを生成させる。
アクションブロックとは、サービス内容に応じた出力情報を出力するためのアクションの内容と当該アクションを実行するアクション実行部とを規定しアクション実行部にアクションを実行させるプログラムである。ここで、アクションとは、アプレットによって提供するサービスの内容に応じた動作である。アクション実行部とは、動作対象機器に設けられ、アクションを実行するものである。動作対象機器においてアクション実行部を構成し得るもの(アクション実行部候補)としては、一例として、動作対象機器の通信部、出力部等が挙げられる。動作対象機器の通信部は、動作対象機器の外部と通信可能な通信モジュールである。動作対象機器の出力部は、動作対象機器において種々の出力を行う部分であり、例えば、ディスプレイ、表示灯、スピーカ/アラームブザー、バイブレータ、指針、日板等を含んで構成されてもよい。当該アクション実行部によって実行されるアクションとしては、一例として、通信部による外部への出力情報の出力、出力部による出力情報の出力等が挙げられる。アクションブロックは、当該アクションブロックを含むアプレットが動作対象機器の処理部によって実行されることで、当該アクションブロックによって規定されたアクション実行部に出力情報を出力するためのアクションを実行させる。
上記のように構成されるアプレットは、上述したサービスブロックと、トリガブロックと、アクションブロックとによって構成され、サービスの内容に応じた出力情報とトリガとアクションとを関連付けて規定する。当該アプレットは、例えば、ネットワークNや近距離無線通信を介して動作対象機器の記憶部に記憶される。そして、当該アプレットは、動作対象機器の処理部によって実行されることで、トリガ生成部が生成したトリガによって、サービス内容に応じた出力情報を出力するアクションをアクション実行部に実行させることができる。
例えば、後述する外部機器20の記憶部23、あるいは、他の外部機器の記憶部には、ブロックプログラム記憶領域(不図示)が設けられており、当該ブロックプログラム記憶領域にはサービスブロック、トリガブロック、アクションブロックに用いられるブロックプログラムが数多く記憶されている。後述する端末機器10でアプレットを作成する過程では、例えば、ネットワークNを介してブロックプログラム記憶領域のブロックプログラムを目的別に複数表示し、その中からブロックプログラムを選択することができる。そして、選択された各ブロックプログラムの関連付けと詳細な動作の条件を規定し、アプレットとして後述する端末機器10の記憶部15に保存される。
アプレットは、動作対象機器を単体で所定の動作を行わせる場合には、当該動作対象機器に記憶され、当該動作対象機器に、トリガ生成部によるトリガの生成、出力情報に関する情報の取得、及び、アクション実行部によるアクションの実行を行わせる。この場合、アプレットは、例えば、動作対象機器によるトリガ生成を起点とし、当該動作対象機器に外部の機器からサービス内容に応じた出力情報に関する情報を取得させ、取得した情報に基づいてサービス内容に応じた出力情報を当該動作対象機器に出力させるアクションを実行させる。また、アプレットは、複数の動作対象機器を連携させて所定の動作を行わせる場合には、複数の動作対象機器のいずれかに記憶され、当該複数の動作対象機器を連携させて、トリガ生成部によるトリガの生成、出力情報に関する情報の取得、及び、アクション実行部によるアクションの実行を行わせる。この場合、アプレットは、例えば、第1の動作対象機器のトリガ生成を起点とし、当該トリガに応じて第2の動作対象機器に外部の機器からサービス内容に応じた出力情報に関する情報を取得させると共に当該取得した情報を第1の動作対象機器に送信させ、当該第1の動作対象機器に取得した情報に基づいてサービス内容に応じた出力情報を出力させるアクションを実行させる。また、アプレットは、サービスブロック、トリガブロック、アクションブロックがそれぞれ複数のブロックプログラムによって構成されてもよい。言い換えれば、1つのアプレットにおいて、サービスブロックによって規定される出力情報、トリガブロックによって規定されるトリガ、アクションブロックによって規定されるアクションが複数規定されていてもよい。
本実施形態において、プログラム管理システムSys1による管理の対象となるソフトウェアプログラムは、上述したサービスブロック、トリガブロック、アクションブロック、又は、サービスブロックとトリガブロックとアクションブロックとを組み合わせたアプレットである。
<端末機器の基本構成>
端末機器10は、上述したようにプログラム管理システムSys1による管理の対象となるソフトウェアプログラムを作成可能な電子機器である。端末機器10は、例えば、外部機器20を含む各種機器と連携して各種プログラムを作成可能である。本実施形態の端末機器10は、管理の対象となるソフトウェアプログラムとして、上述したサービスブロック、トリガブロック、アクションブロック、又は、アプレットを作成可能である。端末機器10は、例えば、スマートフォン、タブレット型PC、ノート型PC、デスクトップ型PC等によって構成することができる。図1等の例では、端末機器10は、スマートフォンであるものとして図示している。
端末機器10は、CPU等の中央演算処理装置を含む周知のマイクロコンピュータを主体とする電子回路、半導体メモリ等の各種記憶装置等を含んで構成される。端末機器10は、既知のPCやワークステーションなどのコンピュータシステムに種々の処理を実現させるプログラムをインストールすることで構成することもできる。
具体的には、端末機器10は、図2に示すように、電源部11と、端末側通信部としての通信部12と、入力部13と、出力部14と、端末側記憶部としての記憶部15と、端末側処理部としての処理部16とを有する。
電源部11は、端末機器10の電力源である。電源部11は、リチウムイオン電池等の充放電可能な二次電池等を含んで構成され、端末機器10内の各部に対して電力を供給する。
通信部12は、端末機器10の外部と通信可能な通信モジュールである。通信部12は、少なくとも外部機器20と通信可能である。通信部12は、無線通信、有線通信を問わずネットワークNと通信可能に接続され、当該ネットワークNを介して外部機器20と通信を行う。
入力部13は、端末機器10に対する種々の入力を受け付ける部分である。入力部13は、例えば、端末機器10に対する操作入力を受け付けるタッチパネル13a、端末機器10に対する音声入力を受け付ける音声入力装置13b等を含んで構成される。入力部13は、この他、キーボード、マウスポインタ等の入力装置を含んで構成されてもよい。
出力部14は、端末機器10において種々の出力を行う部分である。出力部14は、例えば、画像情報を出力するディスプレイ14a、音情報を出力するスピーカ14b等を含んで構成される。ディスプレイ14aは、処理部16によって制御され画像を表示可能である端末側表示部を構成するものである。ディスプレイ14aは、例えば、画像を表示する液晶ディスプレイ、プラズマディスプレイ、有機ELディスプレイ等の画像表示装置等によって構成される。上述したタッチパネル13aは、このディスプレイ14aはこの表面に重畳させて設けられている。
記憶部15は、端末機器10に内蔵されるROM、RAM、半導体メモリ等の記憶装置である。記憶部15は、端末機器10での各種処理に必要な条件や情報、端末機器10で実行する各種プログラム、制御データ等が格納されている。記憶部15は、例えば、通信部12によって受信された各種情報、入力部13によって入力された各種情報、出力部14によって出力される各種情報等を記憶することができる。記憶部15は、例えば、通信部12によって受信された各種情報として、当該通信部12を介して外部機器20等からダウンロードしたサービスブロック、トリガブロック、アクションブロック、アプレット等を記憶することができる。記憶部15は、処理部16等によってこれらの情報が必要に応じて読み出される。
処理部16は、端末機器10の各部と電気的に接続され、端末機器10の各部を統括的に制御するものである。処理部16は、CPU等の中央演算処理装置を含む周知のマイクロコンピュータを主体とする電子回路を含んで構成される。処理部16は、端末機器10の各部と通信可能に接続され、各部との間で相互に各種信号を授受可能である。処理部16は、記憶部15に記憶されている各種プログラムを実行し、当該プログラムが動作することにより端末機器10の各部を動作させ各種機能を実現するための種々の処理を実行する。処理部16は、例えば、入力部13への入力に応じて、外部機器20から通信部12を介して各種情報を受信しダウンロードし記憶部15に格納する処理を実行可能である。また、処理部16は、例えば、入力部13への入力に応じて、各種情報を通信部12を介して外部機器20に送信しアップロードする処理を実行可能である。
<プログラムの作成>
本実施形態の処理部16は、入力部13に対する入力に応じて、サービスブロック、トリガブロック、アクションブロック、アプレットを作成する処理を実行可能である。処理部16は、上述したように、例えば、通信部12を介して外部機器20等の機器から取得した作成情報に基づいて、入力部13に対する入力に応じて、サービスブロック、トリガブロック、アクションブロック、アプレットを作成することができる。ここで、作成情報とは、上述したようにサービスブロック、トリガブロック、アクションブロック、アプレットを作成する際に参照される様々な情報である。作成情報は、例えば、サービスの内容、トリガの内容、アクションの内容、トリガ生成部、アクション実行部等の候補やアプレットを構成するサービスブロック、トリガブロック、アクションブロック等の候補についての情報を含んでいてもよい。また、作成情報は、例えば、サービスブロック、トリガブロック、アクションブロック、アプレットを作成するためのプログラム作成用のプログラムを含んでいてもよい。この場合、処理部16は、当該プログラム作成用のプログラムに従ってサービスブロック、トリガブロック、アクションブロック、アプレットを作成するようにしてもよい。また、処理部16は、例えば、上記のような作成情報にはよらずに、入力部13に対する入力に応じて、サービスブロック、トリガブロック、アクションブロック、アプレットを作成することもできる。記憶部15は、処理部16によって作成されたサービスブロック、トリガブロック、アクションブロック、アプレットを記憶することができる。なお、以下の説明では、処理部16によって作成されたサービスブロック、トリガブロック、アクションブロック、そしてそれらのブロックを組み合わせたアプレットを「作成プログラム」という場合がある。また、サービスブロック、トリガブロック、アクションブロック、アプレットを作成するプログラム作成用のプログラムは、端末機器10のユーザが自由に外部機器20や他の外部機器から端末機器10にインストールして利用することができる。従って、不特定多数のユーザが自分の嗜好に基づいて、作成プログラムを作成可能である。
<プログラムの外部機器へのアップロード>
本実施形態の処理部16は、例えば、入力部13への入力に応じて、作成プログラムを、通信部12を介して外部機器20に送信しアップロードする処理を実行可能である。つまり、本実施形態の通信部12は、処理部16によって作成された作成プログラムを外部、ここでは、外部機器20に送信可能である。本実施形態の端末機器10は、上記のようにして処理部16によって作成された作成プログラムを当該通信部12を介して外部の外部機器20に送信する。
この場合、処理部16は、作成プログラムを、当該作成プログラムのメタ情報や公開に関する情報と共に外部機器20に送信しアップロードするようにしてもよい。ここで、プログラムのメタ情報とは、当該プログラムが付随して持つそのプログラム自身についての付加的な情報であり、例えば、当該プログラムの「名称」、「作者」、「作者のアカウントID」、「作成日」等の情報である。プログラムの「名称」は、後述するように事後的に設定することができる。プログラムの「作者」や「作者のアカウントID」等は、例えば、プログラムを作成した端末機器10を所持するユーザに紐づけられて予め設定されている。プログラムの「作成日」は、当該プログラムが作成された際に付される。一方、プログラムの公開に関する情報とは、当該プログラムの外部への公開の程度を表す情報であり、例えば、「非公開」、「限定公開」、又は、「一般公開」のいずれかを表す情報である。「非公開」とは、当該プログラムを外部に対して公開しないことを表す。「限定公開」とは、当該プログラムを外部に対して制限つきで公開することを表し、例えば、公開対象等を限定して公開することを表す。「一般公開」とは、当該プログラムを外部に対して制限なく公開することを表す。なお、このプログラムの公開に関する情報は、後述する第2ステータス情報に相当し、外部機器20側でのプログラムの管理で使用される。
処理部16は、例えば、図3のような選択画面100、200を介して、作成した作成プログラムについての種々の情報を選択させることができる。処理部16は、例えば、プログラムの作成が完了すると、図3に例示した選択画面100をディスプレイ14aに表示させる。図3に例示した選択画面100は、作成した作成プログラムの名称を選択するために操作される画面であり、例えば、「新しいアプレットを作成しました」、「名前を決めてください」等の文字画像と共に、作成プログラムを表すアイコン画像101が表示される。ここでは、アイコン画像101は、作成プログラムの暫定的な「名称」として当該作成プログラムの作成日(図3の例では「20181109」)が付されている。処理部16は、図3に例示した選択画面100において、タッチパネル13aに対する作者のタップ操作等に応じてアイコン画像101が選択されると、例えば、選択画面100内にいわゆるソフトウェアキーボードを表示しタッチパネル13aを介して作者による「名称」の入力操作を受け付ける。
次に、処理部16は、例えば、図3に例示した選択画面200をディスプレイ14aに表示させる。図3に例示した選択画面200は、作成した作成プログラムの公開に関する情報を選択するために操作される画面であり、例えば、作成プログラムを表すアイコン画像201と共に、非公開選択領域202、限定公開選択領域203、一般公開選択領域204が表示される。非公開選択領域202は、当該作成プログラムを「非公開」とする場合に選択される領域であり、一例として、「非公開で自分だけで試すことができます」等の文字画像と共に、「公開前に試す」等の文字画像が表示される。限定公開選択領域203は、当該作成プログラムを「限定公開」とする場合に選択される領域であり、一例として、「審査後に決められた人たちだけに公開」等の文字画像と共に、「限定公開」等の文字画像が表示される。一般公開選択領域204は、当該作成プログラムを「一般公開」とする場合に選択される領域であり、一例として、「審査後にSTOREに公開されます」等の文字画像と共に、「一般公開」等の文字画像が表示される。
処理部16は、図3に示す選択画面200において、タッチパネル13aに対する作者のタップ操作等に応じて非公開選択領域202が選択されると、当該作成プログラムに対して、「非公開」を表す公開に関する情報を付す。この場合、処理部16は、「非公開」を表す公開に関する情報が付された当該作成プログラムを、メタ情報や当該公開に関する情報と共に記憶部15に記憶する一方、外部機器20にはアップロードしない。
処理部16は、図3に示す選択画面200において、タッチパネル13aに対する作者のタップ操作等に応じて限定公開選択領域203が選択されると、当該作成プログラムに対して、「限定公開」を表す公開に関する情報を付す。この場合、処理部16は、「限定公開」を表す公開に関する情報が付された当該作成プログラムを、メタ情報や当該公開に関する情報と共に記憶部15に記憶すると共に、外部機器20に送信しアップロードする。
処理部16は、図3に示す選択画面200において、タッチパネル13aに対する作者のタップ操作等に応じて一般公開選択領域204が選択されると、当該作成プログラムに対して、「一般公開」を表す公開に関する情報を付す。この場合、処理部16は、「一般公開」を表す公開に関する情報が付された当該作成プログラムを、メタ情報や当該公開に関する情報と共に記憶部15に記憶すると共に、外部機器20に送信しアップロードする。
なおここでは、処理部16は、「非公開」を表す公開に関する情報が付された作成プログラムを外部機器20にはアップロードしないものとして説明したがこれに限らない。処理部16は、「非公開」を表す公開に関する情報が付された作成プログラムも含めて外部機器20に送信しアップロードするようにしてもよい。
ここで、「限定公開」、又は、「一般公開」を表す公開に関する情報が付された作成プログラムは、後述する外部機器20による承認を要する作成プログラムに相当する。つまり、本実施形態の処理部16は、少なくとも承認を要する作成プログラムを通信部12から外部機器20に送信することとなる。処理部16は、例えば、承認を要する全ての作成プログラムを通信部12から外部機器20に送信することができる。
作成プログラムの作成過程、あるいは作成終了後の設定過程において「限定公開」あるいは「一般公開」が選択されると、当該作成プログラムが端末機器10から外部機器20に送信され、後述する外部機器20の作成プログラム記憶部23A(図4参照)に記憶される。作成プログラムを作成するためのプログラムは、上述したように、外部機器20から端末機器10や他の端末へ自由にインストールすることができるため、不特定多数のユーザが作成プログラムを作成可能である。従って、外部機器20にアップロードされる作成プログラムも大量になるが、本実施形態の作成プログラムは、動画やゲームソフトなどの大容量データではなく、テキストによる小規模プログラムであるため容量が少なく、例えば、少なくとも承認を要する全ての作成プログラムを記憶部23に記憶しても、記憶容量を圧迫するような問題が生じることは無い。
端末機器10から外部機器20に送信しアップロードされた作成プログラムが記憶部23Aに記憶されることにより、同様に外部機器20に記憶されている作成プログラムを構成する数多くのブロックプログラムとの連携した管理が容易になる。
例えば、作者が自己のブロックプログラムの公開を止めると、このブロックプログラムを利用した作成プログラムは全て動作できなくなる。従って、これにより動作不可能になった作成プログラムの作者、使用者に対して、速やかにその旨を通知する必要が生じる。例えば、上述した特許文献1のような方式の場合は、ユーザからレポジトリサーバにプログラムがアップロードされると、申請が承認されるかどうかを判定した上で、更にメタデータによる適合性を判断し、それに適合したもののみをレポジトリサーバで受信するため、ユーザの申請した数多くのプログラムに対して、一部のプログラムしかサーバに記憶されない。従って、特許文献1の方法を作成プログラムのアップロードに適用してしまうと、ブロックプログラムの公開停止による作成プログラムに対する不動作の旨の通知は、サーバに残る一部のプログラムの作者と使用者にしか通知されない。しかしながら、ブロックプログラムの公開停止に関する通知は、審査により公開が承認された作成プログラムだけでなく、審査保留中と公開不可の作成プログラムの作者に対しても、同様に行われるべきである。これに対して、端末機器10から外部機器20に送信しアップロードされた作成プログラム、典型的には、承認を要する作成プログラム(言い換えれば、公開に係る作成プログラム)を保存する本実施形態のプログラム管理システムSys1であれば、上記問題が発生しても対応が可能である。また、上記場合に限らず、ブロックプログラムのバージョンアップなどの場合にも、同様の効果を得る事ができる。以下、図4等を外部機器20の詳細について説明する。
<外部機器の基本構成>
外部機器20は、上述したようにネットワークN上に実装されるクラウドサービス機器(クラウドサーバ)を構成するものである。外部機器20は、ネットワークN上において、いわゆるリポジトリを構成する。外部機器20は、端末機器10によって作成されアップロードされた作成プログラムを、当該作成プログラムについての様々なステータス情報に基づいて管理する。当該外部機器20によるプログラムの管理には、当該プログラムの承認審査、当該プログラムのデータベース化、当該プログラムの公開等が含まれる。外部機器20は、CPU等の中央演算処理装置を含む周知のマイクロコンピュータを主体とする電子回路、各種記憶装置等を含んで構成される。外部機器20は、既知のPCやワークステーションなどのコンピュータシステムに種々の処理を実現させるプログラムをインストールすることで構成することもできる。外部機器20は、単体の機器によって構成されてもよいし、複数の機器を相互通信可能に組み合わせることで構成されてもよい。
具体的には、外部機器20は、図4に示すように、電源部21と、外部機器側通信部としての通信部22と、外部機器側記憶部としての記憶部23と、外部機器側処理部としての処理部24とを有する。
電源部21は、外部機器20の電力源である。電源部21は、例えば、商用電源等から外部機器20の各部に対して電力を供給する。
通信部22は、外部機器20の外部と通信可能な通信モジュールである。通信部22は、少なくとも端末機器10と通信可能であり、端末機器10から送信された作成プログラムを受信可能である。通信部22は、無線通信、有線通信を問わずネットワークNと通信可能に接続され、当該ネットワークNを介して端末機器10等と通信を行う。
記憶部23は、外部機器20に内蔵されるROM、RAM、半導体メモリ等の記憶装置である。典型的には、記憶部23は、上述した端末機器10の記憶部15等と比較して記憶容量が相対的に大きい。記憶部23は、外部機器20での各種処理に必要な条件や情報、外部機器20で実行する各種プログラム、制御データ等が格納されている。記憶部23は、端末機器10から送信され通信部22によって受信された作成プログラムを記憶する。記憶部23は、例えば、端末機器10から送信され通信部22によって受信された作成プログラムを全て記憶することができる。また、記憶部23は、プログラム管理システムSys1におけるプログラムの管理に必要な種々の情報を記憶する。記憶部23は、処理部24等によってこれらの情報が必要に応じて読み出される。
処理部24は、外部機器20の各部と電気的に接続され、外部機器20の各部を統括的に制御するものである。処理部24は、CPU等の中央演算処理装置を含む周知のマイクロコンピュータを主体とする電子回路を含んで構成される。処理部24は、外部機器20の各部と通信可能に接続され、各部との間で相互に各種信号を授受可能である。処理部24は、記憶部23に記憶されている各種プログラムを実行し、当該プログラムが動作することにより外部機器20の各部を動作させ各種機能を実現するための種々の処理を実行する。処理部24は、プログラム管理システムSys1における様々なサービスに必要な種々の処理を実行する。処理部24は、例えば、端末機器10から通信部22を介して各種情報を受信し記憶部23に格納する処理を実行可能である。
<アップロードされたプログラムの承認審査>
本実施形態の処理部24は、端末機器10から送信され通信部22によって受信された作成プログラムを承認する処理を実行可能である。処理部24は、典型的には、公開に関する情報(後述の第2ステータス情報に相当)が「限定公開」、又は、「一般公開」を表す作成プログラムを承認審査の対象とする。つまりここでは、当該作成プログラムの承認審査は、典型的には、作成プログラムの外部への公開に対する承認審査に相当する。ただしこれに限らず、処理部24は、公開に関する情報が「非公開」を表す作成プログラムも承認審査の対象としてもよい。すなわち、当該作成プログラムの承認審査は、公開を前提とするものに限られない。
処理部24は、例えば、作成プログラムの公開を承認するためのルールに基づいて、種々の公知の手法を用いて自動で作成プログラムやメタ情報の内容を解析することで当該作成プログラムの承認の可否を決定してもよい。また、処理部24は、例えば、作成プログラムの公開を承認するためのルールに基づいて、係員が作成プログラムやメタ情報の内容を解析した上で、承認の可否が外部機器20に入力されることで当該作成プログラムの承認の可否を決定してもよい。ここでは、処理部24は、作成プログラムの承認審査の結果として、「承認」、「非承認」、又は、「承認の保留」のいずれかを決定する。ここで、「承認」とは、当該作成プログラムの公開が承認されたことを表す。「非承認」とは、当該作成プログラムの公開が承認されなかったことを表す。「承認の保留」とは、当該作成プログラムの公開の承認が保留されたことを表しており、言い換えれば、現在審査中であることを表す。
なお、処理部24は、上記のような作成プログラムの承認審査の結果を、端末機器10側に通知するようにしてもよい。この場合、処理部24は、作成プログラムの承認審査の結果を通信部22を介して端末機器10に送信する。端末機器10の処理部16は、外部機器20から通信部12を介して作成プログラムの承認審査の結果あるいはメッセージを受信すると、当該受信した承認審査の結果あるいはメッセージに基づいて、図5に例示する通知画面300をディスプレイ14aに表示させるようにしてもよい。図5に例示した通知画面300は、作成プログラムの承認審査の結果を通知する画面である。図5に例示した通知画面300は、一例として、作成プログラムが「承認」された場合の画面を表しており、「審査OKのお知らせ」、「審査に通過いたしました。○日からStoreで公開されます。」等の文字画像が表示される。
<プログラムのステータス情報>
図4における外部機器20側の記憶部23は、承認審査の結果等の各作成プログラムに関するステータス情報を端末機器10から送信された作成プログラムと共に記憶する。つまり、処理部24は、通信部22によって受信された作成プログラム、ステータス情報、メタ情報等を処理し、記憶部23に格納する。ここでは、処理部24は、作成プログラムと、当該作成プログラムに関するステータス情報と、当該作成プログラムに関するメタ情報とを関連付け(紐付け)て記憶部23に格納する。
より具体的には、記憶部23は、機能概念的に、作成プログラム記憶部23Aと、ステータス情報記憶部23Bとを含んで構成される。
作成プログラム記憶部23Aは、端末機器10から送信され通信部22によって受信された作成プログラムを記憶する記憶領域である。作成プログラム記憶部23Aは、通信部22によって受信された作成プログラムのメタ情報と共に当該作成プログラムを記憶する。また、作成プログラム記憶部23Aは、端末機器10や他のプログラム作成機器から受信した作成プログラムを記憶することができる。作成プログラム記憶部23Aに記憶されている作成プログラムは、後述するステータス情報等に応じて、ネットワークN等を介して端末機器10や他の機器にダウンロードされ、利用可能である。
ステータス情報記憶部23Bは、端末機器10から送信され通信部22によって受信された作成プログラムに関するステータス情報を記憶する記憶領域である。作成プログラムに関するステータス情報とは、作成プログラムの状態や属性を表す様々な情報である。ステータス情報記憶部23Bに記憶されているステータス情報は、処理部24による処理によって、作成プログラム記憶部23Aに記憶されている作成プログラム、及び、そのメタ情報と関連付け(紐付け)られて記憶される。
本実施形態のステータス情報記憶部23Bは、ステータス情報として、第1ステータス情報、第2ステータス情報、第3ステータス情報、及び、第4ステータス情報を記憶する。つまり、本実施形態の記憶部23は、第1ステータス情報、第2ステータス情報、第3ステータス情報、及び、第4ステータス情報と共に作成プログラムを記憶可能である。ここでは、ステータス情報記憶部23Bは、第1ステータス情報、第2ステータス情報、第3ステータス情報、第4ステータス情報をそれぞれ記憶する第1ステータス情報記憶部23Ba、第2ステータス情報記憶部23Bb、第3ステータス情報記憶部23Bc、第4ステータス情報記憶部23Bdを含んで構成される。
第1ステータス情報記憶部23Baは、ステータス情報として、第1ステータス情報を記憶する記憶領域である。第1ステータス情報とは、処理部24による作成プログラムの承認の可否を表す情報であり、例えば、上述した「承認」、「非承認」、又は、「承認の保留」のいずれかを表す情報である。当該第1ステータス情報は、上述の承認審査において結果が出た際に、外部機器20側の処理部24によって作成プログラムに付される。つまり、本実施形態の記憶部23は、作成プログラムの承認の可否を第1ステータス情報として当該作成プログラムと共に記憶する。
第2ステータス情報記憶部23Bbは、ステータス情報として、第2ステータス情報を記憶する記憶領域である。第2ステータス情報とは、作成プログラムの外部への公開の程度を表す情報であり、例えば、上述した「非公開」、「限定公開」、又は、「一般公開」のいずれかを表す情報である。当該第2ステータス情報は、上述した作成プログラムの公開に関する情報に相当し、端末機器10側の処理部16によって作成プログラムに付される。
第3ステータス情報記憶部23Bcは、ステータス情報として、第3ステータス情報を記憶する記憶領域である。第3ステータス情報とは、作成プログラムの課金内容を表す情報であり、例えば、「無料」、又は、「有料」のいずれかを表す情報である。「無料」とは、当該作成プログラムのダウンロードを無料で許可することを表す。「有料」とは、当該作成プログラムのダウンロードを有料で許可することを表す。当該第3ステータス情報は、上述した第2ステータス情報と同様に、端末機器10側で選択画面等を介して作者に選択させ、当該端末機器10側の処理部16によって作成プログラムに付される。なお、第3ステータス情報は、「有料」とされた作成プログラムに関し、さらに「価格」に関する情報を含んでいてもよい。
第4ステータス情報記憶部23Bdは、ステータス情報として、第4ステータス情報を記憶する記憶領域である。第4ステータス情報とは、作成プログラムの使用状況を表す情報であり、例えば、「ダウンロード数」、「ダウンロード日時」、「ダウンロードの成否」、「使用ユーザのアカウントID」、「使用頻度」、「使用日時」等を表す情報である。第4ステータス情報は、外部機器20側の処理部24によって収集され、作成プログラムに付される。
<プログラムの管理>
本実施形態の処理部24は、第1ステータス情報、第2ステータス情報、第3ステータス情報、及び、第4ステータス情報に基づいて、作成プログラムを管理する処理を実行可能である。上述した作成プログラムの承認審査も処理部24による作成プログラムの管理の一部に相当する。
<プログラムの管理:リスト化、データベース化>
外部機器20側の処理部24は、作成プログラム記憶部23Aに記憶されている複数の作成プログラムを、ステータス情報記憶部23Bに記憶されているステータス情報と共にリスト化、データベース化することができる。図6は、処理部24によって複数の作成プログラムをリスト化、データベース化した作成プログラムリスト400の一例である。図6に示す作成プログラムリスト400は、一例として、作成プログラム記憶部23A、第1ステータス情報記憶部23Ba、第2ステータス情報記憶部23Bbにそれぞれ記憶されている第1ステータス情報、第2ステータス情報、メタ情報に基づいて、複数の作成プログラムの「名称」、「作者」、「作者のアカウントID」、「審査状態」、「公開」、「申請日」がリスト化されたものである。「名称」、「作者」、「作者のアカウントID」、「申請日」は、作成プログラムのメタ情報に基づくものである。「審査状態」は、作成プログラムの第1ステータス情報に基づくものである。「公開」は、作成プログラムの第2ステータス情報に基づくものであり、例えば、「B」は「限定公開」を表し、「C」は「一般公開」を表す。当該作成プログラムリスト400は、例えば、外部機器20の表示部(不図示)や管理用の機器等において表示させることできる。
<プログラムの管理:審査状況の表示>
端末機器10側の処理部16は、外部機器20側で管理される各作成プログラムのステータス情報に基づいて、作成プログラムの審査状況をディスプレイ14aに表示させることができる。処理部16は、例えば、通信部12を介して、外部機器20の作成プログラム記憶部23A、及び、第1ステータス情報記憶部23Baに記憶されている情報を参照し、端末機器10で作成した作成プログラムの審査状況をディスプレイ14aに表示させる。処理部16は、第1ステータス情報記憶部23Baに記憶されている第1ステータス情報を参照し、例えば、図7に例示するプロフィール画面500において、作成プログラムを表すアイコン画像501、502、503、及び、当該各作成プログラムの第1ステータス情報を表す第1ステータス画像504、505、506をディスプレイ14aに表示させる。
図7に例示したプロフィール画面500は、端末機器10を所有するユーザに関する個人情報を表示する画面である。図7に例示したプロフィール画面500は、一例として、当該端末機器10から外部機器20にアップロードした作成プログラムに関するアイコン画像501、502、503、及び、第1ステータス画像504、505、506が表示される。アイコン画像501、502、503は、それぞれ、作成プログラムを模したアイコンを表す画像であり、ここでは、当該端末機器10から外部機器20にアップロードした作成プログラムを表す。第1ステータス画像504、505、506は、当該作成プログラムの第1ステータス情報の内容を表す画像であり、ここでは、「承認」、「保留」、「非承認」等の文字画像である。言い換えれば、第1ステータス画像504、505、506は、作成プログラムの承認審査の結果を表す審査結果画像に相当する。
処理部16は、図7に例示したプロフィール画面500において、「承認」を表す第1ステータス情報が付された作成プログラムのアイコン画像501の下側角部に、「承認」の文字画像による第1ステータス画像504を表示させる。同様に、処理部16は、図7に例示したプロフィール画面500において、「承認の保留」を表す第1ステータス情報が付された作成プログラムのアイコン画像502の下側角部に、「保留」の文字画像による第1ステータス画像505を表示させる。同様に、処理部16は、図7に例示したプロフィール画面500において、「非承認」を表す第1ステータス情報が付された作成プログラムのアイコン画像503の下側角部に、「非承認」の文字画像による第1ステータス画像506を表示させる。これにより、端末機器10は、外部機器20によって管理されている作成プログラムの承認審査の状況を分かり易く報知することが可能となる。
なお、作成プログラムの第1ステータス情報の内容を表す第1ステータス画像は、上記に限らず、文字画像以外であっても良く、例えば「承認」、「保留」、「非承認」を、それぞれ「〇」、「□」、「×」などの記号やマークを画像として表示しても良い。
<プログラムの管理:公開>
外部機器20側の処理部24は、ステータス情報記憶部23Bに記憶されているステータス情報に基づいて、作成プログラム記憶部23Aに記憶されている作成プログラムをフィルタリングし外部に対して公開することがきる。ここで、外部に対して作成プログラムを公開するという場合、典型的には、外部機器20とネットワークNを介して通信可能に接続された機器(例えば、端末機器10も含む。)に対して、プログラムストア等を介して当該作成プログラムを閲覧可能としダウンロード可能とすることをいう。
具体的には、処理部24は、第1ステータス情報記憶部23Baに記憶されている第1ステータス情報、及び、第2ステータス情報記憶部23Bbに記憶されている第2ステータス情報に基づいて、作成プログラムを外部に対して公開する処理を実行可能である。処理部24は、「承認」を表す第1ステータス情報が付され、かつ、「限定公開」、又は、「一般公開」を表す第2ステータス情報が付された作成プログラムを外部に対して公開する。処理部24は、作成プログラムを外部に対して公開する場合、「限定公開」を表す第2ステータス情報が付された作成プログラムについては予め設定された限定された公開対象に対して公開する。また、処理部24は、作成プログラムを外部に対して公開する場合、「一般公開」を表す第2ステータス情報が付された作成プログラムについては公開対象等を限定せずに公開する。一方、処理部24は、「承認の保留」、又は、「非承認」を表す第1ステータス情報が付された作成プログラム、あるいは、「非公開」を表す第2ステータス情報が付された作成プログラムについては外部に対して公開しない。つまり、処理部24は、作成プログラム記憶部23Aに記憶されている複数の作成プログラムから、「承認」を表す第1ステータス情報が付され、かつ、「限定公開」、又は、「一般公開」を表す第2ステータス情報が付された作成プログラムをフィルタリングして抽出し、当該抽出した作成プログラムを、端末機器10等の機器において、ダウンロード可能な作成プログラムとして表示させる。
<プログラムの管理:ダウンロード>
外部機器20側の処理部24は、ステータス情報記憶部23Bに記憶されているステータス情報に基づいて、作成プログラム記憶部23Aに記憶されている作成プログラムをダウンロード可能とすることがきる。この場合、処理部24は、例えば、第1ステータス情報記憶部23Baに記憶されている第1ステータス情報、及び、第3ステータス情報記憶部23Bcに記憶されている第3ステータス情報に基づいて、作成プログラムをダウンロード可能とする処理を実行可能である。例えば、処理部24は、「承認」を表す第1ステータス情報が付され、かつ、「無料」を表す第3ステータス情報が付された作成プログラムについては、無料会員、有料会員にかかわらず、端末機器10等の機器に作成プログラムをダウンロード可能とする。一方、処理部24は、「承認」を表す第1ステータス情報が付され、かつ、「有料」を表す第3ステータス情報が付された作成プログラムについては、有料会員のみに対して、端末機器10等の機器に作成プログラムをダウンロード可能とし、無料会員に対してはダウンロード不可とする。処理部24は、例えば、作成プログラムのダウンロードをリクエストした機器を所有するユーザのアカウントID等に基づいて無料会員と有料会員との判別を行うことができる。また、処理部24は、例えば、外部機器20にネットワークNを介して通信可能に接続された課金サーバに記憶されている会員情報等に基づいて無料会員と有料会員との判別を行うこともできる。
ここでは、処理部24は、「限定公開」、又は、「一般公開」を表す第2ステータス情報が付され、外部に対して公開されている作成プログラムを対象としてダウンロードを可能とする。つまり、処理部24は、実質的には、第1ステータス情報記憶部23Baに記憶されている第1ステータス情報、第2ステータス情報記憶部23Bbに記憶されている第2ステータス情報、及び、第3ステータス情報記憶部23Bcに記憶されている第3ステータス情報に基づいて、作成プログラムをダウンロード可能とする処理を実行していることとなる。つまり、「承認」の第1ステータス情報が付与されている作成プログラムは、「限定公開」、又は、「一般公開」の何れかであるため、第1ステータス情報の「承認」の情報は、第2ステータスの「限定公開」、又は、「一般公開」の情報を兼ねていることになる。処理部24は、「承認の保留」、又は、「非承認」を表す第1ステータス情報が付された作成プログラム、あるいは、「非公開」を表す第2ステータス情報が付された作成プログラムについては、外部に公開せず、ダウンロード不可とする。一方、処理部24は、「承認」を表す第1ステータス情報が付され、かつ、「限定公開」、又は、「一般公開」を表す第2ステータス情報が付された作成プログラムについては、外部に公開し、上記のように第3ステータス情報の内容に応じてダウンロード可能とする。
以下、図8を参照してプログラム管理システムSys1における作成プログラムのダウンロードの流れについて一例を説明する。
端末機器10側の処理部16は、外部機器20において外部に対して公開されている作成プログラムから、入力部13への入力に応じて、ダウンロードを希望する作成プログラムを決定する。そして、処理部16は、通信部12、ネットワークNを介して、外部機器20に、当該端末機器10を所有するユーザのアカウントIDと共に上記で決定した作成プログラムについてのダウンロードリクエストを送信する(ステップS1)。
外部機器20側の処理部24は、通信部22を介して、ユーザのアカウントID、及び、ダウンロードリクエストを受信すると、当該ダウンロードリクエストに係る作成プログラムについてのダウンロード許可判定を行う(ステップS2)。この場合、処理部24は、受信したアカウントID、及び、ダウンロードリクエストに係る作成プログラムのステータス情報に基づいて、当該ダウンロードリクエストに係る作成プログラムのダウンロードを許可するか否かを判定する。処理部24は、例えば、受信したアカウントID、及び、第2ステータス情報に基づいて、ダウンロードリクエストを送信した端末機器10のユーザが当該ダウンロードリクエストに係る作成プログラムの公開対象か否かを判定する。また、処理部24は、例えば、受信したアカウントID、及び、第3ステータス情報に基づいて、ダウンロードリクエストを送信した端末機器10のユーザが当該ダウンロードリクエストに係る作成プログラムをダウンロード可能な会員種別であるか否かを判定する。処理部24は、ダウンロードリクエストを送信した端末機器10のユーザが当該ダウンロードリクエストに係る作成プログラムの公開対象であり、かつ、当該作成プログラムをダウンロード可能な会員種別であると判定した場合、当該作成プログラムのダウンロードを許可する。一方、処理部24は、ダウンロードリクエストを送信した端末機器10のユーザが当該ダウンロードリクエストに係る作成プログラムの公開対象ではない、あるいは、当該作成プログラムをダウンロード可能な会員種別でないと判定した場合、当該作成プログラムのダウンロードを不許可する。
そして、処理部24は、通信部22、ネットワークNを介して、端末機器10に、ダウンロード許可判定の判定結果に応じたダウンロードレスポンスを返信する(ステップS3)。この場合、処理部24は、ダウンロード許可判定の判定結果がダウンロード不許可の判定結果である場合、当該ダウンロードレスポンスに基づいて、端末機器10のディスプレイ14aに、ダウンロードが許可されなかった旨の通知を表示させる。一方、処理部24は、ダウンロード許可判定の判定結果がダウンロード許可の判定結果である場合、当該ダウンロードレスポンスに基づいて、端末機器10に、ダウンロードリクエストに係る作成プログラムをダウンロードさせる。
なお、処理部24は、端末機器10に記憶された会員情報、具体的には端末機器10に記憶された有料会員か無料会員の情報、課金の支払いが済んでいるか否かの情報、会員のプロフィール情報などのうち、少なくとも一つの情報を基にダウンロードの判定を行っても良い。この構成について、以下に詳細に説明する。
図9は、図2とは異なる端末機器10の概略構成を表すブロック図である。この端末機器10の記憶部15は、作成プログラムであるアプレット等を記憶するアプレット記憶部15a、端末機器10を使用するユーザの会員情報を記憶する会員情報記憶部15b、端末機器10を使用するユーザのプロフィールを記録するプロフィール記憶部15cを有している。
アプレット記憶部15aは、作成プログラムとそれに関する情報を記憶する。会員情報記憶部15bは、会員のアカウントやIDを記憶するだけでなく、処理部16と通信部12による制御に基づき、ネットワークNを介して外部機器601に接続し、端末機器10を使用するユーザに関する情報、例えば、有料会員か無料会員の情報、あるいは、課金の支払いが済んでいるか否かの情報、などを受信し、会員情報として記憶する。ここで外部機器601は、外部機器20とは異なる機器であり、プログラム管理システムSys1の一部を構成し、会員の会費やプログラムの購入に際する代金の管理を行う専用サーバである。プロフィール記憶部15cは、上記と同様にネットワークNを介して外部機器602と接続し、端末機器10を使用するユーザに関するプロフィール情報、例えば性別、住所、身長、体重、年齢、会員のアカウント、IDなどを受信し、プロフィール情報を記憶する。ここで外部機器602は、外部機器20、601とは異なる機器であり、プログラム管理システムSys1の一部を構成し、ユーザの個人情報の管理を行う専用サーバである。
ユーザが端末機器10で所望の作成プログラムのダウンロード要求をしたときに、外部機器20は、端末機器10に対して、アプレット記憶部15a、会員情報記憶部15bに記憶した会員情報を送信するように指示する。これに応答して、端末機器10は、アプレット記憶部15aのアプレットに関する情報、会員情報記憶部15bの会員情報、プロフィール記憶部15cのプロフィール情報、の少なくとも1つ以上の情報を外部機器20に送信する。そして、外部機器20は、受信した情報に基づいて端末機器10に対するダウンロードの可否を判定する。これにより、外部機器20は、セキュリティの高いサーバにアクセスすることなく、端末機器10における必要な個人情報のみにアクセスして上記のような各種処理を実行することができる。
すなわち、外部機器601、602は、それぞれ個人情報を扱うため、外部機器20と比較すると相対的にセキュリティ性が高く、各サーバ間で直接送受信して情報を交換する事が制限される傾向にある。これに対して、上記方法であれば、外部機器20は、セキュリティの高いサーバに直接アクセスすることなく、端末機器10における外部機器601、602から、必要な個人情報のみにアクセスして情報を得て、外部機器20で「有料」を表す第3ステータス情報が付された作成プログラムに対するダウロードの可否を判断できる。また、ダウンロードの可否を短時間で判断できるため、ユーザを長く待たせることがない、といった利点も生じる。
なお、外部機器20において、有料会員のみがダウンロード可能な作成プログラムに対して、ダウンロードを要求したユーザが無料会員であることが判明した時には、作成プログラムの初回のダウンロードを許可すると共に使用期限を設けても良い。これにより、ユーザに作成プログラムを体験させることで、有料会員の加入に興味を持たせることができる。
<プログラムの管理:使用状況の表示>
端末機器10側の処理部16は、外部機器20側で管理される各作成プログラムのステータス情報に基づいて、作成プログラムの使用状況をディスプレイ14aに表示させることができる。処理部16は、例えば、通信部12を介して、外部機器20の作成プログラム記憶部23A、及び、第4ステータス情報記憶部23Bdに記憶されている情報を参照し、端末機器10で作成した作成プログラムの使用状況をディスプレイ14aに表示させる。
この場合、外部機器20側の処理部24は、例えば、図10に模式的に示すように、外部からの通信接続状況等に基づいて、作成プログラム記憶部23Aに記憶されている作成プログラムの「ダウンロード数」、「ダウンロード日時」、「ダウンロードの成否」、「使用ユーザのアカウントID」、「使用頻度」、「使用日時」等を収集、集計する。処理部24は、典型的には、外部機器20とネットワークNを介して通信可能に接続された機器を所有する全ユーザに関して、作成プログラムの「ダウンロード数」、「ダウンロード日時」、「ダウンロードの成否」、「使用ユーザのアカウントID」、「使用頻度」、「使用日時」等を収集、集計する。そして、処理部24は、当該集計した使用状況を、第4ステータス情報記憶部23Bdに記憶されている第4ステータス情報に反映させる。
そして、処理部16は、第4ステータス情報記憶部23Bdに記憶されている第4ステータス情報を参照し、例えば、図11に例示するプロフィール画面700において、ユーザが作成した作成プログラムを表すアイコン画像701、及び、当該各作成プログラムの第4ステータス情報を表す第4ステータス画像702をディスプレイ14aに表示させる。
図11に例示したプロフィール画面700は、上述したプロフィール画面500と同様に、端末機器10を所有するユーザに関する個人情報を表示する画面である。図11に例示したプロフィール画面700は、一例として、当該端末機器10から外部機器20にアップロードした作成プログラムに関するアイコン画像701、及び、第4ステータス画像702が表示される。アイコン画像701は、作成プログラムを模したアイコンを表す画像であり、ここでは、当該端末機器10から外部機器20にアップロードした作成プログラムを表す。第4ステータス画像702は、当該作成プログラムの第4ステータス情報の内容を表す画像であり、ここでは、当該作成プログラムが2008回ダウンロードされたことを表す「2008DL」等の文字画像である。処理部16は、図11に例示したプロフィール画面700において、作成プログラムのアイコン画像701の下側角部に、「2008DL」の文字画像による第4ステータス画像702を表示させる。これにより、端末機器10は、外部機器20によって管理されている作成プログラムの使用状況を分かり易く報知することが可能となる。
<プログラムの管理:報酬算定>
外部機器20側の処理部24は、上記のように集計され第4ステータス情報記憶部23Bdに記憶された第4ステータス情報に基づいて、作成プログラムに対する報酬を算出する処理を実行可能である。処理部24は、例えば、作成プログラム記憶部23Aに記憶されている作成プログラムに紐づけられたメタ情報、及び、各第4ステータス情報に基づいて、「ダウンロード数」や「使用頻度」等に応じて各作成プログラムの作者への報酬(金額やポイント)を算出する。処理部24は、算出した各作成プログラムの作者への報酬を、記憶部23に記憶させてもよいし、外部機器20にネットワークNを介して通信可能に接続された課金サーバ等に記憶させてもよい。
<実施形態の作用効果>
以上で説明したプログラム管理システムSys1、外部機器20、及び、端末機器10は、端末機器10によって作成されたプログラムが外部機器20に送信され、当該端末機器10から外部機器20に送信された作成プログラムを外部機器20に記憶する。そして、プログラム管理システムSys1は、外部機器20によって当該プログラムを承認する処理が実行され、作成プログラムの承認の可否を第1ステータス情報として作成プログラムと共に外部機器20に記憶する。そして、外部機器20は、当該第1ステータス情報に基づいて当該プログラムを管理する。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、端末機器10によって作成されたプログラムを、外部機器20によって適正に管理することができる。
例えば、以上で説明したプログラム管理システムSys1、外部機器20、及び、端末機器10は、処理部16によってプログラムのアイコン画像501、502、503、及び、当該プログラムの第1ステータス画像504、505、506をディスプレイ14aに表示させる。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、端末機器10によって作成され、外部機器20によって管理されているプログラムの承認審査の状況を分かり易く報知することができる。
また、以上で説明したプログラム管理システムSys1、外部機器20、及び、端末機器10は、プログラムの外部への公開の程度を表す第2ステータス情報と共に当該プログラムを外部機器20に記憶する。そして、プログラム管理システムSys1、外部機器20、及び、端末機器10は、例えば、外部機器20側の処理部24によって、第1ステータス情報、及び、第2ステータス情報に基づいて、当該プログラムを外部に対して公開する処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、外部機器20による管理に基づいて、承認を得た適正なプログラムを外部に対して公開することができる。
また、以上で説明したプログラム管理システムSys1、外部機器20、及び、端末機器10は、プログラムの課金内容を表す第3ステータス情報と共に当該プログラムを外部機器20に記憶する。そして、プログラム管理システムSys1、外部機器20、及び、端末機器10は、例えば、外部機器20側の処理部24によって、第1ステータス情報、及び、第3ステータス情報に基づいて、プログラムをダウンロード可能とする処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、外部機器20による管理に基づいて、課金内容に応じてプログラムをダウンロード可能とすることができる。
また、以上で説明したプログラム管理システムSys1、外部機器20、及び、端末機器10は、プログラムの使用状況を表す第4ステータス情報と共に当該プログラムを外部機器20に記憶する。そして、プログラム管理システムSys1、外部機器20、及び、端末機器10は、例えば、外部機器20側の処理部24によって、第4ステータス情報に基づいて、プログラムに対する報酬を算出する処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、プログラムの使用状況に応じた報酬も含めて外部機器20によって当該プログラムを管理することができる。
ここでは、以上で説明したプログラム管理システムSys1、外部機器20、及び、端末機器10は、管理の対象となるソフトウェアプログラムが比較的にデータ量の少ないサービスブロック、トリガブロック、アクションブロック、又は、アプレットである。この場合、プログラム管理システムSys1、外部機器20、及び、端末機器10は、例えば、承認審査等、様々な処理が必要なプログラムを、端末機器10側での事前審査なくすべて端末機器10から外部機器20に送信し外部機器20側で処理しても、データ通信量の過度の増大、外部機器20側での演算量の過度な増大、記憶容量の圧迫等を招く可能性を抑制することができる。
なお、上述した本発明の実施形態に係るプログラム管理システム、外部機器、及び、端末機器は、上述した実施形態に限定されず、特許請求の範囲に記載された範囲で種々の変更が可能である。
以上の説明では、端末機器10によって作成され、外部機器20による管理の対象となるソフトウェアプログラムは、各動作対象機器で実行させることで当該動作対象機器を動作させるプログラムであるものとして説明したがこれに限らない。当該ソフトウェアプログラムは、サービスブロック、トリガブロック、アクションブロック、又は、アプレットであるものとして説明したがこれに限らない。
以上の説明では、記憶部23は、第1ステータス情報、第2ステータス情報、第3ステータス情報、及び、第4ステータス情報を記憶し、処理部24は、第1ステータス情報、第2ステータス情報、第3ステータス情報、及び、第4ステータス情報に基づいて、作成プログラムを管理するものとして説明したがこれに限らない。記憶部23は、少なくとも第1ステータス情報を記憶し、処理部24は、少なくとも第1ステータス情報に基づいてプログラムを管理すればよい。例えば、処理部24は、プログラムの課金内容を表す第3ステータス情報にかかわらず、第1ステータス情報、及び、第2ステータス情報に基づいて、プログラムをダウンロード可能とする処理を実行してもよい。さらには、処理部24は、プログラムの外部への公開の程度を表す第2ステータス情報にかかわらず、第1ステータス情報のみに基づいて、プログラムを公開する処理、プログラムをダウンロード可能とする処理を実行してもよい。
以上の説明では、第1ステータス画像は、例えば、「承認」、「非承認」、「保留」等の文字画像であるものとして説明したがこれに限らず、様々なモチーフを模した図形画像であってもよい。
以上の説明では、外部機器20は、単体の機器として構成されるものとして説明したがこれに限らない。外部機器20の機能分散の形態は、上記に限られず、同様の効果や機能を奏し得る範囲において、任意の単位で機能的または物理的に分散・統合して構成することができる。また、以上で説明した作成プログラム以外の各種プログラム、各種データ等は、適宜、更新されてもよいし、端末機器10や外部機器20に対して任意のネットワークNを介して接続された他のサーバに記憶されていてもよい。以上で説明した作成プログラム以外のプログラム、各種データ等は、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。また、例えば、処理部16、24が備える各処理機能については、その全部又は任意の一部を、例えば、CPU等及び当該CPU等にて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジック等によるハードウェアとして実現してもよい。
<プログラムの管理の変形例:公開後の更新>
以上の説明では、処理部24は、第1ステータス情報、及び、第2ステータス情報に基づいて、作成プログラムを外部に対して公開する処理を実行可能であるものとしたが、公開を事後的に制限するようにしてもよい。
本変形例に係る処理部24は、例えば、第1ステータス情報、又は、第2ステータス情報が更新された場合、当該第1ステータス情報、又は、当該第2ステータス情報の更新内容に基づいて、外部に対して公開されていた作成プログラムの公開を制限する処理を実行可能である。
作成プログラムの公開後に第1ステータス情報、又は、第2ステータス情報が更新され非公開となる場合としては、一例として、例えば、作成プログラムの承認審査の基準(作成プログラムの公開を承認するためのルール)が変更され当該作成プログラムが承認基準を満たせなくなり事後的に「非承認」となった場合、「公開」とされていた作成プログラムが作者の意思で事後的に「非公開」とされた場合等が挙げられる。
本変形例に係る処理部24は、このような場合に対応して、第1ステータス情報、又は、当該第2ステータス情報の更新内容に基づいて、外部に対して公開されていた作成プログラムの公開、及び、ダウンロードを制限する。例えば、処理部24は、「承認」を表す第1ステータス情報が付された作成プログラムにおいて、第1ステータス情報が事後的に「非承認」に変更された場合、外部に対して公開されていた当該作成プログラムの公開を制限する。同様に、処理部24は、例えば、「公開」を表す第2ステータス情報が付された作成プログラムにおいて、第2ステータス情報が事後的に「非公開」に変更された場合、外部に対して公開されていた当該作成プログラムの公開を制限する。
この場合、本変形例に係る処理部24は、作成プログラムの公開を制限する処理を実行した後、当該作成プログラムを既に記憶していた機器に対して当該作成プログラムの使用を制限する処理を実行可能である。この処理は、言い換えれば、第1ステータス情報、又は、第2ステータス情報が更新され事後的に作成プログラムが非公開となった場合に当該作成プログラムの使用等を制限する公開後使用制限処理に相当する。この処理によって、本変形例に係るプログラム管理システムSys1は、作成プログラムの公開を事後的に制限する場合であっても、当該作成プログラムの管理を適正に行うことができる。
ここで、事後的に使用が制限させる作成プログラムを既に記憶している機器としては、一例として、図12に示す動作対象機器30等が挙げられる。動作対象機器30は、典型的には、プログラム管理システムSys1で管理される作成プログラムを実行することで動作する電子機器である。図12に例示する動作対象機器30は、例えば、第1動作対象機器40、及び、第2動作対象機器50を含んで構成される。
第1動作対象機器40は、ユーザが携帯可能な電子機器であり、外部機器20と相互に通信し連携することで当該外部機器20から様々なサービスを受けることができる主たる動作対象機器30である。第1動作対象機器40は、例えば、スマートフォン、タブレット型PC、ノート型PC、PDA、携帯ゲーム機器等によって構成することができる。図12の例では、第1動作対象機器40は、スマートフォンであるものとして図示しており、ここでは、上述した端末機器10と略同様の構成であるので、詳細な説明については省略する。
第2動作対象機器50は、ユーザが携帯可能な電子機器であり、第1動作対象機器40と相互に通信し連携することで当該第1動作対象機器40と共に様々なサービスを受けることができる従たる動作対象機器30である。本変形例の第2動作対象機器50は、種々のペアリング操作に応じて、第1動作対象機器40と通信可能にペアリングされる。第2動作対象機器50は、例えば、スマートフォン、タブレット型PC、ノート型PC、PDA、携帯ゲーム機器等によって構成することができるが、ここでは、第1動作対象機器40より小型で、かつ、人体に装着可能なウェアラブル機器によって構成されることが好ましい。ウェアラブル機器としては、例えば、リストバンド型、眼鏡型、指輪型、靴型、ペンダント型等の機器が挙げられる。
図12の例では、第2動作対象機器50は、腕に装着されるリストバンド型のウェアラブル機器であり時刻を表示する電子時計(腕時計)であるものとして図示している。図12に示す第2動作対象機器50は、物理的な指針51(秒針51a、分針51b、時針51c)によって文字板のインデックス(目盛)を指し示すことで時刻を表示するアナログ電子時計(アナログクオーツ時計)である。なお、第2動作対象機器50は、これに限らず、時刻をデジタル表示するデジタル電子時計(デジタルクオーツ時計)、アナログ指針表示と共に一部にデジタル表示を含むコンビネーション電子時計(コンビネーションクオーツ時計)等であってもよい。
第2動作対象機器50は、操作部52を含んで構成される。操作部52は、当該第2動作対象機器50に対する種々の入力として、ユーザ等による外部操作を受け付ける部分である。操作部52は、例えば、外装ケースの外周面から突出して設けられるリューズ52a、プッシュボタン52b、52c等によって構成される。操作部52は、リューズ52aに対する引き出し・回転操作やプッシュボタン52b、52cに対する押下操作に応じて外装ケース内の各部が連動し種々の操作を受け付ける。操作部52は、この他、レジスタリング等を含んで構成されてもよい。
処理部24は、作成プログラムの公開を制限する処理を実行した後、例えば、当該作成プログラムを既に記憶していた上記動作対象機器30(第1動作対象機器40、第2動作対象機器50)に対して当該作成プログラムの使用を制限する処理を実行する。
またこの場合、処理部24は、例えば、作成プログラムの公開を制限する処理を実行した後、当該作成プログラムを既に記憶していた動作対象機器30(第1動作対象機器40、第2動作対象機器50)に対して当該作成プログラムの使用を制限する旨を通知する処理を実行可能である。この処理は、言い換えれば、第1ステータス情報、又は、第2ステータス情報が更新され事後的に作成プログラムが非公開となった場合に当該作成プログラムの公開が制限された旨を通知する公開後使用制限通知処理に相当する。
例えば、処理部24は、第1ステータス情報、又は、第2ステータス情報が更新され、作成プログラムの公開を制限する処理を実行した後、当該作成プログラムの使用を制限する旨の通知を、通信部22を介して、当該作成プログラムを既に記憶していた第1動作対象機器40に送信する。処理部24は、例えば、記憶部23に記憶されている各作成プログラムのダウンロード履歴等を参照することで、当該作成プログラムを既に記憶していた第1動作対象機器40を特定し、特定した第1動作対象機器40に対して当該通知を送信する。
そして、当該第1動作対象機器40は、外部機器20から当該作成プログラムの使用を制限する旨の通知を受信すると、受信した通知に基づいて、例えば、図12に例示する通知画面800をディスプレイ44aに表示させる。
図12に例示した通知画面800は、当該第1動作対象機器40に既に記憶されていた作成プログラムの使用が制限されたことを通知する画面である。図12に例示した通知画面800は、一例として、外部機器20から第1動作対象機器40にダウンロードした作成プログラムに関するアイコン画像801、802、803が表示される。アイコン画像801、802、803は、それぞれ、作成プログラムを模したアイコンを表す画像であり、ここでは、第1動作対象機器40において予め用意された複数の記憶領域(スロット「SL1、SL2、SL3」)にそれぞれ記憶されている作成プログラムを表している。
第1動作対象機器40は、通知画面800において、使用が制限された作成プログラムのアイコン画像、例えば、図12の例ではスロットSL2に記憶された作成プログラムのアイコン画像802を、他のアイコン画像801、803と表示態様を区別することで、当該作成プログラムの使用が制限されたことを通知する。
このとき、第1動作対象機器40は、第1動作対象機器40とペアリングされている第2動作対象機器50に対しても当該作成プログラムの使用が事後的に制限されたことを通知するようにしてもよい。この場合、第2動作対象機器50は、例えば、図12の下段に示すように、秒針51aによって所定の位置、ここでは、「INFOMATION」を表す「INFO」の文字表記53を差し示すことで、ユーザに第1動作対象機器40を見るように促す通知を行うようにしてもよい。そして、第2動作対象機器50は、所定の了承操作、例えば、プッシュボタン52b、52cの押下操作が行われることで、秒針51aを元の位置(例えば12時位置)に戻すと共に、第1動作対象機器40に対して所定の了承操作がなされた旨を送信する。
そして、第1動作対象機器40は、第2動作対象機器50における上記所定の了承操作をきかっけとして、例えば、図12に例示する通知画面900をディスプレイ44aに表示させる。通知画面900は、上述した通知画面800と略同様の画面であるが、上記に加えて非公開通知表示領域901も表示される点で当該通知画面800と異なる。非公開通知表示領域901は、作成プログラムが事後的に非公開となり使用が制限されたことを通知するメッセージを表示する領域であり、一例として、「ご使用中のアプリは、非公開となりましたので使用できません」等の文字画像が表示される。
そして、処理部24は、使用制限の対象となった当該作成プログラムを第1動作対象機器40から強制的に削除、もしくは、当該第1動作対象機器40において当該作成プログラムを実行させないようにすることで、当該作成プログラムの使用を制限する。
なお、処理部24は、例えば、第1動作対象機器40においてプログラムストア等を表示させたり所定のプログラム管理アプリケーションを起動した際に、上記の通知画面800、900等のような表示を行わせ、第1ステータス情報、第2ステータス情報の更新内容を強制的に反映させるようにしてもよい。また、処理部24は、第1ステータス情報、第2ステータス情報の更新が行われた際に、いわゆるPush通信によって第1動作対象機器40に対して上述したような通知を送信するようにしてもよい。また、処理部24は、予めユーザに紐付けられて登録されているメールアドレスに対して上述したような通知を送信するようにしてもよい。また、第2動作対象機器50は、ユーザに第1動作対象機器40を見るように促す通知を行う際に秒針51aによって「INFO」の文字表記53を差し示すものとして説明したがこれに限らず、例えば、秒針51aによって「ERROR」を表す「ERR」(不図示)の文字表記を差し示すようにしてもよい。
また、処理部24は、作成プログラムの使用を制限した場合、当該作成プログラムを既に記憶していた機器(動作対象機器30等)に対して当該作成プログラムの使用を制限する旨を通知する処理を実行した後、当該機器に対して当該使用が制限された作成プログラムの代替となる作成プログラムを提示する処理を実行可能である。この処理は、言い換えれば、作成プログラムの公開が制限された際に代替となる作成プログラムを提案する代替プログラム提案処理に相当する。
この場合、処理部24は、例えば、作成プログラム記憶部23Aに記憶されている作成プログラムから、使用制限の対象となり第1動作対象機器40から削除された作成プログラムと類似する作成プログラムを抽出する。ここで、類似する作成プログラムとは、例えば、ジャンル、カテゴリ、機能、使用用途等において、使用制限の対象となった作成プログラムと同様の項目を含む作成プログラムである。
そして、処理部24は、抽出した作成プログラムを、使用制限の対象となった作成プログラムの代替の作成プログラムとして第1動作対象機器40に提示する。処理部24は、例えば、第1動作対象機器40においてプログラムストア等を表示させたり所定のプログラム管理アプリケーションを起動した際に、ディスプレイ44aに当該抽出した作成プログラムを提示する表示を行う。これにより、プログラム管理システムSys1は、使用制限の対象となった作成プログラムと類似の作成プログラムを、代替の作成プログラムとして再度ダウンロードし易くすることができる。
以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、第1ステータス情報、又は、第2ステータス情報の更新内容に基づいて、既に公開されていた作成プログラムの公開を制限する処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、作成プログラムの公開を事後的に制限する場合であっても、当該作成プログラムの管理を適正に行うことができる。
ここでは、以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、作成プログラムを既に記憶していた機器に対して当該作成プログラムの使用を制限する処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、公開を事後的に制限された作成プログラムがそのまま使用され続けてしまうことを抑制することができるので、当該作成プログラムの管理を適正に行うことができる。
この場合、以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、作成プログラムを既に記憶していた機器に対して当該作成プログラムの使用を制限する旨を通知する処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、公開を事後的に制限された作成プログラムが使用できなくなることを報知することができ、例えば、ユーザに対して当該作成プログラムが突然使用できなくなったような印象を与えてしまうことを抑制することができる。
また、以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、作成プログラムを既に記憶していた機器に対して使用が制限された作成プログラムの代替となるプログラムを提示する処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、ユーザの手を煩わせることなく円滑に、使用制限の対象となった作成プログラムと類似した作成プログラムを、代替の作成プログラムとして再度設定させ易くすることができる。
<プログラムのステータス情報の変形例:第5ステータス情報>
以上の説明では、外部機器20側の記憶部23は、作成プログラムのステータス情報として、第1ステータス情報、第2ステータス情報、第3ステータス情報、及び、第4ステータス情報を記憶するものとして説明したがこれに限らない。記憶部23は、第1ステータス情報、第2ステータス情報、第3ステータス情報、第4ステータス情報に加えて、さらに別のステータス情報も記憶してもよい。そして、処理部24は、第1ステータス情報、第2ステータス情報、第3ステータス情報、第4ステータス情報に加えて、さらに別のステータス情報に基づいて、作成プログラムを管理するようにしてもよい。
図13に示す変形例に係る記憶部23は、ステータス情報として、第1ステータス情報、第2ステータス情報、第3ステータス情報、第4ステータス情報に加えて、さらに、第5ステータス情報を記憶する。つまり、本変形例の記憶部23は、第1ステータス情報、第2ステータス情報、第3ステータス情報、第4ステータス情報、及び、第5ステータス情報と共に作成プログラムを記憶可能である。
ここでは、記憶部23のステータス情報記憶部23Bは、第1ステータス情報記憶部23Ba、第2ステータス情報記憶部23Bb、第3ステータス情報記憶部23Bc、第4ステータス情報記憶部23Bdに加えて、さらに、第5ステータス情報を記憶する第5ステータス情報記憶部23Beを含んで構成される。
第5ステータス情報記憶部23Beは、ステータス情報として、第5ステータス情報を記憶する記憶領域である。第5ステータス情報とは、作成プログラムを使用可能なユーザを表す情報であり、例えば、当該作成プログラムに招待し使用を許可するユーザを特定するための「ユーザ識別情報(ユーザのアカウントID等)」等を表す情報である。言い換えれば、第5ステータス情報は、当該作成プログラムに招待するユーザを表す情報である、ということもできる。当該第5ステータス情報は、上述した第2ステータス情報、第3ステータス情報等と同様に端末機器10側で選択画面等を介して作者に選択させ、当該端末機器10側の処理部16によって作成プログラムに付される。
一例として、処理部16は、作成プログラムの作成後に、例えば、図14のような選択画面1000、1100を介して、作成した作成プログラムについての第5ステータス情報を選択させることができる。また、処理部16は、作成プログラムの管理画面において所定の作成プログラムを選択する操作に応じて、図14のような選択画面1000、1100に移行させることで、作成した作成プログラムについての第5ステータス情報を選択させるようにしてもよい。
処理部16は、例えば、作成プログラムの作成完了後、あるいは、管理画面での所定の作成プログラムの選択操作後に、図14に例示した選択画面1000をディスプレイ14aに表示させる。図14に例示した選択画面1000は、作成した作成プログラムに対して所定のユーザを招待するか否かを選択するために操作される画面である。選択画面1000は、例えば、作成された作成プログラムを表すアイコン画像1001、作成プログラムの概要を説明する文字画像1002、作成プログラムを構成するトリガブロックを表すアイコン画像1003、サービスブロックを表すアイコン画像1004、アクションブロックを表すアイコン画像1005等と共に、招待選択領域1006が表示される。招待選択領域1006は、作成した作成プログラムに対して所定のユーザを招待する場合に選択される領域であり、一例として、「招待する」等の文字画像が表示される。
処理部16は、図14に例示した選択画面1000において、タッチパネル13aに対する作者のタップ操作等に応じて招待選択領域1006が選択されると、例えば、図14に例示した選択画面1100をディスプレイ14aに表示させる。図14に例示した選択画面1100は、作成した作成プログラムに招待するユーザに関する情報、すなわち、上記第5ステータス情報を選択するために操作される画面である。選択画面1100は、例えば、招待者選択領域1101、及び、メッセージ送信選択領域1102が表示される。招待者選択領域1101は、招待するユーザを表す「ユーザ識別情報(ユーザのアカウントID等)」等を含む第5ステータス情報を特定するために選択される領域であり、一例として、「招待者のニックネームまたはID」等の文字画像と共に空欄画像が表示される。メッセージ送信選択領域1102は、招待するユーザにメッセージを送信する際に選択される領域であり、一例として、「招待メッセージを送る」等の文字画像が表示される。
処理部16は、図14に例示した選択画面1100において、タッチパネル13aに対する作者のタップ操作等に応じて招待者選択領域1101が選択されると、例えば、選択画面1100内にいわゆるソフトウェアキーボードを表示しタッチパネル13aを介して作者による「ユーザ識別情報」の入力操作を受け付ける。
処理部16は、図14に例示した選択画面1100において、タッチパネル13aに対する作者のタップ操作等に応じてメッセージ送信選択領域1102が選択されると、例えば、選択画面1100内にいわゆるソフトウェアキーボードを表示しタッチパネル13aを介して作者による「送信メッセージ」の入力操作を受け付ける。
そして、処理部16は、図14に示す選択画面1100において、作者による各種入力操作が終了すると、当該作成プログラムに対して、「ユーザ識別情報」、「送信メッセージ」等を含む第5ステータス情報を付す。そして、処理部16は、当該第5ステータス情報が付された当該作成プログラムを、上述した種々の他の情報と共に記憶部15に記憶すると共に、外部機器20に送信しアップロードする。
そして、外部機器20側の記憶部23は、第1ステータス情報、第2ステータス情報、第3ステータス情報、第4ステータス情報、及び、第5ステータス情報と共に作成プログラムを記憶する。第5ステータス情報記憶部23Beに記憶されている第5ステータス情報は、他のステータス情報と同様に、処理部24による処理によって、作成プログラム記憶部23Aに記憶されている作成プログラム、及び、そのメタ情報等と関連付け(紐付け)られて記憶される。そして、処理部24は、第1ステータス情報、第2ステータス情報、第3ステータス情報、第4ステータス情報、及び、第5ステータス情報に基づいて、作成プログラムを管理する処理を実行可能である。
図15は、上述した図6と同様に、処理部24によって複数の作成プログラムをリスト化、データベース化した作成プログラムリスト1200の一例である。図15に例示する作成プログラムリスト1200は、第5ステータス情報に関するリストが加わっている点で図6で例示した作成プログラムリスト400と異なる。
図15に示す作成プログラムリスト1200は、一例として、作成プログラム記憶部23A、第1ステータス情報記憶部23Ba、第2ステータス情報記憶部23Bb、第5ステータス情報記憶部23Beにそれぞれ記憶されている第1ステータス情報、第2ステータス情報、第5ステータス情報、メタ情報に基づいて、複数の作成プログラムの「名称」、「作者」、「作者のアカウントID」、「審査状態」、「公開」、「申請日」に加えて「招待」がリスト化されたものである。「招待」は、作成プログラムの第5ステータス情報に基づくものであり、例えば、作成プログラムに招待する「ユーザ識別情報」等を表す。当該作成プログラムリスト1200は、例えば、外部機器20の表示部(不図示)や管理用の機器等において表示させることできる。
そして、処理部24は、例えば、第1ステータス情報記憶部23Baに記憶されている第1ステータス情報、第2ステータス情報記憶部23Bbに記憶されている第2ステータス情報、及び、第5ステータス情報記憶部23Beに記憶されている第5ステータス情報に基づいて、作成プログラムを外部に対して公開する処理を実行可能である。例えば、処理部24は、「承認」を表す第1ステータス情報が付され、かつ、「限定公開」を表す第2ステータス情報が付された作成プログラムを外部に対して公開する場合、公開対象を、当該作成プログラムに付された第5ステータス情報が表す「ユーザ識別情報」に対応したユーザに限定し、他のユーザに対しては公開しないようにすることができる。つまり、処理部24は、例えば、当該第5ステータス情報が表す「ユーザ識別情報」に対応したユーザが所有する機器(例えば、上述の端末機器10や第1動作対象機器40等)においては、プログラムストア等で当該作成プログラムをダウンロード可能な作成プログラムとして表示させる一方、他のユーザが所有する機器においては、プログラムストア等で当該作成プログラムをダウンロード可能な作成プログラムとしては表示させない。
言い換えれば、処理部24は、例えば、第1ステータス情報記憶部23Baに記憶されている第1ステータス情報、及び、第5ステータス情報記憶部23Beに記憶されている第5ステータス情報に基づいて、作成プログラムをダウンロード可能とする処理を実行可能である。つまり、処理部24は、「承認」を表す第1ステータス情報が付され、かつ、第5ステータス情報が付された作成プログラムについては、第5ステータス情報が表す「ユーザ識別情報」に対応したユーザが所有する機器に当該作成プログラムをダウンロード可能とし、その他のユーザが所有する機器に対してはダウンロード不可とする。
なおこの場合、処理部24は、結果的に、「限定公開」を表す第2ステータス情報が付され、かつ、第5ステータス情報も付されている作成プログラムに関しては、当該第5ステータス情報が表す「ユーザ識別情報」に対応したユーザに限定して当該作成プログラムのダウンロードを可能とすることとなる。つまり、処理部24は、実質的には、第1ステータス情報記憶部23Baに記憶されている第1ステータス情報、第2ステータス情報記憶部23Bbに記憶されている第2ステータス情報、及び、第5ステータス情報記憶部23Beに記憶されている第5ステータス情報に基づいて、作成プログラムをダウンロード可能とする処理を実行していることとなる。
さらに、処理部24は、上述したように、第1ステータス情報、第5ステータス情報に加えて、第3ステータス情報も踏まえて作成プログラムをダウンロード可能とする処理を実行可能である。
また、本変形例に係る処理部24は、図14に例示するように、第5ステータス情報に基づいて、当該作成プログラムを使用可能なユーザに対応付けられた機器に対して当該作成プログラムの使用が可能である旨を通知する処理を実行可能である。この処理は、言い換えれば、当該作成プログラムを使用可能なユーザに対して当該作成プログラムに招待する通知を行う招待処理に相当する。
そしてさらに、処理部24は、当該作成プログラムを使用可能なユーザに対応付けられた機器に対して当該作成プログラムの使用が可能である旨を通知する処理を実行した後、当該機器において当該作成プログラムの使用を受け入れる操作がされた場合に当該機器に対して当該作成プログラムをダウンロードする処理を実行可能である。
ここで、ユーザに対応付けられた機器とは、当該ユーザが所有する機器であり、例えば、上述の端末機器10や第1動作対象機器40等である。図14の例では、ユーザに対応付けられた機器は、第1動作対象機器40であるものとして図示している。
この場合、処理部24は、例えば、第5ステータス情報が表す「ユーザ識別情報」等に基づいて、当該作成プログラムの使用が可能である旨の通知を、通信部22を介して、当該ユーザに対応付けられた第1動作対象機器40に送信する。当該第1動作対象機器40は、外部機器20から当該作成プログラムの使用が可能である旨の通知を受信すると、受信した通知に基づいて、例えば、図14に例示する通知画面1300をディスプレイ44aに表示させる。
図14に例示した通知画面1300は、第5ステータス情報に応じて、当該第1動作対象機器40に対応付けられたユーザが当該作成プログラムに招待されたことを通知する画面である。通知画面1300は、例えば、招待された作成プログラムの概要を説明する文字画像1301、招待された作成プログラムを構成するトリガブロックを表すアイコン画像1302、サービスブロックを表すアイコン画像1303、アクションブロックを表すアイコン画像1304等と共に、メッセージ表示領域1305、招待承認選択領域1306、招待非承認選択領域1307が表示される。メッセージ表示領域1305は、当該作成プログラムに招待されたことを通知するメッセージを表示する領域であり、一例として、「メッセージ Aさんから、アプリの招待がありました」等の文字画像が表示される。メッセージ表示領域1305に表示されるメッセージは、例えば、図14で例示した選択画面1100で当該作成プログラムの作者によって入力された「送信メッセージ」であってもよい。当該「送信メッセージ」についての情報は、第5ステータス情報に含まれている。招待承認選択領域1306は、当該作成プログラムへの招待を受ける場合に選択される領域であり、一例として、「招待を受ける」等の文字画像が表示される。招待非承認選択領域1307は、当該作成プログラムへの招待を受けない場合に選択される領域であり、一例として、「招待を受けない」等の文字画像が表示される。
第1動作対象機器40は、図14に例示した通知画面1300において、タッチパネル43aに対するユーザのタップ操作等に応じて招待承認選択領域1306が選択されると、例えば、作成プログラムへの招待を受け入れた旨の通知を外部機器20に送信する。ここでは、当該招待承認選択領域1306を選択する操作が上述した第1動作対象機器40において作成プログラムの使用を受け入れる操作に相当する。
そして、処理部24は、第1動作対象機器40から作成プログラムへの招待を受け入れた旨の通知を受信すると、当該第1動作対象機器40において、上述のようにプログラムストア等で当該作成プログラムをダウンロード可能な作成プログラムとして表示させる。そして、処理部24は、第1動作対象機器40において最終的なダウンロード操作がなされると、当該第1動作対象機器40に対して当該招待された作成プログラムをダウンロードする。
なおこの場合、処理部24は、招待された作成プログラムの当該第1動作対象機器40へのダウンロードが完了すると、ユーザが招待を受け入れた旨の通知を、通信部22を介して、当該作成プログラムの作者の端末機器10に送信する処理を実行するようにしてもよい。
一方、第1動作対象機器40は、図14に例示した通知画面1300において、タッチパネル43aに対するユーザのタップ操作等に応じて招待非承認選択領域1307が選択されると、例えば、作成プログラムへの招待を受け入れない旨の通知を外部機器20に送信する。
そして、処理部24は、第1動作対象機器40から作成プログラムへの招待を受け入れない旨の通知を受信すると、第5ステータス情報等に関連づけて当該作成プログラムについて招待が受け入れられなかったことを記憶する処理を実行する。またこの場合、処理部24は、当該作成プログラムに付された第5ステータス情報自体を消去する処理を実行してもよい。さらには、処理部24は、招待したユーザが招待を受け入れなかった旨の通知を、通信部22を介して、当該作成プログラムの作者の端末機器10に送信する処理を実行するようにしてもよい。
以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、作成プログラムを使用可能なユーザを表す第5ステータス情報と共に当該プログラムを外部機器20に記憶する。そして、プログラム管理システムSys1、外部機器20、及び、端末機器10は、例えば、外部機器20側の処理部24によって、第5ステータス情報に基づいて、作成プログラムをダウンロード可能とする処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、第5ステータス情報によって予め規定されたユーザに制限して当該作成プログラムをダウンロード可能とすることができる。
また、以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、第5ステータス情報に基づいて、作成プログラムを使用可能なユーザに対応付けられた機器に対して当該作成プログラムの使用が可能である旨を通知する処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、作成プログラムを使用可能なユーザを当該作成プログラムに招待することができる。
また、以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、作成プログラムを使用可能なユーザに対応付けられた機器において当該作成プログラムの使用を受け入れる操作がされた場合に当該機器に対して当該作成プログラムをダウンロードする処理を実行可能である。この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、当該作成プログラムへの招待を受け入れたユーザに対応付けられた機器に対して当該作成プログラムを円滑にダウンロードすることができる。
以上のように、変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、ユーザを作成プログラムに招待しダウンロードさせるまでの処理を当該ユーザの手を煩わせることなく円滑に行うことができる。
<承認審査の変形例:再申請時の自動再入力>
以上の説明では、処理部24は、作成プログラムの承認審査の結果、当該作成プログラムが「承認」されなかった場合、すなわち、「非承認」、又は、「承認の保留」となった場合、端末機器10側に承認審査の結果を通知すると共に再審査を促すようにしてもよい。この場合、処理部24は、作成プログラムの承認審査の結果を、通信部22を介して端末機器10に送信する。端末機器10の処理部16は、外部機器20から通信部12を介して作成プログラムの承認審査の結果あるいはメッセージを受信すると、当該受信した承認審査の結果あるいはメッセージに基づいて、図16に例示する通知画面1400をディスプレイ14aに表示させるようにしてもよい。
図16に例示した通知画面1400は、作成プログラムの承認審査の結果を通知する画面である。図16に例示した通知画面1400は、一例として、作成プログラムが「非承認」とされた場合の画面を表しており、「非承認」となった作成プログラムに関するアイコン画像1401と共に審査結果表示領域1402が表示される。アイコン画像1401は、「非承認」となった作成プログラムを模したアイコンを表す画像である。審査結果表示領域1402は、作成プログラムの承認審査の結果を表示する領域であり、一例として、「審査結果(非承認)のお知らせ」、「AP000501の審査の結果、非承認となりました。」、「<理由>・申請に必要な項目の不備 [詳細へ]」、「再審査は、ここをタップしてください。」等の文字画像が表示される。
処理部16は、図16に例示した通知画面1400において、タッチパネル13aに対する作者のタップ操作等に応じて「「詳細へ]」が選択されると、申請に必要な項目の不備の詳細画面、例えば、後述するような不合格項目A1、A2、A3、A4、A5の詳細をディスプレイ14aに表示させる。これに応じて、当該作成プログラムの作者は、不合格項目に関する詳細情報を把握し、当該作成プログラムの修正等の対応処置を行うことができる。
そして、処理部16は、図16に例示した通知画面1400において、タッチパネル13aに対する作者のタップ操作等に応じて「ここ」が選択されると、再審査の申請画面をディスプレイ14aに表示させる。
ここで、作成プログラムの承認申請に際しては、端末機器10側の通信部12は、端末機器10に入力された申請情報と共に作成プログラムを外部機器20に送信する。当該端末機器10から外部機器20に送信される申請情報は、外部機器20側での作成プログラムの承認審査に用いるために、端末機器10において入力部13を介して当該端末機器10に入力された情報である。申請情報は、例えば、上述したメタ情報を含み、その他、作成プログラムを表すアイコン画像、作成プログラム本体、仕様に関するテキスト情報、動作内容を示すアイコン画像、内容説明に関するテキスト情報等を含む。
そして、本変形例の処理部24は、作成プログラムが承認されなかった場合で、かつ、上述したように再審査の申請画面をディスプレイ14aに表示させる場合、端末機器10において、承認されなかった事項に応じて申請情報として自動で再入力する事項を変更する処理を実行可能である。例えば、処理部24は、初回の申請時に入力された事項を、申請された作成プログラムや作者のアカウントID等と紐付けて一旦記憶部23に記憶しておき、再審査の申請の際に、初回の申請時に入力した事項を必要に応じて記憶部23から読み出し申請情報として自動で再入力する。
図17は、作成プログラムの承認審査で承認されなかった事項と、再審査の際に申請情報として自動で再入力する事項との対応関係の一例を示す図である。
図17中、申請情報I1、I2、I3、I4、I5は、端末機器10において入力部13を介して入力される申請情報を表している。ここでは一例として、申請情報I1は、「作成プログラムを表すアイコン画像」、申請情報I2は、「作成プログラム本体」、申請情報I3は、「仕様に関するテキスト情報」、申請情報I4は、「動作内容を示すアイコン画像」、申請情報I5は、「内容説明に関するテキスト情報」であるものとする。なお申請情報I4は、JSONなどのデータ記述言語で記載された、文字列や数値列などのテキスト情報であってもよい。
一方、図17中、不合格項目A1、A2、A3、A4、A5は、作成プログラムの承認審査で承認されなかった事項を表している。ここでは一例として、不合格項目A1は、「申請に必要な申請情報の各項目の未入力・不備」、不合格項目A2は、「ヘルプ機能やバージョンアップ対応等のサポート機能の不足」、不合格項目A3は、「容量、ファイルの属性、プログラム構成等のメタデータの不適合」、不合格項目A4は、「コンテンツが社会常識から逸脱していないこと等の道徳的、反社会的、風俗的観点での不適合」、不合格項目A5は、「バグが存在する、起動するまでの時間が長い、フリーズする等の品質上の不適合」であるものとする。典型的には、不合格項目A1、A2は、作成プログラム本体の修正等を要せず、不合格項目としては比較的に軽微な項目に相当する。不合格項目A3は、作成プログラムの内容が大幅に変わる可能性がある項目に相当する。不合格項目A4は、再申請の可能性が極めて低く再審査をしても承認が得られる可能性が極めて低いと推定される項目に相当する。不合格項目A5は、プログラムの作成能力不足のため、作成プログラムを根本から再作成し直す必要がある項目に相当する。
図17の例では、処理部24は、不合格項目A1、A2によって作成プログラムが承認されなかった場合、端末機器10のディスプレイ14aに表示される再審査の申請画面において、申請情報I1、I2、I3、I4、I5の全項目を自動で再入力する処理を実行する。
また、処理部24は、不合格項目A3によって作成プログラムが承認されなかった場合、端末機器10のディスプレイ14aに表示される再審査の申請画面において、申請情報I1、I2、I3、I4、I5のうち申請情報I1、I4のみを自動で再入力する処理を実行する。
さらには、処理部24は、不合格項目A4によって作成プログラムが承認されなかった場合、端末機器10のディスプレイ14aに表示される再審査の申請画面において、いずれの申請情報I1、I2、I3、I4、I5も自動では再入力しないようにする。
また、処理部24は、不合格項目A5によって作成プログラムが承認されなかった場合、端末機器10のディスプレイ14aに表示される再審査の申請画面において、申請情報I1、I2、I3、I4、I5のうち申請情報I1のみを自動で再入力する処理を実行する。
以上のように、図17の例では、処理部24は、比較的に重要度が低い不合格項目によって作成プログラムが承認されなかった場合には、相対的に多くの申請情報を自動で再入力する一方、比較的に重要度が高い不合格項目によって作成プログラムが承認されなかった場合には、相対的に少ない数の申請情報を自動で再入力する。
以上で説明した変形例に係るプログラム管理システムSys1、外部機器20、及び、端末機器10は、一度、作成プログラムが承認されなかった場合であっても、承認されなかった事項に応じて申請情報を自動で再入力することで、再申請の手間を抑制し煩わしさを抑制することができる。
一方、プログラム管理システムSys1、外部機器20、及び、端末機器10は、承認されなかった事項の内容に応じて自動で再入力する申請情報の量や項目を変更することができる。これにより、プログラム管理システムSys1、外部機器20、及び、端末機器10は、例えば、承認されなかった事項の重要度が高く作成プログラムの内容が大幅に変更される可能性が高いような場合には自動で再入力する量を減らしたり項目を調整したりすることで、自動で再入力されたがためにかえって手間が増えてしまうようなことを抑制することができる。
この結果、プログラム管理システムSys1、外部機器20、及び、端末機器10は、例えば、承認されなかった事項に応じて、再申請のために申請情報の変更が予想される項目以外の項目を自動で入力することができるので、再申請の手間を抑制し煩わしさを抑制することができ、この結果、プログラムの作成意欲の低下を抑制することができる。
なお、作成プログラムの承認審査で承認されなかった事項と、再審査の際に申請情報として自動で再入力する事項との対応関係は、図17で例示した組み合わせに限られない。同様に、申請情報の内容や不合格項目の内容も上記のものに限られない。
本実施形態に係るプログラム管理システム、外部機器、及び、端末機器は、以上で説明した実施形態、変形例の構成要素を適宜組み合わせることで構成してもよい。