特許第6695691号(P6695691)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許6695691クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法
<>
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000002
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000003
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000004
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000005
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000006
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000007
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000008
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000009
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000010
  • 特許6695691-クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6695691
(24)【登録日】2020年4月24日
(45)【発行日】2020年5月20日
(54)【発明の名称】クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20200511BHJP
   G06F 13/00 20060101ALI20200511BHJP
   G06Q 50/10 20120101ALI20200511BHJP
【FI】
   G06F9/50 120Z
   G06F13/00 540A
   G06Q50/10
【請求項の数】9
【全頁数】19
(21)【出願番号】特願2015-531255(P2015-531255)
(86)(22)【出願日】2013年9月6日
(65)【公表番号】特表2015-534674(P2015-534674A)
(43)【公表日】2015年12月3日
(86)【国際出願番号】US2013058603
(87)【国際公開番号】WO2014039888
(87)【国際公開日】20140313
【審査請求日】2016年9月1日
【審判番号】不服2019-4085(P2019-4085/J1)
【審判請求日】2019年3月28日
(31)【優先権主張番号】61/698,462
(32)【優先日】2012年9月7日
(33)【優先権主張国】US
(31)【優先権主張番号】61/799,401
(32)【優先日】2013年3月15日
(33)【優先権主張国】US
(31)【優先権主張番号】13/961,068
(32)【優先日】2013年8月7日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】シンカリオル,メリック
(72)【発明者】
【氏名】ボ,スティーブン
(72)【発明者】
【氏名】ワン,ヤオピン
(72)【発明者】
【氏名】キャンベル,ロバート
【合議体】
【審判長】 田中 秀人
【審判官】 石井 茂和
【審判官】 松平 英
(56)【参考文献】
【文献】 特開2011−233146(JP,A)
【文献】 特開2011−203894(JP,A)
【文献】 国際公開第2012/006034(WO,A1)
【文献】 MATHER,Tim, KUMARASWAMY, Subra, LATIF, Shahed,“クラウドセキュリティ&プライバシーリスクとコンプライアンスに対する企業の視点”,株式会社オライリー・ジャパン オライリー ティム,2011年1月5日,初版第2刷,pp.55−57,ISBN 978−4−87311−458−3
【文献】 羽深 修 外2名,Eucalyptusではじめるプライベートクラウド構築 初版,日本,株式会社インプレスジャパン 土田 米一,2011年6月1日,第1版,pp.176,179,180
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50, G06F 13/00, G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムであって、
1つ以上のコンピュータを備え、前記コンピュータは、当該コンピュータ上で実行されるクラウド環境を含んでおり、
ワークフローオペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを備え、
前記ワークフローオーケストレータは、内部ワークフローエンジンを介してワークフロージョブを実行するワークフローマネージャを含んでおり、
ジョブは、ワークフローオペレーションの一部として実行されるとともに任意の特定のワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および/または管理するためのワークのアトミック単位であり、
少なくとも1つのワークフローオペレーションは、前記クラウド環境のテナントで使用するために要求されたサービスのプラットフォームインスタンスをインスタンス化することを含み、
前記インスタンス化することは、
前記要求されたサービスのプラットフォームインスタンスをインスタンス化するためのオーダーを受信することと、
前記要求されたサービスのプラットフォームインスタンスに関連するオペレーションで使用するための一意識別子を、当該プラットフォームインスタンスに割当てることと、
前記要求されたサービスに関連付けられたアセンブリを受信することと、
前記アセンブリにパーソナリティを注入して、パーソナライズ化されたアセンブリを生成することとを含み、
前記パーソナライズ化されたアセンブリは、前記要求されたサービスを含み、前記クラウド環境にデプロイメントされ、前記要求されたサービスのプラットフォームインスタンスとして前記テナントに利用され、
前記ワークフローオーケストレータは、前記ワークフローオペレーションへのアクセスを提供するAPI(application program interface)をさらに含み、
前記ジョブはいくつかの状態を遷移し、当該ジョブに関する現在の状態は、前記APIを使用してリアルタイムで問い合わせ可能である、システム。
【請求項2】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナン
トコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項1に記載のシステム。
【請求項3】
サービスプラットフォームは、特定のサービスによってサポートされるオペレーションおよびアクションを定義し、
複数のサービスプラットフォームの各々は、当該サービスプラットフォームのタイプのアクションに関連付けられる、請求項1または2に記載のシステム。
【請求項4】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションを提供する方法であって、
1つ以上のコンピュータを提供するステップを含み、前記コンピュータは、当該コンピュータ上で実行されるクラウド環境を含んでおり、
ワークフローオペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するステップを含み、
前記ワークフローオーケストレータは、内部ワークフローエンジンを介してワークフロージョブを実行するワークフローマネージャを含んでおり、
ジョブは、ワークフローオペレーションの一部として実行されるとともに任意の特定のワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および/または管理するためのワークのアトミック単位であり、
少なくとも1つのワークフローオペレーションは、前記クラウド環境のテナントで使用するために要求されたサービスのプラットフォームインスタンスをインスタンス化することを含み、
前記インスタンス化することは、
前記要求されたサービスのプラットフォームインスタンスをインスタンス化するためのオーダーを受信することと、
前記要求されたサービスのプラットフォームインスタンスに関連するオペレーションで使用するための一意識別子を、当該プラットフォームインスタンスに割当てることと、
前記要求されたサービスに関連付けられたアセンブリを受信することと、
前記アセンブリにパーソナリティを注入して、パーソナライズ化されたアセンブリを生成することとを含み、
前記パーソナライズ化されたアセンブリは、前記要求されたサービスを含み、前記クラウド環境にデプロイメントされ、前記要求されたサービスのプラットフォームインスタンスとして前記テナントに利用され、
前記ワークフローオーケストレータは、前記ワークフローオペレーションへのアクセスを提供するAPI(application program interface)をさらに含み、
前記ジョブはいくつかの状態を遷移し、当該ジョブに関する現在の状態は、前記APIを使用してリアルタイムで問い合わせ可能である、方法。
【請求項5】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項に記載の方法。
【請求項6】
サービスプラットフォームは、特定のサービスによってサポートされるオペレーションおよびアクションを定義し、
複数のサービスプラットフォームの各々は、当該サービスプラットフォームのタイプのアクションに関連付けられる、請求項またはに記載の方法。
【請求項7】
命令を含むコンピュータ読取可能なプログラムであって、前記命令は、1つ以上のコンピュータによって読取られ、実行されると、前記1つ以上のコンピュータに、
当該コンピュータ上で実行されるクラウド環境を提供するステップと、
ワークフローオペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するステップとを実行させ、
前記ワークフローオーケストレータは、内部ワークフローエンジンを介してワークフロージョブを実行するワークフローマネージャを含んでおり、
ジョブは、ワークフローオペレーションの一部として実行されるとともに任意の特定のワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および/または管理するためのワークのアトミック単位であり、
少なくとも1つのワークフローオペレーションは、前記クラウド環境のテナントで使用するために要求されたサービスのプラットフォームインスタンスをインスタンス化することを含み、
前記インスタンス化することは、
前記要求されたサービスのプラットフォームインスタンスをインスタンス化するためのオーダーを受信することと、
前記要求されたサービスのプラットフォームインスタンスに関連するオペレーションで使用するための一意識別子を、当該プラットフォームインスタンスに割当てることと、
前記要求されたサービスに関連付けられたアセンブリを受信することと、
前記アセンブリにパーソナリティを注入して、パーソナライズ化されたアセンブリを生成することとを含み、
前記パーソナライズ化されたアセンブリは、前記要求されたサービスを含み、前記クラウド環境にデプロイメントされ、前記要求されたサービスのプラットフォームインスタンスとして前記テナントに利用され、
前記ワークフローオーケストレータは、前記ワークフローオペレーションへのアクセスを提供するAPI(application program interface)をさらに含み、
前記ジョブはいくつかの状態を遷移し、当該ジョブに関する現在の状態は、前記APIを使用してリアルタイムで問い合わせ可能である、コンピュータ読取可能なプログラム。
【請求項8】
前記ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するワークフロープロキシをさらに含む、請求項に記載のコンピュータ読取可能なプログラム。
【請求項9】
サービスプラットフォームは、特定のサービスによってサポートされるオペレーションおよびアクションを定義し、
複数のサービスプラットフォームの各々は、当該サービスプラットフォームのタイプのアクションに関連付けられる、請求項またはに記載のコンピュータ読取可能なプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
著作権表示
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対して異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【0002】
発明の分野
この発明の実施形態は、一般にクラウドコンピューティング環境に関し、特にクラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法に関する。
【背景技術】
【0003】
背景
「クラウドコンピューティング」という用語は一般に、コンピュータネットワーク、サーバ、ソフトウェアアプリケーション、およびサービスといったコンピューティングリソースの共有のプールへのオンデマンドのアクセスを可能にし、最小の管理努力またはサービスプロバイダのやりとりでリソースの迅速なプロビジョニング(provisioning)および解放を可能にする、コンピューティングモデルを説明するために使用される。
【0004】
クラウドコンピューティング環境(クラウド環境、またはクラウドと呼ばれることもある)は、異なる要件に最良に適合するように、さまざまな異なるやり方で実装可能である。たとえば、パブリッククラウド環境では、根底にあるコンピューティングインフラストラクチャは、他の組織または一般社会にそのクラウドサービスを供する組織によって所有されている。対照的に、プライベートクラウド環境は一般に、もっぱら単一の組織によって、または単一の組織内で使用するよう意図されている。コミュニティクラウドは、コミュニティ内のいくつかの組織によって共有されるよう意図されており、一方、ハイブリッドクラウドは、データおよびアプリケーションポータビリティによってともに結合された2種類以上のクラウド(たとえば、プライベート、コミュニティ、またはパブリック)を含む。
【0005】
一般に、クラウドコンピューティングモデルは、以前は組織自体の情報技術部門によって提供されたかもしれない責務のうちのいくつかが、代りにクラウド環境内のサービス層として、(クラウドの性質がパブリックかプライベートかに従って、組織の内部または外部の)消費者によって使用されるために供給されることを可能にする。各クラウドサービス層によって、または各クラウドサービス層内で提供されるコンポーネントまたは特徴の正確な定義は、特定の実現化例に依存して変わり得るが、共通の例は以下を含む:
ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS) 消費者は、クラウドインフラストラクチャ上で実行中のソフトウェアアプリケーションを使用し、一方、SaaSプロバイダは、根底にあるクラウドインフラストラクチャおよびアプリケーションを管理し、または制御する;
プラットフォーム・アズ・ア・サービス(Platform as a Service:PaaS) 消費者は、自分自身のアプリケーションを開発し、デプロイメントし(deploy)、および他のやり方で制御するために、PaaSプロバイダによってサポートされたソフトウェアプログラミング言語および開発ツールを使用でき、一方、PaaSプロバイダは、クラウド環境の他の局面(すなわち、ランタイム実行環境より下のすべて)を管理し、または制御する;
インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service:IaaS) 消費者は、任意のソフトウェアアプリケーション、および/またはプロビジョニング処理、ストレージ、ネットワーク、および他の基本コンピューティングリソースをデプロイメントし実行することができ、一方、IaaSプロバイダは、根底にある物理的なクラウドインフラストラクチャ(すなわち、オペレーティングシステム層より下のすべて)を管理し、または制御する。
【0006】
上述の例は、この発明の実施形態を一般に使用できる環境のいくつかのタイプを説明するために提供されている。さまざまな実施形態によれば、ここに説明されるシステムおよび方法は、他のタイプのクラウドまたはコンピューティング環境でも使用できる。
【発明の概要】
【課題を解決するための手段】
【0007】
概要
ここに説明されるのは、クラウドコンピューティング環境で使用するためのワークフローオーケストレーションのためのシステムおよび方法である。オラクル・パブリック・クラウド(Oracle Public Cloud:OPC)といったクラウド環境は、セルフサービス的で、弾力的に拡張可能で、かつ安全な態様でテナントに供給できる、アプリケーション、ミドルウェア、およびデータベース商品一式を提供する。一実施形態によれば、クラウド環境はプラットフォーム・アズ・ア・サービス(PaaS)環境を含んでいてもよく、それは、仮想アセンブリ生成といったさまざまなサービスを提供する。ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメント(deployment)を調整することによって、クラウド環境とPaaS環境との間でオペレーションをオーケストレーションするために使用することができる。顧客は、たとえば、サービスを要求し、サービスをデプロイメントし、またはサービスをモニタリングするために、PaaS環境とやりとりすることができる。
【図面の簡単な説明】
【0008】
図1】一実施形態に従った、サービス層を含むクラウドコンピューティング環境を示す図である。
図2】一実施形態に従った環境をさらに示す図である。
図3】一実施形態に従った、Java(登録商標)クラウドサービスコンポーネントを含む環境を示す図である。
図4】一実施形態に従ったワークフローオーケストレータを示す図である。
図5】一実施形態に従った、ワークフローオーケストレータ内の例示的なジョブステータスを示す図である。
図6】一実施形態に従ったJavaクラウドサービスパーソナリティ注入を示す図である。
図7】一実施形態に従ったJavaクラウドサービスデプロイメント処理を示す図である。
図8】一実施形態に従った、プラットフォームインスタンスプロビジョニングのためのワークフローオーケストレータジョブシーケンス図の一例を示す図である。
図9】一実施形態に従った、アプリケーションインストールまたは更新のためのワークフローオーケストレータジョブシーケンス図の一例を示す図である。
図10】一実施形態に従った、ワークフローオーケストレーションコンポーネントを含む環境で使用するためのプロセスのフローチャートである。
【発明を実施するための形態】
【0009】
詳細な説明
上述のように、クラウドコンピューティング環境(クラウド環境、またはクラウド)は、異なる要件に最良に適合するように、さまざまな異なるやり方で、たとえば、パブリッククラウド、プライベートクラウド、コミュニティクラウド、またはハイブリッドクラウドとして実装可能である。クラウドコンピューティングモデルは、以前は組織自体の情報技術部門によって提供されたかもしれない責務のうちのいくつかが、代りにクラウド環境内のサービス層として、(クラウドの性質がパブリックかプライベートかに従って、組織の内部または外部の)消費者によって使用されるために供給されることを可能にする。
【0010】
ここに説明されるのは、クラウドコンピューティング環境をサポートするためにインフラストラクチャ、プラットフォーム、および/またはアプリケーションを供給する際に使用できる、さまざまなハードウェアおよび/またはソフトウエアコンポーネントおよび特徴である。さまざまな実施形態によれば、エンタープライズグレードであり、アプリケーションを開発してデプロイメントするためのプラットフォームを可能にし、現代のアーキテクチャおよび使用事例上に構築された1組のエンタープライズアプリケーションを提供し、および/または柔軟な消費選択を提供する、クラウドコンピューティング環境を提供するために、システムは、オラクル・エクサロジック(Exalogic)および/またはエクサデータ(Exadata)マシン、ウェブロジック(WebLogic)および/またはフュージョンミドルウェア(Fusion Middleware)といったハードウェアおよびソフトウェア、ならびに他のハードウェアおよび/またはソフトウエアコンポーネントおよび特徴も利用できる。
【0011】
図1は、一実施形態に従った、サービス層を含むクラウドコンピューティング環境を示す。図1に示すように、一実施形態によれば、クラウドコンピューティング環境(クラウド環境、またはクラウド)100は一般に、1つ以上のインフラストラクチャ・アズ・ア・サービス(IaaS)層110、プラットフォーム・アズ・ア・サービス(PaaS)層160、および/またはソフトウェア・アズ・ア・サービス(SaaS)層170の組合せを含んでいてもよく、それらは各々、クラウド環境内のサービス層として供給されており、使用中の特定のクラウドコンピューティングモデルに依存して、組織の内部または外部の消費者によって使用可能である。
【0012】
一実施形態によれば、クラウドコンピューティング環境は、1つ以上の従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、マイクロプロセッサ、メモリおよび/またはコンピュータ読取可能な記憶媒体、を含むシステムとして実装可能であり、たとえばオラクルExalogic、Exadata、または同様のマシンによって提供される、コンピュータハードウェア、ソフトウェア、およびリソースがある。
【0013】
図1にさらに示すように、一実施形態によれば、クラウドコンピューティング環境は、共有イネーブルメントおよび管理インフラストラクチャ120を含んでいてもよく、それは以下により詳細に説明され、さまざまなサービス層をサポートするために使用可能なイネーブルメントおよび管理ツールを提供する。
【0014】
図1に示す例は、この発明の実施形態を一般に使用できる、あるタイプのクラウドコンピューティング環境の例示として提供されている。さまざまな実施形態によれば、ここに説明されるシステムおよび方法は、異なるおよび/または他のタイプのクラウドまたはコンピューティング環境でも使用できる。
【0015】
図2は、一実施形態に従った環境をさらに示す。図2に示すように、一実施形態によれば、IaaS層、PaaS層、および/またはSaaS層の各々は一般に、さまざまなコンポーネントを含んでいてもよい。たとえば、一実施形態によれば、IaaS層は、共有データベースハードウェア(たとえばExadataマシン)112、および/または共有アプリケーションサーバハードウェア(たとえばExalogicマシン)を含んでいてもよい。PaaS層は、データベースサービス162、アプリケーションサービス164、および/またはウェブセンター(WebCenter)サービス166などの1つ以上のPaaSサービスを含んでいてもよい。SaaS層は、1つ以上のユーザ/クラウドインターフェイス180によってアクセス可能である、エンタープライズアプリケーション(たとえば、オラクルフュージョンSaaS)172、および/または、ISVまたはカスタムアプリケーション176などのさまざまなSaaSサービスを含んでいてもよい。
【0016】
上述のように、一実施形態によれば、クラウドコンピューティング環境は、共有イネーブルメントおよび管理インフラストラクチャも含んでいてもよい。たとえば、図2に示すように、共有イネーブルメントおよび管理インフラストラクチャは、1つ以上のアイデンティティ管理122、データ統合124、複製(たとえば、オラクル・ゴールデンゲート(GoldenGate))126、仮想アセンブリビルダー128、システムプロビジョニング130、テナント管理132、および/またはエンタープライズマネージャ134のコンポーネントを含んでいてもよい。
【0017】
図2にさらに示すように、一実施形態によれば、共有イネーブルメントおよび管理インフラストラクチャは、ウィルススキャン142、安全なファイル転送144、HTTPルーティング146、ホワイトリスト148、通知150、安全なバックアップ152、統合ゲートウエイ154、および/または使用&課金156コンポーネントといった他のコンポーネントも含んでいてもよい。
【0018】
図2に示す例は、クラウドコンピューティング環境に、または共有イネーブルメントおよび管理インフラストラクチャ内に含まれ得るいくつかのタイプのコンポーネントの例示として提供されている。他の実施形態によれば、異なるおよび/または他のタイプのあるいは構成のコンポーネントが含まれていてもよい。
【0019】
ワークフローオーケストレータ
オラクル・パブリック・クラウド(OPC)といったクラウド環境は、セルフサービス的で、弾力的に拡張可能で、かつ安全な態様でテナントに供給できる、アプリケーション、ミドルウェア、およびデータベース商品一式を提供する。
【0020】
一実施形態によれば、クラウド環境はプラットフォーム・アズ・ア・サービス(PaaS)環境とやりとりしてもよく、それは、仮想アセンブリ生成といったさまざまなサービスを提供する。ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメントを調整することによって、クラウド環境とPaaS環境との間でオペレーションをオーケストレーションするために使用することができ、共有イネーブルメントおよび管理インフラストラクチャの使用を含む。
【0021】
一実施形態によれば、ワークフローオーケストレータは、プロビジョニングまたはデプロイメントのそのオーケストレーション中に、たとえば、ウィルスがないかアプリケーションをスキャンすること、または、デプロイメント中のアプリケーションを、受入れ可能なAPIコールのホワイトリストと比較することといった、追加の手順または機能を行なうことができる。ワークフローオーケストレータはまた、プラットフォームインスタンスの生成および管理も可能にすることができ、それらは各々、1つ以上のアプリケーションサーバ(たとえば、WebLogicサーバ)インスタンスを、実行中のアプリケーションにとって有用な他のリソース(たとえば、データベースサービス)とともに含んでいてもよく、共有ハードウェアリソース上で実行可能である。
【0022】
一実施形態によれば、クラウドユーザがその後やりとりできる、ファイアウォールの外側のパブリックアクセスポイントとして作用するプロキシを提供することにより、ワークフローオーケストレータはまた、クラウドユーザらが、自分たちのプラットフォームインスタンスを、そこにある任意のアプリケーションサーバインスタンスおよび他のリソースとともに管理することを可能にする。
【0023】
図3は、一実施形態に従った、Javaクラウドサービスコンポーネントを含む環境を示す。図3に示すように、一実施形態によれば、(Javaクラウドサービス200といった)クラウドテナントで使用するためにカスタマイズ可能な1つ以上のサービスを含むクラウド環境を、ユーザ222がそのサービスの新しいインスタンスについてオーダー224を入れること、および/または既存のサービスインスタンスを管理することを可能にするユーザインターフェイス220に、関連付けることができる。
【0024】
一実施形態によれば、サービスの新しいインスタンスのオーダリングは、オーダリング段階およびプロビジョニング段階の双方を含んでいてもよい。
【0025】
オーダリング段階中、ユーザはオーダーを入れる(226)ことができ、それは最初、ストアデータベース228に記録され、そこでそれは準備され(230)、次にオーダー管理コンポーネント232に提供される。ユーザが自分たちのオーダーの詳細を検証した(233)後で、オーダーは処理可能であり(234)、一実施形態によれば、プロビジョニング(240)のためにオーダーをテナント管理コンポーネントに渡すことを含む。オーダープロセスのさまざまな段階で、ユーザは、自分たちの現在のオーダーステータスについて通知を受ける(238)ことができる。
【0026】
次に、プロビジョニング段階中、システムは、一実施形態によればサービスデプロイメントインフラストラクチャ(service deployment infrastructure:SDI)241とワークフローオーケストレータ242とを含む1つ以上のシステムプロビジョニングコンポーネントに、プロビジョニングプロセスの残りのステップをオーケストレーションするよう、要求することができる。
【0027】
図4は、一実施形態に従ったワークフローオーケストレータを示す。上述のように、ワークフローオーケストレータは、たとえばテナント自動化システムから要求を受信し、仮想アセンブリまたはアプリケーションのプロビジョニングおよびデプロイメントを調整することによって、オペレーションをオーケストレーションするために使用することができる。
【0028】
図4に示すように、一実施形態によれば、ワークフローオーケストレータ242は、ワークフロープロキシコンポーネント292と、ワークフローマネージャコンポーネント293とを含んでいてもよく、プロビジョニングを行ない、サービスを何らかのやり方で(たとえば、それに別のサービスを関連付けて)修正するかまたは他のクラウドオペレーションを修正するために、およびワークフロージョブを非同期で実行するために、テナントプロビジョニングもしくは他のコンポーネントまたはシステムから要求を受信できる。
【0029】
一実施形態によれば、各ジョブはワークフローオーケストレータによって、任意の特定のPaaSワークフローに関連付けられた1つ以上のアクションを実行する非同期プロセスとして認識される。各アクションは、パブリッククラウドランタイム環境内でリソースを生成および管理するよう設計されたワークのアトミック単位であると考えられる。アクションはオペレーションへとグループ化可能であり、オペレーションは、サービスインスタンスの生成、またはアプリケーションのデプロイメントといったワークフローオーケストレータのさまざまな機能的な能力に対応する。ジョブは次に、ワークフローの一部として、単一のオペレーションのためのアクションを実行する。
【0030】
一実施形態によれば、アクションは、ワークフローオーケストレータ・サービス・プロバイダ・インターフェイス(service provider interface:SPI)を拡張するJavaクラスとして実装できる。ワークフローオーケストレータによって実装されたクラスは、ランタイム情報へのアクセス、およびアクションを実装するのに必要なサービスを提供する。
【0031】
一実施形態によれば、サービスプラットフォームは、任意の特定のクラスのサービスによってサポートされるオペレーションおよびアクションの記述である。たとえば、WebLogicサービスプラットフォームは、WebLogic環境のコンテキスト内で、ワークフローオーケストレータサービスおよびアプリケーションライフサイクルオペレーションのすべてを実装するために必要とされる、オペレーションおよびアクションを定義する。他の/異なるタイプのサービスプラットフォームの各々を、それ自体の/異なるタイプのアクションに関連付けることができ、アクションは、ワークフローオーケストレータの共有構成に格納されたXML文書を介して構成可能である。
【0032】
一実施形態によれば、ワークフローマネージャはワークフローオーケストレータへのエントリポイントであり、一実施形態によればREST APIとして提供可能なワークフローオーケストレータ・アプリケーション・プログラム・インターフェイス(application program interface:API)を介して、PaaSオペレーションへの安全なアクセスを提供する。内部で、ワークフローマネージャは、ワークフローエンジン/エグゼキュータ294を使用してジョブ実行を制御し、ワークフローオーケストレーションデータベース296におけるジョブおよび他のシステム状態を追跡する。ワークフローオーケストレーションデータベースはまた、プラットフォームインスタンス、デプロイメントプラン、アプリケーション、Weblogicドメイン、および警告といった、ドメインエンティティを追跡するのに必要とされる情報も含んでいてもよい。
【0033】
各ジョブは、たとえば、Javaクラウドサービスプラットフォームインスタンスのプロビジョニングといった、任意の特定のPaaSワークフローに固有のアクションのシーケンスである。アクションは典型的には順次行なわれ、いずれかのステップでの失敗はジョブ全体の失敗をもたらす。サービスプラットフォーム構成に依存して、ワークフローアクションの中には、エンタープライズマネージャまたはウィルススキャンサービスといったワークフローに関連する外部システムに、アクションを委任するものがある場合がある。
【0034】
一実施形態によれば、パブリッククラウドのコンテキスト内で、ワークフローマネージャは、プロビジョニングおよびデプロイメントオペレーションをそれぞれ駆動するために、テナントプロビジョニング297またはテナントコンソール298コンポーネントといったあるクライアントによって、そのワークフローオーケストレータAPIを介して直接アクセスされてもよい(299)。
【0035】
他のクライアント、たとえばJディベロッパー(JDeveloper)またはネットビーンズ(NetBeans)IDE301、もしくは他のコマンドラインインターフェイス(command line interface:CLI)302も、プラットフォームインスタンス上でライフサイクルオペレーションにアクセスするために使用可能である。しかしながら、さらなるセキュリティのために、これらのクライアントは典型的には、ワークフロープロキシを介してワークフローマネージャにアクセスするであろう。たとえば、一実施形態によれば、ワークフローマネージャ(そのOHSおよびアプリケーションサーバインスタンスを含む)は、ファイアウォールの内側で実行されるWebLogicクラスタにおいてホスト可能であり、一方、ワークフロープロキシ(そのOHSおよびアプリケーションサーバインスタンスを含む)は、ファイアウォールの外側のパブリックアクセスポイントとして提供可能である。プロキシによって受信された要求は次に、ワークフローマネージャに転送される。
【0036】
一実施形態によれば、サービスプラットフォーム構成に依存して、ワークフローオーケストレータは、ワークフローを実行するために、追加のコンポーネントまたはシステムを利用できる。たとえば、Javaクラウドサービスのコンテキストでは、そのような追加のコンポーネントまたはシステムは、以下のものを含み得る:
ウィルススキャン304:ユーザのアプリケーションがクラウド環境にデプロイメントされる前に、そのアプリケーションを、ウィルススキャンコンポーネントを使用して、ウィルスがないかスキャンできる;
サービスデプロイメントインフラストラクチャ(SDI)305:SDIコンポーネントは、アセンブリのデプロイメントまたはデプロイメント解除、もしくは機器の拡張に使用するために、OVABおよびOVMといったアセンブリビルダー製品へのアクセスを提供できる;
顧客関係管理(Customer Relationship Management:CRM)310:要求されると、ワークフローは、JavaクラウドサービスなどのサービスをCRMインスタンスに関連付けることができる;
アイデンティティ管理(Identity Management:IDM)312:ワークフローオーケストレータは、あるプラットフォームインスタンスを適切に構成するために、アイデンティティ管理コンポーネント、たとえば、テナントおよびそれらのサービス加入に関する情報を含むサービスデータベースを使用できる。
【0037】
上述の例は、例示の目的のために提供されている。他の実施形態および他のワークフローによれば、任意の特定のワークフローを実行するために、追加のもしくは他のコンポーネントまたはシステムも使用可能である。
【0038】
図4にさらに示すように、一実施形態によれば、ワークフローオーケストレータは、プラットフォームインスタンス306のプロビジョニングを調整するために使用可能である。
【0039】
たとえば、Javaクラウドサービスのコンテキストでは、結果として生じるプラットフォームインスタンスは、ユーザのオーダーに従う所与のテナントに対して、WebLogicまたは他のアプリケーションサーバサービスを提供するために必要とされるそれらのリソースのすべてを含み、リソースは、たとえば、インスタンスデータベース308、管理サーバ309、および1つ以上のアプリケーションサーバを含むであろう。
【0040】
一旦インスタンス化され、クラウド環境にデプロイメントされると、テナントユーザおよび/またはそれらのアプリケーションは次に、それらのプラットフォームインスタンス315にアクセスできる。異なるタイプのアクセスが提供可能である。一実施形態によれば、管理(たとえば、アプリケーションのモニタリング、デプロイメント/デプロイメント解除)を、プロキシを通してテナントによって行なうことができる。プロビジョニングされたインスタンス上にテナントがデプロイメントしたアプリケーションは、テナントによって所有されており、たとえば、それらのCRMインスタンスへのカスタムアクセスの提供といった異なる目的のために、何であってもよい。これは、認証および認可のためにたとえばウェブゲート314を使用して、テナントの顧客によって、サービス専用のURLを通して提供可能である。
【0041】
図5は、一実施形態に従った、ワークフローオーケストレータ内の例示的なジョブステータスを示す。ジョブが進行するにつれて、それはいくつかの状態を遷移する。ジョブに関する現在の状態および他の情報は、ワークフローオーケストレータAPIを使用してリアルタイムで問い合わせることができる。一例として、図5に示すように、一実施形態によれば、ワークフロー318内でのジョブの実行中に起こり得る有効な状態遷移は、以下を含む:
NEW:ジョブはすべてNEW状態で生成され、それは、ジョブがワークフローオーケストレーションデータベースに存在してきたものの、それ以上のアクションが講じられてこなかったことを示す。ワークフローオーケストレータがジョブをピックアップし、それをそのワークマネージャに送ると、NEWジョブは自動的にSUBMITTEDへと移動されるであろう;
SUBMITTED:SUBMITTED状態のジョブは、ワークマネージャキューに置かれてきたものの、まだ実行のスレッドを割当てられていない。ジョブがこの状態のままである時間の長さは、ワークフローオーケストレータの負荷全体に依存する;
RUNNING:ワークマネージャによってアクティブに実行されているジョブは、RUNNING状態に置かれる。RUNNING状態にある間、ワークフローエンジン/エグゼキュータは、オペレーションによって定義されたアクションを繰り返し、それらを順次実行する;
RETRY_WAIT:アクションが失敗すると、それは、再試行が可能であることを示す場合がある。再試行を可能にするように構成されている場合、ジョブはRUNNINGからRETRY_WAITへと遷移し、実行スレッドは、特定の再試行タイムアウトに達するまで終了するであろう。ワークが再開すると、RETRY_WAITのジョブはRUNNINGに遷移するであろう;
PAUSED:オペレータは、RUNNINGまたはRETRY_WAIT状態のジョブをPAUSED状態に移動させてもよい。一時停止されたジョブはアクティブではなく、その再開をオペレータが要求するまでこの状態のままとなるであろう。その再開をオペレータが要求した時点で、それはRUNNINGに遷移するであろう;
COMPLETE:COMPLETE状態は、ジョブに関連付けられたオペレーションにおけるすべてのアクションの無事完了を示す終止状態である;
FAILED:FAILED状態は、アクションが回復不能の失敗に遭遇して中止されたことを示す終止状態である。
【0042】
一実施形態によれば、アクションは、SUCCESS、SKIPPED、FAILED、またはFAILED_RETRYという4つの起こり得る結果のうちの1つを返すかもしれない。SUCCESSおよびSKIPPEDは成功した結果であり、一方、FAILEDおよびFAILED_RETRYはエラー状態を示す。FAILED_RETRYというアクションは、それが成功するまで、または特定の再試行限界に達するまで、アクションの自動再試行をもたらす場合がある。アクションが再試行の資格を得るには、それは、そのサービスプラットフォーム定義において再試行を可能にするように構成されなければならず、アクションはFAILED_RETRY結果を返さなければならない。この状況では、現在のジョブの状態は、ワークフローオーケストレーションデータベースおよび実行スレッドが終了するまで存在するであろう。再試行タイムアウトに達すると、ジョブは再提示され、そこでそれは、失敗したアクションを実行することを試みるであろう。再試行タイムアウトおよび再試行限界は双方とも、各アクションベースで構成されており、アクションが再試行限界に達すると、それは、ジョブがPAUSED状態に移動することをもたらすであろう。
【0043】
一実施形態によれば、RETRY_WAIT状態にある間、ジョブは一時停止される場合があり、オペレータが手動の訂正アクションを講じることを可能にする。この場合、オペレータは、失敗の時点でジョブを再開する(失敗したアクションを再試行する)か、またはシーケンスの次のアクションでジョブを再開する選択肢を有しており、オペレータがアクションによって行なわれていたであろうステップを手動で完了したことを意味する。非終止状態のジョブは、いつでもキャンセルされてもよい。現在実行中のアクションが完了し、その時点でスレッドは終了し、ジョブのためにそれ以上のアクションは講じられないであろう。ジョブをキャンセルすることは、同じサービスインスタンスに対するさらなるオペレーションを非ブロック化するものの、それは、システムが一貫性のない状態のまま残されることをもたらす場合がある(たとえば、サービスインスタンスに無効データが残されるかもしれず、または、サービスインスタンス用のドメインが起動されなかった変更を有するかもしれない)。ジョブをキャンセルすることは、サービスインスタンスが顧客によって使用可能になる前に、追加の手動の訂正アクションを必要とする場合がある。
【0044】
状態遷移の上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、異なるおよび/または他のタイプの状態遷移を認識できる。
【0045】
Javaクラウドサービスでのワークフローオーケストレータの例示的な使用
一実施形態によれば、上述のようなワークフローオーケストレータの特徴は、クラウドテナントで使用するためにカスタマイズ可能なあらゆるサービスで使用することができる。
【0046】
たとえば、図6は、一実施形態に従ったJavaクラウドサービスパーソナリティ注入(personality injection)を示す。上述のように、一実施形態によれば、Javaクラウドサービスといったクラウドテナントで使用するためにカスタマイズ可能なサービスを含むクラウド環境を、そのサービスの新しいインスタンスについてユーザがオーダーを入れることを可能にするユーザインターフェイスに関連付けることができる。
【0047】
図6に示すように、一実施形態によれば、オーダーを受信すると、サービス(この例では、Javaクラウドサービス)は、その特定のサービスのためのプラットフォームインスタンスをインスタンス化するのに必要なタスクを行なうために、ワークフローオーケストレータを利用できる(すなわち、この例では、ワークフローオーケストレータはJavaサービスオーケストレータ300として作用する)。
【0048】
図6に示す例では、Javaクラウドサービスプラットフォームインスタンスを生成するために、最初に匿名アセンブリ322が、たとえば、匿名アセンブリを生成するSDIおよび/またはOVABから受信される。
【0049】
次に、テナントによって使用されるためのアセンブリを構成するために、パーソナリティ320が匿名アセンブリに注入される。一実施形態によれば、パーソナライゼーションは、たとえば、アイデンティティ管理(identity management:IDM)関連付け324、データベース関連付け326、およびエンタープライズ管理ディスカバリ328を行なうことを含んでいてもよい。これらのステップの各々は、追加のコンポーネントまたはシステムと適宜組合されて、ワークフローオーケストレータによって調整可能である。
【0050】
パーソナリティ注入の結果は、要求される特定のサービスに依存して、管理サーバ330、1つ以上の(たとえばWebLogic)アプリケーションサーバインスタンス332、334、ノードマネージャ336、およびエンタープライズ管理エージェント338を含む、パーソナライズされたアセンブリである。
【0051】
図7は、一実施形態に従ったJavaクラウドサービスアプリケーションデプロイメント処理を示す。図7に示すように、一実施形態によれば、Javaクラウドサービスアプリケーションのデプロイメントは、ウィルススキャン342を行なうこと、もしくは、ホワイトリストスキャン346または他のデプロイメント関連の機能348を行なうことといった、追加の手順または機能を含んでいてもよい。これらのステップの各々も、追加のコンポーネントまたはシステムと適宜組合されて、ワークフローオーケストレータによって調整可能である。
【0052】
デプロイメントの結果、1つ以上のサーバインスタンスで使用するために、1つ以上のJavaクラウドサービステナントアプリケーション350、360をデプロイメントでき(この例では、テナントAは4つのアプリケーションサーバインスタンス351、352、352、354を有し、一方、テナントBは、2つのアプリケーションサーバインスタンス361、362を有する)、テナントアプリケーションの各々はパーソナライズされ、たとえば、ワークフローオーケストレータ、およびプラットフォームインスタンスの特定の構成に従って、ウィルスおよびホワイトリスト形態についてスキャンされ、または、他のやり方で準備されたものである。
【0053】
一実施形態によれば、システムはまた、コマンドラインインターフェイス372、Javaサービスコンソール374、JDeveloper376といった1つ以上のアプリケーションデプロイメントユーザインターフェイス370、または、ユーザが自分たちのアプリケーションを、この例ではJavaクラウドサービステナントにデプロイメントすることを可能にする他のインターフェイスを含んでいてもよい。
【0054】
Javaクラウドサービスでのワークフローオーケストレータの使用を示す上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、クラウドテナントで使用するためにカスタマイズ可能な異なるおよび/または他のタイプのサービスで使用することができる。
【0055】
ワークフローオーケストレータAPI
一実施形態によれば、ワークフローオーケストレータAPIは、以下の機能を含み得る:
ListJobs:一実施形態によれば、これは、1組のフィルタリング基準が与えられた、アクティブでかつ最近完了したジョブのリストを返す。サポート可能な基準パラメータのタイプの例は、GroupName、InstanceName、ApplicationName、LimitおよびStartを含む。デフォルトにより、ワークフローオーケストレータは、システムに提示された最新のたとえば100個のジョブを返す。この値を増加させるために、Limitクエリーオプションが使用可能であり、リストのための開始オフセットを特定するために、Startオプションが使用可能である;
DescribeJob:一実施形態によれば、これは、ジョブの識別情報および現在のステータスを要求するために使用される;
ListJobLogs:一実施形態によれば、これは、ジョブに関連付けられたログファイルの組をリストする;
FetchJobLog:一実施形態によれば、これは、ジョブに関連付けられたログファイルのコンテンツをダウンロードするために使用される。応答のコンテンツタイプは、ログファイルタイプに応じて変わる;
CancelJob:一実施形態によれば、これは、実行中のジョブをキャンセルするために使用される。実行中の現在のアクションがある場合、それはジョブが終了する前に完了するであろう;
PauseJob:一実施形態によれば、これは、実行中のジョブを一時停止する。一時停止されるジョブは、RUNNINGまたはRETRY_WAIT状態でなければならない;
ResumeJob/ResumeJobNextAction:一実施形態によれば、これは、以前に一時停止されたジョブを再開する。再開されるジョブは、PAUSED状態でなければならない。NextActionクエリーオプションが特定される場合には、ジョブはシーケンスの次のアクションで再開され、それが一時停止されたアクションをスキップするであろう。
【0056】
ワークフローオーケストレータAPI機能の上述の例は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータAPIは、異なるおよび/または他のタイプの機能を認識可能である。
【0057】
図8は、一実施形態に従った、プラットフォームインスタンスプロビジョニングのためのワークフローオーケストレータジョブシーケンス図の一例を示す。
【0058】
図8に示すように、プラットフォームインスタンスプロビジョニング311は、ワークフローオーケストレータAPIを使用して、生成プラットフォームインスタンスオペレーションを介して実現可能である。パブリッククラウドのコンテキストでは、サービスインスタンスは、ワークフローオーケストレータプラットフォームインスタンスに対応する。プラットフォームインスタンスには、このインスタンスに関連するすべての次のオペレーションで使用すべき一意識別子が割当てられる。生成プラットフォームインスタンスアクションに提供されたプラットフォームデプロイメント記述子は、テナントの加入要件を満たすようにプラットフォームインスタンスの構成を修正する特性が設定されることを可能にする。
【0059】
図9は、一実施形態に従った、アプリケーションインストールまたは更新のためのワークフローオーケストレータジョブシーケンス図の一例を示す。
【0060】
図9に示すように、アプリケーションインストールまたは更新は、インストールアプリケーションオペレーション312を介して実現可能であり、それは、アプリケーションアーカイブがパブリッククラウドのセキュリティ要件(たとえば、ウィルススキャン、またはホワイトリスト)を満たすことを確認後、実行中のWebLogicサーバにアプリケーションをデプロイメントする。インストールアプリケーションアクションに提供されたアプリケーションデプロイメント記述子は、テナントの加入要件を満たすようにアプリケーションの構成を修正する特性が設定されることを可能にする。
【0061】
図8および図9に示す例示的なワークフローオーケストレータジョブシーケンス図は、例示として提供されている。他の実施形態によれば、ワークフローオーケストレータは、プラットフォームインスタンスプロビジョニングおよび/またはアプリケーションインストールを行なう他のタイプのジョブシーケンスを含む、異なるおよび/または他のタイプのジョブシーケンスを実行可能である。
【0062】
図10は、一実施形態に従った、ワークフローオーケストレーションコンポーネントを含む環境で使用するためのプロセスのフローチャートである。図10に示すように、ステップ313で、クラウド環境と、そこで実行されるワークフローオーケストレータとを含む、1つ以上のコンピュータが提供される。
【0063】
ステップ314で、ワークフローマネージャ、またはプロキシコンポーネントは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニング、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信する。
【0064】
ステップ316で、ワークフローマネージャは、その内部ワークフローエンジン/エグゼキュータを介してワークフロージョブを非同期で実行し、ジョブは、任意の特定のPaaSワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および/または管理するためのワークのアトミック単位である。
【0065】
ステップ317で、ワークフローは、アセンブリビルダー/デプロイヤといった他のコンポーネントにアクセスするために、および/または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうために、任意で使用される。
【0066】
ステップ318で、ワークフローオーケストレータは、テナントおよび/または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および/または修正するために使用される。
【0067】
クラウドコンピューティング環境で使用するためのワークフローオーケストレーションを提供するシステムは、そこで実行されるクラウド環境を含む、1つ以上のコンピュータを提供するための手段と、その内部ワークフローエンジンを介してワークフロージョブを非同期で実行するワークフローマネージャを含む、PaaS(プラットフォーム・アズ・ア・サービス)オペレーションをオーケストレーションするのに使用するためのワークフローオーケストレータを提供するための手段とを含み、ジョブは、任意の特定のPaaSワークフローに関連付けられたアクションのシーケンスであり、アクションは、クラウドランタイム環境内でリソースを生成および/または管理するためのワークのアトミック単位である。
【0068】
上述のようなシステムでは、ワークフローオーケストレータは、プロビジョニング、デプロイメント、または他のクラウドオペレーションを行なうために、テナントプロビジョニングシステム、テナントコンソール、もしくは別のコンポーネントまたはシステムから要求を受信するための手段を有するワークフロープロキシをさらに含む。
【0069】
上述のようなシステムでは、ワークフローは、アセンブリビルダー/デプロイヤといった他のコンポーネントにアクセスするための、および/または、ウィルススキャンまたはホワイトリストといった追加の機能を行なうための手段を有する。
【0070】
上述のようなシステムでは、ワークフローオーケストレータは、テナントおよび/または他のクラウドエンティティによる次のアクセスのために、プラットフォームインスタンスを生成および/または修正するための手段を有する。
【0071】
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリ、および/またはコンピュータ読取可能な記憶媒体を含む、従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを1つ以上用いて、都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングが、この開示の教示に基づいて、熟練したプログラマらによって容易に準備可能である。
【0072】
いくつかの実施形態では、この発明は、この発明のプロセスのうちのいずれかを行なうようにコンピュータをプログラミングするために使用可能な命令が格納された非一時的な記憶媒体またはコンピュータ読取可能な媒体である、コンピュータプログラム製品を含む。この記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含むあらゆるタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム(分子メモリICを含む)、もしくは、命令および/またはデータを格納するのに好適なあらゆるタイプの媒体またはデバイスを含み得るものの、それらに限定されない。
【0073】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、包括的であるよう、または、この発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかであろう。修正および変形は、開示された特徴の任意の関連する組合せを含む。実施形態は、この発明の原理およびその実際の応用を最良に説明するために選択され説明されており、それにより、当業者が、考えられる特定の用途に適したさまざまな実施形態に関する、およびさまざまな修正を有するこの発明を理解できるようにする。この発明の範囲は、特許請求の範囲およびその均等物によって定義されることが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10