JP2016527620A - 自動プロセスのためのシステム - Google Patents

自動プロセスのためのシステム Download PDF

Info

Publication number
JP2016527620A
JP2016527620A JP2016522877A JP2016522877A JP2016527620A JP 2016527620 A JP2016527620 A JP 2016527620A JP 2016522877 A JP2016522877 A JP 2016522877A JP 2016522877 A JP2016522877 A JP 2016522877A JP 2016527620 A JP2016527620 A JP 2016527620A
Authority
JP
Japan
Prior art keywords
virtual machine
database
server
application server
resource pool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016522877A
Other languages
English (en)
Other versions
JP6422491B2 (ja
Inventor
モス,デヴィッド
グルトニーク,シアラン
Original Assignee
ブルー プリズム リミテッド
ブルー プリズム リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブルー プリズム リミテッド, ブルー プリズム リミテッド filed Critical ブルー プリズム リミテッド
Publication of JP2016527620A publication Critical patent/JP2016527620A/ja
Application granted granted Critical
Publication of JP6422491B2 publication Critical patent/JP6422491B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

自動プロセスを動作させるシステムを提供する。前記システムは、データベース(106)に対して通信可能に接続された第1コンピュータ(102)を備える。前記第1コンピュータ(102)は、前記データベース(106)が格納しているデータを利用して、自動プロセスの動作に対して影響する命令を実行するように構成されている。さらに、自動プロセスを動作させる方法を提供する。前記方法は、データベース(106)に対して通信可能に接続された第1コンピュータ(102)を提供するステップ;自動プロセスを実行するように前記第1コンピュータ(102)を構成するステップ;前記データベース(106)が格納しているデータを用いて前記自動プロセスを実行するステップ、を有する。【選択図】図1

Description

本発明は、自動プロセスのためのシステムに関するものである。具体的には、現在は情報のマニュアル転送およびシステム間または単一システム内のコマンドによって実施されている自動プロセスに関するものである。
所望の(または望まない)変化が生じる際には、ビジネスが運用される態様に沿って別の変化が必要となる場合がしばしばある。例えば新製品の立ち上げは既存システムの統合を必要とし、新たな規制はプロセスステップの記録を必要とし、買収は2つの製品ラインやプロセスの併合を必要とする。従来の企業システムプランニングおよびロールアウトは、これら問題を吸収し得る。しかしこれら計画サイクルは大規模プロジェクトのために設計されており、日々のオペレーション上の変更をサポートしていない。その結果、多大なコストを払って変更を実装し、これは長年に及ぶ場合もある。現行システムの機能を置き換え必要な新機能を提供する新システムを開発しなければならず、信頼性をもって実装される前に多大なテストと品質保証が必要だからである。これらシステムはまた、コンピュータプログラミングとアプリケーション開発において必要な専門家スキルを有する人々が設計し構成する必要がある。これにより、開発プロセスはさらに多くの時間を必要とする。組織内に必要なスキルを有する者が比較的少ない場合があるからであり、またシステムがいったん実装されると現行システムのユーザが新システムに慣れる時間が長くかかりプロセスは非効率性や非正確性によって特徴付けられるからである。
バックオフィスのビジネスプロセスは、複数の独立した互換性のないソフトウェアアプリケーションを用いる場合があるので、問題となる。これらソフトウェアアプリケーションのうちいくつかは、他ソフトウェアアプリケーションがやり取りするための既定インターフェースを提供することによってアプリケーション内外の情報を転送可能とするAPIを有する場合がある。しかし常にそのようなものが備わっているわけではない。例えば、これらバックオフィスビジネスプロセスにおいて用いられる多くのソフトウェアアプリケーションは、他ソフトウェアアプリケーションが容易にアクセスできるようにするため必要とする機能を備えていない古いアプリケーションである。あるいは、特定用途に供するカスタム内製ソフトウェアソリューションの場合もある。この場合、他アプリケーションとやり取りできるようにするインターフェースを提供するニーズは、予定されていない。従来、これはソフトウェアアプリケーション間のギャップを架橋するオペレーションスタッフを用いることによって克服している。オペレーションスタッフを用いるのは、コスト高なソリューションである。多数のオペレーションスタッフを雇用して要求される性能を提供する必要があるからである。これら非互換のソフトウェアアプリケーション間またはシステム間のギャップは人間によって架橋されるので、プロセスは通常遅いものとなる。オペレーションスタッフは1日の一部のみ働き、キーパッド/マウス/その他インターフェースを用いて情報やコマンドを入力する速度により制限され、スクリーン/その他出力から情報を読み取る速度に制限されるからである。さらに人間は、システムに対してデータやコマンドを入力する際、および他から情報を読み取る際にエラーを起こし易く、他方でコンピュータはそのようなことはない。またオペレーションスタッフをこのように用いる際に、システムとデータに対する悪意ある干渉が生じる可能性もある。
例えば通信プロバイダは、新たな携帯電話ハンドセットを立ち上げる場合がある。これは既存ソフトウェアアプリケーションと新システムを用いることを必要とし、これらは互換性がない場合もある。この不足分はオペレーションスタッフによって埋められるが、そのような新製品の立ち上げの要求を予測するのは困難である場合があり、ソフトウェアシステムを用いるようにトレーニングを受けたスタッフが多過ぎたり少な過ぎたりする可能性がある。したがって、この非互換ソフトウェアシステム間のギャップは、要求に対する詳細な先行知識なしでその要求に対処できる高速スケーリングを可能にするソリューションによって埋めることが望ましい。
このようなシステムにおいて、個人情報などの繊細な情報が多量に処理される場合がある。この情報を、エラー個数が削減される一貫した方法で取り扱うことが望ましい。ここでいうエラーとは、人間が情報をシステム間でコピーすることに関するものである。またこの情報は、絶対的に必要なときのみアクセスできる秘匿された安全な方法で取り扱うことが望ましい。
これら問題は、既存ソフトウェアアプリケーションが新たに実装するプロセスのために必要な機能にとって不足する部分を埋めるオペレーションスタッフを必要とし、これは当該ビジネスバックオフィス固有のものではない。例えば病院受付や医師の手術は、予約する患者が多い多忙な環境である。受付担当者は、予約のために到着した患者から詳細を聞き取りその患者の予約をチェックするソフトウェアアプリケーションにこれを入力する、などのルーティンタスクを処理するために多くの時間を割く。このプロセスは時間がかかり、患者の詳細を聞き誤ることにより不正確となる場合があり、受付担当者が他の仕事をする時間を奪う。
病院受付や医師の手術においてセルフサービスチェックインキオスクを提供することが望ましい。これにより、患者は自身の詳細情報をシステムに入力して不正確さを最小化し、受付担当者はその他タスクを処理することができ、待ち時間が減少する。しかし、受付担当者に対して提供されるものと同じインターフェースを患者に対して提供するのは適切ではない。受付担当者が使用するソフトウェアアプリケーションは、患者にとって不必要に複雑な応用的機能を備えている傾向があり、あるいはそのようなアプリケーションは管理機能やセルフサービスチェックインキオスクを用いる患者に対して提供するのに適していない情報に対するアクセスを備えているからである。既存の受付アプリケーションが、セルフサービスキオスク上で動作する新アプリケーションのために特定の機能や仕組みへのアクセスを提供しない限り、システムを実装するため必要な機能を提供する新ソフトウェアアプリケーションやシステムを開発したとき、バックオフィスビジネスプロセスにおける変化に関連する同様の長いプランニングサイクル、費用、非効率、不正確さが生じる。これによりプロジェクトが着手されないことがしばしばある。
本発明の目的は、上記課題のうち1以上を解決することである。
本発明の第1側面において、自動プロセスを実行するシステムを提供する。実施形態1において、前記システムはデータベースに対して通信可能に接続された第1コンピュータを備え、前記第1コンピュータは、前記データベースが格納しているデータを利用して、自動プロセスの動作に対して影響する命令を実行するように構成されている。
望ましくは、前記データベースは、データベースサーバ上に格納されている。あるいは、前記データベースは前記第1コンピュータ上に格納されている、または前記データベースは第2コンピュータ上に格納されている。
望ましくは、前記第1コンピュータは、少なくとも1つの仮想マシンをホストするように構成されており、前記少なくとも1つの仮想マシンは、前記自動プロセスを実行するように構成されている。
望ましくは、前記システムはさらに、アプリケーションサーバを備える。前記アプリケーションサーバは、専用サーバとして動作する第2コンピュータ上にホストすることもできるし、前記第1コンピュータは、前記アプリケーションサーバをホストするように構成することもできる。
本発明の第1側面の実施形態2において、自動プロセスを動作させるシステムを提供する。前記システムは、少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンを備える。前記少なくとも1つの仮想マシンは、前記少なくとも1つのデータベースサーバおよび前記少なくとも1つのアプリケーションサーバと通信可能に接続されている。前記少なくとも1つのアプリケーションサーバは、前記少なくとも1つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するように構成されている。前記少なくとも1つの仮想マシンは、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するように構成されている。
本発明の第1側面の実施形態3において、自動プロセスを動作させるシステムを提供する。前記システムは、実施形態2の特徴を備えている。前記少なくとも1つのデータベースサーバ、前記少なくとも1つのアプリケーションサーバ、および前記少なくとも1つの仮想マシンは、第1セットを形成する。前記システムはさらに、少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンの第2セットを備える。前記第1および第2セットは、各前記セットの前記少なくとも1つのアプリケーションサーバと各前記セットの前記少なくとも1つのデータベースサーバが互いに通信できるように、通信可能に接続されている。各前記セットのうちいずれかの前記少なくとも1つのアプリケーションサーバは、前記第1および第2セットのうち少なくとも1つの前記少なくとも1つの仮想マシンに対して命令を提供するように構成されている。前記第2セットの前記少なくとも1つのデータベースサーバは、前記第1セットの前記少なくとも1つのデータベースサーバのミラーである。
望ましくは、各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理するように構成されている。
望ましくは、各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくともデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
各前記セットのうち少なくとも1つはさらに、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンおよび各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対して通信可能に接続された通信サーバを備える。前記通信サーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理するように構成されている。
前記少なくとも1つのデータベースサーバは、複数のデータベースを保持することができる。
前記少なくとも1つの仮想マシンは、標準エンドユーザデスクトップオペレーティングシステムを備えることができる。
望ましくは、前記少なくとも1つの仮想マシンは2以上の仮想マシンを備え、前記仮想マシンは少なくとも1つのリソースプールへグループ化されている。
望ましくは、前記少なくとも1つのリソースプールはコントローラを備え、前記コントローラは前記少なくとも1つのリソースプール内の仮想マシンである。
望ましくは、前記少なくとも1つのリソースプールの前記コントローラは、タイムスタンプと併せてデータベースレコードを更新するように構成されており、前記データベースレコードは、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する。
望ましくは、前記少なくとも1つのリソースプール内の全ての仮想マシンは、前記少なくとも1つのアプリケーションサーバから命令を受け取るように構成されており、さらに前記少なくとも1つのアプリケーションサーバからの命令を前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンに対して転送するように構成されている。
望ましくは、前記少なくとも1つのリソースプールの各前記仮想マシンは、前記少なくとも1つのリソースプールの現行の前記コントローラが機能停止した場合、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する前記データベースレコードを更新することにより、前記少なくとも1つのリソースプールのコントローラを引き継ぐように構成されている。
前記少なくとも1つのリソースプールの前記コントローラは、前記アプリケーションサーバであってもよい。
前記第1および第2セットの前記少なくとも1つのリソースプールの前記コントローラは、マスタアプリケーションサーバであってもよい。
前記少なくとも1つの仮想マシンはさらに、アクセシビリティインターフェース;公開API;およびオペレーティングシステムのプレゼンテーション技術のうちいずれか1以上と対話することにより、前記自動プロセスを実施するように構成することができる。
前記少なくとも1つの仮想マシンはさらに、HTML文書内のHTMLエレメントを解釈することにより、前記自動プロセスを実施するように構成することができる。
前記少なくとも1つの仮想マシンは、ユーザインターフェースの定義領域内のテキストが使用するフォントを識別し、前記識別したフォントを使用する前記ユーザインターフェースの前記定義領域内の前記テキストの文字を識別することにより、少なくとも1つの前記自動プロセスを実施するように構成することができる。
望ましくは、前記システムはさらに、前記少なくとも1つの仮想マシンが実施する前記自動プロセスを観察するように構成された端末を備える。
本発明の第1側面の実施形態3において、前記第1および第2セットは、広域ネットワーク接続によって接続することができる。あるいは前記第1および第2セットは、ローカルエリアネットワークによって接続することができる。
本発明の第1側面の実施形態3において、前記第1および第2セットは、異なる物理サイトに配置することができる。
本発明の第1側面の実施形態3において、前記第2セットは、前記第1セットのエラー時に起動されるまでは休止することができる。
望ましくは、本発明の第1側面の実施形態3において、前記第1および第2セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つの仮想マシンから各前記セットの前記少なくとも1つのデータベースサーバに対する接続を管理するように構成されている。
望ましくは、本発明の第1側面の実施形態3において、各前記セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
望ましくは、前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム;データベース;記憶されたファイルまたは文書のうちいずれか1以上からのデータに対して実施されるように構成されている。
望ましくは、本発明の第1側面の実施形態3において、前記第1セットの前記少なくとも1つのリソースプール内の仮想マシンの構成および個数は、前記第2セットの前記少なくともリソースプール内の仮想マシンの構成および個数と同じである。
望ましくは、前記少なくとも1つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し;前記少なくとも1つの仮想マシンをシャットダウンし;前記少なくとも1つの仮想マシンをリスタートし;前記少なくとも1つの仮想マシンを起動するためのリモートアクセスが制限されるように構成されている。
望ましくは、特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも1つのパスワードは、前記データベースサーバ上の暗号化クレデンシャルストア内に格納される。望ましくは、前記少なくとも1つの仮想マシンは、前記暗号化クレデンシャルストア内の前記少なくとも1つのパスワードを、前記システム外において未知のランダムパスワードへ更新するように構成されている。
本発明の第2側面において、自動プロセスを動作させる方法を提供する。前記第2側面の実施形態1において、自動プロセスを動作させる方法は、データベースに対して通信可能に接続された第1コンピュータを提供するステップ;自動プロセスを実行するように前記第1コンピュータを構成するステップ;前記データベースが格納しているデータを用いて前記自動プロセスを実行するステップ;を有する。
望ましくは、前記データベースはデータベースサーバ上に格納されている。あるいは前記データベースは、前記第1コンピュータ上に格納し、または第2コンピュータ上に格納することができる。
望ましくは、前記第1コンピュータを構成するステップは、
前記第1コンピュータ上に少なくとも1つの仮想マシンをホストするように前記第1コンピュータを構成するステップ;前記自動プロセスを実行するように前記少なくとも1つの仮想マシンを構成するステップ;を有する。
望ましくは、実施形態1の方法はさらに、アプリケーションサーバを提供するステップを有する。前記方法は、前記第1コンピュータがアプリケーションサーバをホストするように構成するステップを有することもできるし、専用サーバを提供するステップ;前記アプリケーションサーバを前記専用サーバ上にホストするステップ;を有することもできる。
本発明の第2側面の実施形態2において、自動プロセスを動作させる方法を提供する。前記方法は、少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンを提供するステップであって、前記少なくとも1つの仮想マシンは前記少なくとも1つのデータベースサーバおよび前記少なくとも1つのアプリケーションサーバと通信可能に接続されている、ステップ;前記アプリケーションサーバにより、前記少なくとも1つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するステップ;前記少なくとも1つの仮想マシン上で、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するステップ;を有する。
本発明の第2側面の実施形態3において、自動プロセスを動作させる方法を提供する。前記方法は、実施形態2の全ステップを備える。前記少なくとも1つのデータベースサーバ、前記少なくとも1つのアプリケーションサーバ、および前記少なくとも1つの仮想マシンは、第1セットを形成する。前記方法はさらに、少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンの第2セットを提供するステップであって、前記第1および第2セットは、各前記セットの前記少なくとも1つのアプリケーションサーバと各前記セットの前記少なくとも1つのデータベースサーバが互いに通信できるように、通信可能に接続されている、ステップ;各前記セットのうちいずれかの前記少なくとも1つのアプリケーションサーバを、前記第1および第2セットのうち少なくとも1つの前記少なくとも1つの仮想マシンに対して命令を提供するように構成するステップ;前記第2セットの前記少なくとも1つのデータベースサーバ上で、前記第1セットの前記少なくとも1つのデータベースサーバをミラーリングするステップ;を有する。
望ましくは、各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理する。
望ましくは、各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくともデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
各前記セットのうち少なくとも1つはさらに、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンおよび各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対して通信可能に接続された通信サーバを備えることができる。前記通信サーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理することができる。
前記少なくとも1つのデータベースサーバは、複数のデータベースを保持することができる。
前記少なくとも1つの仮想マシンは、標準エンドユーザデスクトップオペレーティングシステムを備えることができる。
望ましくは、前記少なくとも1つの仮想マシンは2以上の仮想マシンを備え、前記仮想マシンは少なくとも1つのリソースプールへグループ化されている。
望ましくは、前記少なくとも1つのリソースプールはコントローラを備え、前記コントローラは前記少なくとも1つのリソースプール内の仮想マシンである。
望ましくは、前記少なくとも1つのリソースプールの前記コントローラは、タイムスタンプと併せてデータベースレコードを更新するように構成されており、前記データベースレコードは、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する。
望ましくは、前記少なくとも1つのリソースプール内の全ての仮想マシンは、前記少なくとも1つのアプリケーションサーバから命令を受け取り、さらに前記少なくとも1つのアプリケーションサーバからの命令を前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンに対して転送する。
望ましくは、前記少なくとも1つのリソースプールの各前記仮想マシンは、前記少なくとも1つのリソースプールの現行の前記コントローラが機能停止した場合、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する前記データベースレコードを更新することにより、前記少なくとも1つのリソースプールのコントローラを引き継ぐことができる。
前記少なくとも1つのリソースプールの前記コントローラは、前記アプリケーションサーバであってもよい。
前記第1および第2セットの前記少なくとも1つのリソースプールの前記コントローラは、マスタアプリケーションサーバであってもよい。
前記少なくとも1つの仮想マシンは、アクセシビリティインターフェース;公開API;およびオペレーティングシステムのプレゼンテーション技術のうちいずれか1以上と対話することにより、少なくとも1つの前記自動プロセスを実施することができる。
前記少なくとも1つの仮想マシンは、HTML文書内のHTMLエレメントを解釈することにより、前記自動プロセスを実施することができる。
前記少なくとも1つの仮想マシンは、ユーザインターフェースの定義領域内のテキストが使用するフォントを識別し、前記識別したフォントを使用する前記ユーザインターフェースの前記定義領域内の前記テキストの文字を識別することにより、少なくとも1つの前記自動プロセスを実施することができる。
望ましくは、前記方法はさらに、前記少なくとも1つの仮想マシンが実施する前記自動プロセスを観察するように構成された端末を提供するステップを有する。
本発明の第2側面の実施形態3において、前記第1および第2セットは、広域ネットワーク接続によって接続されている。あるいは、前記第1および第2セットは、ローカルエリアネットワークによって接続することができる。
本発明の第2側面の実施形態3において、前記第1および第2セットは、異なる物理サイトに配置することができる。
本発明の第2側面の実施形態3において、前記第2セットは、前記第1セットのエラー時に起動されるまでは休止することができる。
望ましくは、本発明の第2側面の実施形態3において、前記第1および第2セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つの仮想マシンから各前記セットの前記少なくとも1つのデータベースサーバに対する接続を管理する。
望ましくは、本発明の第2側面の実施形態3において、各前記セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する。
望ましくは、前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム;データベース;記憶されたファイルまたは文書のうちいずれか1以上からのデータに対して実施される。
望ましくは、前記第1セットの前記少なくとも1つのリソースプール内の仮想マシンの構成および個数は、前記第2セットの前記少なくともリソースプール内の仮想マシンの構成および個数と同じである。
望ましくは、前記少なくとも1つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し;前記少なくとも1つの仮想マシンをシャットダウンし;前記少なくとも1つの仮想マシンをリスタートし;前記少なくとも1つの仮想マシンを起動するためのリモートアクセスが制限される。
望ましくは、特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも1つのパスワードは、前記データベースサーバ上の暗号化クレデンシャルストア内に格納される。
望ましくは、前記少なくとも1つの仮想マシンは、前記暗号化クレデンシャルストア内の前記少なくとも1つのパスワードを、前記方法外において未知のランダムパスワードへ更新する。
本発明に係るシステムの実装の概略図である。
本発明に係るシステムの別実装の概略図である。
本発明に係るシステムの別実装の概略図である。
本発明に係る複数のデータベースサーバを備えるシステムの別実装の概略図である。
本発明に係る複数のアプリケーションサーバを備えるシステムの別実装の概略図である。
自動化するプロセスを定義しスケジュールする方法を示すフローチャートである。
グラフィカルユーザインターフェースの指定領域内において文字を識別する方法を示すフローチャートである。
図面を参照して本発明を説明する。
本発明の実施形態1に係る自動プロセスのためのシステムは、当該自動プロセスにおいて利用するデータを保持するデータベースと接続され、自動プロセスを実行するように構成されたコンピュータを備える。データベースは、自動プロセスを実行するように構成されたコンピュータ上に格納することができる。あるいは、第2コンピュータもしくは専用データベースサーバ上に格納することもできる。本明細書において、“サーバ”という用語は明示的に異なる定義を述べない限り、ソフトウェアと専用ハードウェアサーバを包含するものであると理解されたい。コンピュータ自身は、自動プロセスを実行ように構成することができる。あるいは、自動プロセスを実行するように構成された1以上の仮想マシンをホストするように構成することができる。システムはさらに、自動プロセスを構成し実行するために用いる端末を備えることができる。
図1は、本発明の実施形態1の1形態に基づき実装されたシステムの概略図である。同システムにおいて、少なくとも1つの仮想マシンを利用する。システム100は、少なくとも1つの仮想マシン102をホストするように構成された少なくとも1つのコンピュータ、データベースサーバ106、端末108を備える。
仮想マシン102は、仮想マシン上に格納されたアプリケーションとデータベースサーバ106上に格納されたデータを用いて1以上の自動プロセスを実行するように構成されている。仮想マシン102上における自動プロセスの実行は、端末108によって制御される。端末108は、仮想マシン102上で実行するプロセスを規定するスケジュールを定義できるように構成することができる。
システムは、アプリケーションサーバを備えることができる。アプリケーションサーバは、仮想マシンおよび/またはデータベースと同じ物理コンピュータ上にホストすることができる。あるいは、別の専用コンピュータやサーバ上にホストすることもできる。アプリケーションサーバの機能については、以下の図面を参照して詳細に説明する。
図2は、本発明の実施形態2に基づき実装されたシステム200の概略図である。システム200は、複数の仮想マシン202、アプリケーションサーバ204、データベースを備える。以下に説明する望ましい実施形態において、データベースはデータベースサーバ206上にホストすることができる。アプリケーションサーバ204は、単一の物理サーバであってもよいし、仮想サーバであってもよい。同様にデータベースサーバ206は、単一の物理サーバであってもよいし、仮想サーバであってもよい。
仮想マシン202、アプリケーションサーバ204、データベースサーバ206は、ネットワーク化され、互いに通信できるようになっている。システム200は、アプリケーションサーバ204が仮想マシン202に対して自動プロセスを割り当てて実行させるように構成されている。アプリケーションサーバ204が割り当てて仮想マシン202が実行する自動プロセスは、ソフトウェアシステム、データベース、ファイル、文書のいずれか1以上に存在するデータに対して実施する、ユーザ定義プロセスである。
実施形態2において、仮想マシン202は、標準エンドユーザオペレーティングシステム(望ましくはMicrosoft Windors(登録商標))の永続仮想インスタンスである。仮想マシン202は、1以上のセキュアサーバ上に存在することが望ましい。セキュアサーバとは、適切なセキュリティクリアランスや認証なしでは物理的または遠隔的にアクセスできないものである。仮想マシンが存在するサーバは、例えばVMWare ESX(登録商標)などのType1ハイパーバイザを実行することが望ましい。ただし、仮想マシンを生成し実行する任意の適当なハードウェアとソフトウェアの構成を用いることができることを理解されたい。仮想マシン202は、グラフィック出力を表示するモニタやこれに類する出力デバイスを有していない点において、主要部がないものといえる。複数の仮想マシン202を実行することにより、複数の自動プロセスを同時実施して、生産性を改善しまたは複数の外部ユーザに対して同時にサービスを提供することができる。
仮想マシン202に対するリモートアクセスは、いったんマシンが構築されると制限されることが望ましい。仮想マシン202をリモートから再起動、シャットダウン、スタートアップする機能のみが、リモートアクセスとして必要である。ただし、アプリケーションサーバ204が仮想マシン202に対してプロセスを実行するよう指示することを除く。この構成により、システムのセキュリティを高めることができる。仮想マシン202上で動作している自動プロセスに対してリモート干渉することができないからである。この構成はさらに、仮想マシン上で自動化されたプロセスを実施するオペレーションスタッフを用いるに際してのセキュリティを高めることができる。悪意をもってまたは偶発的に、正しい認証を受けずに別データに対して別態様でプロセスを実施することはできない。認証は、システムを管理しない者に対して提供する必要はない。
仮想マシン202上で動作する自動プロセスにとって必須なアプリケーションに対してアクセスするには、パスワードが必要である。パスワードは、暗号化されたクレデンシャルストアに格納される。クレデンシャルストアは、3DESを用いて暗号化され、データベースサーバに格納されることが望ましい。ただし、その他任意の適当な暗号方式を用いることもできる。クレデンシャルストアは、例えばアプリケーションサーバ上や仮想マシン上などの任意の適当な場所に格納することができる。自動プロセスは、クレデンシャルストアに格納されているパスワードがシステム200外において知られていない安全なランダムパスワードへ周期的にアップデートされるように構成することができる。顧客情報、銀行情報などの繊細な情報に対してアクセスするアプリケーションを保護するパスワードは、仮想マシン202上の暗号化されたクレデンシャルストアに格納され、オペレーションスタッフに対しては提供されない。よってシステムとアプリケーションおよびその内部に収容される情報のセキュリティが大幅に改善される。クレデンシャルストアからのクレデンシャルリクエストは、仮想マシン202のIDおよびクレデンシャルを要求するプロセスのIDに基づき認証することができる。これにより、認証されたマシンとプロセスのみがクレデンシャルストア内の情報に対してアクセスを許可される。仮想マシン202は例えば、Windows(登録商標) Credential Providerを用いてアプリケーションサーバ204を認証することができる。
システム管理者とユーザは、オプションとして、Microsoft Active Directoryを用いて認証することができる。これは管理者やユーザのロールと既存ドメイン構造に対するパーミッションとをリンクするものである。
アプリケーションサーバ204は、データベースサーバ206に対する仮想マシン202の接続を管理するように構成されている。アプリケーションサーバ204は、例えばWindows(登録商標)認証やSQL認証などのデータベースサーバセキュリティクレデンシャルを保持し、データベースにとってセキュア接続プロキシとして動作する。これにより、全ての仮想マシン202はアプリケーションサーバ204と通信し、アプリケーションサーバ204は仮想マシン202に代わってデータベースサーバ206と安全に通信する。この構成により、システム200内においてアプリケーションサーバ204のみが、正しい認証を受けてデータベースサーバ206上に格納されているデータにアクセスし変更するためのデータベースセキュリティクレデンシャルを格納する必要がある場所となる。データベースサーバセキュリティクレデンシャルはシステム200内の1箇所にのみ格納されているので、各仮想マシン202上にセキュリティクレデンシャルを格納するよりもシステムのセキュリティが向上する。また、現在の複数ユーザ複数パスワードシステムよりも向上したセキュリティを提供することができる。
データベースサーバ206は、SQLサーバデータベースであることが望ましい。データベースサーバ206は、1以上のSQLサーバデータベースを保持する。SQLサーバデータベースは、自動プロセス、ユーザクレデンシャル、認証情報、プロセスログ、ワークフロー構成、自動プロセスのスケジューリング情報に関するプロセスとオブジェクトのリポジトリを保持する。1つのデータベース206上に複数のSQLスキーマが存在してもよい。これにより、異なる仮想マシン202がデータベースサーバ206のデータベース内に格納された異なる情報セットを参照して異なる自動プロセスを実行することができる。
データベースサーバ206は、ワークキューを格納する。ワークキューにより、仮想マシン202上で実行されるプロセスをシステム全体に分散するため、処理を要求するデータを格納することができる。プロセスステージ情報(例えば単純な数字であり、プロセスの現在ステージを示し、これによりプロセスが一時停止したり再開したりできるようにするもの)と例外の詳細も、ワークキューに格納される。データは、直接データベースから取り出し、API経由で取り出し、または既存のワークフローシステムその他情報ストアにアクセスするVMによって、ワークキューに対して充填される。ここでいう情報ストアは、例えばスプレッドシート、電子メール、その他ファイルメカニズムであり、キューを用いて各動作アイテムに対する参照を保持するものである。例えば自動化するプロセスは、1以上のファイルからデータを読み取り、そのデータに応答してまたはそのデータに対してアクションを実施するものである。データが1以上のファイルから読み取られると、そのデータはワークキューに格納され、プロセスを実施する際に用いるまたはプロセスを実施する対象であるワークキューから仮想マシン202がデータを取り出すことができるようになる。
ワークキューは、暗号化することもできる。これにより、ワークキュー内のデータのセキュリティレイヤをさらに提供することができる。ワークキューに格納されたデータは、例えば銀行情報、住所、誕生日などの顧客個人情報(あるいはその他多くの繊細な情報)を含む場合がある。したがってこのセキュリティは、実施形態によっては重要である。
端末208は、図3に示すように、システム200上で動作する自動プロセスを定義するため、および仮想マシン202を見るために用いられる。端末208は、仮想マシン202上で実施する自動プロセスのスケジュールを定義するため、および管理者が仮想マシン202上で動作するプロセスの開始と終了を手動で見るためにも用いられる。プロセスは、端末208を用いてスケジューリングシステムの外で開始し終了することができる。
実施形態2において、アプリケーションサーバ204は、仮想マシン202に対して個々のプロセスを実行するよう指示することにより、定義されたスケジュールを実施するように構成されている。
アプリケーションサーバ204がプロセスのスケジューリングを制御するとともに仮想マシン202からデータベースサーバ206に対する接続を管理することに代えて、アプリケーションサーバ204はプロセスのスケジューリングについてのみ責任を有するようにしてもよい。また、個別のアプリケーションまたはサーバが、仮想マシン202からデータベースサーバ206への接続を管理するように構成してもよい。
現在はオペレーションスタッフが通常実施しているプロセスを本明細書のシステム上で実施することにより、プロセスのステップを一貫的にエラーなく実施することができる。また、プロセスステップを記録することができる。記録したプロセスステップを解析して、プロセスを実施する速度を改善し、またプロセスそのものも改善することができる。
図3は、本発明の実施形態3に係るシステム300を示す。システム300aと300bはそれぞれ、仮想マシン302aと302b、アプリケーションサーバ304aと304b、データベースサーバ306aと306bを備える。実施形態2について先述したように、アプリケーションサーバ304aと304b、およびデータベースサーバ306aと306bは、物理サーバであってもよいし仮想サーバであってもよいしこれらの組み合わせであってもよい。これらは単一サーバであってもよいし複数サーバであってもよく、先述のいずれの態様でセットアップすることもできる。ネットワーク308は、アプリケーションサーバ304aと304bおよびデータベースサーバ306aと306bを接続する。ネットワーク308は、LANでもよいしWANでもよい。システム300aと300bは、同一サイトに配置することもできるし、別サイトに配置することもできる。
システム300aと300bにわたるプロセスのスケジューリングと仮想マシン302aおよび302bに対する割り当ては、アプリケーションサーバ304aと304bのいずれかによって実施することが望ましい。この場合、アプリケーションサーバ304aと304bのいずれかがダウンし、またはシステム300aと300bのいずれかがダウンすると、自動プロセスのスケジューリングと割り当てはアプリケーションサーバ304aと304bのダウンしていない方によって必要に応じて引き継ぐことができる。このように、自動プロセスの実行は仮想マシン302aと302bのセットのうち少なくとも一方で継続させることができる。
これに代えて、マスタアプリケーションサーバがシステム300aと300bにわたって、プロセスのスケジューリングおよび仮想マシン302aと302bに対する割り当ての責任を持つことができる。この構成により、システム300aと300bのいずれか、またはアプリケーションサーバ304aと304bのいずれかがダウンしたとしても、仮想マシン302aと302b上におけるプロセスの実行を、仮想マシン302aと302bのセットのうち少なくともいずれかにおいて継続することができる。
データベースサーバ306bは、データベースサーバ306aのミラーである。この構成は、アプリケーションサーバ304aもしくは304b、またはデータベース306aもしくは306b、あるいはこれら双方がダウンしたときの要求を満たす。システム300aと300bが異なるサイトに配置されている場合、この構成により、例えば電力遮断などにより一方のサイトがダウンしたとしても、自動プロセスを第2サイトにおいて確実に実行継続することができる。これに代えてシステム300bは、同一サイトに配置するかまたは別サイトに配置して最初は停止させておき、第1サイトがダウンしたとき起動させてもよい。ダウンイベントが発生したとき、アプリケーションサーバ304aと304bの機能しているセットは、プロセスの配置を調整する。マスタアプリケーションサーバがプロセスのスケジューリングと配置の役割を有する場合、マスタアプリケーションサーバはプロセスの配置を調整することができる。
図4は、実施形態2と実施形態3の代替形態を示す。複数のデータベースサーバ206がシステム内に存在する。以下の例において、3つのデータベースサーバについて説明するが、これは例に過ぎない。データベースサーバ406a、406b、406cはそれぞれ異なるデータベースを保持し、アプリケーションサーバ404はデータベースサーバ406a、406b、406c全てに関連付けることができる。これに代えて、複数のアプリケーションサーバ404が設けられ、各アプリケーションサーバがデータベースサーバ406a、406b、406c全てのクレデンシャルを保持するようにしてもよい。さらに別形態として、アプリケーションサーバ404の台数がデータベースサーバ406a、406b、406cと同じであり、各アプリケーションサーバ404がデータベース406a、406b、406cのうち1つのみのクレデンシャルを保持するようにしてもよい。複数データベースサーバをこのように構成することにより、同じ仮想マシン402を用いて異なるデータベースを参照しつつ複数の個別の自動プロセスセットを動作させることができる。
複数のデータベースサーバ406a、406b、406cを用いる場合、データベースサーバ40は同じデータベースを保持するように構成することができ、データベースサーバ206のうち1以上はマスタデータベースサーバのミラーとすることができる。この構成により冗長性を提供することができ、いずれかのサーバが機能停止した場合は仮想マシン202上でプロセスを実行継続することができる。
図5は、上記実施形態2と実施形態3の代替形態を示す。2以上のアプリケーションサーバ204が存在する。アプリケーションサーバ504a、504b、504cは全て、専用サーバ、仮想サーバ、またはその組み合わせである。複数のアプリケーションサーバ204が存在する実施形態において、1つのサーバはマスタスケジューラサーバとして指定され、これが仮想マシン202に対するスケジューリングと命令発行を実施してプロセスを実行する。各アプリケーションサーバ204は、データベースサーバ206の認証のためのクレデンシャルの複製セットを管理する。アプリケーションサーバ504a、504b、504cの上記構成により、システムの冗長性を確保し、アプリケーションサーバ504a、504b、504cのうち1つまたは2つがダウンしたときのフェールセーフを提供して自動プロセスを仮想マシン502上で動作させることができる。この構成におけるアプリケーションサーバの台数は、3以上の任意個数であってもよく、図示する3台は例示であることを理解されたい。
図6は、仮想マシン202上で実行する自動プロセスを定義するプロセスのフローチャート600を示す。
システム100、200、300、400、または500によって実施される自動プロセスは、ソフトウェアアプリケーションから情報を取得しまたはソフトウェアアプリケーションに対して情報を入力するステップを有する。既存の専用APIを備えていないソフトウェアアプリケーションについては、他のソフトウェアアプリケーションおよび自動プロセスとのやり取りは、コンピュータ対話オブジェクトを生成することにより実現される。自動プロセスはこのオブジェクトにアクセスし、ソフトウェアアプリケーションに対して情報を入力しまたはソフトウェアアプリケーションから情報を出力することができる。このプロセスは、以下の方法にしたがってステップ602において実施される。
既存ソフトウェアアプリケーションが、例えばJava(登録商標) Accessibility APIを実装したJapaアプリケーションやアプレット、またはMicrosoft Active Accessibility APIやIAccessible2を実装したWindows(登録商標)アプリケーションなどのアクセシビリティ機能を実装している場合、アクセシビリティインターフェース定義を捕捉し、これらを用いてコンピュータ対話オブジェクトを生成することができる。
これに代えて、アプリケーションがHTML webアプリケーションまたは文書である場合、webページのHTMLをパースしてHTMLエレメントを識別し、これら定義を用いて、ユーザ定義プロセスがアクセスするwebアプリケーションにリンクしたコンピュータ対話オブジェクトを生成することができる。
HTMLパーサとして望ましいのは、Microsoft Internet ExplorerのMSHTML IHTMLDocument2インターフェースが提供するDocument Object Model(DOM)パーサである。実施形態において、これはHTML webアプリケーションや文書が表示されるGUIウインドウの属性、HTML webアプリケーションまたは文書のURL、およびHTMLパスと組み合わせられ、これによりコンピュータ対話オブジェクトのユニークIDが生成される。
コンピュータ対話オブジェクトは、既存の公開APIを用いてソフトウェアアプリケーションのために定義することもできる。このAPIは例えば、Windowオブジェクト、DDE、メインフレーム端末のHLLAPIインターフェース、フックCOMコンポーネント、などである。これにより、既存APIを備えていないソフトウェアアプリケーションについて定義したコンピュータ対話オブジェクトと同じ態様で、自動プロセスがアクセスすることができる。プレゼンテーション層(すなわち画面上に提示されるユーザインターフェース)を用いて、コンピュータ対話オブジェクトを定義し、アプリケーションに対して送信された制御命令を解釈することもできる。これはプレゼンテーション技術を用いて実現することができる。すなわち、アプリケーション内の基盤コンポーネントおよび、通信処理やユーザが視認してユーザとやり取りするウインドウ、コントロールの描画を実施するアプリケーションのホストOSである。例えば基盤コントロール、Windows(登録商標)とアプリケーションとの間のマウスおよびキーボードメッセージ、コントロールを管理しユーザとのやり取りを処理するアプリケーションのCOMコンポーネント、である。
ユーザ定義プロセスがアクセスするソフトウェアアプリケーションに対してリンクしたコンピュータ対話オブジェクトを生成する先述の方法は、ソフトウェアの特定機能に依拠している。ただしこれら機能は、常に存在しているとは限らない。シンクライアントアプリケーションは、ユーザがキーボード/マウス入力と画像出力を用いてやりとりするシステムから切り離されたコンピュータシステム上で動作する場合があり、この場合はユーザシステムにおけるGraphical User Interface(GUI)のみを提供する。本発明のシステムにおいて、自動プロセスはシンクライアントアプリケーションとやり取りする必要がある場合がある。自動プロセスが実行されるシステム上に存在するシンクライアントアプリケーションの唯一のコンポーネントはそのシンクライアントアプリケーションのGUIであるので、コンピュータ対話オブジェクトを生成するため用いることができるインターフェースはそのGUIのみである。
アプリケーションのGUIに関連するコンピュータ対話オブジェクト(例えばシンクライアントアプリケーションの場合におけるもの)は、入力フィールドまたは出力フィールドとして解釈すべきGUIの領域を定義することにより、本発明の実施形態に基づき生成することができる。定義した領域が出力フィールドである場合、フィールドのコンテンツは、定義領域において用いられているフォントを識別し、識別したフォントの文字と比較して定義領域内のテキストの文字を識別し、識別した文字を文字列として出力することにより、解釈される。この文字列は、コンピュータシステム上で解釈することができる。GUI内に表示されるテキストを解釈する方法は、以下の図7を用いて説明する。
ステップ604において、自動プロセスにおいて用いるため必要なソフトウェアアプリケーションのためにコンピュータ対話オブジェクトがいったん定義されると、定義されたコンピュータ対話オブジェクト、データベース情報、格納されたファイルおよび文書を使用するためのセッションが定義される。セッションは、仮想マシン202上で動作する既定の個別プロセスである。セッションを確立するアクションは例えば、ファイルを特定するステップ、ファイルからデータを読み取るステップ、およびワークキューにデータを配置するステップを有する。
ステップ606において、ステップ604で定義されたセッションがタスクへグループ化される。タスクは、グループ化され並列実行されるセッションの集合である。タスク内において、個々のセッションは特定の仮想マシン202またはリソースプールに対して割り当てられる。これにより、タスクが実行されるときに、アプリケーションサーバ204は仮想マシン202またはリソースプールに対して命令を送信して、これらに対して割り当てられたセッションを実施する。
リソースプールは、仮想マシン202のセットを複合ユニットとして取り扱うことができるプールへグループ化したものである。リソースプールは、定義されたスケジュールにしたがってアプリケーションサーバ204がプロセスを割り当てる点において、外部的には個々の仮想マシン202であるかのように見え、またそのように動作する。内部的には、リソースプールがプロセスを実行するよう指示されると、プールに属する仮想マシン202のいずれか1つを自動的に選択することによりこれを実施する。
リソースプールは、リソースプール全体の命令を受け取るコントローラを有する。コントローラは、例えばリソースプール内の仮想マシン202であり、またはアプリケーションサーバ204である。
アプリケーションサーバ204がコントローラなのではなく仮想マシン202がリソースプールのコントローラである場合、リソースプール内の全仮想マシン202は、アプリケーションサーバ204によって取り扱うことができる。コントローラではない仮想マシン202は、アプリケーションサーバ204から到着するメッセージをコントローラへ転送し、コントローラからの応答をアプリケーションサーバ204へ転送する。コントローラとして動作する仮想マシン202のIDは、データベースサーバ206上に格納されたデータベースへタイムスタンプとともに記録され、アプリケーションサーバ204を介してコントローラにより更新される。このデータベースレコードが古くなった場合(コントローラとして動作する仮想マシン202が、例えばエラーやダウンによってコントローラとして動作することを停止したことを示している)、他の仮想マシン202がリソースプールのコントローラとしての役割を引き継ぐ。データベースレコードにより、並行処理の問題をなくすことができる。2つの仮想マシン202が同時にデータベースレコードを更新することはできず、したがって2つの仮想マシン202が同時にリソースプールのコントローラを引き継ごうと試みることはできないからである。
コントローラが機能停止した場合、リソースプール内の他の仮想マシンはこれを高速に検出することができる。コントローラと直接通信することがもはやできないからである。
仮想マシンをリソースプール内に配置することは、ダウン時の冗長性と要求増加に対処するスケーラビリティを提供する利点がある。タスク内のセッションを個々の仮想マシン202ではなくリソースプールへ割り当てることにより、仮に1つの仮想マシン202がダウンしたとしても、ユーザが介在しなくとも他の仮想マシンが代わりにセッションを実行することができる。リソースプールに対してセッションを割り当てると、システムは要求された処理をより多くの仮想マシン202へ拡散させることにより、増加した要求に対処することができる。リソースプールに対してより多くの仮想マシン202を追加することができる。これにより、要求に応じてリソースプールの性能を増すことができる。
ステップ608において、ステップ606で定義したタスクがスケジュールに配置されれる。スケジュールは、順次実施されるタスクツリーを含む。スケジュール内において、各タスクは正常完了後に実施すべき次のタスクもしくは動作または例外を定義する。スケジュールが実施される日時も定義される。例えばスケジュールは、所与の日時において1回のみ実行するように定義することもできるし、可変間隔で実行するように定義することもできる。これはカレンダータイプベースで実現することができる。例えば営業日時の特定スケジュールにおいてのみ動作するようにすることができる。スケジュールは、所与の開始点から無期限で実行することもできるし、特定日時において中止することもできる。
本発明の1実施形態において、端末を用いて、所与の時間範囲内でスケジュールが実行される時刻を表示するタイプテーブルを見ることができる。
本発明の1実施形態において、プロセスをスケジューリングシステム外で実行することができる。例えばユーザの手動制御により、または外部システムにより実行することができる。外部システムはAPI経由でプロセスにアクセスすることができる。例えば自動プロセスがオンデマンドまたは特定動作の応答において要求されたとき、APIコールがワークキュー内にプロセスを配置する。プロセスを外部からアクセスできるようにすることにより、既定スケジュール以外においてプロセスを実行することが必要な環境でシステムを用いることができる。例えば上述のキオスクにおけるセルフサービスチェックは、患者がチェックインするときその患者をチェックイン(および患者がチェックインした後に続くその他アクション)するため必要なプロセスのみを実行する必要がある。
スケジュールが完了すると、例えば定義したスケジュールが予定通り完了したか、スケジュールが定義通り終了したか、またはエラーが発生したかにより、スケジュールの結果が後に閲覧するためのレポートに保存される。
スケジューリング、コンピュータ対話オブジェクトの定義、プロセスの定義は、タスクが高レベルで自動化されることを意味する。その結果、IT専門家でない人がプロセスを自動化するようにシステムを構成するためのトレーニングが少なくて済む。また、変化する要求に対して素早く応答しつつ、従来の企業開発サイクルを回避することができる。
図7は、定義領域内のテキストを解釈するプロセスを実施する方法700を示すフローチャートである。ステップ702において、アプリケーションが使用するフォントがユーザによって識別される。本例におけるユーザは、例えば自動プロセスを実行する際に用いるシステムやコンピュータ対話オブジェクトを構成する人である。アプリケーションのユーザインターフェースにおいて用いられるフォントは、OSに依拠する。ステップ704において、フォントの各文字についての2次元ピクセル画像が生成される。2次元ピクセル画像は、真偽値の配列であることが望ましい。配列の各要素は各ピクセルを表し、その値は当該ピクセルが文字によって使用されているか否かを表す。各配列は同個数の垂直要素を有することが望ましい。例えば終止符を表す配列は、最も低い文字と同じ高さから最も高い文字と同じ高さまで延伸している。文字配列は、XML形式で格納することが望ましいが、その他任意の適当な態様で格納することもできる。
ステップ706において、定義領域のビットマップを、フォント文字について用いられているものと同じ2次元ピクセル形式へ変換する。これは、ビットマップをクリーニングして、フォントの一部を形成しないピクセルを破棄することを含む。これは、ビットマップの全ピクセルが“紙”であると仮定することにより実施される。すなわちピクセルは、テキストがセットされる背景の一部とみなされる。ビットマップをスキャンしながら、特定の前景色に合致するピクセルを、“インク”としてマークする。すなわち、これらはテキストの一部を形成する。この変換の結果は“キャンバス”であり、これはGUIの定義領域内に表示される文字を表す。先述のように、この配列形式は真偽値の2次元配列であることが望ましい。
これに代えて、定義領域のビットマップを16ビット近辺までフィルタリングして、色を16ビットカラーパレットによって置き換えてもよい。ただし特定の背景色はフィルタリング対象から除外し、32ビット値を維持する。フィルタリングした画像の各行について、支配的な色が見つかる。その支配色が背景色でない場合、その支配色の行の全ピクセルは、背景色によって置き換えられる。このビットマップを用いて、全ピクセルがインクであると仮定し、各ピクセルをスキャンして特定背景色と合致するピクセルを紙としてマークすることにより、キャンバスが生成される。
ステップ708において、文字が見つかるまでキャンバスを各文字についてスキャンする。キャンバスをスキャンする第1方法において、キャンバスをトリミングして、インクを含む列の前後にブランク列(すなわち紙のみを含む列)がなくなるようにし、さらにインクを含む行の上下のブランク行がフォントにおいて指定された文字の上下の最大ホワイトスペースと合致するようにする。
ステップ710において、キャンバスのマスク、フォント文字のマスクに対して紙を除いた文字のインク配置を表すマスクを比較することにより、フォントに対してキャンバスをマッチングする。まず垂直下方に左上から右下までキャンバスをテストする。キャンバスをスキャンするその他適当な方法を用いてもよいことを理解されたい。キャンバスの各点について、フォント内の各文字をテストし、文字マスクにおいて定義されているインクがキャンバスのインクとして表されているか否かを判断する。複数文字が合致する場合は、最も多いインクを有する文字が選択される。文字が既に見つかっている場合は、別の行における後続の合致は無視される。文字間のスペースは、フォントにおいて定義されている文字間の通常のスペースに準じて除去される。
ステップ712において、プロセスは識別した文字を通過して移動する。これは、単に識別した文字を超える位置からスキャンを継続することによって実施することができる。あるいは識別した文字インクをキャンバスから削除して、文字が2回識別されることを回避し、または他の文字の識別に影響を与えることを回避できる。識別したキャリアを通過して移動した後もスキャンプロセスがキャンバスの最後まで到達していない場合、次の文字が見つかるまでまたはキャンバスの最後に到達するまで、スキャンプロセスを継続する。キャンバスの最後まで到達した場合、ステップ714において解釈したテキストを出力する。
本明細書は例示目的のみのものであることを理解されたい。特許請求範囲が定義する本発明の範囲から逸脱することなく、説明した実施形態に対して変形や修正をすることができる。

Claims (76)

  1. 自動プロセスを動作させるシステムであって、
    データベースに対して通信可能に接続された第1コンピュータを備え、
    前記第1コンピュータは、前記データベースが格納しているデータを利用して、自動プロセスの動作に対して影響する命令を実行するように構成されている
    ことを特徴とするシステム。
  2. 前記データベースは、前記第1コンピュータ上に格納されている
    ことを特徴とする請求項1記載のシステム。
  3. 前記データベースは、第2コンピュータ上に格納されている
    ことを特徴とする請求項1記載のシステム。
  4. 前記データベースは、データベースサーバ上に格納されている
    ことを特徴とする請求項1記載のシステム。
  5. 前記第1コンピュータは、少なくとも1つの仮想マシンをホストするように構成されており、
    前記少なくとも1つの仮想マシンは、前記自動プロセスを実行するように構成されている
    ことを特徴とする請求項1から4のいずれか1項記載のシステム。
  6. 前記システムはさらに、アプリケーションサーバを備える
    ことを特徴とする請求項1から5のいずれか1項記載のシステム。
  7. 前記第1コンピュータは、アプリケーションサーバをホストするように構成されている
    ことを特徴とする請求項6記載のシステム。
  8. 前記アプリケーションサーバは、専用サーバとして動作する第2コンピュータ上にホストされている
    ことを特徴とする請求項6記載のシステム。
  9. 自動プロセスを動作させるシステムであって、
    少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンを備え、前記少なくとも1つの仮想マシンは前記少なくとも1つのデータベースサーバおよび前記少なくとも1つのアプリケーションサーバと通信可能に接続されており、
    前記少なくとも1つのアプリケーションサーバは、前記少なくとも1つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するように構成されており、
    前記少なくとも1つの仮想マシンは、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するように構成されている
    ことを特徴とするシステム。
  10. 前記少なくとも1つのデータベースサーバ、前記少なくとも1つのアプリケーションサーバ、および前記少なくとも1つの仮想マシンは、第1セットを形成し、
    前記システムはさらに、少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンの第2セットを備え、
    前記第1および第2セットは、各前記セットの前記少なくとも1つのアプリケーションサーバと各前記セットの前記少なくとも1つのデータベースサーバが互いに通信できるように、通信可能に接続されており、
    各前記セットのうちいずれかの前記少なくとも1つのアプリケーションサーバは、前記第1および第2セットのうち少なくとも1つの前記少なくとも1つの仮想マシンに対して命令を提供するように構成されており、
    前記第2セットの前記少なくとも1つのデータベースサーバは、前記第1セットの前記少なくとも1つのデータベースサーバのミラーである
    ことを特徴とする請求項9記載のシステム。
  11. 各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理するように構成されている
    ことを特徴とする請求項9または10記載のシステム。
  12. 各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくともデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する
    ことを特徴とする請求項11記載のシステム。
  13. 各前記セットのうち少なくとも1つはさらに、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンおよび各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対して通信可能に接続された通信サーバを備え、
    前記通信サーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理するように構成されている
    ことを特徴とする請求項9または10記載のシステム。
  14. 前記少なくとも1つのデータベースサーバは、複数のデータベースを保持する
    ことを特徴とする請求項9から13のいずれか1項記載のシステム。
  15. 前記少なくとも1つの仮想マシンは、標準エンドユーザデスクトップオペレーティングシステムを備える
    ことを特徴とする請求項9から14のいずれか1項記載のシステム。
  16. 前記少なくとも1つの仮想マシンは2以上の仮想マシンを備え、
    前記仮想マシンは少なくとも1つのリソースプールへグループ化されている
    ことを特徴とする請求項9から15のいずれか1項記載のシステム。
  17. 前記少なくとも1つのリソースプールはコントローラを備え、
    前記コントローラは前記少なくとも1つのリソースプール内の仮想マシンである
    ことを特徴とする請求項16記載のシステム。
  18. 前記少なくとも1つのリソースプールの前記コントローラは、タイムスタンプと併せてデータベースレコードを更新するように構成されており、
    前記データベースレコードは、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する
    ことを特徴とする請求項17記載のシステム。
  19. 前記少なくとも1つのリソースプール内の全ての仮想マシンは、前記少なくとも1つのアプリケーションサーバから命令を受け取るように構成されており、さらに前記少なくとも1つのアプリケーションサーバからの命令を前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンに対して転送するように構成されている
    ことを特徴とする請求項18記載のシステム。
  20. 前記少なくとも1つのリソースプールの各前記仮想マシンは、前記少なくとも1つのリソースプールの現行の前記コントローラが機能停止した場合、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する前記データベースレコードを更新することにより、前記少なくとも1つのリソースプールのコントローラを引き継ぐように構成されている
    ことを特徴とする請求項19記載のシステム。
  21. 前記少なくとも1つのリソースプールの前記コントローラは、前記アプリケーションサーバである
    ことを特徴とする請求項17記載のシステム。
  22. 前記少なくとも1つの仮想マシンはさらに、アクセシビリティインターフェース;公開API;およびオペレーティングシステムのプレゼンテーション技術のうちいずれか1以上と対話することにより、前記自動プロセスを実施するように構成されている
    ことを特徴とする請求項9から21のいずれか1項記載のシステム。
  23. 前記少なくとも1つの仮想マシンはさらに、HTML文書内のHTMLエレメントを解釈することにより、前記自動プロセスを実施するように構成されている
    ことを特徴とする請求項9から22のいずれか1項記載のシステム。
  24. 前記少なくとも1つの仮想マシンは、ユーザインターフェースの定義領域内のテキストが使用するフォントを識別し、前記識別したフォントを使用する前記ユーザインターフェースの前記定義領域内の前記テキストの文字を識別することにより、少なくとも1つの前記自動プロセスを実施するように構成されている
    ことを特徴とする請求項9から23のいずれか1項記載のシステム。
  25. 前記システムはさらに、前記少なくとも1つの仮想マシンが実施する前記自動プロセスを観察するように構成された端末を備える
    ことを特徴とする請求項9から24のいずれか1項記載のシステム。
  26. 前記第1および第2セットは、広域ネットワーク接続によって接続されている
    ことを特徴とする請求項10記載のシステム。
  27. 前記第1および第2セットは、異なる物理サイトに配置されている
    ことを特徴とする請求項26記載のシステム。
  28. 前記第1および第2セットは、ローカルエリアネットワークによって接続されている
    ことを特徴とする請求項10記載のシステム。
  29. 前記第2セットは、前記第1セットのエラー時に起動されるまでは休止している
    ことを特徴とする請求項10または26から28のいずれか1項記載のシステム。
  30. 前記第1および第2セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つの仮想マシンから各前記セットの前記少なくとも1つのデータベースサーバに対する接続を管理するように構成されている
    ことを特徴とする請求項10または26から29のいずれか1項記載のシステム。
  31. 各前記セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する
    ことを特徴とする請求項10または26から30のいずれか1項記載のシステム。
  32. 前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム;データベース;記憶されたファイルまたは文書のうちいずれか1以上からのデータに対して実施されるように構成されている
    ことを特徴とする請求項9から31のいずれか1項記載のシステム。
  33. 前記第1および第2セットの前記少なくとも1つのリソースプールの前記コントローラは、マスタアプリケーションサーバである
    ことを特徴とする請求項17記載のシステム。
  34. 前記第1セットの前記少なくとも1つのリソースプール内の仮想マシンの構成および個数は、前記第2セットの前記少なくともリソースプール内の仮想マシンの構成および個数と同じである
    ことを特徴とする請求項15記載のシステム。
  35. 前記少なくとも1つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し;前記少なくとも1つの仮想マシンをシャットダウンし;前記少なくとも1つの仮想マシンをリスタートし;前記少なくとも1つの仮想マシンを起動するためのリモートアクセスが制限されるように構成されている
    ことを特徴とする請求項9から34のいずれか1項記載のシステム。
  36. 特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも1つのパスワードは、前記データベースサーバ上の暗号化クレデンシャルストア内に格納される
    ことを特徴とする請求項9から35のいずれか1項記載のシステム。
  37. 前記少なくとも1つの仮想マシンは、前記暗号化クレデンシャルストア内の前記少なくとも1つのパスワードを、前記システム外において未知のランダムパスワードへ更新するように構成されている
    ことを特徴とする請求項36記載のシステム。
  38. 本願明細書において図面を参照して記載され図面に示されている、自動プロセスのためのシステム。
  39. 自動プロセスを動作させる方法であって、
    データベースに対して通信可能に接続された第1コンピュータを提供するステップ、
    自動プロセスを実行するように前記第1コンピュータを構成するステップ、
    前記データベースが格納しているデータを用いて前記自動プロセスを実行するステップ、
    を有することを特徴とする方法。
  40. 前記データベースは、前記第1コンピュータ上に格納されている
    ことを特徴とする請求項39記載の方法。
  41. 前記データベースは、第2コンピュータ上に格納されている
    ことを特徴とする請求項39記載の方法。
  42. 前記データベースは、データベースサーバ上に格納されている
    ことを特徴とする請求項39記載の方法。
  43. 前記第1コンピュータを構成するステップは、
    前記第1コンピュータ上に少なくとも1つの仮想マシンをホストするステップ、
    前記自動プロセスを実行するように前記少なくとも1つの仮想マシンを構成するステップ、
    を有することを特徴とする請求項39から42のいずれか1項記載の方法。
  44. 前記方法はさらに、アプリケーションサーバを提供するステップを有する
    ことを特徴とする請求項39から43のいずれか1項記載の方法。
  45. 前記第1コンピュータを構成するステップは、前記第1コンピュータがアプリケーションサーバをホストするように構成するステップを有する
    ことを特徴とする請求項44記載の方法。
  46. 前記方法はさらに、
    専用サーバを提供するステップ、
    前記アプリケーションサーバを前記専用サーバ上にホストするステップ、
    を有することを特徴とする請求項44記載の方法。
  47. 自動プロセスを動作させる方法であって、
    少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンを提供するステップであって、前記少なくとも1つの仮想マシンは前記少なくとも1つのデータベースサーバおよび前記少なくとも1つのアプリケーションサーバと通信可能に接続されている、ステップ、
    前記アプリケーションサーバにより、前記少なくとも1つの仮想マシンに対して、自動プロセスを実行するよう指示する命令を提供するステップ、
    前記少なくとも1つの仮想マシン上で、前記データベースが格納しているデータを利用して、前記提供された命令にしたがって前記自動プロセスを実行するステップ、
    を有することを特徴とする方法。
  48. 前記少なくとも1つのデータベースサーバ、前記少なくとも1つのアプリケーションサーバ、および前記少なくとも1つの仮想マシンは、第1セットを形成し、
    前記方法はさらに、
    少なくとも1つのデータベースサーバ、少なくとも1つのアプリケーションサーバ、および少なくとも1つの仮想マシンの第2セットを提供するステップであって、前記第1および第2セットは、各前記セットの前記少なくとも1つのアプリケーションサーバと各前記セットの前記少なくとも1つのデータベースサーバが互いに通信できるように、通信可能に接続されている、ステップ、
    各前記セットのうちいずれかの前記少なくとも1つのアプリケーションサーバを、前記第1および第2セットのうち少なくとも1つの前記少なくとも1つの仮想マシンに対して命令を提供するように構成するステップ、
    前記第2セットの前記少なくとも1つのデータベースサーバ上で、前記第1セットの前記少なくとも1つのデータベースサーバをミラーリングするステップ、
    を有することを特徴とする請求項47記載の方法。
  49. 各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理する
    ことを特徴とする請求項47または48記載の方法。
  50. 各前記セットのうち少なくとも1つの前記少なくとも1つのアプリケーションサーバは、各前記セットのうち少なくとも1つの前記少なくともデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する
    ことを特徴とする請求項49記載の方法。
  51. 各前記セットのうち少なくとも1つはさらに、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンおよび各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対して通信可能に接続された通信サーバを備え、
    前記通信サーバは、各前記セットのうち少なくとも1つの前記少なくとも1つの仮想マシンから各前記セットのうち少なくとも1つの前記少なくとも1つのデータベースサーバに対する接続を管理するように構成されている
    ことを特徴とする請求項47または48記載の方法。
  52. 前記少なくとも1つのデータベースサーバは、複数のデータベースを保持する
    ことを特徴とする請求項47から51のいずれか1項記載の方法。
  53. 前記少なくとも1つの仮想マシンは、標準エンドユーザデスクトップオペレーティングシステムを備える
    ことを特徴とする請求項47から52のいずれか1項記載の方法。
  54. 前記少なくとも1つの仮想マシンは2以上の仮想マシンを備え、
    前記仮想マシンは少なくとも1つのリソースプールへグループ化されている
    ことを特徴とする請求項47から53のいずれか1項記載の方法。
  55. 前記少なくとも1つのリソースプールはコントローラを備え、
    前記コントローラは前記少なくとも1つのリソースプール内の仮想マシンである
    ことを特徴とする請求項54記載の方法。
  56. 前記少なくとも1つのリソースプールの前記コントローラは、タイムスタンプと併せてデータベースレコードを更新するように構成されており、
    前記データベースレコードは、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する
    ことを特徴とする請求項55記載の方法。
  57. 前記少なくとも1つのリソースプール内の全ての仮想マシンは、前記少なくとも1つのアプリケーションサーバから命令を受け取り、さらに前記少なくとも1つのアプリケーションサーバからの命令を前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンに対して転送する
    ことを特徴とする請求項56記載の方法。
  58. 前記少なくとも1つのリソースプールの各前記仮想マシンは、前記少なくとも1つのリソースプールの現行の前記コントローラが機能停止した場合、前記少なくとも1つのリソースプールの前記コントローラとして動作する前記仮想マシンのIDを保持する前記データベースレコードを更新することにより、前記少なくとも1つのリソースプールのコントローラを引き継ぐことができる
    ことを特徴とする請求項7記載の方法。
  59. 前記少なくとも1つのリソースプールの前記コントローラは、前記アプリケーションサーバである
    ことを特徴とする請求項55記載の方法。
  60. 前記少なくとも1つの仮想マシンは、アクセシビリティインターフェース;公開API;およびオペレーティングシステムのプレゼンテーション技術のうちいずれか1以上と対話することにより、少なくとも1つの前記自動プロセスを実施する
    ことを特徴とする請求項47から59のいずれか1項記載の方法。
  61. 前記少なくとも1つの仮想マシンは、HTML文書内のHTMLエレメントを解釈することにより、前記自動プロセスを実施する
    ことを特徴とする請求項47から60のいずれか1項記載の方法。
  62. 前記少なくとも1つの仮想マシンは、ユーザインターフェースの定義領域内のテキストが使用するフォントを識別し、前記識別したフォントを使用する前記ユーザインターフェースの前記定義領域内の前記テキストの文字を識別することにより、少なくとも1つの前記自動プロセスを実施する
    ことを特徴とする請求項47から61のいずれか1項記載の方法。
  63. 前記方法はさらに、前記少なくとも1つの仮想マシンが実施する前記自動プロセスを観察するように構成された端末を備える
    ことを特徴とする請求項47から62のいずれか1項記載の方法。
  64. 前記第1および第2セットは、広域ネットワーク接続によって接続されている
    ことを特徴とする請求項48記載の方法。
  65. 前記第1および第2セットは、異なる物理サイトに配置されている
    ことを特徴とする請求項64記載の方法。
  66. 前記第1および第2セットは、ローカルエリアネットワークによって接続されている
    ことを特徴とする請求項48記載の方法。
  67. 前記第2セットは、前記第1セットのエラー時に起動されるまでは休止している
    ことを特徴とする請求項48または64から66のいずれか1項記載の方法。
  68. 前記第1および第2セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つの仮想マシンから各前記セットの前記少なくとも1つのデータベースサーバに対する接続を管理する
    ことを特徴とする請求項48または64から67のいずれか1項記載の方法。
  69. 各前記セットの前記少なくとも1つのアプリケーションサーバは、各前記セットの前記少なくとも1つのデータベースサーバに対して安全にアクセスするためのデータベースサーバクレデンシャルを保持する
    ことを特徴とする請求項48または64から68のいずれか1項記載の方法。
  70. 前記自動プロセスは、ユーザによって定義され、ソフトウェアシステム;データベース;記憶されたファイルまたは文書のうちいずれか1以上からのデータに対して実施される
    ことを特徴とする請求項47から69のいずれか1項記載の方法。
  71. 前記第1および第2セットの前記少なくとも1つのリソースプールの前記コントローラは、マスタアプリケーションサーバである
    ことを特徴とする請求項55記載の方法。
  72. 前記第1セットの前記少なくとも1つのリソースプール内の仮想マシンの構成および個数は、前記第2セットの前記少なくともリソースプール内の仮想マシンの構成および個数と同じである
    ことを特徴とする請求項54から71のいずれか1項記載の方法。
  73. 前記少なくとも1つの仮想マシンは、前記自動プロセスを実行するよう指示する命令を提供し;前記少なくとも1つの仮想マシンをシャットダウンし;前記少なくとも1つの仮想マシンをリスタートし;前記少なくとも1つの仮想マシンを起動するためのリモートアクセスが制限される
    ことを特徴とする請求項47から72のいずれか1項記載の方法。
  74. 特定のソフトウェアアプリケーションに対してアクセスするため必要な少なくとも1つのパスワードは、前記データベースサーバ上の暗号化クレデンシャルストア内に格納される
    ことを特徴とする請求項47から73のいずれか1項記載の方法。
  75. 前記少なくとも1つの仮想マシンは、前記暗号化クレデンシャルストア内の前記少なくとも1つのパスワードを、前記方法外において未知のランダムパスワードへ更新する
    ことを特徴とする請求項74記載の方法。
  76. 本願明細書において図面を参照して記載され図面に示されている、自動プロセスを実行する方法。
JP2016522877A 2013-07-05 2014-07-04 自動プロセスのためのシステム Active JP6422491B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1312151.2A GB2517408A (en) 2013-07-05 2013-07-05 System for automating processes
GB1312151.2 2013-07-05
PCT/GB2014/052050 WO2015001360A2 (en) 2013-07-05 2014-07-04 System for automating processes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018194709A Division JP6817990B2 (ja) 2013-07-05 2018-10-16 自動プロセスのためのシステム

Publications (2)

Publication Number Publication Date
JP2016527620A true JP2016527620A (ja) 2016-09-08
JP6422491B2 JP6422491B2 (ja) 2018-11-14

Family

ID=49033437

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016522877A Active JP6422491B2 (ja) 2013-07-05 2014-07-04 自動プロセスのためのシステム
JP2018194709A Active JP6817990B2 (ja) 2013-07-05 2018-10-16 自動プロセスのためのシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018194709A Active JP6817990B2 (ja) 2013-07-05 2018-10-16 自動プロセスのためのシステム

Country Status (10)

Country Link
US (2) US11586453B2 (ja)
EP (2) EP3654180A1 (ja)
JP (2) JP6422491B2 (ja)
CN (1) CN105474210B (ja)
AU (1) AU2014285872B2 (ja)
BR (1) BR112015033078B1 (ja)
CA (1) CA2916909C (ja)
GB (1) GB2517408A (ja)
WO (1) WO2015001360A2 (ja)
ZA (1) ZA201600128B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018067812A (ja) * 2016-10-19 2018-04-26 中華電信股▲分▼有限公司 ソフトウェア・ディファインド・ユーザ体感品質測定システム
JP2018133084A (ja) * 2017-02-15 2018-08-23 ブルー プリズム リミテッド 自動化プロセスの処理の分散を最適化するシステム

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016018342A1 (en) * 2014-07-31 2016-02-04 Hewlett Packard Development Company, L.P. Remote session information based on process identifier
US10585548B2 (en) 2015-03-03 2020-03-10 Soroco Private Limited Software robots for programmatically controlling computer programs to perform tasks
US10852920B2 (en) 2016-06-30 2020-12-01 Wipro Limited Method and system for automating execution of processes
EP3437038A4 (en) * 2016-07-20 2019-08-28 Hewlett-Packard Development Company, L.P. CREATING DIGITAL WORKERS IN ORGANIZATIONS
CN107870800A (zh) * 2016-09-23 2018-04-03 超威半导体(上海)有限公司 虚拟机活跃性检测
US9805306B1 (en) 2016-11-23 2017-10-31 Accenture Global Solutions Limited Cognitive robotics analyzer
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
EP3364299A1 (en) * 2017-02-15 2018-08-22 Blue Prism Limited System for optimising distribution of processing an automated process
US10235192B2 (en) 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
CN107135277A (zh) * 2017-07-06 2017-09-05 郑州云海信息技术有限公司 一种一体机实现方法及装置
US11354164B1 (en) * 2018-04-20 2022-06-07 Automation Anywhere, Inc. Robotic process automation system with quality of service based automation
DE102018110493A1 (de) 2018-05-02 2020-01-02 Another Monday Service GmbH Deutschland System und Verfahren zur Durchführung von automatisierten Prozessen
US11025425B2 (en) 2018-06-25 2021-06-01 Elasticsearch B.V. User security token invalidation
US11223626B2 (en) 2018-06-28 2022-01-11 Elasticsearch B.V. Service-to-service role mapping systems and methods
US11474982B2 (en) * 2018-07-26 2022-10-18 Sap Se Zero downtime evolution of database schemas for cloud applications
US11196554B2 (en) * 2018-07-27 2021-12-07 Elasticsearch B.V. Default password removal
US10878531B2 (en) * 2018-08-17 2020-12-29 Accenture Global Solutions Limited Robotic process automation
US11023598B2 (en) 2018-12-06 2021-06-01 Elasticsearch B.V. Document-level attribute-based access control
TWI717714B (zh) * 2019-03-28 2021-02-01 中國信託商業銀行股份有限公司 流程機器人系統
GB2590967A (en) 2020-01-10 2021-07-14 Blue Prism Ltd Method of remote access
CN112817748A (zh) * 2021-01-20 2021-05-18 深圳魔栗科技有限公司 一种基于安卓虚拟机处理任务的方法、计算机设备
US20220391178A1 (en) * 2021-06-07 2022-12-08 UiPath, Inc. Web-based robotic process automation designer systems and automations for virtual machines, sessions, and containers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151467A (ja) * 2007-12-19 2009-07-09 Canon Inc 配信印刷システム
JP2012155219A (ja) * 2011-01-27 2012-08-16 Nec Casio Mobile Communications Ltd 演奏データ提供システム、方法、サーバ、携帯端末およびコンピュータプログラム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
FR2820222B1 (fr) * 2001-01-26 2003-03-21 Schneider Automation Procede de programmation d'une application d'automatisme
US7188111B2 (en) 2002-07-12 2007-03-06 Datadirect Technologies Corp. System and method for connectivity to structured query language database
JP2005184165A (ja) 2003-12-17 2005-07-07 Hitachi Ltd トラフィック制御装置およびそれを用いたサービスシステム
JP2005196291A (ja) * 2003-12-26 2005-07-21 Fujitsu Ltd ユーザインタフェースアプリケーション開発プログラム、および開発装置
US7971091B1 (en) * 2006-05-02 2011-06-28 Emc Corporation Network configuration backup and restore operations using continuous data protection
US20100027896A1 (en) * 2006-06-28 2010-02-04 Amir Geva Automated application interaction using a virtual operator
US7673113B2 (en) 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US8346891B2 (en) * 2007-10-19 2013-01-01 Kubisys Inc. Managing entities in virtual computing environments
US8261248B2 (en) 2007-11-05 2012-09-04 Sap Ag System and method of executing a dynamic program in a structured environment
US20100023517A1 (en) * 2008-07-28 2010-01-28 V Raja Method and system for extracting data-points from a data file
US8369968B2 (en) 2009-04-03 2013-02-05 Dell Products, Lp System and method for handling database failover
US8972519B2 (en) 2009-11-16 2015-03-03 International Business Machines Corporation Optimization of multimedia service over an IMS network
US8661286B2 (en) * 2010-05-21 2014-02-25 Unisys Corporation QProcessor architecture in a cluster configuration
US8560887B2 (en) 2010-12-09 2013-10-15 International Business Machines Corporation Adding scalability and fault tolerance to generic finite state machine frameworks for use in automated incident management of cloud computing infrastructures
US20120151479A1 (en) 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
US9110709B2 (en) * 2010-12-14 2015-08-18 International Business Machines Corporation Preserving changes to a configuration of a running virtual machine
JP5729209B2 (ja) 2011-08-12 2015-06-03 富士通株式会社 情報処理装置、情報処理システムのテスト方法およびプログラム
US8826068B2 (en) * 2011-11-23 2014-09-02 Microsoft Corporation Automated testing of applications in cloud computer systems
US9916514B2 (en) * 2012-06-11 2018-03-13 Amazon Technologies, Inc. Text recognition driven functionality
US9274742B2 (en) * 2012-10-25 2016-03-01 PixiOnCloud, Inc. Visual-symbolic control of remote devices having display-based user interfaces
WO2014127535A1 (en) * 2013-02-22 2014-08-28 Google Inc. Systems and methods for automated content generation
WO2014133522A2 (en) 2013-02-28 2014-09-04 Empire Technology Development, Llc Local message queue processing for co-located workers
US20140282978A1 (en) * 2013-03-15 2014-09-18 Sergio Demian LERNER Method and apparatus for secure interaction with a computer service provider
WO2016100545A1 (en) 2014-12-16 2016-06-23 Noderprime, Inc. Computer servers for datacenter managment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151467A (ja) * 2007-12-19 2009-07-09 Canon Inc 配信印刷システム
JP2012155219A (ja) * 2011-01-27 2012-08-16 Nec Casio Mobile Communications Ltd 演奏データ提供システム、方法、サーバ、携帯端末およびコンピュータプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018067812A (ja) * 2016-10-19 2018-04-26 中華電信股▲分▼有限公司 ソフトウェア・ディファインド・ユーザ体感品質測定システム
JP2018133084A (ja) * 2017-02-15 2018-08-23 ブルー プリズム リミテッド 自動化プロセスの処理の分散を最適化するシステム
JP7161262B2 (ja) 2017-02-15 2022-10-26 ブルー プリズム リミテッド 自動化プロセスの処理の分散を最適化するシステム

Also Published As

Publication number Publication date
GB2517408A (en) 2015-02-25
CA2916909A1 (en) 2015-01-08
BR112015033078A2 (ja) 2017-07-25
CN105474210A (zh) 2016-04-06
EP3654180A1 (en) 2020-05-20
BR112015033078B1 (pt) 2022-08-09
AU2014285872B2 (en) 2020-04-02
CN105474210B (zh) 2021-02-26
US20230153138A1 (en) 2023-05-18
GB201312151D0 (en) 2013-08-21
JP2019049994A (ja) 2019-03-28
WO2015001360A3 (en) 2015-04-23
ZA201600128B (en) 2022-07-27
CA2916909C (en) 2024-04-09
WO2015001360A2 (en) 2015-01-08
AU2014285872A1 (en) 2016-01-28
EP3017385A2 (en) 2016-05-11
JP6422491B2 (ja) 2018-11-14
JP6817990B2 (ja) 2021-01-20
US20150012919A1 (en) 2015-01-08
US11586453B2 (en) 2023-02-21

Similar Documents

Publication Publication Date Title
JP6817990B2 (ja) 自動プロセスのためのシステム
US8924592B2 (en) Synchronization of server-side cookies with client-side cookies
CN103443783B (zh) 用于具有基于Windows的嵌入式图像的本地客户机的基于状态的供应的装置及方法
CN103649949B (zh) 从公共云服务器传送配置数据并且施加到移动客户机上
CN103493038B (zh) 用于自动供应配置并防止重新安装嵌入图像的客户机配置历史
US20040255289A1 (en) Remote access software solution for rapidly deploying a desktop
JP2022536108A (ja) リモートソフトウェアアプリケーションのワークフローへの統合
AU2021200764A1 (en) System for optimising distribution of processing an automated process
US20050188367A1 (en) Executable application configuration system
US11061696B2 (en) Extension points for web-based applications and services
JP2003533812A (ja) コンピュータ・ネットワークにおいてデータを自動的にディプロイし、および同時にコンピュータ・プログラム・スクリプトを実行するための方法および装置
US20210034225A1 (en) Templates for rapid development of native mobile application graphical user interfaces
EP1977347A2 (en) Seamless integration of multiple computing environments
JP2013533525A (ja) データベース・アプリケーションの集中制御のための方法、システム、およびコンピュータ・プログラム
JP2011118662A (ja) シンクライアント型の情報処理システム
WO2013023095A2 (en) Smart thin client server
CA3049219C (en) External data management in a remote network management platform
US20220067098A1 (en) Generating Relational Charts with Accessibility for Visually-Impaired Users
CN105786531A (zh) 一种软件在线更新与数据加密的协同工作方法
JP2006268125A (ja) アプリケーションサーバ、そのプログラム
US11301271B1 (en) Configurable replacements for empty states in user interfaces
Sakai et al. Experiences in Building a User Portal for Expanse Supercomputer
Anderson et al. Windows Server 2008 R2 Remote Desktop Services Resource Kit
JP2017142666A (ja) 情報処理システム、設定方法、情報機器およびプログラム
Wright et al. Virtualizing Desktops and Apps with Windows Server 2012 R2 Inside Out

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20160624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160624

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180918

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181016

R150 Certificate of patent or registration of utility model

Ref document number: 6422491

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250