(57)【要約】【課題】複数の共通処理の間でリソースを変化させずに追加処理を実行する。【解決手段】複数の共通処理ステップを含む共通処理対象と、共通処理対象に含まれる複数の共通処理ステップの間で実行され、共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象と、に基づき、共通処理と追加処理とをコンピュータに実行させるための処理プログラムであって、共通処理は、共通処理対象に含まれる複数の共通処理ステップを実行し、複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出し、追加処理は、複数の追加処理の実行手順が定義された定義情報に基づき、追加処理を呼び出す処理に応じて、選択された追加処理対象の追加処理ステップを実行する、処理プログラムが提供される。【選択図】図３
2015225598.tif 000002
【特許請求の範囲】
【請求項１】
複数の共通処理ステップを含む共通処理対象と、前記共通処理対象に含まれる複数の共通処理ステップの間で実行され、前記共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象と、に基づき、共通処理と追加処理とをコンピュータに実行させるための処理プログラムであって、
前記共通処理は、
前記共通処理対象に含まれる複数の共通処理ステップを実行し、
前記複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出し、
前記追加処理は、
前記複数の追加処理の実行手順が定義された定義情報に基づき、前記追加処理を呼び出す処理に応じて、前記選択された追加処理対象の追加処理ステップを実行する、
処理プログラム。
【請求項２】
前記複数の追加処理対象のうちから二つの追加処理対象が選択された場合、前記二つの追加処理対象のうちの第一の追加処理対象に含まれる第一の追加処理ステップ及び第二の追加処理対象に含まれる第二の追加処理ステップの実行手順が所定の条件情報に基づいて定義された定義情報を取得する処理を含み、
前記追加処理は、
前記追加処理を呼び出す処理に応じて、前記第一の追加処理ステップ及び第二の追加処理ステップを、前記定義情報に基づく実行手順に従い実行する、
請求項１に記載の処理プログラム。
【請求項３】
前記取得する処理は、
前記第一の追加処理ステップと前記第二の追加処理ステップとを組み合わせて実行した処理結果が正常終了であったときの実行手順が定義された定義情報を取得する、
請求項２に記載の処理プログラム。
【請求項４】
複数の共通処理ステップを含む共通処理対象と、前記共通処理対象に含まれる複数の共通処理ステップの間で実行され、前記共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象とに基づき、共通処理と追加処理とを実行する情報処理装置であって、
前記共通処理対象に含まれる複数の共通処理ステップを実行する処理実行部と、
前記複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出す呼出部と、を有し、
前記処理実行部は、
前記複数の追加処理の実行手順が定義された定義情報に基づき、前記追加処理の呼び出しに応じて、前記選択された追加処理対象の追加処理ステップを実行する、
情報処理装置。
【請求項５】
複数の共通処理ステップを含む共通処理対象と、前記共通処理対象に含まれる複数の共通処理ステップの間で実行され、前記共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象とに基づき、共通処理と追加処理とをコンピュータが実行する情報処理方法であって、
前記共通処理は、
前記共通処理対象に含まれる複数の共通処理ステップを実行し、
前記複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出す、処理を含み、
前記追加処理は、
前記複数の追加処理の実行手順が定義された定義情報に基づき、前記追加処理を呼び出す処理に応じて、前記選択された追加処理対象の追加処理ステップを実行する処理を含む、
情報処理方法。
【請求項６】
処理対象に含まれる処理ステップを実行するサーバと、前記処理対象を依頼して前記処理対象の実行結果を取得する端末とを含む処理システムにおいて、
前記端末は、
複数の処理ステップが含まれる第一の処理対象、および、前記第一の処理対象に含まれる複数の処理ステップの間で実行されることにより前記第一の処理対象とは別の実行結果を取得可能な追加処理ステップが含まれる複数の追加処理対象の内の少なくとも二つが選択されると、第一の追加処理対象に含まれる第一の追加処理ステップと、第二の追加処理対象に含まれる第二の追加処理ステップとを組み合わせた実行依頼情報について、該実行依頼情報が正常終了する前記第一の追加処理ステップと前記第二の追加処理ステップの実行順序を所定の条件情報に基づいて特定し、
前記特定した実行順序に基づいて、前記第一の追加処理ステップと、第二の追加機能に含まれる第二の追加処理ステップとを実行させる実行依頼情報を生成し、
生成した前記実行依頼情報を、前記処理サーバに送信し、
前記処理サーバは、
前記端末から送信された前記実行依頼情報についての処理を実行し、
前記処理の実行結果を前記ユーザ端末に送信する、
処理システム。
【請求項７】
前記端末は、
前記第一の追加処理ステップと、前記第二の追加処理ステップとを組み合わせた実行依頼情報が実行される場合に正常終了するか否かを判別し、
正常終了すると判断した場合には、生成した前記実行依頼情報を前記処理サーバに送信する、
請求項６に記載の処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
処理プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
各機能を有するソフトウェアのうちからユーザが要求するソフトウェアの処理ステップを実行し、その実行結果をオンラインでユーザに提供するソフトウェア・サービスがある。ユーザによって複数のソフトウェアが選択された場合、ソフトウェアを組み合わせて実行した処理が禁則条件等の所定の条件に基づき正常に終了するかを実際の処理実行前に判定する必要がある。
【０００３】
禁則条件に従い所定の実行手順を設定する技術の一例としては、カラープリンタが持つ機能及び禁則と、印刷プロセス全体が持つ機能及び禁則とを意識してジョブチケットに印刷設定を行う印刷システムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１８１７７７号公報
【特許文献２】特開２０００−２７８４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、ユーザ毎にソフトウェアをカスタマイズし、カスタマイズした複数のソフトウェアを併存して動作させる。しかしながら、ユーザ毎にカスタマイズされた複数のソフトウェアが存在すると、ソフトウェア・サービスシステムにおける運用や管理が煩雑になる。換言すれば、ソフトウェア・サービスシステムでは、同じリソース（以下、「ワンリソース」ともいう。）で、ユーザ毎に異なる処理を実行させることが管理上重要である。
【０００６】
そこで、一つの側面では、本発明は、逐次解釈しながら実行する複数の共通処理の間で、リソースを変化させずに追加処理を実行すること目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、複数の共通処理ステップを含む共通処理対象と、前記共通処理対象に含まれる複数の共通処理ステップの間で実行され、前記共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象とに基づき、共通処理と追加処理とをコンピュータに実行させるための処理プログラムであって、前記共通処理は、前記共通処理対象に含まれる複数の共通処理ステップを実行し、前記複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出し、前記追加処理は、前記複数の追加処理の実行手順が定義された定義情報に基づき、前記追加処理を呼び出す処理に応じて、前記選択された追加処理対象の追加処理ステップを実行する、処理プログラムが提供される。
【発明の効果】
【０００８】
一つの側面として、逐次解釈しながら実行する複数の共通処理の間で、リソースを変化させずに追加処理を実行することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態にかかるソフトウェアサービスシステムの全体構成の一例を示す図。
【図２】一実施形態にかかるワンリソースを説明するための図。
【図３】一実施形態にかかる共通処理への機能ユニットの追加を説明するための図。
【図４】一実施形態にかかる追加ユニットの一例を示す図。
【図５】一実施形態にかかるユーザ端末及びサーバの機能構成の一例を示す図。
【図６】一実施形態にかかるユーザ端末側処理の一例を示すフローチャート。
【図７】一実施形態にかかる実行依頼情報の一例を示す図。
【図８】一実施形態にかかるサーバ側処理の一例を示すフローチャート。
【図９】一実施形態にかかる処理対象実行の過程を説明するための図。
【図１０】一実施形態にかかるサーバのハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
＜第１の実施形態＞
［システムの全体構成］
まず、本発明の第１の実施形態に係るソフトウェアサービスシステム１について、図１を参照しながら説明する。図１は、一実施形態にかかるソフトウェアサービスシステム１の全体構成の一例を示す。
【００１１】
ソフトウェアサービスシステム１では、テナントＡ、テナントＢ、テナントＣがインターネット等のネットワーク３０を介してサーバ１０と接続されている。テナントＡのユーザ端末２０ａ〜２０ｃ、テナントＢのユーザ端末２０ｄ〜２０ｆ、及びテナントＣのユーザ端末２０ｇ〜２０ｉ（以下、ユーザ端末２０ａ〜２０ｉを総称して「ユーザ端末２０」ともいう。）は、ユーザによって選択されたソフトウェアの実行要求をサーバ１０に送信する。サーバ１０は、実行要求に応じて選択されたソフトウェアを実行する。ユーザ端末２０は、サーバ１０による処理の実行結果を受信する。
【００１２】
テナントＡ、テナントＢ、テナントＣは、ソフトウェアサービスシステム１を利用するユーザの一例である。ソフトウェアサービスシステム１では、ワンリソースで、ユーザ毎に異なる処理を実行させることができる。この「ユーザ毎」は、テナント単位であってもよいし、各テナントに属する個々のユーザ単位であってもよいし、テナントＡ〜Ｃの全体であってもよい。
【００１３】
図１のテナント数は一例であり、これに限らない。また、ソフトウェアサービスシステム１を利用するユーザは、例えばコールセンター内の担当者、会社の社員、その他の団体の構成員であってもよい。ソフトウェアサービスシステム１では、サーバ１０を使用してシステムを利用するユーザの単位毎に実行処理を分けて、各ユーザが選択する１又は複数の機能ユニットの実行結果を提供する。
【００１４】
サーバ１０がユーザ毎に実行する処理対象のソフトウェアには、共通処理を実行可能な共通処理対象と追加処理を実行可能な追加処理対象とが含まれる。追加処理対象は、共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む。サーバ１０は、複数の追加処理対象のうちからユーザ端末２０により選択された追加処理対象を処理対象のソフトウェアに含める。サーバ１０は、逐次解釈しながら実行する複数の共通処理の間で、ソフトウェアのリソースを変化させずに追加処理を実行し、その実行結果をオンラインでユーザに提供する。
【００１５】
サーバ１０は、例えば、クラウドコンピューティングのサービス形態で実現され得る。サーバ１０は、インターネット等のネットワークを介して、処理対象のソフトウェアの実行結果をテナント内のユーザ端末２０に送信する。サーバ１０は、処理対象に含まれる処理ステップを実行する情報処理装置の一例である。
【００１６】
ユーザによって複数の追加処理対象が選択された場合、サーバ１０は、複数の追加処理対象を組み合わせて実行した処理が禁則条件等の所定の条件に基づき正常に終了するかを実際の処理実行前に判定する必要がある。
【００１７】
［ワンリソース］
本実施形態に係るソフトウェアサービスシステム１では、ソフトウェアサービスシステム１が管理するソフトウェアはワンリソースである。本実施形態では、リソースを変化させずに、図２に示すデータ、画面及び処理の少なくともいずれかについてテナント毎に追加処理を実行するようにすることでテナント毎のカスタマイズを可能とする。これにより、本実施形態では、テナントＡとテナントＢとテナントＣとで異なる処理Ａ、処理Ｂ、処理Ｃを実行することができる。処理Ａと処理Ｂと処理Ｃとには、共通処理が含まれてもよい。以下では、複数の共通処理の間で、リソースを変化させずに追加処理を実行する本実施形態の情報処理方法及びシステムについて説明する。
【００１８】
［共通処理及び追加処理］
サーバ１０が実行する処理対象には共通処理対象と追加処理対象とが含まれる。本実施形態に係るソフトウェアサービスシステム１は、共通処理対象として標準業務処理を実行するためのプログラム群を提供する。共通処理対象の一例としては、図３に示した「保存処理」が挙げられる。「保存処理」は、データを保存するという標準業務処理の一例であり、ここでは、入力チェックやデータ更新の処理ステップを含む。例えばテナントＡ内のコールセンターが「保存処理」の実行を要求すると、サーバ１０は、コールセンターへ問合せがあった案件のデータの保存処理を実行し、その実行結果をコールセンターのユーザ端末２０に送信する。
【００１９】
本実施形態に係るソフトウェアサービスシステム１は、追加処理対象として標準業務に追加される追加処理を実行するためのプログラム群を提供する。以下では、追加処理対象のプログラムを「追加ユニット」ともいう。後述される図５のユニット情報ＤＢ１６に記憶された追加ユニットの一例を図４に示す。例えば、共通処理が「保存処理」のとき、ユーザ端末２０が「一時保存ユニット」及び「オンライン通知ユニット」の二つの追加ユニットを選択すると、保存処理の間に、「一時保存処理」と「オンライン通知処理」とが実行される。「一時保存ユニット」により実行される追加処理は、ＤＢやファイル類を一時的に保存する処理である。「オンライン通知ユニット」により実行される追加処理は、保存されたデータが所定の閾値以上になったときにメールを発信する処理である。
【００２０】
例えば、ユーザが、図３の左側に示されるユーザ端末２０の画面上に表示された「保存」ボタンＳを押すと、サーバ１０は、共通処理対象の一例である保存処理をステップ１から順に逐次解釈しながら実行する。共通処理には、追加処理を実行可能にするためのソケットが予め設定されている。図３の保存処理には、ステップ５とステップ６の間にソケット１が設けられ、ステップ１０とステップ１１の間にソケット２が設けられ、ステップ１５とステップ１６の間にソケット３が設けられている。これらのソケットは、共通処理ステップの間においてソケットがある部分で所定の追加処理の処理ステップを実行可能なように、追加処理を実行するためのクラス（インスタンスとしてオブジェクトを生成可能なソフトウェア）を差し込む仮想的な差込口を示す。つまり、サーバ１０は、複数の共通処理ステップを遂次解釈しながら実行する間に、ソケット位置に到達すると、追加処理を呼び出す処理ステップを実行する。サーバ１０は、実行されるべき追加処理対象がある場合、その追加処理対象に含まれる追加処理ステップを実行する。サーバ１０は、実行されるべき追加処理がない場合、次の共通処理ステップ以降を実行する。共通処理対象には、ソケットが一つ以上設けられている。
【００２１】
追加処理対象は、追加ユニットの単位で管理される。追加ユニットは、一又は複数のクラスプールから構成されているクラスである。クラスプールは、共通処理対象に挿入できる処理（ロードモジュール）であり、ユーザ端末２０のアプリケーション起動時に読み込まれる。
【００２２】
ユーザ端末２０は、どのソケットに何の追加ユニット（クラス）を追加するかを機能ユニット毎に定義する。つまり、ユーザ端末２０は、共通処理対象に設けられたどのソケットに何の追加ユニットを差し込むかを定義することで、共通処理と追加処理との実行手順を定義する各機能ユニットの定義情報を生成する。
【００２３】
追加ユニットの選択操作は、ユーザ端末２０のユニット設定画面上へのユーザ又は管理者（以下、単に「ユーザ」という。）のタッチ操作等により、ＧＵＩを用いて設定することができる。例えば、ユーザ端末２０が「一時保存ユニット」を選択した場合、ソケット１に一時保存ユニット（クラス１）の処理を追加し、ソケット２には何も追加せず、ソケット３にはオンライン通知ユニット（クラス２）を追加する機能ユニット１の定義情報が生成される。このようにユーザ端末２０が「一時保存ユニット」の追加ユニットを選択した場合、「オンライン通知ユニット」の追加ユニットが自動的にソケット３に挿入されるようにしてもよい。機能ユニット１の定義情報を生成する際には、追加ユニットを追加して実行した処理が禁則条件等の所定の条件に基づき正常に終了するかを実際の処理実行前に判定し、正常終了した実行手順の定義情報が採用される。例えば、ソケット１にて追加ユニットを実行した場合には正常終了するが、ソケット２にて追加ユニット実行した場合には異常終了する場合には、ソケット１にて追加ユニットを実行する実行手順が定義情報に定義される。
【００２４】
このようにして、共通処理ステップの間にソケットを設け、ソケットに追加処理を実行するためのクラスを差し込むことで、ワンリソースにおけるオプション処理が実行可能になる。
【００２５】
ユーザが二つの追加ユニットを選択した場合も同様に、ユーザ端末２０は、機能ユニットを定義する。例えば、機能ユニット２には、選択された二つの追加ユニットに対してソケット１には何も追加せず、ソケット２にはクラス３の追加処理を挿入し、ソケット３にはクラス４の追加処理を挿入するように定義情報が定義される。
【００２６】
機能ユニットの定義情報を生成する際には、二つ以上のソフトウェアを組み合わせて実行した処理が禁則条件等の所定の条件に基づき正常終了するかを実際の処理実行前に判定し、正常終了した実行手順の定義情報を採用する。
【００２７】
例えば、「一時保存ユニット」と「オンライン通知ユニット」とが選択された場合、禁則等の所定の条件情報に基づき、これらの二つの追加ユニットの相互関係に応じた実行手順が定義される。例えば、これらの二つの追加ユニットの間には、一時保存ユニットの処理実行後にオンライン通知ユニットの処理が実行されるという相互関係がある。また、「一時保存ユニット」と「保存処理」との間には、一時保存ユニットの処理実行後の保存処理の入力チェックはスキップするという相互関係がある。一時保存されたデータは、一時的にデータを退避させている状態であり、必須の入力項目にデータがない状態もあり得るため、一時保存されたデータに入力チェックすることは正常な処理ではないためである。
【００２８】
複数の追加処理対象について、それぞれの追加処理対象に含まれる追加処理ステップ（第一の追加処理ステップ及び第二の追加処理ステップに相当）の実行手順が、所定の条件情報に基づいて正常終了するかが判定される。また、追加処理対象の追加処理ステップと共通処理対象の共通処理ステップの実行手順が、１又は複数の所定の条件情報に基づいて正常終了するかが判定される。そして、各機能ユニットの定義情報には、各処理対象の実行手順が正常終了すると判定された手順が定義される。定義情報はテナント毎に生成され、サーバ１０に保存される。定義情報は、クラウドコンピューティング上の他の記憶装置に記憶されてもよいし、本実施形態に係るソフトウェアサービスシステム１内のいずれかの記憶装置に記憶されてもよい。
【００２９】
これにより、本実施形態にかかるサーバ１０は、正常に稼働する実行手順を定義した定義情報に基づき、共通処理ステップを逐次解釈しながら実行する間に、リソースを変化させずに追加処理ステップを実行することができる。
【００３０】
サーバ１は、その実行結果をユーザの属性情報に応じて特定のユーザに提供する。例えば、ユーザの属性情報がテナントＡであれば、テナントＡに属するユーザ端末２０に実行結果を送信する。
【００３１】
なお、本実施形態では、定義情報がテナント毎に定義される例を挙げて説明するが、これに限らず、定義情報はテナント内のユーザ毎に定義されてもよいし、テナント内のユーザを所定のグループに分けた時のグループ毎に定義されてもよい。
【００３２】
［ユーザ端末及びサーバの機能構成］
次に、本実施形態に係るユーザ端末２０及びサーバ１０の機能構成の一例について、図５を参照しながら説明する。図５は、一実施形態にかかるユーザ端末２０及びサーバ１０の機能構成の一例を示す。
【００３３】
ユーザ端末２０は、通信部２１、定義情報生成部２２、表示部２３、選択部２４及び実行依頼部２５を有する。定義情報生成部２２は、ユーザによって選択された追加処理対象（追加ユニット）に応じて、共通処理と追加処理との実行手順を定義する定義情報を生成する。
【００３４】
例えば、ユーザが選択した追加ユニットのうちから「一時保存ユニット」と「集計ユニット」を選択した場合、例えば、図３の機能ユニット１、２に示す定義情報が生成される。つまり、一時保存ユニットの追加処理ステップを実行するクラス１をソケット１に差し込むとともに、オンライン通知ユニットの追加処理ステップを実行するクラス２をソケット３に差し込む定義情報が生成される。これにより、機能ユニット１の定義情報の生成が完了する。
【００３５】
また、集計ユニットの追加処理ステップを実行するクラス３をソケット２に差し込むとともに、集計ユニットに関連した追加処理ステップを実行するクラス４をソケット３に自動的に差し込む定義情報が生成される。これにより、機能ユニット２の定義情報の生成が完了する。このように、ユーザが選択した追加ユニットから生成される機能ユニットの定義情報は、一つであってもよいし、複数であってもよい。
【００３６】
定義情報の生成では、禁則条件等の所定の条件情報に基づいて、追加処理を挿入するソケット位置が定められる。例えば、「集計ユニット」で倉庫内にある製品の個数を集計する追加処理が行われたとし、「一時保存ユニット」で一時的に倉庫内に製品を保存する追加処理が行われたとする。この場合、ソケット１で「一時保存ユニット」の追加処理が実行された後、「集計ユニット」の追加処理を実行する際、倉庫内にある製品の全体数から一時的に保存された製品を差し引いた集計結果を算出する必要がある。
【００３７】
定義情報生成部２２は、このように連携した処理が必要な複数の追加ユニットの組み合わせに関し、複数の追加ユニットの相互関係により連携した処理を正常に処理させるようにそれぞれの追加ユニットの実行手順を示す定義情報を生成する。
【００３８】
表示部２３は、ユーザ端末２０にユニット設定画面を表示する。選択部２４は、ユニット設定画面をタッチ操作することで、１又は２以上の追加ユニットを選択する。実行依頼部２５は、生成された定義情報に基づく処理対象の実行要求をサーバ１０に依頼する。
【００３９】
通信部２１は、実行依頼部２５による処理対象の実行要求をサーバ１０に送信し、これに対してサーバ１０が実行した処理対象の処理結果を受信する。通信部２１が送信した処理対象の実行要求に含まれる定義情報は、サーバ１０の定義情報ＤＢ（データベース）１５に保存される。
【００４０】
サーバ１０は、通信部１１、処理実行部１２、呼出部１３、表示制御部１４、定義情報ＤＢ１５及びユニット情報ＤＢ１６を有する。
【００４１】
通信部１１は、各テナントのユーザ端末２０と通信し、ユーザ端末２０から送信された処理対象の実行要求を受信し、これに対してサーバ１０が実行した処理対象の処理結果を送信する。表示制御部１４は、例えばウェブブラウザによりテナント内のユーザ端末２０にユニット設定画面を表示するように制御する。
【００４２】
処理実行部１２は、処理対象の実行要求に応じて、定義情報ＤＢ１５に保存された定義情報に基づき、共通処理及び追加処理の各処理ステップを実行する。処理実行部１２が共通処理対象に含まれる共通処理ステップをソケットの位置まで実行すると、呼出部１３は、追加処理を呼び出す。追加処理は、複数の共通処理ステップの間で一又は複数回実行され得る。
【００４３】
処理実行部１２及び呼出部１３による処理対象の実行を図３を参照しながら具体的に説明する。図３では、処理実行部１２は、共通処理対象の「保存処理」のステップ１〜ステップ５を実行する。次に、呼出部１３は、ソケット１のステップにて、定義情報ＤＢ１５から特定の定義情報を取得し、ソケット１に差し込むべき追加ユニット（クラス）を呼び出す。ソケット１に差し込むべき追加ユニットがある場合、処理実行部１２は、差し込んだ追加ユニット（クラス１）の追加処理ステップを実行する。例えば、ユニット１に差し込まれた追加処理として「一時保存処理」が実行される。
【００４４】
次に、処理実行部１２は、共通処理対象に戻りステップ６を実行する。ステップ６〜ステップ１０において実行される入力チェック処理では、保存されたデータのうち必ず入力が必要な項目の入力チェックが行われる。一時保存されたデータは入力チェックの対象ではないため、機能ユニット１の定義情報には、一時保存されたデータに対してステップ６〜ステップ１０の入力チェックは実行しないと定義されている。これに従い、処理実行部１２は、ステップ６〜ステップ１０の共通処理をスキップする。
【００４５】
次に、呼出部１３は、取得した定義情報に基づきソケット２に差し込むべき追加ユニットを呼び出す。ソケット２に差し込むべき追加ユニットがない場合、処理実行部１２は、共通処理対象のステップに戻り、ステップ１１〜ステップ１５のデータ更新処理を実行する。
【００４６】
次に、呼出部１３は、取得した定義情報に基づきソケット３に差し込むべき追加ユニットを呼び出す。ソケット３に差し込むべき追加ユニットがある場合、処理実行部１２は、差し込んだ追加ユニット（クラス３）の追加処理ステップを実行する。例えば、ユニット１に差し込まれた追加処理として「オンライン通知ユニット」が実行される。
【００４７】
次に、処理実行部１２は、共通処理対象のステップに戻り、ステップ１６〜ステップ１８の処理を実行し、本処理を終了する。
【００４８】
［ユーザ端末側処理］
次に、本実施形態に係るユーザ端末側処理について、図６を参照しながら説明する。図６は、一実施形態にかかるユーザ端末側処理の一例を示すフローチャートである。
【００４９】
まず、表示部２３は、ユーザ端末２０にユニット設定画面を表示する（ステップＳ１０）。ユニット設定画面には、ユニット情報ＤＢ１６に記憶された追加ユニットの項目が選択可能に表示されている。
【００５０】
次に、選択部２４は、ユーザの画面操作により追加処理対象の追加ユニットが選択されたかを判定する（ステップＳ１２）。選択部２４は、追加ユニットが選択されたと判定するまで、ステップＳ１２の処理を繰り返す。
【００５１】
選択部２４により追加ユニットが選択されたと判定された場合、定義情報生成部２２は、所定の条件に基づき、選択した追加ユニットに応じて処理対象の実行手順を示す定義情報を生成する（ステップＳ１４）。
【００５２】
次に、定義情報生成部２２は、生成された実行手順により追加処理を含む処理対象が正常終了するかを判定する（ステップＳ１６）。定義情報生成部２２は、正常終了すると判定された実行手順を機能ユニットの定義情報として定義する。
【００５３】
次に、実行依頼部２５は、定義された実行手順に基づく追加処理の実行依頼情報を生成する（ステップＳ１８）。例えば、実行依頼部２５は、図７に示すように、ユーザの属性情報８１、実行手順（定義情報）８２、共通処理対象８３及び追加処理対象８４を含む実行依頼情報を生成する。属性情報８１には、実行依頼の主体が示されている。例えば、図７では、「機能ユニット１」で定義された実行手順に基づき、共通処理対象８３と追加処理対象８４で示される処理対象が実行され、「テナントＡ」に属するユーザ端末２０に実行結果が提供される。これにより、属性情報８１に設定された主体毎に追加処理を設定できる。
【００５４】
図６に戻り、通知部２１は、実行依頼情報８０をサーバ１０に送信し、実行依頼情報８０に含まれる処理対象の実行依頼を通知する（ステップＳ２０）。これにより、サーバ１０は、実行依頼情報８０に含まれる実行手順８２に基づき、共通処理対象及び追加処理対象の各処理ステップを実行する。例えば、共通処理対象が「保存処理」の場合、サーバ１０は、図３のソケット１にて「一時保存ユニット」の追加処理ステップを実行し、ソケット３にて「オンライン通知ユニット」の追加処理ステップを実行する。通信部２１は、サーバ１０による実行結果を取得する（ステップＳ２２）。サーバ１０による実行結果は、「テナントＡ」に属するユーザ端末２０に送信される。
【００５５】
［サーバ側処理］
次に、本実施形態に係るサーバ側処理について、図８を参照しながら説明する。図８は、一実施形態にかかるサーバ側処理の一例を示すフローチャートである。
【００５６】
まず、通信部１１が、ユーザ端末２０から送信された実行依頼を受信し、実行依頼情報８０を取得する（ステップＳ５０）。実行依頼情報８０は、定義情報ＤＢ１５に保存される。次に、処理実行部１２は、共通処理の処理ステップを実行する（ステップＳ５２）。処理実行部１２は、まず、共通処理対象の処理ステップを逐次処理する。
【００５７】
図９は、処理対象の実行過程を示す。共通処理では、表示処理（画像定義）→業務処理１→業務処理２→業務処理３の順に、複数の共通処理ステップが逐次実行される。共通処理ステップの間には１又は２以上のソケットがある。
【００５８】
図８に戻り、処理実行部１２が共通処理ステップを実行する間に、呼出部１３は、ソケットがあるかを判定する（ステップＳ５４）。共通処理ステップの実行処理がソケット位置まで進むと、呼出部１３は、ソケットがあると判定し、追加処理を呼び出す。つまり、呼出部１３は、定義情報ＤＢ１５に保存された特定の機能ユニットの定義情報に基づき、ソケット位置で実行される追加ユニットが定義されているかを判定する（ステップＳ５６）。呼出部１３により追加ユニットが定義されていると判定された場合、処理実行部１２は、定義されている追加ユニットの追加処理ステップを実行し（ステップＳ５８）、次のステップがあるかを判定する（ステップＳ６０）。
【００５９】
また、ステップＳ５４にてソケットがないと判定された場合、または、ステップＳ５６にて追加ユニットが定義されていないと判定された場合、処理実行部１２は、次のステップがあるかを判定する（ステップＳ６０）。
【００６０】
例えば、図９の機能ユニット１の定義情報では、ソケット１の位置で、所定の共通処理ステップが実行された後、画面周辺の追加ユニット（クラス１）がソケット１に差し込まれ、画面周辺の追加ユニットの追加処理ステップが実行される。その後、次の共通処理ステップが実行される。図９に示した表示処理の実行が終了すると、次の業務処理１の共通処理ステップが実行される。同様にして、ソケット２の位置で、定義情報ＤＢ１５に定義された機能ユニットにそのソケット位置で実行される追加ユニットが定義されているかが判定される。機能ユニット１の定義情報にはソケット２の位置で実行される追加ユニットは定義されていない。よって、次の共通処理ステップが実行される。このようにして、図８のステップＳ５２〜ステップＳ６０を繰り返すことで、図９に示す共通処理ステップが逐次実行される間に、定義情報に基づき所定のソケット位置で追加処理ステップが実行される。
【００６１】
図８のステップＳ６０にて次のステップがないと判定された場合、通信部１１は、処理の実行結果をユーザ端末２０に通知し（ステップＳ６２）、本処理を終了する。
【００６２】
以上に説明したように、本実施形態に係るソフトウェアサービスシステム１によれば、共通処理対象の処理ステップの間に追加処理対象の処理ステップを挿入して実行することができる。つまり、逐次解釈しながら実行する複数の共通処理ステップの間で、リソースを変化させずに追加処理ステップを実行することができる。これにより、ワンリソースでユーザ毎に異なる処理を実行することで、ソフトウェア・サービスシステム１における運用や管理が容易になり、効率よくソフトウェア・サービスを提供することができる。
【００６３】
（ハードウェア構成例）
最後に、サーバ１０のハードウェア構成の一例について簡単に説明する。図１０は、本実施形態にかかるサーバ１０のハードウェア構成の一例を示す。ユーザ端末２０のハードウェア構成は、サーバ１０のハードウェア構成と同様の構成であるため、ここではサーバ１０のハードウェア構成を説明し、ユーザ端末２０のハードウェア構成については説明を省略する。
【００６４】
サーバ１０は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７及びＨＤＤ（Hard Disk Drive）１０８を備え、それぞれがバスＢで相互に接続されている。
【００６５】
入力装置１０１は、キーボードやマウスなどを含み、サーバ１０に各操作を入力するために用いられる。表示装置１０２は、ディスプレイなどを含み、各種のデータを表示する。通信Ｉ／Ｆ１０７は、サーバ１０を他の機器に接続するインターフェイスである。これにより、サーバ１０は、通信Ｉ／Ｆ１０７を介してユーザ端末２０と接続し、通信可能となる。
【００６６】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１０８には、例えば、上記実施形態にかかる処理対象の実行処理を行うためにＣＰＵ１０６により実行されるプログラムが格納される。
【００６７】
外部Ｉ／Ｆ１０３は、外部装置とのインターフェイスである。外部装置には、記録媒体１０３ａなどがある。サーバ１０は、外部Ｉ／Ｆ１０３を介して、記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａには、ＣＤ（Compact Disk）、及びＤＶＤ（Digital Versatile Disk）、ならびに、ＳＤメモリカード（SD Memory card）やＵＳＢメモリ（Universal Serial Bus memory）等がある。記録媒体１０３ａには、上記実施形態にかかる処理対象の実行処理を行うためにＣＰＵ１０６により実行されるプログラムが格納されてもよい。
【００６８】
ＲＯＭ１０５は、不揮発性の半導体メモリ（記憶装置）であり、ネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ１０６は、上記記憶装置（例えば「ＨＤＤ」や「ＲＯＭ」など）から、プログラムやデータをＲＡＭ上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
【００６９】
処理実行部１２及び呼出部１３の各部は、ＨＤＤ１０８にインストールされたプログラムがＣＰＵ１０６に実行させる処理により実現される。定義情報ＤＢ１５及びユニット情報ＤＢ１６は、例えば、ＲＡＭ１０４、ＨＤＤ１０８又はサーバ１０に接続される記憶装置を用いて実現可能である。
【００７０】
以上、処理プログラム、情報処理装置及び情報処理方法を上記実施形態により説明したが、本発明は上記実施形態にかかる処理プログラム、情報処理装置及び情報処理方法に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及びその変形を矛盾しない範囲で組み合わせることができる。
【００７１】
上記実施形態においてサーバを一例として説明した本発明にかかる情報処理装置の各部の機能は、分散型ネットワーク内のあらゆる点に配置することができ、これにより本発明にかかるソフトウェアサービスシステムに影響を及ぼすことはない。
【００７２】
本発明の情報処理装置は、特殊コンピュータ、プログラムされたマイクロプロセッサ、マイクロコントローラ、ＡＳＩＣ(Application Specific Integrated Circuit)、他の集積回路ＤＳＰ(Digital Signal Processor)、ハードワイヤード電子素子、論理素子、例えばプログラム可能な論理回路、ゲートアレイ、例えば、ＰＬＤ(Programmable Logic Device)、ＰＬＡ(Programmable Logic Array)、ＦＰＧＡ(Field-Programmable Gate Array)、その他の手段を含んでもよい。本発明の情報処理方法は、これらの手段により実現することができる。
【００７３】
本発明の情報処理方法は、ＨＤＤ１０８やその他の記憶装置に記憶された処理プログラムで実行できる。本発明の情報処理方法は、ソフトウェア、ハードウェア又はそれらの組み合わせにより実現できる。
【００７４】
本発明にかかるソフトウェアサービスシステムは、例えば、アプレット、ＪＡＶＡ(登録商標)、各種コンピュータ、ワークステーション、クラウドコンピューティングの資源を使用して実現できる。
【００７５】
また、上記実施形態にて説明した各フローチャートは、特定のシーケンスを例に説明したが、本発明にかかる処理対象の実行処理に影響を及ぼすことなく、特定のシーケンスの変更、追加、一部省略が可能である。
【００７６】
本発明のユーザ端末に用いられるハードウェアは、コンピュータ、携帯用装置、電話器（携帯電話、インターネット電話、デジタル式電話、アナログ式電話）等の公知のハードウェアで実現できる。
【００７７】
以上の説明に関し、更に以下の項を開示する。
（付記１）
複数の共通処理ステップを含む共通処理対象と、前記共通処理対象に含まれる複数の共通処理ステップの間で実行され、前記共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象と、に基づき、共通処理と追加処理とをコンピュータに実行させるための処理プログラムであって、
前記共通処理は、
前記共通処理対象に含まれる複数の共通処理ステップを実行し、
前記複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出し、
前記追加処理は、
前記複数の追加処理の実行手順が定義された定義情報に基づき、前記追加処理を呼び出す処理に応じて、前記選択された追加処理対象の追加処理ステップを実行する、
処理プログラム。
（付記２）
前記複数の追加処理対象のうちから二つの追加処理対象が選択された場合、前記二つの追加処理対象のうちの第一の追加処理対象に含まれる第一の追加処理ステップ及び第二の追加処理対象に含まれる第二の追加処理ステップの実行手順が所定の条件情報に基づいて定義された定義情報を取得する処理を含み、
前記追加処理は、
前記追加処理を呼び出す処理に応じて、前記第一の追加処理ステップ及び第二の追加処理ステップを、前記定義情報に基づく実行手順に従い実行する、
（付記３）
前記第一の追加処理ステップと前記第二の追加処理ステップとを組み合わせて実行した処理結果が正常終了であったときの実行手順が定義された定義情報を取得する、
付記２に記載の処理プログラム。
（付記４）
複数の共通処理ステップを含む共通処理対象と、前記共通処理対象に含まれる複数の共通処理ステップの間で実行され、前記共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象とに基づき、共通処理と追加処理とを実行する情報処理装置であって、
前記共通処理対象に含まれる複数の共通処理ステップを実行する処理実行部と、
前記複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出す呼出部と、を有し、
前記処理実行部は、
前記複数の追加処理の実行手順が定義された定義情報に基づき、前記追加処理の呼び出しに応じて、前記選択された追加処理対象の追加処理ステップを実行する、
情報処理装置。
（付記５）
前記処理実行部は、
前記複数の追加処理対象のうちから二つの追加処理対象が選択された場合、前記二つの追加処理対象のうちの第一の追加処理対象に含まれる第一の追加処理ステップ及び第二の追加処理対象に含まれる第二の追加処理ステップの実行手順が所定の条件情報に基づいて定義された定義情報を取得し、
前記追加処理を呼び出す処理に応じて、前記第一の追加処理ステップ及び第二の追加処理ステップを、前記定義情報に基づく実行手順に従い実行する、
（付記６）
前記処理実行部は、
前記第一の追加処理ステップと前記第二の追加処理ステップとを組み合わせて実行した処理結果が正常終了であったときの実行手順が定義された定義情報を取得する、
付記５に記載の情報処理装置。
（付記７）
複数の共通処理ステップを含む共通処理対象と、前記共通処理対象に含まれる複数の共通処理ステップの間で実行され、前記共通処理対象の実行結果とは異なる実行結果を取得可能な追加処理ステップを含む複数の追加処理対象のうちから、処理対象の実行結果を取得する端末により選択された追加処理対象とに基づき、共通処理と追加処理とをコンピュータが実行する情報処理方法であって、
前記共通処理は、
前記共通処理対象に含まれる複数の共通処理ステップを実行し、
前記複数の共通処理ステップの間で一又は複数回実行される追加処理を呼び出す、処理を含み、
前記追加処理は、
前記複数の追加処理の実行手順が定義された定義情報に基づき、前記追加処理を呼び出す処理に応じて、前記選択された追加処理対象の追加処理ステップを実行する処理を含む、
情報処理方法。
（付記８）
前記複数の追加処理対象のうちから二つの追加処理対象が選択された場合、前記二つの追加処理対象のうちの第一の追加処理対象に含まれる第一の追加処理ステップ及び第二の追加処理対象に含まれる第二の追加処理ステップの実行手順が所定の条件情報に基づいて定義された定義情報を取得する処理を含み、
前記追加処理は、
前記追加処理を呼び出す処理に応じて、前記第一の追加処理ステップ及び第二の追加処理ステップを、前記定義情報に基づく実行手順に従い実行する、
付記７に記載の情報処理方法。
（付記９）
前記取得する処理は、
前記第一の追加処理ステップと前記第二の追加処理ステップとを組み合わせて実行した処理結果が正常終了であったときの実行手順が定義された定義情報を取得する、
付記８に記載の情報処理方法。
（付記１０）
処理対象に含まれる処理ステップを実行するサーバと、前記処理対象を依頼して前記処理対象の実行結果を取得する端末とを含む処理システムにおいて、
前記端末は、
複数の処理ステップが含まれる第一の処理対象、および、前記第一の処理対象に含まれる複数の処理ステップの間で実行されることにより前記第一の処理対象とは別の実行結果を取得可能な追加処理ステップが含まれる複数の追加処理対象の内の少なくとも二つが選択されると、第一の追加処理対象に含まれる第一の追加処理ステップと、第二の追加処理対象に含まれる第二の追加処理ステップとを組み合わせた実行依頼情報について、該実行依頼情報が正常終了する前記第一の追加処理ステップと前記第二の追加処理ステップの実行順序を所定の条件情報に基づいて特定し、
前記特定した実行順序に基づいて、前記第一の追加処理ステップと、第二の追加機能に含まれる第二の追加処理ステップとを実行させる実行依頼情報を生成し、
生成した前記実行依頼情報を、前記処理サーバに送信し、
前記処理サーバは、
前記端末から送信された前記実行依頼情報についての処理を実行し、
前記処理の実行結果を前記ユーザ端末に送信する、
処理システム。
（付記１１）
前記端末は、
前記第一の追加処理ステップと、前記第二の追加処理ステップとを組み合わせた実行依頼情報が実行される場合に正常終了するか否かを判別し、
正常終了すると判断した場合には、生成した前記実行依頼情報を前記処理サーバに送信する、
付記１０に記載の処理システム。
【符号の説明】
【００７８】
１：ソフトウェアサービスシステム
１０：サーバ
２０：ユーザ端末
１１：通信部
１２：処理実行部
１３：呼出部
１４：表示制御部
１５：定義情報ＤＢ
１６：ユニット情報ＤＢ１６
２１：通信部
２２：定義情報生成部
２３：表示部
２４：選択部
２５：実行依頼部
【図１】
2015225598.tif 000003
【図２】
2015225598.tif 000004
【図３】
2015225598.tif 000005
【図４】
2015225598.tif 000006
【図５】
2015225598.tif 000007
【図６】
2015225598.tif 000008
【図７】
2015225598.tif 000009
【図８】
2015225598.tif 000010
【図９】
2015225598.tif 000011
【図１０】
2015225598.tif 000012