JP6568576B2 - サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御 - Google Patents

サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御 Download PDF

Info

Publication number
JP6568576B2
JP6568576B2 JP2017500962A JP2017500962A JP6568576B2 JP 6568576 B2 JP6568576 B2 JP 6568576B2 JP 2017500962 A JP2017500962 A JP 2017500962A JP 2017500962 A JP2017500962 A JP 2017500962A JP 6568576 B2 JP6568576 B2 JP 6568576B2
Authority
JP
Japan
Prior art keywords
tenant
computer
task
server platform
specific
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.)
Active
Application number
JP2017500962A
Other languages
English (en)
Other versions
JP2017520858A (ja
Inventor
ナゲシャラオ,パヴィスラ・ティヤマゴンドル
ジョンソン,ジェームズ・イー
イルン−ブリズ,ルイス
レワスカー,スシャント・プラモド
マニ,アジャイ
サイド,サード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017520858A publication Critical patent/JP2017520858A/ja
Application granted granted Critical
Publication of JP6568576B2 publication Critical patent/JP6568576B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • G06F9/4875Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

[0001] 計算システムおよび関連するネットワークは、人間が働き、遊び、そして伝える方法に大変革を起こした。私たちの生活のほぼあらゆる面が、いろいろな意味で計算システムによって影響を受ける。計算システムは、現在では、広範囲に広がる通信を可能にするように、ネットワークおよびインターネットに大々的に接続されている。このような計算ネットワークの広い能力により、ネットワークを通じて提供される種々のサービスの激増が生じた。ネットワーク・サービスの例には、ウェブ・サイト、電子メール、メッセージング、ソーシャル・ネットワーク、データーベース管理、仮想化、カレンダー管理、ストレージ、ポリシー管理等が含まれる。
[0002] 1つの計算モデルでは、プラットフォームは複数のテナント(例えば、コンポーネント・プログラム)をホストし、各テナントがそれら自体のサービスをそのテナントのプロバイダーの顧客に提供する。プラットフォームは、例えば、サーバー・プラットフォームであってもよく、1つ以上のサーバーによってサポートされてもよい。また、プラットフォームはクラウド・プラットフォームであってもよく、この場合プラットフォームはデーター・センターのリソースの全てを有する。クラウド・プラットフォームは、プライベート・クラウド、パブリック・クラウド、または各々の一部を代表するハイブリッド・クラウドであってもよい。
[0003] いずれの場合でも、複数のテナントをホストするとき、プラットフォームは、各テナントのデーターが保護されることを確保するため、そして十分な計算リソースが各テナントに割り当てられることを保証するために、多数の保証措置(safeguard)を採用する。また、プラットフォームは、各テナントに関連するワークフローを把握する。各テナントがその対応するワークフローにわたって進展するに連れて、プラットフォームは、各ワークフローに従っていること、そしてワークフローの種々のタスクが時宜を得て首尾良く遂行されることを保証する。したがって、ワークフロー管理は、特に複数のテナントを管理するときには、プラットフォームの重要な役割となる。
[0004] 本明細書において特許請求する主題は、いずれの欠点を解決する実施形態にも、以上で説明したような環境のみにおいて動作する実施形態にも限定されない。むしろ、この背景は、本明細書において説明する実施形態を実施することができる1つの実証的技術分野を例示するために提示されたに過ぎない。
[0005] 本明細書において説明する少なくとも一部の実施形態は、複数のテナントを実行するサーバー・プラットフォーム(クラウド・プラットフォームのような)の動作に関する。具体的には、本明細書において説明する実施形態は、サーバー・プラットフォームおよびそのテナントの1つ以上が、アトミック・タスク(atomic task)を調整するのを助ける。アトミック・タスクは、サーバー・プラットフォームによって実行されることになっているが、少なくとも潜在的な影響をテナントに対して有する。
[0006] 具体的には、サーバー・プラットフォームは、特定のテナントに時間枠を許容し、この時間枠内でテナント自体が1つ以上のタスクの各々の開始(initiation)を承認することができる。テナントは、結局、サーバー・プラットフォームに入手可能でない情報を有することができ、更に、テナントの観点から特定のタスクを開始するならばいつが適しているかに関連する可能性がある情報を有することができる。サーバー・プラットフォームは、時間枠に時間制約を強いることによって、アクションの遅れからそれ自体を保護することができる。時間枠が経過した後、テナントはもはや特定のタスクの開始をトリガーすることに対して制御することができず、代わりにサーバー・プラットフォームが特定のタスクの開始時刻を決定することを担当する。したがって、テナントにはサーバー・プラットフォームによって実行されるタスクの開始を制御することに対する柔軟性が与えられ、一方サーバー・プラットフォームはそのリソースを保護するための制御のレベルを維持し、種々のテナントの要望を調和する。
[0007] この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。
[0008] 以上で挙げたおよびその他の利点ならびに特徴を得ることができる仕組み(manner)を説明するために、添付図面を参照して種々の実施形態の更に特定的な説明を行う。これらの図面は実施形態の見本を図示するに過ぎず、したがって本発明の範囲を限定するように解釈してはならないことを理解した上で、添付図面を使用することによって、更に具体的にそして詳細に実施形態について説明する(described and explained)。
図1は、本明細書において説明するいくつかの実施形態を採用することができる計算システムを抽象的に示す。 図2は、複数のテナントが実行するサーバー・プラットフォームを含み、説明する原理を採用することができる環境を示す。 図3は、少なくとも1つのテナントを含むサーバー・プラットフォームにおいて特定のアトミック・タスクをスケジューリングする方法のフローチャートを示す。 図4は、本明細書において説明する原理によるタスクおよび時間枠の指定(designation)を示す。 図5は、本明細書において説明する原理による補足情報の例を示す。
[0014] 本明細書において説明する少なくとも一部の実施形態は、複数のテナントを実行するサーバー・プラットフォーム(クラウド・プラットフォームのような)の動作に関する。具体的には、本明細書において説明する実施形態は、サーバー・プラットフォームおよびそのテナントの1つ以上が、アトミック・タスク(atomic task)を調整するのを助ける。アトミック・タスクは、サーバー・プラットフォームによって実行されることになっているが、少なくとも潜在的な影響をテナントに対して有する。
[0015] 具体的には、サーバー・プラットフォームは、特定のテナントに時間枠を許容し、この時間枠内でテナント自体が1つ以上のタスクの各々の開始(initiation)を承認することができる。テナントは、結局、サーバー・プラットフォームに入手可能でない情報を有することができ、更に、テナントの観点から特定のタスクを開始するならばいつが適しているかに関連する可能性がある情報を有することができる。サーバー・プラットフォームは、時間枠に時間制約を強いることによって、アクションの遅れからそれ自体を保護することができる。時間枠が経過した後、テナントはもはや特定のタスクの開始をトリガーすることに対して制御することができず、代わりにサーバー・プラットフォームが特定のタスクの開始時刻を決定することを担当する。したがって、テナントにはサーバー・プラットフォームによって実行されるタスクの開始を制御することに対する柔軟性が与えられ、一方サーバー・プラットフォームはそのリソースを保護するための制御のレベルを維持し、種々のテナントの要望を調和する。
[0016] 図1に関して、計算システムの序論についていくらか記載する。次いで、後続の図面に関して、本明細書において説明する原理を使用する支援(supporting)アーキテクチャおよび方法について説明する。
[0017] 今日、計算システムは、増々多種多様な形態をなしつつある。計算システムは、例えば、ハンドヘルド・デバイス、アプライアンス、ラップトップ・コンピューター、デスクトップ・コンピューター、メインフレーム、分散型計算システム、または従来では計算システムと見なされなかったデバイスであってもよい。この説明および特許請求の範囲において、「計算システム」(computing system)という用語は、少なくとも1つの物理的および有形プロセッサー、ならびにプロセッサーによって実行することができるコンピューター実行可能命令を有することができる物理的および有形メモリーを含む任意のデバイスまたはシステム(またはその組み合わせ)を含むように、広く定められるものとする。メモリーは、任意の形態をなすことができ、計算システムの本質(nature)および形態に依存してもよい。計算システムは、ネットワーク環境にわたって分散されてもよく、複数の要素計算システムを含んでもよい。
[0018] 図1に示すように、計算システム100は、その最も基本的な構成では、通例少なくとも1つのハードウェア処理ユニット102とメモリー104とを含む。メモリー104は、物理システム・メモリーであるとしてもよく、揮発性、不揮発性、またはこれら2つの何らかの組み合わせであってもよい。また、「メモリー」という用語は、本明細書では、物理記憶媒体のような、不揮発性大容量ストレージを指すために使用されることもある。計算システムが分散型である場合、処理、メモリー、および/または記憶能力も分散することができる。本明細書において使用する場合、「実行可能モジュール」または「実行可能コンポーネント」という用語は、計算システムにおいて実行することができるソフトウェア・オブジェクト、ルーチン、またはメソッドを指すことができる。本明細書において説明する異なるコンポーネント、モジュール、エンジン、およびサービスが、計算システムにおいて実行するオブジェクトまたはプロセスとして実装されてもよい(例えば、別個のスレッドとして)。
[0019] 以下に続く説明では、1つ以上の計算システムによって実行されるステップを参照しながら、実施形態について説明する。このようなステップがソフトウェアで実装される場合、このステップを実行する関連計算システムの1つ以上のプロセッサーは、コンピューター実行可能命令を実行したことに応答して、計算システムの動作を指令する。例えば、このようなコンピューター実行可能命令は、コンピューター・プログラム製品を形成する1つ以上のコンピューター読み取り可能媒体において具体化することができる。このような動作の一例は、データーの操作を伴う。コンピューター実行可能命令(および操作されたデーター)は、計算システム100のメモリー104に格納することができる。また、計算システム100は、通信チャネル108も内蔵することができる。通信チャネル108は、計算システム100が、例えば、ネットワーク110を介して、他のメッセージ・プロセッサーと通信することを可能にする。
[0020] 本明細書において説明する実施形態は、特殊目的コンピューターまたは汎用コンピューターを含むまたは利用することができ、以下で更に詳しく説明するように、例えば、1つ以上のプロセッサーおよびシステム・メモリーのような、コンピューター・ハードウェアを含む。また、本明細書において説明する実施形態は、コンピューター実行可能命令および/またはデーター構造を搬送または格納するために、物理コンピューター読み取り可能媒体または他のコンピューター読み取り可能媒体も含む。このようなコンピューター読み取り可能媒体は、汎用コンピューター・システムまたは特殊目的コンピューター・システムによってアクセスすることができる任意の入手可能な媒体とすることができる。コンピューター実行可能命令を格納するコンピューター読み取り可能媒体は物理記憶媒体である。コンピューター実行可能命令を搬送するコンピューター読み取り可能媒体は送信媒体である。つまり、一例として、そして限定ではなく、本発明の実施形態は、少なくとも2つの全く異なる種類のコンピューター読み取り可能媒体、即ち、コンピューター記憶媒体および送信媒体を含むことができる。
[0021] コンピューター記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望のプログラム・コード手段をコンピューター実行可能命令の形態で格納するために、またはデーター構造を格納するために使用することができ、更に汎用コンピューターまたは特殊目的コンピューターによってアクセスすることができる任意の他の有形媒体を含む。
[0022] 「ネットワーク」とは、コンピューター・システムおよび/またはモジュールおよび/または他の電子デバイス間における電子データーの移送を可能にする1つ以上のデーター・リンクとして定められる。情報がネットワークまたは他の通信接続(ハードワイヤ接続、ワイヤレス、あるいはハードワイヤ接続またはワイヤレスの組み合わせ)を介してコンピューターに転送または提供されるとき、コンピューターはこの接続を正しく送信媒体と見なす。送信媒体は、所望のプログラム・コード手段をコンピューター実行可能命令の形態でまたはデーター構造を搬送するために使用することができ、汎用コンピューターまたは特殊目的コンピューターによってアクセスすることができるネットワークおよび/またはデーター・リンクを含むことができる。以上のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
[0023] 更に、種々のコンピューター・システム・コンポーネントに到達したとき、コンピューター実行可能命令の形態であるプログラム・コード手段またはデーター構造を自動的に送信媒体からコンピューター記憶媒体に(またはその逆に)転送することができる。例えば、ネットワークまたはデーター・リンクを介して受信されたコンピューター実行可能命令またはデーター構造は、ネットワーク・インターフェース・モジュール(例えば、「NIC」)内にあるRAMにバッファされ、次いで最終的にコンピューター・システムのRAM、および/またはコンピューター・システムにおいてそれよりも揮発性でないコンピューター記憶媒体に転送することができる。このように、コンピューター記憶媒体は、送信媒体も利用する(またはこれを主に使用するのであっても)コンピューター・システム・コンポーネントに含むことができることは理解されてしかるべきである。
[0024] コンピューター実行可能命令は、例えば、命令およびデーターを含み、プロセッサーにおいて実行されると、汎用コンピューター、特殊目的コンピューター、または特殊目的処理デバイスに、一定の機能または機能の集合を実行させる。コンピューター実行可能命令は、例えば、バイナリー、またはアセンブリー言語のような中間フォーマット命令といった、プロセッサーによる直接実行の前に何らかの変換(コンパイルのような)が行われる命令であってもよく、あるいはソース・コードであってもよい。構造的特徴および/または方法論的ステップに特定の文言で、本主題について説明したが、添付する特許請求の範囲において定められる主題は、以上で説明した特徴やステップに必ずしも限定されないことは理解されよう。逆に、以上で説明した特徴およびステップは、特許請求の範囲を実現する形態例として開示したまでである。
[0025] 尚、本発明は、多くのタイプのコンピューター・システム構成を有するネットワーク計算環境においても実現できることは当業者には認められよう。コンピューター・システム構成には、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、メッセージ・プロセッサー、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター、移動体電話機、PDA、ページャ、ルーター、スイッチ等が含まれる。また、本発明は分散型システム環境においても実施することができ、ネットワークを介して(ハードワイヤ接続データー・リンク、ワイヤレス・データー・リンク、またはハードワイヤ接続およびワイヤレス・データー・リンクの組み合わせのいずれかによって)リンクされたローカルおよびリモート・コンピューター・システムの双方がタスクを実行する。分散型システム環境では、プログラム・モジュールはローカルおよびリモート双方のメモリー記憶デバイス内に配置されてもよい。
[0026] 図2は、説明する原理を採用することができる環境200を示す。環境200は、複数のテナント220が実行するサーバー・プラットフォーム201を含む。各テナントは、例えば、環境200においてサービスを実行しているサービス・プロバイダーに関連するソフトウェアであってもよい。例えば、サーバー・プラットフォーム201は、1つのサーバー、複数の分散型サーバー、あるいはパブリック・クラウド、プライベート・クラウド、またはハイブリッド・クラウドを構成するクラウド計算環境であることも可能である。サーバー・プラットフォーム201は、クラウド計算環境における場合には広く分散されることもありそうであるが、図1の計算システム100について以上で説明したように構成することができる。
[0027] サーバー・プラットフォーム201は、テナント220の各々のワークフロー・ステータスを追跡し、各テナントのワークフロー・ステータスを完了する目的に向かってアトミック・タスクを実行する。時間が進むに連れて、サーバー・プラットフォーム201が特定のテナントに関してワークフローを開始することができ、またはその特定のテナントが、ワークフローを開始するように求めることができる。
[0028] テナントが開始するワークフローでは、サーバー・プラットフォーム201がテナントと調整してワークフローを開始し継続することができる。例えば、テナントが、このテナントの役割のインスタンスの一部を新たなバージョンに更新することを決定したと仮定する。テナントはこの意思をサーバー・プラットフォーム201に伝えることができる。次いで、サーバー・プラットフォーム201は、承認のために、このアクションをテナントに差し戻す(present back)。テナントが要求したアクションを承認のためにこのテナントに差し戻す理由は、テナントがその意思を表明した時点では、サーバー・プラットフォームが開始したアクションが全くないことがあり得るからである。サーバー・プラットフォーム201が、テナントが開始したアクションを実行する準備ができる時点までに、他のプラットフォームがアクションを開始することもあり得る。したがって、この時点において、テナントは、他の保留中のアクションの方がもっと短い時間制約を有する可能性が潜在的にあるという状況(context)では、いつインスタンスがアップグレードされるか制御することを望むこともあり得る。
[0029] サーバー・プラットフォーム201は、ワークフロー・ステータス・ストア211にアクセスすることができる。ワークフロー・ステータス・ストア211は、各テナントに関して現在アクティブなワークフローを追跡するのを補助し、更にワークフロー自体の構造を追跡するのを補助する(各ワークフローにおいて実行される次のタスクを識別するように)。
[0030] 強力なサーバー・プラットフォームは、多くの場合数百または数千ものテナントをホストすることができる。しかしながら、図示する実施形態では、簡略さおよび明確さのために、3つのテナント221、222、および223のみが図示されている。しかしながら、本明細書において説明する原理の主旨や範囲から逸脱することなく、楕円224は、プラットフォーム内において任意の数のテナントが動作してもよいことを象徴的に表す。したがって、本明細書において説明する原理は、プラットフォーム内で動作する実際のテナント数に限定されず、更にテナントがプラットフォームに追加されるまたはプラットフォームから削除されることがあるので、テナントの数さえも一定ではない。
[0031] このようなテナントは、全く無関係であってもよい。例えば、1つのテナントが企業向けに電子メール・サービスを提供してもよく、他のテナントが世界中で顧客が製品を注文することができるウェブ・サイトを提供してもよく、更に他のテナントが動物およびペットの世話についての話題に応えるブログ・サービスであってもよい。サーバー・プラットフォーム201は、各テナントのデーター所有権およびプライバシーを尊重するために、各テナント間で適正なデーター分離を維持し、更に各テナントに関連するアクティブなワークフローの遂行に向けて適正な処理リソースを割り当てる。
[0032] 図3は、少なくとも1つのテナントを含むサーバー・プラットフォームにおいて特定のアトミック・タスクをスケジューリングする方法300のフローチャートを示す。方法300のステップの一部は、図2のサーバー・プラットフォーム201によって(また恐らく具体的にはコントローラー210によって)実行され、「プラットフォーム」という見出しの下で図3の左側の列に示されている。方法300のステップのその他のものは、「テナント」という見出しの下で図3の右側の列において表されるように、対応するテナント(例えば、テナント221)によって実行される。方法300は、恐らくテナントに影響を及ぼす可能性がある新たなタスクが実行されようとするとき、所与のテナントに関して繰り返し実行することができる。
[0033] 方法300は、プラットフォームが1つ以上の(潜在的に複数の)アトミック・タスクを識別したときに開始される(ステップ311)。アトミック・タスクは、サーバー・プラットフォームによって実行されるが、少なくとも特定のテナントに影響を及ぼす潜在的な可能性がある。例えば、図2を参照すると、以後「特定事例」(specific case example)と呼ぶ例において、プラットフォーム201のコントローラー210が、プラットフォーム201が4つのタスクを実行することを決定したと仮定する。これらのタスクは、テナント221に影響を及ぼす潜在的な可能性があり、以後、タスクA、タスクB、タスクC、およびタスクDと呼ぶ。テナントに影響を及ぼす可能性があり、プラットフォームが実行する可能性があるタスクの例には、テナントの全てまたは一部が動作している物理機械(physical machine)をリブートすること、テナントの全てまたは一部を実行する仮想機械を初期化し直すこと、テナントのソフトウェア・コンポーネントを更新すること、テナントのコンフィギュレーションを更新すること、テナントに利用可能なリソースを追加または削除すること等が含まれる。
[0034] 一実施形態では、ワークフロー・ステータス・ストア211に格納されているワークフローを評価することによって、プラットフォーム・コントローラー210によってタスクを識別する。例えば、プラットフォーム・コントローラー210は、テナント221に対してアクティブなワークフローおよび新たなワークフローを評価し、そのワークフロー・ステータスに基づいて次のアトミック・タスクを決定することができる。ワークフローは、1つのアトミック・タスクのように単純であってもよく、またはいつ実行すべきかまたは実行できるかについて何らかの時間的関係がある複数のアトミック・タスクを含んでもよい。テナント221のワークフローは、プラットフォーム201またはテナント221のいずれの指令で開始されたのでもよい。ある場合には、所与のテナントに影響を及ぼす可能性があるタスクを発見するために、プラットフォーム・コントローラー210は、テナントにアクティブに割り当てられたワークフロー以外のワークフローを調べることもできる。例えば、特定のタスクが、各々異なるテナントを担当する3つの仮想機械が実行中である機械の物理リブートを必要とする場合、このリブートするタスクは、これらのテナントの各々に影響を及ぼすと考えることができる。タスクが仮想機械の停止を伴う場合、恐らく、その仮想機械によって実行されているテナントだけが影響を受けると判定される。このため、この説明および特許請求の範囲において、プラットフォームがタスクの開始に対する制御を特定のテナントに与えるとき、この特定のテナントはこのような制御を1つ以上の他のテナントと共有することができる。
[0035] 必ずしも全部のタスクではないが、タスクの一部に対して、プラットフォームは、影響を受けたテナントに、対応するタスクをいつ開始するかについて何らかの制御を行わせることもできる。つまり、テナントは、対応するタスクの開始の是認(endorsement)を与える。例えば、特定事例において、プラットフォーム210が、タスクDを単に先に進めることを決定し、一方プラットフォームは、タスクA、B、およびCをいつ開始するかについて、テナント221が何らかの制御を行うべきことを決定したと仮定する。テナントがタスクの開始について何らかの制御を行うことができるとプラットフォームが決定したタスクに対して、プラットフォーム・コントローラーは、テナントが特定のタスクの開始について制御を行うことができる時間枠も特定する(ステップ312)。この時間枠は、時間切れとして考えることもでき、この後では、プラットフォームは任意の時点でタスクを開始してもよい。
[0036] 特定される時間枠は、プラットフォームおよびテナントに対するタスクの緊急性に依存してもよい。例えば、タスクを緊急に実行しなければならない場合(タスクDの場合のように)、恐らくプラットフォームはテナントに制御を渡さない。しかしながら、緊急性が少し低めのタスクに対して、時間枠は比較的短い。一般に、タスクがプラットフォームに対して緊急性が低い程、時間枠を長くすることができる。時間枠は無限であってもよく、その場合、テナントは、プラットフォームがいつタスクを開始するかについて、自由な裁量を有する。時間枠はテナント毎に異なってもよい。例えば、いくつかのテナントには、プラットフォームによって、他よりも高いレベルのサービスが提供されるとしてもよい。一般に、このようなテナントには、プラットフォームにタスクを開始することを命令するための時間枠を長くして付与することができる。
[0037] 次いで、プラットフォームは、プラットフォームによって実行されるが、少なくともテナントに影響を及ぼす潜在的な可能性がある1つ以上のアトミック・タスクの指定(designation)を行う(generate)(ステップ313)。図2に関する特定事例では、コントローラー210は指定を行い、その指定内でタスクA、B、およびCを識別する。
[0038] また、コントローラーは、タスク毎に時間枠を決定し、それを指定の中に含ませた。例えば、恐らく、タスクAの時間枠は15分であり、タスクBの時間枠は15日であり、タスクCの時間枠は空白である(恐らく、暗示的に終端がない無限時間枠を伝える)。このように、プラットフォーム・コントローラー210は、タスクAを実行するまで15分だけ待つ用意があり、いつプラットフォームにタスクAを開始させるかについて、その15分の期間内だけテナント221の裁量を許容することを決定した。同様に、プラットフォーム・コントローラー210は、タスクBを実行するまで15日だけ待つ用意があり、いつプラットフォームにタスクBを開始させるかについて、その15日の期間だけテナント221の裁量を許容することを決定した。最後に、プラットフォーム・コントローラー210は、テナント221がタスクCを実行しようとする限り待つ用意があると決定した。例えば、恐らく、タスクCは、全体としてプラットフォームには影響を及ぼさず、テナント221のみに影響を及ぼす。
[0039] 次いで、ステップの識別および任意の対応する時間枠を含む指定を、このステップが影響を及ぼす特定のテナントに伝える(ステップ314)。例えば、これは1回の通信で行われてもよい。同様に、必要に応じて、プラットフォームは、特定のタスクをいつ承認するか判断するときに特定のテナントを補助するために、補足情報も提供する(ステップ315)。例えば、特定事例では、コントローラー210は、タスクA、B、およびCを識別し、更に該当する場合は、それらの関連する時間枠を特定する通信(恐らくは1回の通信)を、テナント221に向けて行わせる。例えば、図4は、テナントに伝えることができる表の例を示す。ここでは、この表は、各タスクA、B、およびCの識別を含む。更に、タスク毎に、時間枠が伝えられる。また、サーバー・プラットフォーム201は、時間枠を変更することもでき、または実行すべきステップを取り消すこともできる。これは、サーバー・プラットフォーム201からそれぞれのテナントへの別個の通信において行われてもよい。
[0040] ステップ314および315のその通信において、プラットフォーム・コントローラー210は補足情報も伝えることができる。繰り返すと、補足情報は、テナントがプラットフォームに対応するタスクを開始させるときを判断するために役に立つあらゆる情報を含むことができる。例えば、任意の所与のタスクについて、補足情報は、タスクを実行する際のリカバリー(recovery)までの推定時間または平均時間、一旦開始命令が検出されてからタスクがプラットフォームによって開始されるまでの期待時間または平均時間というような、タスク特定情報を含むことができる。例えば、図4において、各タスクはリカバリーに対する平均時間も含む。また、補足情報は、データーの利用可能性、ストレージ・アクセス速度、メモリー使用度、プロセッサー利用度等のような、タスク実行のその他の結果も含むことができる。
[0041] また、補足情報は、テナント特定情報も含むことができる。例えば、プラットフォーム・コントローラーが、プラットフォームの視点から推定したテナントの健全性、特定のテナントの状態(例えば、テナント上で実行する種々のソフトウェアのバージョン)、テナントのコンフィギュレーション等を指定することもできる。例えば、図5は、テナントに伝えることができ、テナントの4つのコンポーネントの各々について健全性ステータス(この場合、コンポーネントが実行しているか否か)を指定する健全性の表を示す。
[0042] 次いで、テナントは最適に(optimally)指定を受ける(ステップ321)。したがって、特定事例では、テナント221は、タスクA、B、およびCの指定をプラットフォーム・コントローラー210から受ける。したがって、テナントは、このテナントがいつタスクAを実行するか制御することができる15分の窓を有し、このテナントがいつタスクBを実行するか制御することができる15日の窓を有し、このテナントがいつタスクCを実行するか制御することができる無限の窓を有することを知る。
[0043] 次いで、対応する時間枠内でタスク承認の表現で応答することにより、または承認を表現せずに時間枠を経過させることによって、テナントは各タスクを承認する(ステップ322)ことによって、暗示的に、サーバー・プラットフォームが特定のアトミック・タスクを実行することを承認する。承認を表現する場合、1回の通信において、複数のタスクに対する承認の表現を与えることができる。例えば、特定事例では、13分のマークにおいて、テナント221がタスクAおよびB双方を開始することを決定したと仮定する。双方のタスクの時間枠内にあるので、テナントは双方のタスクについてその制御を未だ行うことができる。したがって、1回の通信で、テナント221はタスクAおよびBの開始を許可することができる。
[0044] 次いで、プラットフォームは、指定の通信に対応する応答ステータスに基づいて、サーバー・プラットフォームが特定のタスク実行を進めることを決定する(ステップ316)。例えば、特定事例では、13分のマークにおいて、プラットフォーム・コントローラー210は、テナントがタスクAおよびBを先に進めることを承認したことの指示をテナント221から受ける。この場合、サーバー・プラットフォームは自由に先に進める。しかしながら、タスクAに関してテナント221から通信がないまま、15分が経過したと仮定する。この時点において、(応答が受け取られていないという)この応答ステータスを受けて、プラットフォームは、応答がないことを、先に進めることに対する暗黙の了承として解釈することができる。したがって、プラットフォームはタスクAを先に進めることができる。
[0045] このメカニズムは、プラットフォームとテナントとの間における通信の問題に対して回復力がある(resilient)。例えば、タスクおよび時間枠の指定がテナントによって受け取られなかった、および/またはタスクを実行することの明示的な承認がプラットフォームによって全く受け取られなかったと仮定する。この場合、プラットフォームは、プラットフォーム・コントローラーとテナントとの間で通信の完全な遮断を想定しても、タスクを実行し続ける。例えば、一旦対応する時間枠が経過したなら、プラットフォームはタスクを実行することを引き受けるだけである。
[0046] テナントに影響を及ぼす特定のタスクをいつ開始するかについて、そのテナントに制御させることができると、タスクをいつ始めるかの判断に関連する情報をテナントがより多く有することができるという点で役に立つ。例えば、プラットフォームはテナントが健全でない(例えば、実行していない)ことを確信するが、テナントはそうでないことを知っている場合、プラットフォームは、通常であれば、テナントに補正措置を直ちに取らせればよいであろう。しかしながら、テナントはそれ自体の健全性を知っているので、テナントはそれに関してそれ程緊急性がなくてもよい。したがって、このメカニズムは、テナントには分かっている事実を考えて、テナントがその高いインテリジェンスを使用して、もっと適した時刻までタスクを遅らせることを許可する。これには、状況から考えて一層適したペースでワークフローを進めることを可能にするという効果がある。
[0047] 本発明は、その主旨や本質的な特性から逸脱することなく、他の特定的な形態においても具体化することができる。説明した実施形態は、あらゆる観点において、限定的ではなく例示的なものとして解釈されるものとする。したがって、本発明の範囲は、以上の説明によってではなく、添付した特許請求の範囲によって示される。請求項の均等の意味および範囲に該当する全ての変更は、それらの範囲内に包含されるものとする。

Claims (11)

  1. 少なくとも1つのテナントを含むサーバー・プラットフォームにおいて特定のアトミック・タスクをスケジューリングするためのコンピューターによって実行される方法であって、前記コンピューターによって実行される方法が、当該コンピューターによって実行される方法のコンピューター実行可能命令を実行する1つ以上のプロセッサーによって実行され、前記コンピューターによって実行される方法が、
    前記テナントが、前記サーバー・プラットフォームによって実行されるが少なくとも前記テナントに影響を及ぼす潜在的な可能性がある少なくとも1つの特定アトミック・タスクを含む1つ以上のアトミック・タスクの指定を前記サーバー・プラットフォームから受けるステップであって、前記指定が、前記サーバー・プラットフォームが前記特定アトミック・タスクを実行することを承認するために前記テナントが制御することができる特定の時間枠を指定する、ステップと、
    前記テナントが、前記サーバー・プラットフォームが前記特定アトミック・タスクを実行することを承認するステップと、
    を含む、コンピューターによって実行される方法。
  2. 請求項1に記載のコンピューターによって実行される方法において、前記サーバー・プラットフォームを承認するステップが、
    前記テナントが、前記特定アトミック・タスクを承認する明示的な通信を前記サーバー・プラットフォームに送ることなく、前記特定の時間枠の終了まで待つことによって、前記サーバー・プラットフォームが前記特定アトミック・タスクを実行することを暗示的に承認するステップを含む、コンピューターによって実行される方法。
  3. 請求項1又は2に記載のコンピューターによって実行される方法において、前記サーバー・プラットフォームを承認するステップが、
    前記テナントが、前記特定の時間枠内に、前記サーバー・プラットフォームに、前記特定アトミック・タスクの明示的な承認を伝えるステップを含む、コンピューターによって実行される方法。
  4. 請求項1〜3のいずれか一項に記載のコンピューターによって実行される方法であって、更に、
    前記テナントが、前記サーバー・プラットフォームによって実行されるタスクを提案するステップを含み、前記1つ以上のアトミック・タスクの指定が、少なくとも部分的に前記提案されたタスクに基づく、コンピューターによって実行される方法。
  5. コンピューター実行可能命令を含むコンピューター・プログラムであって、前記コンピューター実行可能命令が、複数のテナントを含むサーバー・プラットフォームの1つ以上のプロセッサーによって実行されると、前記サーバー・プラットフォームに、前記複数のテナントの内特定のテナントのために、特定のタスクをスケジューリングするためのコンピューターによって実行される方法を実行させ、前記コンピューターによって実行される方法が、
    前記特定のタスクを含み、前記サーバー・プラットフォームによって実行されるが少なくとも前記特定のテナントに影響を及ぼす潜在的な可能性がある1つ以上のアトミック・タスクを識別するステップと、
    前記1つ以上のアトミック・タスクの指定を行うステップであって、前記指定が、前記特定のテナントが、前記サーバー・プラットフォームが前記特定のタスクを実行することを承認するために制御することができる少なくとも1つの特定の時間枠の特定を含む、ステップと、
    前記指定を前記特定のテナントに伝えることを少なくとも試させるステップと、
    前記指定の通信に対応する応答ステータスに基づいて、前記サーバー・プラットフォームが前記特定のタスクの実行を進めることを決定するステップと、
    を含む、コンピューター・プログラム。
  6. 請求項5に記載のコンピューター・プログラムにおいて、前記サーバー・プラットフォームが前記特定のタスクの実行を進めることを決定するステップが、前記特定の時間枠内に前記特定のテナントから明示的な承認を受けたことに応答して実行される、コンピューター・プログラム。
  7. 請求項5又は6に記載のコンピューター・プログラムにおいて、前記サーバー・プラットフォームが前記特定のタスクの実行を進めることを決定するステップが、前記特定の時間枠内に前記特定のテナントから明示的な承認を受けることなく、前記特定の時間枠が経過したと判定したことに応答して実行される、コンピューター・プログラム。
  8. 請求項5〜7のいずれか一項に記載のコンピューター・プログラムにおいて、前記サーバー・プラットフォームが前記特定のタスクを実行することを承認するために前記特定のテナントが制御することができる少なくとも1つの特定の時間枠の特定を含む、前記1つ以上のアトミック・タスクの指定を行うステップが、前記サーバー・プラットフォームによって実行される、コンピューター・プログラム。
  9. 請求項5〜8のいずれか一項に記載のコンピューター・プログラムにおいて、前記特定の時間枠が、前記サーバー・プラットフォームによって取り消し可能である、コンピューター・プログラム。
  10. 請求項5〜9のいずれか一項に記載のコンピューター・プログラムにおいて、前記コンピューターによって実行される方法が、更に、前記特定のテナントが前記特定のタスクをいつ承認するか判断するときに前記特定のテナントを補助するために補足情報を提供するステップを含む、コンピューター・プログラム。
  11. 請求項5〜10のいずれか一項に記載のコンピューター・プログラムを記録した記録媒体。
JP2017500962A 2014-07-07 2015-07-06 サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御 Active JP6568576B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/324,511 US10110501B2 (en) 2014-07-07 2014-07-07 Tenant control in initiating atomic platform tasks
US14/324,511 2014-07-07
PCT/US2015/039177 WO2016007402A1 (en) 2014-07-07 2015-07-06 Control in initiating atomic tasks on a server platform

Publications (2)

Publication Number Publication Date
JP2017520858A JP2017520858A (ja) 2017-07-27
JP6568576B2 true JP6568576B2 (ja) 2019-08-28

Family

ID=53682849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017500962A Active JP6568576B2 (ja) 2014-07-07 2015-07-06 サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御

Country Status (11)

Country Link
US (1) US10110501B2 (ja)
EP (1) EP3167362A1 (ja)
JP (1) JP6568576B2 (ja)
KR (1) KR102399291B1 (ja)
CN (1) CN106489133B (ja)
AU (1) AU2015288125B2 (ja)
BR (1) BR112016030987A2 (ja)
CA (1) CA2954262C (ja)
MX (1) MX366479B (ja)
RU (1) RU2696299C2 (ja)
WO (1) WO2016007402A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
JP2018198236A (ja) * 2017-05-23 2018-12-13 パナソニック株式会社 太陽電池モジュール
CN107391188A (zh) * 2017-07-17 2017-11-24 聚好看科技股份有限公司 一种控制定时任务的方法和装置
US11119751B2 (en) * 2019-07-16 2021-09-14 International Business Machines Corporation Self-learning optimized patch orchestration

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2348972C2 (ru) * 2004-05-19 2009-03-10 Еитиро ТЕРАСАВА Устройство обработки информации, система обновления программного обеспечения, способ обновления программного обеспечения и программа для его реализации
US20060064481A1 (en) * 2004-09-17 2006-03-23 Anthony Baron Methods for service monitoring and control
CN101038635B (zh) * 2006-03-15 2012-09-26 北大方正集团有限公司 一种工作流管理系统流程权限控制系统的实现方法
US20080104573A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Software build validation before check-in
US8019812B2 (en) * 2007-04-13 2011-09-13 Microsoft Corporation Extensible and programmable multi-tenant service architecture
CN101094229B (zh) * 2007-07-24 2012-12-19 深圳市融创天下科技股份有限公司 一种网络应用程序的增量升级方法
EP2488939A4 (en) 2009-10-15 2014-03-26 Hewlett Packard Development Co PLANNING FOR CHANGE IN INFORMATION TECHNOLOGY SYSTEMS
US9432333B2 (en) * 2010-03-24 2016-08-30 E-Bo Enterprises Trusted content distribution system
KR101350755B1 (ko) * 2011-01-14 2014-01-10 대전대학교 산학협력단 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템
US8935375B2 (en) * 2011-12-12 2015-01-13 Microsoft Corporation Increasing availability of stateful applications
US9361468B2 (en) * 2012-04-17 2016-06-07 Salesforce.Com, Inc. Method and system for granting access to secure data
US8949839B2 (en) * 2012-07-26 2015-02-03 Centurylink Intellectual Property Llc Method and system for controlling work request queue in a multi-tenant cloud computing environment
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法

Also Published As

Publication number Publication date
JP2017520858A (ja) 2017-07-27
CA2954262A1 (en) 2016-01-14
US20160006666A1 (en) 2016-01-07
BR112016030987A8 (pt) 2017-08-22
RU2696299C2 (ru) 2019-08-01
US10110501B2 (en) 2018-10-23
RU2016152186A (ru) 2018-07-02
KR20170030517A (ko) 2017-03-17
CA2954262C (en) 2022-08-30
AU2015288125B2 (en) 2020-05-21
MX366479B (es) 2019-07-10
CN106489133A (zh) 2017-03-08
MX2017000166A (es) 2017-04-25
BR112016030987A2 (pt) 2021-06-08
AU2015288125A1 (en) 2017-01-12
WO2016007402A1 (en) 2016-01-14
CN106489133B (zh) 2019-11-19
EP3167362A1 (en) 2017-05-17
KR102399291B1 (ko) 2022-05-17
RU2016152186A3 (ja) 2019-02-05

Similar Documents

Publication Publication Date Title
US9262220B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US20130263131A1 (en) Global computing interface
JP2009522648A (ja) エンドユーザによるワークフローの動的な再配置
JP6568576B2 (ja) サーバー・プラットフォーム上においてアトミック・タスクを開始するときにおける制御
US11249794B2 (en) Client controlled transaction processing involving a plurality of participants
US11157355B2 (en) Management of foreground and background processes in a storage controller
US20150180950A1 (en) Test management using distributed computing
CN109951553B (zh) 数据处理方法、系统、电子设备以及计算机可读存储介质
US20160162301A1 (en) Maintaining state information in a multi-component, event-driven state machine
US11838296B1 (en) Providing secure software project development environments
US20130007184A1 (en) Message oriented middleware with integrated rules engine
US10599556B2 (en) Debugging a transaction in a replica execution environment
CN111066005A (zh) 响应于经由总线接口上的i/o操作产生的高速缓存命中对元数据道的异步更新
KR20140129026A (ko) 콘텍스트적으로 애플리케이션과 상호작용하는 기법
US9740997B2 (en) Method and system for input driven process flow management
US20160072881A1 (en) Client system communication with a member of a cluster of server systems
CN112491940B (zh) 代理服务器的请求转发方法及装置、存储介质及电子设备
KR20180108279A (ko) M2m 플랫폼에서 트랜잭션 관리 방법
US11586452B2 (en) Predicting and creating a session on a user's computing device
CN112749193A (zh) 工作流的处理方法及装置、存储介质、电子设备
US8380938B2 (en) Providing shared access to data storage resources across cluster computing environment boundaries
US20230034196A1 (en) Techniques for providing synchronous and asynchronous data processing
WO2023242640A1 (en) Automatically orchestrating a computerized workflow
Efimov et al. Bouncing” IO pattern for replication protocols

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190613

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: 20190705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190802

R150 Certificate of patent or registration of utility model

Ref document number: 6568576

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250