JP6943336B2 - 連携処理再開装置、および、連携処理再開方法 - Google Patents

連携処理再開装置、および、連携処理再開方法 Download PDF

Info

Publication number
JP6943336B2
JP6943336B2 JP2020516142A JP2020516142A JP6943336B2 JP 6943336 B2 JP6943336 B2 JP 6943336B2 JP 2020516142 A JP2020516142 A JP 2020516142A JP 2020516142 A JP2020516142 A JP 2020516142A JP 6943336 B2 JP6943336 B2 JP 6943336B2
Authority
JP
Japan
Prior art keywords
order
unit
cooperation
execution
service
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
JP2020516142A
Other languages
English (en)
Other versions
JPWO2019208098A1 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019208098A1 publication Critical patent/JPWO2019208098A1/ja
Application granted granted Critical
Publication of JP6943336B2 publication Critical patent/JP6943336B2/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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • G06Q30/0635Processing of requisition or of purchase orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • 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]
    • 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/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Educational Administration (AREA)
  • Tourism & Hospitality (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Retry When Errors Occur (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、連携処理再開装置、および、連携処理再開方法に関する。
各サービス事業者がそれぞれ提供する卸サービスを連携させて、1つの統合したサービスを提供する連携サービスが提案されている。それぞれの卸サービスは提供される品質や安定性などが異なるため、卸サービスの利用者である連携サービスの側で、卸サービスが提供するサービス内容を管理する必要がある。
例えば、特許文献1には、ネットワークサービスの予約時の使用可能性の低いリソースの占有やNW事業者のオペレーションシステムの処理負荷の増大を回避して、サービスリソースの予約を可能とするサービス予約装置が記載されている。これにより、卸サービスのリソースを過剰に予約しなくなり、リソースの利用効率が高まる。
また、非特許文献1には、提案されているサービスの仕様をカタログとして記述し、そのカタログを解釈して実行するサービス非依存部と、サービスごとのAPI(Application Programming Interface)を呼び出して実行するサービス依存部と、を疎結合とするシステムが記載されている。これにより、連携サービスに対して、新たな卸サービスやAPIへの柔軟な対応が可能になる。
特開2017−143426号公報
高橋謙輔、他著「複数事業者間サービス連携を柔軟にするアーキテクチャ」、2017年 電子情報通信学会通信ソサイエティ大会、2017年9月12日、B-14-8
連携サービスを構成する複数の卸サービスのうち、1つの卸サービスでも停止してしまうと、連携サービス全体としてサービスを提供できなくなってしまう。なお、連携オーダとして複数の卸サービスへそれぞれサービスオーダを実行させており、途中までの連携オーダが成功していたときに障害が発生したとする。その場合でも、ロールバックをするために、途中までの連携オーダを一旦全て削除した後に、最初から連携オーダをやり直す必要がある。よって、ロールバック処理に伴い、リソースコストの増大や、処理時間の増大が発生していた。
なお、前記した特許文献1や、非特許文献1などの従来の手法は、連携オーダについて、そのオーダ実行処理が正常に完了する場合を想定しており、連携オーダ実行中の不具合発生に起因したオーダ実行処理停止時の対処方法については言及されていない。
そこで、本発明は、複数のサービスオーダを連携させた連携オーダについて、中断状態から効率的に再開させることを、主な課題とする。
前記課題を解決するために、本発明の連携処理再開装置は、以下の特徴を有する。
本発明は、複数の卸サービスを連携させるための指示である連携オーダの要求を受け付ける要求受付部と、
前記連携オーダを実行することにより呼び出される卸サービスの個別の命令ごとに、その実行成否を記録するリソース管理部と、
前記実行成否が実行否であることで中断された前記連携オーダを再開するときに、前記リソース管理部から既に実行された前記卸サービスの個別の命令の前記実行成否を参照し、実行に成功した前記個別の命令の再実行をスキップしつつ、実行否または未実行である前記個別の命令を実行するオーダ再開部とを有することを特徴とする。
前記リソース管理部が、さらに、前記連携オーダを実行することにより呼び出される卸サービスの個別の命令ごとに、その実行結果を再開情報として記録し、
前記オーダ再開部が、再実行をスキップした前記個別の命令について、前記個別の命令が変数の取得処理であるときは、前回取得した変数を前記再開情報から読み出すことを特徴とする。
これにより、複数の卸サービスを連携させた連携オーダについて、個別の命令単位で管理した実行成否をもとに、前回の実行に成功した個別の命令が適切にスキップされるので、中断状態から効率的に再開させることができる。
さらに、変数の取得処理に続いて取得した変数の利用処理が行われるような連携オーダについて、変数の取得処理の後に中断した場合でも、変数の取得処理を再実行するような無駄を削減できる。
本発明は、前記オーダ再開部が、前記要求受付部が前記連携オーダの再開要求を受け付けるのを待ってから、中断された前記連携オーダを再開することを特徴とする。
これにより、要求受付部に投入される連携オーダの入力値誤りなどの連携オーダの中断原因を適切に取り除いてから、連携オーダが再開することができる。よって、何度も同じ中断原因により連携オーダが中断してしまうような無駄を削減できる。
本発明によれば、複数のサービスオーダを連携させた連携オーダについて、中断状態から効率的に再開させることができる。
本実施形態に係わる通信システムの構成図である。 本実施形態に係わる通信システムの処理概要を示すフローチャートである。 本実施形態に係わる連携オーダが実行中断するまでのリソース管理部が保持する情報の一例を示すテーブルである。 本実施形態に係わる連携オーダが実行中断した後から再開するまでのリソース管理部が保持する情報の一例を示すテーブルである。 本実施形態に係わるアダプタ共通部によるAPI処理の失敗時の動作を示すシーケンス図である。 本実施形態に係わる図5の処理に続き、要求受付部が上位装置からの再開信号を受信し、ワークフロー部に通知する動作を示すシーケンス図である。 本実施形態に係わる図6の処理に続き、ワークフロー部が受信した再開信号を、アダプタ共通部に通知する動作を示すシーケンス図である。 本実施形態に係わる図7の処理に続き、通知された再開信号をもとに、アダプタ共通部が卸サービスを再開する動作を示すシーケンス図である。 本実施形態に係わる図8の処理に続き、アダプタ共通部が卸サービスを再開する動作を示すシーケンス図である。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
図1は、通信システムの構成図である。
通信システムは、上位装置50と、サービス連携装置10と、卸サービス30とがネットワークで接続されて構成される。サービス連携装置10と卸サービス30とは連携サービスシステムを形成し、上位装置50は、その連携サービスシステムを呼び出すための装置である。
サービス連携装置10は、CPU(Central Processing Unit)と、メモリと、ハードディスクなどの記憶手段(記憶部)と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、CPUが、メモリ上に読み込んだプログラム(アプリケーションや、その略のアプリとも呼ばれる)を実行することにより、各処理部により構成される制御部(制御手段)を動作させる。
NWサービス30a、Cloudサービス30b、および、APLサービス30cは、各卸サービス事業者からそれぞれ自身で管理する設備を用いて提供される。以下では、これらのNWサービス30a、Cloudサービス30b、および、APLサービス30cを、「卸サービス30」と総称する。
サービス連携装置10は、複数の卸サービス30を連携させて、1つの統合した連携サービスを上位装置50に提供する。つまり、サービス連携装置10は、卸サービス事業者間を連携させて、サービス連携装置10にとってのエンドユーザが利用する上位装置50に対して、連携サービスを提供する。
サービス連携装置10から卸サービス30を利用するときには、連携サービスを実行するための連携オーダから、卸サービス30が公開するサービスオーダ(卸オーダ)のAPI(個別の命令)が呼び出されて実行される。
以下、3種類の連携オーダを例示する。これらの3種類の連携オーダはいずれも本実施形態の連携サービスシステムが扱う対象となる。
(1)新設時オーダ(add)は、各卸サービスリソースを組合わせた連携サービスをAPI連携によりインスタンス化する連携オーダである。例えば、NWサービス30a、Cloudサービス30b、APLサービス30cという3種類の卸サービス30それぞれに対して、新設の卸オーダを順番に指示するような新設時オーダが例示される。
(2)更新オーダ(modify)は、新設時オーダによりインスタンス化された連携サービスに対して、APIを介して変更を行う連携オーダである。変更内容は、例えば、NWサービス30aの帯域変更や、APLサービス30cが動作するサーバスペックの変更などである。
(3)削除オーダ(delete)は、新設時オーダによりインスタンス化された連携サービスを卸サービス30から削除する連携オーダである。
サービス連携装置10は、卸サービス30の種類や数に依存せずに、複数の卸サービス30にまたがる連携オーダを管理する。そのために、サービス連携装置10は、要求受付部11と、ワークフロー部12と、オーダ再開部13と、リソース管理部14と、APIアダプタ部20とを有する。
要求受付部11は、上位装置50から受け付けた連携オーダの初回実行要求および中断後の再開要求を受け、それぞれワークフロー部12に実行させる。
ワークフロー部12は、卸サービス30の種類に応じたAPIアダプタ部20の各アダプタを介して、APIを実行する。各アダプタとは、NWサービス30aの場合はNWサービスアダプタ20a、Cloudサービス30bの場合はCloudサービスアダプタ20b、APLサービス30cの場合はAPLサービスアダプタ20cである。
APIアダプタ部20の各アダプタは、アダプタの種類に特化したアダプタ個別部23(23a,23b,23c)に加え、アダプタの種類に依存せずに共通処理を行うためのアダプタ共通部22(22a,22b,22c)を備えている。
オーダ再開部13は、ワークフロー部12の実行結果をリソース管理部14に反映させる。リソース管理部14は、卸サービス30ごとに用意するAPIアダプタ部20のアダプタ単位、および、各アダプタ内部で実行するAPI単位で、連携オーダの状態(state)を自身の記憶部にて管理する。
これにより、サービス連携装置10を用いるサービス提供事業者は、連携オーダを構成するサービス個々の進捗状況を確認し、その中断サービスや、中断APIを調査する煩雑さがなくなる。
さらに、リソース管理部14には、卸サービス30のAPIを実行した結果が再開情報14a(resumeInfo)として記憶される。
図2は、通信システムの処理概要を示すフローチャートである。
S11は、ワークフロー部12が連携オーダを実行することで、各APIアダプタ部20が卸サービス30のAPIを実行する処理である。
S12は、リソース管理部14内の再開情報14aの更新処理である。各APIアダプタ部20のアダプタ共通部22は、実行されたAPIごとに卸サービス30からの実行結果をリソース管理部14に通知して、再開情報14aとして記録させる。これにより、API実行ごとの履歴管理を行うことで、この後において連携オーダが停止したときに、その原因を追跡することができる。なお、再開情報14aは、APIの実行履歴がリストで保存されており、API実行ごとにリストの末尾に履歴が追加されていく。
再開情報14aは、例えば、以下に列挙した各項目(Attribute)を含む。
・String型の「API名」
・Boolean型の「APIの実行結果」は、成功時Trueまたは失敗時Falseという実行成否である。
・Integer型の「失敗分類」は、APIの実行結果がTrueの場合は記載不要。Falseの場合はエラー分類として、「0:(レスポンスなし)」または「1:(ユーザ入力値誤り)」または「2:(外部サービス障害)」または「3:(その他)」となる。
・String型の「その他失敗理由」は、失敗分類で「3:(その他)」の選択時に失敗原因を記載し、それ以外は記載不要である。
・String型の「API実行時のレスポンス」
・String型の「API実行時のパラメータ」
・String型の「アダプタ拡張領域」は、アダプタ毎に必要に応じて再開に必要な情報を書き込む。
・String型の「APIの実行日時」は、再開情報14a(resumeInfo)への更新日時をyyyy-MM-ddHH:mm:ss:SSS形式で記載する。
S13は、アダプタ共通部22が卸サービス30からの障害通知などにより、連携サービスシステムに障害が発生したか否かを判定する処理である。S13でNoなら(つまり、障害が発生していないなら)S11に進み、YesならS14に進む。
この障害の発生により、連携オーダを構成する複数の卸オーダのうちの1つの卸オーダだけでなく、連携オーダ全体が中断してしまい、エンドユーザへの連携サービスの提供が一時的にできなくなってしまう。
なお、以下に3種類の障害原因を例示する。
(原因1)上位装置50からサービス連携装置10に投入される連携オーダの入力値誤り。
(原因2)APIアダプタ部20から卸サービス30にデータを送受信するためのネットワーク上の障害などの、卸サービス30との接続不可による処理中断。
(原因3)卸サービス30内での処理中断といった外部事業者によるサービス障害。なお、卸サービス30内でタイムアウトなどの処理遅延によるエラーが発生したとしてもリトライにより回復可能な場合もある。その場合には、卸サービス30内でリトライを実行させることで(つまり、卸サービス30内で自己解決させることで)、サービス連携装置10が認識する障害を減らしてもよい。
このような障害発生により、連携オーダの失敗結果を受けたアダプタ共通部22は、失敗結果をワークフロー部12に通知することで、リソース管理部14で管理している連携オーダの状態を中断状態(Held)に変更する(詳細は図4)。
なお、アダプタ共通部22は、S11の成功の実行結果と同様に、前記した「失敗分類」、「その他失敗理由」についても再開情報14aに記録する。
「その他失敗理由」は、例えば、Cloudサービス30bとして、クラウドサービスでVMを構築するオーダの場合、「get server details」などの管理コマンドを実施したが、同じ管理コマンドを複数回発行しても応答が無く、その発行回数が上限の超過により失敗した旨の失敗理由が挙げられる。
また、「0:(レスポンスなし)」という失敗分類は、サービス連携装置10からみて、卸サービス30からのレスポンスが到着しない原因として、(原因2)のネットワーク障害か、(原因3)のサービス障害かを特定できないときに記録される。
一方、サービス連携装置10側での処理中断は、ワークフロー部12のアプリケーション不具合や、リソース管理部14のデータベース障害などが想定され、正常な状態管理が保証されていないことから、連携オーダの再開処理の対象外とする。
S14は、障害により中断していた連携サービスシステムの再開契機かを判定する処理である。S14でYesになるまで待ち、YesになったらS15に進む。再開契機は、例えば、システム管理者が原因となる障害の解消を確認した旨の入力をサービス連携装置10の要求受付部11が受け付け、かつ、要求受付部11が上位装置50から連携オーダの再開要求を受信したときである。
S15は、連携オーダの再開処理である。オーダ再開部13は、再開対象となる連携オーダを中断状態から実行状態に更新し、途中停止した各APIアダプタ部20へAPI実行の再開処理を指示する。一方、実行完了済みのAPIは、再度実行されずスキップされる。
また、前回失敗したAPIを再実行する場合は、アダプタ共通部22は、前回の実行結果の再開情報14aを、今回の再実行した結果で上書き更新する。なお、再開情報14aには、実行履歴がログとして記録されており、そのログ内容である各属性(Attribute)に関して、何をどこまで記載するかはアダプタやAPI(SDK)などに依存する。
図3は、連携オーダが実行中断するまで(S12)のリソース管理部14が保持する情報の一例を示すテーブルである。リソース管理部14には、連携オーダから順番に実行されるAPIごとに、そのAPIの内容である連携内容と、そのAPIごとの状態(State)とが対応付けられている。図3では説明をわかりやすくするために、APIごとの状態を、実行前状態と、実行結果と、実行後状態とに分けて記載したが、実際は現在の状態だけリソース管理部14で管理すればよい。
第1順番のAPI1は、変数Aの取得処理であり、例えば、連携オーダ(ProductOrder)からカタログ(ProductOffering)を取得する処理である。第1順番のAPI1の実行は成功したため、API1の状態が「受付状態」から「実行完了状態」に遷移する。
第3順番のAPI3は、変数Xの取得処理であり、例えば、カタログ(ProductOffering)からカタログ仕様(ProductSpecification ID)を抽出する処理である。第3順番のAPI3の実行は失敗したため、API1の状態が「受付状態」から「中断状態」に遷移する。
なお、リソース管理部14で管理される状態として取り得る値は、以下の通りである。
・受付状態(Acknowledged)は、連携オーダの発行を受け付けた状態である。
・実行状態(InProgress)は、受付状態の連携オーダの実行を開始した状態である。
・中断状態(Held)は、実行状態の連携オーダに対して障害が発生することにより、処理が中断されてしまった状態である。そして、問題が解決したら、中断状態から実行状態に復帰する。
・実行完了状態(Completed)は、実行状態の連携オーダについて、その連携オーダの処理内容が完了した状態(正常終了の状態)である。
図4は、連携オーダが実行中断した後から再開するまで(S15)のリソース管理部14が保持する情報の一例を示すテーブルである。
オーダ再開部13は、リソース管理部14のAPIごとの状態を参照することで、中断した箇所から連携オーダを再開する。つまり、以下の各処理により、再開処理が実行される。
オーダ再開部13は、リソース管理部14の順番の先頭から再開処理を開始する。そして、オーダ再開部13は、第1順番、第2順番という前回成功したAPIはスキップしつつ、スキップしたAPIが変数の取得処理であるときは、前回の実行結果を再開情報14aから代わりに取得する。
そして、第3順番である失敗したAPIについては、前回の実行結果を破棄して再度実行する。今回の第3順番は成功したため、オーダ再開部13は、後続の第4順番、第5順番などの前回失敗したAPI以降の全ての処理(前回未実行の処理も)を実行する。
このように、オーダ再開部13は、前回実行した実行結果をリソース管理部14の状態情報から読み取り、前回実行した実行内容を再開情報14aから読み取ることで、連携オーダを再開するときに、前回成功したAPIを重複して実行することなく、中断した箇所から円滑に再開することができる。
以上、図1〜図4を参照して、本実施形態の通信システムの概要について説明した。以下、図5〜図9の各シーケンス図を順に参照し、通信システムの装置間でやりとりされるメッセージに着目して、処理の詳細を説明する。この詳細の説明では、上位装置50とサービス連携装置10とのやりとりにREST(REpresentational State Transfer) APIが使用される。REST APIでは、データの処理要求として、登録要求(POST)、取得要求(GET)、更新要求(PUT)、削除要求(DELETE)が用いられる。
また、これらの要求メッセージへの応答としては、以下に示すHTTP(Hypertext Transfer Protocol)ステータスコードが用いられる。
・「200 OK(成功応答)」は、要求が正常に処理されたことを示す。
・「201 Created(作成応答)」は、要求が正常に処理され、新規リソースが作成されたことを示す。
・「400 Bad Request(無効応答)」は、サーバが理解できない無効な要求であることを示す。
・「404 Not Found(存在なし応答)」は、要求されたリソースはサーバに存在しないことを示す。
また、各シーケンス図の説明では、リソース管理部14内で進捗状況を管理するための情報であるCOS(Complement Order State)として、以下に列挙する各項目(Attribute)を適宜参照する。
・String型の「id」は、本リソースの識別子である。
・String型の「href」は、本リソースのURLである。
・String型の「type」は、連携サービスを示す「fp:FederateProduct」、卸サービスを示す「sp:SourceProduct」、APIアダプタ部20が生成したものを示す「med」のいずれかである。
・String型の「sourceStateChangeId」には、StateChange通知受信契機で本リソースを生成した場合の契機となったProductOrderに対応するComplementOrderStateのidを設定する。
・String型の「productOrderId」は、type=fp,spの場合、分解前のProductOrderリソースのidを設定する。type=medの場合、設定しない。
・String型の「parentId」は、type=spの場合、親ProductOrderを格納するComplementOrderStateリソースのidを設定する。type=fp,medの場合、設定しない。
・String型の「productId」は、type=fp,spの場合、本ProductOrderリソースの実行で生成するカタログ/リソース管理部(TMF APIsリソース)のProductリソースのidを設定する。type=medの場合、設定しないcomplementOrderJsonへの、Productリソースのidの挿入は不要である。
・String型の「mediatorProductId」は、type=medの場合、本ProductOrderリソースの実行で生成する共通リソース管理部のMediatorProductリソースのidを設定する。Type=fp,spの場合、設定しない。complementOrderJsonへの、Productリソースのidの挿入は不要である。
・String型の「state」は、ProductOrderの実行状態である。
・String型の「execSourceOffering」は、Bundle Ruleにより、子ProductOrder処理を順次実行している場合、処理中のsourceOfferingの情報である。
・Json型の「complementOrderJson」は、このProductのProductOrderリソース情報である。
・String型の「externalProductOrderId」は、type=fp,spの場合に、APIアダプタ部やSB-IFで生成されたProductOrderのidを設定する。type=medの場合、設定しない。
・String型の「productOfferingHref」は、type=fp,spの場合に、ProductOfferingのhrefを設定する。type=med,tmfの場合、設定しない。
・ResumeInfo[]型の「resumeInfo」は、再開情報14aである。type=medの場合、ProductOrderの再開に必要な情報を格納する。type=fp,spの場合、設定しない。
図5は、アダプタ共通部22によるAPI処理の失敗時の動作を示すシーケンス図である。
ワークフロー部12は、各APIアダプタ部20の卸サービスのインスタンス化を指示(add)する旨の登録要求(POST)をアダプタ共通部22に送信する(S101)。アダプタ共通部22は、S101に対する作成応答をワークフロー部12に返信する(S102)。
アダプタ共通部22は、S101で指示された内容に従い、各卸サービス30のAPIを起動する(S103)処理を非同期処理として起動する(S102b)。なお、非同期処理とは、第1処理、第2処理、第3処理…と続けて処理を実行するときに、第1処理の応答を待たずに第2処理や第3処理を起動してもよいことを示す。
ここで、図3の順番3のように、ある卸サービス30でAPI処理が失敗したとする(S103b)。アダプタ共通部22は、その失敗を検知する(S104)。
そして、アダプタ共通部22は、APIごとの状態を実行状態(InProgress)から中断状態(Held)に更新するように、更新要求(PUT)をリソース管理部14に通知する(S105)。この更新要求には、実行に失敗したAPIの再開情報14aが含まれる。リソース管理部14は、S105に対する作成応答をアダプタ共通部22に返信する(S106)。
アダプタ共通部22は、連携オーダの実行が中断(Failed)されたことをワークフロー部12に通知する(S107)。ワークフロー部12は、連携オーダ全体を中断状態(Held)として上位装置50などに通知し、S107に対する作成応答をアダプタ共通部22に返信する(S108)。
以上説明した図5のシーケンスは、図2ではS11〜S13に該当する。
図6は、図5の処理に続き、要求受付部11が上位装置50からの再開信号を受信し、ワークフロー部12に通知する動作を示すシーケンス図である。
上位装置50は、要求受付部11に、連携オーダの再開信号を通知する(S211)。この再開信号は、例えば「PUT /orderManagement/v1/productOrder/XXX」であり、XXXは連携オーダ(ProductOrder)のIDを意味する。
要求受付部11は、S211の再開信号で指定されたIDが存在するか否かを判定する(S212a)。要求受付部11は、S212aでNoなら無効応答を上位装置50に返答して(S212)処理を終了し、YesならS213に進む。
要求受付部11は、S211の再開信号をリソース管理部14に転送する(S213)。リソース管理部14は、S213の再開信号で指定されたIDの連携オーダが存在するか否かを判定する(S214a)。リソース管理部14は、S214aでNoなら存在なし応答を、要求受付部11を介して上位装置50に返答して(S214d,S214e)処理を終了し、YesならS215aに進む。
リソース管理部14は、再開信号で指定された連携オーダの状態が中断状態(Held)かつ、再開信号の更新要求(PUT)に含まれるパラメータが連携オーダのIDだけであるか否かを判定する(S215a)。
S215aでYesなら、リソース管理部14は成功応答を要求受付部11に送信し(S215d)、要求受付部11は作成応答を上位装置50に送信する(S215e)。
S215aでNoなら、リソース管理部14は、無効応答を要求受付部11経由で上位装置50に送信する(S221d,S221e)。なお、S215aでNoとは、例えば、Id=XXXに該当する連携オーダは存在し、state=中断状態(Held)で、actionが指定されていた場合である。
図7は、図6の処理に続き、ワークフロー部12が受信した再開信号を、アダプタ共通部22に通知する動作を示すシーケンス図である。
上位装置50は、連携オーダのIDが指定された更新要求(PUT)である再開オーダ申込みを、ワークフロー部12に通知する(S311)。
ワークフロー部12は、S311のIDで指定された中断状態(Held)の連携オーダの取得要求(GET)を、リソース管理部14に通知する(S312)。
リソース管理部14は、S312で指定された条件に合致する連携オーダが存在するか否かを判定する(S313a)。
S313aでNoなら、リソース管理部14は、ワークフロー部12、要求受付部11を経由して、上位装置50に、存在なし応答を通知して(S313d,S313e,S313f)、処理を終了する。
S313aでYesなら、リソース管理部14は、ワークフロー部12、要求受付部11を経由して、上位装置50に、成功応答を通知する(S314d,S314e,S314f)。
ワークフロー部12は、S313aで該当する連携オーダを実行状態(InProgress)に更新する更新要求(PUT)を、リソース管理部14に通知する処理(S321)を、非同期処理として起動する(S315)。リソース管理部14は、作成応答をワークフロー部12に返答する(S322)。
リソース管理部14は、要求受付部11を経由して、上位装置50にリソース変更(連携オーダの状態変更)を通知する(S323d,S323e)。
ワークフロー部12は、S311のIDで指定された中断状態(Held)の連携オーダの取得要求(GET)を、リソース管理部14に通知する(S324)。この取得要求は、例えば「GET /commonResourceMng/orderManagement/v1/complementOrderState」である。リソース管理部14は、成功応答をワークフロー部12に通知する(S325)。
ワークフロー部12は、S324の取得要求(GET)への成功応答(S325)として取得した連携オーダのCOSのIDを用いて、そのCOSを実行状態(InProgress)に更新するための更新要求(PUT)を、リソース管理部14に通知する(S331)。この更新要求は、例えば「PUT /commonResourceMng/orderManagement/v1/complementOrderState」である。リソース管理部14は、作成応答をワークフロー部12に通知する(S332)。
なお、S321の状態更新処理は、S311で指定された連携オーダ(ProductOrder)のオーダ状態の更新処理である。一方、S331の状態更新処理は、S321の連携オーダを基に内部で補完した情報であるCOSの状態の更新処理である。
図8は、図7の処理に続き、通知された再開信号をもとに、アダプタ共通部22が卸サービス30を再開する動作を示すシーケンス図である。ワークフロー部12は、COSの項目であるid(externalProductOrderId)のみ指定した再開処理をアダプタ共通部22に通知する(S411)。この再開処理は、例えば「PUT /mediation/xxx/orderManagement/v1/productOrder」である。
なお、「externalProductOrderId」は、上位装置50から連携オーダ(ProductOrder)をリクエストされた時にリソース管理部14で生成するProductOrderIDと、APIアダプタ部20にProductOrderをリクエストした時に生成されるProductOrderIDを紐付けるために用いられる。
アダプタ共通部22は、S411の該当IDについてのCOS上の状態の取得要求(GET)をリソース管理部14に通知する(S412)。この取得要求は、例えば「GET /commonResourceMng/orderManagement/v1/complementOrderState」である。リソース管理部14は、成功応答をアダプタ共通部22に通知する(S413)。
アダプタ共通部22は、S412のGETで取得した状態が中断状態(Held)であるか否かを判定する(S414a)。
S414aでNoなら、アダプタ共通部22は、無効応答をワークフロー部12に通知する(S414)。なお、S414以降の処理はAPIアダプタ部20内でのエラー処理という既存処理であるので、説明を省略する。既存処理は、例えば、該当COSの状態を中断状態(Held)にしてリソース管理部14に通知する処理である。
S414aでYesなら、アダプタ共通部22は、作成応答をワークフロー部12に通知する(S415)。
リソース管理部14は、COSの状態を実行状態(InProgress)にする更新要求(PUT)をアダプタ共通部22に通知する(S421)処理を、非同期処理として起動する(S416)。更新要求は、例えば「PUT /commonResourceMng/orderManagement/v1/complementOrderState state=InProgress」である。アダプタ共通部22は、作成応答をリソース管理部14に通知する(S422)。
アダプタ共通部22は、実行状態(InProgress)を通知する登録要求(POST)を、ワークフロー部12に通知する(S423)。この登録要求は、例えば、「POST /client/listenreventType=orderStateChangeNotification」である。ワークフロー部12は、作成応答をアダプタ共通部22に通知する(S424)。
図9は、図8の処理に続き、アダプタ共通部22が卸サービス30を再開する動作を示すシーケンス図である。
S431〜S436は、アダプタ共通部22がリソース管理部14から、サービスの再開に必要な情報(再開情報)を取得する処理である。
S431では、連携オーダ(ProductOrder)からの情報を取得する取得要求(GET)として、「GET /commonResourceMng/orderManagement/v1/complementOrderState/productOrder」が送信される。S432は、S431への成功応答である。
S433では、mediatorProductからの情報を取得する取得要求(GET)として、「GET /commonResourceMng/productInventoryManagement/v1/mediatorProduct」が送信される。S434は、S433への成功応答である。
S435では、再開情報14a(resumeInfo)からの情報を取得する取得要求(GET)として、「GET /commonResourceMng/orderManagement/v1/complementOrderState/resumeInfo」が送信される。S436は、S435への成功応答である。
アダプタ共通部22は、S431〜S436で取得した情報を元に、障害が発生したAPIを起動する指示を卸サービス30に通知する(S441)。
卸サービス30は、障害が発生したAPI以降の全てのAPIが成功したか否かを判定する(S442a)。
S442aでYesなら、卸サービス30は、成功応答をアダプタ共通部22に送信し(S442)、再開情報14a(resumeInfo)を空に更新する旨の指示をリソース管理部14に通知する(S443)。この指示は、例えば「PUT /commonResourceMng/orderManagement/v1/complementOrderState/resumeInfo」である。S444は、S443への成功応答である。
S442aでNoなら、失敗したAPI(S445)について、卸サービス30からアダプタ共通部22に通知され(S446)、以降の処理は既存のAPIアダプタ実行処理と共通のため省略する。
以上説明した本実施形態では、連携オーダから実行される個々のAPI単位での状態管理をリソース管理部14にて実行しておく。そして、所定のAPIが失敗したことで、連携オーダ全体が中断してしまったときには、所定のAPIより前のAPIについては、前回成功した結果を流用することで、再度の実行をスキップする。
これにより、円滑なロールフォワードで連携オーダを再開させることができるため、ロールバックが不要となる。つまり、ロールバックでは、中断前の実行結果を全部削除して、連携オーダを最初からやり直ししていたのだが、それでは卸サービス30に対してインスタンスを一旦削除してから再作成するなどの無駄なコストを発生させてしまう。一方、本実施形態のロールフォワードでは、そのような無駄なコストを抑制できる。
なお、本実施形態においては、本発明に係るサービス連携装置10の構成として、図1に示すように、3種類の卸サービス30(NWサービス30a、Cloudサービス30b、APLサービス30c)を扱う装置としたが、これらの個数や構成に限定されない。また、本発明では、一般的なコンピュータのハードウェア資源を、サービス連携装置10の各手段として動作させるプログラムによって実現することができる。そして、このプログラムは、通信回線を介して配布したり、CD−ROM等の記録媒体に記録して配布したりすることも可能である。
10 サービス連携装置
11 要求受付部
12 ワークフロー部
13 オーダ再開部
14 リソース管理部
14a 再開情報
20 APIアダプタ部(アダプタ部)
22 アダプタ共通部
23 アダプタ個別部
30 卸サービス
30a NWサービス
30b Cloudサービス
30c APLサービス
50 上位装置

Claims (3)

  1. 複数の卸サービスを連携させるための指示である連携オーダの要求を受け付ける要求受付部と、
    前記連携オーダを実行することにより呼び出される卸サービスの個別の命令ごとに、その実行成否を記録するリソース管理部と、
    前記実行成否が実行否であることで中断された前記連携オーダを再開するときに、前記リソース管理部から既に実行された前記卸サービスの個別の命令の前記実行成否を参照し、実行に成功した前記個別の命令の再実行をスキップしつつ、実行否または未実行である前記個別の命令を実行するオーダ再開部とを有しており、
    前記リソース管理部は、さらに、前記連携オーダを実行することにより呼び出される卸サービスの個別の命令ごとに、その実行結果を再開情報として記録し、
    前記オーダ再開部は、再実行をスキップした前記個別の命令について、前記個別の命令が変数の取得処理であるときは、前回取得した変数を前記再開情報から読み出すことを特徴とする
    連携処理再開装置。
  2. 前記オーダ再開部は、前記要求受付部が前記連携オーダの再開要求を受け付けるのを待ってから、中断された前記連携オーダを再開することを特徴とする
    請求項1に記載の連携処理再開装置。
  3. 連携処理再開装置は、要求受付部と、リソース管理部と、オーダ再開部とを有しており、
    前記要求受付部は、複数の卸サービスを連携させるための指示である連携オーダの要求を受け付け、
    前記リソース管理部は、前記連携オーダを実行することにより呼び出される卸サービスの個別の命令ごとに、その実行成否を記録し、さらに、前記連携オーダを実行することにより呼び出される卸サービスの個別の命令ごとに、その実行結果を再開情報として記録し、
    前記オーダ再開部は、前記実行成否が実行否であることで中断された前記連携オーダを再開するときに、前記リソース管理部から既に実行された前記卸サービスの個別の命令の前記実行成否を参照し、実行に成功した前記個別の命令の再実行をスキップしつつ、実行否または未実行である前記個別の命令を実行し、再実行をスキップした前記個別の命令について、前記個別の命令が変数の取得処理であるときは、前回取得した変数を前記再開情報から読み出すことを特徴とする
    連携処理再開方法。
JP2020516142A 2018-04-23 2019-03-28 連携処理再開装置、および、連携処理再開方法 Active JP6943336B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018081960 2018-04-23
JP2018081960 2018-04-23
PCT/JP2019/013806 WO2019208098A1 (ja) 2018-04-23 2019-03-28 連携処理再開装置、および、連携処理再開方法

Publications (2)

Publication Number Publication Date
JPWO2019208098A1 JPWO2019208098A1 (ja) 2020-12-10
JP6943336B2 true JP6943336B2 (ja) 2021-09-29

Family

ID=68295221

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020516142A Active JP6943336B2 (ja) 2018-04-23 2019-03-28 連携処理再開装置、および、連携処理再開方法

Country Status (3)

Country Link
US (1) US11995706B2 (ja)
JP (1) JP6943336B2 (ja)
WO (1) WO2019208098A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230069449A1 (en) * 2020-02-04 2023-03-02 Nippon Telegraph And Telephone Corporation History management apparatus, history management method, and program
US20230316191A1 (en) * 2020-07-02 2023-10-05 Nippon Telegraph And Telephone Corporation Workflow consistency ensuring device, workflow consistency ensuring method, and workflow consistency ensuring program
WO2022040591A1 (en) * 2020-08-20 2022-02-24 Simetric, Inc. Notification management systems and methods
JP7196262B1 (ja) 2021-10-25 2022-12-26 エヌ・ティ・ティ・コミュニケーションズ株式会社 サービス提供システムおよびサービス提供方法
JP7296515B2 (ja) * 2021-10-25 2023-06-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 サービス提供システムおよびサービス提供方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000068856A2 (en) * 1999-05-11 2000-11-16 Webvan Group, Inc. Electronic commerce enabled delivery system and method
US7797195B2 (en) * 1999-09-17 2010-09-14 Michael Jay Langhammer Merchant-affiliated direct wholesale marketing and fulfillment system
JP2001256405A (ja) * 2000-03-10 2001-09-21 Toa Musen Denki Kk インターネット通販における物流回収代行システム
JP4158649B2 (ja) 2003-08-13 2008-10-01 富士ゼロックス株式会社 連携処理装置及びプログラム
JP2008032897A (ja) 2006-07-27 2008-02-14 Epson Imaging Devices Corp 液晶表示装置
AU2013263030A1 (en) * 2012-05-18 2014-11-27 Aquto Corporation Charging and billing for content, services, and access
US20130336210A1 (en) * 2012-06-15 2013-12-19 Telefonaktiebolaget L M Ericsson (Publ) Wholesale partner and video services enablement using a mobile virtual network enabler (MVNE)
US10521851B2 (en) * 2014-12-24 2019-12-31 Keep Holdings, Inc. Multi-site order fulfillment with single gesture
WO2016150524A1 (en) * 2015-03-24 2016-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for managing a service chain in a communication network
EP3182355A1 (en) * 2015-12-16 2017-06-21 Mastercard International Incorporated A method and system of processing a transaction on a server
JP6463702B2 (ja) 2016-02-10 2019-02-06 日本電信電話株式会社 サービス予約装置およびサービス予約方法
JP6499622B2 (ja) * 2016-08-22 2019-04-10 日本電信電話株式会社 事業者間一括サービス構築装置及び事業者間一括サービス構築方法
US20180232786A1 (en) * 2016-12-28 2018-08-16 Ingram Micro Inc. System and method for matching revenue streams in a cloud service broker platform
US10643178B1 (en) * 2017-06-16 2020-05-05 Coupa Software Incorporated Asynchronous real-time procurement system

Also Published As

Publication number Publication date
US20210256593A1 (en) 2021-08-19
WO2019208098A1 (ja) 2019-10-31
JPWO2019208098A1 (ja) 2020-12-10
US11995706B2 (en) 2024-05-28

Similar Documents

Publication Publication Date Title
JP6943336B2 (ja) 連携処理再開装置、および、連携処理再開方法
CN110768833B (zh) 基于kubernetes的应用编排部署方法及装置
KR101970839B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
US6971095B2 (en) Automatic firmware version upgrade system
JP4545225B2 (ja) システム管理装置、計算機システム、制御方法、および制御プログラム
KR101865432B1 (ko) 메시지 큐 관리
US10896071B2 (en) Partial reading of input files to process business objects
US20080244552A1 (en) Upgrading services associated with high availability systems
EP0944204A2 (en) Apparatus, methods, and computer program products for transactional support of network management operations
US6226694B1 (en) Achieving consistency and synchronization among multiple data stores that cooperate within a single system in the absence of transaction monitoring
JP5444178B2 (ja) バックアップ・リストア処理装置とバックアップ・リストア処理方法およびプログラム
CN110262873B (zh) 容器应用的配置修改方法、装置、计算机设备及存储介质
WO2009089746A1 (fr) Procédé, dispositif et système de réalisation d'une tâche dans un environnement de grappes
US8301750B2 (en) Apparatus, system, and method for facilitating communication between an enterprise information system and a client
JP3901060B2 (ja) アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム
CN111666134A (zh) 一种分布式任务调度的方法和系统
US20240054054A1 (en) Data Backup Method and System, and Related Device
CN113934711B (zh) 一种自动化部署gbase8s集群的方法
JP5163179B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2500598B2 (ja) ネットワ―ク管理システムの障害自動復旧方法
JP7060077B2 (ja) サービス連携装置、および、サービス連携方法
JP2016018350A (ja) バッチサーバメンテナンス方法
JP2024075841A (ja) ファームウェア管理装置
JP2004206298A (ja) ジョブ処理システム及びプログラム
JP2020136803A (ja) 処理システム、処理方法、上位システム、下位システム、上位プログラムおよび下位プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210511

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210823

R150 Certificate of patent or registration of utility model

Ref document number: 6943336

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150