JP7147347B2 - 原子性保証装置および原子性保証方法 - Google Patents

原子性保証装置および原子性保証方法 Download PDF

Info

Publication number
JP7147347B2
JP7147347B2 JP2018149980A JP2018149980A JP7147347B2 JP 7147347 B2 JP7147347 B2 JP 7147347B2 JP 2018149980 A JP2018149980 A JP 2018149980A JP 2018149980 A JP2018149980 A JP 2018149980A JP 7147347 B2 JP7147347 B2 JP 7147347B2
Authority
JP
Japan
Prior art keywords
service
cancellation
atomicity
api
request
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
JP2018149980A
Other languages
English (en)
Other versions
JP2020027308A (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
Priority to JP2018149980A priority Critical patent/JP7147347B2/ja
Priority to US17/267,170 priority patent/US11995482B2/en
Priority to PCT/JP2019/029378 priority patent/WO2020031744A1/ja
Publication of JP2020027308A publication Critical patent/JP2020027308A/ja
Application granted granted Critical
Publication of JP7147347B2 publication Critical patent/JP7147347B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、原子性保証装置および原子性保証方法に関する。
特許文献1には、「ユーザに通信を提供する端末機からの通信サービス利用のためのオーダ要求に応じて、卸サービス事業者毎に通信サービスAPIで公開される各々異なる1つの通信サービスを1又は複数一括して提供する事業者間一括サービス構築装置であって、通信の卸サービスの仕様が記述されたカタログと、各種の通信サービスの連携を定めた連携ルールとを保持し、前記端末機から複数の通信サービス利用のオーダ要求があった場合に、前記保持された前記カタログ及び前記連携ルールに基づき、当該オーダ要求された複数の通信サービスに対応する前記通信サービスAPIを一括に連携させて連携サービスを構築し、この構築された連携サービスを前記端末機へ提供する一括構築機能部を備えることを特徴とする事業者間一括サービス構築装置」について開示されている。
また、非特許文献1には、データベースにおけるトランザクションの原子性(Atomicity)のこと、および、トランザクションの原子性を保証する機能としてのコミットメント制御機能について開示されている。コミットメント制御機能は、すべてのデータ更新を予約し、すべてのデータ更新が可能であることを確認した後、データ更新を実行し(コミット)、更新不可のデータが1つでもある場合予約したデータ更新を取り消す(ロールバック)機能である。
特開2018-32897号公報(請求項1)
"ISO/IEC 10026-1:1998(en) Information technology - Open Systems Interconnection - Distributed Transaction Processing - Part1: OSI TP Model"、[online]、[平成30年7月26日検索]、インターネット〈URL:https://www.iso.org/obp/ui/#iso:std:iso-iec:10026:-1:ed-2:v1:en〉
特許文献1の事業者間一括サービス構築装置は、複数種類のサービスが公開するWeb API(Web Application Programming Interface。以下、「API」と呼ぶ)を組み合わせたサービスを連携サービスとして構築したり運用したりする連携サービス実行装置である。実行される連携サービスには原子性が求められる。つまり、サービス事業者が連携サービスの実行を要求する場合には、一部のAPIで障害が発生しエラー応答があったとき、他の一部のAPIが実行された状態を禁止しなければならない。
連携サービスを構成する複数種類のサービスは、すべてが実行処理済であるか、または、すべてが実行未処理であるか、の2状態しか許容されない。このような考え方は、非特許文献1のトランザクションの原子性に類似する。例えば、口座の預金引き出し処理を例にとると、預金の引き出し処理と、預金残高の更新処理とはどちらも完了していなければならず、片方の処理のみ完了することは許容されない。
従来の連携サービス実行装置は、連携サービスを構成する特定のサービスのAPIが何らかの障害に起因してエラー応答を返した場合、連携サービスの実行を中断する(Held)。しかし、エラー応答を返したサービス以外のサービスについては、APIが正常応答し更新処理が完了してしまっている場合がある。この場合、連携サービスの原子性が損なわれる。特許文献1を含め、従来の連携サービス実行装置は、連携サービスの原子性を保証する手段について記載も示唆も無い。
また、連携サービスの場合、連携対象のサービス(API)が多様であるためコミットメント制御機能の「予約」の考え方を一律に適用することができない。さらに、サービスによって更新処理の取消方法が異なるためロールバックが複雑化する。よって、非特許文献1に記載のコミットメント制御機能は、連携サービスの原子性を保証する手段とはなり得ない。
このような背景に鑑みて、本発明は、連携サービスの原子性を保証することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、連携サービスの原子性を保証する原子性保証装置であって、前記連携サービスを構成する複数種類のサービスの実行要求に対し、前記複数種類のサービスのうち、第1のサービスについてエラー応答があった場合には、前記連携サービスを構成する複数種類のサービスのうち、前記第1のサービス以外となる第2のサービスの更新処理が完了しているか否かを、前記連携サービスを実行する連携サービス実行装置への照会を踏まえて判定する原子性判定部と、前記第2のサービスの更新処理が完了している場合には、完了した、前記第2のサービスの更新処理を取り消すための取消APIリクエストを生成する取消APIリクエスト生成部と、前記生成された取消APIリクエストを、前記第2のサービスを提供するサーバに送信する取消APIリクエスト送信部と、を備え、前記取消APIリクエストは、取消APIメソッドを用いたリクエストであり、前記第2のサービスの更新処理の取消手段を、前記サービスごと、かつ、前記取消APIメソッドごとに記憶するサービス取消情報記憶部、をさらに備える、ことを特徴とする。
また、請求項に記載の発明は、連携サービスの原子性を保証する原子性保証装置における原子性保証方法であって、前記原子性保証装置は、前記連携サービスを構成する複数種類のサービスの実行要求に対し、前記複数種類のサービスのうち、第1のサービスについてエラー応答があった場合には、前記連携サービスを構成する複数種類のサービスのうち、前記第1のサービス以外となる第2のサービスの更新処理が完了しているか否かを、前記連携サービスを実行する連携サービス実行装置への照会を踏まえて判定するステップと、前記第2のサービスの更新処理が完了している場合には、完了した、前記第2のサービスの更新処理を取り消すための取消APIリクエストを生成するステップと、前記生成された取消APIリクエストを、前記第2のサービスを提供するサーバに送信するステップと、を実行し、前記取消APIリクエストは、取消APIメソッドを用いたリクエストであり、前記第2のサービスの更新処理の取消手段を、前記サービスごと、かつ、前記取消APIメソッドごとに記憶するステップ、をさらに実行する、ことを特徴とする。
請求項1,に記載の発明によれば、連携サービスを構成する複数種類のサービスの実行要求に対し、複数種類のサービスのうち第1のサービスについてエラー応答があった場合において、連携サービスを構成する複数種類のサービスのうち第1のサービス以外となる第2のサービスの更新処理が完了している場合には、当該更新処理を取り消すことで、連携サービスの状態を実行前の状態に戻すことができる。
したがって、連携サービスの原子性を保証することができる
また、第2のサービスの更新処理の取消手段を、サービスごと、かつ、取消APIメソッドごとに記憶するサービス取消情報記憶部を備えることで、更新処理の取消手段が多様となるサービス群から構成される連携サービスの原子性を保証する手段を提供することができる。
また、請求項2に記載の発明は、請求項1に記載の原子性保証装置であって、前記第2のサービスの更新処理の取消完了を示す状態レポートを生成する状態レポート生成部、をさらに備える、ことを特徴とする。
また、請求項に記載の発明は、請求項に記載の原子性保証方法であって、前記原子性保証装置は、前記第2のサービスの更新処理の取消完了を示す状態レポートを生成するステップ、をさらに実行する、ことを特徴とする。
請求項2,に記載の発明によれば、第2のサービスの更新処理の取消完了を示す状態レポートを生成する状態レポート生成部を備えることで、連携サービスの状態が実行前の状態に戻ったことを連携サービス実行装置に通知することができる。その結果、連携サービス実行装置は、連携サービスの実行を要求したサービス事業者に対して、連携サービスの実行取消を通知することができる。
また、請求項に記載の発明は、請求項1または請求項2に記載の原子性保証装置であって、前記第2のサービスで用いるAPIが、サービスの更新処理が取消不可となる通知系APIである場合には、前記第2のサービスの更新処理の取消手段は、先の通知内容が取り消された旨の通知をする手段である、ことを特徴とする。
請求項に記載の発明によれば、第2のサービスで用いるAPIが、サービスの更新処理が取消不可となる通知系APIであったとしても、実質的に、連携サービスの状態を実行前の状態に戻すことができ、連携サービスの原子性を保証することができる。
本発明によれば、連携サービスの原子性を保証することができる。
本実施形態の原子性保証装置の機能構成図である。 サービス取消情報記憶部のデータ構造図である。 連携サービスの実行を取り消すための一連の処理を示すシーケンス図である。
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)について説明する。
≪構成≫
図1に示すように、本実施形態のシステムは、原子性保証装置1と、連携サービス実行装置2と、サービス事業者端末3と、サーバ41~43とを備える。
原子性保証装置1は、連携サービスの原子性を保証する装置である。原子性保証装置1の詳細は、後記する。
連携サービス実行装置2は、連携サービスを実行する装置である。本実施形態の連携サービス実行装置2は、特許文献1に記載の事業者間一括サービス構築装置であるとするが、これに限定されない。よって、連携サービス実行装置2の詳細な説明は省略する。
サービス事業者端末3は、連携サービスを利用するサービス事業者が用いる端末である。サービス事業者端末3は、連携サービス実行装置2に対し、連携サービスの実行を要求する。
サーバ41~43は、連携サービスを構成する各サービスを卸す卸サービス事業者が用いる装置である。
サーバ41は、サービスAを提供する装置である。サーバ41は、サービスAが公開するAPIであるサービスA_API41aを備える。
サーバ42は、サービスBを提供する装置である。サーバ42は、サービスBが公開するAPIであるサービスB_API42aを備える。
サーバ43は、サービスCを提供する装置である。サーバ43は、サービスCが公開するAPIであるサービスC_API43aを備える。
なお、連携サービス実行装置2は、連携サービスを構成する各サービス(卸サービス)の仕様が記述されたカタログと、当該各サービス間の連携を定めた連携ルールとを保持している。サービス事業者端末3から連携サービス実行の要求があった場合、連携サービス実行装置2は、保持されたカタログおよび連携ルールに基づき、要求された連携サービスを構成する各サービスに対応するAPIを一括に連携させて連携サービスを構築することができる。連携サービスを構成する各サービスのカタログと、当該各サービス間の連携を定めた連携ルールとを纏めたものを「連携サービスカタログ」と呼ぶ場合がある。
また、連携サービス実行装置2は、サービスA_API41a、サービスB_API42a、サービスC_API43aの各々に対応するアダプタを備えている。サービスAが連携サービスを構成するサービスである場合、連携サービス実行装置2は、サーバ41に対してサービスAの実行を要求し、サーバ41から応答を受信する。サービスBが連携サービスを構成するサービスである場合、連携サービス実行装置2は、サーバ42に対してサービスBの実行を要求し、サーバ42から応答を受信する。サービスCが連携サービスを構成するサービスである場合、連携サービス実行装置2は、サーバ43に対してサービスCの実行を要求し、サーバ43から応答を受信する。サーバ41~43の応答は、要求を正常に実行できたことを示す完了応答、および、要求を正常に実行できなかったことを示すエラー応答に分類される。
[原子性保証装置の詳細]
図1に示すように、原子性保証装置1は、連携部11と、連携サービス解析部12と、原子性判定部13と、取消APIリクエスト生成部14と、取消APIリクエスト送信部15と、状態レポート生成部16と、サービス取消情報記憶部Tとを備える。
連携部11は、連携サービス実行装置2と情報のやり取りをするためのインタフェースである。
連携サービス解析部12は、連携サービスを解析する機能部である。連携サービス解析部12は、所定条件下で、連携サービスを構成するサービスから、エラー応答のあったサービス(第1のサービス)以外のサービス(第2のサービス)を抽出する。
原子性判定部13は、連携サービスの原子性を判定する。具体的には、原子性判定部13は、連携サービス解析部12が抽出したサービスのうち、更新処理が完了したサービスが存在するか否かを判定する。存在する場合、原子性判定部13は、連携サービスの原子性が損なわれたと判定する。原子性判定部13は、判定結果を踏まえて、更新処理が完了したサービスを抽出する。
更新処理が完了したサービスが存在するか否かの判定は、判定対象のサービスの更新処理が完了したか否かの判定と同義である。判定対象のサービスの更新処理が完了したか否かは、例えば、当該サービスのカタログ、および、当該サービスに対する実行要求やその応答に基づいて判定することができるが、これに限定されない。
取消APIリクエスト生成部14は、完了した更新処理を取り消すための取消APIリクエストを生成する。取消APIリクエスト生成部14は、サービス取消情報記憶部Tを参照して、原子性判定部13が抽出したサービスで完了した更新処理に応じた(固有の)取消APIリクエストを生成する。
取消APIリクエスト送信部15は、取消要求として、取消APIリクエスト生成部14が生成した取消APIリクエストを、取消対象の更新処理が実行されたサービスを提供するサーバに送信する。
状態レポート生成部16は、連携サービスの状態を示す状態レポートを生成し、連携部11を経由して、連携サービス実行装置2に送信する。具体的には、取消APIリクエスト送信部15から取消要求によって更新処理が取り消された場合、状態レポート生成部16は、当該更新処理の取消完了を示す状態レポートを生成し、連携部11を経由して、連携サービス実行装置2に送信する。連携サービス実行装置2は、状態レポートを利用して、サービス事業者端末3に対し、要求のあった連携サービスの実行取消を通知することができる。なお、例えば、状態レポート生成部16は、更新処理が完了していないサービスについては、当該更新処理を中断した旨を示す状態レポートを生成し、連携部11を経由して、連携サービス実行装置2に送信することができる。
サービス取消情報記憶部Tは、完了した更新処理の取消手段となるサービス取消情報として記憶する。サービス取消情報は、例えば、取消API、または、取消APIに準ずるAPIを生成可能な情報とすることができるが、これらに限定されない。
図2に示すように、サービス取消情報記憶部Tは、複数種類のサービス取消情報をエントリe1~e4、・・・として記憶している。サービス取消情報は、「サービス名」、「HTTPメソッド」、「APIリソース」、「取消APIメソッド」、「取消APIリソース」、および、「取消APIパラメータ情報」(図示の便宜上、図2では、一部内容のみ記載。)といった欄を有している。HTTPは、Hypertext Transfer Protocolの略である。
「サービス名」の欄には、卸サービス事業者が提供するサービスの名称が格納される。
「HTTPメソッド」は、原子性保証装置1からサーバ41~43に対して発行する直接の命令が格納される。
「APIリソース」は、原子性保証装置1が発行するHTTPメソッドによる命令の対象となるリソースが格納される。
「取消APIメソッド」は、取消APIとして機能するHTTPメソッドによる命令が格納される。
「取消APIリソース」は、取消APIメソッドによる命令の対象となるリソースが格納される。
「取消APIパラメータ情報」は、取消APIメソッドによる命令を実行するために必要となるパラメータが格納される。
図2に示すように、完了した更新処理の取消手段は多様であり、サービスごと、かつ、取消APIメソッドごとに異なっており、データベースのコミットメント制御機能(非特許文献1参照)を利用することを妨げる要因となっている。なお、図2中のエントリe2,e3については、取消APIメソッドを実現するためには、連携サービス実行装置2による連携サービス実行前に、GET(注文照会)リクエストにより更新前の注文状態を取得する必要がある。また、エントリe4については、サービスの更新処理が取消不可となる通知系APIを用いたサービスの場合にあっては、通知内容の取消状態を再度通知することとするとよい。つまり、(サービス事業者向けの)先の通知内容が取り消された旨の通知をする。
≪処理≫
本実施形態の原子性保証装置1の処理について、図3を参照して説明する。図3は、連携サービスの実行を取り消すための一連の処理を示すシーケンス図である。図3の処理の対象となる連携サービスは、サービスA~Cを組み合わせたものとして説明する。サービスAを提供するサーバ41、および、サービスCを提供するサーバ43(図示の便宜上、図3では図示略)には障害はなく、連携サービス実行装置2からの要求に正常に応答することができる。一方、サービスBを提供するサーバ42には障害が発生しているため、連携サービス実行装置2からの要求にエラー応答を返すとする。
サービス事業者端末3は、サービス事業者が所望する連携サービスを実行するための連携サービス実行要求を連携サービス実行装置2に送信する(ステップS1)。連携サービス実行装置2は、連携サービス実行要求のあった連携サービスの連携サービスカタログに従い、連携サービスを構成するサービスAについて、サービスAを実行するためのサービスA実行要求をサーバ41に送信する(ステップS2)。サーバ41は、サービスA実行要求を受信すると、サービスA_API41aを実行することで、サービスAの実行が完了したことを示す完了応答(正常応答)を連携サービス実行装置2に送信する(ステップS3)。
同様に、連携サービス実行装置2は、連携サービスを構成するサービスBについて、サービスBを実行するためのサービスB実行要求をサーバ42に送信する(ステップS4)。しかし、サーバ42は、障害に陥っているため、サービスB実行要求を受信しても、サービスB_API42aを実行することができず、サービスAを実行することができないことを示すエラー応答を連携サービス実行装置2に送信する(ステップS5)。
なお、図3には示されていないサービスCについては、サービスAと同等に扱うことができるため、詳細な説明は省略する。連携サービス実行装置2は、サービスC実行要求をサーバ43に送信すれば、サーバ43から完了応答(正常応答)を受信する。
連携サービス実行装置2は、エラー応答があったサービスBについて、再開処理を試行するが、図3の処理では、失敗し、サーバ42から完了応答が得られなかったとする(ステップS6)。再開処理は、例えば、サービスB実行要求をサーバ42に再度送信することを含むが、これに限定されない。連携サービス実行装置2は、サービスBの再開失敗を示す再開失敗通知を原子性保証装置1に送信する(ステップS7)。
原子性保証装置1は、連携サービス解析部12によって、再開失敗通知がなされたサービスBを含む連携サービスの連携サービスカタログを連携サービス実行装置2に照会する(ステップS8)。連携サービス実行装置2は、照会のあった連携サービスカタログを原子性保証装置1に送信する(ステップS9)。
原子性保証装置1は、連携サービス解析部12によって、連携サービス実行装置2から受信した連携サービスカタログを解析し、連携サービスを構成するサービスから、連携サービスに含まれるサービスB以外のサービスを抽出する(ステップS10)。具体的には、原子性保証装置1は、連携サービスカタログから、サービスB以外の、正常応答済のサービスA(および説明略のサービスC)のAPIを抽出する。
原子性保証装置1は、抽出したサービスAについて、サービスAカタログを連携サービス実行装置2に照会するとともに、サービスA要求&応答を連携サービス実行装置2に照会する(ステップS11)。サービスAカタログとは、サービスAに関するカタログであり、連携サービス実行装置2が保持する。サービスA要求&応答は、連携サービス実行装置2とサーバ41との間でなされたやり取りの履歴であり、連携サービス実行装置2が保持する。連携サービス実行装置2は、ステップS11の照会に対し、サービスAカタログ、および、サービスA要求&応答を原子性保証装置1に送信する(ステップS12)。
原子性保証装置1は、原子性判定部13によって、サービスAカタログおよびサービスA要求&応答に基づいて、サービスAに関する更新処理を示すサービスA更新処理が完了しているか否かを判定する(ステップS13)。図3の処理では、サービスA更新処理は完了しているとして説明を続ける。
原子性保証装置1は、取消APIリクエスト生成部14によって、完了した、サービスA更新処理の取消APIリクエストを生成する(ステップS14)。取消APIリクエスト生成部14は、サービス取消情報記憶部T(図2)を参照して、サービスA更新処理の取り消しに必要となる取消APIメソッドを選択することで、取消APIリクエストを生成することができる。
なお、サービスCに関して、原子性判定部13が、サービスCに関する更新処理を示すサービスC更新処理が完了していると判定した場合には、取消APIリクエスト生成部14は、完了したサービスC更新処理の取消APIリクエストを生成する。
原子性保証装置1は、取消APIリクエスト送信部15によって、取消APIリクエスト生成部14が生成した、サービスA更新処理の取消APIリクエストを含む取消要求をサーバ41に送信する(ステップS15)。サーバ41は、取消要求を受信すると、取消APIリクエストに従って、サービスA更新処理の取消処理を実行することで、サービスAの更新処理の取り消しが完了したことを示す完了応答(取消完了)を原子性保証装置1に送信する(ステップS16)。
原子性保証装置1は、状態レポート生成部16によって、サービスA更新処理の取消完了を示す状態レポートを生成する。また、原子性保証装置1は、生成した状態レポートを含む状態通知(例:取消完了)を、連携部11を経由して、連携サービス実行装置2に送信する(ステップS17)。
連携サービス実行装置2は、原子性保証装置1から受信した状態通知に応じて、サービス事業者端末3から要求のあった連携サービスの実行を取り消したことを示す状態通知(例:連携サービス実行取消)をサービス事業者端末3に送信する(ステップS18)。連携サービス実行装置2は、サービス事業者端末3に対し、サービスBがエラー状態にあることを通知してもよい。
以上で、図3の処理が終了する。
≪まとめ≫
本実施形態によれば、連携サービスを構成する複数種類のサービスの実行要求に対し、複数種類のサービスのうち第1のサービスについてエラー応答があった場合において、連携サービスを構成する複数種類のサービスのうち第1のサービス以外となる第2のサービスの更新処理が完了している場合には、当該更新処理を取り消すことで、連携サービスの状態を実行前の状態に戻すことができる。
したがって、連携サービスの原子性を保証することができる。
また、第2のサービスの更新処理の取消完了を示す状態レポートを生成する状態レポート生成部16を備えることで、連携サービスの状態が実行前の状態に戻ったことを連携サービス実行装置に通知することができる。その結果、連携サービス実行装置は、連携サービスの実行を要求したサービス事業者に対して、連携サービスの実行取消を通知することができる。
また、第2のサービスの更新処理の取消手段を、サービスごと、かつ、取消APIメソッドごとに記憶するサービス取消情報記憶部Tを備えることで、更新処理の取消手段が多様となるサービス群から構成される連携サービスの原子性を保証する手段を提供することができる。
また、第2のサービスで用いるAPIが、サービスの更新処理が取消不可となる通知系APIであったとしても、実質的に、連携サービスの状態を実行前の状態に戻すことができ、連携サービスの原子性を保証することができる。
(その他)
(a)本実施形態では、原子性保証装置1と連携サービス実行装置2とを別体の装置として説明したが、例えば、連携サービス実行装置2が原子性保証装置1を含む構成をとってもよい。
(b)本実施形態では、原子性保証装置1が連携サービス実行装置2に、サービスカタログやサービス要求&応答を照会することで、サービスの更新処理が完了しているか否かの判定を行った(図3のステップS11~ステップS13)。しかし、サービスの更新処理が完了しているか否かの判定方法は上記に限らず、例えば、サーバ41~43とやり取りした連携サービス実行装置2自身が、各サービスの更新処理が完了しているか否かの判定をし、原子性保証装置1からの照会があれば当該判定結果を原子性保証装置1に通知するようにしてもよい。
(c)各実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
1 原子性保証装置
11 連携部
12 連携サービス解析部
13 原子性判定部
14 取消APIリクエスト生成部
15 取消APIリクエスト送信部
16 状態レポート生成部
T サービス取消情報記憶部
2 連携サービス実行装置
3 サービス事業者端末
41~43 サーバ
41a サービスA_API
42a サービスB_API
43a サービスC_API

Claims (5)

  1. 連携サービスの原子性を保証する原子性保証装置であって、
    前記連携サービスを構成する複数種類のサービスの実行要求に対し、前記複数種類のサービスのうち、第1のサービスについてエラー応答があった場合には、前記連携サービスを構成する複数種類のサービスのうち、前記第1のサービス以外となる第2のサービスの更新処理が完了しているか否かを、前記連携サービスを実行する連携サービス実行装置への照会を踏まえて判定する原子性判定部と、
    前記第2のサービスの更新処理が完了している場合には、完了した、前記第2のサービスの更新処理を取り消すための取消APIリクエストを生成する取消APIリクエスト生成部と、
    前記生成された取消APIリクエストを、前記第2のサービスを提供するサーバに送信する取消APIリクエスト送信部と、を備え
    前記取消APIリクエストは、取消APIメソッドを用いたリクエストであり、
    前記第2のサービスの更新処理の取消手段を、前記サービスごと、かつ、前記取消APIメソッドごとに記憶するサービス取消情報記憶部、をさらに備える、
    ことを特徴とする原子性保証装置。
  2. 前記第2のサービスの更新処理の取消完了を示す状態レポートを生成する状態レポート生成部、をさらに備える、
    ことを特徴とする請求項1に記載の原子性保証装置。
  3. 前記第2のサービスで用いるAPIが、サービスの更新処理が取消不可となる通知系APIである場合には、前記第2のサービスの更新処理の取消手段は、先の通知内容が取り消された旨の通知をする手段である、
    ことを特徴とする請求項1または請求項2に記載の原子性保証装置。
  4. 連携サービスの原子性を保証する原子性保証装置における原子性保証方法であって、
    前記原子性保証装置は、
    前記連携サービスを構成する複数種類のサービスの実行要求に対し、前記複数種類のサービスのうち、第1のサービスについてエラー応答があった場合には、前記連携サービスを構成する複数種類のサービスのうち、前記第1のサービス以外となる第2のサービスの更新処理が完了しているか否かを、前記連携サービスを実行する連携サービス実行装置への照会を踏まえて判定するステップと、
    前記第2のサービスの更新処理が完了している場合には、完了した、前記第2のサービスの更新処理を取り消すための取消APIリクエストを生成するステップと、
    前記生成された取消APIリクエストを、前記第2のサービスを提供するサーバに送信するステップと、を実行し、
    前記取消APIリクエストは、取消APIメソッドを用いたリクエストであり、
    前記第2のサービスの更新処理の取消手段を、前記サービスごと、かつ、前記取消APIメソッドごとに記憶するステップ、をさらに実行する、
    ことを特徴とする原子性保証方法。
  5. 前記原子性保証装置は、
    前記第2のサービスの更新処理の取消完了を示す状態レポートを生成するステップ、をさらに実行する、
    ことを特徴とする請求項に記載の原子性保証方法。
JP2018149980A 2018-08-09 2018-08-09 原子性保証装置および原子性保証方法 Active JP7147347B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018149980A JP7147347B2 (ja) 2018-08-09 2018-08-09 原子性保証装置および原子性保証方法
US17/267,170 US11995482B2 (en) 2018-08-09 2019-07-26 Atomicity assurance device and atomicity assurance method
PCT/JP2019/029378 WO2020031744A1 (ja) 2018-08-09 2019-07-26 原子性保証装置および原子性保証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018149980A JP7147347B2 (ja) 2018-08-09 2018-08-09 原子性保証装置および原子性保証方法

Publications (2)

Publication Number Publication Date
JP2020027308A JP2020027308A (ja) 2020-02-20
JP7147347B2 true JP7147347B2 (ja) 2022-10-05

Family

ID=69415247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018149980A Active JP7147347B2 (ja) 2018-08-09 2018-08-09 原子性保証装置および原子性保証方法

Country Status (3)

Country Link
US (1) US11995482B2 (ja)
JP (1) JP7147347B2 (ja)
WO (1) WO2020031744A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2022003911A1 (ja) * 2020-07-02 2022-01-06

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338197A (ja) 2005-05-31 2006-12-14 Fujitsu Ltd トランザクション制御プログラム、トランザクション制御方法及びトランザクション処理システム
JP2018032897A (ja) 2016-08-22 2018-03-01 日本電信電話株式会社 事業者間一括サービス構築装置及び事業者間一括サービス構築方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
US8468042B2 (en) * 2006-06-05 2013-06-18 International Business Machines Corporation Method and apparatus for discovering and utilizing atomic services for service delivery
US20140278715A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Estimating required time for process granularization
CN105094758A (zh) * 2014-04-29 2015-11-25 国际商业机器公司 用于避免事务回滚的方法和装置
JP6402537B2 (ja) * 2014-08-22 2018-10-10 富士通株式会社 更新処理プログラム、装置、及び方法
US10025802B2 (en) * 2014-09-19 2018-07-17 Amazon Technologies, Inc. Automated configuration of log-coordinated storage groups
JP2016066224A (ja) * 2014-09-24 2016-04-28 富士通株式会社 更新プログラム、更新方法及び更新装置
US10719414B2 (en) * 2018-05-11 2020-07-21 Cisco Technology, Inc. Rollback for cloud native workflows

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338197A (ja) 2005-05-31 2006-12-14 Fujitsu Ltd トランザクション制御プログラム、トランザクション制御方法及びトランザクション処理システム
JP2018032897A (ja) 2016-08-22 2018-03-01 日本電信電話株式会社 事業者間一括サービス構築装置及び事業者間一括サービス構築方法

Also Published As

Publication number Publication date
US11995482B2 (en) 2024-05-28
JP2020027308A (ja) 2020-02-20
US20210303374A1 (en) 2021-09-30
WO2020031744A1 (ja) 2020-02-13

Similar Documents

Publication Publication Date Title
US10649761B2 (en) Application upgrade method and apparatus
US8874640B2 (en) Method and system for reducing service overhead in service oriented architectures
JP6639245B2 (ja) サーバシステム、サーバシステムを制御する方法およびプログラム。
CN108681777A (zh) 一种基于分布式***的机器学习程序运行的方法和装置
JP2003186696A (ja) システムのリスク診断方法及びプログラム並びに装置
JP2013097548A (ja) 情報処理システム、情報処理装置、クライアント端末、情報処理方法、及びプログラム
WO2019208098A1 (ja) 連携処理再開装置、および、連携処理再開方法
JP4336735B1 (ja) サービス処理装置、システム、プログラム及び記録媒体
CN103562853B (zh) 用于管理程序代码的实例的方法和***
JP7147347B2 (ja) 原子性保証装置および原子性保証方法
EP2131279B1 (en) System and method for a generic integration of a database into a high availability cluster
US20150269498A1 (en) Double-booking prevention
CN109729177B (zh) 用于生成信息的方法和装置
JP4259427B2 (ja) サービス処理システムおよびその処理方法並びにその処理プログラム
JP6169485B2 (ja) 分散処理システム
JP2017167842A (ja) トランザクション制御システムおよびトランザクション制御方法
JP2013149170A (ja) 修正プログラム提供システム及びプログラム
EP3123411A1 (en) Double-processing prevention
US20040122720A1 (en) Meta-coordination of distributed computations
Maciel et al. Fault‐tolerant timestamp‐based two‐phase commit protocol for RESTful services
JP2007517279A (ja) 通信オブジェクト間で結果を送信するための非同期自動デバイス及び方法
WO2019216194A1 (ja) サービス連携装置および通知方法
JP2010072952A (ja) サービス処理装置、システム、プログラム及び記録媒体
Johansson Message-Oriented Middleware as a Queue Management Solution to Improve Job Handling within an E-Commerce System
JP2005208985A (ja) 指示記述内容変更装置及び方法、指示記述内容変更プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220406

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220905

R150 Certificate of patent or registration of utility model

Ref document number: 7147347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150