(57)【要約】【課題】複数の機能プログラムを組み合わせる際に必要となる連結プログラムを自動的に選択し、配置し、自動的に設定を投入できるプログラム配置システム、プログラム配置方法、及びプログラムを提供することを目的とする。【解決手段】本発明に係るプログラム配置システムは、組み合わせるべき複数の機能プログラムとその接続関係の情報を入力し、指定された各機能プログラムの入出力形式を取得し、各機能プログラムを指定された順序で接続する連結プログラムの要否を判断し、必要と判断された場合は、取得した入出力形式に合致する連結プログラムをコンピュータにインストールする。【選択図】図１
2018185684.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上で動作するプログラムを配置するプログラム配置システムであって、
入力された、組み合わせる複数の機能プログラム、及び前記機能プログラムを接続する順序を指定する接続情報に基づいて、それぞれの前記機能プログラムの入出力形式を取得し、前記接続情報が指定する順序で前記機能プログラムを接続する連結プログラムの要否を判断する必要連結プログラム判断部と、
前記必要連結プログラム判断部が前記連結プログラムを必要と判断した場合に、取得した入出力形式に合致する連結プログラムをコンピュータに配置する連結プログラム配置部と、
を有する連結プログラム制御部を備えることを特徴とするプログラム配置システム。
【請求項２】
前記コンピュータの環境に関する環境情報を取得し、前記コンピュータに配置されている前記機能プログラム及び前記連結プログラムを判断するコンピュータ管理部をさらに備え、
前記連結プログラム制御部は、
前記コンピュータ管理部が取得した前記環境情報の下、前記コンピュータに配置されている前記機能プログラム間を前記連結プログラムで接続するための接続設定の要否を判断する連結設定判断部と、
前記連結設定判断部が前記接続設定を必要と判断した場合に、前記機能プログラム及び前記連結プログラムに前記接続設定を行う連結設定投入部と、
をさらに有することを特徴とする請求項１に記載のプログラム配置システム。
【請求項３】
前記必要連結プログラム判断部は、
前記連結プログラムを必要と判断した場合に、前記機能プログラムの動作環境、前記連結プログラムの動作環境、及び前記コンピュータ管理部が取得した前記環境情報に基づき、前記コンピュータの環境で動作可能な連結プログラムを選定すること
を特徴とする請求項２に記載のプログラム配置システム。
【請求項４】
前記機能プログラムの動作環境、及び前記連結プログラムの動作環境に基づいて前記機能プログラム及び前記連結プログラムを動作可能とする１又は複数のコンピュータの配置を要求するコンピュータ制御部をさらに備えることを特徴とする請求項１に記載のプログラム配置システム。
【請求項５】
コンピュータ上で動作するプログラムを配置するプログラム配置方法であって、
入力された、組み合わせる複数の機能プログラム、及び前記機能プログラムを接続する順序を指定する接続情報に基づいて、それぞれの前記機能プログラムの入出力形式を取得し、前記接続情報が指定する順序で前記機能プログラムを接続する連結プログラムの要否を判断する必要連結プログラム判断手順と、
前記必要連結プログラム判断手順で前記連結プログラムを必要と判断した場合に、取得した入出力形式に合致する連結プログラムをコンピュータに配置する連結プログラム配置手順と、
を行うことを特徴とするプログラム配置方法。
【請求項６】
前記コンピュータの環境に関する環境情報を取得し、前記コンピュータに配置されている前記機能プログラム及び前記連結プログラムを判断するコンピュータ管理手順と、
前記コンピュータ管理手順で取得した前記環境情報の下、前記コンピュータに配置されている前記機能プログラム間を前記連結プログラムで接続するための接続設定の要否を判断する連結設定判断手順と、
前記連結設定判断手順で前記接続設定を必要と判断した場合に、前記機能プログラム及び前記連結プログラムに前記接続設定を行う連結設定投入手順と、
をさらに行うことを特徴とする請求項５に記載のプログラム配置方法。
【請求項７】
前記機能プログラムの動作環境、及び前記連結プログラムの動作環境に基づいて前記機能プログラム及び前記連結プログラムを動作可能とする１又は複数のコンピュータの配置を要求するコンピュータ制御手順をさらに行うことを特徴とする請求項５に記載のプログラム配置方法。
【請求項８】
請求項１から４のいずれかに記載のプログラム配置システムとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータ上で動作するプログラムを自動的に配置するプログラム配置システム、プログラム配置方法、及びプログラムに関する。
【背景技術】
【０００２】
複数のプログラムを組み合わせて新たなサービスを構築することが開示される（例えば、特許文献１及び非特許文献１を参照。）。以降、あるサービスを構築するために必要となる機能を実現するプログラムのことを機能プログラムと記述する。また、機能プログラムを組み合わせて新たなサービスを構築する者をサービス開発者と記述する。例えば機能プログラムとは、ＷｅｂＡＰＩであったり、ライブラリであったり、モジュールプログラムであったり、データの入力や出力を伴うプログラムであったり、スマートフォン等のアプリである。
【０００３】
この時、一般的に機能プログラムの入出力形式はそれぞれの機能プログラムによって異なり、サービス開発者は機能プログラムを組み合わせる際に入出力形式を変更することはできない。入出力形式とは、例えば、音声データを扱うマイクや映像データを扱うカメラといったデバイス、ＪＳＯＮやＸＭＬといったデータフォーマット、ＴＣＰやＵＤＰといったネットワークプロトコルなどである。
【０００４】
通常、入出力形式の異なる機能プログラムを組み合わせる事はできない。しかし、別途入出力形式の変換などを実行することで、入出力形式の合わない複数のプログラムを組み合わせる事が可能となる。
【０００５】
図１及び図２を利用して説明する。例えば、入力形式としてマイクからの音声入力のみを受け付けるプログラムＢに対して、出力形式がスピーカーへの出力のみであるプログラムＡが生成する音声を入力することを考える。この時、プログラムＡから生成され、通常であればスピーカーから出力される音声を受け取り、マイクからの入力であるかのように見せることができるプログラムが存在する。このプログラムは例えば仮想マイクといった名称で知られ、通常は映像配信などにおいて配信者のパソコンで再生している音声を配信映像にのせるなどの用途で利用される。
【０００６】
この仮想マイクを利用して、プログラムＡが生成する音声データを一度仮想マイクに出力し、仮想マイクからの音声入力をプログラムＢの入力とすることで、入出力形式の一致していないプログラムＡとプログラムＢを接続することが可能となる。以降、複数のプログラムを組み合わせるために、データを受け取ったり、データの変換を行ったり、複数マシンを接続するための通信を行うために利用可能なプログラムの事を連結プログラムと記述する。
【０００７】
別の例として、入力形式としてカメラに映る映像を入力として写っている文字を翻訳するスマホアプリＢに対して、出力形式がディスプレイへの出力のみである動画アプリＡが再生する映像を入力することを考えた場合なども、同様に仮想カメラなどの連結プログラムによりアプリを組み合わせることが考えられる。
【０００８】
このように、連結プログラムを利用することで入出力形式の固定された複数の機能プログラムに対し、機能プログラムそのものに変更を加えることなく、機能プログラムを組み合わせたサービスを構築する事が可能となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第５０４６９８９号
【非特許文献】
【００１０】
【非特許文献１】Ｍｉｃｒｏ  Ｓｅｒｖｉｃｅｓ  −  Ｊａｖａ  ｔｈｅ  Ｕｎｉｘ  ｗａｙ，  ３３ｒｄ  Ｄｅｇｒｅｅ  Ｃｏｎｆｅｒｅｎｃｅ，  Ｍａｒｃｈ  ２０１２
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の機能プログラムの組み合わせによるサービス構築においては、通常は入出力形式の異なる機能プログラムを連結させることは考慮されておらず、サービス開発者が可否を含めて判断し入出力形式の変換による機能プログラムの連結を行う必要がある。つまり、入出力形式が合わない機能プログラムを組み合わせるためにはサービス開発者自身が組み合わせたい機能プログラムの入出力形式から連結プログラムの必要性の有無を判断した上で、連結プログラムをコンピュータ上に配置し、連結プログラムを用いて入出力形式の変換などの作業を行う必要がある。
【００１２】
この作業には機能プログラムの入出力形式に関する知識および連結プログラムの入出力形式に関する知識が必要となり、かつ作業を手動で行う必要があったため、容易に行うことができないという課題があった。
【００１３】
そこで、本発明は、上記課題を解決するために、複数の機能プログラムを組み合わせる際に必要となる連結プログラムを自動的に選択し、配置し、自動的に設定を投入できるプログラム配置システム、プログラム配置方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明に係るプログラム配置システムは、複数の機能プログラムの入出力形式を適合させる形で連結プログラムを自動的に配置することとした。
【００１５】
具体的には、本発明に係るプログラム配置システムは、コンピュータ上で動作するプログラムを配置するプログラム配置システムであって、
入力された、組み合わせる複数の機能プログラム、及び前記機能プログラムを接続する順序を指定する接続情報に基づいて、それぞれの前記機能プログラムの入出力形式を取得し、前記接続情報が指定する順序で前記機能プログラムを接続する連結プログラムの要否を判断する必要連結プログラム判断部と、
前記必要連結プログラム判断部が前記連結プログラムを必要と判断した場合に、取得した入出力形式に合致する連結プログラムをコンピュータに配置する連結プログラム配置部と、
を有する連結プログラム制御部を備えることを特徴とする。
【００１６】
また、本発明に係るプログラム配置方法は、コンピュータ上で動作するプログラムを配置するプログラム配置方法であって、
入力された、組み合わせる複数の機能プログラム、及び前記機能プログラムを接続する順序を指定する接続情報に基づいて、それぞれの前記機能プログラムの入出力形式を取得し、前記接続情報が指定する順序で前記機能プログラムを接続する連結プログラムの要否を判断する必要連結プログラム判断手順と、
前記必要連結プログラム判断手順で前記連結プログラムを必要と判断した場合に、取得した入出力形式に合致する連結プログラムをコンピュータに配置する連結プログラム配置手順と、
を行うことを特徴とする。
【００１７】
本プログラム配置システム及び方法は、連結される機能プログラムの入出力形式を確認する。本プログラム配置システム及び方法は、当該入出力形式が同じであれば連結プログラムを不要と判断する。当該入出力形式が異なる場合、形式を変換しなければ機能プログラムを連結することができない。そこで、本プログラム配置システム及び方法は、当該入出力形式を変換できる連結プログラムを探し出してコンピュータに配置する。この連結プログラムを介することで機能プログラムを連結することができる。
【００１８】
従って、本発明は、複数の機能プログラムを組み合わせる際に必要となる連結プログラムを自動的に選択し、配置し、自動的に設定を投入できるプログラム配置システム、及びプログラム配置方法を提供することができる。
【００１９】
本発明に係るプログラム配置システムは、前記コンピュータの環境に関する環境情報を取得し、前記コンピュータに配置されている前記機能プログラム及び前記連結プログラムを判断するコンピュータ管理部をさらに備え、
前記連結プログラム制御部は、
前記コンピュータ管理部が取得した前記環境情報の下、前記コンピュータに配置されている前記機能プログラム間を前記連結プログラムで接続するための接続設定の要否を判断する連結設定判断部と、
前記連結設定判断部が前記接続設定を必要と判断した場合に、前記機能プログラム及び前記連結プログラムに前記接続設定を行う連結設定投入部と、
をさらに有することを特徴とする。
【００２０】
また、本発明に係るプログラム配置方法は、
前記コンピュータの環境に関する環境情報を取得し、前記コンピュータに配置されている前記機能プログラム及び前記連結プログラムを判断するコンピュータ管理手順と、
前記コンピュータ管理手順で取得した前記環境情報の下、前記コンピュータに配置されている前記機能プログラム間を前記連結プログラムで接続するための接続設定の要否を判断する連結設定判断手順と、
前記連結設定判断手順で前記接続設定を必要と判断した場合に、前記機能プログラム及び前記連結プログラムに前記接続設定を行う連結設定投入手順と、
をさらに行うことを特徴とする。
【００２１】
更に、各機能プログラムや連結プログラムを接続するための各プログラムへの設定など多くの作業を手動で行う必要があり、容易に行う事ができないという課題もある。本発明は、複数の機能プログラムおよび連結プログラムに必要な設定を自動的に投入するため、当該接続の設定を自動で行うことができる。
【００２２】
本発明に係るプログラム配置システムの前記必要連結プログラム判断部は、
前記連結プログラムを必要と判断した場合に、前記機能プログラムの動作環境、前記連結プログラムの動作環境、及び前記コンピュータ管理部が取得した前記環境情報に基づき、前記コンピュータの環境で動作可能な連結プログラムを選定すること
を特徴とする。
【００２３】
また、各機能プログラムや連結プログラムが正常に動作するかどうかコンピュータのリソース状況に応じてサービス開発者が判断し、プログラムの配置場所や動作させるプログラムの量を変更するという調整作業が必要という課題があった。本発明は、コンピュータ環境や動作環境に応じて機能プログラムや連結プログラムを選定するため、当該調整作業を自動で行うことができる。
【００２４】
本発明に係るプログラム配置システムは、前記機能プログラムの動作環境、及び前記連結プログラムの動作環境に基づいて前記機能プログラム及び前記連結プログラムを動作可能とする１又は複数のコンピュータの配置を要求するコンピュータ制御部をさらに備えることを特徴とする。
【００２５】
また、本発明に係るプログラム配置方法は、前記機能プログラムの動作環境、及び前記連結プログラムの動作環境に基づいて前記機能プログラム及び前記連結プログラムを動作可能とする１又は複数のコンピュータの配置を要求するコンピュータ制御手順をさらに行うことを特徴とする。
【００２６】
機能プログラムを連結したいという要望があってもコンピュータが用意されていない場合もある。この場合、サービス開発者が機能プログラムや連結プログラムに必要なリソース量を満たすコンピュータを選定する選定作業が必要であった。本発明は、機能プログラムや連結プログラムに合わせてコンピュータを配置するため、当該選定作業を自動で行うことができる。
【００２７】
本発明に係るプログラム配置システムはコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【発明の効果】
【００２８】
本発明は、複数の機能プログラムを組み合わせる際に必要となる連結プログラムを自動的に選択し、配置し、自動的に設定を投入できるプログラム配置システム、プログラム配置方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明に係るプログラム配置システムの課題を説明する図である。
【図２】本発明に係るプログラム配置システムの課題を説明する図である。
【図３】本発明に係るプログラム配置システムの構成を説明する図である。
【図４】本発明に係るプログラム配置方法を説明する図である。
【図５】本発明に係るプログラム配置方法で連結プログラムを配置したコンピュータを説明する図である。
【図６】本発明に係るプログラム配置システムの構成を説明する図である。
【図７】本発明に係るプログラム配置方法を説明する図である。
【図８】本発明に係るプログラム配置方法を説明する図である。
【図９】本発明に係るプログラム配置システムの構成を説明する図である。
【図１０】本発明に係るプログラム配置方法を説明する図である。
【図１１】本発明に係るプログラム配置システムが入出力形式を管理するデータベースを説明する図である。（Ａ）は機能プログラムの入出力形式を管理するデータベース、（Ｂ）は連結プログラムの入出力形式を管理するデータベースである。
【発明を実施するための形態】
【００３０】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００３１】
（実施形態１）
図３は、本実施形態のプログラム配置システム３０１を説明する図である。全体システムは、複数の機能プログラムを保管する機能プログラムデータベース１０１、複数の連結プログラムを保管する連結プログラムデータベース１０２、コンピュータ１０３、及びプログラム配置システム３０１を備える。本実施形態では一例として映像再生プログラムと音声認識プログラムを組み合わせた字幕付き映像再生サービスを構築する際の概略構成を示している。
【００３２】
機能プログラムデータベース１０１が保管する映像再生プログラムは単体ではファイルデータなどの映像コンテンツを入力として、再生映像および再生音声をコンピュータのディスプレイおよびスピーカーに出力する。機能プログラムデータベース１０１が保管する音声認識プログラムは単体ではマイクからの音声を入力とし、音声認識結果を文字列としてディスプレイに出力する。
【００３３】
連結プログラムデータベース１０２が保管する仮想マイクは連結プログラムの一例であり、音声データを物理マイクが集音した音声として出力する。コンピュータ１０３は一般的な物理マシンもしくは仮想マシンであり、音声再生の可能なスピーカーや映像表示の可能なディスプレイを備えているものとする。
【００３４】
機能プログラムＤＢ（ＤＢ：データベース）１０１および連結プログラムＤＢ１０２はそれぞれサービス開発者が利用可能な機能プログラムおよび連結プログラムを保存しているＤＢであるが、これらのデータベースの位置はどこでもよい。例えば、これらのデータベースが全体システムの外部にあり、ネットワークを通じて全体システムに配信されてもよい。
【００３５】
プログラム配置システム３０１は、機能プログラム管理部１０、連結プログラム管理部２０及び連結プログラム制御部３０を備える。機能プログラム管理部１０は、機能プログラムの入出力形式に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する機能プログラム入出力形式管理部１１を有する。連結プログラム管理部２０は、連結プログラムの入出力形式に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する連結プログラム入出力形式管理部２１を有する。
【００３６】
連結プログラム制御部３０は、
入力された、組み合わせる複数の機能プログラム、及び前記機能プログラムを接続する順序を指定する接続情報に基づいて、それぞれの前記機能プログラムの入出力形式を取得し、前記接続情報が指定する順序で前記機能プログラムを接続する連結プログラムの要否を判断する必要連結プログラム判断部３１と、
必要連結プログラム判断部３１が前記連結プログラムを必要と判断した場合に、取得した入出力形式に合致する連結プログラムをコンピュータに配置する連結プログラム配置部３２と、
を有する。
つまり、必要連結プログラム判断部３１は機能プログラムの入出力形式から必要となる連結プログラムを判断し、連結プログラム配置部３２は必要となる連結プログラムを配置する。
【００３７】
図４は、プログラム配置システム３０１の動作を説明するフローチャートである。
当該動作は、コンピュータ１０３上で動作するプログラムを配置するプログラム配置方法であって、
入力された、組み合わせる複数の機能プログラム、及び前記機能プログラムを接続する順序を指定する接続情報に基づいて、それぞれの前記機能プログラムの入出力形式を取得し、前記接続情報が指定する順序で前記機能プログラムを接続する連結プログラムの要否を判断する必要連結プログラム判断手順と、
前記必要連結プログラム判断手順で前記連結プログラムを必要と判断した場合に、取得した入出力形式に合致する連結プログラムをコンピュータ１０３に配置する連結プログラム配置手順と、
を含む。
【００３８】
まずサービス開発者は組み合わせたい機能プログラムとその接続関係（順序関係）を指定する（ステップＳ１２）。ここでは上述のように映像再生プログラムと音声認識プログラムとを接続し、字幕付き映像再生サービスを構築するものとする。機能プログラム入出力形式管理部１１は機能プログラムの入出力形式を管理するデータベースを有する。連結プログラム入出力形式管理部２１は連結プログラムの入出力形式を管理するデータベースを有する。それぞれが入出力形式管理に用いるＤＢ情報の例を図１１に示す。
【００３９】
必要連結プログラム判断部３１は、機能プログラム入出力形式管理部１１に問い合わせを行い、映像再生プログラムの入出力形式および音声認識プログラムの入出力形式を得る（ステップＳ１３）。これにより、映像再生プログラムはファイルデータを入力とし、映像をディスプレイに出力し、音声をスピーカーに出力し、音声認識プログラムはマイクからの音声データを入力とし、文字列をディスプレイに出力することが分かる。したがって、これらを接続するためには映像再生プログラムの音声を入力とし、マイクから入力された音声として出力する連結プログラム（ここでは仮想マイク）が必要であると判断する（ステップＳ１３、Ｓ１４）。つまり、連携する機能プログラムの入出力形式の比較を行い、出力がＡのプログラムと入力がＢのプログラムを連携する場合は、形式Ａを形式Ｂに変換できる連結プログラムを選ぶ。ここでは映像再生プログラムと音声認識プログラムの入出力形式は合致していないが、合致している場合は連結プログラムを配置せず直接機能プログラム同士を連結する。ここで、図１１において、仮想マイクの入力がｖｏｉｃｅ：ｓｐｅａｋｅｒとなっているが、これは本来スピーカーに出力される音声をマシンの内部処理として自身の入力として奪うことを意味している。ＤＢでの保存形式は音声、映像、マイク、スピーカー等の表現方法はほかの方法でも良い。
ステップＳ１２〜Ｓ１４が前記必要連結プログラム判断手順である。
【００４０】
次に、連結プログラム配置部は必要となる連結プログラム（ここでは仮想マイク）をコンピュータに配置する（ステップＳ１５）。「コンピュータに配置」とはプログラムを「コンピュータにインストールする」ことである。これによって、図５のように、映像再生プログラムと音声認識プログラムを組み合わせた字幕付き映像再生サービスを構築することが可能となる。ステップ１５が前記連結プログラム配置手順である。
【００４１】
この時、機能プログラムの配置についてはサービス開発者が組み合わせたい機能プログラムと接続関係を指定する際にそれを受け付けるシステムが配置しても良いし、プログラム配置システム３０１が連結プログラムと合わせて配置しても良い。また機能プログラムを配置するタイミングは任意である。
【００４２】
また図５に示した構成では音声データを音声認識プログラムが利用しているため音声がスピーカーから再生されないが、別途音声ミキサを配置することで音声データをスピーカーにも合わせて出力することで音声を同時に再生できるようにしても良い。この時音声ミキサは本発明の必要連結プログラム判断部３１が、サービス開発者からの音声を再生するかどうかの指示にもとづいて判断し、連結プログラム配置部３２により配置しても良い。この時音声ミキサは連結プログラムの一つである。
【００４３】
また、簡単のためコンピュータを１つのみとしているが、各機能プログラムおよび連結プログラムは別のコンピュータ上で動作していても良い。各プログラムが動作するコンピュータはサービス開発者が指定しても良いし、プログラム配置システム３０１がコンピュータ１０３のリソース状況を考慮するなどして自動的に判断しても良い。
【００４４】
次に、機能プログラムおよび連結プログラムの配置後に設定を投入する場合の説明をする。設定を投入する場合の構成を図６のプログラム配置システム３０２、その動作を図７のフローチャートで説明する。
【００４５】
プログラム配置システム３０２は、図３のプログラム配置システム３０１に対して、コンピュータ１０３の環境に関する環境情報を取得し、コンピュータ１０３に配置されている前記機能プログラム及び前記連結プログラムを判断するコンピュータ管理部４０をさらに備える。
そして、連結プログラム制御部３０は、
コンピュータ管理部４０が取得した前記環境情報の下、コンピュータ１０３に配置されている機能プログラム間を連結プログラムで接続するための接続設定の要否を判断する連結設定判断部３３と、
連結設定判断部３３が接続設定を必要と判断した場合に、機能プログラム及び連結プログラムに接続設定を行う連結設定投入部３４と、
をさらに有する。
【００４６】
コンピュータ管理部４０は、コンピュータ環境管理部４１と配置済み連結プログラム管理部４２を有する。配置済み連結プログラム管理部４２はコンピュータ１０３に既に配置されている連結プログラムに関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する。コンピュータ環境管理部４１は機能プログラムや連結プログラムを動作させるコンピュータ１０３の環境（ハードウェア条件やＯＳ、ＮＷ設定など）に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する。
【００４７】
連結設定判断部３３は機能プログラムを連結させるために必要となる設定を判断する。連結設定投入部３４は機能プログラムを連結させるために必要となる設定を投入する。
【００４８】
図７のフローチャートを使って接続設定の動作を説明する。
当該動作は、コンピュータ１０３の環境に関する環境情報を取得し、コンピュータ１０３に配置されている機能プログラム及び連結プログラムを判断するコンピュータ管理手順と、
前記コンピュータ管理手順で取得した前記環境情報の下、コンピュータ１０３に配置されている機能プログラム間を連結プログラムで接続するための接続設定の要否を判断する連結設定判断手順と、
連結設定判断手順で接続設定を必要と判断した場合に、機能プログラム及び連結プログラムに接続設定を行う連結設定投入手順と、
を含む。
【００４９】
配置済み連結プログラム管理部４２およびコンピュータ環境管理部４１から得られる情報によってコンピュータ１０３にどの機能プログラム及び連結プログラムが配置されているか、コンピュータ１０３にどのような設定が行われているのかが判断できる（ステップＳ２２）。ステップＳ２２は前記コンピュータ管理手順である。
【００５０】
この情報にもとづいて、連結設定判断部３３は機能プログラムおよび連結プログラムの連結に必要な設定を判断し（ステップＳ２３）、必要であれば連結設定投入部３４は機能プログラムおよび連結プログラムに連結に必要な設定を投入する（ステップＳ２４）。ステップＳ２３は前記連結設定判断手順、ステップＳ２４は連結設定投入手順である。
【００５１】
例えば、機能プログラムである映像再生プログラムの音声の出力先を仮想マイクとする設定を投入する、あるいは音声認識プログラムの入力を仮想マイクの出力として選択する設定を投入する、などである。また連結プログラムがＮＷを介して繋がる場合などは、連結プログラムから出力されるデータの宛先ＩＰアドレスを、連結先のコンピュータのＩＰアドレスに設定する、もしくは使用するポート番号を指定する設定をする、などである。
【００５２】
これらの設定を行うために必要となる情報、プログラムなどは機能プログラム毎、連結プログラム毎にスクリプト等の形で用意し、ＤＢに保存しておき適宜読み出しても良いし、機能プログラム入出力形式管理部１１や連結プログラム入出力形式管理部２１が当該情報を持っていても良い。
【００５３】
なお、連結プログラムの選定においては、プログラムを配置するコンピュータ１０３のＯＳや性能（ＣＰＵ性能、メモリ量、ストレージ量）や、ＮＷ設定などに合わせて動作要件を満たすプログラムを選択する、あるいは動作要件を満たすプログラムの中から例えば必要メモリ量の少ないプログラムを選択する、など動作要件の要求の低いものを優先的に選択するなどしても良い。このような選定を行う場合の構成を図６のプログラム配置システム３０２、その動作を図８のフローチャートで説明する。
【００５４】
機能プログラム管理部１０は機能プログラム動作環境管理部１２をさらに有し、連結プログラム管理部２０は連結プログラム動作環境管理部２２をさらに有する。そして、必要連結プログラム判断部３１は、連結プログラムを必要と判断した場合に、機能プログラムの動作環境、連結プログラムの動作環境、及びコンピュータ管理部４０が取得した環境情報に基づき、コンピュータ１０３の環境で動作可能な連結プログラムを選定する。
【００５５】
コンピュータ環境管理部４１は機能プログラムや連結プログラムを動作させるコンピュータの環境（ハードウェア条件やＯＳ、ＮＷ設定など）に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する。
【００５６】
連結プログラム動作環境管理部２２は連結プログラムの動作環境に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する（動作するハードウェアやＯＳ、ＮＷ設定などの条件に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する）。
【００５７】
機能プログラム動作環境管理部１２は機能プログラムの動作環境に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する（動作するハードウェアやＯＳ、ＮＷ設定などの条件に関する情報を保存し、他の機能部に要求時など必要に応じて情報を提供する）。
【００５８】
図８のフローチャートを使って選定動作の動作を説明する。図８のフローチャートは図４のフローチャートにさらにステップＳ３１〜Ｓ３３が含まれる。以下ではステップＳ３１〜Ｓ３３について説明する。
【００５９】
必要連結プログラム判断部３１は、コンピュータ環境管理部４１および連結プログラム動作環境管理部２２および機能プログラム動作環境管理部１２から得られる情報を元に、コンピュータ上で動作環境を満たすことが可能な連結プログラムを選定する（ステップＳ３１）。必要であれば必要リソースの少ない連結プログラムを選定するなどしても良い。
【００６０】
機能プログラムおよび連結プログラムを配置し動作させる時、動作環境を満たすことが可能なコンピュータが存在しない、あるいは動作環境を満たすことが可能な連結プログラムが存在しない場合、連結プログラムの配置を終了する（ステップＳ３２、Ｓ３３）。この時、エラーメッセージを出し動作環境を満たす事が可能な連結プログラムが存在しない事を通知しても良い。
【００６１】
また、サービス開発者が特定の機能プログラムを指定しておらず、任意の機能プログラムを選択可能である場合（つまり、例えば映像再生プログラムであればなんでも良い、というような指定をしている場合）がある。このような場合、上記説明と同様に、コンピュータ上で動作環境を満たすことが可能な機能プログラムを選定しても良い。
【００６２】
（実施形態２）
図９は本実施形態のプログラム配置システム３０２を説明する図である。全体システムは、複数の機能プログラムを保管する機能プログラムデータベース１０１、複数の連結プログラムを保管する連結プログラムデータベース１０２、及びプログラム配置システム３０２を備える。本実施形態でも一例として映像再生プログラムと音声認識プログラムを組み合わせた字幕付き映像再生サービスを構築する際の概略構成を示している。
【００６３】
プログラム配置システム３０２は、機能プログラム管理部１０、連結プログラム管理部２０、連結プログラム制御部３０、及び機能プログラムの動作環境、及び連結プログラムの動作環境に基づいて機能プログラム及び連結プログラムを動作可能とする１又は複数のコンピュータの配置を要求するコンピュータ制御部５０を備える。本実施形態では、機能プログラムおよび連結プログラムを配置するコンピュータがあらかじめ用意されていないものとし、コンピュータ制御部５０が機能プログラムおよび連結プログラムに応じてコンピュータを自動的に配置し、その上で機能プログラムおよび連結プログラムを配置する。実施形態１に記載の手順によって、サービス開発者が構築したいサービスに必要となる機能プログラムおよび連結プログラムが決定しており、それらが必要とするリソース量が分かっているものとする。
【００６４】
コンピュータ制御部５０は、必要コンピュータ判断部５１、コンピュータ配置部５２、及びコンピュータ設定投入部５３を有する。必要コンピュータ判断部５１は組み合わせる複数の機能プログラムと連結プログラムから必要となるコンピュータを判断する。コンピュータ配置部５２は必要となるコンピュータを起動するとともに配置を行う。コンピュータ設定投入部５３はコンピュータを動作させるための設定を投入する。
【００６５】
図１０のフローチャートを使ってコンピュータの配置動作を説明する。
当該動作は、機能プログラムの動作環境、及び連結プログラムの動作環境に基づいて機能プログラム及び連結プログラムを動作可能とする１又は複数のコンピュータの配置を要求するコンピュータ制御手順であって、図４のステップＳ１４の後段且つステップＳ１５の前段に行う。
【００６６】
必要コンピュータ判断部５１は、使用する機能プログラムおよび連結プログラムおよびそれらが必要とするリソース量から、コンピュータの台数やリソース量を決定する（ステップＳ４２）。この時、リソース量は各プログラムの動作環境を満たすことが可能なリソースを確保するが、最低限のリソース量を確保しても良いし、料金などその他の条件に基づいてそれ以上のリソースを確保しても良い。
【００６７】
コンピュータ配置部５２は、例えば仮想マシンマネージャやコンピュータプロバイダのオーダーシステムなどに対して、コンピュータの配置を指示し（ステップＳ４３）、コンピュータを実際に配置する（ステップＳ４６）。コンピュータの配置は仮想マシンマネージャやコンピュータプロバイダのオーダーシステムなどが行っても良いし、コンピュータ配置部５２が直接行っても良い。この時、コンピュータが必要とするリソースが確保できない場合は、エラーとして通知しても良い（ステップＳ４４、Ｓ４５）。コンピュータ設定投入部５３は、各プログラムが動作可能となるよう、必要な設定（ＮＷ設定やＯＳの設定など）を投入する（ステップＳ４７、Ｓ４８）。
【００６８】
その後、実施形態１で説明したようにコンピュータ上に機能プログラム及び連結プログラムを配置する（ステップＳ１５）。
【００６９】
（実施形態３）
スマートフォンなどの端末上で、カメラに映る映像を入力として、カメラに写っている文字を認識し翻訳するアプリＢに対して、映像の出力形式がディスプレイへの出力のみである動画アプリＡ（例：Ｙｏｕｔｕｂｅアプリ）が再生する映像を入力することを考える。
【００７０】
この時、前述の手順と同様にして、連結プログラム配置部３２は、動画アプリＡの映像を受け取った上でスマートフォンのカメラで撮影しているように見せる連結プログラム（仮想カメラ）をスマートフォン上に配置する。次に、連結設定判断部３３および連結設定投入部３４は、スマートフォン上で動画アプリＡおよび連結プログラムを接続する設定およびそれらをバックグランドで動作させる設定を行う。次に、翻訳アプリＢをフォアグラウンドで起動する設定を行う。これによって、翻訳アプリＢは仮想カメラの映像（動画アプリＡが再生している映像）を入力とし、映像に映る文字を認識し翻訳することが可能となる。
【００７１】
これらは、サービス開発者がそれぞれのプログラムについてバックグランド動作、フォアグラウンド動作のいずれにするかを指定しても良いし、スマートフォンであれば最終的にユーザが情報を受け取る機能プログラムをフォアグラウンド動作させ、それ以外のプログラムはバックグランド動作とするなど、端末に応じて自動的に決定するなどしても良い。
【００７２】
（発明の効果）
本発明は、複数の機能プログラムの入出力形式を適合させる形で連結プログラムを自動的に配置することで、機能プログラムの入出力形式に関する知識や連結プログラムの入出力形式に関する知識がない状態でも、従来機能プログラムのみでは組み合わせる事が不可能だった機能プログラムを連結プログラムを介して組み合わせ、容易かつ低コストでサービスを構築することが可能となる。
本発明は、複数の機能プログラムおよび連結プログラムに必要な設定を自動的に投入することで、人手での作業や確認を減らすことができ、コストの削減に繋がる。
本発明は、コンピュータ環境、動作環境に応じて機能プログラムや連結プログラムを自動的に選定することで、容易かつ低コストでサービスの動作要件を満たすことができる。
本発明は、機能プログラムや連結プログラムに応じてコンピュータを配置することで、容易かつ低コストにサービスに必要となるコンピュータを用意することができる。
本発明は、機能プログラムおよび連結プログラムのバックグラウンド動作、フォアグラウンド動作などの設定を行うことができる。
【００７３】
［付記］
以下は、本実施形態のプログラム配置システムを説明したものである。
（１）：機能プログラム入出力形式管理部１１と、連結プログラム入出力形式管理部２１と、必要連結プログラム判断部３１と、連結プログラム配置部３２とを備えることを特徴とするプログラム配置システム。
本プログラム配置システムは、連結プログラムと機能プログラムを自動的にコンピュータ１０３に配置できる。
【００７４】
（２）：上記（１）のプログラム配置システムは、コンピュータ環境管理部４１、配置済み連結プログラム管理部４２、連結設定判断部３３及び連結設定投入部３４をさらに備える。
本プログラム配置システムは、設定を自動的に投入できる。
【００７５】
（３）：上記（１）のプログラム配置システムは、機能プログラム動作環境管理部１２、連結プログラム動作環境管理部２２及びコンピュータ環境管理部４１をさらに備える。
本プログラム配置システムは、コンピュータ環境に合わせた機能プログラム、連結プログラムを選定することが可能となる。
【００７６】
（４）：上記（１）のプログラム配置システムは、機能プログラム動作環境管理部１２、連結プログラム動作環境管理部２２、必要コンピュータ判断部５１、コンピュータ配置部５２及びコンピュータ設定投入部５３をさらに備える。
本プログラム配置システムは、容易かつ低コストにサービスに必要となるコンピュータを用意することができる。
【００７７】
（５）：上記（１）のプログラム配置システムは、サービス種別や端末などの環境に応じてプログラムのフォアグラウンド動作及びバックグランド動作の設定を行うことができる。
本プログラム配置システムは、スマートフォン等のユーザが複数のアプリを同時に動作させることを想定していない環境において、複数の機能プログラムを連結し動作することが可能となる。またその設定を容易かつ低コストに行うことができる。
【符号の説明】
【００７８】
３０１、３０２：プログラム配置システム
１０１：機能プログラムデータベース
１０２：連結プログラムデータベース
１０３：コンピュータ
１０：機能プログラム管理部
・機能プログラム入出力形式管理部１１：機能プログラムの入出力形式を管理する（デバイス形式、データフォーマット形式、ＮＷプロトコル形式など）
・機能プログラム動作環境管理部１２：機能プログラムの動作環境を管理する（動作するハードウェアやＯＳやＮＷ設定などの条件を管理する）
２０：連結プログラム管理部
・連結プログラム入出力形式管理部２１：連結プログラムの入出力形式を管理する（データフォーマット形式、ＮＷプロトコル形式など）
・連結プログラム動作環境管理部２２：連結プログラムの入出力形式を管理する（動作するハードウェアやＯＳやＮＷ設定などの条件を管理する）
３０：連結プログラム制御部
・必要連結プログラム判断部３１：機能プログラムの入出力形式、動作環境から必要となる連結プログラムを判断する
・連結プログラム配置部３２：必要となる連結プログラムを配置（インストール）する
・連結設定判断部３３：各プログラムを連結させるための設定を判断する
・連結設定投入部３４：各プログラムを連結させるための設定を投入する
４０：コンピュータ管理部
・コンピュータ環境管理部４１：機能プログラムや連結プログラムを動作させるコンピュータの環境（ハードウェア条件やＯＳやＮＷ設定など）を管理する
・配置済み連結プログラム管理部４２：コンピュータに既に配置されている連結プログラムを管理する
５０：コンピュータ制御部
・必要コンピュータ判断部５１：組み合わせる複数の機能プログラムと連結プログラムから必要となるコンピュータを判断する
・コンピュータ配置部５２：必要となるコンピュータを配置する
・コンピュータ設定投入部５３：コンピュータを動作させるための設定を投入する
【００７９】
なお、管理部は必要となる情報を保存するＤＢなども含む。各設定投入部は必要であれば設定が正しく完了しているかを確認する機能部なども含む。
【図１】
2018185684.tif 000003
【図２】
2018185684.tif 000004
【図３】
2018185684.tif 000005
【図４】
2018185684.tif 000006
【図５】
2018185684.tif 000007
【図６】
2018185684.tif 000008
【図７】
2018185684.tif 000009
【図８】
2018185684.tif 000010
【図９】
2018185684.tif 000011
【図１０】
2018185684.tif 000012
【図１１】
2018185684.tif 000013