(57)【要約】      （修正有）【課題】自動プロセスを動作させるシステム及び方法を提供する。【解決手段】システムは、データベース１０６に対して通信可能に接続された第１コンピュータ１０２を備える。第１コンピュータ１０２は、データベース１０６が格納しているデータを利用して、自動プロセスの動作に対して影響する命令を実行するように構成されている。自動プロセスを動作させる方法は、データベース１０６に対して通信可能に接続された第１コンピュータ１０２を提供するステップ、自動プロセスを実行するように第１コンピュータ１０２を構成するステップ、データベース１０６格納しているデータを用いて自動プロセスを実行するステップ、を有する。【選択図】図１
2019049994.tif 000002
【特許請求の範囲】
【請求項１】
自動プロセスを動作させるシステムであって、
少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンを備え、前記少なくとも１つの仮想マシンは前記少なくとも１つのデータベースサーバおよび前記少なくとも１つのアプリケーションサーバと通信可能に接続されており、
前記少なくとも１つのアプリケーションサーバは、前記少なくとも１つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するように構成されており、
前記少なくとも１つの仮想マシンは、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するように構成されている
ことを特徴とするシステム。
【請求項２】
前記少なくとも１つのデータベースサーバ、前記少なくとも１つのアプリケーションサーバ、および前記少なくとも１つの仮想マシンは、第１セットを形成し、
前記システムはさらに、少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンの第２セットを備え、
前記第１および第２セットは、各前記セットの前記少なくとも１つのアプリケーションサーバと各前記セットの前記少なくとも１つのデータベースサーバが互いに通信できるように、通信可能に接続されており、
各前記セットのうちいずれかの前記少なくとも１つのアプリケーションサーバは、前記第１および第２セットのうち少なくとも１つの前記少なくとも１つの仮想マシンに対して命令を提供するように構成されており、
前記第２セットの前記少なくとも１つのデータベースサーバは、前記第１セットの前記少なくとも１つのデータベースサーバのミラーである
ことを特徴とする請求項１記載のシステム。
【請求項３】
各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理するように構成されている
ことを特徴とする請求項１または２記載のシステム。
【請求項４】
前記少なくとも１つの仮想マシンはさらに、アクセシビリティインターフェース；公開ＡＰＩ；およびオペレーティングシステムのプレゼンテーション技術のうちいずれか１以上と対話することにより、前記自動プロセスを実施するように構成されている
ことを特徴とする請求項１から３のいずれか１項記載のシステム。
【請求項５】
前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム；データベース；記憶されたファイルまたは文書のうちいずれか１以上からのデータに対して実施されるように構成されている
ことを特徴とする請求項１から４のいずれか１項記載のシステム。
【請求項６】
前記少なくとも１つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し；前記少なくとも１つの仮想マシンをシャットダウンし；前記少なくとも１つの仮想マシンをリスタートし；前記少なくとも１つの仮想マシンを起動するためのリモートアクセスが制限されるように構成されている
ことを特徴とする請求項１から５のいずれか１項記載のシステム。
【請求項７】
自動プロセスを動作させる方法であって、
少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンを提供するステップであって、前記少なくとも１つの仮想マシンは前記少なくとも１つのデータベースサーバおよび前記少なくとも１つのアプリケーションサーバと通信可能に接続されている、ステップ、
前記アプリケーションサーバにより、前記少なくとも１つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するステップ、
前記少なくとも１つの仮想マシン上で、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するステップ、
を有することを特徴とする方法。
【請求項８】
前記少なくとも１つのデータベースサーバ、前記少なくとも１つのアプリケーションサーバ、および前記少なくとも１つの仮想マシンは、第１セットを形成し、
前記方法はさらに、
少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンの第２セットを提供するステップであって、前記第１および第２セットは、各前記セットの前記少なくとも１つのアプリケーションサーバと各前記セットの前記少なくとも１つのデータベースサーバが互いに通信できるように、通信可能に接続されている、ステップ、
各前記セットのうちいずれかの前記少なくとも１つのアプリケーションサーバを、前記第１および第２セットのうち少なくとも１つの前記少なくとも１つの仮想マシンに対して命令を提供するように構成するステップ、
前記第２セットの前記少なくとも１つのデータベースサーバ上で、前記第１セットの前記少なくとも１つのデータベースサーバをミラーリングするステップ、
を有することを特徴とする請求項７記載の方法。
【請求項９】
各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理する
ことを特徴とする請求項７または８記載の方法。
【請求項１０】
前記少なくとも１つの仮想マシンは、アクセシビリティインターフェース；公開ＡＰＩ；およびオペレーティングシステムのプレゼンテーション技術のうちいずれか１以上と対話することにより、少なくとも１つの前記自動プロセスを実施する
ことを特徴とする請求項７から９のいずれか１項記載の方法。
【請求項１１】
前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム；データベース；記憶されたファイルまたは文書のうちいずれか１以上からのデータに対して実施される
ことを特徴とする請求項７から１０のいずれか１項記載の方法。
【請求項１２】
前記少なくとも１つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し；前記少なくとも１つの仮想マシンをシャットダウンし；前記少なくとも１つの仮想マシンをリスタートし；前記少なくとも１つの仮想マシンを起動するためのリモートアクセスが制限される
ことを特徴とする請求項７から１１のいずれか１項記載の方法。
【請求項１３】
各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する
ことを特徴とする請求項３記載のシステムまたは請求項９記載の方法。
【請求項１４】
前記第２セットは、前記第１セットのエラー時に起動されるまでは休止している
ことを特徴とする請求項２記載のシステムまたは請求項８記載の方法。
【請求項１５】
特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも１つのパスワードは、前記少なくとも１つのデータベースサーバ上の暗号化されたクレデンシャルストア内に格納される
ことを特徴とする請求項１から６、１３、１４のいずれか１項記載のシステムまたは請求項７から１４のいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動プロセスのためのシステムに関するものである。具体的には、現在は情報のマニュアル転送およびシステム間または単一システム内のコマンドによって実施されている自動プロセスに関するものである。
【背景技術】
【０００２】
所望の（または望まない）変化が生じる際には、ビジネスが運用される態様に沿って別の変化が必要となる場合がしばしばある。例えば新製品の立ち上げは既存システムの統合を必要とし、新たな規制はプロセスステップの記録を必要とし、買収は２つの製品ラインやプロセスの併合を必要とする。従来の企業システムプランニングおよびロールアウトは、これら問題を吸収し得る。しかしこれら計画サイクルは大規模プロジェクトのために設計されており、日々のオペレーション上の変更をサポートしていない。その結果、多大なコストを払って変更を実装し、これは長年に及ぶ場合もある。現行システムの機能を置き換え必要な新機能を提供する新システムを開発しなければならず、信頼性をもって実装される前に多大なテストと品質保証が必要だからである。これらシステムはまた、コンピュータプログラミングとアプリケーション開発において必要な専門家スキルを有する人々が設計し構成する必要がある。これにより、開発プロセスはさらに多くの時間を必要とする。組織内に必要なスキルを有する者が比較的少ない場合があるからであり、またシステムがいったん実装されると現行システムのユーザが新システムに慣れる時間が長くかかりプロセスは非効率性や非正確性によって特徴付けられるからである。
【０００３】
バックオフィスのビジネスプロセスは、複数の独立した互換性のないソフトウェアアプリケーションを用いる場合があるので、問題となる。これらソフトウェアアプリケーションのうちいくつかは、他ソフトウェアアプリケーションがやり取りするための既定インターフェースを提供することによってアプリケーション内外の情報を転送可能とするＡＰＩを有する場合がある。しかし常にそのようなものが備わっているわけではない。例えば、これらバックオフィスビジネスプロセスにおいて用いられる多くのソフトウェアアプリケーションは、他ソフトウェアアプリケーションが容易にアクセスできるようにするため必要とする機能を備えていない古いアプリケーションである。あるいは、特定用途に供するカスタム内製ソフトウェアソリューションの場合もある。この場合、他アプリケーションとやり取りできるようにするインターフェースを提供するニーズは、予定されていない。従来、これはソフトウェアアプリケーション間のギャップを架橋するオペレーションスタッフを用いることによって克服している。オペレーションスタッフを用いるのは、コスト高なソリューションである。多数のオペレーションスタッフを雇用して要求される性能を提供する必要があるからである。これら非互換のソフトウェアアプリケーション間またはシステム間のギャップは人間によって架橋されるので、プロセスは通常遅いものとなる。オペレーションスタッフは１日の一部のみ働き、キーパッド／マウス／その他インターフェースを用いて情報やコマンドを入力する速度により制限され、スクリーン／その他出力から情報を読み取る速度に制限されるからである。さらに人間は、システムに対してデータやコマンドを入力する際、および他から情報を読み取る際にエラーを起こし易く、他方でコンピュータはそのようなことはない。またオペレーションスタッフをこのように用いる際に、システムとデータに対する悪意ある干渉が生じる可能性もある。
【０００４】
例えば通信プロバイダは、新たな携帯電話ハンドセットを立ち上げる場合がある。これは既存ソフトウェアアプリケーションと新システムを用いることを必要とし、これらは互換性がない場合もある。この不足分はオペレーションスタッフによって埋められるが、そのような新製品の立ち上げの要求を予測するのは困難である場合があり、ソフトウェアシステムを用いるようにトレーニングを受けたスタッフが多過ぎたり少な過ぎたりする可能性がある。したがって、この非互換ソフトウェアシステム間のギャップは、要求に対する詳細な先行知識なしでその要求に対処できる高速スケーリングを可能にするソリューションによって埋めることが望ましい。
【０００５】
このようなシステムにおいて、個人情報などの繊細な情報が多量に処理される場合がある。この情報を、エラー個数が削減される一貫した方法で取り扱うことが望ましい。ここでいうエラーとは、人間が情報をシステム間でコピーすることに関するものである。またこの情報は、絶対的に必要なときのみアクセスできる秘匿された安全な方法で取り扱うことが望ましい。
【０００６】
これら問題は、既存ソフトウェアアプリケーションが新たに実装するプロセスのために必要な機能にとって不足する部分を埋めるオペレーションスタッフを必要とし、これは当該ビジネスバックオフィス固有のものではない。例えば病院受付や医師の手術は、予約する患者が多い多忙な環境である。受付担当者は、予約のために到着した患者から詳細を聞き取りその患者の予約をチェックするソフトウェアアプリケーションにこれを入力する、などのルーティンタスクを処理するために多くの時間を割く。このプロセスは時間がかかり、患者の詳細を聞き誤ることにより不正確となる場合があり、受付担当者が他の仕事をする時間を奪う。
【０００７】
病院受付や医師の手術においてセルフサービスチェックインキオスクを提供することが望ましい。これにより、患者は自身の詳細情報をシステムに入力して不正確さを最小化し、受付担当者はその他タスクを処理することができ、待ち時間が減少する。しかし、受付担当者に対して提供されるものと同じインターフェースを患者に対して提供するのは適切ではない。受付担当者が使用するソフトウェアアプリケーションは、患者にとって不必要に複雑な応用的機能を備えている傾向があり、あるいはそのようなアプリケーションは管理機能やセルフサービスチェックインキオスクを用いる患者に対して提供するのに適していない情報に対するアクセスを備えているからである。既存の受付アプリケーションが、セルフサービスキオスク上で動作する新アプリケーションのために特定の機能や仕組みへのアクセスを提供しない限り、システムを実装するため必要な機能を提供する新ソフトウェアアプリケーションやシステムを開発したとき、バックオフィスビジネスプロセスにおける変化に関連する同様の長いプランニングサイクル、費用、非効率、不正確さが生じる。これによりプロジェクトが着手されないことがしばしばある。
【０００８】
本発明の目的は、上記課題のうち１以上を解決することである。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の第１側面において、自動プロセスを実行するシステムを提供する。実施形態１において、前記システムはデータベースに対して通信可能に接続された第１コンピュータを備え、前記第１コンピュータは、前記データベースが格納しているデータを利用して、自動プロセスの動作に対して影響する命令を実行するように構成されている。
【００１０】
望ましくは、前記データベースは、データベースサーバ上に格納されている。あるいは、前記データベースは前記第１コンピュータ上に格納されている、または前記データベースは第２コンピュータ上に格納されている。
【００１１】
望ましくは、前記第１コンピュータは、少なくとも１つの仮想マシンをホストするように構成されており、前記少なくとも１つの仮想マシンは、前記自動プロセスを実行するように構成されている。
【００１２】
望ましくは、前記システムはさらに、アプリケーションサーバを備える。前記アプリケーションサーバは、専用サーバとして動作する第２コンピュータ上にホストすることもできるし、前記第１コンピュータは、前記アプリケーションサーバをホストするように構成することもできる。
【００１３】
本発明の第１側面の実施形態２において、自動プロセスを動作させるシステムを提供する。前記システムは、少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンを備える。前記少なくとも１つの仮想マシンは、前記少なくとも１つのデータベースサーバおよび前記少なくとも１つのアプリケーションサーバと通信可能に接続されている。前記少なくとも１つのアプリケーションサーバは、前記少なくとも１つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するように構成されている。前記少なくとも１つの仮想マシンは、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するように構成されている。
【００１４】
本発明の第１側面の実施形態３において、自動プロセスを動作させるシステムを提供する。前記システムは、実施形態２の特徴を備えている。前記少なくとも１つのデータベースサーバ、前記少なくとも１つのアプリケーションサーバ、および前記少なくとも１つの仮想マシンは、第１セットを形成する。前記システムはさらに、少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンの第２セットを備える。前記第１および第２セットは、各前記セットの前記少なくとも１つのアプリケーションサーバと各前記セットの前記少なくとも１つのデータベースサーバが互いに通信できるように、通信可能に接続されている。各前記セットのうちいずれかの前記少なくとも１つのアプリケーションサーバは、前記第１および第２セットのうち少なくとも１つの前記少なくとも１つの仮想マシンに対して命令を提供するように構成されている。前記第２セットの前記少なくとも１つのデータベースサーバは、前記第１セットの前記少なくとも１つのデータベースサーバのミラーである。
【００１５】
望ましくは、各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理するように構成されている。
【００１６】
望ましくは、各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくともデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
【００１７】
各前記セットのうち少なくとも１つはさらに、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンおよび各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対して通信可能に接続された通信サーバを備える。前記通信サーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理するように構成されている。
【００１８】
前記少なくとも１つのデータベースサーバは、複数のデータベースを保持することができる。
【００１９】
前記少なくとも１つの仮想マシンは、標準エンドユーザデスクトップオペレーティングシステムを備えることができる。
【００２０】
望ましくは、前記少なくとも１つの仮想マシンは２以上の仮想マシンを備え、前記仮想マシンは少なくとも１つのリソースプールへグループ化されている。
【００２１】
望ましくは、前記少なくとも１つのリソースプールはコントローラを備え、前記コントローラは前記少なくとも１つのリソースプール内の仮想マシンである。
【００２２】
望ましくは、前記少なくとも１つのリソースプールの前記コントローラは、タイムスタンプと併せてデータベースレコードを更新するように構成されており、前記データベースレコードは、前記少なくとも１つのリソースプールの前記コントローラとして動作する前記仮想マシンのＩＤを保持する。
【００２３】
望ましくは、前記少なくとも１つのリソースプール内の全ての仮想マシンは、前記少なくとも１つのアプリケーションサーバから命令を受け取るように構成されており、さらに前記少なくとも１つのアプリケーションサーバからの命令を前記少なくとも１つのリソースプールの前記コントローラとして動作する前記仮想マシンに対して転送するように構成されている。
【００２４】
望ましくは、前記少なくとも１つのリソースプールの各前記仮想マシンは、前記少なくとも１つのリソースプールの現行の前記コントローラが機能停止した場合、前記少なくとも１つのリソースプールの前記コントローラとして動作する前記仮想マシンのＩＤを保持する前記データベースレコードを更新することにより、前記少なくとも１つのリソースプールのコントローラを引き継ぐように構成されている。
【００２５】
前記少なくとも１つのリソースプールの前記コントローラは、前記アプリケーションサーバであってもよい。
【００２６】
前記第１および第２セットの前記少なくとも１つのリソースプールの前記コントローラは、マスタアプリケーションサーバであってもよい。
【００２７】
前記少なくとも１つの仮想マシンはさらに、アクセシビリティインターフェース；公開ＡＰＩ；およびオペレーティングシステムのプレゼンテーション技術のうちいずれか１以上と対話することにより、前記自動プロセスを実施するように構成することができる。
【００２８】
前記少なくとも１つの仮想マシンはさらに、ＨＴＭＬ文書内のＨＴＭＬエレメントを解釈することにより、前記自動プロセスを実施するように構成することができる。
【００２９】
前記少なくとも１つの仮想マシンは、ユーザインターフェースの定義領域内のテキストが使用するフォントを識別し、前記識別したフォントを使用する前記ユーザインターフェースの前記定義領域内の前記テキストの文字を識別することにより、少なくとも１つの前記自動プロセスを実施するように構成することができる。
【００３０】
望ましくは、前記システムはさらに、前記少なくとも１つの仮想マシンが実施する前記自動プロセスを観察するように構成された端末を備える。
【００３１】
本発明の第１側面の実施形態３において、前記第１および第２セットは、広域ネットワーク接続によって接続することができる。あるいは前記第１および第２セットは、ローカルエリアネットワークによって接続することができる。
【００３２】
本発明の第１側面の実施形態３において、前記第１および第２セットは、異なる物理サイトに配置することができる。
【００３３】
本発明の第１側面の実施形態３において、前記第２セットは、前記第１セットのエラー時に起動されるまでは休止することができる。
【００３４】
望ましくは、本発明の第１側面の実施形態３において、前記第１および第２セットの前記少なくとも１つのアプリケーションサーバは、各前記セットの前記少なくとも１つの仮想マシンから各前記セットの前記少なくとも１つのデータベースサーバに対する接続を管理するように構成されている。
【００３５】
望ましくは、本発明の第１側面の実施形態３において、各前記セットの前記少なくとも１つのアプリケーションサーバは、各前記セットの前記少なくとも１つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
【００３６】
望ましくは、前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム；データベース；記憶されたファイルまたは文書のうちいずれか１以上からのデータに対して実施されるように構成されている。
【００３７】
望ましくは、本発明の第１側面の実施形態３において、前記第１セットの前記少なくとも１つのリソースプール内の仮想マシンの構成および個数は、前記第２セットの前記少なくともリソースプール内の仮想マシンの構成および個数と同じである。
【００３８】
望ましくは、前記少なくとも１つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し；前記少なくとも１つの仮想マシンをシャットダウンし；前記少なくとも１つの仮想マシンをリスタートし；前記少なくとも１つの仮想マシンを起動するためのリモートアクセスが制限されるように構成されている。
【００３９】
望ましくは、特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも１つのパスワードは、前記データベースサーバ上の暗号化クレデンシャルストア内に格納される。望ましくは、前記少なくとも１つの仮想マシンは、前記暗号化クレデンシャルストア内の前記少なくとも１つのパスワードを、前記システム外において未知のランダムパスワードへ更新するように構成されている。
【００４０】
本発明の第２側面において、自動プロセスを動作させる方法を提供する。前記第２側面の実施形態１において、自動プロセスを動作させる方法は、データベースに対して通信可能に接続された第１コンピュータを提供するステップ；自動プロセスを実行するように前記第１コンピュータを構成するステップ；前記データベースが格納しているデータを用いて前記自動プロセスを実行するステップ；を有する。
【００４１】
望ましくは、前記データベースはデータベースサーバ上に格納されている。あるいは前記データベースは、前記第１コンピュータ上に格納し、または第２コンピュータ上に格納することができる。
【００４２】
望ましくは、前記第１コンピュータを構成するステップは、
前記第１コンピュータ上に少なくとも１つの仮想マシンをホストするように前記第１コンピュータを構成するステップ；前記自動プロセスを実行するように前記少なくとも１つの仮想マシンを構成するステップ；を有する。
【００４３】
望ましくは、実施形態１の方法はさらに、アプリケーションサーバを提供するステップを有する。前記方法は、前記第１コンピュータがアプリケーションサーバをホストするように構成するステップを有することもできるし、専用サーバを提供するステップ；前記アプリケーションサーバを前記専用サーバ上にホストするステップ；を有することもできる。
【００４４】
本発明の第２側面の実施形態２において、自動プロセスを動作させる方法を提供する。前記方法は、少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンを提供するステップであって、前記少なくとも１つの仮想マシンは前記少なくとも１つのデータベースサーバおよび前記少なくとも１つのアプリケーションサーバと通信可能に接続されている、ステップ；前記アプリケーションサーバにより、前記少なくとも１つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するステップ；前記少なくとも１つの仮想マシン上で、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するステップ；を有する。
【００４５】
本発明の第２側面の実施形態３において、自動プロセスを動作させる方法を提供する。前記方法は、実施形態２の全ステップを備える。前記少なくとも１つのデータベースサーバ、前記少なくとも１つのアプリケーションサーバ、および前記少なくとも１つの仮想マシンは、第１セットを形成する。前記方法はさらに、少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンの第２セットを提供するステップであって、前記第１および第２セットは、各前記セットの前記少なくとも１つのアプリケーションサーバと各前記セットの前記少なくとも１つのデータベースサーバが互いに通信できるように、通信可能に接続されている、ステップ；各前記セットのうちいずれかの前記少なくとも１つのアプリケーションサーバを、前記第１および第２セットのうち少なくとも１つの前記少なくとも１つの仮想マシンに対して命令を提供するように構成するステップ；前記第２セットの前記少なくとも１つのデータベースサーバ上で、前記第１セットの前記少なくとも１つのデータベースサーバをミラーリングするステップ；を有する。
【００４６】
望ましくは、各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理する。
【００４７】
望ましくは、各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくともデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
【００４８】
各前記セットのうち少なくとも１つはさらに、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンおよび各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対して通信可能に接続された通信サーバを備えることができる。前記通信サーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理することができる。
【００４９】
前記少なくとも１つのデータベースサーバは、複数のデータベースを保持することができる。
【００５０】
前記少なくとも１つの仮想マシンは、標準エンドユーザデスクトップオペレーティングシステムを備えることができる。
【００５１】
望ましくは、前記少なくとも１つの仮想マシンは２以上の仮想マシンを備え、前記仮想マシンは少なくとも１つのリソースプールへグループ化されている。
【００５２】
望ましくは、前記少なくとも１つのリソースプールはコントローラを備え、前記コントローラは前記少なくとも１つのリソースプール内の仮想マシンである。
【００５３】
望ましくは、前記少なくとも１つのリソースプールの前記コントローラは、タイムスタンプと併せてデータベースレコードを更新するように構成されており、前記データベースレコードは、前記少なくとも１つのリソースプールの前記コントローラとして動作する前記仮想マシンのＩＤを保持する。
【００５４】
望ましくは、前記少なくとも１つのリソースプール内の全ての仮想マシンは、前記少なくとも１つのアプリケーションサーバから命令を受け取り、さらに前記少なくとも１つのアプリケーションサーバからの命令を前記少なくとも１つのリソースプールの前記コントローラとして動作する前記仮想マシンに対して転送する。
【００５５】
望ましくは、前記少なくとも１つのリソースプールの各前記仮想マシンは、前記少なくとも１つのリソースプールの現行の前記コントローラが機能停止した場合、前記少なくとも１つのリソースプールの前記コントローラとして動作する前記仮想マシンのＩＤを保持する前記データベースレコードを更新することにより、前記少なくとも１つのリソースプールのコントローラを引き継ぐことができる。
【００５６】
前記少なくとも１つのリソースプールの前記コントローラは、前記アプリケーションサーバであってもよい。
【００５７】
前記第１および第２セットの前記少なくとも１つのリソースプールの前記コントローラは、マスタアプリケーションサーバであってもよい。
【００５８】
前記少なくとも１つの仮想マシンは、アクセシビリティインターフェース；公開ＡＰＩ；およびオペレーティングシステムのプレゼンテーション技術のうちいずれか１以上と対話することにより、少なくとも１つの前記自動プロセスを実施することができる。
【００５９】
前記少なくとも１つの仮想マシンは、ＨＴＭＬ文書内のＨＴＭＬエレメントを解釈することにより、前記自動プロセスを実施することができる。
【００６０】
前記少なくとも１つの仮想マシンは、ユーザインターフェースの定義領域内のテキストが使用するフォントを識別し、前記識別したフォントを使用する前記ユーザインターフェースの前記定義領域内の前記テキストの文字を識別することにより、少なくとも１つの前記自動プロセスを実施することができる。
【００６１】
望ましくは、前記方法はさらに、前記少なくとも１つの仮想マシンが実施する前記自動プロセスを観察するように構成された端末を提供するステップを有する。
【００６２】
本発明の第２側面の実施形態３において、前記第１および第２セットは、広域ネットワーク接続によって接続されている。あるいは、前記第１および第２セットは、ローカルエリアネットワークによって接続することができる。
【００６３】
本発明の第２側面の実施形態３において、前記第１および第２セットは、異なる物理サイトに配置することができる。
【００６４】
本発明の第２側面の実施形態３において、前記第２セットは、前記第１セットのエラー時に起動されるまでは休止することができる。
【００６５】
望ましくは、本発明の第２側面の実施形態３において、前記第１および第２セットの前記少なくとも１つのアプリケーションサーバは、各前記セットの前記少なくとも１つの仮想マシンから各前記セットの前記少なくとも１つのデータベースサーバに対する接続を管理する。
【００６６】
望ましくは、本発明の第２側面の実施形態３において、各前記セットの前記少なくとも１つのアプリケーションサーバは、各前記セットの前記少なくとも１つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
【００６７】
望ましくは、前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム；データベース；記憶されたファイルまたは文書のうちいずれか１以上からのデータに対して実施される。
【００６８】
望ましくは、前記第１セットの前記少なくとも１つのリソースプール内の仮想マシンの構成および個数は、前記第２セットの前記少なくともリソースプール内の仮想マシンの構成および個数と同じである。
【００６９】
望ましくは、前記少なくとも１つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し；前記少なくとも１つの仮想マシンをシャットダウンし；前記少なくとも１つの仮想マシンをリスタートし；前記少なくとも１つの仮想マシンを起動するためのリモートアクセスが制限される。
【００７０】
望ましくは、特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも１つのパスワードは、前記データベースサーバ上の暗号化クレデンシャルストア内に格納される。
【００７１】
望ましくは、前記少なくとも１つの仮想マシンは、前記暗号化クレデンシャルストア内の前記少なくとも１つのパスワードを、前記方法外において未知のランダムパスワードへ更新する。
【図面の簡単な説明】
【００７２】
【図１】本発明に係るシステムの実装の概略図である。
【００７３】
【図２】本発明に係るシステムの別実装の概略図である。
【００７４】
【図３】本発明に係るシステムの別実装の概略図である。
【００７５】
【図４】本発明に係る複数のデータベースサーバを備えるシステムの別実装の概略図である。
【００７６】
【図５】本発明に係る複数のアプリケーションサーバを備えるシステムの別実装の概略図である。
【００７７】
【図６】自動化するプロセスを定義しスケジュールする方法を示すフローチャートである。
【００７８】
【図７】グラフィカルユーザインターフェースの指定領域内において文字を識別する方法を示すフローチャートである。
【発明を実施するための形態】
【００７９】
図面を参照して本発明を説明する。
【００８０】
本発明の実施形態１に係る自動プロセスのためのシステムは、当該自動プロセスにおいて利用するデータを保持するデータベースと接続され、自動プロセスを実行するように構成されたコンピュータを備える。データベースは、自動プロセスを実行するように構成されたコンピュータ上に格納することができる。あるいは、第２コンピュータもしくは専用データベースサーバ上に格納することもできる。本明細書において、“サーバ”という用語は明示的に異なる定義を述べない限り、ソフトウェアと専用ハードウェアサーバを包含するものであると理解されたい。コンピュータ自身は、自動プロセスを実行ように構成することができる。あるいは、自動プロセスを実行するように構成された１以上の仮想マシンをホストするように構成することができる。システムはさらに、自動プロセスを構成し実行するために用いる端末を備えることができる。
【００８１】
図１は、本発明の実施形態１の１形態に基づき実装されたシステムの概略図である。同システムにおいて、少なくとも１つの仮想マシンを利用する。システム１００は、少なくとも１つの仮想マシン１０２をホストするように構成された少なくとも１つのコンピュータ、データベースサーバ１０６、端末１０８を備える。
【００８２】
仮想マシン１０２は、仮想マシン上に格納されたアプリケーションとデータベースサーバ１０６上に格納されたデータを用いて１以上の自動プロセスを実行するように構成されている。仮想マシン１０２上における自動プロセスの実行は、端末１０８によって制御される。端末１０８は、仮想マシン１０２上で実行するプロセスを規定するスケジュールを定義できるように構成することができる。
【００８３】
システムは、アプリケーションサーバを備えることができる。アプリケーションサーバは、仮想マシンおよび／またはデータベースと同じ物理コンピュータ上にホストすることができる。あるいは、別の専用コンピュータやサーバ上にホストすることもできる。アプリケーションサーバの機能については、以下の図面を参照して詳細に説明する。
【００８４】
図２は、本発明の実施形態２に基づき実装されたシステム２００の概略図である。システム２００は、複数の仮想マシン２０２、アプリケーションサーバ２０４、データベースを備える。以下に説明する望ましい実施形態において、データベースはデータベースサーバ２０６上にホストすることができる。アプリケーションサーバ２０４は、単一の物理サーバであってもよいし、仮想サーバであってもよい。同様にデータベースサーバ２０６は、単一の物理サーバであってもよいし、仮想サーバであってもよい。
【００８５】
仮想マシン２０２、アプリケーションサーバ２０４、データベースサーバ２０６は、ネットワーク化され、互いに通信できるようになっている。システム２００は、アプリケーションサーバ２０４が仮想マシン２０２に対して自動プロセスを割り当てて実行させるように構成されている。アプリケーションサーバ２０４が割り当てて仮想マシン２０２が実行する自動プロセスは、ソフトウェアシステム、データベース、ファイル、文書のいずれか１以上に存在するデータに対して実施する、ユーザ定義プロセスである。
【００８６】
実施形態２において、仮想マシン２０２は、標準エンドユーザオペレーティングシステム（望ましくはＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｒｓ（登録商標））の永続仮想インスタンスである。仮想マシン２０２は、１以上のセキュアサーバ上に存在することが望ましい。セキュアサーバとは、適切なセキュリティクリアランスや認証なしでは物理的または遠隔的にアクセスできないものである。仮想マシンが存在するサーバは、例えばＶＭＷａｒｅ  ＥＳＸ（登録商標）などのＴｙｐｅ１ハイパーバイザを実行することが望ましい。ただし、仮想マシンを生成し実行する任意の適当なハードウェアとソフトウェアの構成を用いることができることを理解されたい。仮想マシン２０２は、グラフィック出力を表示するモニタやこれに類する出力デバイスを有していない点において、主要部がないものといえる。複数の仮想マシン２０２を実行することにより、複数の自動プロセスを同時実施して、生産性を改善しまたは複数の外部ユーザに対して同時にサービスを提供することができる。
【００８７】
仮想マシン２０２に対するリモートアクセスは、いったんマシンが構築されると制限されることが望ましい。仮想マシン２０２をリモートから再起動、シャットダウン、スタートアップする機能のみが、リモートアクセスとして必要である。ただし、アプリケーションサーバ２０４が仮想マシン２０２に対してプロセスを実行するよう指示することを除く。この構成により、システムのセキュリティを高めることができる。仮想マシン２０２上で動作している自動プロセスに対してリモート干渉することができないからである。この構成はさらに、仮想マシン上で自動化されたプロセスを実施するオペレーションスタッフを用いるに際してのセキュリティを高めることができる。悪意をもってまたは偶発的に、正しい認証を受けずに別データに対して別態様でプロセスを実施することはできない。認証は、システムを管理しない者に対して提供する必要はない。
【００８８】
仮想マシン２０２上で動作する自動プロセスにとって必須なアプリケーションに対してアクセスするには、パスワードが必要である。パスワードは、暗号化されたクレデンシャルストアに格納される。クレデンシャルストアは、３ＤＥＳを用いて暗号化され、データベースサーバに格納されることが望ましい。ただし、その他任意の適当な暗号方式を用いることもできる。クレデンシャルストアは、例えばアプリケーションサーバ上や仮想マシン上などの任意の適当な場所に格納することができる。自動プロセスは、クレデンシャルストアに格納されているパスワードがシステム２００外において知られていない安全なランダムパスワードへ周期的にアップデートされるように構成することができる。顧客情報、銀行情報などの繊細な情報に対してアクセスするアプリケーションを保護するパスワードは、仮想マシン２０２上の暗号化されたクレデンシャルストアに格納され、オペレーションスタッフに対しては提供されない。よってシステムとアプリケーションおよびその内部に収容される情報のセキュリティが大幅に改善される。クレデンシャルストアからのクレデンシャルリクエストは、仮想マシン２０２のＩＤおよびクレデンシャルを要求するプロセスのＩＤに基づき認証することができる。これにより、認証されたマシンとプロセスのみがクレデンシャルストア内の情報に対してアクセスを許可される。仮想マシン２０２は例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｃｒｅｄｅｎｔｉａｌ  Ｐｒｏｖｉｄｅｒを用いてアプリケーションサーバ２０４を認証することができる。
【００８９】
システム管理者とユーザは、オプションとして、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙを用いて認証することができる。これは管理者やユーザのロールと既存ドメイン構造に対するパーミッションとをリンクするものである。
【００９０】
アプリケーションサーバ２０４は、データベースサーバ２０６に対する仮想マシン２０２の接続を管理するように構成されている。アプリケーションサーバ２０４は、例えばＷｉｎｄｏｗｓ（登録商標）認証やＳＱＬ認証などのデータベースサーバセキュリティクレデンシャルを保持し、データベースにとってセキュア接続プロキシとして動作する。これにより、全ての仮想マシン２０２はアプリケーションサーバ２０４と通信し、アプリケーションサーバ２０４は仮想マシン２０２に代わってデータベースサーバ２０６と安全に通信する。この構成により、システム２００内においてアプリケーションサーバ２０４のみが、正しい認証を受けてデータベースサーバ２０６上に格納されているデータにアクセスし変更するためのデータベースセキュリティクレデンシャルを格納する必要がある場所となる。データベースサーバセキュリティクレデンシャルはシステム２００内の１箇所にのみ格納されているので、各仮想マシン２０２上にセキュリティクレデンシャルを格納するよりもシステムのセキュリティが向上する。また、現在の複数ユーザ複数パスワードシステムよりも向上したセキュリティを提供することができる。
【００９１】
データベースサーバ２０６は、ＳＱＬサーバデータベースであることが望ましい。データベースサーバ２０６は、１以上のＳＱＬサーバデータベースを保持する。ＳＱＬサーバデータベースは、自動プロセス、ユーザクレデンシャル、認証情報、プロセスログ、ワークフロー構成、自動プロセスのスケジューリング情報に関するプロセスとオブジェクトのリポジトリを保持する。１つのデータベース２０６上に複数のＳＱＬスキーマが存在してもよい。これにより、異なる仮想マシン２０２がデータベースサーバ２０６のデータベース内に格納された異なる情報セットを参照して異なる自動プロセスを実行することができる。
【００９２】
データベースサーバ２０６は、ワークキューを格納する。ワークキューにより、仮想マシン２０２上で実行されるプロセスをシステム全体に分散するため、処理を要求するデータを格納することができる。プロセスステージ情報（例えば単純な数字であり、プロセスの現在ステージを示し、これによりプロセスが一時停止したり再開したりできるようにするもの）と例外の詳細も、ワークキューに格納される。データは、直接データベースから取り出し、ＡＰＩ経由で取り出し、または既存のワークフローシステムその他情報ストアにアクセスするＶＭによって、ワークキューに対して充填される。ここでいう情報ストアは、例えばスプレッドシート、電子メール、その他ファイルメカニズムであり、キューを用いて各動作アイテムに対する参照を保持するものである。例えば自動化するプロセスは、１以上のファイルからデータを読み取り、そのデータに応答してまたはそのデータに対してアクションを実施するものである。データが１以上のファイルから読み取られると、そのデータはワークキューに格納され、プロセスを実施する際に用いるまたはプロセスを実施する対象であるワークキューから仮想マシン２０２がデータを取り出すことができるようになる。
【００９３】
ワークキューは、暗号化することもできる。これにより、ワークキュー内のデータのセキュリティレイヤをさらに提供することができる。ワークキューに格納されたデータは、例えば銀行情報、住所、誕生日などの顧客個人情報（あるいはその他多くの繊細な情報）を含む場合がある。したがってこのセキュリティは、実施形態によっては重要である。
【００９４】
端末２０８は、図３に示すように、システム２００上で動作する自動プロセスを定義するため、および仮想マシン２０２を見るために用いられる。端末２０８は、仮想マシン２０２上で実施する自動プロセスのスケジュールを定義するため、および管理者が仮想マシン２０２上で動作するプロセスの開始と終了を手動で見るためにも用いられる。プロセスは、端末２０８を用いてスケジューリングシステムの外で開始し終了することができる。
【００９５】
実施形態２において、アプリケーションサーバ２０４は、仮想マシン２０２に対して個々のプロセスを実行するよう指示することにより、定義されたスケジュールを実施するように構成されている。
【００９６】
アプリケーションサーバ２０４がプロセスのスケジューリングを制御するとともに仮想マシン２０２からデータベースサーバ２０６に対する接続を管理することに代えて、アプリケーションサーバ２０４はプロセスのスケジューリングについてのみ責任を有するようにしてもよい。また、個別のアプリケーションまたはサーバが、仮想マシン２０２からデータベースサーバ２０６への接続を管理するように構成してもよい。
【００９７】
現在はオペレーションスタッフが通常実施しているプロセスを本明細書のシステム上で実施することにより、プロセスのステップを一貫的にエラーなく実施することができる。また、プロセスステップを記録することができる。記録したプロセスステップを解析して、プロセスを実施する速度を改善し、またプロセスそのものも改善することができる。
【００９８】
図３は、本発明の実施形態３に係るシステム３００を示す。システム３００ａと３００ｂはそれぞれ、仮想マシン３０２ａと３０２ｂ、アプリケーションサーバ３０４ａと３０４ｂ、データベースサーバ３０６ａと３０６ｂを備える。実施形態２について先述したように、アプリケーションサーバ３０４ａと３０４ｂ、およびデータベースサーバ３０６ａと３０６ｂは、物理サーバであってもよいし仮想サーバであってもよいしこれらの組み合わせであってもよい。これらは単一サーバであってもよいし複数サーバであってもよく、先述のいずれの態様でセットアップすることもできる。ネットワーク３０８は、アプリケーションサーバ３０４ａと３０４ｂおよびデータベースサーバ３０６ａと３０６ｂを接続する。ネットワーク３０８は、ＬＡＮでもよいしＷＡＮでもよい。システム３００ａと３００ｂは、同一サイトに配置することもできるし、別サイトに配置することもできる。
【００９９】
システム３００ａと３００ｂにわたるプロセスのスケジューリングと仮想マシン３０２ａおよび３０２ｂに対する割り当ては、アプリケーションサーバ３０４ａと３０４ｂのいずれかによって実施することが望ましい。この場合、アプリケーションサーバ３０４ａと３０４ｂのいずれかがダウンし、またはシステム３００ａと３００ｂのいずれかがダウンすると、自動プロセスのスケジューリングと割り当てはアプリケーションサーバ３０４ａと３０４ｂのダウンしていない方によって必要に応じて引き継ぐことができる。このように、自動プロセスの実行は仮想マシン３０２ａと３０２ｂのセットのうち少なくとも一方で継続させることができる。
【０１００】
これに代えて、マスタアプリケーションサーバがシステム３００ａと３００ｂにわたって、プロセスのスケジューリングおよび仮想マシン３０２ａと３０２ｂに対する割り当ての責任を持つことができる。この構成により、システム３００ａと３００ｂのいずれか、またはアプリケーションサーバ３０４ａと３０４ｂのいずれかがダウンしたとしても、仮想マシン３０２ａと３０２ｂ上におけるプロセスの実行を、仮想マシン３０２ａと３０２ｂのセットのうち少なくともいずれかにおいて継続することができる。
【０１０１】
データベースサーバ３０６ｂは、データベースサーバ３０６ａのミラーである。この構成は、アプリケーションサーバ３０４ａもしくは３０４ｂ、またはデータベース３０６ａもしくは３０６ｂ、あるいはこれら双方がダウンしたときの要求を満たす。システム３００ａと３００ｂが異なるサイトに配置されている場合、この構成により、例えば電力遮断などにより一方のサイトがダウンしたとしても、自動プロセスを第２サイトにおいて確実に実行継続することができる。これに代えてシステム３００ｂは、同一サイトに配置するかまたは別サイトに配置して最初は停止させておき、第１サイトがダウンしたとき起動させてもよい。ダウンイベントが発生したとき、アプリケーションサーバ３０４ａと３０４ｂの機能しているセットは、プロセスの配置を調整する。マスタアプリケーションサーバがプロセスのスケジューリングと配置の役割を有する場合、マスタアプリケーションサーバはプロセスの配置を調整することができる。
【０１０２】
図４は、実施形態２と実施形態３の代替形態を示す。複数のデータベースサーバ２０６がシステム内に存在する。以下の例において、３つのデータベースサーバについて説明するが、これは例に過ぎない。データベースサーバ４０６ａ、４０６ｂ、４０６ｃはそれぞれ異なるデータベースを保持し、アプリケーションサーバ４０４はデータベースサーバ４０６ａ、４０６ｂ、４０６ｃ全てに関連付けることができる。これに代えて、複数のアプリケーションサーバ４０４が設けられ、各アプリケーションサーバがデータベースサーバ４０６ａ、４０６ｂ、４０６ｃ全てのクレデンシャルを保持するようにしてもよい。さらに別形態として、アプリケーションサーバ４０４の台数がデータベースサーバ４０６ａ、４０６ｂ、４０６ｃと同じであり、各アプリケーションサーバ４０４がデータベース４０６ａ、４０６ｂ、４０６ｃのうち１つのみのクレデンシャルを保持するようにしてもよい。複数データベースサーバをこのように構成することにより、同じ仮想マシン４０２を用いて異なるデータベースを参照しつつ複数の個別の自動プロセスセットを動作させることができる。
【０１０３】
複数のデータベースサーバ４０６ａ、４０６ｂ、４０６ｃを用いる場合、データベースサーバ４０は同じデータベースを保持するように構成することができ、データベースサーバ２０６のうち１以上はマスタデータベースサーバのミラーとすることができる。この構成により冗長性を提供することができ、いずれかのサーバが機能停止した場合は仮想マシン２０２上でプロセスを実行継続することができる。
【０１０４】
図５は、上記実施形態２と実施形態３の代替形態を示す。２以上のアプリケーションサーバ２０４が存在する。アプリケーションサーバ５０４ａ、５０４ｂ、５０４ｃは全て、専用サーバ、仮想サーバ、またはその組み合わせである。複数のアプリケーションサーバ２０４が存在する実施形態において、１つのサーバはマスタスケジューラサーバとして指定され、これが仮想マシン２０２に対するスケジューリングと命令発行を実施してプロセスを実行する。各アプリケーションサーバ２０４は、データベースサーバ２０６の認証のためのクレデンシャルの複製セットを管理する。アプリケーションサーバ５０４ａ、５０４ｂ、５０４ｃの上記構成により、システムの冗長性を確保し、アプリケーションサーバ５０４ａ、５０４ｂ、５０４ｃのうち１つまたは２つがダウンしたときのフェールセーフを提供して自動プロセスを仮想マシン５０２上で動作させることができる。この構成におけるアプリケーションサーバの台数は、３以上の任意個数であってもよく、図示する３台は例示であることを理解されたい。
【０１０５】
図６は、仮想マシン２０２上で実行する自動プロセスを定義するプロセスのフローチャート６００を示す。
【０１０６】
システム１００、２００、３００、４００、または５００によって実施される自動プロセスは、ソフトウェアアプリケーションから情報を取得しまたはソフトウェアアプリケーションに対して情報を入力するステップを有する。既存の専用ＡＰＩを備えていないソフトウェアアプリケーションについては、他のソフトウェアアプリケーションおよび自動プロセスとのやり取りは、コンピュータ対話オブジェクトを生成することにより実現される。自動プロセスはこのオブジェクトにアクセスし、ソフトウェアアプリケーションに対して情報を入力しまたはソフトウェアアプリケーションから情報を出力することができる。このプロセスは、以下の方法にしたがってステップ６０２において実施される。
【０１０７】
既存ソフトウェアアプリケーションが、例えばＪａｖａ（登録商標）  Ａｃｃｅｓｓｉｂｉｌｉｔｙ  ＡＰＩを実装したＪａｐａアプリケーションやアプレット、またはＭｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ａｃｃｅｓｓｉｂｉｌｉｔｙ  ＡＰＩやＩＡｃｃｅｓｓｉｂｌｅ２を実装したＷｉｎｄｏｗｓ（登録商標）アプリケーションなどのアクセシビリティ機能を実装している場合、アクセシビリティインターフェース定義を捕捉し、これらを用いてコンピュータ対話オブジェクトを生成することができる。
【０１０８】
これに代えて、アプリケーションがＨＴＭＬ  ｗｅｂアプリケーションまたは文書である場合、ｗｅｂページのＨＴＭＬをパースしてＨＴＭＬエレメントを識別し、これら定義を用いて、ユーザ定義プロセスがアクセスするｗｅｂアプリケーションにリンクしたコンピュータ対話オブジェクトを生成することができる。
【０１０９】
ＨＴＭＬパーサとして望ましいのは、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  ＥｘｐｌｏｒｅｒのＭＳＨＴＭＬ  ＩＨＴＭＬＤｏｃｕｍｅｎｔ２インターフェースが提供するＤｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ（ＤＯＭ）パーサである。実施形態において、これはＨＴＭＬ  ｗｅｂアプリケーションや文書が表示されるＧＵＩウインドウの属性、ＨＴＭＬ  ｗｅｂアプリケーションまたは文書のＵＲＬ、およびＨＴＭＬパスと組み合わせられ、これによりコンピュータ対話オブジェクトのユニークＩＤが生成される。
【０１１０】
コンピュータ対話オブジェクトは、既存の公開ＡＰＩを用いてソフトウェアアプリケーションのために定義することもできる。このＡＰＩは例えば、Ｗｉｎｄｏｗオブジェクト、ＤＤＥ、メインフレーム端末のＨＬＬＡＰＩインターフェース、フックＣＯＭコンポーネント、などである。これにより、既存ＡＰＩを備えていないソフトウェアアプリケーションについて定義したコンピュータ対話オブジェクトと同じ態様で、自動プロセスがアクセスすることができる。プレゼンテーション層（すなわち画面上に提示されるユーザインターフェース）を用いて、コンピュータ対話オブジェクトを定義し、アプリケーションに対して送信された制御命令を解釈することもできる。これはプレゼンテーション技術を用いて実現することができる。すなわち、アプリケーション内の基盤コンポーネントおよび、通信処理やユーザが視認してユーザとやり取りするウインドウ、コントロールの描画を実施するアプリケーションのホストＯＳである。例えば基盤コントロール、Ｗｉｎｄｏｗｓ（登録商標）とアプリケーションとの間のマウスおよびキーボードメッセージ、コントロールを管理しユーザとのやり取りを処理するアプリケーションのＣＯＭコンポーネント、である。
【０１１１】
ユーザ定義プロセスがアクセスするソフトウェアアプリケーションに対してリンクしたコンピュータ対話オブジェクトを生成する先述の方法は、ソフトウェアの特定機能に依拠している。ただしこれら機能は、常に存在しているとは限らない。シンクライアントアプリケーションは、ユーザがキーボード／マウス入力と画像出力を用いてやりとりするシステムから切り離されたコンピュータシステム上で動作する場合があり、この場合はユーザシステムにおけるＧｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ（ＧＵＩ）のみを提供する。本発明のシステムにおいて、自動プロセスはシンクライアントアプリケーションとやり取りする必要がある場合がある。自動プロセスが実行されるシステム上に存在するシンクライアントアプリケーションの唯一のコンポーネントはそのシンクライアントアプリケーションのＧＵＩであるので、コンピュータ対話オブジェクトを生成するため用いることができるインターフェースはそのＧＵＩのみである。
【０１１２】
アプリケーションのＧＵＩに関連するコンピュータ対話オブジェクト（例えばシンクライアントアプリケーションの場合におけるもの）は、入力フィールドまたは出力フィールドとして解釈すべきＧＵＩの領域を定義することにより、本発明の実施形態に基づき生成することができる。定義した領域が出力フィールドである場合、フィールドのコンテンツは、定義領域において用いられているフォントを識別し、識別したフォントの文字と比較して定義領域内のテキストの文字を識別し、識別した文字を文字列として出力することにより、解釈される。この文字列は、コンピュータシステム上で解釈することができる。ＧＵＩ内に表示されるテキストを解釈する方法は、以下の図７を用いて説明する。
【０１１３】
ステップ６０４において、自動プロセスにおいて用いるため必要なソフトウェアアプリケーションのためにコンピュータ対話オブジェクトがいったん定義されると、定義されたコンピュータ対話オブジェクト、データベース情報、格納されたファイルおよび文書を使用するためのセッションが定義される。セッションは、仮想マシン２０２上で動作する既定の個別プロセスである。セッションを確立するアクションは例えば、ファイルを特定するステップ、ファイルからデータを読み取るステップ、およびワークキューにデータを配置するステップを有する。
【０１１４】
ステップ６０６において、ステップ６０４で定義されたセッションがタスクへグループ化される。タスクは、グループ化され並列実行されるセッションの集合である。タスク内において、個々のセッションは特定の仮想マシン２０２またはリソースプールに対して割り当てられる。これにより、タスクが実行されるときに、アプリケーションサーバ２０４は仮想マシン２０２またはリソースプールに対して命令を送信して、これらに対して割り当てられたセッションを実施する。
【０１１５】
リソースプールは、仮想マシン２０２のセットを複合ユニットとして取り扱うことができるプールへグループ化したものである。リソースプールは、定義されたスケジュールにしたがってアプリケーションサーバ２０４がプロセスを割り当てる点において、外部的には個々の仮想マシン２０２であるかのように見え、またそのように動作する。内部的には、リソースプールがプロセスを実行するよう指示されると、プールに属する仮想マシン２０２のいずれか１つを自動的に選択することによりこれを実施する。
【０１１６】
リソースプールは、リソースプール全体の命令を受け取るコントローラを有する。コントローラは、例えばリソースプール内の仮想マシン２０２であり、またはアプリケーションサーバ２０４である。
【０１１７】
アプリケーションサーバ２０４がコントローラなのではなく仮想マシン２０２がリソースプールのコントローラである場合、リソースプール内の全仮想マシン２０２は、アプリケーションサーバ２０４によって取り扱うことができる。コントローラではない仮想マシン２０２は、アプリケーションサーバ２０４から到着するメッセージをコントローラへ転送し、コントローラからの応答をアプリケーションサーバ２０４へ転送する。コントローラとして動作する仮想マシン２０２のＩＤは、データベースサーバ２０６上に格納されたデータベースへタイムスタンプとともに記録され、アプリケーションサーバ２０４を介してコントローラにより更新される。このデータベースレコードが古くなった場合（コントローラとして動作する仮想マシン２０２が、例えばエラーやダウンによってコントローラとして動作することを停止したことを示している）、他の仮想マシン２０２がリソースプールのコントローラとしての役割を引き継ぐ。データベースレコードにより、並行処理の問題をなくすことができる。２つの仮想マシン２０２が同時にデータベースレコードを更新することはできず、したがって２つの仮想マシン２０２が同時にリソースプールのコントローラを引き継ごうと試みることはできないからである。
【０１１８】
コントローラが機能停止した場合、リソースプール内の他の仮想マシンはこれを高速に検出することができる。コントローラと直接通信することがもはやできないからである。
【０１１９】
仮想マシンをリソースプール内に配置することは、ダウン時の冗長性と要求増加に対処するスケーラビリティを提供する利点がある。タスク内のセッションを個々の仮想マシン２０２ではなくリソースプールへ割り当てることにより、仮に１つの仮想マシン２０２がダウンしたとしても、ユーザが介在しなくとも他の仮想マシンが代わりにセッションを実行することができる。リソースプールに対してセッションを割り当てると、システムは要求された処理をより多くの仮想マシン２０２へ拡散させることにより、増加した要求に対処することができる。リソースプールに対してより多くの仮想マシン２０２を追加することができる。これにより、要求に応じてリソースプールの性能を増すことができる。
【０１２０】
ステップ６０８において、ステップ６０６で定義したタスクがスケジュールに配置されれる。スケジュールは、順次実施されるタスクツリーを含む。スケジュール内において、各タスクは正常完了後に実施すべき次のタスクもしくは動作または例外を定義する。スケジュールが実施される日時も定義される。例えばスケジュールは、所与の日時において１回のみ実行するように定義することもできるし、可変間隔で実行するように定義することもできる。これはカレンダータイプベースで実現することができる。例えば営業日時の特定スケジュールにおいてのみ動作するようにすることができる。スケジュールは、所与の開始点から無期限で実行することもできるし、特定日時において中止することもできる。
【０１２１】
本発明の１実施形態において、端末を用いて、所与の時間範囲内でスケジュールが実行される時刻を表示するタイプテーブルを見ることができる。
【０１２２】
本発明の１実施形態において、プロセスをスケジューリングシステム外で実行することができる。例えばユーザの手動制御により、または外部システムにより実行することができる。外部システムはＡＰＩ経由でプロセスにアクセスすることができる。例えば自動プロセスがオンデマンドまたは特定動作の応答において要求されたとき、ＡＰＩコールがワークキュー内にプロセスを配置する。プロセスを外部からアクセスできるようにすることにより、既定スケジュール以外においてプロセスを実行することが必要な環境でシステムを用いることができる。例えば上述のキオスクにおけるセルフサービスチェックは、患者がチェックインするときその患者をチェックイン（および患者がチェックインした後に続くその他アクション）するため必要なプロセスのみを実行する必要がある。
【０１２３】
スケジュールが完了すると、例えば定義したスケジュールが予定通り完了したか、スケジュールが定義通り終了したか、またはエラーが発生したかにより、スケジュールの結果が後に閲覧するためのレポートに保存される。
【０１２４】
スケジューリング、コンピュータ対話オブジェクトの定義、プロセスの定義は、タスクが高レベルで自動化されることを意味する。その結果、ＩＴ専門家でない人がプロセスを自動化するようにシステムを構成するためのトレーニングが少なくて済む。また、変化する要求に対して素早く応答しつつ、従来の企業開発サイクルを回避することができる。
【０１２５】
図７は、定義領域内のテキストを解釈するプロセスを実施する方法７００を示すフローチャートである。ステップ７０２において、アプリケーションが使用するフォントがユーザによって識別される。本例におけるユーザは、例えば自動プロセスを実行する際に用いるシステムやコンピュータ対話オブジェクトを構成する人である。アプリケーションのユーザインターフェースにおいて用いられるフォントは、ＯＳに依拠する。ステップ７０４において、フォントの各文字についての２次元ピクセル画像が生成される。２次元ピクセル画像は、真偽値の配列であることが望ましい。配列の各要素は各ピクセルを表し、その値は当該ピクセルが文字によって使用されているか否かを表す。各配列は同個数の垂直要素を有することが望ましい。例えば終止符を表す配列は、最も低い文字と同じ高さから最も高い文字と同じ高さまで延伸している。文字配列は、ＸＭＬ形式で格納することが望ましいが、その他任意の適当な態様で格納することもできる。
【０１２６】
ステップ７０６において、定義領域のビットマップを、フォント文字について用いられているものと同じ２次元ピクセル形式へ変換する。これは、ビットマップをクリーニングして、フォントの一部を形成しないピクセルを破棄することを含む。これは、ビットマップの全ピクセルが“紙”であると仮定することにより実施される。すなわちピクセルは、テキストがセットされる背景の一部とみなされる。ビットマップをスキャンしながら、特定の前景色に合致するピクセルを、“インク”としてマークする。すなわち、これらはテキストの一部を形成する。この変換の結果は“キャンバス”であり、これはＧＵＩの定義領域内に表示される文字を表す。先述のように、この配列形式は真偽値の２次元配列であることが望ましい。
【０１２７】
これに代えて、定義領域のビットマップを１６ビット近辺までフィルタリングして、色を１６ビットカラーパレットによって置き換えてもよい。ただし特定の背景色はフィルタリング対象から除外し、３２ビット値を維持する。フィルタリングした画像の各行について、支配的な色が見つかる。その支配色が背景色でない場合、その支配色の行の全ピクセルは、背景色によって置き換えられる。このビットマップを用いて、全ピクセルがインクであると仮定し、各ピクセルをスキャンして特定背景色と合致するピクセルを紙としてマークすることにより、キャンバスが生成される。
【０１２８】
ステップ７０８において、文字が見つかるまでキャンバスを各文字についてスキャンする。キャンバスをスキャンする第１方法において、キャンバスをトリミングして、インクを含む列の前後にブランク列（すなわち紙のみを含む列）がなくなるようにし、さらにインクを含む行の上下のブランク行がフォントにおいて指定された文字の上下の最大ホワイトスペースと合致するようにする。
【０１２９】
ステップ７１０において、キャンバスのマスク、フォント文字のマスクに対して紙を除いた文字のインク配置を表すマスクを比較することにより、フォントに対してキャンバスをマッチングする。まず垂直下方に左上から右下までキャンバスをテストする。キャンバスをスキャンするその他適当な方法を用いてもよいことを理解されたい。キャンバスの各点について、フォント内の各文字をテストし、文字マスクにおいて定義されているインクがキャンバスのインクとして表されているか否かを判断する。複数文字が合致する場合は、最も多いインクを有する文字が選択される。文字が既に見つかっている場合は、別の行における後続の合致は無視される。文字間のスペースは、フォントにおいて定義されている文字間の通常のスペースに準じて除去される。
【０１３０】
ステップ７１２において、プロセスは識別した文字を通過して移動する。これは、単に識別した文字を超える位置からスキャンを継続することによって実施することができる。あるいは識別した文字インクをキャンバスから削除して、文字が２回識別されることを回避し、または他の文字の識別に影響を与えることを回避できる。識別したキャリアを通過して移動した後もスキャンプロセスがキャンバスの最後まで到達していない場合、次の文字が見つかるまでまたはキャンバスの最後に到達するまで、スキャンプロセスを継続する。キャンバスの最後まで到達した場合、ステップ７１４において解釈したテキストを出力する。
【０１３１】
本明細書は例示目的のみのものであることを理解されたい。特許請求範囲が定義する本発明の範囲から逸脱することなく、説明した実施形態に対して変形や修正をすることができる。
【図１】
2019049994.tif 000003
【図２】
2019049994.tif 000004
【図３】
2019049994.tif 000005
【図４】
2019049994.tif 000006
【図５】
2019049994.tif 000007
【図６】
2019049994.tif 000008
【図７】
2019049994.tif 000009
【手続補正書】
【提出日】平成30年11月14日(2018.11.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動プロセスを動作させるシステムであって、
少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンを備え、前記少なくとも１つの仮想マシンは前記少なくとも１つのデータベースサーバおよび前記少なくとも１つのアプリケーションサーバと通信可能に接続されており、
前記少なくとも１つのアプリケーションサーバは、前記仮想マシンに対して自動プロセスを割り当てるように構成されているとともに、前記少なくとも１つの仮想マシンに対して、前記自動プロセスを実行するよう指示する命令を提供するように構成されており、
前記少なくとも１つの仮想マシンは、前記データベースサーバが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するように構成されている
ことを特徴とするシステム。
【請求項２】
前記少なくとも１つのデータベースサーバ、前記少なくとも１つのアプリケーションサーバ、および前記少なくとも１つの仮想マシンは、第１セットを形成し、
前記システムはさらに、少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンの第２セットを備え、
前記第１および第２セットは、各前記セットの前記少なくとも１つのアプリケーションサーバと各前記セットの前記少なくとも１つのデータベースサーバが互いに通信できるように、通信可能に接続されており、
各前記セットのうちいずれかの前記少なくとも１つのアプリケーションサーバは、前記第１および第２セットのうち少なくとも１つの前記少なくとも１つの仮想マシンに対して命令を提供するように構成されており、
前記第２セットの前記少なくとも１つのデータベースサーバは、前記第１セットの前記少なくとも１つのデータベースサーバのミラーである
ことを特徴とする請求項１記載のシステム。
【請求項３】
各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理するように構成されている
ことを特徴とする請求項２記載のシステム。
【請求項４】
前記少なくとも１つの仮想マシンはさらに、アクセシビリティインターフェース；公開ＡＰＩ；およびオペレーティングシステムのプレゼンテーション技術のうちいずれか１以上と対話することにより、前記自動プロセスを実施するように構成されている
ことを特徴とする請求項１から３のいずれか１項記載のシステム。
【請求項５】
前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム；データベース；記憶されたファイルまたは文書のうちいずれか１以上からのデータに対して実施されるように構成されている
ことを特徴とする請求項１から４のいずれか１項記載のシステム。
【請求項６】
前記少なくとも１つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し；前記少なくとも１つの仮想マシンをシャットダウンし；前記少なくとも１つの仮想マシンをリスタートし；前記少なくとも１つの仮想マシンを起動するためのリモートアクセスが制限されるように構成されている
ことを特徴とする請求項１から５のいずれか１項記載のシステム。
【請求項７】
自動プロセスを動作させる方法であって、
少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンを提供するステップであって、前記少なくとも１つの仮想マシンは前記少なくとも１つのデータベースサーバおよび前記少なくとも１つのアプリケーションサーバと通信可能に接続されている、ステップ、
前記アプリケーションサーバにより、前記少なくとも１つの仮想マシンに対して自動プロセスを割り当てるステップ、
前記アプリケーションサーバにより、前記少なくとも１つの仮想マシンに対して、前記自動プロセスを実行するよう指示する命令を提供するステップ、
前記少なくとも１つの仮想マシン上で、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するステップ、
を有することを特徴とする方法。
【請求項８】
前記少なくとも１つのデータベースサーバ、前記少なくとも１つのアプリケーションサーバ、および前記少なくとも１つの仮想マシンは、第１セットを形成し、
前記方法はさらに、
少なくとも１つのデータベースサーバ、少なくとも１つのアプリケーションサーバ、および少なくとも１つの仮想マシンの第２セットを提供するステップであって、前記第１および第２セットは、各前記セットの前記少なくとも１つのアプリケーションサーバと各前記セットの前記少なくとも１つのデータベースサーバが互いに通信できるように、通信可能に接続されている、ステップ、
各前記セットのうちいずれかの前記少なくとも１つのアプリケーションサーバを、前記第１および第２セットのうち少なくとも１つの前記少なくとも１つの仮想マシンに対して命令を提供するように構成するステップ、
前記第２セットの前記少なくとも１つのデータベースサーバ上で、前記第１セットの前記少なくとも１つのデータベースサーバをミラーリングするステップ、
を有することを特徴とする請求項７記載の方法。
【請求項９】
各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つの仮想マシンから各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対する接続を管理する
ことを特徴とする請求項８記載の方法。
【請求項１０】
前記少なくとも１つの仮想マシンは、アクセシビリティインターフェース；公開ＡＰＩ；およびオペレーティングシステムのプレゼンテーション技術のうちいずれか１以上と対話することにより、少なくとも１つの前記自動プロセスを実施する
ことを特徴とする請求項７から９のいずれか１項記載の方法。
【請求項１１】
前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム；データベース；記憶されたファイルまたは文書のうちいずれか１以上からのデータに対して実施される
ことを特徴とする請求項７から１０のいずれか１項記載の方法。
【請求項１２】
前記少なくとも１つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し；前記少なくとも１つの仮想マシンをシャットダウンし；前記少なくとも１つの仮想マシンをリスタートし；前記少なくとも１つの仮想マシンを起動するためのリモートアクセスが制限される
ことを特徴とする請求項７から１１のいずれか１項記載の方法。
【請求項１３】
各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する
ことを特徴とする請求項３記載のシステム。
【請求項１４】
前記第２セットは、前記第１セットのエラー時に起動されるまでは休止している
ことを特徴とする請求項２記載のシステム。
【請求項１５】
特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも１つのパスワードは、前記少なくとも１つのデータベースサーバ上の暗号化されたクレデンシャルストア内に格納される
ことを特徴とする請求項１から６、１３、１４のいずれか１項記載のシステム。
【請求項１６】
各前記セットのうち少なくとも１つの前記少なくとも１つのアプリケーションサーバは、各前記セットのうち少なくとも１つの前記少なくとも１つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する
ことを特徴とする請求項９記載の方法。
【請求項１７】
前記第２セットは、前記第１セットのエラー時に起動されるまでは休止している
ことを特徴とする請求項８記載の方法。
【請求項１８】
特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも１つのパスワードは、前記少なくとも１つのデータベースサーバ上の暗号化されたクレデンシャルストア内に格納される
ことを特徴とする請求項７から１２、１６、または１７記載の方法。