以下、図面を参照しながら本発明の実施形態を詳細に説明する。
図1は、本発明の一実施形態によるシナリオ提供システム1の構成図である。シナリオ提供システム1は、事業者のシナリオ管理装置2と、各ユーザのシナリオ実行端末4とを備える。同図では、各ユーザをユーザU1〜Un(nは1以上の任意の整数)と記載している。また、同図では、1ユーザのシナリオ実行端末4を1台のみ示しているが、各ユーザが使用するシナリオ実行端末4の台数は任意である。ユーザの例は、企業、学校、団体などであるが、これらに限らない。シナリオ管理装置2は、インターネットなどのネットワーク6を介して、シナリオ実行端末4と接続される。例えば、シナリオ管理装置2は、コンピュータサーバなどの情報処理装置であり、シナリオ実行端末4は、PCなどの情報処理装置である。
シナリオ管理装置2は、シナリオ実行端末4が実行するRPA(Robotic Process Automation)のシナリオを管理する。RPAは、自動化ツールの一例である。シナリオは、シナリオ実行端末4における処理の手順を示す。シナリオには、ユーザシナリオと、サービスシナリオとがある。ユーザシナリオは、シナリオ管理装置2が提供する1以上の部品シナリオを用いてユーザが作成したシナリオである。部品シナリオは、シナリオ実行端末4において比較的小さな機能を実現するための処理の手順を示すシナリオである。一方、サービスシナリオは、事業者により作成され、ユーザに提供されるシナリオである。部品シナリオがサービスシナリオを兼ねてもよい。また、部品シナリオを複数組み合わせて一つの部品シナリオが生成されてもよい。シナリオ管理装置2が提供する部品シナリオやサービスシナリオを、シナリオ管理装置2を保有する事業者が作成してもよく、その事業者とは異なるシナリオ提供業者が作成してもよい。
シナリオ実行端末4は、RPAのシナリオを実行する機能を有することに加え、ユーザがユーザシナリオを作成するための指示を入力するユーザ端末として動作する。シナリオ管理装置2は、ユーザがユーザシナリオを作成する際に、部品シナリオのリストをシナリオ実行端末4に提示する。ユーザは、シナリオ実行端末4に提示されるこのリストの中から使用する部品シナリオを選択し、選択した部品シナリオの実行順番を指定することにより、部品シナリオで構成されるユーザシナリオを作成する。シナリオ管理装置2は、作成されたユーザシナリオを構成する部品シナリオの実行順番やI/O整合性、重複などの正常性をチェックし、シナリオ実行端末4にチェック結果を提示する。ユーザは、作成したユーザシナリオをシナリオ管理装置2に登録する。
ユーザはシナリオ実行端末4を用いて、自分が作成したユーザシナリオや事業者が提供するサービスシナリオの実行スケジュールをシナリオ管理装置2に登録する。シナリオ管理装置2は、登録されたスケジュールに従ってシナリオ実行端末4にユーザシナリオ又はサービスシナリオの実行ファイルをダウンロードし、実行させる。
シナリオ管理装置2は、ユーザU1〜Unのシナリオ実行端末4において過去に実行されたユーザシナリオ群を分析する。ここでは、一例として、シナリオ管理装置2が、どのような部品シナリオの組み合わせがどれくらい利用されているかの利用度を分析する場合を例に説明する。以下では、部品シナリオの組み合わせを部品組み合わせと記載する。部品組み合わせは、複数の部品シナリオと、それら部品シナリオの実行順とにより表される。つまり、2つの部品組み合わせにおいて、要素となる部品シナリオの種類が同じであっても、部品シナリオの実行順が異なっている場合は、それらは異なる部品組み合わせとする。1つの部品組み合わせの要素となる複数の部品シナリオに、同じ種類の部品シナリオが含まれてもよい。シナリオ管理装置2は、分析結果を利用して、ユーザシナリオを作成しているユーザのシナリオ実行端末4に、利用される可能性が高いと予測される部品シナリオ、又は、作成しているユーザシナリオに類似する部品組み合わせの情報を提示する。
また、事業者は、シナリオ管理装置2による分析結果を利用して、利用度が高い部品組み合わせを用いたサービスシナリオを作成してユーザに提供したり、利用度が高い部品組み合わせを1つの部品シナリオとしてユーザに提供したりすることができる。また、事業者はユーザに、利用度が高い部品組み合わせを含んだ複数の部品シナリオを部品シナリオセットとして販売することもできる。ユーザは、部品シナリオセットの中から部品シナリオを選択してユーザシナリオを作成するため、多数の部品シナリオの中から必要なものを選択する作業が軽減する。
上記により、シナリオ提供システム1は、ユーザや事業者がユーザのニーズにマッチした機能を有するシナリオを簡易かつ柔軟に生成し、シナリオ実行端末4に実行させるよう支援することができる。
図2は、シナリオの例を示す図である。同図に示すシナリオは、部品シナリオA、B、及び、Cを組み合わせて構成される。部品シナリオAは、固定記述形式の部品シナリオである。固定記述形式では、部品シナリオの中に直接各処理を定義している。そのため、同じ機能を実現する部品シナリオであっても、シナリオ実行端末4の環境が異なる場合や、処理に用いる設定値が異なる場合には、別の部品シナリオとして作成しなければならない場合がある。なお、環境の例は、アプリケーション(以下、アプリと記載)の種類、アプリのバージョン、OS(Operation System)の種類、OSのバージョン、シナリオ実行端末4の画面の大きさなどである。
部品シナリオB及びCは、汎用記述形式の部品シナリオである。汎用記述形式の部品シナリオは、カスタマイズが可能である。汎用記述形式の部品シナリオは、汎用部品シナリオとカスタマイズ用ファイルとにより構成される。汎用部品シナリオは、複数のユーザのシナリオ実行端末4において使用可能なように汎用的に記述された部品シナリオである。カスタマイズ用ファイルは、ユーザのシナリオ実行端末4の環境やユーザ独自の業務運用規則等に合うように汎用部品シナリオをカスタマイズするためのファイルである。各ユーザは、シナリオに含まれる汎用部品シナリオをカスタマイズ用ファイルによりカスタマイズしてから、シナリオ実行端末4にシナリオを実行させる。
汎用部品シナリオは、動作を抽象化し、ユーザがカスタマイズする対象となる変数の部分を除いて記述される。ユーザは、カスタマイズ用ファイルに、変数の設定値を記述する。例えば、汎用部品シナリオには、アクセス先のURL(Universal Resource Locator)を変数で記述しておき、カスタマイズ用ファイルには、その変数の値として、ユーザが使用するウェブサイトのURLを記述する。また、例えば、汎用部品シナリオには、実行結果のファイルの格納場所を変数で記述しておき、カスタマイズ用ファイルには、その変数の値としてファイルを格納するフォルダ名を記述する。ユーザによる汎用部品シナリオの修正は不要である。このように、部品シナリオにおいて用いられる変数部分をカスタマイズ用ファイルに外部化することで、部品シナリオを抽象化して一つの汎用部品シナリオに集約することが可能となる。ユーザは、部品シナリオCのカスタマイズ用ファイルに、部品シナリオBのカスタマイズ用ファイルの設定内容を参照するように記述することもできる。
図3は、シナリオ管理装置2の構成を示す機能ブロック図である。シナリオ管理装置2は、例えば、クラウド上の1台以上の情報処理装置(コンピュータサーバ)により実現される。シナリオ管理装置2が、ネットワーク6を介して通信可能に接続された複数台の情報処理装置を用いて実装される場合、シナリオ管理装置2が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。シナリオ管理装置2の各機能部を、いずれの情報処理装置により実装するかは任意とすることができる。また、同一の機能部を複数の情報処理装置により実現してもよい。
シナリオ管理装置2は、記憶部21と、処理部22とを有する。記憶部21は、ユーザ管理情報と、部品シナリオ管理情報と、ユーザシナリオ管理情報と、サービスシナリオ情報と、スケジュール情報と、ログデータと、課金情報と、分析情報と、セット情報とを記憶する。
ユーザ管理情報は、ユーザに関する情報を示す。例えば、ユーザ管理情報は、ユーザの識別情報、名前及び属性と、ユーザが保有するシナリオ実行端末4の情報とを含む。属性は、例えば、ユーザが属する業界の種類でもよく、部署の種類でもよく、それらの組み合わせでもよいが、これらに限定されない。業界の種類は、例えば、金融業界、IT業界などであり、部署の種類は、経理、営業などである。
部品シナリオ管理情報は、各部品シナリオの部品シナリオ名、部品シナリオファイル、分類及びチェック用情報を示すデータである。部品シナリオ名は、部品シナリオの名称である。部品シナリオファイルは、部品シナリオが記述されたファイルである。汎用記述形式の部品シナリオの場合、部品シナリオファイルは、汎用部品シナリオが記述されたファイルと、カスタマイズ用ファイルとを含む。分類は、部品シナリオを検索するためのキーとして用いられる。分類は、例えば、部品シナリオの機能でもよく、部品シナリオにおいて操作対象としているアプリ(以下、「アプリ」と記載)でもよく、部品シナリオが正常に動作するシナリオ実行端末4の環境でもよい。チェック用情報は、他の部品シナリオとの整合性を確認するために用いられる情報である。チェック用情報は、例えば、部品シナリオの実行前に設定されていなければならない変数や、部品シナリオにおいて設定される変数など、部品シナリオの変数に関する情報でもよい。あるいは、チェック用情報は、部品シナリオにおいて起動又は終了されるアプリ、部品シナリオの実行前に起動されていなければならないアプリなど、部品シナリオが操作対象としているアプリの情報でもよい。なお、チェック用情報をシナリオファイルから取得することも可能である。
ユーザシナリオ管理情報は、ユーザシナリオを作成したユーザの識別情報及び属性と、ユーザシナリオファイルとを含む。ユーザシナリオファイルは、ユーザシナリオが記述されたファイルである。ユーザシナリオファイルは、ユーザシナリオを構成する部品シナリオの実行順番を記述したファイルと、それら部品シナリオのシナリオファイルとを含む。あるいは、ユーザシナリオファイルは、ユーザシナリオを構成する部品シナリオそれぞれのシナリオファイルから読み出した部品シナリオを、それら部品シナリオの実行順番に従って記述したファイルである。ユーザシナリオが汎用記述形式の部品シナリオを含む場合、ユーザシナリオファイルは、汎用部品シナリオのカスタマイズ用ファイルを含む。
サービスシナリオ管理情報は、サービスシナリオファイルと、属性の情報とを含む。サービスシナリオファイルは、ユーザシナリオファイルと同様にサービスシナリオが記述されたファイルである。属性の情報は、サービスシナリオファイルを利用すると想定されるユーザの属性を示す。
スケジュール情報は、シナリオ実行端末4にシナリオを実行させるスケジュールを示す。シナリオ実行端末4に実行させるシナリオは、ユーザシナリオでもよく、サービスシナリオでもよい。
ログデータは、シナリオ実行端末4において発生したイベントの情報とその発生日時を示す。イベントがシナリオの実行である場合、ログデータは、シナリオ実行端末4において実行されたシナリオの情報を含む。
分析情報は、ユーザシナリオに用いられている部品シナリオに関する分析結果を示す。分析対象の(母集団となる)ユーザシナリオは、いずれかのユーザのシナリオ実行端末4において実行されたユーザシナリオ群である。分析結果は、例えば、ユーザシナリオに含まれる部品組み合わせと、分析対象の全ユーザシナリオにおけるその部品組み合わせの出現頻度とを対応付けた情報である。出現頻度は部品組み合わせが含まれるユーザシナリオの数でもよく、分析対象の全ユーザシナリオのうち部品組み合わせが含まれるユーザシナリオの割合でもよい。
セット情報は、所定の機能を実行するために用いられる複数の部品シナリオのセットを示す。セット情報は、部品シナリオセットに含まれる部品シナリオを用いて記述された部品シナリオを含んでもよい。部品シナリオセットは、出現頻度が高い分析結果が得られた部品組み合わせに基づき生成される。
処理部22は、シナリオ生成部220と、スケジュール管理部231と、シナリオ送信部232と、ログ受信部233と、課金部234と、分析部235とを有する。
シナリオ生成部220は、シナリオ実行端末4におけるユーザ操作に従って、ユーザシナリオのファイルを生成する。シナリオ生成部220は、作成情報受信部221と、作成画面送信部222と、情報提供部223と、シナリオ確認部224と、シナリオ登録部225とを備える。
作成情報受信部221は、ユーザシナリオの作成に関する情報をシナリオ実行端末4から受信する。作成画面送信部222は、シナリオ作成画面を表示させる画面データをシナリオ実行端末4に送信する。シナリオ作成画面は、シナリオ管理装置2が提供する部品シナリオのリストと、作成中のユーザシナリオを構成する部品シナリオ及びその実行順番の情報を表示する。
情報提供部223は、分析情報やセット情報と、作成中のユーザシナリオに含まれる部品シナリオとを照合し、作成中のユーザシナリオに加えて使用される可能性が高い部品シナリオや、ユーザシナリオに含まれる部品組み合わせと類似する部品シナリオセットを選択する。情報提供部223は、選択した部品シナリオ又は部品シナリオセットの情報をシナリオ実行端末4に表示する。
シナリオ確認部224は、作成中のユーザシナリオにおける部品シナリオの実行順番、I/O整合性、及び、重複などの正常性を確認し、正常性確認結果をシナリオ実行端末4に表示する。シナリオ登録部225は、ユーザがシナリオ作成画面を用いて行った部品シナリオの選択及び選択された部品シナリオの実行順番の指定に基づいてユーザシナリオのシナリオファイルを生成する。シナリオ登録部225は、生成したシナリオファイルを設定したユーザシナリオ管理情報を記憶部21に登録する。
スケジュール管理部231は、ユーザが選択したシナリオをシナリオ実行端末4に実行させるためのスケジュール情報を記憶部21に登録する。スケジュール管理部231は、記憶部21に記憶されたスケジュール情報に従ってシナリオの実行を指示する。シナリオ送信部232は、シナリオ実行端末4に実行させるシナリオのシナリオファイルをシナリオ実行端末4に送信する。ログ受信部233は、各シナリオ実行端末4からログデータを受信して、記憶部21に書き込む。
課金部234は、ユーザのシナリオ実行端末4においてシナリオが実行された場合に課金を行い、ユーザに請求する料金の情報を記憶部21に書き込む。課金部234は、ユーザシナリオかサービスシナリオかによって料金を決定してもよい。また、課金部234は、ユーザシナリオにおいて実行された部品シナリオの数によって料金を決定してもよく、サービスシナリオの種類によって料金を決定してもよい。また、課金部234は、作成されたユーザシナリオに含まれる部品シナリオの数に応じて課金を行い、ユーザに請求する料金の情報を記憶部21に書き込んでもよい。
分析部235は、シナリオ実行端末4において実行されたユーザシナリオに基づいて分析情報を生成し、記憶部21に書き込む。例えば、分析部235は、各ユーザシナリオに出現する部品組み合わせをすべて抽出し、各部品組み合わせの出現頻度を算出する。分析部235は、抽出された部品組み合わせそれぞれの出現頻度を設定した分析情報を生成する。具体例を以下に示す。
部品組み合わせを構成する部品シナリオx1,…,xj(jは2以上の整数)をユーザシナリオにおいて実行される順に並べ、(x1,…,xj)と記載する。部品組み合わせを構成する要素の数jの最小値及び最大値は任意とすることができる。部品シナリオx1,…,xjには、種類が同じ部品シナリオが含まれてもよい。例えば、図2に示すように部品シナリオA、部品シナリオB、部品シナリオCの順に実行されるユーザシナリオであり、jの最小値が2であるとする。この場合、分析部235は、(部品シナリオA,部品シナリオB,部品シナリオC)、(部品シナリオA、部品シナリオB)、(部品シナリオA,部品シナリオC)、(部品シナリオB,部品シナリオC)それぞれの部品組み合わせの出現回数を1回とする。分析部235は、同様に、いずれかのシナリオ実行端末4において実行されたユーザシナリオそれぞれについて部品組み合わせを抽出する。分析部235は、部品組み合わせ別に出現頻度を算出し、分析情報を生成する。
分析部235は、全ユーザの全ユーザシナリオを分析対象として分析情報を生成してもよく、ユーザの属性毎、部品シナリオの分類毎、ユーザの属性及び部品シナリオの分類の組み合わせ毎に分析情報を生成してもよい。分析部235は、部品シナリオの分類を特定して分析情報を生成する場合、その分類に属する部品シナリオを要素とする部品組み合わせをユーザシナリオから抽出し、出現頻度を算出する。
図4は、シナリオ実行端末4の構成を示す機能ブロック図である。シナリオ実行端末4は、ユーザの情報処理装置である。シナリオ実行端末4は、記憶部41と、入力部42と、表示部43と、処理部44とを備える。記憶部41は、シナリオファイルを記憶する。入力部42は、キーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置を用いて構成される。入力部42は、ユーザの指示をシナリオ実行端末4に入力する際にユーザによって操作される。表示部43は、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置である。
処理部44は、作成指示部441と、情報受信部442と、スケジュール登録部443と、シナリオ受信部444と、シナリオ実行部445と、ログ送信部446と、機能X実行部447とを備える。
作成指示部441は、入力部42によるユーザの入力に従って、部品シナリオにより構成されるユーザシナリオの作成指示をシナリオ管理装置2に指示する。情報受信部442は、シナリオ管理装置2から受信したシナリオ作成画面の画面データを表示部43に表示する。また、情報受信部442は、作成中のユーザシナリオにおける部品シナリオに対する正常性確認結果をシナリオ管理装置2から受信し、表示部43に表示する。また、情報受信部442は、作成中のユーザシナリオに加えて使用される可能性が高い部品シナリオや、作成中のユーザシナリオに含まれる部品組み合わせに類似する部品シナリオセットの情報をシナリオ管理装置2から受信して表示部43に表示する。
スケジュール登録部443は、入力部42によりユーザが入力した指示に基づいて、シナリオの実行スケジュールをシナリオ管理装置2に登録する。シナリオ受信部444は、シナリオ管理装置2からシナリオファイルを受信し、記憶部41に書き込む。シナリオ実行部445は、記憶部41からシナリオファイルを読み出し、読み出したシナリオファイルに記述されたシナリオを実行する。汎用シナリオ形式の部品シナリオを含むシナリオファイルの場合、シナリオ実行部445は、カスタマイズ用ファイルに記述された変数の値を汎用部品シナリオに設定して生成されたシナリオを実行する。ログ送信部446は、実行したシナリオを示すログデータを生成し、シナリオ管理装置2に通知する。
機能X実行部447は、機能Xのアプリを実行する。機能Xは、シナリオの実行に使用され得る機能であり、例えば、表計算、文書編集、ウェブブラウザ、はがき作成、図形描画等、PCに実装される任意の機能とすることができる。同図では、機能A、B、Cそれぞれのアプリを実行する機能X実行部447(X=A、B、C)を、機能A実行部447a、機能B実行部447b、機能C実行部447cと記載している。本実施形態では、機能A実行部447aにより実行されるアプリが、文書編集アプリや表計算アプリなど、テキストデータを編集可能な機能を有するアプリであるとする。機能A実行部447aは、シナリオファイルに含まれるカスタマイズ用ファイルの編集を行うファイル編集部として動作する。
次に、シナリオ管理装置2の記憶部21に記憶される各情報の例を説明する。
図5は、ユーザ管理情報の例を示す図である。ユーザ管理情報は、ユーザのユーザID、ユーザ名、属性、ユーザアカウント及びシナリオ実行端末情報を示すデータを含む。ユーザIDは、ユーザを特定する識別情報である。ユーザ名は、ユーザの名前である。ユーザアカウントは、事業者がユーザに払い出したサービス利用のためのアカウントである。ユーザIDがユーザアカウントを兼ねてもよい。また、1ユーザに複数のユーザアカウントが払い出されてもよい。シナリオ実行端末情報は、ユーザが保有するシナリオ実行端末4の実行端末ID及びアドレスを示す。実行端末IDは、シナリオ実行端末4の識別情報である。実行端末IDがユーザアカウントを兼ねてもよい。アドレスは、例えば、シナリオ実行端末4のIPアドレスを示す。ユーザ管理情報は、さらに、ユーザの住所などの情報を含んでもよい。
図6は、部品シナリオ管理情報の例を示す図である。同図に示す部品シナリオ管理情報は、部品シナリオのシナリオID、部品シナリオ名、部品シナリオファイル、分類及びチェック用情報を示すデータを含む。シナリオIDは、シナリオを一意に特定する識別情報である。部品シナリオファイルは、部品シナリオが記述されたシナリオファイルである。部品シナリオが汎用シナリオ形式である場合、部品シナリオファイルは、汎用部品シナリオを記述したファイルと、カスタマイズ用ファイルとからなる。
図7は、ユーザシナリオ管理情報の例を示す図である。同図に示すユーザシナリオ管理情報は、ユーザIDと、ユーザシナリオのシナリオID、ユーザシナリオ名及びユーザシナリオファイルと、属性とを示すデータを含む。シナリオIDは、シナリオを一意に特定する識別情報である。ユーザIDは、ユーザシナリオを作成したユーザを特定する。属性は、ユーザシナリオを作成したユーザの属性を示す。ユーザシナリオ管理情報は、ユーザシナリオに適用されている部品シナリオセットのセットIDを示す適用セットを含んでもよい。
図8は、サービスシナリオ管理情報の例を示す図である。同図に示すサービスシナリオ管理情報は、サービスシナリオのシナリオID、サービスシナリオ名、サービスシナリオファイル、属性及び説明を示すデータを含む。属性は、ユーザがサービスシナリオを選択する際のメニューのメニュー項目として用いることもできる。説明は、サービスシナリオの機能などの説明である。
図9は、スケジュール情報の例を示す図である。スケジュール情報は、ユーザID、ユーザアカウント、スケジュールID、スケジュール名、実行端末ID、実行シナリオ及び実行タイミングを示すデータを含む。ユーザID及びユーザアカウントは、スケジュールを登録したユーザを示す。スケジュールIDは、スケジュール情報を一意に識別する情報である。実行端末IDは、シナリオを実行するシナリオ実行端末4を特定する。実行シナリオは、実行対象のユーザシナリオ又はサービスシナリオのシナリオIDである。実行タイミングは、シナリオ実行端末4にシナリオを実行させるタイミングを示す。実行タイミングは、即時、あるいは、日にち又は曜日と時刻との組み合わせ等により示される。
図10は、ログデータの例を示す図である。同図に示すログデータは、ユーザID、ユーザアカウント、イベント発生端末、時刻及び発生イベントを示すデータを含む。時刻は、イベントが発生した時刻を示す。イベント発生端末は、イベントが発生したシナリオ実行端末4を示す。イベント発生端末は、実行端末IDにより示される。発生イベントは、シナリオ実行端末4に発生したイベントを示す。発生イベントは、例えば、シナリオ実行端末4が実行したシナリオのシナリオIDと、シナリオの実行が正常終了した(動作OK)か、異常終了した(動作NG)かのシナリオ実行結果などを示す。発生イベントは、シナリオ実行端末4が実行した部品シナリオの情報と、その部品シナリオの実行が正常に行われたか否かの情報を含んでもよい。
図11は、分析情報の例を示す図である。分析情報は、部品組み合わせと、その出現頻度とを示すデータを含む。ユーザの属性別に分析した部品組み合わせ及び出現頻度である場合、分析情報に属性の情報が設定される。部品シナリオの種類別に分析した部品組み合わせ及び出現頻度である場合、分析情報に種類の情報が設定される。ユーザの属性及び部品シナリオの種類の組み合わせ別に分析した部品組み合わせ及び出現頻度である場合、分析情報に属性及び種類の情報が設定される。
図12は、セット情報の例を示す図である。セット情報は、セットID、セット名、部品シナリオセット及び属性を示すデータを含む。セットIDは、部品シナリオセットを特定する識別情報である。セット名は、部品シナリオセットの名称である。セットIDがセット名を兼ねてもよい。部品シナリオセットは、部品シナリオセットに含まれる各部品シナリオのシナリオID及び部品シナリオ名により示される。属性は、部品シナリオセットを利用すると想定されるユーザの属性を示す。シナリオセットの適用によりユーザシナリオの生成や実行に対する料金が決まる場合、セット情報に金額の情報が含まれる。また、セット情報は、部品シナリオセットの説明の情報を含んでもよい。また、セット情報は、部品シナリオセットに含まれる部品シナリオを用いて記述された部品シナリオを含んでもよい。
図13〜図16は、シナリオ管理装置2から受信した情報に基づいてシナリオ実行端末4が表示するシナリオ作成画面の表示例を示す図である。図13に示すシナリオ作成画面500aは、メニュー表示領域501、検索条件入力領域502、検索結果表示領域503及び実行順番指定領域504を有する。メニュー表示領域501は、シナリオ作成に関する機能を実行させるためのメニューを表示する領域である。検索条件入力領域502は、部品シナリオの検索条件を入力する領域である。検索結果表示領域503は、検索条件に合致する部品シナリオのリストを部品シナリオ名により表示する領域である。
実行順番指定領域504は、部品シナリオの実行順番を指定する領域である。実行順番指定領域504には、ユーザが入力部42により選択した部品シナリオのシナリオ名が記述された矩形の部品シンボル510−1、510−2、510−3、510−4が表示されている。部品シンボル間の矢印520−1、520−2は、部品シナリオの実行順を表す。矢印520−1は、矢印の根元の部品シンボル510−1が表す部品シナリオを実行した後に、矢印の先の部品シンボル510−2が表す部品シナリオを実行することを表す。同様に、矢印520−2は、矢印の根元の部品シンボル510−2が表す部品シナリオを実行した後に、矢印の先の部品シンボル510−3が表す部品シナリオを実行することを表す。
図13のシナリオ作成画面500aのメニュー表示領域501においてユーザが入力部42によりチェックのメニューを選択した場合、シナリオ実行端末4は、図14に示すように、シナリオ作成画面500aに加えてチェック実行結果表示ボックス530を表示する。チェック実行結果表示ボックス530は、作成中のユーザシナリオに対してシナリオ管理装置2のシナリオ確認部224が行った正常性確認結果に応じたメッセージを表示する。図14に示すチェック実行結果表示ボックス530は、シナリオ確認部224が、ユーザが選択した部品シナリオのうち実行順番が指定されていない部品シナリオがあると判断した場合のメッセージを表示している。入力部42により所定の操作が行われた場合、情報受信部442は、チェック実行結果表示ボックス530の表示を終了する。
図13のシナリオ作成画面500aにおいて作成中のユーザシナリオに部品シナリオを追加する操作をユーザが入力部42により行った場合、シナリオ実行端末4は、図15に示すシナリオ作成画面500bを表示する。具体的には、ユーザは、マウス等の入力部42により、検索結果表示領域503に表示される部品シナリオの一覧の中から、追加する部品シナリオを選択し、実行順番指定領域504までドラッグする。追加する部品シナリオを追加部品シナリオと記載する。シナリオ実行端末4は、ドラッグの終了位置に、追加部品シナリオの部品シナリオ名を表示する部品シンボル510−5を追加表示する。続いて、ユーザは、入力部42により、部品シンボル510−3の次に部品シンボル510−5を実行する実行順を入力する。シナリオ実行端末4は、部品シンボル510−3から部品シンボル510−5への矢印520−3を追加表示する。
また、シナリオ実行端末4は、追加部品シナリオの部品シンボルの表示が追加されたとき、又は、追加部品シナリオの実行順が指定されたときに、サジェスチョン表示ボックス540を表示する。サジェスチョン表示ボックス540は、シナリオ管理装置2の情報提供部223が、追加部品シナリオと組み合わせて使用される可能性が高いと判断した部品シナリオの情報をサジェスチョンとして表示する。図15では、サジェスチョンの対象を、追加部品シナリオと同じ分類に限定しているが、分類を限定しなくてもよい。
図16は、ユーザシナリオ完成後のシナリオ作成画面500cを示す。シナリオ作成画面500cのメニュー表示領域501において、ユーザが入力部42によりチェックのメニューを選択した場合、シナリオ実行端末4は、シナリオ作成画面500cに加えてチェック実行結果表示ボックス550を表示する。チェック実行結果表示ボックス550は、シナリオ管理装置2のシナリオ確認部224によるユーザシナリオの確認結果と、情報提供部223による部品シナリオセットのサジェスチョンを表示する。
続いて、シナリオ提供システム1の動作について説明する。
図17及び図18は、シナリオ提供システム1のユーザシナリオ生成処理を示すフロー図である。図17において、シナリオ実行端末4の作成指示部441は、シナリオ管理装置2にユーザID、ユーザアカウント及び実行端末IDを設定したユーザシナリオ作成要求を送信する(ステップS101)。作成指示部441は、作成途中のユーザシナリオを読み出す場合、そのユーザシナリオのシナリオIDをユーザシナリオ作成要求にさらに設定する。
シナリオ管理装置2の作成情報受信部221が、ユーザシナリオ作成要求を受信すると(ステップS201)、作成画面送信部222は、シナリオ作成画面をシナリオ実行端末4に送信する(ステップS202)。作成画面送信部222は、ユーザシナリオ作成要求にシナリオIDが設定されていない場合、新規のシナリオ作成画面の画面データをシナリオ実行端末4に送信する。新規のシナリオ作成画面は、検索条件入力領域502、検索結果表示領域503及び実行順番指定領域504に表示がないシナリオ作成画面である。作成画面送信部222は、ユーザシナリオ作成要求にシナリオIDが設定されている場合、ユーザID及びシナリオIDにより特定されるユーザシナリオ管理情報からユーザシナリオファイルを読み出す。作成画面送信部222は、読み出したユーザシナリオファイルが示すユーザシナリオを実行順番指定領域504に表示するシナリオ作成画面の画面データをシナリオ実行端末4に送信する。シナリオ実行端末4の情報受信部442は、受信した画面データに基づいて、シナリオ作成画面を表示部43に表示する(ステップS102)。
ユーザは、シナリオ実行端末4の入力部42によりユーザシナリオ作成に関する操作を行う(ステップS103)。例えば、まずユーザは、部品シナリオを検索するための検索条件を入力部42により入力する。作成指示部441は、ステップS103において、シナリオ作成画面の検索条件入力領域502に検索条件が入力されたか否かを判定する(ステップS104)。作成指示部441は、検索条件が入力さていないと判定した場合(ステップS104:NO)、ステップS107の処理を行う。一方、作成指示部441は、検索条件が入力されたと判定した場合(ステップS104:YES)、入力された検索条件をシナリオ管理装置2に送信する(ステップS105)。
シナリオ管理装置2の作成情報受信部221は、シナリオ実行端末4から検索条件を受信したか否かを判定する(ステップS203)。作成情報受信部221は、検索条件を受信していないと判定した場合(ステップS203:NO)、ステップS206の処理を行う。一方、作成情報受信部221が検索条件を受信したと判定した場合(ステップS203:YES)、作成画面送信部222は、ステップS204の処理を行う。作成画面送信部222は、受信した検索条件により部品シナリオ管理情報を検索し、検索により得られたシナリオ管理情報からシナリオID及び部品シナリオ名を読み出す(ステップS204)。また、作成画面送信部222は、受信した検索条件によりセット情報を検索し、検索により得られたセット情報から部品シナリオセットを構成する部品シナリオのシナリオID及び部品シナリオ名を読み出してもよい。
作成画面送信部222は、シナリオ実行端末4に現在表示しているシナリオ作成画面に対し、読み出した部品シナリオ名の一覧を検索結果表示領域503に表示させるよう変更を行ったシナリオ作成画面の画面データを生成し、シナリオ実行端末4に送信する(ステップS205)。作成画面送信部222は、部品シナリオセットを構成する部品シナリオについては、シナリオ名と対応付けてセット情報から読み出したセット名や金額の情報を付加して表示させるようにしてもよい。作成画面送信部222は、各部品シナリオ名の表示に、部品シナリオのシナリオIDを紐づける。シナリオ生成部220は、ステップS203の処理に戻る。シナリオ実行端末4の情報受信部442は、シナリオ管理装置2から受信した画面データに基づいて、シナリオ作成画面を表示部43に表示すると(ステップS106)、ステップS103に戻る。なお、シナリオ管理装置2の作成画面送信部222は、変更後の検索結果表示領域503の表示データのみをシナリオ実行端末4に送信し、表示させてもよい。
ステップS103において、ユーザが入力部42により部品シナリオの追加を入力したとする。具体的には、ユーザは、マウスなどの入力部42によりシナリオ作成画面の検索結果表示領域503に表示されている部品シナリオ名のいずれかを選択し、ドラッグすることにより実行順番指定領域504において表示場所を指定する。作成指示部441は、ステップS104においてNOと判定し、部品シナリオの追加が入力されたか否かを判定する(ステップS107)。作成指示部441は、ステップS107において部品シナリオの追加が入力されていないと判定した場合、図18に示すステップS121の処理を行う。一方、作成指示部441は、ステップS107において部品シナリオの追加が入力されたと判定した場合(ステップS107:YES)、ステップS108の処理を行う。すなわち、作成指示部441は、選択された部品シナリオ名に紐づけられているシナリオIDと、指定された表示場所とを示す部品シナリオ追加情報をシナリオ管理装置2に送信する(ステップS108)。以下では、選択された部品シナリオ名に紐づけられているシナリオIDを追加シナリオIDと記載する。追加シナリオIDにより特定される部品シナリオは、追加部品シナリオである。
シナリオ管理装置2の作成情報受信部221は、ステップS203においてNOと判定し、シナリオ実行端末4から部品シナリオ追加情報を受信したか否かを判定する(ステップS206)。作成情報受信部221は、部品シナリオ追加情報を受信していないと判定した場合(ステップS206:NO)、後述する図18のステップS221の処理を行う。一方、作成情報受信部221が部品シナリオ追加情報を受信したと判定した場合(ステップS206:YES)、作成画面送信部222は、ステップS207の処理を行う。すなわち、作成画面送信部222は、シナリオ実行端末4に現在表示しているシナリオ作成画面に対し、実行順番指定領域504に追加部品シナリオの部品シンボルを追加表示するよう変更を行ったシナリオ作成画面の画面データを生成する。追加表示する部品シンボルは、部品シナリオ追加情報が示す追加シナリオIDに紐づけられたシナリオ名を表示し、部品シナリオ追加情報が示す表示場所に表示される。追加表示する部品シンボルには、追加シナリオIDが紐づけられる。作成画面送信部222は、生成したシナリオ作成画面の画面データをシナリオ実行端末4に送信する(ステップS207)。
続いて、情報提供部223は、サジェスチョンを行う部品シナリオを選択する。情報提供部223は、作成中のユーザシナリオから、追加部品シナリオを含む部品組み合わせを抽出する。情報提供部223は、検索対象の分析情報から、追加部品シナリオ又は抽出した部品組み合わせを含んだ部品組み合わせのうち、出現頻度が閾値よりも多い部品組み合わせを読み出す。検索対象の分析情報は、全属性及び全種類の分析情報、ユーザの属性が設定された分析情報、追加部品シナリオの種類が設定された分析情報、ユーザの属性及び追加部品シナリオの種類が設定された分析情報のうち一以上である。いずれを検索対象とするかは、任意に設定可能である。また閾値は、部品組み合わせに含まれる部品シナリオの数に応じた値とする。なお、情報提供部223は、ユーザの属性の情報を、ユーザIDにより特定されるユーザ管理情報から読み出し、追加部品シナリオの種類を、追加シナリオIDにより特定される部品シナリオ管理情報から読み出す。
情報提供部223は、読み出した部品組み合わせから、作成中のユーザシナリオに含まれる部品シナリオを除いた部品シナリオをサジェスチョン対象とする。情報提供部223は、サジェスチョン対象の部品シナリオを、読み出した部品組み合わせに含まれる部品シナリオのうち、出現順が追加部品シナリオよりも後の部品シナリオに限定してもよい。情報提供部223は、サジェスチョン対象の部品シナリオのシナリオ名を表示するサジェスチョン表示ボックスの表示データを生成する。情報提供部223は、サジェスチョン表示ボックスの表示データをシナリオ実行端末4に送信する(ステップS208)。シナリオ生成部220は、図17のステップS203の処理に戻る。
シナリオ実行端末4の情報受信部442は、シナリオ管理装置2から受信した画面データに基づいて、シナリオ作成画面を表示部43に表示する(ステップS109)。さらに、情報受信部442は、シナリオ管理装置2から受信した表示データに基づいてサジェスチョン表示ボックスを表示部43に表示する。シナリオ実行端末4は、ステップS103に戻る。なお、シナリオ管理装置2の作成画面送信部222は、変更後の実行順番指定領域504の表示データのみをシナリオ実行端末4に送信し、表示させてもよい。
ステップS103において、ユーザが入力部42により2つの部品シナリオ間の実行順を入力したとする。具体的には、ユーザは、入力部42により実行順番指定領域504において、部品シンボルを選択し、選択された部品シンボルの後の実行順の部品シンボルを選択する。作成指示部441は、ステップS104及びステップS107においてNOと判定する。作成指示部441は、図18のステップS121の処理を行い、2つの部品シナリオ間の実行順が入力されたか否かを判定する(ステップS121)。作成指示部441は、実行順が入力さていないと判定した場合(ステップS121:NO)、ステップS124の処理を行う。作成指示部441は、実行順が入力されたと判定した場合(ステップS121:YES)、実行順指定情報をシナリオ管理装置2に送信する(ステップS122)。ここでは、実行順が先の部品シンボルに紐づけられたシナリオIDを第一シナリオID、実行順が後の部品シンボルに紐づけられたシナリオIDを第二シナリオIDと記載する。作成指示部441は、第一シナリオID及び第二シナリオIDを実行順指定情報に設定し、シナリオ管理装置2に送信する。
シナリオ管理装置2の作成情報受信部221は、図17のステップS203及びステップS206においてNOと判定する。作成情報受信部221は、図18のステップS221の処理を行い、シナリオ実行端末4から実行順指定情報を受信したか否かを判定する(ステップS221)。作成情報受信部221は、実行順指定情報を受信していないと判定した場合(ステップS221:NO)、ステップS223の処理を行う。一方、作成情報受信部221が、実行順指定情報を受信したと判定した場合(ステップS221:YES)、作成画面送信部222はステップS222の処理を行う。すなわち、作成画面送信部222は、シナリオ実行端末4に現在表示しているシナリオ作成画面に対し、第一シナリオIDに紐づけられた部品シンボルから第二シナリオIDに紐づけられた部品シンボルへの矢印を追加表示するよう変更を行ったシナリオ作成画面の画面データを生成する。追加表示する矢印には、第一シナリオID及び第二シナリオIDが紐づけられる。作成画面送信部222は、シナリオ作成画面の画面データをシナリオ実行端末4に送信する(ステップS222)。シナリオ生成部220は、図17のステップS203の処理に戻る。シナリオ実行端末4の情報受信部442は、シナリオ管理装置2から受信した画面データに基づいて、シナリオ作成画面を表示部43に表示すると(ステップS123)、図17のステップS103に戻る。
ステップS103において、ユーザが入力部42によりメニュー表示領域501のチェックの実行を入力したとする。作成指示部441は、ステップS104、ステップS107、及び、図18のステップS121においてNOと判定する。作成指示部441は、図18のステップS124の処理を行い、チェック実行が入力されたか否かを判定する(ステップS124)。作成指示部441は、チェック実行が入力されていないと判定した場合(ステップS124:NO)、ステップS127の処理を行う。一方、作成指示部441は、チェック実行が入力されたと判定した場合(ステップS124:YES)、チェック要求をシナリオ管理装置2に送信する(ステップS125)。
シナリオ管理装置2の作成情報受信部221は、図17のステップS203及びステップS206、ならびに、図18のステップS221においてNOと判定する。作成情報受信部221は、図18のステップS223の処理を行い、シナリオ実行端末4からチェック要求を受信したか否かを判定する(ステップS223)。作成情報受信部221は、チェック要求を受信していないと判定した場合(ステップS223:NO)、ステップS229の処理を行う。一方、作成情報受信部221がチェック要求を受信したと判定した場合(ステップS223:YES)、シナリオ確認部224は、ステップS224の処理を行う。すなわち、シナリオ確認部224は、実行順番指定領域504に表示させている各部品シンボルに紐づけられたシナリオIDと、各矢印に紐づけられている第一シナリオID及び第二シナリオIDとに基づいて、作成中のユーザシナリオにおける部品シナリオとその実行順番を特定し、正常性確認を行う(ステップS224)。例えば、シナリオ確認部224は、部品シナリオの重複や、実行順序が設定されていない部品シナリオを検出した場合、エラーと判断する。また、シナリオ確認部224は、各部品シナリオの部品シナリオ管理情報からチェック用情報を読み出し、読み出したチェック用情報を用いてエラーの有無を判断する。例えば、シナリオ確認部224は、以下の場合にエラーと判断する。
(1)あるアプリに対する操作を行う部品シナリオの前に、そのアプリを起動する部品シナリオがない。
(2)部品シナリオの処理に用いられる変数に、その変数の値を設定する処理を行う部品シナリオがない。
(3)部品シナリオの処理に用いられる変数と、その変数に値を設定する処理を行う部品シナリオにおいて、データ形式が異なる。
なお、上記は一例であり、シナリオ確認部224は、任意の整合性チェックを行うことができる。シナリオ確認部224は、正常性確認がエラーである場合(ステップS225:NO)、エラーの原因を表示するチェック実行結果表示ボックスの表示データを生成し、シナリオ実行端末4に送信する(ステップS226)。シナリオ生成部220は、図17のステップS203の処理に戻る。シナリオ実行端末4の情報受信部442は、シナリオ管理装置2から受信した表示データに基づいて、チェック実行結果表示ボックスを表示部43に表示すると(ステップS126)、図17のステップS103に戻る。
一方、シナリオ確認部224は、正常性確認が正常である場合(ステップS225:YES)、情報提供部223にサジェスチョンを指示する。情報提供部223は、部品シナリオセットのサジェスチョンを生成する(ステップS227)。情報提供部223は、ユーザの属性が設定されているセット情報又は全セット情報から部品シナリオセット及びセット名を読み出す。情報提供部223は、読み出した部品シナリオセットのうち、部品シナリオセットに含まれる部品シナリオがユーザシナリオに所定割合以上使用されているものをサジェスチョンの対象とする。情報提供部223は、正常性チェックが正常である旨と、サジェスチョン対象の部品シナリオセットのセット名とを表示するチェック実行結果表示ボックスの表示データを生成し、シナリオ実行端末4に送信する(ステップS228)。なお、サジェスチョン対象が複数ある場合、ユーザシナリオに使用されている割合が多いほどサジェスチョンの順位を高くしてもよく、部品シナリオセットに含まれる部品シナリオの数が少ないほどサジェスチョンの順位を高くしてもよい。情報提供部223は、チェック実行結果表示ボックスに、サジェスチョンの順位に応じて並べたセット名を表示させる。シナリオ生成部220は、図17のステップS203の処理に戻る。シナリオ実行端末4の情報受信部442は、シナリオ管理装置2から受信した表示データに基づいて、チェック実行結果表示ボックスを表示部43に表示すると(ステップS126)、図17のステップS103に戻る。
なお、シナリオ管理装置2の情報提供部223は、サジェスチョン対象の部品シナリオセットの表示要求をシナリオ実行端末4から受信した場合、部品シナリオセットの詳細情報を表示する表示データを生成してシナリオ実行端末4に送信し、表示させる。部品シナリオセットの詳細情報は、部品シナリオセットに含まれる部品シナリオのシナリオ名や、部品シナリオセットに含まれる部品シナリオを用いて記述された部品シナリオであり、セット情報から読み出される。情報提供部223は、シナリオ実行端末4から部品シナリオセットの適用を受信した場合、適用が指示された部品シナリオセットの情報を記憶する。
ステップS103において、ユーザが入力部42によりユーザシナリオの作成終了を入力したとする。作成指示部441は、ステップS104及びステップS107、ならびに、図18のステップS121及びステップS124においてNOと判定する。作成指示部441は、ユーザシナリオの作成終了が入力されたか否かを判定する(ステップS127)。作成指示部441は、ユーザシナリオの作成終了が入力さていないと判定した場合(ステップS127:NO)、図17のステップS103の処理に戻る。作成指示部441は、ユーザシナリオの作成終了が入力されたと判定した場合(ステップS127:YES)、作成終了指示をシナリオ管理装置2に送信する(ステップS128)。作成終了指示には、入力部42により入力されたユーザシナリオ名が含まれてもよい。
シナリオ管理装置2の作成情報受信部221は、図17のステップS203及びステップS206、ならびに、図18のステップS221及びステップS223においてNOと判定する。作成情報受信部221は、シナリオ実行端末4からユーザシナリオの作成終了を受信したか否かを判定する(ステップS229)。作成情報受信部221がユーザシナリオの作成終了を受信していないと判定した場合(ステップS229:NO)、シナリオ生成部220は、図17のステップS203の処理に戻る。一方、作成情報受信部221がユーザシナリオの作成終了を受信したと判定した場合(ステップS229:YES)、シナリオ登録部225は、ユーザシナリオ管理情報を生成して記憶部21に登録する(ステップS230)。
具体的には、シナリオ登録部225は、実行順番指定領域504に表示させている各部品シンボルに紐づけられたシナリオIDと、各矢印に紐づけられている第一シナリオID及び第二シナリオIDとに基づいて、部品シナリオとその実行順番を特定する。シナリオ登録部225は、各部品シナリオの部品シナリオファイルを部品シナリオ管理情報から読み出し、部品シナリオの実行順番に従って部品シナリオファイルを実行させるユーザシナリオファイルを生成する。シナリオ登録部225は、ユーザIDと、シナリオIDと、ユーザシナリオファイルと、属性と、作成終了指示から読み出したユーザシナリオ名とを設定したユーザシナリオ管理情報を記憶部21に書き込む。なお、シナリオ登録部225がシナリオIDを割り当ててもよく、シナリオ実行端末4からユーザが入力したシナリオIDを受信してもよい。また、シナリオ登録部225は、属性をユーザ管理情報から読み出す。また、シナリオセットの適用を受信済みの場合、適用が指示されたシナリオセットのセットIDをユーザシナリオ管理情報に設定する。シナリオ登録部225は、ユーザシナリオ管理情報を記憶部21に書き込むと、登録終了をシナリオ実行端末4に通知し、表示させる。
なお、シナリオ管理装置2は、ステップS208の処理を、ステップS222の処理の後に行ってもよい。この場合、シナリオ管理装置2は、第二シナリオIDに紐づけられた部品シナリオを追加部品シナリオとしてステップS208の処理を行う。
図19は、シナリオ提供システム1のシナリオ実行スケジュール登録処理を示すフロー図である。シナリオ実行端末4のスケジュール登録部443は、ユーザID、ユーザアカウント及び実行端末IDを設定したシナリオ情報要求をシナリオ管理装置2に送信する(ステップS301)。シナリオ情報要求には、入力部42により入力されたシナリオ検索条件が含まれてもよい。シナリオ検索条件は、ユーザシナリオかサービスシナリオかのシナリオ種別や、シナリオの属性などを用いることができる。
シナリオ管理装置2の情報提供部223は、受信したシナリオ情報要求から読み出したユーザIDが設定されているユーザシナリオ管理情報を特定する。情報提供部223は、特定したユーザシナリオ管理情報それぞれからユーザシナリオ名及びシナリオIDを読み出す(ステップS401)。シナリオ情報要求にシナリオ検索条件が含まれる場合、情報提供部223は、ユーザIDが設定されたユーザシナリオ管理情報と、サービスシナリオ管理情報とのうち、シナリオ検索条件に合致するユーザシナリオ管理情報及びサービスシナリオ管理情報を特定する。情報提供部223は、特定されたユーザシナリオ管理情報からユーザシナリオ名及びシナリオIDを、特定されたサービスシナリオ管理情報からサービスシナリオ名及びシナリオIDを読み出す。情報提供部223は、読み出したユーザシナリオ名及びサービスシナリオ名の一覧を表示するシナリオ選択画面の画面データを生成し、シナリオ実行端末4に送信する(ステップS402)。この画面データにおいて、ユーザシナリオ名及びサービスシナリオ名にはシナリオIDが紐づけられている。
シナリオ実行端末4のスケジュール登録部443は、シナリオ管理装置2から受信した画面データを用いて表示部43にシナリオ選択画面を表示する(ステップS302)。スケジュール登録部443は、ユーザが入力部42により選択したユーザシナリオ名又はサービスシナリオ名の情報を受ける(ステップS303)。スケジュール登録部443は、選択されたユーザシナリオ名又はサービスシナリオ名に紐づけられているシナリオIDをシナリオ選択画面の画面データから取得する。
続いて、スケジュール登録部443は、ユーザが入力部42により入力したスケジュール名及び実行タイミングの情報を受ける(ステップS304)。スケジュール登録部443は、ユーザID、ユーザアカウント及び実行端末IDと、画面情報から取得したシナリオIDと、ユーザが入力したスケジュール名及び実行タイミングとを設定したスケジュール登録要求をシナリオ管理装置2に送信する(ステップS305)。
シナリオ管理装置2のスケジュール管理部231は、シナリオ実行端末4からスケジュール登録要求を受信すると、スケジュール情報を記憶部21に書き込む(ステップS403)。スケジュール管理部231は、このスケジュール情報に、スケジュール登録要求に設定されているユーザID、ユーザアカウント、実行端末ID、シナリオID、スケジュール名及び実行タイミングと、割り当てたスケジュールIDとを設定する。
図20は、シナリオ提供システム1のシナリオ実行処理を示すフロー図である。シナリオ管理装置2のスケジュール管理部231は、スケジュール情報に設定されている実行タイミングであることを検出する(ステップS501)。シナリオ送信部232は、スケジュール情報に設定されているシナリオIDによりユーザシナリオ管理情報又はサービスシナリオ管理情報を特定する。シナリオ送信部232は、シナリオ管理装置2に送信するシナリオファイルとして、特定したユーザシナリオ管理情報からユーザシナリオファイルを、又は、特定したサービスシナリオ管理情報からサービスシナリオファイルを読み出す。シナリオ送信部232は、読み出したシナリオファイルを、スケジュール情報に設定されているユーザID、ユーザアカウント及び実行端末IDに基づいてユーザ管理情報から読み出したIPアドレスのシナリオ実行端末4に送信する(ステップS502)。
シナリオ実行端末4のシナリオ受信部444は、シナリオ管理装置2からシナリオファイルを受信すると、受信したシナリオファイルを記憶部41に書き込む(ステップS601)。シナリオファイルにカスタマイズ用ファイルが含まれる場合、機能A実行部447aは、カスタマイズ用ファイルを記憶部41から読み出して表示する。機能A実行部447aは、表示されたカスタマイズ用ファイルに、入力部42を用いてユーザが入力した変数の値を書き込み、カスタマイズ用ファイルを更新する。
シナリオ実行部445は、記憶部41に記憶されているシナリオファイルを用いてシナリオを実行する(ステップS602)。ログ送信部446は、シナリオを実行すると、ユーザID、ユーザアカウント、実行端末ID、時刻及び発生イベントを設定したログデータを生成して、シナリオ管理装置2に送信する(ステップS603)。ログ送信部446は、ログデータの発生イベントに、シナリオ実行端末4が実行したシナリオのシナリオIDを設定する。ログ送信部446は、発生イベントに、シナリオ実行端末4が実行した部品シナリオのシナリオIDを設定してもよい。なお、ログ送信部446におけるログデータの生成及び送信は、シナリオ内の処理として記述されてもよい。
シナリオ管理装置2のログ受信部233は、シナリオ実行端末4から受信したログデータを記憶部21に書き込む(ステップS503)。課金部234は、ログデータが示す発生イベントに基づいて料金を決定する。課金部234は、例えば、ユーザシナリオファイルに用いられている部品シナリオの数や種類、シナリオセットの利用などに基づいて料金を決定する。課金部234は、決定した料金をユーザに課金するための課金データを生成して記憶部21に書き込む(ステップS504)。
シナリオ管理装置2の分析部235は、定期的に、分析指示が入力された場合に、又は、ユーザシナリオの実行を示すログデータが記憶部21に所定数書き込まれる度に、分析情報を生成し、記憶部21に書き込む。分析部235は、ログデータの発生イベントから、シナリオ実行端末4において実行されたシナリオIDを読み出し、重複をなくす。分析部235は、読み出したシナリオIDがユーザシナリオを示す場合、そのユーザシナリオがシナリオ実行端末4により実行されたと判断する。なお、分析部235は、シナリオ送信部232がシナリオ実行端末4に送信したユーザシナリオ、又は、スケジュール情報の実行シナリオに設定されたユーザシナリオを、シナリオ実行端末4により実行されたユーザシナリオとみなし、分析対象としてもよい。分析部235は、いずれかのシナリオ実行端末4により実行された各ユーザシナリオに含まれる部品組み合わせを抽出し、部品組み合わせの出現頻度を算出する。分析部235は、部品組み合わせとして抽出しない部品シナリオの組み合わせを予め登録しておき、それら部品シナリオが含まれる部品組み合わせについてはユーザシナリオから抽出しないようにしてもよい。
分析部235は、分析結果に基づいてセット情報を生成してもよい。具体的には、分析部235は、属性毎に、所定数以上の部品シナリオからなる部品組み合わせのうち、出現頻度が閾値以上の部品組み合わせを抽出し、部品シナリオセットとする。閾値は、部品組み合わせに含まれる部品シナリオの数に応じた値とする。分析部235は、部品シナリオセットにセットIDを付与し、セットID、部品シナリオセット及び属性を設定したセット情報を生成し、記憶部21に書き込む。この場合、部品シナリオセットは、部品シナリオの実行順の情報をさらに含むため、部品シナリオセットのサジェスチョンを行う場合は、ユーザシナリオにおける部品シナリオの実行順との合致も考慮する。そこで、ステップS227において、情報提供部223は、ユーザの属性が設定されているセット情報から読み出した部品シナリオセットのうち、部品シナリオセットに含まれる部品シナリオがユーザシナリオに所定割合以上使用されているものを抽出する。部品シナリオセットに含まれる部品シナリオのうち、ユーザシナリオに用いられている部品シナリオを共通部品シナリオと記載する。情報提供部223は、抽出した部品シナリオセットに含まれる共通部品シナリオの実行順と、ユーザシナリオにおける共通部品シナリオの実行順とが所定割合以上同じである場合、その部品シナリオセットをサジェスチョンの対象とする。
また、事業者は、シナリオ管理装置2の記憶部21に記憶される分析情報を参照し、ユーザ全体で、特定の業種で、特定の種類のアプリで、特定の業種及び特定の種類のアプリの組み合わせで出現頻度が高い部品組み合わせを得る。事業者は、この高い出現頻度の部品組み合わせを用いたサービスシナリオを生成し、記憶部21に生成したサービスシナリオのサービスシナリオ管理情報を登録する。また、事業者は、この高い出現頻度の部品組み合わせを用いた部品シナリオを生成し、記憶部21に生成した部品シナリオの部品シナリオ管理情報を登録する。これにより、事業者は、多くのユーザに使用されるサービスシナリオや部品シナリオを提供することができる。
また、事業者は、出現頻度が高い部品組み合わせを含む部品シナリオセットのセット情報を生成し、記憶部21に登録してもよい。シナリオ管理装置2の情報提供部223は、シナリオの作成前又は作成中に、ユーザの属性が設定されているセット情報から部品シナリオセットの情報を読み出し、シナリオ実行端末4に表示する。部品シナリオセットの情報は、部品シナリオセットを構成する部品シナリオや、それら部品シナリオを用いた部品シナリオの例などである。ユーザは、シナリオ実行端末4に表示される部品シナリオセットの情報を参照して、ユーザシナリオを生成する。これにより、ユーザが部品シナリオを選んで組み立てる作業を軽減することができる。
上記実施形態においては、シナリオ管理装置2の分析部235が、いずれかのシナリオ実行端末4において実行されたユーザシナリオを分析対象として、部品組み合わせの出現頻度を分析する場合を例に説明したが、分析部235は、以下の分析を行ってもよい。
分析部235は、いずれかのシナリオ実行端末4において実行されたユーザシナリオ群についての分析単位を、(A1)部品シナリオ、(A2)部品組み合わせ、(A3)実行順序を考慮しない部品組み合わせ、(A4)ユーザシナリオとし、各分析対象軸について各分析項目の値を得る多変量解析を行う。(A3)実行順序を考慮しない部品組み合わせとは、上述した実施形態と同様に部品組み合わせを抽出し、部品組み合わせを構成する部品シナリオが同じ場合には、ユーザシナリオにおいてそれらの部品シナリオが実行される順序にかかわらず、同じ部品組み合わせとみなして重複をなくしたものである。分析部235は、分析対象のユーザシナリオそれぞれから、(A1)部品シナリオ、(A2)部品組み合わせ、(A3)実行順序を考慮しない部品シナリオを分析単位として抽出し、抽出した分析単位ごとに多変量解析を行う。また、(A4)ユーザシナリオを分析単位とする場合、分析部235は、分析対象のユーザシナリオ毎に多変量解析を行う。多変量解析の分析対象軸及び分析対象項目の例を以下に示す。分析部235は、分析単位、分析対象軸及び分析対象項目の組み合わせを任意に選択可能である。
分析対象軸は、(B1)部品シナリオ、(B2)部品組み合わせ、(B3)シナリオ属性、(B4)ユーザ、(B5)ユーザの属性である。なお、分析単位が(A1)部品シナリオであり、分析対象軸が(B2)部品組み合わせである場合、分析単位となる部品シナリオが含まれる部品組み合わせ毎に各分析項目の値を得る。(B3)シナリオ属性とは、ユーザシナリオを分類する属性であり、ユーザがシナリオ実行端末4に入力した情報である。シナリオ登録部225は、ユーザが入力したシナリオ属性の情報をシナリオ実行端末4から受信し、ユーザシナリオ管理情報に設定しておく。分析部235は、シナリオ属性の情報をユーザシナリオ管理情報から読み出す。分析部235は、(B5)ユーザの属性の情報を、ユーザ管理情報から読み出す。
分析項目は、(C1)実行頻度関連項目、(C2)提案採否関連項目、(C3)実行時間関連項目、(C4)その他の要素の項目などである。
(C1)実行頻度関連項目には、(C1−1)採用頻度、(C1−2)ユーザシナリオに占める工程数割合、(C1−3)成功率、(C1−4)エラー率がある。(C1−1)採用頻度とは、分析単位に属する分析対象のユーザシナリオ群のうち分析対象軸のものが使用されているユーザシナリオの割合又は数である。(C1−2)ユーザシナリオに占める工程数割合とは、分析単位に属する分析対象のユーザシナリオを構成する全部品シナリオのうち、分析対象軸のものが占める割合である。(C1−3)成功率とは、分析単位に属する分析対象のユーザシナリオ群において分析対象軸のものが正常に実行された割合を示し、ログデータが示す情報に基づいて得られる。(C1−4)失敗率とは、分析単位に属する分析対象のユーザシナリオ群において分析対象軸のものが正常に実行されなかった割合を示し、ログデータが示す情報に基づいて得られる。
(C2)提案採否関連項目には、(C2−1)他ユーザへの提案頻度、(C2−2)他ユーザの採用頻度、(C2−3)同一ユーザの採用頻度がある。(C2−1)他ユーザへの提案頻度とは、分析対象軸のものが情報提供部223により他のユーザへのサジェスチョンとして採用された頻度である。(C2−2)他ユーザの採用頻度は、分析対象軸のものが他のユーザへサジェスチョンされた場合に、採用された頻度である。(C2−3)同一ユーザの利用頻度は、分析対象軸のものが同一ユーザへサジェスチョンされた場合に、採用された頻度である。
(C3)実行時間関連項目には、(C3−1)実行日時、(C3−2)日時別の実行頻度、(C3−3)実行される時間間隔などがある。これらは、ログデータから得られる。
(C4)その他の要素には、(C4−1)部品シナリオの意味性、(C4−2)ユーザシナリオの目的性、(C4−3)部品シナリオの目的性、(C4−4)部品組み合わせの目的性、(C4−5)ユーザの地域、(C4−6)ユーザの業界、(C4−7)特殊性・独自性、(C4−8)順番、関係性、相互依存性である。
(C4−1)部品シナリオの意味性の情報は、部品シナリオ管理情報に予め設定される。分析部235は、部品シナリオ管理情報から部品シナリオの意味性の情報を読み出す。
(C4−2)シナリオの目的性は、ユーザシナリオを作成したユーザがシナリオ実行端末4に入力した情報である。シナリオ登録部225は、ユーザが入力したシナリオの目的性の情報をシナリオ実行端末4から受信し、ユーザシナリオ管理情報に設定しておく。分析部235は、ユーザシナリオの目的性の情報をユーザシナリオ管理情報から読み出す。シナリオ登録部225は、ユーザシナリオの目的性に代えて、ユーザシナリオの説明の情報を受信し、ユーザシナリオ管理情報に設定してもよい。分析部235は、設定されている説明から、予め設定された目的性を表すキーワードに合致した単語を抽出する。事業者がユーザシナリオを解析して判断したユーザシナリオの目的性の情報を、ユーザシナリオ管理情報に書き込んでもよい。
(C4−3)部品シナリオの目的性及び(C4−4)部品組み合わせの目的性は、ユーザシナリオを作成したユーザがシナリオ実行端末4に入力した情報である。シナリオ登録部225は、ユーザが指定した部品シナリオ又は部品組み合わせと、指定された部品シナリオ又は部品組み合わせの説明の情報をシナリオ実行端末4から受信し、ユーザシナリオファイルに書き込む。分析部235は、部品シナリオの説明の情報及び部品組み合わせの説明の情報をユーザシナリオファイルから読み出し、読み出した説明の情報から、予め設定された目的性を表すキーワードに合致した単語を抽出する。事業者がユーザシナリオを解析して判断した部品シナリオの目的性又は部品組み合わせの目的性の情報を、ユーザシナリオファイルに書き込んでもよい。
分析部235は、(C4−4)ユーザの地域、及び、(C4−5)ユーザの業界を、ユーザ管理情報に予め設定された情報から読み出す。(C4−6)特殊性・独自性とは、分析単位及び分析対象軸のものが特定の状況で使用されることを表す情報である。例えば、分析部235は、特定の状況と、その特定の状況に合致する条件とを予め記憶しておき、その条件と合致するか否かにより特定の状況で使用されるか否かを判断する。条件は、例えば、ユーザがユーザシナリオ又はユーザシナリオに含まれる部品組み合わせについて入力した情報や、ユーザ管理情報から得られるユーザの情報や、ログデータから得られる任意の情報等により表される。例えば、分析部235は、特定の業界や部署、月初又は月末などの特定の期間、特定の曜日、特定の時間帯、あるいは、それらを任意の組み合わせた状況に使用される場合、特殊性・独自性があると判断する。(C4−7)順番、関係性、相互依存性とは、2以上の部品シナリオがユーザシナリオに共起する頻度やそれらの出現順序、それらの間に出現する他の部品シナリオの数等により表される。
分析部235は、上記の多変量解析を用いた分析結果を記憶部21に書き込む。事業者は、この分析結果を利用することによりユーザのニーズを把握し、ニーズに合ったサービスシナリオや部品シナリオセットを作成してユーザに提供することができる。
情報提供部223は、上記の多変量解析による分析結果を用いて、ステップS208においてサジェスチョンする部品シナリオや、ステップS227においてサジェスチョンする部品シナリオセットを選択する。この選択には、例えば、機械学習などのAI(人工知能)を用いることができる。
例えば、ステップS208においては、ユーザシナリオのi番目(iは1以上の整数)までに使用されている各部品シナリオの種類と、当該ユーザシナリオについて上述した多変量解析を用いて得られた分析結果の少なくとも一部とを入力とし、(i+1)番目以降に各種類の部品シナリオが使用される確率を出力とするAIの予測モデルを用いる。情報提供部223は、分析対象のユーザシナリオを用いてこの予測モデルを学習しておく。ステップS208において、情報提供部223は、学習した予測モデルに、作成中のユーザシナリオに使用されている各部品シナリオの種類と、この作成中のユーザシナリオについて多変量解析を用いて得られた分析結果とを入力することにより、高い確率で使用されることが予測される部品シナリオの情報を得る。
また、例えば、ステップS227においては、ユーザシナリオに使用されている部品シナリオの種類と、当該ユーザシナリオについて上述した多変量解析を用いて得られた分析結果の少なくとも一部とを入力とし、各部品シナリオセットとの関連度を出力とするAIの関連モデルを用いる。関連度は、ユーザシナリオと部品シナリオセットとの関連の高さを定量的に表す値である。情報提供部223は、分析対象のユーザシナリオについて得られた入力データ、及び、当該ユーザシナリオと各部品シナリオセットとの関連度を対応付けた学習データを用いて、関連モデルを学習しておく。学習データは、分析結果を用いて事業者が生成してもよく、分析部235が任意の方法により生成してもよい。ステップS227において、情報提供部223は、学習した関連モデルに、作成されたユーザシナリオに使用されている各部品シナリオの種類と、この作成中のユーザシナリオについて多変量解析を用いて得られた分析結果とを入力することにより、各部品シナリオセットの関連度を得る。情報提供部223は、関連度に基づいてサジェスチョン対象の部品シナリオセットを選択する。
シナリオ管理装置2が提供可能なサービスシナリオには限りがあるため、個々のユーザのニーズに合った処理だけを含むサービスシナリオを提供することは難しい。そこで、上述した実施形態のように、シナリオ管理装置2は、比較的小さな機能を実現するためにシナリオ実行端末4に実行させる処理を記述した部品シナリオをユーザに提供する。ユーザは、シナリオ実行端末4を用いて部品シナリオを選択し、選択した部品シナリオの順番を指定する。これにより、ユーザは、部品シナリオにより構成される1つの大きなシナリオであるユーザシナリオを作成することができる。
また、シナリオ管理装置2は、ユーザがユーザシナリオを作成する際に、過去に他のユーザにより実行又は生成されたユーザシナリオの情報を分析して、適切な部品シナリオ又は部品シナリオの組み合わせを提案する。さらに、シナリオ管理装置2は、ユーザシナリオの正常性のチェック等を行う。よって、ユーザは、当該ユーザにおいて必要な機能を含み、不要な機能を含まないユーザシナリオを簡易かつ柔軟に生成し、シナリオ実行端末4に実行させるよう支援することができる。
上記においては、ユーザは、シナリオ実行端末4を用いてユーザシナリオを生成しているが、シナリオ実行端末4とは異なるPCなどのユーザ端末(情報処理装置)を用いてユーザシナリオを作成してもよい。この場合、ユーザ端末は、入力部42、表示部43、作成指示部441及び情報受信部442を備え、さらにスケジュール登録部443を備えてもよい。また、シナリオ実行端末4又はユーザ端末は、シナリオ管理装置2のシナリオ生成部220の一部の機能を有してもよい。例えば、シナリオ実行端末4又はユーザ端末が、ユーザ操作に従ってユーザシナリオを生成し、シナリオ管理装置2に生成したユーザシナリオを送信してもよい。
上述した実施形態におけるシナリオ管理装置2及びシナリオ実行端末4の機能をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
以上説明した実施形態によれば、シナリオ提供システムは、シナリオ管理装置と複数のユーザそれぞれのシナリオ実行端末とを有する。シナリオ管理装置は、記憶部と、シナリオ送信部と、分析部を備える。記憶部は、シナリオ実行端末における処理の手順を示す部品シナリオを組み合わせたシナリオが記述されたシナリオファイルと、当該シナリオを作成したユーザの情報とを対応付けて記憶する。シナリオ送信部は、ユーザのシナリオ実行端末に当該ユーザの情報に対応付けられたシナリオファイルを送信する。分析部は、シナリオファイルに基づいてシナリオ実行端末により実行されたシナリオ群に含まれる部品シナリオに関する分析を行う。例えば、分析部は、シナリオ実行端末により実行されたシナリオ群に所定以上の頻度で出現する部品シナリオの組み合わせを抽出する。シナリオ実行端末は、シナリオ管理装置から受信したシナリオファイルに記述されたシナリオを実行するシナリオ実行部を備える。
シナリオ管理装置は、部品シナリオ情報送信部と、作成情報受信部と、シナリオ登録部とをさらに有してもよい。例えば、部品シナリオ情報送信部は、作成画面送信部222であり、シナリオ登録部は、シナリオ登録部225である。部品シナリオ情報送信部は、シナリオを作成するユーザであるシナリオ作成ユーザのユーザ端末に部品シナリオの情報を送信する。例えば、ユーザ端末は、シナリオ実行端末4である。作成情報受信部は、ユーザ端末からシナリオ作成ユーザが選択した部品シナリオを示す部品情報と選択された部品シナリオの実行順を示す実行順情報とを受信する。例えば、部品情報は、実施形態における部品シナリオ追加情報であり、実行順情報は、実行順指定情報である。情報提供部は、シナリオ作成ユーザが選択した部品シナリオと、分析部による分析結果とに基づいて、使用される可能性が高い部品シナリオを選択し、選択した部品シナリオの情報をユーザ端末に送信する。シナリオ登録部は、部品情報及び実行順情報に基づくシナリオを記述したシナリオファイルを生成し、シナリオ作成ユーザの情報と対応付けて記憶部に登録する。また、シナリオ管理装置は、部品情報及び実行順情報に基づいて生成されるシナリオの正常性を確認するシナリオ確認部を備えてもよい。
また、情報提供部は、分析部による分析結果に基づいて、シナリオ作成ユーザが選択した部品シナリオの組み合わせに関連する部品シナリオの組み合わせを選択し、選択した前記組み合わせの情報を前記ユーザ端末に送信する。例えば、情報提供部は、シナリオ実行端末により実行されたシナリオ群に所定以上の頻度で出現する部品シナリオの組み合わせのうち、シナリオ作成ユーザが選択した部品シナリオの組み合わせに類似した組み合わせを選択し、選択した組み合わせの情報をユーザ端末に送信してもよい。
また、記憶部は、ユーザの属性の情報を記憶し、分析部は、属性別に、当該属性のユーザのシナリオ実行端末により実行されたシナリオ群に含まれる部品シナリオに関する分析を行ってもよい。情報提供部は、シナリオ作成ユーザの属性についての分析部による分析結果に基づいて、シナリオ作成ユーザが選択した部品シナリオの組み合わせに関連した部品シナリオの組み合わせを選択する。例えば、分析部は、ユーザの属性別に、当該属性のユーザのシナリオ実行端末により実行されたシナリオ群に所定以上の頻度で出現する部品シナリオの組み合わせを抽出してもよい。情報提供部は、シナリオ作成ユーザの属性について分析部が抽出した部品シナリオの組み合わせのうち、シナリオ作成ユーザが選択した部品シナリオの組み合わせに類似した組み合わせを選択し、選択した組み合わせの情報をユーザ端末に送信する。
分析部は、シナリオ実行端末により実行されたシナリオ群から得られる部品シナリオに関する情報に加えて、シナリオ実行端末がシナリオを実行することにより生成したログデータから得られる情報と、部品シナリオの機能の情報と、シナリオの目的の情報と、シナリオを作成したユーザに関する情報とのうち一以上の情報を用いて分析を行ってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。