JP4599456B2 - Service processing apparatus, system, program, and recording medium - Google Patents

Service processing apparatus, system, program, and recording medium Download PDF

Info

Publication number
JP4599456B2
JP4599456B2 JP2009217653A JP2009217653A JP4599456B2 JP 4599456 B2 JP4599456 B2 JP 4599456B2 JP 2009217653 A JP2009217653 A JP 2009217653A JP 2009217653 A JP2009217653 A JP 2009217653A JP 4599456 B2 JP4599456 B2 JP 4599456B2
Authority
JP
Japan
Prior art keywords
service
processing
processing result
unit
level
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.)
Expired - Fee Related
Application number
JP2009217653A
Other languages
Japanese (ja)
Other versions
JP2010073211A (en
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2009217653A priority Critical patent/JP4599456B2/en
Publication of JP2010073211A publication Critical patent/JP2010073211A/en
Application granted granted Critical
Publication of JP4599456B2 publication Critical patent/JP4599456B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はサービス処理装置、システム、プログラム及び記録媒体に係り、特に、要求されたサービスを実行するサービス処理装置、該サービス処理装置を複数備えたサービス処理システム、コンピュータを前記サービス処理装置として機能させるためのサービス処理プログラム、及び、当該サービス処理プログラムが記録された記録媒体に関する。   The present invention relates to a service processing device, a system, a program, and a recording medium, and in particular, a service processing device that executes a requested service, a service processing system that includes a plurality of the service processing devices, and a computer that functions as the service processing device. And a recording medium on which the service processing program is recorded.

近年、大規模なシステムを「サービス」の集まりとして構築する設計手法であるSOA(Service Oriented Architecture:サービス指向アーキテクチャ)が普及してきている。このSOAに関連して特許文献1には、多くのデータベースを有するシステムにSOAを適用して連携させる場合に、多くのデータベースに亘るデータ整合性の確立について述べられている。   In recent years, SOA (Service Oriented Architecture), which is a design method for constructing a large-scale system as a collection of “services”, has become widespread. In relation to this SOA, Patent Document 1 describes the establishment of data consistency across many databases when the SOA is applied to a system having many databases and linked.

また特許文献2には、SOAモデルを実現するウェブサービスを実行するコンピュータにおいて、認証・権限処理のための制御の流れをサービス提供処理の流れと独立して設けることにより、サービスと、そのサービスに対する認証・権限処理サービスの疎結合を実現する技術が開示されている。   Further, in Patent Document 2, in a computer that executes a web service that realizes the SOA model, a control flow for authentication / authorization processing is provided independently of a flow of service providing processing, so that the service and the service A technique for realizing loose coupling of authentication / authorization processing services is disclosed.

また特許文献3には、サービスIDを含むサービス定義、ビジネスプロセスID及びサービスIDの対応情報を示しビジネスプロセス定義を格納しておき、入力されたサービスを検索キーとしてサービス定義を検索しサービスIDを取得し、当該サービスIDを検索キーとしてビジネスプロセス定義を検索しビジネスプロセスIDを取得し、対応する情報を出力する技術が開示されている。   Patent Document 3 stores a service definition including a service ID, correspondence information between the business process ID and the service ID, stores the business process definition, searches the service definition using the input service as a search key, and sets the service ID. A technique for acquiring, retrieving a business process definition by using the service ID as a search key, acquiring the business process ID, and outputting corresponding information is disclosed.

特表2008−511934号公報Special table 2008-511934 gazette 特開2006−72548号公報JP 2006-72548 A 特開2007−304951号公報JP 2007-304951 A

SOAを適用して構築されたコンピュータ・システムは、機能単位でプログラムが分割されると共に、分割した個々の機能のうちの一部機能を実現するプログラムが既に開発済みであれば、開発済みのプログラムを流用して構築されるので、互いに異なる機能を実現するプログラム(サービス処理部)が疎結合によって複数段連結され、コンピュータ・システムに入力された個々のサービス要求を複数段のサービス処理部が連携して処理する構成となることが一般的である。このような構成のコンピュータ・システムで障害が発生した場合、個々のサービス処理部が保持するデータや、異なるサービス処理部に接続されたデータベース(DB)が保持するデータに不整合が生じる可能性がある。   In a computer system constructed by applying SOA, a program is divided into functional units, and if a program that realizes a part of the divided individual functions has already been developed, the developed program Because it is constructed by diverting the system, programs (service processing units) that realize different functions from each other are connected in multiple stages by loose coupling, and each stage of service requests input to the computer system is linked by multiple stages of service processing units In general, the processing is performed. When a failure occurs in a computer system having such a configuration, there is a possibility that inconsistency may occur in data held by individual service processing units or data held in a database (DB) connected to a different service processing unit. is there.

これに対し、サービス処理部が複数段連結された構成のコンピュータ・システムにデータの整合性を保証するための機能を設けようとすると、システムの設計や開発が非常に複雑となり、多大な工数を必要とするという問題がある。そして特許文献1〜3には、上述した問題を解決する技術は何ら開示されていない。   On the other hand, if a computer system with multiple stages of service processing units is provided with a function to guarantee data consistency, the design and development of the system becomes very complicated, and a large amount of man-hours are required. There is a problem of need. Patent Documents 1 to 3 do not disclose any technique for solving the above-described problem.

本発明は上記事実を考慮して成されたもので、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現できるサービス処理装置、サービス処理システム、サービス処理プログラム及び記録媒体を得ることが目的である。   The present invention has been made in consideration of the above facts, and has a simple configuration and can easily realize data consistency when a failure occurs, a service processing apparatus, a service processing system, a service processing program, and a recording medium Is the purpose.

上記目的を達成するために請求項1記載の発明に係るサービス処理装置は、コンピュータによって実現され、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置であって、サービスIDが付加されたサービス要求を受信することでサービスの実行が要求されると、実行が要求されたサービスに関する処理として、実行が要求されたサービスに対応する自サービスが存在する場合は、当該自サービスの処理を行い、自サービスの処理結果を前記サービスIDと対応付けて記憶手段に記憶させると共に、実行が要求されたサービスに対応する下位サービスが存在する場合は、前記下位サービスのサービスIDを生成し生成したサービスIDを付加したサービス要求を下位のサービス処理装置へ送信し、かつ前記下位サービスの処理結果を前記生成したサービスIDと対応付けて前記記憶手段に記憶させる処理を行い、サービス要求の送信元へ応答を送信する第1機能、サービスIDが付加された処理結果確認要求を受信することでサービスの処理結果の確認が要求されると、前記記憶手段に記憶されている情報に基づいて、処理結果の確認が要求されたサービスに対応するサービスの処理結果を確認し、対応する下位サービスの処理結果の確認が必要な場合は、対応する下位サービスのサービスIDを付加した処理結果確認要求を下位のサービス処理装置に送信し、処理結果の確認が終了すると確認した処理結果を処理結果確認要求の送信元へ送信する第2機能、及び、以前に受信したサービス要求と同一のサービスIDが付加されたサービス要求を受信することで、以前に実行が要求されたサービスの再実行が要求されると、再実行が要求されたサービスに対応する1つ以上のサービスのうち、冪等性を有する下位サービスについては、前記冪等性を有する下位サービスの処理結果を確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へサービス要求を送信し、冪等性を有しない非冪等の下位サービスについては、前記非冪等の下位サービスの処理結果を確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信することで処理結果の確認を再度試行し、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を再度確認する処理を行い、当該処理が終了するとサービス要求の送信元へ確認した処理結果に応じた応答を送信する第3機能を備えている。 In order to achieve the above object, a service processing apparatus according to the first aspect of the present invention is a service processing apparatus that is realized by a computer and constitutes a service processing system together with another service processing apparatus capable of transmitting and receiving information. When execution of a service is requested by receiving a service request with an ID added, if there is a local service corresponding to the service requested to be executed as a process related to the requested service, Process the service and store the processing result of the service in the storage unit in association with the service ID. If there is a lower service corresponding to the service requested to be executed, the service ID of the lower service is set. A service request with the generated service ID added is transmitted to the lower-level service processing device. A first function for performing processing for storing the processing result of the lower service in association with the generated service ID in the storage means and transmitting a response to the transmission source of the service request, processing result confirmation with the service ID added When confirmation of the processing result of the service is requested by receiving the request, the processing result of the service corresponding to the requested service is confirmed based on the information stored in the storage means. When confirmation of the processing result of the corresponding lower service is necessary, a processing result confirmation request with the service ID of the corresponding lower service is transmitted to the lower service processing apparatus, and the processing confirmed when the confirmation of the processing result is completed A second function for transmitting the result to the processing result confirmation request source, and a service to which the same service ID as the previously received service request is added. When a re-execution of a previously requested service is requested by receiving a service request, a sub service having idempotency among one or more services corresponding to the service requested to be re-executed With respect to the above, without confirming the processing result of the subordinate service having the idempotency, a service request is transmitted to the service processing apparatus that performs the subordinate service having the idempotency, For the subordinate service, the processing result of the non-ideal subordinate service is confirmed. If the confirmed processing result is “unknown” indicating that a response to the service request has not been received, the subordinate subordinate service the process attempts result confirmation request confirmation of the processing result by transmitting again to the service processing unit which performs, only when the "processing unfinished" is obtained as the processing result, the lower of said non-idempotent After transmitting a service request to the service processing apparatus that performs the service, a process for reconfirming the processing result of the subordinate service such as the non-defaming is performed . A third function for transmitting a response is provided.

請求項1記載の発明に係るサービス処理装置はコンピュータによって実現され、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成している。なお、サービス処理システムの典型的な構成は、個々のサービス処理装置が互いに異なるコンピュータによって実現される構成であるが、一部又は全てのサービス処理装置が同一のコンピュータによって実現される構成であってもよい。また、請求項1記載の発明に係るサービス処理装置は、以下で説明する第1機能〜第3機能を各々備えている。   The service processing apparatus according to the first aspect of the present invention is realized by a computer and constitutes a service processing system together with other service processing apparatuses capable of transmitting and receiving information. The typical configuration of the service processing system is a configuration in which each service processing device is realized by different computers, but a part or all of the service processing devices are realized by the same computer. Also good. In addition, the service processing apparatus according to the first aspect of the present invention includes first to third functions described below.

すなわち、本発明に係る第1機能は、サービスIDが付加されたサービス要求を受信することでサービスの実行が要求されると、実行が要求されたサービスに関する処理として、実行が要求されたサービスに対応する自サービスが存在する場合は、当該自サービスの処理を行い、自サービスの処理結果を前記サービスIDと対応付けて記憶手段に記憶させると共に、実行が要求されたサービスに対応する下位サービスが存在する場合は、下位サービスのサービスIDを生成し生成したサービスIDを付加したサービス要求を下位のサービス処理装置へ送信し、かつ下位サービスの処理結果を前記生成したサービスIDと対応付けて記憶手段に記憶させる処理を行い、サービス要求の送信元へ応答を送信する機能である。ここで、サービス処理システムを構成する個々のサービス処理装置に請求項1記載の発明を適用した場合(個々のサービス処理装置が上記の第1機能を各々備えている場合)、最上位のサービス処理装置に対してサービスの実行を要求すると、要求されたサービスに対応する自サービスが存在する場合は、当該自サービスの処理が行われると共に、必要に応じて下位のサービス処理装置へサービス要求が送信され、当該サービス要求を受信したサービス処理装置でも必要に応じて下位にサービス処理装置へサービス要求が送信される。これにより、サービス処理装置の連結数等に拘わらず、サービスの実行が必要に応じて自動的に連鎖することになる。   In other words, when the first function according to the present invention is requested to execute the service by receiving the service request to which the service ID is added, the first function is performed as a process related to the requested service. If there is a corresponding self service, the self service is processed, the processing result of the self service is stored in the storage unit in association with the service ID, and a lower-level service corresponding to the service requested to be executed is If it exists, a service request with the service ID generated and added with the service ID is transmitted to the lower service processing apparatus, and the processing result of the lower service is associated with the generated service ID and stored. This is a function that performs processing to be stored in and sends a response to the transmission source of the service request. Here, when the invention according to claim 1 is applied to each service processing device constituting the service processing system (when each service processing device has the first function described above), the highest-level service processing When requesting the execution of a service to a device, if there is a self-service corresponding to the requested service, the self-service is processed and a service request is transmitted to a lower-level service processing device as necessary. Then, even in the service processing device that has received the service request, the service request is transmitted to the service processing device as needed. As a result, the execution of services is automatically chained as necessary regardless of the number of service processing devices connected.

また、本発明に係る第2機能は、サービスIDが付加された処理結果確認要求を受信することでサービスの処理結果の確認が要求されると、記憶手段に記憶されている情報に基づいて、処理結果の確認が要求されたサービスに対応するサービスの処理結果を確認し、対応する下位サービスの処理結果の確認が必要な場合は、対応する下位サービスのサービスIDを付加した処理結果確認要求を下位のサービス処理装置に送信し、処理結果の確認が終了すると確認した処理結果を処理結果確認要求の送信元へ送信する機能である。ここで、サービス処理システムを構成する個々のサービス処理装置に請求項1記載の発明を適用した場合(個々のサービス処理装置が上記の第2機能を各々備えている場合)、最上位のサービス処理装置に対して処理結果の確認を要求すると、要求されたサービスに関する処理の処理結果が確認され、必要に応じて下位のサービス処理装置へ処理結果確認要求が送信され、当該処理結果確認要求を受信したサービス処理装置でも必要に応じて下位にサービス処理装置へ処理結果確認要求が送信される。これにより、サービス処理装置の連結数等に拘わらず、処理結果確認要求が必要に応じて自動的に連鎖した後に確認した処理結果が通知されるので、障害等の発生により以前のサービス要求に対する応答が返ってきていない等の場合に、以前に実行を要求したサービスの処理結果を確認することが可能となる。   In addition, the second function according to the present invention is based on the information stored in the storage unit when the confirmation of the processing result of the service is requested by receiving the processing result confirmation request to which the service ID is added. Confirm the processing result of the service corresponding to the service for which the confirmation of the processing result is requested, and if it is necessary to confirm the processing result of the corresponding lower service, send a processing result confirmation request with the service ID of the corresponding lower service added. This is a function for transmitting to the lower-level service processing apparatus and transmitting the confirmed processing result to the transmission source of the processing result confirmation request when the confirmation of the processing result is completed. Here, when the invention according to claim 1 is applied to each service processing device constituting the service processing system (when each service processing device has the second function described above), the highest level service processing When requesting confirmation of the processing result from the device, the processing result of the processing related to the requested service is confirmed, and if necessary, the processing result confirmation request is transmitted to the lower-level service processing device, and the processing result confirmation request is received. Even in the service processing apparatus, the processing result confirmation request is transmitted to the service processing apparatus at a lower level as necessary. As a result, regardless of the number of service processing devices connected, etc., the processing result confirmation request is notified after the processing results are automatically chained as necessary. In the case where no is returned, it is possible to check the processing result of the service that has previously requested execution.

また、本発明に係る第3機能は、以前に受信したサービス要求と同一のサービスIDが付加されたサービス要求を受信することで、以前に実行が要求されたサービスの再実行が要求されると、再実行が要求されたサービスに対応する1つ以上のサービスのうち、冪等性を有する下位サービスについては、前記冪等性を有する下位サービスの処理結果を確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へサービス要求を送信し、冪等性を有しない非冪等の下位サービスについては、前記非冪等の下位サービスの処理結果を確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信することで処理結果の確認を再度試行し、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を再度確認する処理を行い、当該処理が終了するとサービス要求の送信元へ確認した処理結果に応じた応答を送信する機能である。 In addition, the third function according to the present invention receives a service request to which the same service ID as the previously received service request is added, so that re-execution of a service that has been requested to be executed is requested. Among the one or more services corresponding to the service requested to be re-executed, for the subordinate service having idempotency, the idempotency is confirmed without confirming the processing result of the subordinate service having idempotency. sends a service request to the service processing apparatus for performing subservice with, for lower-level service for non-idempotent no idempotency, said check the processing result of the lower service non idempotent, confirm the processing result In the case of “unknown” indicating that a response to the service request has not been received, the processing result confirmation request is transmitted to a service processing apparatus that performs the non-defective lower level service. Processing trial result of the check again, as the processing result only when the "processing unfinished" is obtained, the after transmitting the service request to the service processing apparatus for subservice non idempotent, lower the non-idempotent This is a function of performing a process for reconfirming the processing result of the service, and transmitting a response according to the confirmed processing result to the transmission source of the service request when the process ends.

なお、冪等性を有するサービスは、何回実行しても同じ結果が得られるサービスであり、参照系のサービス(例えばデータベースからデータを読み出して出力するサービス等)がこれに該当する。一方、冪等性を有しないサービスは、実行する度に結果が変化するサービスであり、更新系のサービス(例えば実行の都度、データベースのデータに値を加算するサービス等)がこれに該当する。ここで、サービス処理システムを構成する個々のサービス処理装置に請求項1記載の発明を適用した場合(個々のサービス処理装置が上記の第3機能を各々備えている場合)、仮想冪等機能(実際のサービスが冪等性を有しているか否かに拘わらず、サービスの実行が何度要求されても同じ結果が得られるようにする機能)が実現され、障害等の発生により以前に要求したサービスの実行に対する応答が返ってきていない等の場合に、対応する下位サービスの中に冪等性を有しないサービスが存在しているか否かを考慮せずに、サービスの実行を再度要求することが可能となるので、本発明に係るサービス処理装置を含んで構成されたサービス処理システムの構成を簡略化することが可能となる。また、冪等性を有する下位サービスを実行させる際には当該下位サービスの処理結果の確認が省略されるので、サービス処理装置を実現するコンピュータに加わる負荷を軽減することができる。   Note that a service having idempotency is a service that can obtain the same result no matter how many times it is executed, such as a reference service (for example, a service that reads and outputs data from a database). On the other hand, a service that does not have idempotency is a service whose result changes each time it is executed, and an update-type service (for example, a service that adds a value to database data each time it is executed) corresponds to this service. Here, when the invention according to claim 1 is applied to each service processing device constituting the service processing system (when each service processing device has the above third function), a virtual function such as Regardless of whether the actual service is idempotent or not, a function that enables the same result to be obtained no matter how many times the service execution is requested is realized, and is requested before due to the occurrence of a failure, etc. If a response to the execution of the service is not returned, the service execution is requested again without considering whether there is a non-idempotent service among the corresponding lower services. Therefore, it is possible to simplify the configuration of the service processing system configured to include the service processing apparatus according to the present invention. In addition, when executing a subordinate service having idempotency, confirmation of the processing result of the subordinate service is omitted, so that the load on the computer that implements the service processing apparatus can be reduced.

このように、請求項1記載の発明に係るサービス処理装置は、上述した第1機能〜第3機能が設けられていることで、障害発生時にデータの整合性を保証することを容易に実現することができる。また、サービス処理システムを構成する個々のサービス処理装置に請求項1記載の発明を適用した場合、サービス処理システムを構成する個々のサービス処理装置の基本構成を同一とすることができるので、サービス処理システムを簡易な構成とすることができ、設計や開発に要する工数も大幅に削減することができる。従って、請求項1記載の発明によれば、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる。   As described above, the service processing apparatus according to the first aspect of the present invention can easily guarantee data consistency when a failure occurs by providing the first to third functions described above. be able to. Further, when the invention according to claim 1 is applied to the individual service processing devices constituting the service processing system, the basic configuration of the individual service processing devices constituting the service processing system can be made the same. The system can have a simple configuration, and the man-hours required for design and development can be greatly reduced. Therefore, according to the first aspect of the present invention, it is possible to easily realize data consistency when a failure occurs with a simple configuration.

請求項2記載の発明に係るサービス処理装置は、コンピュータによって実現され、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置であって、サービスIDが通知されてサービスの実行が要求されると、実行が要求されたサービスに関する処理を行うサービス実行手段と、サービスの処理結果をサービスIDと対応付けて記憶するための記憶手段を備えた処理結果管理手段と、を備え、前記サービス実行手段は、自装置よりも上位のサービス処理装置が存在する場合はサービス受付手段を備え、サービスIDが付加されたサービス要求を前記サービス受付手段が前記上位のサービス処理装置から受信することでサービスの実行が要求されると、前記実行が要求されたサービスに関する処理を行い、当該処理の処理結果を前記サービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させた後に、前記サービス受付手段によって前記上位のサービス処理装置へ応答を送信し、自装置よりも下位のサービス処理装置が存在する場合は、一意性を有するサービスIDを生成するサービスID生成手段と、サービス呼出手段と、を備え、実行が要求されたサービスが前記下位のサービス処理装置による下位サービスを含むサービスである場合に、前記実行が要求されたサービスに関する処理として、前記サービスID生成手段によって前記下位サービスのサービスIDを生成させ、生成された前記下位サービスのサービスIDを付加したサービス要求を前記サービス呼出手段によって前記下位のサービス処理装置へ送信し、前記サービス呼出手段が前記下位のサービス処理装置から受信した応答によって通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させる処理を行うと共に、冪等性を有する下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記冪等性を有する下位サービスが存在している場合、前記冪等性を有する下位サービスの処理結果を前記処理結果管理手段に確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信し、冪等性を有しない非冪等の下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記非冪等の下位サービスが存在している場合は、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記処理結果管理手段により前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信させることで処理結果の確認を再度試行させ、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に再度確認する処理を行い、当該処理が終了すると前記サービス受付手段によってサービス要求の送信元の前記上位のサービス処理装置へ確認した処理結果に応じた応答を送信し、前記処理結果管理手段は、自装置よりも上位のサービス処理装置が存在する場合は処理結果確認手段を備え、サービスIDが付加された処理結果確認要求を前記処理結果確認手段が前記上位のサービス処理装置から受信することでサービスの処理結果の確認が要求されると、処理結果の確認が要求されたサービスの処理結果を前記サービスIDに基づいて確認し、処理結果の確認が終了すると確認した処理結果を前記処理結果確認手段によって前記上位のサービス処理装置へ通知し、自装置よりも下位のサービス処理装置が存在する場合は結果確認呼出手段を備え、前記下位のサービス処理装置による下位サービスの処理結果の確認が必要な場合に、確認対象の下位サービスのサービスIDを付加した処理結果確認要求を前記結果確認呼出手段によって前記下位のサービス処理装置へ送信し、前記下位のサービス処理装置から前記結果確認呼出手段へ通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記記憶手段に記憶させる。 The service processing device according to the second aspect of the present invention is a service processing device that is realized by a computer and constitutes a service processing system together with another service processing device capable of transmitting and receiving information, and the service ID is notified and the service processing device Service execution means for performing processing related to the requested service when execution is requested, and processing result management means provided with storage means for storing the processing result of the service in association with the service ID. The service execution unit includes a service reception unit when there is a higher-level service processing device than the own device, and the service reception unit receives a service request to which a service ID is added from the higher-level service processing device. When execution of a service is requested, processing related to the requested service is performed. The processing result of the process is associated with the service ID and stored in the storage unit of the processing result management unit, and then a response is transmitted to the higher-level service processing device by the service receiving unit. A service ID generating unit that generates a service ID having uniqueness and a service calling unit when a lower-level service processing device exists, and the service requested to be executed is a lower-level service by the lower-level service processing device When the service is a service including the service request, the service ID generation unit generates a service ID of the lower service as a process related to the service requested to be executed, and a service request to which the generated service ID of the lower service is added. Transmitted by the service calling means to the lower-level service processing device, A process in which the service call means stores the processing result of the lower service notified by the response received from the lower service processing apparatus in the storage means of the processing result management means in association with the service ID of the lower service. A service processing device that performs a lower service having idempotency exists lower than the own device, and a lower service having the idempotency exists in a lower service corresponding to the service requested to be executed If the service call means sends a service request to the service processing apparatus that performs the lower service having the idempotency without confirming the processing result of the lower service having the idempotency with the process result management means. A service processing device that transmits and performs non-ideal subordinate services that do not have idempotency exists lower than its own device, And, if there is a subordinate service such as the non-defective in the subordinate service corresponding to the service requested to be executed, the processing result management means confirms the processing result of the subordinate subordinate service, When the confirmed processing result is “unknown” indicating that the response to the service request has not been received, the processing result management means transmits the processing result confirmation request to the service processing device that performs the non-defective lower level service. The service call means sends the service request to the service processing device that performs the non-defective lower-level service only when the processing result is confirmed again and “processing not yet completed” is obtained as the processing result. After that, a process for reconfirming the processing result of the non-defective lower level service with the processing result management means is performed. The response transmitted in accordance with the processing result of the check to the sender of the upper service processing device of the service requested by said processing result management means, when the upper service processing device than the device itself there is a processing result confirmation And a processing result confirmation request to which the service ID is added is received by the processing result confirmation unit from the higher-level service processing device, so that confirmation of the processing result is requested. The processing result of the service is confirmed based on the service ID, and when the confirmation of the processing result is completed, the confirmed processing result is notified to the upper service processing device by the processing result confirmation means, If there is a service processing device, a result confirmation calling means is provided, and the processing result of the lower service by the lower service processing device is confirmed. If necessary, a processing result confirmation request to which the service ID of the lower-level service to be confirmed is added is transmitted by the result confirmation calling unit to the lower-level service processing unit, and the lower-level service processing unit to the result confirmation calling unit. The notified processing result of the lower service is stored in the storage means in association with the service ID of the lower service.

請求項2記載の発明に係るサービス処理装置は、請求項1記載の発明と同様に、コンピュータによって実現され、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成している。また、請求項2記載の発明に係るサービス処理装置は、上記のサービス実行手段及び処理結果管理手段を各々備えている。   The service processing apparatus according to the second aspect of the present invention is realized by a computer and constitutes a service processing system together with another service processing apparatus capable of transmitting and receiving information, as in the first aspect of the present invention. A service processing apparatus according to a second aspect of the present invention includes the service execution unit and the processing result management unit.

上記構成により、請求項2記載の発明に係るサービス処理装置に対してサービスの実行を要求すると、実行が要求されたサービスに関する処理がサービス実行手段で行われる。また、自装置よりも下位のサービス処理装置が存在し、実行が要求されたサービスが下位のサービス処理装置による下位サービスを含むサービスである場合、実行が要求されたサービスに関する処理として、サービスID生成手段によって下位サービスのサービスIDを生成させ、生成された下位サービスのサービスIDを付加したサービス要求をサービス呼出手段によって下位のサービス処理装置へ送信し、サービス呼出手段が下位のサービス処理装置から受信した応答によって通知された下位サービスの処理結果を、下位サービスのサービスIDと対応付けて処理結果管理手段の記憶手段に記憶させる処理が行われる。これにより、サービス処理システムを構成する個々のサービス処理装置に請求項2記載の発明を適用した場合(個々のサービス処理装置を請求項2記載の発明に係るサービス処理装置で構成した場合)、上位のサービス処理装置からのサービス要求をサービス受付手段で受信した個々のサービス処理装置において、受信したサービス要求に応じてサービス実行手段で上記処理が行われることが繰り返されることで、サービス処理装置の連結数等に拘わらず、サービスの実行が必要に応じて自動的に連鎖することになる。   With the above configuration, when the service processing apparatus according to the second aspect of the present invention is requested to execute the service, the service execution unit performs processing related to the requested service. In addition, when there is a service processing device lower than the own device and the service requested to be executed is a service including a lower service by the lower service processing device, service ID generation is performed as processing related to the service requested to be executed. The service request of the lower service is generated by the means, the service request with the service ID of the generated lower service added is transmitted to the lower service processing apparatus by the service calling means, and the service calling means is received from the lower service processing apparatus. The processing result of the lower service notified by the response is stored in the storage means of the processing result management means in association with the service ID of the lower service. Thus, when the invention according to claim 2 is applied to each service processing apparatus constituting the service processing system (when each service processing apparatus is configured by the service processing apparatus according to the invention according to claim 2), In each service processing device that has received a service request from the service processing device, the service execution unit repeats the above processing in response to the received service request, thereby connecting the service processing devices. Regardless of the number, etc., execution of services is automatically chained as necessary.

また、自装置よりも上位のサービス処理装置が存在する場合、サービス実行手段は、サービスIDが付加されたサービス要求をサービス受付手段が上位のサービス処理装置から受信することで実行が要求されたサービスに関する処理を行い、当該処理の処理結果をサービスIDと対応付けて処理結果管理手段の記憶手段に記憶させた後に、サービス受付手段によって上位のサービス処理装置へ応答を送信する。これにより、サービス処理システムを構成する個々のサービス処理装置に請求項2記載の発明を適用した場合(個々のサービス処理装置を請求項2記載の発明に係るサービス処理装置で構成した場合)、下位のサービス処理装置から応答を受信した個々のサービス処理装置において、サービス実行手段で上記処理が行われ、上位のサービス処理装置へ応答を送信することが繰り返されることで、サービス処理装置の連結数等に拘わらず、サービス要求に対する応答も自動的に連鎖することになる。   In addition, when there is a higher-level service processing device than the own device, the service execution unit receives the service request to which the service ID is added from the higher-level service processing device, and the service execution unit requests the service to be executed. The processing result of the processing is associated with the service ID and stored in the storage unit of the processing result management unit, and then a response is transmitted to the higher-level service processing device by the service reception unit. Thus, when the invention according to claim 2 is applied to each service processing apparatus constituting the service processing system (when each service processing apparatus is configured with the service processing apparatus according to the invention according to claim 2), In each service processing device that receives a response from the service processing device, the above processing is performed by the service execution unit, and the response is repeatedly transmitted to the higher-level service processing device, so that the number of service processing devices connected, etc. Regardless, responses to service requests are automatically chained.

また、請求項2記載の発明に係るサービス処理装置は サービスの処理結果をサービスIDと対応付けて記憶するための記憶手段を備えた処理結果管理手段を備えているが、処理結果管理手段は、自装置よりも上位のサービス処理装置が存在する場合、サービスIDが付加された処理結果確認要求を処理結果確認手段が前記上位のサービス処理装置から受信することでサービスの処理結果の確認が要求されると、処理結果の確認が要求されたサービスの処理結果を前記サービスIDに基づいて確認する。また、自装置よりも下位のサービス処理装置が存在し、かつ下位のサービス処理装置による下位サービスの処理結果の確認が必要な場合、処理結果管理手段は、確認対象の下位サービスのサービスIDを付加した処理結果確認要求を結果確認呼出手段によって下位のサービス処理装置へ送信する。これにより、サービス処理システムを構成する個々のサービス処理装置に請求項2記載の発明を適用した場合(個々のサービス処理装置を請求項2記載の発明に係るサービス処理装置で構成した場合)、上位のサービス処理装置からの処理結果確認要求を処理結果確認手段で受信した個々のサービス処理装置において、受信した処理結果確認要求に応じて処理結果管理手段で上記処理が行われることが繰り返されることで、サービス処理装置の連結数等に拘わらず、処理結果の確認要求が必要に応じて自動的に連鎖することになる。   Further, the service processing apparatus according to the second aspect of the invention includes a processing result management unit including a storage unit for storing a service processing result in association with a service ID. When there is a higher-level service processing device than the own device, the processing result confirmation means receives the processing result confirmation request with the service ID added from the higher-level service processing device, so that confirmation of the processing result of the service is requested. Then, the processing result of the service for which the confirmation of the processing result is requested is confirmed based on the service ID. If there is a lower-level service processing device than the own device and it is necessary to check the processing result of the lower-level service by the lower-level service processing device, the processing result management means adds the service ID of the lower-level service to be checked The processed result confirmation request is transmitted to the lower-level service processing device by the result confirmation calling means. Thus, when the invention according to claim 2 is applied to each service processing apparatus constituting the service processing system (when each service processing apparatus is configured by the service processing apparatus according to the invention according to claim 2), In each service processing device that has received the processing result confirmation request from the service processing device at the processing result confirmation unit, the processing result management unit repeatedly performs the above processing in response to the received processing result confirmation request. Regardless of the number of service processing devices connected or the like, processing result confirmation requests are automatically chained as necessary.

また、自装置よりも下位のサービス処理装置が存在する場合、処理結果管理手段は、下位のサービス処理装置から結果確認呼出手段へ通知された下位サービスの処理結果を、下位サービスのサービスIDと対応付けて記憶手段に記憶させる。また、自装置よりも上位のサービス処理装置が存在する場合、処理結果管理手段は、処理結果の確認が終了すると確認した処理結果を処理結果確認手段によって上位のサービス処理装置へ通知する。これにより、サービス処理システムを構成する個々のサービス処理装置に請求項2記載の発明を適用した場合(個々のサービス処理装置を請求項2記載の発明に係るサービス処理装置で構成した場合)、下位のサービス処理装置から結果確認呼出手段へ下位サービスの処理結果が通知された個々のサービス処理装置において、処理結果管理手段で上記処理が行われることが繰り返されることで、サービス処理装置の連結数等に拘わらず、処理結果の通知も自動的に連鎖することになり、障害等の発生により以前のサービス要求に対する応答が返ってきていない等の場合に、以前に実行を要求したサービスの処理結果を確認することが可能となる。   If there is a lower-level service processing device than the own device, the processing result management means associates the processing result of the lower service notified from the lower-level service processing device to the result confirmation calling means with the service ID of the lower service. And store it in the storage means. When there is a higher-level service processing device than the own device, the processing result management means notifies the higher-level service processing device of the confirmed processing result by the processing result confirmation means when the confirmation of the processing result is completed. Thus, when the invention according to claim 2 is applied to each service processing apparatus constituting the service processing system (when each service processing apparatus is configured with the service processing apparatus according to the invention according to claim 2), In each service processing device in which the processing result of the lower service is notified from the service processing device to the result confirmation calling unit, the processing result management unit repeats the above processing, so that the number of connected service processing devices, etc. Regardless of the situation, the processing result notification is automatically chained, and if the response to the previous service request has not been returned due to the occurrence of a failure, the processing result of the service that has previously requested execution is It becomes possible to confirm.

更に、請求項2記載の発明において、下位のサービス処理装置へのサービス要求の送信は、より詳しくは、冪等性を有する下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に冪等性を有する下位サービスが存在している場合、冪等性を有する下位サービスの処理結果を処理結果管理手段に確認することなく、冪等性を有する下位サービスを行うサービス処理装置へサービス呼出手段によってサービス要求を送信することによって行われ、冪等性を有しない非冪等の下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に非冪等の下位サービスが存在している場合は、非冪等の下位サービスの処理結果を処理結果管理手段に確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、処理結果管理手段により前記非冪等の下位サービスを行うサービス処理装置へ処理結果確認要求を送信させることで処理結果の確認を再度試行させ、処理結果として「処理未済」が得られたときにのみ、非冪等の下位サービスを行うサービス処理装置へサービス呼出手段によってサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に再度確認する処理を行い、当該処理が終了するとサービス受付手段によってサービス要求の送信元の上位のサービス処理装置へ確認した処理結果に応じた応答が送信される。 Further, in the invention according to claim 2, the transmission of the service request to the lower-level service processing device is more specifically, the service processing device that performs the lower-level service having idempotency exists lower than the own device, and If there is a subordinate service having idempotency among the subordinate services corresponding to the service requested to be executed, the processing result management means does not check the processing result of the subordinate service having idempotency. A service processing device that performs a non-ideal subordinate service that does not have idempotency is transmitted to a service processing device that performs a subordinate service having equality by sending a service request by a service calling unit. If there is a non-idempotent subservice among the subservices corresponding to the service requested to be executed, Check the processing result in the processing result management unit, in the case of "unknown" indicating that confirmation processing result has not been received in response to the service request, the subservice of the non-idempotent the processing result management unit the confirmation of the processing result is attempted again by to transmit the processing result confirmation request to the service processing unit, only when the "processing unfinished" is obtained as the processing result, the service to the service processing apparatus for subservice non idempotent After the service request is transmitted by the calling unit, the processing result management unit is checked again with the processing result of the non-defective lower level service, and when the processing is completed, the service receiving unit A response corresponding to the confirmed processing result is transmitted to the higher-level service processing device.

これにより、サービス処理システムを構成する個々のサービス処理装置に請求項2記載の発明を適用した場合、仮想冪等機能が実現され、障害等の発生により以前に要求したサービスの実行に対する応答が返ってきていない等の場合に、対応する下位サービスの中に冪等性を有しないサービスが存在しているか否かを考慮せずに、サービスの実行を再度要求することが可能となるので、本発明に係るサービス処理装置を含んで構成されたサービス処理システムの構成を簡略化することが可能となる。また、冪等性を有する下位サービスを実行させる際には当該下位サービスの処理結果の確認が省略されるので、サービス処理装置を実現するコンピュータに加わる負荷を軽減することができる。   As a result, when the invention according to claim 2 is applied to each service processing apparatus constituting the service processing system, a function such as a virtual function is realized, and a response to the execution of the previously requested service is returned due to the occurrence of a failure or the like. In such a case, it is possible to request the execution of the service again without considering whether there is a service that does not have idempotency among the corresponding lower level services. It is possible to simplify the configuration of a service processing system including the service processing apparatus according to the invention. In addition, when executing a subordinate service having idempotency, confirmation of the processing result of the subordinate service is omitted, so that the load on the computer that implements the service processing apparatus can be reduced.

このように、請求項2記載の発明に係るサービス処理装置システムは、上記のサービス実行手段及び処理結果管理手段を備えているので、障害発生時にデータの整合性を保証することを容易に実現することができる。また、サービス処理システムを構成する個々のサービス処理装置に請求項2記載の発明を適用した場合、サービス処理システムを構成する個々のサービス処理装置の基本構成を同一とすることができるので、サービス処理システムを簡易な構成とすることができ、設計や開発に要する工数も大幅に削減することができる。従って、請求項2記載の発明によれば、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる。   Thus, since the service processing apparatus system according to the second aspect of the present invention includes the service execution unit and the processing result management unit, it is easy to guarantee data consistency when a failure occurs. be able to. Further, when the invention according to claim 2 is applied to the individual service processing devices constituting the service processing system, the basic configuration of the individual service processing devices constituting the service processing system can be made the same. The system can have a simple configuration, and the man-hours required for design and development can be greatly reduced. Therefore, according to the second aspect of the invention, it is possible to easily realize data consistency when a failure occurs with a simple configuration.

なお、請求項2記載の発明において、サービス実行手段は、例えば請求項3に記載したように、自装置よりも上位のサービス処理装置及び下位のサービス処理装置が各々存在しており、かつサービス受付手段が上位のサービス処理装置からサービス要求を受信することで実行が要求されたサービスが、対応する下位サービスが存在しているサービスである場合、サービスID生成手段によって生成された下位サービスのサービスIDを付加したサービス要求をサービス呼出手段によって下位のサービス処理装置へ送信すると共に、サービス呼出手段が下位のサービス処理装置から応答を受信した後に、サービス受付手段によって上位のサービス処理装置へ応答を送信するように構成することができる。   In the invention described in claim 2, the service execution means includes a service processing device of a higher level and a service processing device of a lower level than the own device, as described in claim 3, for example. If the service requested to be executed when the means receives a service request from the higher-level service processing apparatus is a service for which a corresponding lower-level service exists, the service ID of the lower-level service generated by the service ID generation means The service request to which the service call unit is added is transmitted to the lower-level service processing device by the service calling unit, and after the service calling unit receives a response from the lower-level service processing device, the service reception unit transmits the response to the higher-level service processing device. It can be constituted as follows.

また、請求項2又は請求項3記載の発明において、サービス実行手段は、例えば請求項4に記載したように、実行が要求されたサービスが自サービスを含むサービスである場合に、実行が要求されたサービスに関する処理として、自サービスの処理を行い、自サービスの処理結果を通知されたサービスIDと対応付けて処理結果管理手段の記憶手段に記憶させるように構成することができる。   Further, in the invention described in claim 2 or claim 3, the service execution means is requested to execute when the service requested to be executed is a service including its own service as described in claim 4, for example. As the processing related to the service, the processing of the own service can be performed, and the processing result of the own service can be associated with the notified service ID and stored in the storage unit of the processing result management unit.

また、請求項2〜請求項4の何れかに記載の発明において、サービス実行手段は、例えば請求項5に記載したように、自装置よりも下位のサービス処理装置が複数存在する場合、サービス呼出手段を下位のサービス処理装置と同数個備えており、自装置よりも下位のサービス処理装置が複数存在し、かつ実行が要求されたサービスが複数の下位のサービス処理装置による複数の下位サービスを含むサービスである場合に、実行が要求されたサービスに関する処理として、複数の下位のサービス処理装置のうちの特定の下位のサービス装置による特定の下位サービスのサービスIDをサービスID生成手段によって生成させ、生成された下位サービスのサービスIDを付加したサービス要求を、特定の下位のサービス装置に対応する特定のサービス呼出手段によって特定の下位のサービス処理装置へ送信し、特定のサービス呼出手段が特定の下位のサービス処理装置から受信した応答によって通知された特定の下位サービスの処理結果を、特定の下位サービスのサービスIDと対応付けて処理結果管理手段の記憶手段に記憶させる処理を、複数の下位のサービス処理装置について各々行う(逐次行うようにしてもよいし、並列に行うようにしてもよい)ように構成することができる。これにより、単一のサービス処理装置の下位にサービス処理装置が複数存在している場合にも、複数存在している下位のサービス処理装置の各々に対し、サービスの実行を自動的に連鎖させることができる。   Further, in the invention according to any one of claims 2 to 4, the service execution means, when there are a plurality of service processing devices lower than the own device, as described in claim 5, for example, The number of means is the same as the number of lower-level service processing devices, and there are a plurality of lower-level service processing devices, and the service requested to be executed includes a plurality of lower-level services by the lower-level service processing devices When the service is a service, the service ID generation unit generates a service ID of a specific lower service by a specific lower service device among a plurality of lower service processing devices as a process related to the requested service. A service request to which the service ID of the specified lower service is added is sent to a specific service corresponding to a specific lower service device. The processing result of the specific lower service notified by the response received by the specific service calling means from the specific lower service processing apparatus is transmitted to the specific lower service processing apparatus by the service calling means. The processing associated with the service ID and stored in the storage means of the processing result management means is performed for each of a plurality of lower-level service processing devices (may be performed sequentially or in parallel). Can be configured. As a result, even when there are a plurality of service processing devices below a single service processing device, service execution is automatically chained to each of the plurality of lower-level service processing devices. Can do.

また、請求項5記載の発明において、サービス実行手段は、例えば請求項6に記載したように、複数の下位のサービス処理装置のうちの何れかからの応答によって通知された下位サービスの処理結果がエラーであった場合、複数の下位のサービス処理装置の中に要求された下位サービスが「処理済」の下位のサービス処理装置が存在していれば、当該下位のサービス処理装置に対応するサービス呼出手段により、「処理済」の下位サービスの取消を要求するサービス要求を、下位サービスが「処理済」の下位のサービス処理装置へ送信させるように構成することが好ましい。実行が要求されたサービスが複数の下位のサービス処理装置による複数の下位サービスを含むサービスである場合、複数の下位サービスが全て正常に処理されないとデータの不整合等の不具合が生ずる可能性がある。これに対して請求項6記載の発明では、「処理済」の下位サービスの取消を要求するサービス要求を対応する下位のサービス処理装置へ送信させるので、複数の下位サービスを含むサービスの実行が要求され、複数の下位サービスのうちの一部の下位サービスでエラーが発生した場合に、データの不整合等の不具合が発生することを自動的に防止することができる。   Further, in the invention according to claim 5, the service execution means, as described in claim 6, for example, receives the processing result of the lower service notified by a response from any of the plurality of lower service processing devices. If there is an error, if there is a lower-level service processing device whose requested lower-level service is “processed” among a plurality of lower-level service processing devices, the service call corresponding to the lower-level service processing device It is preferable that the service request for canceling the “processed” lower service is transmitted to the lower service processing apparatus whose lower service is “processed” by the means. If the service requested to be executed is a service including a plurality of lower-level services by a plurality of lower-level service processing devices, there is a possibility that a problem such as data inconsistency may occur unless all the lower-level services are processed normally. . On the other hand, in the invention described in claim 6, since the service request for canceling the “processed” lower service is transmitted to the corresponding lower service processing apparatus, the execution of the service including a plurality of lower services is requested. Thus, when an error occurs in some of the plurality of lower services, it is possible to automatically prevent problems such as data inconsistencies.

また、請求項5記載の発明において、サービス実行手段は、例えば請求項7に記載したように、複数の下位のサービス処理装置のうちの何れかからの応答によって通知された下位サービスの処理結果がエラーであった場合、複数の下位のサービス処理装置の中にサービス要求を未送信の下位のサービス処理装置が存在していれば、当該下位のサービス処理装置に対応するサービス呼出手段によるサービス要求の送信を中止するように構成してもよい。これにより、複数の下位サービスを含むサービスの実行が要求され、複数の下位サービスのうちの一部の下位サービスでエラーが発生した場合に、下位サービスの実行を要求するサービス要求が無駄に送信されることを防止することができる。   Further, in the invention according to claim 5, the service execution means, as described in claim 7, for example, receives the processing result of the lower service notified by a response from any of the plurality of lower service processing devices. In the case of an error, if there is a lower-level service processing device that has not yet transmitted a service request among a plurality of lower-level service processing devices, the service request by the service calling unit corresponding to the lower-level service processing device You may comprise so that transmission may be stopped. As a result, when a service including a plurality of lower services is requested to be executed and an error occurs in some of the plurality of lower services, a service request for requesting the execution of the lower services is wasted. Can be prevented.

また、請求項2〜請求項7の何れかに記載の発明において、自装置よりも下位のサービス処理装置が存在し、コンピュータをサービス処理装置として機能させるためのプログラムがBPELのプラットフォーム上で動作する場合、サービス実行手段は、例えば請求項8に記載したように、サービスIDが通知されてサービスの実行が要求される毎に生成され、通知されたサービスIDを保持すると共に、処理の進行状態を表す状態情報を記憶しかつ処理の進行状態の変化に応じて前記状態情報を適宜更新するインスタンスよって実現され、前記インスタンスが新たに生成される毎に、当該新たに生成されたインスタンスにおいて、過去に生成され同一のサービスIDを保持しているインスタンスを検索し、該当するインスタンスが存在していた場合は前記該当するインスタンスの状態情報を自インスタンスの状態情報として複写し、複写した状態情報に従って処理を行うように構成することが好ましい。これにより、コンピュータをサービス処理装置として機能させるためのプログラムがBPELのプラットフォーム上で動作する構成において、以前に実行が要求されたサービスの実行が再度要求され、前回の処理が途中で停止していた場合に、今回の処理を前回の処理の続きから開始することを、BPELのプラットフォームの特徴を利用して簡易な処理で実現することができる。   Further, in the invention according to any one of claims 2 to 7, there is a service processing apparatus lower than the own apparatus, and a program for causing a computer to function as the service processing apparatus operates on a BPEL platform. In this case, as described in claim 8, for example, the service execution means is generated each time the service ID is notified and the execution of the service is requested. It is realized by an instance that stores state information that represents and appropriately updates the state information according to a change in the progress state of the process, and each time the instance is newly generated, the newly generated instance Search for instances that have been created and have the same service ID, and the corresponding instance exists If copies the state information of the appropriate instance as the state information of the instance, it is preferably configured to perform processing in accordance with the copy condition information. As a result, in a configuration in which a program for causing a computer to function as a service processing apparatus operates on the BPEL platform, execution of a service that was previously requested is requested again, and the previous processing was stopped halfway In this case, starting this process from the continuation of the previous process can be realized by a simple process using the features of the platform of BPEL.

また、請求項2記載の発明において、処理結果管理手段は、例えば請求項9に記載したように、自装置よりも上位のサービス処理装置及び下位のサービス処理装置が各々存在し、かつ処理結果確認手段が上位のサービス処理装置から処理結果確認要求を受信することで処理結果の確認が要求されたサービスに対応する下位サービスが存在しており、かつ記憶手段に記憶されている対応する下位サービスの処理結果が「不明」の場合に、下位サービスのサービスIDを付加した処理結果確認要求を結果確認呼出手段によって下位のサービス処理装置へ送信し、下位のサービス処理装置から結果確認呼出手段へ処理結果が通知された後に、処理結果の確認が要求されたサービスの処理結果を処理結果確認手段によって上位のサービス処理装置へ通知するように構成することができる。   Further, in the invention described in claim 2, the processing result management means includes, as described in claim 9, for example, a service processing device of a higher level and a service processing device of a lower level than the own device, respectively, and processing result confirmation When the means receives the processing result confirmation request from the higher-level service processing device, there is a lower service corresponding to the service for which the confirmation of the processing result is requested, and the corresponding lower service stored in the storage means When the processing result is “unknown”, a processing result confirmation request to which the service ID of the lower service is added is transmitted to the lower service processing device by the result confirmation calling device, and the processing result is transmitted from the lower service processing device to the result confirmation calling device. Is notified, the processing result of the service for which confirmation of the processing result is requested is passed to the higher-level service processing device by the processing result confirmation means. It can be configured to.

また、請求項2〜請求項9の何れかに記載の発明において、サービスID生成手段は、例えば請求項10に記載したように、サービス処理装置毎に相違するIDを設定した固有IDと、サービス要求毎に相違するIDを設定した要求IDを含むID要素を生成するID要素生成手段と、自装置よりも上位のサービス処理装置が存在しない場合は、前記ID要素生成手段によって生成されたID要素を各々設定した呼出元ID及び呼出先IDを含むサービスIDを生成し、自装置よりも上位のサービス処理装置が存在する場合は、前記上位のサービス処理装置から受信したサービス要求に付加されたサービスIDに呼出先IDとして設定されているID要素を設定した呼出元IDと、前記ID要素生成手段によって生成されたID要素を設定した呼出先IDを含むサービスIDを生成するID要素組合せ手段と、を含んで構成されていることが好ましい。   Further, in the invention according to any one of claims 2 to 9, the service ID generation means, as described in claim 10, for example, a unique ID in which a different ID is set for each service processing device, and a service If there is no ID element generation means for generating an ID element including a request ID in which a different ID is set for each request and a higher-level service processing apparatus than the own apparatus, the ID element generated by the ID element generation means Service ID including the caller ID and the callee ID respectively set, and when there is a higher-level service processing device than the own device, the service added to the service request received from the higher-level service processing device The caller ID that sets the ID element set as the callee ID in the ID and the ID element generated by the ID element generation means are set. And ID element combining means for generating a service ID with the call destination ID, preferably is configured to include a.

これにより、ID要素生成手段によって生成される個々のID要素は、少なくともサービス処理装置(ID要素生成手段)を単位とする一意性が確保される(他のID要素と重複していないことが保証される)と共に、サービス処理装置(ID要素生成手段)内における個々のサービス要求を単位とする一意性も確保される。また、サービス処理システムを構成する個々のサービス処理装置に請求項10記載の発明を各々適用した場合、上位のサービス処理装置が存在する個々のサービス処理装置において、上位のサービス処理装置から受信したサービス要求に付加されたサービスIDにおける呼出先IDと、下位のサービス処理装置へ送信するサービス要求に付加されるサービスIDにおける呼出元IDが一致されることになるので、障害等が発生した場合にも、個々のサービス処理装置の処理結果管理手段の記憶手段に記憶されているサービスIDを参照し、呼出先IDと呼出元IDが一致しているサービスID(対応するサービス要求に付加されたサービスID)を順に辿っていくことで、実行が要求されたサービスの処理履歴を把握することが可能となる。   As a result, each ID element generated by the ID element generation means is ensured to be unique in units of at least the service processing device (ID element generation means) (guaranteed that it does not overlap with other ID elements). And uniqueness in units of individual service requests in the service processing apparatus (ID element generating means). Further, when the invention according to claim 10 is applied to each service processing device constituting the service processing system, the service received from the higher-level service processing device in each service processing device in which the higher-level service processing device exists Since the callee ID in the service ID added to the request matches the caller ID in the service ID added to the service request transmitted to the lower-level service processing device, even when a failure or the like occurs The service ID stored in the storage means of the processing result management means of each service processing device is referred to, and the service ID (call ID added to the corresponding service request) whose call destination ID matches the call source ID. ) In order, it is possible to grasp the processing history of the service requested to be executed.

また、請求項10記載の発明において、ID要素組合せ手段は、例えば請求項11に記載したように、自装置よりも上位のサービス処理装置が存在しない場合は、ID要素生成手段によって生成されたID要素を設定したオリジナルIDも含むサービスIDを生成し、自装置よりも上位のサービス処理装置が存在する場合は、上位のサービス処理装置から受信したサービス要求に付加されたサービスIDにオリジナルIDとして設定されているID要素を設定したオリジナルIDも含むサービスIDを生成するように構成することが好ましい。これにより、サービス処理システムを構成する個々のサービス処理装置に請求項11記載の発明を各々適用した場合、対応するサービス要求に付加されるサービスIDはオリジナルIDが同一とされることになるので、個々のサービス要求に付加されたサービスIDのうちのオリジナルIDが同一か否かに基づいて、対応するサービス要求を識別することができ、前述のようにサービスIDの呼出元ID及び呼出先IDに設定されているID要素に基づいて同一のサービス要求を辿っていくことが困難となった場合にも、オリジナルIDを参照することで、要求されたサービスの処理履歴を確実に把握することができる。   Further, in the invention described in claim 10, the ID element combination means generates the ID generated by the ID element generation means when there is no service processing apparatus higher than the own apparatus as described in claim 11, for example. A service ID including the original ID in which the element is set is generated, and if there is a higher-level service processing device than the own device, the service ID added to the service request received from the higher-level service processing device is set as the original ID It is preferable that the service ID including the original ID in which the ID element is set is generated. Thus, when the invention according to claim 11 is applied to each service processing apparatus constituting the service processing system, the service ID added to the corresponding service request has the same original ID. Based on whether or not the original IDs of the service IDs added to the individual service requests are the same, the corresponding service request can be identified, and as described above, the caller ID and callee ID of the service ID Even when it is difficult to follow the same service request based on the set ID element, the processing history of the requested service can be reliably grasped by referring to the original ID. .

また、請求項10又は請求項11記載の発明において、ID要素生成手段は、例えば請求項12に記載したように、コンピュータをサービス処理装置として機能させるためのプログラムの実行単位に付与された実行単位IDも含むID要素を生成するように構成することが好ましい。なお、上記の実行単位は、例えばプロセス、タスク、スレッド等の何れであってもよい。これにより、上記の実行単位が単一のコンピュータ内に複数存在している場合にも、個々の実行単位(サービス処理装置)によってサービス要求に付加されるサービスID(の少なくとも実行単位ID)が相違することになり、サービス要求に付加されたサービスIDのうちの実行単位IDを参照することで、対応するサービス要求が複数のサービス処理装置のうちの何れの実行単位(サービス処理装置)で処理されたのかを判断することが可能となる。   Further, in the invention according to claim 10 or claim 11, the ID element generation means is an execution unit assigned to an execution unit of a program for causing a computer to function as a service processing device as described in claim 12, for example. Preferably, an ID element including an ID is generated. Note that the execution unit may be any process, task, thread, or the like. Thereby, even when there are a plurality of the above execution units in a single computer, the service ID (at least the execution unit ID) added to the service request by each execution unit (service processing apparatus) is different. By referring to the execution unit ID of the service ID added to the service request, the corresponding service request is processed by any execution unit (service processing apparatus) of the plurality of service processing apparatuses. It is possible to judge whether

また、請求項13記載の発明に係るサービス処理システムは、請求項1〜請求項12の何れか1項記載のサービス処理装置が情報を送受可能に複数設けられて構成されているので、請求項1記載の発明や請求項2記載の発明と同様に、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる。   Further, the service processing system according to the invention described in claim 13 is configured by providing a plurality of service processing devices according to any one of claims 1 to 12 so as to be able to send and receive information. As in the first aspect of the invention and the second aspect of the invention, it is possible to easily realize data consistency when a failure occurs with a simple configuration.

請求項14記載の発明に係るサービス処理プログラムは、コンピュータを、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置として機能させるサービス処理プログラムであって、前記コンピュータを、サービスIDが通知されてサービスの実行が要求されると、実行が要求されたサービスに関する処理を行うサービス実行手段と、サービスの処理結果をサービスIDと対応付けて記憶するための記憶手段を備えた処理結果管理手段と、を備え、前記サービス実行手段は、自装置よりも上位のサービス処理装置が存在する場合はサービス受付手段を備え、サービスIDが付加されたサービス要求を前記サービス受付手段が前記上位のサービス処理装置から受信することでサービスの実行が要求されると、前記実行が要求されたサービスに関する処理を行い、当該処理の処理結果を前記サービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させた後に、前記サービス受付手段によって前記上位のサービス処理装置へ応答を送信し、自装置よりも下位のサービス処理装置が存在する場合は、一意性を有するサービスIDを生成するサービスID生成手段と、サービス呼出手段と、を備え、実行が要求されたサービスが前記下位のサービス処理装置による下位サービスを含むサービスである場合に、前記実行が要求されたサービスに関する処理として、前記サービスID生成手段によって前記下位サービスのサービスIDを生成させ、生成された前記下位サービスのサービスIDを付加したサービス要求を前記サービス呼出手段によって前記下位のサービス処理装置へ送信し、前記サービス呼出手段が前記下位のサービス処理装置から受信した応答によって通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させる処理を行うと共に、冪等性を有する下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記冪等性を有する下位サービスが存在している場合、前記冪等性を有する下位サービスの処理結果を前記処理結果管理手段に確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信し、冪等性を有しない非冪等の下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記非冪等の下位サービスが存在している場合は、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記処理結果管理手段により前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信させることで処理結果の確認を再度試行させ、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に再度確認する処理を行い、当該処理が終了すると前記サービス受付手段によってサービス要求の送信元の前記上位のサービス処理装置へ確認した処理結果に応じた応答を送信し、前記処理結果管理手段は、自装置よりも上位のサービス処理装置が存在する場合は処理結果確認手段を備え、サービスIDが付加された処理結果確認要求を前記処理結果確認手段が前記上位のサービス処理装置から受信することでサービスの処理結果の確認が要求されると、処理結果の確認が要求されたサービスの処理結果を前記サービスIDに基づいて確認し、処理結果の確認が終了すると確認した処理結果を前記処理結果確認手段によって前記上位のサービス処理装置へ通知し、自装置よりも下位のサービス処理装置が存在する場合は結果確認呼出手段を備え、前記下位のサービス処理装置による下位サービスの処理結果の確認が必要な場合に、確認対象の下位サービスのサービスIDを付加した処理結果確認要求を前記結果確認呼出手段によって前記下位のサービス処理装置へ送信し、前記下位のサービス処理装置から前記結果確認呼出手段へ通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記記憶手段に記憶させるサービス処理装置として機能させる。 A service processing program according to a fourteenth aspect of the present invention is a service processing program for causing a computer to function as a service processing device that constitutes a service processing system together with other service processing devices capable of transmitting and receiving information, When the service ID is notified and the execution of the service is requested, a service execution unit that performs processing related to the requested service and a storage unit that stores the processing result of the service in association with the service ID are provided. Processing result management means, and the service execution means comprises service accepting means when there is a higher-order service processing apparatus than the own apparatus, and the service accepting means receives a service request to which a service ID is added. Service execution is requested by receiving from a higher-level service processing device. Then, a process related to the service requested to be executed is performed, and the processing result of the process is associated with the service ID and stored in the storage unit of the processing result management unit, and then the higher level is received by the service receiving unit. When a response is transmitted to the service processing apparatus of the apparatus, and there is a service processing apparatus lower than the own apparatus, the service processing apparatus includes service ID generation means for generating a unique service ID, and service call means. When the requested service is a service including a lower service by the lower service processing apparatus, the service ID generation unit generates a service ID of the lower service as a process related to the requested service, and generates the service ID A service request to which the service ID of the subordinate service added is added to the service call The processing result of the lower service notified by the response received from the lower service processing device by the service call means is associated with the service ID of the lower service and transmitted to the lower service processing device by the stage. A lower-level service corresponding to a service for which a service processing device that performs processing to be stored in the storage unit of the processing result management unit and performs a lower-level service having idempotency exists lower than the own device and is requested to be executed If there is a subordinate service having the idempotency in the network, the subordinate service having the idempotency is checked without confirming the processing result of the subordinate service having the idempotency with the processing result management means. A service request is transmitted to the service processing apparatus to be performed by the service calling means, and a non-ideal subordinate service having no idempotency If the service processing device that performs the service exists in a lower level than the own device, and the lower service such as the non-defective exists in the lower service corresponding to the service requested to be executed, the non-ideal The processing result management means confirms the processing result of the lower service to the processing result management means. If the confirmed processing result is “unknown” indicating that a response to the service request has not been received, the processing result management means performs the non-idempotency. confirmation of the processing result thereby transmitting the processing result confirmation request to the service processing unit which performs subservice was attempted again, only when the "processing unfinished" is obtained as the processing result, lower service of the non-idempotent after sending a service request by the service calling unit to the service processing apparatus for performing, to review the process result of the lower service of the non-idempotent in the processing result management unit It performs processing, and transmits a response to which the processing corresponding to the processing result of the check of the upper source of the service request to the service processing device by said service receiving means and ends, the processing result management means, than the local If there is a higher-level service processing device, the processing result confirmation means is provided, and the processing result confirmation means receives the processing result confirmation request to which the service ID is added from the higher-level service processing device. When the confirmation is requested, the processing result of the service for which the confirmation of the processing result is requested is confirmed based on the service ID, and when the confirmation of the processing result is completed, the confirmed processing result is processed by the processing result confirmation unit. The service processing device is notified, and if there is a lower-level service processing device than the own device, the service processing device is provided with a result confirmation calling means, When it is necessary to confirm the processing result of the lower service by the service processing device, a processing result confirmation request with the service ID of the lower service to be confirmed is transmitted to the lower service processing device by the result confirmation calling unit, The processing result of the lower service notified from the lower service processing device to the result confirmation calling unit is associated with the service ID of the lower service and stored in the storage unit.

請求項14記載の発明に係るサービス処理プログラムは、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するコンピュータを、上記のサービス実行手段及び処理結果管理手段を備えたサービス処理装置として機能させるためのプログラムであるので、前記コンピュータが請求項14記載の発明に係るサービス処理プログラムを実行することで、前記コンピュータが請求項2に記載のサービス処理装置として機能することになり、請求項2記載の発明と同様に、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる。   According to a fourteenth aspect of the present invention, there is provided a service processing program comprising: a computer constituting a service processing system together with another service processing apparatus capable of transmitting and receiving information as a service processing apparatus including the service execution means and the processing result management means. Since it is a program for functioning, when the computer executes the service processing program according to the invention described in claim 14, the computer functions as the service processing apparatus described in claim 2. As with the invention described in Item 2, it is possible to easily realize data consistency when a failure occurs with a simple configuration.

請求項15記載の発明に係るサービス処理プログラムは、コンピュータを、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置として機能させるサービス処理プログラムであって、前記コンピュータを、請求項2〜請求項12の何れか1項記載のサービス処理装置として機能させる。   A service processing program according to a fifteenth aspect of the present invention is a service processing program for causing a computer to function as a service processing device that constitutes a service processing system together with another service processing device capable of transmitting and receiving information, It makes it function as a service processing apparatus of any one of Claims 2-12.

請求項15記載の発明に係るサービス処理プログラムは、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するコンピュータを、請求項2〜請求項12の何れか1項記載のサービス処理装置として機能させるためのプログラムであるので、前記コンピュータが請求項15記載の発明に係るサービス処理プログラムを実行することで、前記コンピュータが請求項2〜請求項12の何れか1項記載のサービス処理装置として機能することになり、請求項2〜請求項12の何れか1項記載の発明と同様に、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる。   A service processing program according to a fifteenth aspect of the present invention provides a service processing apparatus according to any one of the second to twelfth aspects of the present invention, wherein a computer constituting a service processing system together with another service processing apparatus capable of transmitting and receiving information The service processing apparatus according to any one of claims 2 to 12, wherein the computer executes a service processing program according to the invention according to claim 15. As in the invention according to any one of claims 2 to 12, it is possible to easily realize data consistency when a failure occurs with a simple configuration. .

請求項16記載の発明に係る記録媒体は、コンピュータを、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置として機能させるサービス処理プログラムが記録された記録媒体であって、前記サービス処理プログラムは、前記コンピュータを、サービスIDが付加されたサービス要求を受信することでサービスの実行が要求されると、実行が要求されたサービスに関する処理として、実行が要求されたサービスに対応する自サービスが存在する場合は、当該自サービスの処理を行い、自サービスの処理結果を前記サービスIDと対応付けて記憶手段に記憶させると共に、実行が要求されたサービスに対応する下位サービスが存在する場合は、前記下位サービスのサービスIDを生成し生成したサービスIDを付加したサービス要求を下位のサービス処理装置へ送信し、かつ前記下位サービスの処理結果を前記生成したサービスIDと対応付けて前記記憶手段に記憶させる処理を行い、サービス要求の送信元へ応答を送信する第1機能、サービスIDが付加された処理結果確認要求を受信することでサービスの処理結果の確認が要求されると、前記記憶手段に記憶されている情報に基づいて、処理結果の確認が要求されたサービスに対応するサービスの処理結果を確認し、対応する下位サービスの処理結果の確認が必要な場合は、対応する下位サービスのサービスIDを付加した処理結果確認要求を下位のサービス処理装置に送信し、処理結果の確認が終了すると確認した処理結果を処理結果確認要求の送信元へ送信する第2機能、及び、以前に受信したサービス要求と同一のサービスIDが付加されたサービス要求を受信することで、以前に実行が要求されたサービスの再実行が要求されると、再実行が要求されたサービスに対応する1つ以上のサービスのうち、冪等性を有する下位サービスについては、前記冪等性を有する下位サービスの処理結果を確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へサービス要求を送信し、冪等性を有しない非冪等の下位サービスについては、前記非冪等の下位サービスの処理結果を確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信することで処理結果の確認を再度試行し、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を再度確認する処理を行い、当該処理が終了するとサービス要求の送信元へ確認した処理結果に応じた応答を送信する第3機能を備えたサービス処理装置として機能させる。 According to a sixteenth aspect of the present invention, there is provided a recording medium on which a service processing program for causing a computer to function as a service processing apparatus constituting a service processing system together with other service processing apparatuses capable of transmitting and receiving information is recorded. When the service processing program requests the computer to execute a service by receiving a service request to which a service ID is added, the service processing program sets the service requested to be executed as a process related to the requested service. If there is a corresponding self service, the self service is processed, the processing result of the self service is stored in the storage unit in association with the service ID, and a lower service corresponding to the service requested to be executed If it exists, the service ID of the lower service is generated and generated. A service request to which a service ID is added is transmitted to a lower-level service processing apparatus, and the processing result of the lower-level service is stored in the storage means in association with the generated service ID, and the service request is transmitted to the source of the service request When a service result confirmation request is received by receiving a processing result confirmation request to which a service ID is added, a first function for transmitting a response, and a processing result is obtained based on the information stored in the storage means. If it is necessary to check the processing result of the service corresponding to the service for which the confirmation of the service is requested and the confirmation of the processing result of the corresponding lower service is necessary, the processing result confirmation request with the service ID of the corresponding lower service is added to the lower A second function that transmits to the service processing apparatus and transmits the confirmed processing result to the transmission source of the processing result confirmation request when the confirmation of the processing result is completed; and By receiving a service request to which the same service ID as the previously received service request is added, when a re-execution of a previously requested service is requested, it corresponds to the service requested to be re-executed. Among the one or more services, for the subordinate service having idempotency, the service processing apparatus that performs the subordinate service having idempotency without checking the processing result of the subordinate service having idempotency For non-ideal subservices that send a request and do not have idempotency, check the processing result of the non-ideal subordinate service, and confirm that the response to the service request is not received. In the case of “unknown” to represent, the processing result confirmation request is transmitted to the service processing apparatus that performs the non-defective lower-level service, and the confirmation of the processing result is retried, A process of confirming the processing result of the non-defaming subordinate service again after transmitting a service request to the service processing apparatus that performs the non-defying subordinate service only when “processing incomplete” is obtained as the processing result When the processing is completed, the service processing apparatus is provided with a third function for transmitting a response according to the processing result confirmed to the transmission source of the service request.

請求項16記載の発明に係る記録媒体は、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するコンピュータを、上記の第1〜第3機能を備えたサービス処理装置として機能させるためのサービス処理プログラムが記録されているので、前記コンピュータが請求項16記載の発明に係る記録媒体に記録されているサービス処理プログラムを読み出して実行することで、前記コンピュータが請求項1に記載のサービス処理装置として機能することになり、請求項1記載の発明と同様に、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる。   According to a sixteenth aspect of the present invention, there is provided a recording medium for causing a computer constituting a service processing system together with another service processing apparatus capable of transmitting and receiving information to function as the service processing apparatus having the first to third functions. Since the service processing program is recorded, the computer reads out and executes the service processing program recorded on the recording medium according to the invention of claim 16 so that the computer reads the service processing program of claim 1. It functions as a processing device, and as in the first aspect of the invention, it is possible to easily ensure data consistency when a failure occurs with a simple configuration.

請求項17記載の発明に係る記録媒体は、請求項14又は請求項15記載のサービス処理プログラムが記録されている。これにより、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するコンピュータが請求項17記載の発明に係る記録媒体に記録されているサービス処理プログラムを読み出して実行することで、前記コンピュータが請求項2〜請求項12の何れか1項記載のサービス処理装置として機能することになり、請求項2〜請求項12の何れかに記載の記載の発明と同様に、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる。   The service processing program according to claim 14 or 15 is recorded on a recording medium according to the invention of claim 17. Thus, the computer constituting the service processing system together with another service processing apparatus capable of transmitting and receiving information reads out and executes the service processing program recorded in the recording medium according to the invention of claim 17, whereby the computer Will function as the service processing device according to any one of claims 2 to 12, and, similarly to the invention according to any one of claims 2 to 12, with a simple configuration, It is possible to easily realize data consistency when a failure occurs.

以上説明したように本発明は、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置に、サービスの実行の連鎖を実現する第1機能、以前に実行を要求したサービスの処理結果の確認を可能とする第2機能、及び、障害等の発生時に冪等性を有しないサービスの存在を考慮せずにサービスの実行を再度要求することを可能とする第3機能を各々設けたので、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる、という優れた効果を有する。   As described above, according to the present invention, the first function for realizing the service execution chain, the service that has been requested to be executed before, in the service processing apparatus that constitutes the service processing system together with other service processing apparatuses capable of transmitting and receiving information. A second function that makes it possible to confirm the processing result of the second, and a third function that makes it possible to request the execution of the service again without considering the existence of a service having no idempotency when a failure or the like occurs. Since each of them is provided, it has an excellent effect that it is possible to easily realize data consistency when a failure occurs with a simple configuration.

また本発明は、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置に、サービスIDが通知されてサービスの実行が要求されると、実行が要求されたサービスに関する処理を行うサービス実行手段と、サービスの処理結果をサービスIDと対応付けて記憶するための記憶手段を備えた処理結果管理手段を設け、サービス実行手段を、自装置よりも上位のサービス処理装置が存在する場合に、自装置よりも上位のサービス処理装置が存在する場合に、サービス受付手段が上位のサービス処理装置からサービス要求を受信することでサービスの実行が要求されると、実行が要求されたサービスに関する処理を行い、処理結果をサービスIDと対応付けて記憶手段に記憶させた後に、サービス受付手段によって上位のサービス処理装置へ応答を送信し、自装置よりも下位のサービス処理装置が存在し、下位のサービス処理装置による下位サービスを含むサービスの実行が要求された場合に、サービスID生成手段によって下位サービスのサービスIDを生成させ、生成されたサービスIDを付加したサービス要求をサービス呼出手段によって前記下位のサービス処理装置へ送信し、サービス呼出手段が下位のサービス処理装置から受信した応答によって通知された下位サービスの処理結果を、下位サービスのサービスIDと対応付けて処理結果管理手段の前記記憶手段に記憶させる処理を行うと共に、冪等性を有する下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に冪等性を有する下位サービスが存在している場合、冪等性を有する下位サービスの処理結果を処理結果管理手段に確認することなく、冪等性を有する下位サービスを行うサービス処理装置へサービス呼出手段によってサービス要求を送信し、冪等性を有しない非冪等の下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に非冪等の下位サービスが存在している場合は、非冪等の下位サービスの処理結果を処理結果管理手段に確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、処理結果管理手段により非冪等の下位サービスを行うサービス処理装置へ処理結果確認要求を送信させることで処理結果の確認を再度試行させ、処理結果として「処理未済」が得られたときにのみ、非冪等の下位サービスを行うサービス処理装置へサービス呼出手段によってサービス要求を送信した後に、非冪等の下位サービスの処理結果を処理結果管理手段に再度確認する処理を行い、当該処理が終了するとサービス受付手段によってサービス要求の送信元の前記上位のサービス処理装置へ確認した処理結果に応じた応答を送信するように構成すると共に、処理結果管理手段を、自装置よりも上位のサービス処理装置が存在する場合に、サービスIDが付加された処理結果確認要求を処理結果確認手段が上位のサービス処理装置から受信することでサービスの処理結果の確認が要求されると、処理結果の確認が要求されたサービスの処理結果をサービスIDに基づいて確認し、処理結果の確認が終了すると処理結果を処理結果確認手段によって上位のサービス処理装置へ通知し、自装置よりも下位のサービス処理装置が存在し、かつ下位のサービス処理装置による下位サービスの処理結果の確認が必要な場合に、確認対象の下位サービスのサービスIDを付加した結果確認要求を結果確認呼出手段によって下位のサービス処理装置へ送信し、下位のサービス処理装置から結果確認呼出手段へ通知された下位サービスの処理結果を、下位サービスのサービスIDと対応付けて記憶手段に記憶させるように構成したので、簡易な構成で、障害発生時にデータの整合性を保証することを容易に実現することができる、という優れた効果を有する。 The present invention also relates to a process related to a service requested to be executed when a service ID is notified to a service processing apparatus constituting a service processing system together with another service processing apparatus capable of transmitting and receiving information and execution of the service is requested. Service execution means, and a processing result management means having storage means for storing the service processing result in association with the service ID, and there is a service processing apparatus higher than the own apparatus. If there is a higher-level service processing device than the own device, the service reception means receives the service request from the higher-level service processing device, and the execution of the service is requested. After receiving the processing related to the service and storing the processing result in the storage means in association with the service ID, the service reception means Therefore, when a response is transmitted to the higher-level service processing device, there is a lower-level service processing device than the own device, and execution of a service including the lower-level service is requested by the lower-level service processing device, the service ID generation unit A service request to which the service ID of the lower-level service is generated and the generated service ID is added is transmitted to the lower-level service processing device by the service calling unit, and the service calling unit is notified by a response received from the lower-level service processing unit. The service processing apparatus that performs the process of storing the processing result of the lower service in association with the service ID of the lower service in the storage unit of the processing result management unit and that performs the lower service having idempotency than the own apparatus. Subordinate service corresponding to the service that exists in the lower level and requested to be executed When there is a subordinate service having idempotency, the service processing apparatus that performs the subordinate service having idempotency without confirming the processing result of the subordinate service having idempotency with the processing result management means A service processing device that transmits a service request by the service calling means and performs a non-idemless lower-level service that does not have idempotency exists lower than its own device, and the lower-level service corresponding to the service requested to be executed If there is a non-ideal subordinate service, confirm the processing result of the non-ideal subordinate service with the processing result management means, and confirm that the response to the service request is not received. In the case of “Unknown”, the processing result management means sends the processing result confirmation request to the service processing apparatus that performs the non-defective subordinate service by the processing result management means to confirm the processing result again. Was attempted, as the processing result only when the "processing unfinished" is obtained, after transmitting the service request by service calling means to the service processing apparatus for subservice non idempotent, processing subservice non idempotent A process is performed so that a result is confirmed again with the processing result management means, and when the processing is completed, a response according to the confirmed processing result is transmitted to the higher-level service processing device that is the transmission source of the service request by the service reception means. In addition, when there is a service processing apparatus higher than the own apparatus, the processing result confirmation means receives the processing result confirmation request with the service ID added from the upper service processing apparatus. When confirmation of the processing result of a service is requested, the processing result of the service for which confirmation of the processing result is requested is confirmed based on the service ID. When the confirmation of the processing result is completed, the processing result is notified to the upper service processing device by the processing result confirmation means, and there is a lower service processing device than the own device, and the processing result of the lower service by the lower service processing device When the confirmation of the result is necessary, a result confirmation request with the service ID of the lower service to be confirmed is transmitted to the lower service processing device by the result confirmation calling device, and the lower service processing device notifies the result confirmation calling device. Since the processing result of the lower service is stored in the storage means in association with the service ID of the lower service, it is easy to realize data consistency when a failure occurs with a simple configuration. It has an excellent effect of being able to.

本実施形態に係るサービス処理システムのハードウェア構成を示す概略ブロック図である。It is a schematic block diagram which shows the hardware constitutions of the service processing system which concerns on this embodiment. SOAリファレンスモデルを説明する説明図である。It is explanatory drawing explaining a SOA reference model. サービス要求受信時のサービス処理部の処理シーケンスを説明する概念図である。It is a conceptual diagram explaining the processing sequence of the service processing part at the time of service request reception. 処理結果確認要求受信時のサービス処理部の処理シーケンスを説明する概念図である。It is a conceptual diagram explaining the process sequence of the service process part at the time of a process result confirmation request | requirement reception. 本実施形態に係るサービス処理システムのソフトウェア構成を示す機能ブロック図である。It is a functional block diagram which shows the software structure of the service processing system which concerns on this embodiment. サービス受付部処理を示すフローチャートである。It is a flowchart which shows a service reception part process. 処理実行部処理の一例(冪等呼び出し、補償無し)を示すフローチャートである。It is a flowchart which shows an example of a process execution part process (an ignorance call, no compensation). 処理実行部処理の一例(冪等呼び出し、補償無し、内部リトライ)を示すフローチャートである。It is a flowchart which shows an example of a process execution part process (calling idempotency, no compensation, internal retry). 処理実行部処理の一例(冪等呼び出し、補償有り)を示すフローチャートである。It is a flow chart which shows an example of processing execution part processing (calling idempotent, with compensation). 処理実行部処理の一例(非冪等呼び出し、補償有り、内部リトライ)を示すフローチャートである。It is a flowchart which shows an example of a process execution part process (an unequal call, with compensation, an internal retry). サービスID生成部処理を示すフローチャートである。It is a flowchart which shows a service ID production | generation part process. サービス呼出部処理を示すフローチャートである。It is a flowchart which shows a service call part process. 処理結果確認部処理を示すフローチャートである。It is a flowchart which shows a process result confirmation part process. 管理部処理を示すフローチャートである。It is a flowchart which shows a management part process. 結果確認呼出部処理を示すフローチャートである。It is a flowchart which shows a result confirmation calling part process. サービスIDの体系及び遷移の一例を示す概念図である。It is a conceptual diagram which shows an example of the system and transition of service ID. サービスIDにおけるOSIDの有効性を説明するための説明図である。It is explanatory drawing for demonstrating the effectiveness of OSID in service ID. BPELにおける仮想冪等機能の実現を説明する説明図である。It is explanatory drawing explaining implementation | achievement of functions, such as a virtual bag, in BPEL. サービスの実行が指示された場合のサービス処理システム全体のシーケンスの一例を示すシーケンス図である。It is a sequence diagram which shows an example of the sequence of the whole service processing system when execution of a service is instruct | indicated. サービスの実行が指示された場合のサービス処理システム全体のシーケンスの他の例を示すシーケンス図である。It is a sequence diagram which shows the other example of the sequence of the whole service processing system when execution of a service is instruct | indicated. サービスの実行が指示された場合のサービス処理システム全体のシーケンスの他の例を示すシーケンス図である。It is a sequence diagram which shows the other example of the sequence of the whole service processing system when execution of a service is instruct | indicated. サービスの実行が複数回指示された場合のサービス処理システム全体のシーケンスの一例を示すシーケンス図である。It is a sequence diagram which shows an example of the sequence of the whole service processing system when execution of a service is instruct | indicated in multiple times. 処理結果の確認が指示された場合のサービス処理システム全体のシーケンスの一例を示すシーケンス図である。It is a sequence diagram which shows an example of the sequence of the whole service processing system when confirmation of a process result is instruct | indicated.

以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には本実施形態に係るサービス処理システム10が示されている。サービス処理システム10は、複数台のサービス処理サーバ12及び複数台のアプリケーション・サーバ14がコンピュータ・ネットワーク16を介して接続されて構成されている。   Hereinafter, an example of an embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 shows a service processing system 10 according to the present embodiment. The service processing system 10 is configured by connecting a plurality of service processing servers 12 and a plurality of application servers 14 via a computer network 16.

個々のアプリケーション・サーバ14は、CPU14A、ROMやRAM等から成るメモリ14B、HDD(Hard Disk Drive)等から成る記憶部14C、ネットワークI/F(インタフェース)部14Dを各々備えており、ネットワークI/F部14Dを介してコンピュータ・ネットワーク16に接続されている。個々のアプリケーション・サーバ14は、既存の別のコンピュータ・システムの一部を構成するコンピュータであり(なお既存の別のコンピュータ・システムとしては、例えば金融機関の基幹系システム(預為システムやその他のパッケージ・システム)が挙げられる)、個々のアプリケーション・サーバ14の記憶部14Cには、既存の別のコンピュータ・システム向けに所定のサービスを提供するための互いに異なるアプリケーション・プログラムがインストールされている。   Each application server 14 includes a CPU 14A, a memory 14B composed of ROM, RAM, etc., a storage unit 14C composed of HDD (Hard Disk Drive), etc., and a network I / F (interface) unit 14D. It is connected to the computer network 16 via the F unit 14D. Each application server 14 is a computer constituting a part of another existing computer system (in addition, as another existing computer system, for example, a core system of a financial institution (a deposit system or other In the storage unit 14C of each application server 14, different application programs for providing a predetermined service for another existing computer system are installed.

一方、個々のサービス処理サーバ12は、CPU12A、ROMやRAM等から成るメモリ12B、HDD等から成る記憶部12C、ネットワークI/F(インタフェース)部12Dを各々備えており、ネットワークI/F部12Dを介してコンピュータ・ネットワーク16に接続されている。また、記憶部12Cにはサービス処理プログラムがインストールされており、更に処理状況テーブル(後述)も記憶されている。サービス処理プログラムは本発明に係るプログラムに対応しており、サービス処理サーバ12は、CPU12Aがサービス処理プログラムを実行することで、後述するサービス処理部(本発明に係るサービス処理装置)として機能する。   On the other hand, each service processing server 12 includes a CPU 12A, a memory 12B composed of ROM, RAM, etc., a storage unit 12C composed of an HDD, etc., and a network I / F (interface) unit 12D, and a network I / F unit 12D. To the computer network 16. In addition, a service processing program is installed in the storage unit 12C, and a processing status table (described later) is also stored. The service processing program corresponds to the program according to the present invention, and the service processing server 12 functions as a later-described service processing unit (service processing apparatus according to the present invention) when the CPU 12A executes the service processing program.

なお、図1では、複数台のサービス処理サーバ12のうち最上位のサービス処理部として機能するサービス処理サーバ12に、最上位のサービス処理部に対してサービスの実行を要求することを可能とする機器の一例として、オペレータが任意の情報を入力可能なキーボード18と、任意の情報を表示可能なディスプレイ20が接続された態様を示している。この態様では、オペレータがキーボード18を操作することで、オペレータから最上位のサービス処理部へサービスの実行が要求され、実行が要求されたサービスの処理結果はディスプレイ20に表示されてオペレータに視認される。但し、本発明は図1に示した態様に限られるものではなく、最上位のサービス処理部として機能するサービス処理サーバ12には、最上位のサービス処理部に対してサービスの実行を要求する機器が接続されていてもよい。前記サービスの実行を要求する機器としては、例えばバッチジョブのコントローラや、他のコンピュータ・システム、インターネット、ウェブサーバ等が挙げられる。この態様では、前記機器から最上位のサービス処理部へサービスの実行がオペレータの操作等を経ずに直接要求され、実行が要求されたサービスの処理結果は最上位のサービス処理部から前記機器へ直接通知される。   In FIG. 1, it is possible to request the service processing server 12 functioning as the highest service processing unit among the plurality of service processing servers 12 to execute the service to the highest service processing unit. As an example of the device, a mode is shown in which a keyboard 18 on which an operator can input arbitrary information and a display 20 on which arbitrary information can be displayed are connected. In this aspect, when the operator operates the keyboard 18, the operator requests execution of the service to the highest-level service processing unit, and the processing result of the service requested to be executed is displayed on the display 20 and visually recognized by the operator. The However, the present invention is not limited to the mode shown in FIG. 1, and the service processing server 12 functioning as the highest-level service processing unit is a device that requests the highest-level service processing unit to execute the service. May be connected. Examples of the device that requests execution of the service include a batch job controller, another computer system, the Internet, and a web server. In this aspect, execution of a service is directly requested from the device to the highest-level service processing unit without an operator's operation or the like, and the processing result of the service requested to be executed is transferred from the highest-level service processing unit to the device. Be notified directly.

次に本実施形態の作用を説明する。本実施形態に係るサービス処理システム10は、SOAを適用し、提供すべきサービスを機能単位で分割し、分割した個々の機能のうち開発済みの機能(本実施形態では、サービス処理システム10に接続された個々のアプリケーション・サーバ14が提供するサービスがそれに相当する)についてはそれを流用して構築されており、互いに異なる機能を実現するサービス処理サーバ12(によって実現されるサービス処理部)が疎結合によって複数段連結され、サービス処理システム10に入力された個々のサービス要求を複数段のサービス処理部が連携して処理する構成とされている。また、本実施形態に係るサービス処理システム10は、個々のサービス処理サーバ12によって実現されるサービス処理部が図2に示すリファレンスモデルに準拠した構成となるように、個々のサービス処理サーバ12の記憶部12Cにインストールされるサービス処理プログラムが開発されている。   Next, the operation of this embodiment will be described. The service processing system 10 according to the present embodiment applies SOA, divides a service to be provided in units of functions, and has developed a function among the divided functions (in this embodiment, connected to the service processing system 10). The service provided by each individual application server 14 corresponds to that), and is constructed by using it, and the service processing server 12 (which is realized by the service processing unit) realizing different functions is sparse. A plurality of stages are connected by coupling, and each service request input to the service processing system 10 is configured to be processed in cooperation by a plurality of stages of service processing units. In addition, the service processing system 10 according to the present embodiment stores each service processing server 12 so that the service processing unit realized by each service processing server 12 conforms to the reference model shown in FIG. A service processing program to be installed in the section 12C has been developed.

以下、まずサービス処理部のリファレンスモデルについて説明する。このリファレンスモデルでは、サービス処理部を、管理部24、処理実行部26、サービス受付部28、サービスID生成部30、サービス呼出部32、処理結果確認部34及び結果確認呼出部36の各機能ブロックに分割し、各機能ブロック毎の機能を規定することで、サービス処理システム10における障害等の発生時にデータの整合性を保証することを可能とするためにサービス処理部が備えているべき機能を規定している。   Hereinafter, the reference model of the service processing unit will be described first. In this reference model, the service processing unit includes functional blocks of a management unit 24, a process execution unit 26, a service reception unit 28, a service ID generation unit 30, a service call unit 32, a process result confirmation unit 34, and a result confirmation call unit 36. The functions that the service processing unit should have in order to ensure data consistency when a failure or the like occurs in the service processing system 10 by defining the function for each functional block. It prescribes.

サービス処理部のリファレンスモデルにおいて、管理部24は、処理状況テーブル38を記憶する記憶部(ここでいう記憶部は、記憶部12Cの記憶領域のうち処理状況テーブル38等を記憶するために管理部24に割当てられた記憶領域を指す)を備え、サービス処理部に対して実行が要求されたサービス(に対応する自サービス及び下位サービス)の処理結果を、前記サービスを識別するサービスIDと対応付けて処理状況テーブル38で管理すると共に、下位サービスの処理結果の確認が必要な場合は、下位サービスの処理結果の確認を結果確認呼出部36へ要求する機能を備えている。また処理実行部26は、サービスIDが通知されてサービスの実行が要求されると、実行が要求されたサービスに対応する自サービスが有れば自サービスの処理を実行し、対応する下位サービスが有ればサービスID生成部30でサービスIDを生成させ、下位サービスの実行をサービス呼出部32へ要求する機能を備えている。   In the reference model of the service processing unit, the management unit 24 stores a processing status table 38 (here, the storage unit is a management unit for storing the processing status table 38 and the like in the storage area of the storage unit 12C). 24), and the processing result of the service requested to be executed by the service processing unit (the corresponding self service and lower service) is associated with the service ID for identifying the service. And a function for requesting the result confirmation calling unit 36 to confirm the processing result of the lower service when it is necessary to confirm the processing result of the lower service. In addition, when the service ID is notified and the execution of the service is requested, the process execution unit 26 executes the process of the own service if there is a self service corresponding to the requested service, and the corresponding lower service is If there is a service ID, the service ID generation unit 30 generates a service ID and requests the service call unit 32 to execute a lower service.

また、サービス受付部28は上位のサービス処理部が存在している場合に設けられ、サービスIDが付加されたサービス要求を上位のサービス処理部から受信することでサービスの実行が要求されると、実行が要求されたサービスの実行を処理実行部26に要求し、処理終了後に上位のサービス処理部へ応答を送信する機能を備えている。また、サービスID生成部30は下位のサービス処理部が存在している場合に設けられ、処理実行部26からの要求に応じて一意性を有するサービスIDを生成する機能を備えている。また、サービス呼出部32は下位のサービス処理部が存在している場合に下位のサービス処理部と同数個設けられ、処理実行部26からの要求に応じて下位サービスのサービスIDを付加したサービス要求を下位のサービス処理部へ送信する機能を備えている。   In addition, the service reception unit 28 is provided when a higher-level service processing unit exists, and when a service execution is requested by receiving a service request with a service ID added from the higher-level service processing unit, It has a function of requesting the process execution unit 26 to execute the service requested to be executed, and transmitting a response to the upper service process unit after the process is completed. The service ID generation unit 30 is provided when a lower-level service processing unit exists, and has a function of generating a unique service ID in response to a request from the processing execution unit 26. Further, when there are subordinate service processing units, the same number of service calling units 32 as the subordinate service processing units are provided, and a service request with the service ID of the subordinate service added in response to a request from the processing execution unit 26 Is transmitted to the lower-level service processing unit.

また、処理結果確認部34は上位のサービス処理部が存在している場合に設けられ、サービスIDが付加された処理結果確認要求を上位のサービス処理部から受信することでサービスの処理結果の確認が要求されると、処理結果の確認が要求されたサービスの処理結果をサービスIDを用いて管理部24に確認し、処理結果の確認が終了すると確認した処理結果を上位のサービス処理部へ通知する機能を備えている。更に、結果確認呼出部36は下位のサービス処理部が存在している場合に下位のサービス処理部と同数個設けられ、要求に応じて、確認対象の下位サービスのサービスIDを付加した処理結果確認要求を下位のサービス処理部へ送信する機能を備えている。   The processing result confirmation unit 34 is provided when a higher-level service processing unit exists, and receives a processing result confirmation request to which a service ID is added from the higher-level service processing unit, thereby confirming the processing result of the service. Is requested, the processing result of the service for which the confirmation of the processing result is requested is confirmed with the management unit 24 using the service ID, and when the confirmation of the processing result is completed, the confirmed processing result is notified to the higher-level service processing unit. It has a function to do. Further, the result confirmation calling unit 36 is provided in the same number as the lower-level service processing units when the lower-level service processing unit exists, and confirms the processing result by adding the service ID of the lower-level service to be confirmed when requested. It has a function of transmitting a request to a lower-level service processing unit.

次に、サービス処理部の各機能ブロック(管理部24、処理実行部26、サービス受付部28、サービスID生成部30、サービス呼出部32、処理結果確認部34及び結果確認呼出部36)が上述した機能を備えていることで実現される、サービス処理部内における典型的な処理シーケンスを説明する。   Next, each functional block of the service processing unit (the management unit 24, the process execution unit 26, the service reception unit 28, the service ID generation unit 30, the service call unit 32, the process result check unit 34, and the result check call unit 36) is described above. A typical processing sequence in the service processing unit that is realized by providing the above functions will be described.

上位のサービス処理部が存在するサービス処理部が、上位のサービス処理部からサービス要求を受信した場合、サービス要求を受信したサービス処理部では、各機能ブロックが連動することで図3に示す処理シーケンスで処理が行われる。すなわち、上位のサービス処理部からサービスIDが付加されたサービス要求を受信すると((1)参照)、サービス受付部28は、処理実行部26に対してサービスIDを通知してサービスの実行を要求する((2)参照)。処理実行部26は実行が要求されたサービスの処理結果を管理部24に確認する((3)参照)。そして、確認した処理結果が「処理済」であればサービス受付部28へ直ちに応答を返す((12)参照)が、確認した処理結果が「未済」で、かつ実行が要求されたサービスに対応する自サービスが存在している場合は、自サービスの処理を実行し、処理結果をサービスIDと対応付けて処理状況テーブル38に記録させる((4)参照)。   When the service processing unit in which the higher-level service processing unit exists receives a service request from the higher-level service processing unit, the processing sequence shown in FIG. Processing is performed. That is, when a service request with a service ID added is received from a higher-level service processing unit (see (1)), the service reception unit 28 notifies the service execution unit 26 of the service ID and requests execution of the service. (Refer to (2)). The process execution unit 26 confirms the process result of the service requested to be executed with the management unit 24 (see (3)). If the confirmed processing result is “processed”, a response is immediately returned to the service reception unit 28 (see (12)), but the confirmed processing result is “unfinished” and corresponds to the service requested to be executed. If there is a service to be processed, the process of the service is executed, and the processing result is associated with the service ID and recorded in the processing status table 38 (see (4)).

また、実行が要求されたサービスに対応する下位サービスが存在しており、かつ当該下位サービスが「処理済」でない場合、処理実行部26はサービスID生成部30によって下位サービスのサービスIDを生成させ((5)参照)、生成された下位サービスのサービスIDを処理状況テーブル38に記録させ((6)参照)、。サービス呼出部32に対して下位サービスのサービスIDを通知して下位サービスの実行を要求する((7)参照)。これにより、サービス呼出部32は通知された下位サービスのサービスIDを付加したサービス要求を下位のサービス処理部へ送信する((8)参照)。また、下位のサービス処理部から応答を受信すると((9)参照)、受信した応答によって通知された下位サービスの処理結果を処理状況テーブル38に記録させ((10)参照)、処理終了を処理実行部26へ通知する((11)参照)。これを受けて処理実行部26はサービス受付部28へ処理結果を通知し((12)参照)、サービス受付部28は上位のサービス処理部へ応答を送信することで処理結果を通知する((13)参照)。   If there is a lower service corresponding to the service requested to be executed and the lower service is not “processed”, the process execution unit 26 causes the service ID generation unit 30 to generate the service ID of the lower service. (See (5)), and record the service ID of the generated lower-level service in the processing status table 38 (see (6)). The service call unit 32 is notified of the service ID of the lower service and the execution of the lower service is requested (see (7)). As a result, the service calling unit 32 transmits a service request to which the service ID of the notified lower service is added to the lower service processing unit (see (8)). When a response is received from the lower-level service processing unit (see (9)), the processing result of the lower-level service notified by the received response is recorded in the processing status table 38 (see (10)), and the processing end is processed. The execution unit 26 is notified (see (11)). In response to this, the process execution unit 26 notifies the service reception unit 28 of the processing result (see (12)), and the service reception unit 28 notifies the processing result by transmitting a response to the higher-level service processing unit (( 13)).

また、上位のサービス処理部が存在するサービス処理部が、上位のサービス処理部から処理結果確認要求を受信した場合、サービス要求を受信したサービス処理部では、各機能ブロックが連動することで図4に示す処理シーケンスで処理が行われる。すなわち、上位のサービス処理部から処理結果確認要求を受信すると((1)参照)、処理結果確認部34は、受信した処理結果確認要求によって処理結果の確認が要求されたサービスに対応する各サービスの処理結果を管理部24に確認する((2)参照)。そして、対応する各サービスの中に処理結果が「不明」の下位サービスが無ければ上位のサービス処理部へ直ちに応答を返す((8)参照)が、処理結果が「不明」の下位サービスが存在している場合は、対応する結果確認呼出部36に対し、下位サービスの処理結果の確認を要求する((3)参照)。   Further, when a service processing unit in which a higher-level service processing unit exists receives a processing result confirmation request from the higher-level service processing unit, in the service processing unit that has received the service request, the functional blocks are linked to each other in FIG. Processing is performed in the processing sequence shown in FIG. That is, when a processing result confirmation request is received from a higher-level service processing unit (see (1)), the processing result confirmation unit 34 receives each service corresponding to the service for which confirmation of the processing result is requested by the received processing result confirmation request. The processing result is confirmed with the management unit 24 (see (2)). If there is no lower service whose processing result is `` unknown '' in each corresponding service, a response is immediately returned to the upper service processing unit (see (8)), but there is a lower service whose processing result is `` unknown '' If so, the corresponding result confirmation calling unit 36 is requested to confirm the processing result of the lower service (see (3)).

結果確認呼出部36は、下位サービスの処理結果の確認が要求されると、下位のサービス処理部へ処理結果確認要求を送信する((4)参照)。また、下位のサービス処理部から下位サービスの処理結果を通知する応答を受信すると((5)参照)、通知された下位サービスの処理結果を処理状況テーブル38に記録させ((6)参照)、管理部24から処理結果確認部34に確認された処理結果が通知される((7)参照)。これを受けて処理結果確認部34は、通知された下位サービスの処理結果を含む処理結果を通知する応答を上位のサービス処理部へ送信する((8)参照)。   When the confirmation of the processing result of the lower service is requested, the result confirmation calling unit 36 transmits a processing result confirmation request to the lower service processing unit (see (4)). Further, when a response notifying the processing result of the lower service is received from the lower service processing unit (see (5)), the processing result of the notified lower service is recorded in the processing status table 38 (see (6)), The processing result confirmed by the management unit 24 is notified to the processing result confirmation unit 34 (see (7)). In response to this, the processing result confirmation unit 34 transmits a response notifying the processing result including the processing result of the notified lower service to the upper service processing unit (see (8)).

次に図5を参照し、上記のサービス処理部のリファレンスモデルに準拠して構築されたサービス処理システム10のソフトウェアの構成の一例を説明する。図5に示すように、本実施形態に係るサービス処理システム10は、5個のサービス処理部が3層(3段)に分けられており、3層目(3段目)の3個のサービス処理部が2層目(2段目)の単一のサービス処理部に各々連結され、2層目(2段目)の単一のサービス処理部が1層目(1段目)の単一のサービス処理部に連結されて構成されている。   Next, an example of the software configuration of the service processing system 10 constructed in accordance with the reference model of the service processing unit will be described with reference to FIG. As shown in FIG. 5, in the service processing system 10 according to the present embodiment, five service processing units are divided into three layers (three levels), and three services in the third layer (third level). Each processing unit is connected to a single service processing unit on the second layer (second stage), and a single service processing unit on the second layer (second stage) is connected to a single first layer (first stage). Connected to the service processing unit.

1層目(最上位)のサービス処理部は、より上位のサービス処理部が存在しないため、サービス処理部のリファレンスモデルに対してサービス受付部28及び処理結果確認部34が省略されている。なお、以下では最上位のサービス処理部を便宜上「リクエスタ42」と称する。リクエスタ42として機能するサービス処理サーバ12にキーボード18及びディスプレイ20が接続されている場合、リクエスタ42は、オペレータによってキーボード18が操作されることで入力された指示に応じて、下位のサービス処理部へサービス要求や処理結果確認要求を送信すると共に、下位のサービス処理部からの応答に基づきディスプレイ20に処理結果等を表示する処理を行う。なお、リクエスタ42として機能するサービス処理サーバ12にサービスの実行を要求する機器(例えばバッチジョブのコントローラや、他のコンピュータ・システム、インターネット、ウェブサーバ等)が接続されている場合には、リクエスタ42により、前記機器から要求を受信し、受信した要求に応じて下位のサービス処理部へサービス要求や処理結果確認要求を送信すると共に、下位のサービス処理部からの応答に基づき処理結果等を前記機器へ通知する処理が行われることになる。   Since the service processing unit in the first layer (the highest level) does not have a higher-level service processing unit, the service reception unit 28 and the processing result confirmation unit 34 are omitted from the reference model of the service processing unit. In the following, the highest-level service processing unit is referred to as “requester 42” for convenience. When the keyboard 18 and the display 20 are connected to the service processing server 12 that functions as the requester 42, the requester 42 sends the service processing unit to a lower-level service processing unit in accordance with an instruction input by operating the keyboard 18 by the operator. A service request and a processing result confirmation request are transmitted, and a processing result and the like are displayed on the display 20 based on a response from a lower-level service processing unit. If a device (for example, a batch job controller, another computer system, the Internet, or a web server) that requests execution of a service is connected to the service processing server 12 that functions as the requester 42, the requester 42. To receive a request from the device, send a service request or a processing result confirmation request to a lower service processing unit in response to the received request, and send a processing result or the like based on a response from the lower service processing unit. The process of notifying is performed.

また、2層目のサービス処理部は、下位のサービス処理部が3個存在しているため、サービス呼出部32及び結果確認呼出部36の組が3組設けられている。本実施形態では、2層目のサービス処理部のプログラムが、BPELエンジンと称されるBPEL(Business Process Execution Language)のプラットフォーム上で動作するプログラムとして開発されており、2層目のサービス処理部として機能するサービス処理サーバ12の記憶部12Cには、上記のプラットフォームとして機能する所定のプログラムもインストールされている。以下では2層目のサービス処理部を便宜上「BPEL44」と称する。BPEL44は、リクエスタ42から受信したサービス要求や処理結果確認要求に従い、下位の個々のサービス処理部へサービス要求や処理結果確認要求を送信したり、障害発生時にデータの整合性を保証するための処理を行う。   In addition, since the service processing unit in the second layer has three lower-level service processing units, three sets of the service calling unit 32 and the result confirmation calling unit 36 are provided. In the present embodiment, the second-layer service processing unit program has been developed as a program that operates on a BPEL (Business Process Execution Language) platform called a BPEL engine. A predetermined program that functions as the platform is also installed in the storage unit 12C of the functioning service processing server 12. Hereinafter, the service processing unit in the second layer is referred to as “BPEL 44” for convenience. The BPEL 44 transmits a service request or a processing result confirmation request to a lower individual service processing unit according to the service request or processing result confirmation request received from the requester 42, or a process for guaranteeing data consistency when a failure occurs. I do.

また3層目には、3個のサービス処理部として、既存の別のコンピュータ・システム(のアプリケーション・サーバ14)と接続されていないサービス処理部と、既存の別のコンピュータ・システムとしてのパッケージ・システム66(のアプリケーション・サーバ14)と接続されたサービス処理部と、既存の別のコンピュータ・システムとしての預為システム68(のアプリケーション・サーバ14)と接続されたサービス処理部が存在している。これらのサービス処理部は、より下位のサービス処理部が存在しないため、サービス処理部のリファレンスモデルに対してサービス呼出部32及び結果確認呼出部36が省略されている。   Further, in the third layer, as three service processing units, a service processing unit not connected to another existing computer system (application server 14 thereof) and a package as an existing another computer system are provided. There is a service processing unit connected to the system 66 (the application server 14) and a service processing unit connected to the storage system 68 (the application server 14) as another existing computer system. . Since these service processing units have no lower-level service processing units, the service calling unit 32 and the result confirmation calling unit 36 are omitted from the reference model of the service processing unit.

3層目の3個のサービス処理部のうち、既存システムと接続されていないサービス処理部は、処理実行部26によって行われる処理単独で一定のサービスが実現されるサービス処理部であり、以下では当該サービス処理部を便宜上「プロバイダ46」と称する。   Among the three service processing units in the third layer, the service processing unit that is not connected to the existing system is a service processing unit that realizes a certain service by the processing performed by the processing execution unit 26 alone. The service processing unit is referred to as “provider 46” for convenience.

また3層目の3個のサービス処理部のうち、パッケージ・システム66(のアプリケーション・サーバ14)と接続されたサービス処理部には、サービス処理システム10とパッケージ・システム66とのインタフェースを司る機能ブロックとして、サービス処理システム10内のサービスIDを代替するIDとしてパッケージ・システム66固有のIDの採番を行うID変換部52と、データ形式の相互変換を行う機能を各々備えパッケージ・システム66と通信を行うことでサービスを実行させたり処理結果の確認を行うパッケージ呼出部54及び結果確認呼出部56が設けられている。以下では当該サービス処理部を便宜上「パッケージ・ラッパー48」と称する。   Of the three service processing units in the third layer, the service processing unit connected to the package system 66 (the application server 14 thereof) has a function for controlling the interface between the service processing system 10 and the package system 66. As a block, an ID conversion unit 52 that assigns a number unique to the package system 66 as an ID that replaces the service ID in the service processing system 10, and a package system 66 that includes a function of performing mutual conversion of data formats, respectively. A package call unit 54 and a result check call unit 56 are provided for executing services and checking processing results through communication. Hereinafter, the service processing unit is referred to as “package wrapper 48” for convenience.

また3層目の3個のサービス処理部のうち、預為システム68(のアプリケーション・サーバ14)と接続されたサービス処理部には、サービス処理システム10と預為システム68とのインタフェースを司る機能ブロックとして、サービス処理システム10内のサービスIDを代替するIDとして預為システム68固有のIDである端末番号の採番を行う端末管理部58と、データ形式の相互変換を行う機能を各々備え預為システム68と通信を行うことでサービスを実行させたり処理結果の確認(取引状況の照会)を行うMB通信部60及び取引状況照会部62が設けられている。以下では当該サービス処理部を便宜上「MBラッパー50」と称する。   Of the three service processing units in the third layer, the service processing unit connected to the depository system 68 (the application server 14 thereof) has a function for controlling the interface between the service processing system 10 and the depository system 68. As a block, a terminal management unit 58 that assigns a terminal number that is an ID unique to the deposit system 68 as an ID that replaces the service ID in the service processing system 10 and a function that performs mutual conversion of data formats are provided. Therefore, an MB communication unit 60 and a transaction status inquiry unit 62 for executing a service by communicating with the system 68 and confirming the processing result (transaction status inquiry) are provided. Hereinafter, the service processing unit is referred to as “MB wrapper 50” for convenience.

なお、本実施形態では説明の都合上、サービス処理システム10の3層目のサービス処理部であるプロバイダ46、パッケージ・ラッパー48及びMBラッパー50のうち、プロバイダ46によって提供されるサービスと、MBラッパー50(及び預為システム68)によって提供されるサービスは冪等性を有している一方、パッケージ・ラッパー48(及びパッケージ・システム66)によって提供されるサービスは冪等性を有していないものとする。なお、冪等性を有するサービスは何度実行しても結果が同じになるサービスであり、例えばDB(データベース)の一定領域に格納されているデータを読み出して出力するサービス等が挙げられる。また、冪等性を有しないサービス(非冪等のサービス)は実行の度に結果が相違するサービスであり、例えばDBの一定領域に格納されている数値を実行の度に1ずつインクリメントして結果を出力するサービス等が挙げられる。   In this embodiment, for convenience of explanation, the service provided by the provider 46 among the provider 46, the package wrapper 48, and the MB wrapper 50, which are the third level service processing units of the service processing system 10, and the MB wrapper Services provided by 50 (and deposit system 68) are idempotent, while services provided by package wrapper 48 (and package system 66) are not idempotent. And Note that a service having idempotency is a service whose result is the same no matter how many times it is executed, such as a service that reads and outputs data stored in a certain area of a DB (database). A service that does not have idempotency (a service that is not idempotent) is a service whose result differs every time it is executed. For example, a numerical value stored in a certain area of the DB is incremented by 1 every time it is executed. Examples include services that output results.

また、図5において、サービス受付部28は本発明に係るサービス受付手段に、サービスID生成部30は本発明に係るサービスID生成手段に、サービス呼出部32は本発明に係るサービス呼出手段に、処理実行部26、サービス受付部28、サービスID生成部30及びサービス呼出部32は本発明に係る処理実行手段に、処理結果確認部34は本発明に係る処理結果確認手段に、結果確認呼出部36は本発明に係る結果確認呼出手段に、管理部24、処理結果確認部34及び結果確認呼出部36は本発明に係る処理結果管理手段に各々対応している。また、BPEL44、プロバイダ46、パッケージ・ラッパー48及びMBラッパー50は本発明に係る「上位のサービス処理装置が存在するサービス処理装置」に対応しており、リクエスタ42及びBPEL44は本発明に係る「下位のサービス処理装置が存在するサービス処理装置」に対応している。   In FIG. 5, the service reception unit 28 is a service reception unit according to the present invention, the service ID generation unit 30 is a service ID generation unit according to the present invention, and the service call unit 32 is a service call unit according to the present invention. The process execution unit 26, the service reception unit 28, the service ID generation unit 30 and the service call unit 32 are the process execution unit according to the present invention, and the process result confirmation unit 34 is the process result confirmation unit according to the present invention. 36 corresponds to the result confirmation calling unit according to the present invention, and the management unit 24, the processing result confirmation unit 34, and the result confirmation calling unit 36 correspond to the processing result management unit according to the present invention. The BPEL 44, the provider 46, the package wrapper 48, and the MB wrapper 50 correspond to the “service processing apparatus having a higher-level service processing apparatus” according to the present invention, and the requester 42 and the BPEL 44 correspond to the “lower Corresponds to a service processing apparatus in which a service processing apparatus exists.

次に、サービス処理部の各機能ブロックにおける処理について、図6〜図15のフローチャートを参照して説明する。上位のサービス処理部が存在するサービス処理部は、上位のサービス処理部から、サービスの実行を要求するサービス要求及び実行を要求したサービスの処理結果の確認を要求する処理結果確認要求を受信するが、上位のサービス処理部が存在するサービス処理部にはサービス受付部28が設けられており、このサービス受付部28は、上位のサービス処理部からサービス要求を受信する際に図6に示すサービス受付部処理を行う。   Next, processing in each functional block of the service processing unit will be described with reference to the flowcharts of FIGS. The service processing unit in which the higher-level service processing unit exists receives a service request for requesting execution of the service and a processing result confirmation request for requesting confirmation of the processing result of the service that has requested execution. A service reception unit 28 is provided in the service processing unit in which the higher-level service processing unit exists, and the service reception unit 28 receives the service request shown in FIG. 6 when receiving a service request from the higher-level service processing unit. Process.

このサービス受付部処理では、まずステップ80で上位のサービス処理部からサービス要求の電文を受信し、次のステップ82において、上位のサービス処理部からサービス要求の電文を受信したことを表すステータス情報を、受信した電文と共に管理部24の処理状況テーブル38に記憶させる。なお、受信した電文には、実行が要求されたサービスのサービスIDが付加されており、上記処理によりサービスIDも処理状況テーブル38に記憶される。次のステップ84では受信した電文の内容をチェックし、受信した電文の内容を適正か否か判定する。判定が否定された場合はステップ86へ移行し、上位のサービス処理部へ送信する応答電文にエラーメッセージを設定し、ステップ90へ移行する。   In this service reception unit process, first, in step 80, a service request message is received from the upper service processing unit, and in the next step 82, status information indicating that the service request message has been received from the upper service processing unit. Then, the received message is stored in the processing status table 38 of the management unit 24. Note that the received message is attached with the service ID of the service requested to be executed, and the service ID is also stored in the processing status table 38 by the above processing. In the next step 84, the content of the received message is checked, and it is determined whether or not the content of the received message is appropriate. If the determination is negative, the process proceeds to step 86, an error message is set in the response message to be transmitted to the upper service processing unit, and the process proceeds to step 90.

一方、受信した電文の内容が適正であった場合は、ステップ84の判定が肯定されてステップ88へ移行し、受信したサービス要求の電文に付加されていたサービスIDを引数として処理実行部26のAPIを呼び出し、サービスの実行を要求する。これにより、処理実行部26で処理実行部処理(後述)が行われる。処理実行部26による処理実行部処理が終了し、実行を要求したサービスの処理結果が通知されると、通知された処理結果を上位のサービス処理部へ送信する応答電文に設定した後にステップ90へ移行する。ステップ90では、ステップ86又はステップ88で生成した応答電文を上位のサービス処理部へ送信する。またステップ92では、上位のサービス処理部へ応答電文を送信したことを表すステータス情報を、送信した応答電文と共に管理部24の処理状況テーブル38に記憶させ、サービス受付部処理を終了する。   On the other hand, if the content of the received message is appropriate, the determination in step 84 is affirmed and the process proceeds to step 88, where the service ID added to the received message of the service request is used as an argument of the process execution unit 26. Call API and request execution of service. Thereby, the process execution unit 26 performs process execution unit processing (described later). When the process execution unit process by the process execution unit 26 is completed and the process result of the service requested to be executed is notified, the notified process result is set in a response message to be transmitted to the upper service process unit, and then the process proceeds to step 90. Transition. In step 90, the response message generated in step 86 or 88 is transmitted to the upper service processing unit. In step 92, status information indicating that the response message has been transmitted to the higher-level service processing unit is stored in the processing status table 38 of the management unit 24 together with the transmitted response message, and the service reception unit process is terminated.

次に、サービスの実行が要求されると処理実行部26で行われる処理実行部処理について説明する。なお、処理実行部処理の内容は、上位のサービス処理部の有無や、下位のサービス処理部の有無及び数、下位のサービス処理部による下位サービスの冪等性の有無、サービスの実行を要求する呼び出しが仮想冪等機能(実際のサービスが冪等性を有しているか否かに拘わらず、サービスの実行が何度要求されても同じ結果が得られるようにする機能)を利用する呼び出し(以下、これを冪等呼び出しと称する)か仮想冪等機能を利用しない呼び出し(以下、これを非冪等呼び出しと称する)か、補償処理(後述)を行うか否か、等の条件に応じて大きく相違する。このため、以下では処理実行部処理の一例として、BPEL44の処理実行部26における代表的な処理を、図7〜図10を参照して順に説明する。なお、図7〜図10に示した処理実行部処理は、何れも、プロバイダ46、パッケージ・ラッパー48及びMBラッパー50の各々による下位サービスの実行を必要とするサービスの実行が要求されることを前提としている。なお、処理実行部26の呼び出し時には引数として冪等フラグ(FLG)も処理実行部26に引き渡され、この冪等フラグの値が1か0かによって冪等呼び出しと非冪等呼び出しが区別される。   Next, a process execution unit process performed by the process execution unit 26 when a service execution is requested will be described. The contents of the process execution unit process include the presence / absence of a higher-level service processing unit, the presence / absence and number of lower-level service processing units, the presence / absence of inequality of lower-level services by lower-level service processing units, and the execution of services. A call that uses a virtual idempotency function (a function that ensures that the same result is obtained no matter how many times the execution of the service is requested, regardless of whether the actual service has idempotency) Depending on the conditions such as whether or not to perform a compensation process (to be described later), or a call that does not use the virtual idempotent function (hereinafter referred to as non-idempotent call) It is very different. For this reason, below, the typical process in the process execution part 26 of BPEL44 is demonstrated in order with reference to FIGS. 7-10 as an example of a process execution part process. Note that the process execution unit processes shown in FIGS. 7 to 10 all require that the provider 46, the package wrapper 48, and the MB wrapper 50 each execute a service that requires the execution of a lower level service. It is assumed. The idempotency flag (FLG) is also passed to the process execution unit 26 as an argument when the process execution unit 26 is called, and the idempotency call and the unequal call are distinguished depending on whether the value of the idempotency flag is 1 or 0. .

図7に示す処理実行部処理は、BPEL44の処理実行部26に対して冪等呼び出しによってサービスの実行が要求され、処理実行部26で補償処理を行わない、という条件での処理実行部処理の一例である。図7に示す態様では、処理実行部26のプログラムが、処理実行部APIと業務プログラムに分かれている。処理実行部APIは、処理実行部26の機能を実現する処理のうちの定型処理を行うプログラムであり、図7の例では、下位のサービス処理部(この例ではプロバイダ46、パッケージ・ラッパー48及びMBラッパー50)からの応答のタイムアウトの監視(サービス要求を送信してから応答未受信の状態が規定時間以上継続したかを監視)、下位のサービス処理部へのサービス要求等のリトライ(例えば処理結果が「不明」等の場合のサービス要求の再送信等)、リトライ回数の監視(サービス要求等の送信回数が規定回数に達した場合に「異常」として処理する)等の処理が処理実行部APIによって行われる。   The process execution unit process shown in FIG. 7 is a process execution unit process under the condition that the execution of the service is requested by the idempotent call to the process execution unit 26 of the BPEL 44 and the compensation process is not performed by the process execution unit 26. It is an example. In the aspect shown in FIG. 7, the program of the process execution unit 26 is divided into a process execution unit API and a business program. The process execution unit API is a program that performs a standard process among the processes for realizing the functions of the process execution unit 26. In the example of FIG. 7, the lower-level service processing units (in this example, the provider 46, the package wrapper 48, and the Response time-out monitoring from the MB wrapper 50 (monitoring whether a response unreceived state has continued for a specified time or more after sending a service request), retrying a service request to a lower service processing unit (for example, processing) Process execution unit, such as resending service requests when the result is `` unknown '', etc.), monitoring the number of retries (processing as `` abnormal '' when the number of transmissions of service requests etc. reaches the specified number) Performed by API.

なお、上記のように処理実行部のプログラムを処理実行部APIと業務プログラムに分けることで、処理実行部APIを部品化し、業務プログラムの処理内容が相違する処理実行部26の開発する際にも、部品化した処理実行部APIを流用することで、プログラム開発者が業務プログラムの開発に専念できるので、プログラム開発者の負担の軽減、プログラム開発に要する期間の短縮を実現することができる。   As described above, by dividing the program of the process execution unit into the process execution unit API and the business program, the process execution unit API is converted into a component, and the process execution unit 26 having different processing contents of the business program is developed. By diverting the componentized processing execution unit API, the program developer can concentrate on the development of the business program, so that the burden on the program developer can be reduced and the time required for the program development can be reduced.

図7において、処理実行部26のプログラムのうち業務プログラムによって実現される処理(以下、この処理を単に処理実行部処理と称する)は、処理実行部API経由で外部から呼び出されることで起動される。仮想冪等機能を利用する冪等呼び出しでは、同一のサービスIDのサービスの実行が繰り返し要求される可能性があるので、まずステップ200では、呼出時に引数として引き渡されたサービスIDを管理部24に通知し、通知したサービスIDのサービスの実行が前回要求された際の処理結果(状況)を管理部24に問い合わせる。次のステップ202では管理部24から通知された情報に基づき、同一のサービスIDのサービスの実行が前回要求された際の処理が「処理中」か否か判定し、「処理中」であれば処理実行部APIに制御を戻す。   In FIG. 7, a process realized by a business program among the programs of the process execution unit 26 (hereinafter, this process is simply referred to as a process execution unit process) is activated by being called from outside via the process execution unit API. . In the idempotent call using the virtual niece function and the like, there is a possibility that the execution of the service with the same service ID may be repeatedly requested. The management unit 24 is inquired about the processing result (situation) when the previous execution of the service with the notified service ID is requested. In the next step 202, based on the information notified from the management unit 24, it is determined whether or not the process when the execution of the service with the same service ID was previously requested is “processing”. Control is returned to the process execution unit API.

また、同一のサービスIDのサービスの実行が前回要求された際の処理が「処理中」でない場合(引数として引き渡されたサービスIDのサービスの実行が過去に要求されていない場合や、同一のサービスIDのサービスの実行が前回要求された際の処理が終了している場合がこの条件に該当する)はステップ204へ移行する。下位サービス1は冪等性を有しているので、ステップ204では、下位サービス1の処理状況に拘わらず(下位サービス1が今回引数として引き渡されたサービスIDのサービスに対応する下位サービスとして過去に実行されているか否かや、下位サービス1が今回引数として引き渡されたサービスIDのサービスに対応する下位サービスとして過去に実行されている場合の処理結果等に拘わらず)、下位サービス1(ここではプロバイダ46による下位サービス)の実行を、下位サービス1に対応するサービス呼出部32へ指示する。これにより、下位サービス1に対応するサービス呼出部32ではサービス呼出部処理(後述)が行われ、プロバイダ46へサービス要求が送信される。   Also, if the process when the execution of the service with the same service ID was requested last time is not “processing” (if the execution of the service with the service ID passed as an argument has not been requested in the past, If the processing when the execution of the ID service is requested last time is complete (this condition is met), the process proceeds to step 204. Since the subordinate service 1 has idempotency, in step 204, regardless of the processing status of the subordinate service 1, the subordinate service 1 has been designated as a subordinate service corresponding to the service with the service ID delivered as the argument this time. The lower service 1 (in this case, regardless of whether the lower service 1 has been executed in the past as a lower service corresponding to the service with the service ID delivered as an argument) The service calling unit 32 corresponding to the lower service 1 is instructed to execute the lower service by the provider 46. As a result, the service calling unit 32 corresponding to the lower service 1 performs service calling unit processing (described later), and a service request is transmitted to the provider 46.

なお、今回引数として引き渡されたサービスIDのサービスの実行が過去に要求されていない場合は、サービス呼出部32への指示に先立ち、引数として引き渡されたサービスIDをサービスID生成部30へ通知して下位サービス1のサービスIDの生成を要求し、サービスID生成部30で生成された下位サービス1のサービスIDを、管理部24を通じ、引数として引き渡されたサービスIDと対応付けて処理状況テーブル38に記憶させると共に、当該下位サービス1のサービスIDをサービス呼出部32へ通知する処理も行われる。また、同一のサービスIDのサービスの実行が過去に要求されている場合は、サービス呼出部32への指示に先立ち、管理部24から通知された情報より対応する下位サービス1のサービスIDを抽出し、抽出したサービスIDをサービス呼出部32へ通知する処理も行われる。   If the execution of the service with the service ID delivered as an argument has not been requested in the past, the service ID generated as an argument is notified to the service ID generation unit 30 prior to the instruction to the service calling unit 32. The processing status table 38 requests the generation of the service ID of the lower service 1 and associates the service ID of the lower service 1 generated by the service ID generation unit 30 with the service ID delivered as an argument through the management unit 24. Is also stored, and the service calling unit 32 is notified of the service ID of the lower-level service 1. If execution of a service with the same service ID has been requested in the past, the service ID of the lower service 1 corresponding to the information notified from the management unit 24 is extracted prior to the instruction to the service calling unit 32. The process of notifying the extracted service ID to the service calling unit 32 is also performed.

また、下位サービス1に対応するサービス呼出部32から処理結果が通知されると、次のステップ206において、通知された処理結果に応じて処理を分岐する。すなわち、通知された処理結果が「不明」又は「処理未済」である場合は、処理実行部APIに制御を戻す。この場合、処理実行部APIによってリトライやリトライ回数の監視等の処理が行われる。また、通知された処理結果が「業務エラー」である場合は、処理結果が「業務エラー」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合、下位サービス2,3の実行を要求するサービス要求の送信はスキップされる。   Further, when the processing result is notified from the service calling unit 32 corresponding to the lower service 1, in the next step 206, the processing is branched according to the notified processing result. That is, when the notified processing result is “unknown” or “processing not yet completed”, the control is returned to the processing execution unit API. In this case, processing such as retry and monitoring of the number of retries is performed by the process execution unit API. Further, when the notified processing result is “business error”, the processing result is “business error” and is notified to the caller of the processing execution unit 26 through the processing execution unit API. In this case, transmission of a service request requesting execution of the lower services 2 and 3 is skipped.

一方、通知された処理結果が「処理済」である場合は、下位サービス1の処理が正常に終了しているのでステップ210へ移行する。下位サービス2(ここではパッケージ・ラッパー48による下位サービス)は冪等性を有していないので、まずステップ210では、今回引数として引き渡されたサービスIDを管理部24に通知し、通知したサービスIDのサービスの処理結果(状況)を管理部24に問い合わせる。そして、次のステップ212では、管理部24から通知された情報に基づいて、下位サービス2が今回引数として引き渡されたサービスIDのサービスに対応する下位サービスとして過去に実行されている場合の処理結果を判定し、判定した処理結果に応じて処理を分岐する。なお、先のステップ200,202において、今回引数として引き渡されたサービスIDのサービスの実行が過去に要求されていないことが判明した場合は、ステップ210の実行をスキップし、ステップ212で処理結果は「処理未済」と判定するようにしてもよい。   On the other hand, if the notified processing result is “processed”, the processing of the lower-level service 1 has been completed normally, and the process proceeds to step 210. Since the lower level service 2 (here, the lower level service by the package wrapper 48) does not have idempotency, first, in step 210, the service ID delivered as an argument is notified to the management unit 24, and the notified service ID is sent. The management unit 24 is inquired about the processing result (status) of the service. In the next step 212, based on the information notified from the management unit 24, the processing result when the lower-level service 2 has been executed in the past as a lower-level service corresponding to the service with the service ID delivered as an argument this time. And the process branches according to the determined processing result. If it is found in the previous steps 200 and 202 that the execution of the service with the service ID delivered as an argument has not been requested in the past, the execution of step 210 is skipped, and the processing result in step 212 is You may make it determine with "processing unfinished."

ステップ212で判定した処理結果が「不明」又は「確認不能」(例えば管理部24から結果確認呼出部36へ下位サービス2の処理結果の確認が要求されたものの、パッケージ・ラッパー48との通信リンクが確立していなかった等の場合))である場合は、処理実行部APIに制御を戻す。この場合、処理実行部APIによって(処理結果確認の)リトライやリトライ回数の監視等の処理が行われる。また、判定した処理結果が「業務エラー」である場合は、処理結果が「業務エラー」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合、下位サービス3の実行を要求するサービス要求の送信はスキップされる。また、判定した処理結果が「処理済」である場合は、下位サービス2の実行を要求するサービス要求の送信をスキップしてステップ220へ移行する。   The processing result determined in step 212 is “unknown” or “cannot be confirmed” (for example, the management unit 24 requests the result confirmation calling unit 36 to confirm the processing result of the lower service 2 but the communication link with the package wrapper 48. In the case where the process is not established, etc.), the control is returned to the process execution unit API. In this case, processing such as a retry (for confirming the processing result) and monitoring the number of retries is performed by the processing execution unit API. Further, when the determined processing result is “business error”, the caller of the processing execution unit 26 is notified through the processing execution unit API that the processing result is “business error”. In this case, transmission of a service request for requesting execution of the lower service 3 is skipped. If the determined processing result is “processed”, transmission of a service request for requesting execution of the lower service 2 is skipped, and the process proceeds to step 220.

一方、判定した処理結果が「処理未済」である場合はステップ214へ移行し、まず引数として引き渡されたサービスIDをサービスID生成部30へ通知して下位サービス2のサービスIDの生成を要求し、サービスID生成部30で生成された下位サービス2のサービスIDを、管理部24を通じ、引数として引き渡されたサービスIDと対応付けて処理状況テーブル38に記憶させると共に、当該下位サービス2のサービスIDを下位サービス2に対応するサービス呼出部32へ通知し、下位サービス2の実行を指示する。これにより、下位サービス2に対応するサービス呼出部32ではサービス呼出部処理(後述)が行われ、パッケージ・ラッパー48へサービス要求が送信される。   On the other hand, if the determined processing result is “processing not yet completed”, the process proceeds to step 214, and the service ID generated as an argument is first notified to the service ID generation unit 30 to request generation of the service ID of the lower service 2. The service ID of the lower service 2 generated by the service ID generation unit 30 is stored in the processing status table 38 in association with the service ID delivered as an argument through the management unit 24, and the service ID of the lower service 2 Is notified to the service calling unit 32 corresponding to the lower service 2 and the execution of the lower service 2 is instructed. As a result, the service calling unit 32 corresponding to the lower service 2 performs service calling unit processing (described later), and a service request is transmitted to the package wrapper 48.

また、下位サービス2に対応するサービス呼出部32から処理結果が通知されると、次のステップ216において、通知された処理結果に応じて処理を分岐する。すなわち、通知された処理結果が「不明」又は「処理未済」である場合は、処理実行部APIに制御を戻す。この場合、処理実行部APIによってリトライやリトライ回数の監視等の処理が行われる。また、通知された処理結果が「業務エラー」である場合は、処理結果が「業務エラー」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合、下位サービス3の実行を要求するサービス要求の送信はスキップされる。   In addition, when the processing result is notified from the service calling unit 32 corresponding to the lower service 2, in the next step 216, the processing is branched according to the notified processing result. That is, when the notified processing result is “unknown” or “processing not yet completed”, the control is returned to the processing execution unit API. In this case, processing such as retry and monitoring of the number of retries is performed by the process execution unit API. Further, when the notified processing result is “business error”, the processing result is “business error” and is notified to the caller of the processing execution unit 26 through the processing execution unit API. In this case, transmission of a service request for requesting execution of the lower service 3 is skipped.

一方、通知された処理結果が「処理済」である場合は、下位サービス2の処理も正常に終了しているのでステップ220へ移行する。下位サービス3は冪等性を有しているので、ステップ220では、先のステップ204と同様に下位サービス3の処理状況に拘わらず、下位サービス3(ここではMBラッパー50による下位サービス)の実行を、下位サービス3に対応するサービス呼出部32へ指示する。これにより、下位サービス3に対応するサービス呼出部32ではサービス呼出部処理(後述)が行われ、MBラッパー50へサービス要求が送信される。   On the other hand, if the notified processing result is “processed”, the processing of the lower-level service 2 is also completed normally, and the process proceeds to step 220. Since the lower service 3 has idempotency, the execution of the lower service 3 (here, the lower service by the MB wrapper 50) is executed in step 220 regardless of the processing status of the lower service 3 as in the previous step 204. To the service calling unit 32 corresponding to the lower service 3. As a result, the service calling unit 32 corresponding to the lower service 3 performs service calling unit processing (described later), and a service request is transmitted to the MB wrapper 50.

なお、今回引数として引き渡されたサービスIDのサービスの実行が過去に要求されていない場合は、サービス呼出部32への指示に先立ち、引数として引き渡されたサービスIDをサービスID生成部30へ通知して下位サービス3のサービスIDの生成を要求し、サービスID生成部30で生成された下位サービス3のサービスIDを、管理部24を通じ、引数として引き渡されたサービスIDと対応付けて処理状況テーブル38に記憶させると共に、当該下位サービス3のサービスIDをサービス呼出部32へ通知する処理も行われる。また、同一のサービスIDのサービスの実行が過去に要求されている場合は、サービス呼出部32への指示に先立ち、管理部24から通知された情報より対応する下位サービス3のサービスIDを抽出し、抽出したサービスIDをサービス呼出部32へ通知する処理も行われる。   If the execution of the service with the service ID delivered as an argument has not been requested in the past, the service ID generated as an argument is notified to the service ID generation unit 30 prior to the instruction to the service calling unit 32. The processing status table 38 requests the generation of the service ID of the lower service 3 and associates the service ID of the lower service 3 generated by the service ID generation unit 30 with the service ID delivered as an argument through the management unit 24. And the process of notifying the service calling unit 32 of the service ID of the lower service 3 is also performed. If execution of a service with the same service ID has been requested in the past, the service ID of the lower service 3 corresponding to the information notified from the management unit 24 is extracted prior to the instruction to the service calling unit 32. The process of notifying the extracted service ID to the service calling unit 32 is also performed.

また、下位サービス3に対応するサービス呼出部32から処理結果が通知されると、次のステップ222において、通知された処理結果に応じて処理を分岐する。すなわち、通知された処理結果が「不明」又は「処理未済」である場合は、処理実行部APIに制御を戻す。この場合、処理実行部APIによってリトライやリトライ回数の監視等の処理が行われる。また、通知された処理結果が「業務エラー」である場合は、処理結果が「業務エラー」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。また、一方、通知された処理結果が「処理済」である場合は、下位サービス3の処理も正常に終了しているので、処理結果が「処理済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。   When the processing result is notified from the service calling unit 32 corresponding to the lower service 3, the process branches in the next step 222 according to the notified processing result. That is, when the notified processing result is “unknown” or “processing not yet completed”, the control is returned to the processing execution unit API. In this case, processing such as retry and monitoring of the number of retries is performed by the process execution unit API. Further, when the notified processing result is “business error”, the processing result is “business error” and is notified to the caller of the processing execution unit 26 through the processing execution unit API. On the other hand, if the notified processing result is “processed”, the processing of the lower-level service 3 is also completed normally, so that the processing result is “processed” through the process execution unit API. Notify the caller of the execution unit 26.

続いて、図8に示す処理実行部処理について、図7に示す処理実行部処理と異なる部分のみ説明する。図8に示す処理実行部処理は、図7に示す処理実行部処理と同様に、BPEL44の処理実行部26に対して冪等呼び出しによってサービスの実行が要求され、処理実行部26で補償処理を行わない、という条件に対応しており、下位のサービス処理部へのサービス要求等のリトライ及びリトライ回数の監視が、処理実行部APIに代えて業務プログラムによって行われる点で図7に示す処理実行部処理と相違している。   Next, only the process execution unit process shown in FIG. 8 will be described, which is different from the process execution unit process shown in FIG. In the process execution unit process shown in FIG. 8, similar to the process execution unit process shown in FIG. 7, execution of a service is requested by an idempotent call to the process execution unit 26 of the BPEL 44, and the process execution unit 26 performs compensation processing. The processing execution shown in FIG. 7 corresponds to the condition that it is not performed, and the monitoring of the retry of the service request to the lower service processing unit and the number of retries is performed by the business program instead of the processing execution unit API. Part processing.

すなわち、図8に示す処理実行部処理では、ステップ204で下位サービス1に対応するサービス呼出部32へ下位サービス1の実行を指示し、ステップ206で下位サービス1に対応するサービス呼出部32から通知された処理結果が「不明」又は「処理未済」であった場合に、ステップ208において、下位サービス1を行うプロバイダ46へサービス要求を送信した回数が規定値に達したか否かを判定することで、プロバイダ46へのサービス要求の再送信(リトライ)を行うか否か判定する。プロバイダ46へのサービス要求の送信回数が規定値未満の場合はステップ204に戻り、下位サービス1に対応するサービス呼出部32へ下位サービス1の実行を再度指示することで、プロバイダ46へサービス要求を再送信させる。また、プロバイダ46へのサービス要求の送信回数が規定値に達した場合は、処理結果が「不明」又は「処理未済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合、下位サービス2,3の実行を要求するサービス要求の送信はスキップされる。   That is, in the processing execution unit process shown in FIG. 8, in step 204, the service calling unit 32 corresponding to the lower service 1 is instructed to execute the lower service 1, and the service calling unit 32 corresponding to the lower service 1 is notified in step 206. If the processed result is “unknown” or “processing not yet completed”, it is determined in step 208 whether or not the number of times the service request has been transmitted to the provider 46 that performs the lower service 1 has reached a specified value. Then, it is determined whether or not to retransmit (retry) the service request to the provider 46. If the number of service request transmissions to the provider 46 is less than the prescribed value, the process returns to step 204, and the service call unit 32 corresponding to the lower service 1 is instructed to execute the lower service 1 again, whereby the service request is sent to the provider 46. Let it be resent. When the number of service request transmissions to the provider 46 reaches a specified value, the process execution unit API notifies the caller of the process execution unit 26 that the process result is “unknown” or “unprocessed”. . In this case, transmission of a service request requesting execution of the lower services 2 and 3 is skipped.

また、図8に示す処理実行部処理では、ステップ210でサービスの処理結果(状況)を管理部24に問い合わせ、ステップ212で判定した下位サービス2の処理結果が「不明」又は「確認不能」であった場合、及び、ステップ214で下位サービス2に対応するサービス呼出部32へ下位サービス2の実行を指示し、ステップ216で下位サービス2に対応するサービス呼出部32から通知された処理結果が「不明」又は「処理未済」であった場合に、ステップ218において、下位サービス2の処理結果を確認した回数又はパッケージ・ラッパー48へサービス要求を送信した回数が規定値に達したか否かを判定することで、上記処理を再度行うか否か判定する。下位サービス2は冪等性を有していないので、下位サービス2の処理結果を確認した回数又はパッケージ・ラッパー48へサービス要求を送信した回数が規定値未満の場合はステップ210に戻り、下位サービス2の処理結果確認以降の処理を再度行う。また、下位サービス2の処理結果を確認した回数又はパッケージ・ラッパー48へサービス要求を送信した回数が規定値に達した場合は、処理結果が「不明」又は「処理未済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合、下位サービス3の実行を要求するサービス要求の送信はスキップされる。   In the process execution unit process shown in FIG. 8, the service process result (situation) is inquired to the management unit 24 in step 210, and the process result of the lower service 2 determined in step 212 is “unknown” or “cannot be confirmed”. If there is, and in step 214, the service calling unit 32 corresponding to the lower service 2 is instructed to execute the lower service 2, and the processing result notified from the service calling unit 32 corresponding to the lower service 2 in step 216 is “ If “unknown” or “unprocessed”, it is determined in step 218 whether the number of times the processing result of the lower service 2 has been confirmed or the number of times the service request has been transmitted to the package wrapper 48 has reached a specified value. By doing so, it is determined whether or not the above processing is performed again. Since the lower service 2 does not have idempotency, if the number of times the processing result of the lower service 2 is confirmed or the number of times the service request is transmitted to the package wrapper 48 is less than the specified value, the process returns to step 210, The processing after the processing result confirmation of 2 is performed again. If the number of times the processing result of the lower service 2 is confirmed or the number of times the service request is transmitted to the package wrapper 48 reaches a specified value, the processing result is “Unknown” or “Processing not completed”. Notification is made to the caller of the process execution unit 26 through the section API. In this case, transmission of a service request for requesting execution of the lower service 3 is skipped.

また、図8に示す処理実行部処理では、ステップ220で下位サービス3に対応するサービス呼出部32へ下位サービス3の実行を指示し、ステップ222で下位サービス3に対応するサービス呼出部32から通知された処理結果が「不明」又は「処理未済」であった場合に、ステップ224において、下位サービス3を行うMBラッパー50へサービス要求を送信した回数が規定値に達したか否かを判定することで、MBラッパー50へのサービス要求の再送信(リトライ)を行うか否か判定する。MBラッパー50へのサービス要求の送信回数が規定値未満の場合はステップ220に戻り、下位サービス3に対応するサービス呼出部32へ下位サービス3の実行を再度指示することで、MBラッパー50へサービス要求を再送信させる。また、MBラッパー50へのサービス要求の送信回数が規定値に達した場合は、処理結果が「不明」又は「処理未済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。   In the process execution unit process shown in FIG. 8, the service call unit 32 corresponding to the lower service 3 is instructed to execute the lower service 3 in step 220, and the service call unit 32 corresponding to the lower service 3 is notified in step 222. If the processed result is “unknown” or “processing not completed”, it is determined in step 224 whether or not the number of times the service request has been transmitted to the MB wrapper 50 that performs the lower-level service 3 has reached a specified value. Thus, it is determined whether or not to retransmit (retry) the service request to the MB wrapper 50. If the number of service request transmissions to the MB wrapper 50 is less than the specified value, the process returns to step 220, and the service call unit 32 corresponding to the lower service 3 is instructed to execute the lower service 3 again, thereby providing the service to the MB wrapper 50. Causes the request to be resent. When the number of service request transmissions to the MB wrapper 50 reaches a specified value, the process execution unit API notifies the caller of the process execution unit 26 that the process result is “unknown” or “unprocessed”. To do.

続いて、図9に示す処理実行部処理について、図7に示す処理実行部処理と異なる部分のみ説明する。図9に示す処理実行部処理は、BPEL44の処理実行部26に対して冪等呼び出しによってサービスの実行が要求され、処理実行部26で補償処理を行う、という条件に対応しており、下位のサービス処理部からの応答のタイムアウトの監視、下位のサービス処理部へのサービス要求等のリトライ及びリトライ回数の監視等の処理は、図7に示す処理実行部処理と同様に処理実行部APIによって行われる。   Next, only the processing execution unit processing shown in FIG. 9 that is different from the processing execution unit processing shown in FIG. 7 will be described. The process execution unit process shown in FIG. 9 corresponds to the condition that the execution of the service is requested by the idempotent call to the process execution unit 26 of the BPEL 44 and the process execution unit 26 performs the compensation process. Processing such as monitoring of response timeout from the service processing unit, retry of service requests to lower service processing units, and monitoring of the number of retries is performed by the processing execution unit API in the same manner as the processing execution unit processing shown in FIG. Is called.

図9に示す処理実行部処理では、ステップ210でサービスの処理結果(状況)を管理部24に問い合わせ、ステップ212で判定した下位サービス2の処理結果が「業務エラー」であった場合、及び、ステップ214で下位サービス2に対応するサービス呼出部32へ下位サービス2の実行を指示し、ステップ216で下位サービス2に対応するサービス呼出部32から通知された処理結果が「業務エラー」であった場合にステップ230へ移行する。この場合、今回引数として引き渡されたサービスIDのサービスに対応する下位サービスのうち、下位サービス1は処理結果が「処理済」であるのに対し、下位サービス2は処理結果が「業務エラー」で処理が未了であるので、データに矛盾が生じている。   In the process execution unit process shown in FIG. 9, the service process result (situation) is inquired to the management unit 24 in step 210, and the process result of the lower service 2 determined in step 212 is “business error”; In step 214, the service calling unit 32 corresponding to the lower service 2 is instructed to execute the lower service 2. In step 216, the processing result notified from the service calling unit 32 corresponding to the lower service 2 is “business error”. If so, go to Step 230. In this case, among the lower services corresponding to the service with the service ID delivered as the argument this time, the processing result of the lower service 1 is “processed”, while the processing result of the lower service 2 is “business error”. Since the processing has not been completed, there is a contradiction in the data.

このため、ステップ230では、データの整合性をとるために、下位サービス1に対応するサービス呼出部32に対し、下位サービス1のサービスIDとして先のステップ204と同一のサービスIDを通知し、当該サービスIDの下位サービス1として先に実行した処理を取り消す処理の実行を要求するサービス要求の送信を指示する。これにより、下位サービス1に対応するサービス呼出部32ではサービス呼出部処理(後述)が行われ、プロバイダ46へ上記のサービス要求が送信される。そして、先に実行した処理を取り消す処理がプロバイダ46によって行われることで、先に実行した処理で更新されたデータがあれば当該データが元のデータへ復元され、データの矛盾が解消される(データの整合性が確保される)ことになる。   Therefore, in step 230, in order to ensure data consistency, the service call unit 32 corresponding to the lower service 1 is notified of the same service ID as that in the previous step 204 as the service ID of the lower service 1. Instructs transmission of a service request for requesting execution of a process for canceling the process previously executed as the lower service 1 of the service ID. As a result, the service calling unit 32 corresponding to the lower service 1 performs service calling unit processing (described later), and the service request is transmitted to the provider 46. Then, the process of canceling the previously executed process is performed by the provider 46, so that if there is data updated by the previously executed process, the data is restored to the original data, and the inconsistency of the data is resolved ( Data consistency is ensured).

また、下位サービス1に対応するサービス呼出部32から処理結果が通知されると、次のステップ232において、通知された処理結果に応じて処理を分岐する。すなわち、通知された処理結果が「処理済」の場合は、処理結果が「業務エラー」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。また通知された処理結果が「業務エラー」又は「処理未済」又は「不明」の場合は、処理結果が「取消失敗」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合は、データの矛盾が解消して整合性が確保する処理は、バッチ処理等の別処理によって行われることになる。   Further, when the processing result is notified from the service calling unit 32 corresponding to the lower service 1, in the next step 232, the processing is branched according to the notified processing result. That is, when the notified processing result is “processed”, the processing result is “business error” and is notified to the calling source of the processing execution unit 26 through the processing execution unit API. When the notified processing result is “business error”, “processing not yet completed”, or “unknown”, the processing execution unit API notifies the caller of the processing execution unit 26 that the processing result is “cancellation failure”. . In this case, the process of resolving the data inconsistency and ensuring the consistency is performed by another process such as a batch process.

また、図9に示す処理実行部処理では、ステップ220で下位サービス3に対応するサービス呼出部32へ下位サービス3の実行を指示し、ステップ222で下位サービス3に対応するサービス呼出部32から通知された処理結果が「業務エラー」であった場合にステップ226へ移行する。この場合、今回引数として引き渡されたサービスIDのサービスに対応する下位サービスのうち、下位サービス1,2は処理結果が「処理済」であるのに対し、下位サービス3は処理結果が「業務エラー」で処理が未了であるので、データに矛盾が生じている。   In the process execution unit process shown in FIG. 9, the service call unit 32 corresponding to the lower service 3 is instructed to execute the lower service 3 in step 220, and the service call unit 32 corresponding to the lower service 3 is notified in step 222. If the processed result is “business error”, the process proceeds to step 226. In this case, among the lower services corresponding to the service with the service ID delivered as an argument this time, the processing results of the lower services 1 and 2 are “processed”, whereas the lower service 3 has the processing result “business error” Since the processing is not yet completed, there is a contradiction in the data.

このため、ステップ226では、データの整合性をとるために、下位サービス2に対応するサービス呼出部32に対し、下位サービス2のサービスIDとして先のステップ214と同一のサービスIDを通知し、当該サービスIDの下位サービス2として先に実行した処理を取り消す処理の実行を要求するサービス要求の送信を指示する。これにより、下位サービス2に対応するサービス呼出部32ではサービス呼出部処理(後述)が行われ、パッケージ・ラッパー48へ上記のサービス要求が送信される。そして、先に実行した処理を取り消す処理がパッケージ・ラッパー48によって行われることで、先に実行した処理で更新されたデータがあれば、当該データが元のデータへ復元される。   Therefore, in step 226, in order to ensure data consistency, the service call unit 32 corresponding to the lower service 2 is notified of the same service ID as in the previous step 214 as the service ID of the lower service 2. Instructs the transmission of a service request for requesting execution of a process for canceling the process previously executed as the lower service 2 of the service ID. As a result, the service calling unit 32 corresponding to the lower-level service 2 performs service calling unit processing (described later), and the service request is transmitted to the package wrapper 48. Then, the process for canceling the previously executed process is performed by the package wrapper 48, and if there is data updated by the previously executed process, the data is restored to the original data.

また、下位サービス2に対応するサービス呼出部32から処理結果が通知されると、次のステップ228において、通知された処理結果に応じて処理を分岐する。通知された処理結果が「業務エラー」又は「処理未済」又は「不明」の場合は、処理結果が「取消失敗」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合は、データの矛盾が解消して整合性が確保する処理は、バッチ処理等の別処理によって行われる。また、通知された処理結果が「処理済」の場合はステップ230へ移行し、ステップ230で前述した処理が行われることで、先に実行した処理を取り消す処理の実行を要求するサービス要求がプロバイダ46へも送信される。そして、先に実行した処理を取り消す処理がプロバイダ46でも行われ、先に実行した処理で更新されたデータがあれば当該データが元のデータへ復元されることでデータの矛盾が解消される(データの整合性が確保される)ことになる。   Further, when the processing result is notified from the service calling unit 32 corresponding to the lower service 2, in the next step 228, the processing is branched according to the notified processing result. When the notified processing result is “business error”, “processing not yet completed”, or “unknown”, the calling result of the processing execution unit 26 is notified through the processing execution unit API that the processing result is “cancellation failure”. In this case, the process of resolving the data inconsistency and ensuring the consistency is performed by another process such as a batch process. If the notified processing result is “processed”, the process proceeds to step 230, and the above-described processing is performed in step 230, so that a service request for requesting execution of processing that cancels the previously executed processing is sent to the provider. 46 is also transmitted. Then, the process of canceling the previously executed process is also performed by the provider 46, and if there is data updated by the previously executed process, the data is restored to the original data, thereby eliminating the data inconsistency ( Data consistency is ensured).

続いて、図10に示す処理実行部処理について、図7〜図9に示す処理実行部処理と異なる部分のみ説明する。図10に示す処理実行部処理は、BPEL44の処理実行部26に対して非冪等呼び出しによってサービスの実行が要求され、処理実行部26で補償処理を行う、という条件に対応している。また、図10に示す処理実行部処理では、図7に示す処理実行部処理と同様に、下位のサービス処理部へのサービス要求等のリトライ及びリトライ回数の監視等の処理が業務プログラムによって行われる一方、タイムアウトの監視が処理実行部APIによって行われる。   Subsequently, the processing execution unit process illustrated in FIG. 10 will be described only with respect to differences from the processing execution unit process illustrated in FIGS. 7 to 9. The process execution unit process shown in FIG. 10 corresponds to the condition that the process execution unit 26 of the BPEL 44 is requested to execute the service by an unequal call and the process execution unit 26 performs the compensation process. Further, in the process execution unit process shown in FIG. 10, similar to the process execution unit process shown in FIG. 7, processing such as a retry of a service request to a lower service processing unit and monitoring of the number of retries is performed by the business program. On the other hand, timeout monitoring is performed by the process execution unit API.

仮想冪等機能を利用しない非冪等呼び出しでは、同一のサービスIDのサービスの実行が複数回要求されることはないので、図10に示す処理実行部処理ではステップ200,202が省略されており、まずステップ204で下位サービス1に対応するサービス呼出部32へ下位サービス1の実行を指示する。また、次のステップ206で下位サービス1に対応するサービス呼出部32から通知された処理結果が「不明」又は「処理未済」であった場合、図8に示す処理実行部処理と同様に、ステップ208でプロバイダ46へのサービス要求の再送信(リトライ)を行うか否か判定する。プロバイダ46へのサービス要求の送信回数が規定値未満の場合はステップ204に戻り、下位サービス1に対応するサービス呼出部32へ下位サービス1の実行を再度指示することで、プロバイダ46へサービス要求を再送信させる。また、プロバイダ46へのサービス要求の送信回数が規定値に達した場合は、処理結果が「不明」又は「処理未済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合、下位サービス2,3の実行を要求するサービス要求の送信はスキップされる。   In non-idempotent calls that do not use the virtual idempotency function, the execution of the service with the same service ID is not requested more than once, so steps 200 and 202 are omitted in the process execution unit process shown in FIG. First, in step 204, the service calling unit 32 corresponding to the lower service 1 is instructed to execute the lower service 1. Further, when the processing result notified from the service calling unit 32 corresponding to the lower service 1 in the next step 206 is “unknown” or “processing not yet completed”, as in the processing execution unit processing shown in FIG. In 208, it is determined whether or not to retransmit (retry) the service request to the provider 46. If the number of service request transmissions to the provider 46 is less than the prescribed value, the process returns to step 204, and the service call unit 32 corresponding to the lower service 1 is instructed to execute the lower service 1 again, whereby the service request is sent to the provider 46. Let it be resent. When the number of service request transmissions to the provider 46 reaches a specified value, the process execution unit API notifies the caller of the process execution unit 26 that the process result is “unknown” or “unprocessed”. . In this case, transmission of a service request requesting execution of the lower services 2 and 3 is skipped.

また、図10に示す処理実行部処理では、ステップ206で下位サービス1に対応するサービス呼出部32から通知された処理結果が「処理済」であった場合、次のステップ236で下位サービス2に対応するサービス呼出部32へ下位サービス2の実行を指示する。また、下位サービス2に対応するサービス呼出部32から処理結果が通知されるとステップ238へ移行し、通知された下位サービス2の処理結果に応じて処理を分岐する。すなわち、通知された処理結果が「業務エラー」の場合はステップ230へ移行し、図9に示す処理実行部処理と同様に、下位サービス1の実行要求に従ってプロバイダ46が先に実行した処理を取り消す処理をプロバイダ46によって行わせる。また、通知された処理結果が「処理済」の場合はステップ220へ移行する。   Further, in the process execution unit process shown in FIG. 10, when the processing result notified from the service calling unit 32 corresponding to the lower service 1 is “processed” in step 206, the process is changed to the lower service 2 in the next step 236. The corresponding service calling unit 32 is instructed to execute the lower service 2. Further, when the processing result is notified from the service calling unit 32 corresponding to the lower service 2, the process proceeds to step 238, and the process branches according to the notified processing result of the lower service 2. That is, if the notified processing result is “business error”, the process proceeds to step 230 and cancels the processing previously executed by the provider 46 in accordance with the execution request of the lower service 1 as in the processing execution unit processing shown in FIG. Processing is performed by the provider 46. If the notified processing result is “processed”, the process proceeds to step 220.

一方、通知された処理結果が「不明」又は「処理未済」の場合は、下位サービス2が冪等性を有しておらず、かつ図10に示す処理実行部処理が非冪等呼び出しで呼び出されることを考慮し、ステップ240で下位サービス2の処理結果を管理部24に問い合わせ、次のステップ242で下位サービス2の処理結果を判定し、判定した処理結果に応じて処理を分岐する。そして、ステップ240,242の処理を経て下位サービス2の処理結果が「業務エラー」に切り替わった場合はステップ230へ移行する。また、ステップ240,242の処理を経て下位サービス2の処理結果が「処理済」に切り替わった場合はステップ220へ移行する。下位サービス2の処理結果が「不明」の場合は対処の判断が困難であるが、上記のように処理結果を再確認した結果、処理結果が「業務エラー」又は「処理済」に切り替わった場合は対処の判断が容易となる。また、ステップ242で判定した下位サービス2の処理結果が「不明」又は「確認不能」であった場合はステップ240に戻り、ステップ240,242の処理を再度行う。   On the other hand, when the notified processing result is “unknown” or “processing not yet completed”, the lower-level service 2 does not have idempotency, and the process execution unit process shown in FIG. 10 is called by an unequal call. In step 240, the management unit 24 is inquired about the processing result of the lower service 2, and the processing result of the lower service 2 is determined in the next step 242, and the processing is branched according to the determined processing result. If the processing result of the lower service 2 is switched to “business error” through the processing of steps 240 and 242, the process proceeds to step 230. Further, when the processing result of the lower service 2 is switched to “processed” through the processing of steps 240 and 242, the process proceeds to step 220. When the processing result of the subordinate service 2 is “unknown”, it is difficult to determine how to deal with it, but as a result of reconfirming the processing result as described above, the processing result is switched to “business error” or “processed” Makes it easier to decide what to do. If the processing result of the lower service 2 determined in step 242 is “unknown” or “cannot be confirmed”, the process returns to step 240 and the processes of steps 240 and 242 are performed again.

一方、ステップ242で判定した下位サービス2の処理結果が「処理未済」であった場合はステップ244へ移行し、パッケージ・ラッパー48へのサービス要求の再送信(リトライ)を行うか否か判定する。パッケージ・ラッパー48へのサービス要求の送信回数が規定値未満の場合はステップ236に戻り、下位サービス2に対応するサービス呼出部32へ下位サービス2の実行を再度指示することで、パッケージ・ラッパー48へサービス要求を再送信させる。また、パッケージ・ラッパー48へのサービス要求の送信回数が規定値に達した場合は、処理結果が「不明」又は「処理未済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。この場合、下位サービス3の実行を要求するサービス要求の送信はスキップされる。   On the other hand, if the processing result of the lower level service 2 determined in step 242 is “processing not completed”, the process proceeds to step 244 to determine whether or not to retransmit the service request to the package wrapper 48 (retry). . If the number of service request transmissions to the package wrapper 48 is less than the specified value, the process returns to step 236 and the service call unit 32 corresponding to the lower service 2 is instructed to execute the lower service 2 again. To resend the service request. When the number of service request transmissions to the package wrapper 48 reaches a specified value, the process execution unit API informs the caller of the process execution unit 26 that the process result is “unknown” or “unprocessed”. Notice. In this case, transmission of a service request for requesting execution of the lower service 3 is skipped.

また、ステップ220では下位サービス3に対応するサービス呼出部32へ下位サービス3の実行を指示する。また、次のステップ222で下位サービス3に対応するサービス呼出部32から通知された処理結果が「不明」又は「処理未済」であった場合、図8に示す処理実行部処理と同様に、ステップ224でMBラッパー50へのサービス要求の再送信(リトライ)を行うか否か判定する。MBラッパー50へのサービス要求の送信回数が規定値未満の場合はステップ220に戻り、下位サービス3に対応するサービス呼出部32へ下位サービス3の実行を再度指示することで、MBラッパー50へサービス要求を再送信させる。また、MBラッパー50へのサービス要求の送信回数が規定値に達した場合は、処理結果が「不明」又は「処理未済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。   In step 220, the service calling unit 32 corresponding to the lower service 3 is instructed to execute the lower service 3. Further, when the processing result notified from the service calling unit 32 corresponding to the lower service 3 in the next step 222 is “unknown” or “processing not yet completed”, as in the processing execution unit processing shown in FIG. In 224, it is determined whether or not to retransmit (retry) the service request to the MB wrapper 50. If the number of service request transmissions to the MB wrapper 50 is less than the specified value, the process returns to step 220, and the service call unit 32 corresponding to the lower service 3 is instructed to execute the lower service 3 again, thereby providing the service to the MB wrapper 50. Causes the request to be resent. When the number of service request transmissions to the MB wrapper 50 reaches a specified value, the process execution unit API notifies the caller of the process execution unit 26 that the process result is “unknown” or “unprocessed”. To do.

また、図10に示す処理実行部処理では、ステップ222で下位サービス3に対応するサービス呼出部32から通知された処理結果が「業務エラー」の場合はステップ226へ移行し、図9に示す処理実行部処理と同様に、下位サービス2の実行要求に従ってパッケージ・ラッパー48が先に実行した処理を取り消す処理をパッケージ・ラッパー48によって行わせ、続いて、下位サービス1の実行要求に従ってプロバイダ46が先に実行した処理を取り消す処理をプロバイダ46によって行わせる。また、通知された処理結果が「処理済」の場合は処理結果が「処理済」であることを処理実行部APIを通じて処理実行部26の呼出元へ通知する。   In the process execution unit process shown in FIG. 10, if the process result notified from the service calling unit 32 corresponding to the lower service 3 in step 222 is “business error”, the process proceeds to step 226, and the process shown in FIG. Similar to the execution unit process, the package wrapper 48 performs a process of canceling the process previously executed by the package wrapper 48 in accordance with the execution request of the lower service 2, and then the provider 46 precedes the execution request of the lower service 1. The provider 46 performs processing for canceling the processing executed in step S3. When the notified processing result is “processed”, the process execution unit API notifies the caller of the process execution unit 26 that the process result is “processed”.

なお、図7〜図10では、実行が要求されたサービスに対応する自サービスが存在しない場合の処理実行部処理を示しているが、実行が要求されたサービスに対応する自サービスが存在する場合は、処理実行部26により、対応する自サービスの処理を実行し、処理結果を引数として引き渡されたサービスIDと対応付けて処理状況テーブル38に記憶させる処理も行われる。   7 to 10 show the process execution unit process when there is no own service corresponding to the service requested to be executed, but there exists the own service corresponding to the service requested to be executed. The process execution unit 26 executes the process of the corresponding own service, and stores the process result in the process status table 38 in association with the service ID delivered as an argument.

また、下位のサービス処理部が存在するサービス処理部にはサービスID生成部30が設けられており、サービスID生成部30は処理実行部26からサービスIDの生成が要求される毎に、図11に示すサービスID生成部処理を行う。   In addition, a service ID generation unit 30 is provided in a service processing unit in which a lower-level service processing unit exists. The service ID generation unit process shown in FIG.

このサービスID生成部処理では、まずステップ100において、自身(サービスID生成部30)を含むサービス処理部(自サービス処理部)に固有のIDをリクエスタ固有IDとして取得する。自サービス処理部に固有のIDとしては、例えば自サービス処理部が動作しているサービス処理サーバ12のネットワークID等を適用することができる。また、ステップ102では自サービス処理部を実現するサービス処理プログラムを実行しているプロセスに割当てられているIDをプロセス毎IDとして取得する。またステップ104では、リクエスト毎IDとして、サービスIDを生成する毎に異なるIDを決定する。なお、リクエスト毎IDとしては、例えば単純な通番、或いはID決定時の時刻等を適用することができる。そしてステップ106では、各IDを組み合わせたID要素として、例として図16(A)に示すように、リクエスタ固有ID、プロセス毎ID及びリクエスト毎IDを直列に並べたID要素を生成する。   In this service ID generation unit process, first, in step 100, an ID unique to a service processing unit (own service processing unit) including itself (service ID generation unit 30) is acquired as a requester unique ID. As an ID unique to the own service processing unit, for example, the network ID of the service processing server 12 in which the own service processing unit is operating can be applied. In step 102, the ID assigned to the process executing the service processing program for realizing the service processing unit is acquired as the process ID. In step 104, a different ID is determined each time a service ID is generated as the ID for each request. As the ID for each request, for example, a simple serial number or the time when the ID is determined can be applied. In step 106, as an ID element obtained by combining the IDs, an ID element in which the requester unique ID, the process ID, and the request ID are arranged in series is generated as shown in FIG. 16A as an example.

次のステップ108では、自サービス処理部が、より上位のサービス処理部が存在しない最上位のサービス処理部か否か判定する。判定が肯定された場合はステップ110へ移行し、新たなリクエスト毎ID(先のステップ214で決定したリクエスト毎IDとは異なるID)を決定する。次のステップ112では、ステップ110で決定した新たなリクエスト毎IDを、先のステップ100で取得したリクエスタ固有ID、先のステップ102で取得したプロセス毎IDと組み合わせ、新たなID要素(第2のID要素)を生成する。図16(A)に示すように、本実施形態に係るサービスIDは、オリジナルサービスID(OSID)、呼出元サービスID(SSID)及び呼出先サービスID(NSID)から構成されており、次のステップ114では、先のステップ106で生成したID要素をオリジナルサービスID及び呼出元サービスIDに各々設定すると共に、ステップ112で生成した第2のID要素を呼出先サービスIDに設定したサービスIDを生成し(図16(B)に示すサービス処理部Aも参照)、生成したサービスIDを処理実行部26へ通知して処理を終了する。   In the next step 108, it is determined whether or not the own service processing unit is the highest-level service processing unit in which no higher-level service processing unit exists. If the determination is affirmative, the process proceeds to step 110, and a new ID for each request (an ID different from the ID for each request determined in the previous step 214) is determined. In the next step 112, the new request ID determined in step 110 is combined with the requester unique ID acquired in the previous step 100 and the process ID acquired in the previous step 102, and a new ID element (second ID element). As shown in FIG. 16A, the service ID according to this embodiment is composed of an original service ID (OSID), a caller service ID (SSID), and a callee service ID (NSID). In 114, the ID element generated in the previous step 106 is set as the original service ID and the caller service ID, and a service ID is generated in which the second ID element generated in step 112 is set as the callee service ID. (See also the service processing unit A shown in FIG. 16 (B)), and notifies the generated service ID to the processing execution unit 26 and ends the process.

なお、最上位のサービス処理部に設けられたサービスID生成部30によって生成されるサービスIDは、上記のように、オリジナルサービスID及び呼出元サービスIDに設定するID要素と、呼出先サービスIDに設定するID要素を相違させることに限られるものではなく、オリジナルサービスID、呼出元サービスID及び呼出先サービスIDに全て同一のID要素を設定したサービスIDを生成するようにしてもよい。   As described above, the service ID generated by the service ID generation unit 30 provided in the highest-level service processing unit includes the ID element set in the original service ID and the call source service ID, and the call destination service ID. The ID elements to be set are not limited to different ones, and a service ID in which the same ID elements are all set for the original service ID, the caller service ID, and the callee service ID may be generated.

一方、自サービス処理部よりも上位のサービス処理部が存在しており、自サービス処理部が最上位のサービス処理部ではない場合は、ステップ108の判定が否定されてステップ116へ移行する。自サービス処理部が最上位のサービス処理部ではない場合は、自サービス処理部が上位のサービス処理部から受信したサービス要求に付加されていたサービスIDが処理実行部26から通知され、ステップ116では、処理実行部26より通知されたサービスIDから、オリジナルサービスIDとして設定されているID要素と、呼出先サービスIDとして設定されているID要素を各々抽出する。そしてステップ118では、通知されたサービスIDにオリジナルサービスIDとして設定されていたID要素をオリジナルサービスIDに設定すると共に、通知されたサービスIDに呼出先サービスIDとして設定されていたID要素を呼出元サービスIDに設定し、更に、先のステップ216で生成したID要素を呼出先サービスIDに設定したサービスIDを生成し(図16(B)に示すサービス処理部B〜Dも参照)、生成したサービスIDを処理実行部26へ通知して処理を終了する。   On the other hand, if there is a higher-level service processing unit than the self-service processing unit and the self-service processing unit is not the highest-level service processing unit, the determination in step 108 is negative and the process proceeds to step 116. If the own service processing unit is not the highest-level service processing unit, the service execution unit 26 notifies the service ID added to the service request received by the own service processing unit from the higher-level service processing unit. The ID element set as the original service ID and the ID element set as the call destination service ID are extracted from the service ID notified from the process execution unit 26. In step 118, the ID element set as the original service ID in the notified service ID is set as the original service ID, and the ID element set as the call destination service ID in the notified service ID is set as the call source. A service ID is set by setting the service ID, and the ID element generated in the previous step 216 is set as the call destination service ID (see also the service processing units B to D shown in FIG. 16B). The service ID is notified to the process execution unit 26, and the process ends.

本実施形態に係るサービス処理システム10では、サービスID生成部30が、下位のサービス処理部が存在しているサービス処理部に各々設けられており、個々のサービスID生成部30でサービスIDの生成が各々行われるが、上記のように、ID要素にリクエスタ固有IDを含めることで、個々のサービス処理部のサービスID生成部30で生成されるID要素は、少なくとも個々のサービス処理部を単位とする一意性が確保される。また、ID要素にプロセス毎IDを含めることで、個々のサービス処理部のサービスID生成部30で生成されるID要素は、個々のサービス処理部内での一意性も確保される。従って、個々のサービス処理部のサービスID生成部30で生成されるID要素は、サービス処理システム10内における一意性が確保されている(他のID要素と重複していないことが保証されている)ので、一意性が確保されたID要素(サービスID)を生成するために排他制御を伴う採番処理を行う必要はなく、排他制御を伴う採番処理を行うことでサービス処理システム10の性能が著しく低下することを回避できる。   In the service processing system 10 according to the present embodiment, the service ID generation unit 30 is provided in each service processing unit in which a lower-level service processing unit exists, and the service ID generation unit 30 generates a service ID. However, as described above, by including the requester unique ID in the ID element, the ID element generated by the service ID generation unit 30 of each service processing unit has at least the individual service processing unit as a unit. Uniqueness is ensured. Further, by including the ID for each process in the ID element, the ID element generated by the service ID generation unit 30 of each service processing unit is also ensured uniqueness within each service processing unit. Therefore, the ID element generated by the service ID generation unit 30 of each service processing unit is ensured uniqueness within the service processing system 10 (guaranteed not to overlap with other ID elements). Therefore, it is not necessary to perform numbering processing with exclusive control in order to generate an ID element (service ID) in which uniqueness is ensured, and the performance of the service processing system 10 by performing numbering processing with exclusive control. Can be prevented from significantly decreasing.

なお、ID要素にはプロセスIDも含まれているので、同一のサービス処理部として機能するプロセスが単一のサービス処理サーバ12内に複数存在している場合にも、サービス要求に付加されたサービスIDのうちのプロセスIDを参照することで、対応するサービス要求が複数のサービス処理部のうちの何れのサービス処理部で処理されたのかを判断することも可能となる。   Note that since the process ID is included in the ID element, the service added to the service request even when a plurality of processes functioning as the same service processing unit exist in the single service processing server 12. By referring to the process ID of the ID, it is possible to determine which service processing unit of the plurality of service processing units has processed the corresponding service request.

また、上記のサービスID生成部処理を行うことで、最上位のサービス処理部を起点として下位のサービス処理部へ受け渡されるサービスIDは、例として図16(B)に示すように遷移し、オリジナルサービスIDは一定で、上位のサービス処理部が存在する或るサービス処理部から出力される(サービス要求に付加される)サービスIDのうちの呼出元サービスIDには、上位のサービス処理部から受け取ったサービスIDにおける呼出先サービスIDと同一のID要素が設定され、前記或るサービス処理部から出力されるサービスIDのうちの呼出元サービスIDには、前記或るサービス処理部を識別可能なID要素が設定されることになる。これにより、サービス処理システム10内で障害が発生し、特定のサービス処理部に処理未了のサービス要求が滞留した場合にも、滞留しているサービス要求に付加されたサービスIDに呼出元サービスIDとして設定されているID要素から、滞留しているサービス要求を送信したサービス処理部を識別することができ、この識別処理を、対応するサービスID(呼出元サービスIDが呼出先サービスIDと同一のサービスID)を辿りながら繰り返すことで、滞留している処理未了のサービス要求の処理履歴を把握することが可能となる。   In addition, by performing the above service ID generation unit process, the service ID transferred from the highest level service processing unit to the lower level service processing unit transitions as shown in FIG. The original service ID is constant, and the caller service ID of the service ID (added to the service request) that is output from a certain service processing unit in which a higher-level service processing unit exists (from the higher-level service processing unit) The same ID element as the callee service ID in the received service ID is set, and the caller service ID of the service ID output from the certain service processing unit can identify the certain service processing unit An ID element is set. As a result, even when a failure occurs in the service processing system 10 and an unprocessed service request stays in a specific service processing unit, the caller service ID is added to the service ID added to the staying service request. Can be identified from the ID element set as, and this identification process can be identified by the corresponding service ID (caller service ID is the same as the callee service ID). By repeating while tracing the service ID), it is possible to grasp the processing history of the service request that has not been processed yet.

また、サービスIDが呼出元サービスID及び呼出先サービスIDのみから構成されていた場合、例えば図17に示すように、サービス要求がサービス処理部Aからサービス処理部B,Cを経由してサービス処理部D,Eに伝わった後で、サービス処理部B,Cに障害が発生し、サービス処理部B,Cに記録されていた情報が消失したときに、サービス処理部D,Eに呼出元サービスID及び呼出先サービスIDのみから成るサービスIDが記録されていたとすると、当該サービスIDの呼出元ID及び呼出先IDに設定されているID要素に基づいて同一のサービス要求を辿っていくことは不可能である。これに対し、サービスIDにオリジナルサービスIDも加えておくことで、障害発生時もオリジナルIDを参照し、オリジナルサービスIDが同一のサービスIDと対応付けられた情報を同一のサービス要求に対応する情報とみなすことができ、例えばバッチ処理等により、オリジナルサービスIDをキーにして同一のサービス要求に対応する情報を検索・抽出し、データの矛盾を解消して整合性をとるための処理を行うことが可能となる。   If the service ID is composed only of the call source service ID and the call destination service ID, for example, as shown in FIG. 17, a service request is sent from the service processing unit A via the service processing units B and C to perform service processing. After the information is transmitted to the parts D and E, when the failure occurs in the service processing parts B and C, and the information recorded in the service processing parts B and C is lost, If a service ID consisting only of an ID and a call destination service ID is recorded, it is impossible to trace the same service request based on the ID element set in the call source ID and the call destination ID of the service ID. Is possible. On the other hand, by adding the original service ID to the service ID, the information corresponding to the same service request can be obtained by referring to the original ID even when a failure occurs. For example, by searching and extracting information corresponding to the same service request using the original service ID as a key by batch processing or the like, processing for resolving data inconsistencies and performing consistency is performed. Is possible.

また、下位のサービス処理部が存在するサービス処理部には、サービス呼出部32が下位のサービス処理部と同数個設けられており、サービス呼出部32は、処理実行部26から下位サービスのサービスIDが通知されて下位サービスの実行が要求される毎に、図12に示すサービス呼出部処理を行う。このサービス呼出部処理では、まずステップ130において、下位のサービス処理部に対して下位サービスの実行を要求するサービス要求の電文を作成する。なお、この電文には処理実行部26から通知された下位サービスのサービスIDが付加される。次のステップ132では、ステップ130で作成したサービス要求の電文を対応する下位のサービス処理部へ送信する。またステップ134では、対応する下位のサービス処理部へサービス要求の電文を送信したことを表すステータス情報を、送信した電文と共に管理部24の処理状況テーブル38に記憶させる。   The service processing unit in which the lower-level service processing unit exists has the same number of service calling units 32 as the lower-level service processing units. The service calling unit 32 receives the service ID of the lower-level service from the processing execution unit 26. Is notified and the service call unit process shown in FIG. 12 is performed each time execution of a lower-level service is requested. In this service call unit process, first, in step 130, a service request message requesting the lower-level service processing unit to execute the lower-level service is created. The service ID of the lower service notified from the process execution unit 26 is added to this message. In the next step 132, the service request message created in step 130 is transmitted to the corresponding lower-level service processing unit. In step 134, status information indicating that a service request message has been transmitted to the corresponding lower-level service processing unit is stored in the processing status table 38 of the management unit 24 together with the transmitted message.

ステップ132で送信したサービス要求の電文に対し、対応する下位のサービス処理部から応答電文が送信されると、次のステップ136で下位のサービス処理部から送信された応答電文を受信する。またステップ138では、下位のサービス処理部からサービス要求に対する応答電文を受信したことを表すステータス情報を、受信した応答電文と共に管理部24の処理状況テーブル38に記憶させる。受信した応答電文には下位サービスのサービスIDと下位サービスの処理結果を表す情報が含まれており、上記処理によりこれらの情報も処理状況テーブル38に記憶されることになる。そしてステップ140では、下位のサービス処理部からサービス要求に対する応答電文を受信したことを、受信した応答電文に設定されている下位サービスのサービスID及び下位サービスの処理結果と共に処理実行部26へ通知し、サービス呼出部処理を終了する。   When a response message is transmitted from the corresponding lower-level service processing unit to the service request message transmitted in step 132, the response message transmitted from the lower-level service processing unit is received in the next step 136. In step 138, status information indicating that a response message for the service request has been received from the lower-level service processing unit is stored in the processing status table 38 of the management unit 24 together with the received response message. The received response message includes information indicating the service ID of the lower service and the processing result of the lower service, and the information is also stored in the processing status table 38 by the above processing. In step 140, the process execution unit 26 is notified that the response message for the service request has been received from the lower service processing unit together with the service ID of the lower service and the processing result of the lower service set in the received response message. Then, the service calling unit process is terminated.

また、上位のサービス処理部が存在するサービス処理部には処理結果確認部34が設けられており、この処理結果確認部34は、上位のサービス処理部から処理結果確認要求の電文を受信する際に図13に示す処理結果確認部処理を行う。この処理結果確認部処理では、まずステップ150で上位のサービス処理部から処理結果確認要求の電文を受信し、次のステップ152において、上位のサービス処理部から処理結果確認要求の電文を受信したことを表すステータス情報を、受信した電文と共に管理部24の処理状況テーブル38に記憶させる。次のステップ154では受信した電文の内容をチェックし、受信した電文の内容を適正か否か判定する。判定が否定された場合はステップ156へ移行し、上位のサービス処理部へ送信する応答電文にエラーメッセージを設定し、ステップ160へ移行する。   In addition, a processing result confirmation unit 34 is provided in a service processing unit in which a higher-level service processing unit exists, and this processing result confirmation unit 34 receives a processing result confirmation request message from a higher-level service processing unit. The processing result confirmation unit processing shown in FIG. 13 is performed. In this processing result confirmation unit processing, first, in step 150, a processing result confirmation request message is received from the upper service processing unit, and in the next step 152, a processing result confirmation request message is received from the upper service processing unit. Is stored in the processing status table 38 of the management unit 24 together with the received electronic message. In the next step 154, the content of the received message is checked, and it is determined whether or not the content of the received message is appropriate. If the determination is negative, the process proceeds to step 156, an error message is set in the response message transmitted to the higher-level service processing unit, and the process proceeds to step 160.

一方、受信した電文の内容が適正であった場合は、ステップ154の判定が肯定されてステップ158へ移行し、受信した処理結果確認要求の電文に付加されている処理結果確認対象のサービスのサービスIDを抽出し、抽出したサービスIDを管理部24に通知して対応するサービスの処理結果を管理部24に問い合わせる。これにより、管理部24では管理部処理(後述)が行われる。管理部24による管理部処理が終了し、問い合わせた処理結果が通知されると、通知された処理結果を上位のサービス処理部へ送信する応答電文に設定した後にステップ160へ移行する。ステップ160では、ステップ156又はステップ158で生成した応答電文を上位のサービス処理部へ送信する。またステップ162では、上位のサービス処理部へ応答電文を送信したことを表すステータス情報を、送信した応答電文と共に管理部24の処理状況テーブル38に記憶させ、処理結果確認部処理を終了する。   On the other hand, if the content of the received message is appropriate, the determination in step 154 is affirmed, the process proceeds to step 158, and the service of the service subject to processing result confirmation added to the received message of the processing result confirmation request The ID is extracted, the extracted service ID is notified to the management unit 24, and the processing result of the corresponding service is inquired to the management unit 24. As a result, the management unit 24 performs management unit processing (described later). When the management unit process by the management unit 24 is completed and the inquired processing result is notified, the notified processing result is set in a response message to be transmitted to the higher-level service processing unit, and then the process proceeds to step 160. In step 160, the response message generated in step 156 or step 158 is transmitted to the higher-level service processing unit. In step 162, status information indicating that the response message has been transmitted to the higher-level service processing unit is stored in the processing status table 38 of the management unit 24 together with the transmitted response message, and the processing result confirmation unit process is terminated.

また、管理部24では、処理結果確認部34や処理実行部26からサービスIDが通知され、通知されたサービスIDのサービスの処理結果の問い合わせがある毎に、図14に示す管理部処理を行う。   Further, the management unit 24 receives the service ID from the processing result confirmation unit 34 or the processing execution unit 26, and performs the management unit process shown in FIG. 14 every time there is an inquiry about the processing result of the service of the notified service ID. .

この管理部処理では、まずステップ170において、処理結果確認部34又は処理実行部26から通知されたサービスIDをキーにして処理状況テーブル38を検索し、通知されたサービスIDと対応付けて処理状況テーブル38に登録されている処理結果情報(対応する自サービスや下位サービスの処理結果を各々表す情報)を抽出する。次のステップ172では抽出した処理結果情報を参照し、通知されたサービスIDに対応するサービスの中に、処理結果が「不明」の下位サービスが存在しているか否か判定する。処理結果確認対象のサービス(通知されたサービスIDのサービス)に対応する下位サービスが存在しない場合や、対応する下位サービスが存在しているものの、当該下位サービスの処理結果が「処理済」等の場合は判定が否定されてステップ176へ移行し、ステップ170で抽出した処理結果情報が表す処理結果を問い合わせ元の処理結果確認部34又は処理実行部26に通知し、処理を終了する。なお、通知されたサービスIDが処理状況テーブル38に未登録の場合は未登録であることを表す情報を問い合わせ元へ通知する。   In this management unit process, first, in step 170, the processing status table 38 is searched using the service ID notified from the processing result confirmation unit 34 or the processing execution unit 26 as a key, and the processing status is associated with the notified service ID. The processing result information registered in the table 38 (information representing the processing results of the corresponding own service and lower service) is extracted. In the next step 172, the extracted processing result information is referred to, and it is determined whether or not a lower level service whose processing result is “unknown” exists in the service corresponding to the notified service ID. When there is no lower service corresponding to the service for which the processing result is to be confirmed (the service with the notified service ID), or there is a corresponding lower service, the processing result of the lower service is “processed” or the like. In this case, the determination is negative, the process proceeds to step 176, the process result represented by the process result information extracted in step 170 is notified to the process result confirmation unit 34 or the process execution unit 26 that is the inquiry source, and the process ends. If the notified service ID is not registered in the processing status table 38, information indicating that the service ID has not been registered is notified to the inquiry source.

また、処理結果確認対象のサービスに対応する下位サービスが存在しており、かつ当該下位サービスの処理結果が「不明」の場合は、ステップ172の判定が肯定されてステップ174へ移行し、処理結果が「不明」の下位サービスに対応する結果確認呼出部36に対し、処理結果が「不明」の下位サービスのサービスIDを通知し、対応する下位サービスの処理結果の確認を要求する。これにより、結果確認呼出部36では結果確認呼出部処理(後述)が行われる。また、結果確認呼出部36における結果確認呼出部処理が完了し、結果確認呼出部36によって確認された下位サービスの処理結果が通知されるとステップ172に戻る。これにより、処理結果確認対象のサービスに対応するサービスの中に処理結果が「不明」の下位サービスが複数存在している場合はステップ174が繰り返され、該当する全ての下位サービスの処理結果の確認が対応する結果確認呼出部36で各々行われる。そしてステップ172の判定が否定されるとステップ176へ移行し、結果確認呼出部36から通知された下位サービスの処理結果を含め、 処理結果確認対象のサービスの処理結果を問い合わせ元の処理結果確認部34又は処理実行部26に通知し、処理を終了する。   If there is a lower service corresponding to the service for which the processing result is to be confirmed and the processing result of the lower service is “unknown”, the determination in step 172 is affirmed and the process proceeds to step 174, and the processing result Is notified to the result confirmation calling unit 36 corresponding to the lower service whose “unknown” is the service ID of the lower service whose processing result is “unknown”, and requests confirmation of the processing result of the corresponding lower service. As a result, the result confirmation calling unit 36 performs result confirmation calling unit processing (described later). When the result confirmation calling unit process in the result confirmation calling unit 36 is completed and the processing result of the lower service confirmed by the result confirmation calling unit 36 is notified, the process returns to step 172. As a result, if there are a plurality of lower-level services whose processing results are “unknown” in the service corresponding to the service whose processing results are to be confirmed, step 174 is repeated, and the processing results of all corresponding lower-level services are confirmed. Is performed by the corresponding result confirmation calling unit 36. If the determination in step 172 is negative, the process proceeds to step 176 where the processing result of the service subject to processing result confirmation including the processing result of the lower service notified from the result confirmation calling unit 36 is displayed. 34 or the process execution unit 26, and the process ends.

また、下位のサービス処理部が存在するサービス処理部には、結果確認呼出部36が下位のサービス処理部と同数個設けられており、結果確認呼出部36は、管理部24から下位サービスのサービスIDが通知されて下位サービスの処理結果の確認が要求される毎に、図15に示す結果確認呼出部処理を行う。この結果確認呼出部処理では、まずステップ180において、下位のサービス処理部に対して下位サービスの処理結果の通知を要求する処理結果確認要求の電文を作成する。なお、この電文には管理部24から通知された下位サービスのサービスIDが付加される。次のステップ182では、ステップ180で作成した処理結果確認要求の電文を対応する下位のサービス処理部へ送信する。またステップ184では、対応する下位のサービス処理部へ処理結果確認要求の電文を送信したことを表すステータス情報を、送信した電文と共に管理部24の処理状況テーブル38に記憶させる。   In the service processing unit in which the lower-level service processing unit exists, the same number of result confirmation calling units 36 as the lower-level service processing units are provided. The result confirmation calling unit 36 receives the service of the lower service from the management unit 24. Each time the ID is notified and confirmation of the processing result of the lower service is requested, the result confirmation calling unit processing shown in FIG. 15 is performed. In this result confirmation calling unit process, first, in step 180, a processing result confirmation request message for requesting the lower service processing unit to notify the lower service processing result is created. Note that the service ID of the lower service notified from the management unit 24 is added to this message. In the next step 182, the processing result confirmation request message generated in step 180 is transmitted to the corresponding lower-level service processing unit. In step 184, status information indicating that the processing result confirmation request message has been transmitted to the corresponding lower-level service processing unit is stored in the processing status table 38 of the management unit 24 together with the transmitted message.

ステップ182で送信した処理結果確認要求の電文に対し、対応する下位のサービス処理部から応答電文が送信されると、次のステップ186で下位のサービス処理部から送信された応答電文を受信する。またステップ188では、下位のサービス処理部から処理結果確認要求に対する応答電文を受信したことを表すステータス情報を、受信した応答電文と共に管理部24の処理状況テーブル38に記憶させる。受信した応答電文には下位サービスのサービスIDと下位サービスの処理結果を表す情報が含まれており、上記処理によりこれらの情報も処理状況テーブル38に記憶されることになる。そしてステップ190では、下位のサービス処理部から処理結果確認要求に対する応答電文を受信したことを、受信した応答電文に設定されている下位サービスのサービスID及び下位サービスの処理結果と共に管理部24へ通知し、処理結果確認呼出部処理を終了する。   When a response message is transmitted from the corresponding lower-level service processing unit to the message of the processing result confirmation request transmitted at step 182, the response message transmitted from the lower-level service processing unit is received at the next step 186. In step 188, status information indicating that a response message for the processing result confirmation request has been received from the lower-level service processing unit is stored in the processing status table 38 of the management unit 24 together with the received response message. The received response message includes information indicating the service ID of the lower service and the processing result of the lower service, and the information is also stored in the processing status table 38 by the above processing. In step 190, the management unit 24 is notified that the response message for the processing result confirmation request has been received from the lower-level service processing unit, together with the service ID of the lower-level service set in the received response message and the processing result of the lower-level service. Then, the processing result confirmation calling unit processing is terminated.

なお、上記では、サービス処理部の機能を便宜的に各機能ブロック毎に分けて説明したが、個々のサービス処理サーバ12をサービス処理部として機能させるサービス処理プログラムは、各機能ブロック毎に分けられていてもよいし、一体化されていてもよい。   In the above description, the functions of the service processing unit have been described separately for each functional block for convenience. However, a service processing program that causes each service processing server 12 to function as a service processing unit is divided for each functional block. Or may be integrated.

また、個々のサービス処理部をリファレンスモデルに準拠して構築することで、個々のサービス処理部における処理はその大部分が定型処理になり、サービス処理部を実現するプログラムのうち、サービス受付部28やサービスID生成部30、サービス呼出部32、処理結果確認部34、結果確認呼出部36を実現するプログラム、及び、処理実行部26を実現するプログラムのうちの処理実行部APIは部品化することが可能である。これにより、プログラム開発者は、部品化したプログラムを流用してサービス処理プログラムを開発することができ、個々のサービス処理部毎に異なる特有処理を実現するプログラム(例えば処理実行部26の業務プログラム)の開発に専念できるので、プログラム開発者の負担の大幅な軽減、プログラム開発に要する期間の大幅な短縮を実現することができる。   In addition, by constructing individual service processing units in accordance with the reference model, most of the processing in the individual service processing units is routine processing, and among the programs that implement the service processing unit, the service reception unit 28 In addition, the program for realizing the service ID generating unit 30, the service calling unit 32, the processing result confirming unit 34, the result confirming calling unit 36, and the processing executing unit API among the programs realizing the processing executing unit 26 should be made into components. Is possible. As a result, the program developer can develop a service processing program by diverting the componentized program, and a program that realizes different specific processing for each service processing unit (for example, a business program of the processing execution unit 26). Therefore, the burden on the program developer can be greatly reduced, and the time required for program development can be greatly shortened.

また、サービス処理システム10における各サービス処理部のうち、BPEL44ではサービス処理プログラムがBPELのプラットフォーム上で動作するので、BPELが提供する機能を利用することで、仮想冪等機能を実現する処理実行部26のプログラムをより容易に開発することが可能となる。すなわち、BPELのプラットフォームは、或るプログラムが呼び出される毎に、呼び出されたプログラムを実行するプロセス(インスタンスともいう)を生成し、メモリ12B等の記憶手段の記憶領域のうち生成したプロセスに対応する所定領域(BO(Business Objects)という)に、呼出時の引数を設定すると共に、生成したプロセスにおける処理の進行状態を表す状態情報も設定し、対応するプロセスにおける処理の進行状態の変化に応じて状態情報を適宜更新する、という機能を提供している。   Among the service processing units in the service processing system 10, since the service processing program runs on the BPEL platform in the BPEL 44, a processing execution unit that realizes a function such as a virtual bag by using a function provided by the BPEL. 26 programs can be developed more easily. That is, every time a certain program is called, the BPEL platform generates a process (also referred to as an instance) for executing the called program, and corresponds to the generated process in the storage area of the storage means such as the memory 12B. In addition to setting an argument at the time of calling in a predetermined area (called BO (Business Objects)), state information indicating the progress of processing in the generated process is also set, and according to changes in the progress of processing in the corresponding process It provides a function to update state information as appropriate.

このため、上記機能を利用し、例として図18に示すように、サービス処理部のプログラムのうち、少なくとも処理実行部26として機能するプログラム(当該プログラムにはサービス受付部28として機能するプログラムやサービス呼出部32として機能するプログラムも含まれていてもよい)を、サービスID及び冪等フラグを引数として呼び出され、起動されると、自プロセスと同一のサービスIDを引数として生成された他プロセスが存在しているか否かを確認する(図18の「処理結果確認」も参照)ように構成すれば、今回の呼び出しに対応するサービス要求が、過去に受けたサービス要求の再送であるか否かを簡単に確認することができる。また、上記プログラムを、自プロセスと同一のサービスIDを引数として生成された他プロセスが存在している場合に、該当する他プロセス(該当する他プロセスが複数存在している場合は、そのうちの最新の(最後に生成された)他プロセス)のBOから状態情報をコピーする(図18の「BOコピー」も参照)ように構成することで、今回の呼び出しに対応するサービス要求を前回受けた際の処理の状態を継承し、前回の処理の続きから開始することを簡易な処理で実現することができる。また、上記プログラムを、実行が要求されたサービスに対応する非冪等の下位サービスが存在する場合に、当該下位サービスの処理結果を確認し、「処理済」であれば下位サービスの実行要求をスキップする(図18の「実行済?」も参照)ように構成することで、仮想冪等機能を簡易な処理によって実現することができる。このように、BPELのプラットフォームの特徴を利用することで、サービス処理プログラムの開発負荷を更に削減することが可能となる。   Therefore, by using the above function, as shown in FIG. 18 as an example, among the programs of the service processing unit, at least a program that functions as the processing execution unit 26 (the program or service that functions as the service reception unit 28 in the program) When a program that functions as the calling unit 32 may be included) with the service ID and the idempotent flag as arguments and started, another process that is generated with the same service ID as the own process is called If it is configured to check whether or not it exists (see also “process result check” in FIG. 18), whether or not the service request corresponding to the current call is a retransmission of a service request received in the past. Can be easily confirmed. In addition, when there is another process generated with the same service ID as the argument of the above program as an argument, the corresponding other process (if there are multiple corresponding other processes, the latest When the service request corresponding to this call is received last time, the status information is copied from the BO of (the last generated other process) (see also “BO copy” in FIG. 18). Inheriting the state of this process, starting from the continuation of the previous process can be realized with a simple process. In addition, when there is a non-defective lower level service corresponding to the service requested to execute the above program, the processing result of the lower level service is confirmed. By configuring so as to skip (see also “executed?” In FIG. 18), a function such as a virtual bag can be realized by a simple process. In this way, by utilizing the features of the BPEL platform, the development load of the service processing program can be further reduced.

また、本実施形態に係るサービス処理システム10では、個々のサービス処理部がサービス要求や処理結果確認要求の受信時に、図3や図4に示す処理シーケンスで処理を行うことで、最上位のサービス処理部が送信したサービス要求や処理結果確認要求が複数段のサービス処理部に亘って連鎖することになる。以下、最上位のサービス処理部からサービス要求や処理結果確認要求が送信された場合の、サービス処理システム10全体としての処理シーケンスを説明する。なお以下では、対象サービスが、プロバイダ46、パッケージ・ラッパー48及びMBラッパー50の各々による下位サービスの実行を必要とするサービスであるものとする。   Further, in the service processing system 10 according to the present embodiment, when each service processing unit receives a service request or a processing result confirmation request, it performs processing in the processing sequence shown in FIG. 3 or FIG. The service request and the processing result confirmation request transmitted by the processing unit are chained over a plurality of stages of service processing units. Hereinafter, a processing sequence of the service processing system 10 as a whole when a service request or a processing result confirmation request is transmitted from the highest-level service processing unit will be described. In the following, it is assumed that the target service is a service that requires the execution of the lower level service by each of the provider 46, the package wrapper 48, and the MB wrapper 50.

最上位のサービス処理部(リクエスタ42)に対してサービスの実行が指示された場合のシーケンスの一例を図19に示す。このシーケンスでは、リクエスタ42に対してサービスの実行が指示されると、リクエスタ42のサービスID生成部30によって下位サービスのサービスID(BPEL44へ送信するサービスID)が生成され(図19のステップ260も参照)、リクエスタ42のサービス呼出部32によってBPEL44へサービス要求が送信される。   FIG. 19 shows an example of a sequence in the case where execution of a service is instructed to the highest-level service processing unit (requester 42). In this sequence, when the requester 42 is instructed to execute the service, the service ID generation unit 30 of the requester 42 generates a service ID of the lower-level service (service ID to be transmitted to the BPEL 44) (step 260 in FIG. 19 is also performed). The service request is sent to the BPEL 44 by the service calling unit 32 of the requester 42.

サービス要求を受信したBPEL44の処理実行部26は、実行が要求されたサービスに対応する自サービスが存在している場合には自サービスの処理を行い(図19のステップ262も参照)、サービスID生成部30によって下位サービス1のサービスID(プロバイダ46へ送信するサービスID)を生成させ(図19のステップ264も参照)、プロバイダ46に対応するサービス呼出部32を呼び出し、プロバイダ46に対応するサービス呼出部32によってプロバイダ46へサービス要求を送信させる。サービス要求を受信したプロバイダ46では、要求された下位サービス1の処理が処理実行部26によって行われ(図19のステップ266も参照)、処理終了後にサービス受付部28によってBPEL44へ応答が送信される。   The process execution unit 26 of the BPEL 44 that has received the service request performs the process of the own service when the service corresponding to the requested service exists (see also step 262 in FIG. 19), and the service ID. The generation unit 30 generates the service ID of the lower-level service 1 (the service ID to be transmitted to the provider 46) (see also step 264 in FIG. 19), calls the service call unit 32 corresponding to the provider 46, and the service corresponding to the provider 46 The calling unit 32 transmits a service request to the provider 46. In the provider 46 that has received the service request, the processing of the requested lower-level service 1 is performed by the processing execution unit 26 (see also step 266 in FIG. 19), and a response is transmitted to the BPEL 44 by the service reception unit 28 after the processing is completed. .

BPEL44の処理実行部26は、プロバイダ46からの応答が受信され、処理結果が「処理済」であった場合、サービスID生成部30によって下位サービス2のサービスID(パッケージ・ラッパー48へ送信するサービスID)を生成させ(図19のステップ268も参照)、パッケージ・ラッパー48に対応するサービス呼出部32を呼び出し、パッケージ・ラッパー48に対応するサービス呼出部32によってパッケージ・ラッパー48へサービス要求を送信させる。サービス要求を受信したパッケージ・ラッパー48では、要求された下位サービス2の処理がパッケージ・システム66と協働することで行われ(図19のステップ270も参照)、処理終了後にサービス受付部28によってBPEL44へ応答が送信される。   When the response from the provider 46 is received and the processing result is “processed”, the process execution unit 26 of the BPEL 44 uses the service ID generation unit 30 to transmit the service ID of the lower-level service 2 (the service transmitted to the package wrapper 48). ID) is generated (see also step 268 in FIG. 19), the service call unit 32 corresponding to the package wrapper 48 is called, and the service request is sent to the package wrapper 48 by the service call unit 32 corresponding to the package wrapper 48 Let In the package wrapper 48 that has received the service request, the processing of the requested lower-level service 2 is performed in cooperation with the package system 66 (see also step 270 in FIG. 19). A response is sent to BPEL 44.

BPEL44の処理実行部26は、パッケージ・ラッパー48からの応答が受信され、処理結果が「処理済」であった場合、サービスID生成部30によって下位サービス3のサービスID(MBラッパー50へ送信するサービスID)を生成させ(図19のステップ272も参照)、MBラッパー50に対応するサービス呼出部32を呼び出し、MBラッパー50に対応するサービス呼出部32によってMBラッパー50へサービス要求を送信させる。サービス要求を受信したMBラッパー50では、要求された下位サービス3の処理が預為システム68と協働することで行われ(図19のステップ274も参照)、処理終了後にサービス受付部28によってBPEL44へ応答が送信される。   When the response from the package wrapper 48 is received and the processing result is “processed”, the process execution unit 26 of the BPEL 44 transmits the service ID of the lower service 3 to the MB wrapper 50 by the service ID generation unit 30. Service ID) is generated (see also step 272 in FIG. 19), the service call unit 32 corresponding to the MB wrapper 50 is called, and the service request is sent to the MB wrapper 50 by the service call unit 32 corresponding to the MB wrapper 50. In the MB wrapper 50 that has received the service request, the processing of the requested lower-level service 3 is performed in cooperation with the deposit system 68 (see also step 274 in FIG. 19), and the BPEL 44 is performed by the service reception unit 28 after the processing is completed. A response is sent to

BPEL44では、パッケージ・ラッパー48からの応答が受信され、処理結果が「処理済」であった場合、処理実行部26からサービス受付部28へ処理結果が通知され、サービス受付部28はリクエスタ42へ応答を送信して処理結果を通知する。これにより、リクエスタ42では実行が指示されたサービスの処理結果(「処理済」)を出力する処理が行われる(図19のステップ276も参照)。このように、最上位のリクエスタ42からBPEL44を経由してプロバイダ46やパッケージ・ラッパー48、MBラッパー50へサービス要求が連鎖していくことで、指示されたサービスが実行される。   In the BPEL 44, when the response from the package wrapper 48 is received and the processing result is “processed”, the processing execution unit 26 notifies the service reception unit 28 of the processing result, and the service reception unit 28 notifies the requester 42. Send a response to notify the processing result. As a result, the requester 42 performs processing to output the processing result (“processed”) of the service instructed to be executed (see also step 276 in FIG. 19). As described above, service requests are chained from the top-level requester 42 to the provider 46, the package wrapper 48, and the MB wrapper 50 via the BPEL 44, whereby the instructed service is executed.

次に、サービス処理システム10に障害が発生した場合のシーケンスを説明する。図20に示すシーケンスは、BPEL44がパッケージ・ラッパー48へサービス要求を送信した直後に障害が発生し、送信したサービス要求がパッケージ・ラッパー48で受信されなかったことで、パッケージ・ラッパー48から応答が送信されず、タイマがタイムアウトした場合のシーケンスである。図20に示すシーケンスでは、BPEL44からパッケージ・ラッパー48へのサービス要求の再送信の図示を省略しているが、パッケージ・ラッパー48へサービス要求を所定回再送信してもパッケージ・ラッパー48からの応答が受信されなかった場合、BPEL44の処理実行部26の業務プログラムから処理実行部APIへ制御が戻る。   Next, a sequence when a failure occurs in the service processing system 10 will be described. In the sequence shown in FIG. 20, a failure occurs immediately after the BPEL 44 transmits a service request to the package wrapper 48, and the response is received from the package wrapper 48 because the transmitted service request is not received by the package wrapper 48. This is the sequence when the timer has timed out without being transmitted. In the sequence shown in FIG. 20, the illustration of the retransmission of the service request from the BPEL 44 to the package wrapper 48 is omitted, but even if the service request is retransmitted to the package wrapper 48 a predetermined number of times, If no response is received, control returns from the business program of the process execution unit 26 of the BPEL 44 to the process execution unit API.

ここで、処理実行部APIは、実行が要求されたサービスの処理結果が「不明(タイムアウト/リトライ回数超過)」であることをサービス受付部28経由でリクエスタ42へ通知するようにしてもよいが、図20に示すシーケンスではパッケージ・ラッパー48による下位サービス2の処理結果を管理部24に問い合わせ、この場合、下位サービス2の処理結果が「不明」であることから、パッケージ・ラッパー48に対応する結果確認呼出部36によってBPEL44からパッケージ・ラッパー48へ処理結果確認要求が送信される。 この間にサービス処理システム10の障害が解消していた場合、この処理結果確認要求がパッケージ・ラッパー48で受信され、パッケージ・ラッパー48の処理結果確認部34によって通知されたサービスIDに対応する下位サービス2の処理結果が確認される。この場合は処理結果が「処理未済」であるので、処理結果が「処理未済」であることを通知する処理結果通知がパッケージ・ラッパー48からBPEL44へ送信される。   Here, the process execution unit API may notify the requester 42 via the service reception unit 28 that the process result of the service requested to be executed is “unknown (timeout / retry count exceeded)”. In the sequence shown in FIG. 20, the processing result of the lower service 2 by the package wrapper 48 is inquired to the management unit 24. In this case, the processing result of the lower service 2 is “unknown”, and therefore corresponds to the package wrapper 48. The result confirmation calling unit 36 transmits a processing result confirmation request from the BPEL 44 to the package wrapper 48. If the failure of the service processing system 10 has been resolved during this time, the processing result confirmation request is received by the package wrapper 48 and the lower level service corresponding to the service ID notified by the processing result confirmation unit 34 of the package wrapper 48 is received. The processing result of 2 is confirmed. In this case, since the processing result is “processing incomplete”, a processing result notification notifying that the processing result is “processing incomplete” is transmitted from the package wrapper 48 to the BPEL 44.

パッケージ・ラッパー48からの処理結果通知を受信し、処理結果が「処理未済」であることを確認すると、BPEL44の処理実行部26はパッケージ・ラッパー48に対応するサービス呼出部32を呼び出し、サービス呼出部32によってBPEL44からパッケージ・ラッパー48へサービス要求が再度送信される。これにより、パッケージ・ラッパー48では、要求された下位サービス2の処理がパッケージ・システム66と協働することで行われる(図20のステップ270も参照)。以降のシーケンスは図19と同一であるので説明を省略する。   When the processing result notification from the package wrapper 48 is received and it is confirmed that the processing result is “processing incomplete”, the processing execution unit 26 of the BPEL 44 calls the service calling unit 32 corresponding to the package wrapper 48 to call the service calling The service request is transmitted again from the BPEL 44 to the package wrapper 48 by the unit 32. Thereby, in the package wrapper 48, the processing of the requested lower-level service 2 is performed in cooperation with the package system 66 (see also step 270 in FIG. 20). Subsequent sequences are the same as those in FIG.

また、図21に示すシーケンスは、MBラッパー50がBPEL44から受信したサービス要求で要求された下位サービス3の処理を預為システム68と協働して行った結果、業務エラーが発生した場合(図21のステップ275も参照)のシーケンスである。この場合、処理結果が「業務エラー」であることを通知する応答がMBラッパー50からBPEL44へ送信される。この応答がBPEL44で受信されると、BPEL44の処理実行部26は、プロバイダ46による下位サービス1及びパッケージ・ラッパー48による下位サービス2が「処理済」で、MBラッパー50による下位サービス3が「業務エラー」となったことによるデータの不整合を解消するため、まず対応する下位サービス2のサービスIDを認識し(図21のステップ282も参照)、パッケージ・ラッパー48が先に実行した下位サービス2の処理を取り消す処理の実行を要求するサービス要求(図21では「取消要求」と表記)を、サービス呼出部32によってパッケージ・ラッパー48へ送信させる。これにより、パッケージ・ラッパー48は、実行が正常に終了している下位サービス2の処理をパッケージ・システム66と協働して取り消す取消処理を行う(図21のステップ284も参照)。   Further, the sequence shown in FIG. 21 is a case where a business error occurs as a result of the processing of the subordinate service 3 requested by the service request received by the MB wrapper 50 from the BPEL 44 in cooperation with the deposit system 68 (FIG. 21). 21 (see also step 275 of FIG. 21). In this case, a response notifying that the processing result is “business error” is transmitted from the MB wrapper 50 to the BPEL 44. When this response is received by the BPEL 44, the processing execution unit 26 of the BPEL 44 indicates that the lower service 1 by the provider 46 and the lower service 2 by the package wrapper 48 are “processed” and the lower service 3 by the MB wrapper 50 is “business”. In order to resolve the data inconsistency due to the error, the service ID of the corresponding lower service 2 is first recognized (see also step 282 in FIG. 21), and the lower service 2 executed by the package wrapper 48 first. A service request (denoted as “cancel request” in FIG. 21) requesting execution of the process for canceling the process is transmitted to the package wrapper 48 by the service calling unit 32. As a result, the package wrapper 48 performs a cancellation process for canceling the processing of the lower-level service 2 that has been normally executed in cooperation with the package system 66 (see also step 284 in FIG. 21).

また、上記のサービス要求(取消要求)に対する応答をパッケージ・ラッパー48から受信すると、BPEL44の処理実行部26は、対応する下位サービス3のサービスIDを認識し(図21のステップ286も参照)、MBラッパー50が先に実行した下位サービス3の処理を取り消す処理の実行を要求するサービス要求(図21では「取消要求」と表記)を、サービス呼出部32によってMBラッパー50へ送信させる。これにより、MBラッパー50は、実行が正常に終了している下位サービス2の処理を預為システム68と協働して取り消す取消処理を行う(図21のステップ288も参照)。   When receiving a response to the service request (cancellation request) from the package wrapper 48, the process execution unit 26 of the BPEL 44 recognizes the service ID of the corresponding lower service 3 (see also step 286 in FIG. 21). A service request (represented as “cancel request” in FIG. 21) for requesting execution of processing for canceling the processing of the lower-level service 3 previously executed by the MB wrapper 50 is transmitted to the MB wrapper 50 by the service calling unit 32. As a result, the MB wrapper 50 performs a cancellation process for canceling the processing of the lower-level service 2 that has been normally executed in cooperation with the deposit system 68 (see also step 288 in FIG. 21).

上記のサービス要求(取消要求)に対する応答をMBラッパー50から受信すると、BPEL44の処理実行部26はサービス受付部28へ処理結果を通知し、サービス受付部28はリクエスタ42へ応答を送信して処理結果を通知する。これにより、リクエスタ42では実行が指示されたサービスの処理結果(実行が指示されたサービスは途中で業務エラーが発生したことで取り消された旨を表す「取消済」)を出力する処理が行われる(図19のステップ276も参照)。   When the response to the service request (cancellation request) is received from the MB wrapper 50, the process execution unit 26 of the BPEL 44 notifies the service reception unit 28 of the processing result, and the service reception unit 28 transmits the response to the requester 42 and processes it. Notify the result. As a result, the requester 42 performs processing to output the processing result of the service instructed to be executed (the service for which execution has been instructed is “cancelled” indicating that the service has been canceled due to a business error occurring in the middle). (See also step 276 in FIG. 19).

また、図22に示すシーケンスは、BPEL44がMBラッパー50へサービス要求を送信した直後に障害が発生し、送信したサービス要求がMBラッパー50で受信されなかったことで、MBラッパー50から応答が送信されず、これに伴いリクエスタ42からBPEL44へサービス要求が再送信された場合のシーケンスである。ここで、BPEL44の処理実行部26等が先に説明した図18のように構成されているとすると、リクエスタ42からのサービス要求の受信に伴い、BPEL44の処理実行部26では、自プロセスと同一のサービスIDを引数として生成された他プロセスが存在しているか否かを確認する処理が行われ(図22のステップ290も参照)、該当するプロセスが存在していることで、今回のサービス要求が過去に受信したサービス要求の再送であることが認識される。   In the sequence shown in FIG. 22, a failure occurs immediately after the BPEL 44 transmits a service request to the MB wrapper 50, and a response is transmitted from the MB wrapper 50 because the transmitted service request is not received by the MB wrapper 50. In this case, the service request is retransmitted from the requester 42 to the BPEL 44. If the processing execution unit 26 of the BPEL 44 is configured as shown in FIG. 18 described above, the processing execution unit 26 of the BPEL 44 is the same as its own process upon reception of the service request from the requester 42. A process for confirming whether or not there is another process generated with the service ID as an argument is performed (see also step 290 in FIG. 22). Is a retransmission of a service request received in the past.

次に、該当するプロセスのBOに記憶されている状態情報が自プロセスのBOにコピーされる(図22のステップ292も参照)。そして、再送されたサービス要求によって要求されたサービスを実行する処理が処理実行部26によって行われるが、本実施形態では、プロバイダ46によって提供されるサービスと、MBラッパー50(及び預為システム68)によって提供されるサービスは冪等性を有している一方、パッケージ・ラッパー48(及びパッケージ・システム66)によって提供されるサービスは冪等性を有していないので、BPEL44からは、プロバイダ46及びMBラッパー50に対してのみサービス要求が送信され、パッケージ・ラッパー48については、対応する下位サービスの処理結果が「処理済」となっていることに基づき、サービス要求の送信がスキップされる。これにより仮想冪等機能が実現される。   Next, the state information stored in the BO of the corresponding process is copied to the BO of the own process (see also step 292 in FIG. 22). Then, the process execution unit 26 performs a process of executing the service requested by the retransmitted service request. In this embodiment, the service provided by the provider 46, the MB wrapper 50 (and the deposit system 68) The services provided by the package wrapper 48 (and the package system 66) are not idempotent, while the services provided by the A service request is transmitted only to the MB wrapper 50, and for the package wrapper 48, the transmission of the service request is skipped based on the processing result of the corresponding lower service being “processed”. As a result, a function such as a virtual bag is realized.

図23には、リクエスタ42に対して処理結果の確認が指示された場合のシーケンスの一例を示す。このシーケンスでは、処理結果の確認が指示されると、リクエスタ42の管理部24によって確認対象のサービスの処理結果が確認され、処理結果が「不明」であれば確認対象のサービスのサービスIDが認識(図23のステップ296も参照)された後に、リクエスタ42の結果確認呼出部36によってBPEL44へ処理結果確認要求が送信される。リクエスタ42から処理結果確認要求を受信したBPEL44では、処理結果確認部34からの要求に従い、管理部24によって対応する自サービスの処理結果が確認される(図23のステップ298も参照)と共に、対応する下位サービスの処理結果も確認される(図23のステップ298も参照)。   FIG. 23 shows an example of a sequence when the requester 42 is instructed to confirm the processing result. In this sequence, when confirmation of the processing result is instructed, the management unit 24 of the requester 42 confirms the processing result of the service to be confirmed. If the processing result is “unknown”, the service ID of the service to be confirmed is recognized. (See also step 296 in FIG. 23), and the result confirmation calling unit 36 of the requester 42 transmits a processing result confirmation request to the BPEL 44. The BPEL 44 that has received the processing result confirmation request from the requester 42 confirms the processing result of the corresponding service by the management unit 24 in accordance with the request from the processing result confirmation unit 34 (see also step 298 in FIG. 23). The processing result of the lower level service is also confirmed (see also step 298 in FIG. 23).

ここで、対応する下位サービスの中に処理結果が「不明」の下位サービスが存在していた場合(ここでは、MBラッパー50が提供する下位サービスの処理結果が「不明」であったものとする)、処理結果が「不明」の下位サービスに対応する結果確認呼出部36が管理部24によって呼び出され、結果確認呼出部36は対応する下位のサービス処理部(この例ではMBラッパー50)へ処理結果確認要求を送信する。また、BPEL44が下位のサービス処理部から処理結果通知を受信すると、BPEL44の処理結果確認部34によってリクエスタ42へ処理結果通知が送信される。これにより、リクエスタ42では処理結果の確認が指示されたサービスの処理結果を出力する処理が行われる(図23のステップ276も参照)。このように、処理結果の確認が指示された場合も、リクエスタ42からBPEL44へ処理結果確認要求が送信され、必要に応じてより下位のサービス処理部へ処理結果確認要求が連鎖していくことで、指示されたサービスの処理結果が確認される。   Here, when a lower service whose processing result is “unknown” exists in the corresponding lower service (here, it is assumed that the processing result of the lower service provided by the MB wrapper 50 is “unknown”). ) The result confirmation calling unit 36 corresponding to the lower service whose processing result is “unknown” is called by the management unit 24, and the result confirmation calling unit 36 performs processing to the corresponding lower service processing unit (in this example, the MB wrapper 50). Send a result confirmation request. When the BPEL 44 receives the processing result notification from the lower service processing unit, the processing result confirmation unit 34 of the BPEL 44 transmits the processing result notification to the requester 42. As a result, the requester 42 performs a process of outputting the process result of the service instructed to confirm the process result (see also step 276 in FIG. 23). As described above, even when the confirmation of the processing result is instructed, the processing result confirmation request is transmitted from the requester 42 to the BPEL 44, and the processing result confirmation request is chained to the lower-level service processing unit as necessary. The processing result of the instructed service is confirmed.

なお、上記では本発明に係るサービス処理システムとして、5個のサービス処理部が3層(3段)に分けられ、3層目(3段目)の3個のサービス処理部が2層目(2段目)の単一のサービス処理部に各々連結され、2層目(2段目)の単一のサービス処理部が1層目(1段目)の単一のサービス処理部に連結された構成のサービス処理システム10を例に説明したが、サービス処理部の総数や段数、各段(各層)におけるサービス処理部の数は上記に限られるものではなく、例えばサービス処理部がより多数段連結された構成のサービス処理システムにも本発明を適用可能であることは言うまでもない。   In the above description, as the service processing system according to the present invention, five service processing units are divided into three layers (three levels), and three service processing units in the third layer (third level) are arranged in the second layer ( The second level (single stage) is connected to each single service processing unit, and the second level (second level) single service processing unit is connected to the first level (first level) single service processing unit. The service processing system 10 having the above-described configuration has been described as an example. However, the total number and the number of service processing units, and the number of service processing units in each level (each layer) are not limited to the above. Needless to say, the present invention can also be applied to a service processing system having a connected configuration.

また、上記では2段目(2層目)のサービス処理部を実現するためのサービス処理プログラムが、BPELのプラットフォーム上で動作する態様を説明したが、これに限定されるものではなく、本発明に係るサービス処理システムはBPELを利用せずに構築することも可能である。   In the above description, the service processing program for realizing the second-stage (second-layer) service processing unit operates on the BPEL platform. However, the present invention is not limited to this. The service processing system according to can be constructed without using BPEL.

また、上記では個々のサービス処理部が互いに異なるコンピュータ(サービス処理サーバ12)によって実現される態様を説明したが、これに限定されるものではなく、本発明は単一のコンピュータを互いに異なる複数種のサービス処理部として各々機能させる態様にも適用可能である。   In the above description, the mode in which the individual service processing units are realized by different computers (service processing server 12) has been described. However, the present invention is not limited to this. The present invention can also be applied to an aspect in which each functions as a service processing unit.

また、上記では本発明に係るプログラムに対応するサービス処理プログラムがサービス処理サーバ12の記憶部12Cに予め記憶(インストール)されている態様を説明したが、本発明に係るプログラムは、CD−ROMやDVD−ROM等の記録媒体に記録されている形態で提供することも可能である。この態様における記録媒体は本発明に係る記録媒体に対応している。   In the above description, the service processing program corresponding to the program according to the present invention is stored (installed) in the storage unit 12C of the service processing server 12 in advance. However, the program according to the present invention is a CD-ROM, It is also possible to provide in a form recorded on a recording medium such as a DVD-ROM. The recording medium in this aspect corresponds to the recording medium according to the present invention.

10 サービス処理システム
12 サービス処理サーバ
12C 記憶部
14 アプリケーション・サーバ
24 管理部
26 処理実行部
28 サービス受付部
30 サービスID生成部
32 サービス呼出部
34 処理結果確認部
36 結果確認呼出部
38 処理状況テーブル
42 リクエスタ
46 プロバイダ
48 パッケージ・ラッパー
50 MBラッパー
66 既存システム
68 既存システム
DESCRIPTION OF SYMBOLS 10 Service processing system 12 Service processing server 12C Storage part 14 Application server 24 Management part 26 Process execution part 28 Service reception part 30 Service ID generation part 32 Service calling part 34 Processing result confirmation part 36 Result confirmation calling part 38 Processing status table 42 Requester 46 Provider 48 Package wrapper 50 MB wrapper 66 Existing system 68 Existing system

Claims (17)

コンピュータによって実現され、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置であって、
サービスIDが付加されたサービス要求を受信することでサービスの実行が要求されると、実行が要求されたサービスに関する処理として、実行が要求されたサービスに対応する自サービスが存在する場合は、当該自サービスの処理を行い、自サービスの処理結果を前記サービスIDと対応付けて記憶手段に記憶させると共に、実行が要求されたサービスに対応する下位サービスが存在する場合は、前記下位サービスのサービスIDを生成し生成したサービスIDを付加したサービス要求を下位のサービス処理装置へ送信し、かつ前記下位サービスの処理結果を前記生成したサービスIDと対応付けて前記記憶手段に記憶させる処理を行い、サービス要求の送信元へ応答を送信する第1機能、
サービスIDが付加された処理結果確認要求を受信することでサービスの処理結果の確認が要求されると、前記記憶手段に記憶されている情報に基づいて、処理結果の確認が要求されたサービスに対応するサービスの処理結果を確認し、対応する下位サービスの処理結果の確認が必要な場合は、対応する下位サービスのサービスIDを付加した処理結果確認要求を下位のサービス処理装置に送信し、処理結果の確認が終了すると確認した処理結果を処理結果確認要求の送信元へ送信する第2機能、
及び、以前に受信したサービス要求と同一のサービスIDが付加されたサービス要求を受信することで、以前に実行が要求されたサービスの再実行が要求されると、再実行が要求されたサービスに対応する1つ以上のサービスのうち、冪等性を有する下位サービスについては、前記冪等性を有する下位サービスの処理結果を確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へサービス要求を送信し、冪等性を有しない非冪等の下位サービスについては、前記非冪等の下位サービスの処理結果を確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信することで処理結果の確認を再度試行し、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を再度確認する処理を行い、当該処理が終了するとサービス要求の送信元へ確認した処理結果に応じた応答を送信する第3機能
を備えたサービス処理装置。
A service processing device that is realized by a computer and constitutes a service processing system together with other service processing devices capable of transmitting and receiving information,
When service execution is requested by receiving a service request to which a service ID is added, if there is a local service corresponding to the service requested to be executed as a process related to the service requested to be executed, Process the own service, store the processing result of the own service in the storage unit in association with the service ID, and if there is a lower service corresponding to the service requested to be executed, the service ID of the lower service A service request with the generated service ID added thereto is transmitted to the lower-level service processing device, and the processing result of the lower-level service is associated with the generated service ID and stored in the storage means, A first function for sending a response to the request source;
When the confirmation of the processing result of the service is requested by receiving the processing result confirmation request to which the service ID is added, based on the information stored in the storage means, the service for which the confirmation of the processing result is requested Confirm the processing result of the corresponding service, and if it is necessary to confirm the processing result of the corresponding lower service, send the processing result confirmation request with the service ID of the corresponding lower service to the lower service processing device A second function for transmitting the confirmed processing result to the transmission source of the processing result confirmation request when the result confirmation is completed;
When a service request to which the same service ID as the previously received service request is added is received, and a re-execution of a service that has been requested to be executed again is requested, the service requested to be re-executed Among the corresponding one or more services, for a subordinate service having idempotency, a service processing apparatus that performs the subordinate service having idempotency without confirming the processing result of the subordinate service having idempotency For a non-ideal subordinate service that does not have idempotency, the processing result of the non-ideal subordinate service is confirmed, and a response to the service request is received for the confirmed processing result. In the case of “unknown” indicating that the processing result is confirmed, the processing result confirmation request is transmitted to the service processing apparatus that performs the non-defective subordinate service, thereby confirming the processing result again. And confirmation only when the "processing unfinished" is obtained as the processing result, after transmitting the service request to the service processing apparatus for subservice non idempotent, the processing result of the lower service of the non-idempotent again A service processing apparatus having a third function for performing a process to transmit a response according to the confirmed processing result to the service request transmission source when the process is completed.
コンピュータによって実現され、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置であって、
サービスIDが通知されてサービスの実行が要求されると、実行が要求されたサービスに関する処理を行うサービス実行手段と、
サービスの処理結果をサービスIDと対応付けて記憶するための記憶手段を備えた処理結果管理手段と、
を備え、
前記サービス実行手段は、自装置よりも上位のサービス処理装置が存在する場合はサービス受付手段を備え、サービスIDが付加されたサービス要求を前記サービス受付手段が前記上位のサービス処理装置から受信することでサービスの実行が要求されると、前記実行が要求されたサービスに関する処理を行い、当該処理の処理結果を前記サービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させた後に、前記サービス受付手段によって前記上位のサービス処理装置へ応答を送信し、自装置よりも下位のサービス処理装置が存在する場合は、一意性を有するサービスIDを生成するサービスID生成手段と、サービス呼出手段と、を備え、実行が要求されたサービスが前記下位のサービス処理装置による下位サービスを含むサービスである場合に、前記実行が要求されたサービスに関する処理として、前記サービスID生成手段によって前記下位サービスのサービスIDを生成させ、生成された前記下位サービスのサービスIDを付加したサービス要求を前記サービス呼出手段によって前記下位のサービス処理装置へ送信し、前記サービス呼出手段が前記下位のサービス処理装置から受信した応答によって通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させる処理を行うと共に、冪等性を有する下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記冪等性を有する下位サービスが存在している場合、前記冪等性を有する下位サービスの処理結果を前記処理結果管理手段に確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信し、冪等性を有しない非冪等の下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記非冪等の下位サービスが存在している場合は、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記処理結果管理手段により前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信させることで処理結果の確認を再度試行させ、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に再度確認する処理を行い、当該処理が終了すると前記サービス受付手段によってサービス要求の送信元の前記上位のサービス処理装置へ確認した処理結果に応じた応答を送信し、
前記処理結果管理手段は、自装置よりも上位のサービス処理装置が存在する場合は処理結果確認手段を備え、サービスIDが付加された処理結果確認要求を前記処理結果確認手段が前記上位のサービス処理装置から受信することでサービスの処理結果の確認が要求されると、処理結果の確認が要求されたサービスの処理結果を前記サービスIDに基づいて確認し、処理結果の確認が終了すると確認した処理結果を前記処理結果確認手段によって前記上位のサービス処理装置へ通知し、自装置よりも下位のサービス処理装置が存在する場合は結果確認呼出手段を備え、前記下位のサービス処理装置による下位サービスの処理結果の確認が必要な場合に、確認対象の下位サービスのサービスIDを付加した処理結果確認要求を前記結果確認呼出手段によって前記下位のサービス処理装置へ送信し、前記下位のサービス処理装置から前記結果確認呼出手段へ通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記記憶手段に記憶させる
サービス処理装置。
A service processing device that is realized by a computer and constitutes a service processing system together with other service processing devices capable of transmitting and receiving information,
Service execution means for performing processing related to the requested service when the service ID is notified and the execution of the service is requested;
Processing result management means comprising storage means for storing service processing results in association with service IDs;
With
The service execution unit includes a service reception unit when a higher-level service processing device exists than the own device, and the service reception unit receives a service request to which a service ID is added from the higher-level service processing device. When the execution of the service is requested, the process related to the requested service is performed, and the processing result of the process is associated with the service ID and stored in the storage unit of the processing result management unit. A service ID generating means for transmitting a response to the higher-level service processing apparatus by the service receiving means and generating a service ID having uniqueness when a service processing apparatus lower than the own apparatus exists; and a service calling means The service requested to be executed includes a lower-level service by the lower-level service processing device. If the service is a service, the service ID generation unit generates a service ID of the lower service as a process related to the service requested to be executed, and a service request with the generated service ID of the lower service is added to the service The processing result of the lower service transmitted by the calling means to the lower service processing apparatus and notified by the response received from the lower service processing apparatus by the service calling means is associated with the service ID of the lower service. A service processing device that performs processing to be stored in the storage unit of the processing result management unit and that performs a lower service having idempotency exists in a lower level than the own device, and corresponds to a service that is requested to be executed There is a subservice with the above idempotency in the service In this case, without confirming the processing result of the subordinate service having the idempotency with the processing result management unit, the service calling unit transmits a service request to the service processing apparatus that performs the subordinate service having the idempotency, A service processing apparatus that performs non-idempotent subservices that do not have idempotency exists lower than the self-apparatus, and the non-idempotent subservices are among the subordinate services corresponding to the services that are requested to be executed. If present, confirm the processing result of the non-defective lower level service with the processing result management means, and if the confirmed processing result is “unknown” indicating that a response to the service request has not been received The processing result management means sends the processing result confirmation request to the service processing apparatus that performs the non-defective lower level service, and tries to confirm the processing result again. Only when the processing result is “unprocessed” , after the service call means transmits the service request to the service processing apparatus that performs the non-defective subordinate service, The processing result management means is checked again, and when the processing ends, a response corresponding to the processing result confirmed by the service receiving means to the higher-level service processing device is transmitted by the service receiving means. And
The processing result management means includes processing result confirmation means when there is a higher-level service processing apparatus than the own apparatus, and the processing result confirmation means sends a processing result confirmation request to which a service ID is added. When the confirmation of the processing result of the service is requested by receiving from the device, the processing result of the service for which the confirmation of the processing result is requested is confirmed based on the service ID, and the processing confirmed when the confirmation of the processing result is completed The result is notified to the higher-level service processing device by the processing result confirmation unit, and when there is a lower-level service processing device than the own device, a result confirmation calling unit is provided, and processing of the lower-level service by the lower-level service processing device When it is necessary to confirm the result, a processing result confirmation request with the service ID of the lower-level service to be confirmed is sent to the result confirmation caller. The processing result of the lower service transmitted from the lower service processing device to the result confirmation calling unit is stored in the storage unit in association with the service ID of the lower service. Let the service processing equipment.
前記サービス実行手段は、自装置よりも上位のサービス処理装置及び下位のサービス処理装置が各々存在しており、かつ前記サービス受付手段が前記上位のサービス処理装置からサービス要求を受信することで実行が要求されたサービスが、対応する下位サービスが存在しているサービスである場合、前記サービスID生成手段によって生成された前記下位サービスのサービスIDを付加したサービス要求を前記サービス呼出手段によって前記下位のサービス処理装置へ送信すると共に、前記サービス呼出手段が前記下位のサービス処理装置から応答を受信した後に、前記サービス受付手段によって前記上位のサービス処理装置へ応答を送信する請求項2記載のサービス処理装置。   The service execution means is executed when a higher-order service processing apparatus and a lower-order service processing apparatus exist, respectively, and the service reception means receives a service request from the higher-order service processing apparatus. If the requested service is a service for which a corresponding lower service exists, a service request with the service ID of the lower service generated by the service ID generation means is added to the lower service by the service calling means. 3. The service processing device according to claim 2, wherein the service processing unit transmits a response to the higher-level service processing device after the service calling unit receives a response from the lower-level service processing device. 前記サービス実行手段は、前記実行が要求されたサービスが自サービスを含むサービスである場合に、前記実行が要求されたサービスに関する処理として、前記自サービスの処理を行い、前記自サービスの処理結果を前記通知されたサービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させる処理を行う請求項2又は請求項3記載のサービス処理装置。   When the service requested to be executed is a service including the own service, the service execution means performs the process of the own service as a process related to the service requested to be executed, and displays the processing result of the own service. The service processing apparatus according to claim 2 or 3, wherein the service processing apparatus performs processing to be stored in the storage unit of the processing result management unit in association with the notified service ID. 前記サービス実行手段は、自装置よりも下位のサービス処理装置が複数存在する場合、前記サービス呼出手段を前記下位のサービス処理装置と同数個備えており、自装置よりも下位のサービス処理装置が複数存在し、かつ実行が要求されたサービスが前記複数の下位のサービス処理装置による複数の下位サービスを含むサービスである場合に、前記実行が要求されたサービスに関する処理として、前記複数の下位のサービス処理装置のうちの特定の下位のサービス装置による特定の下位サービスのサービスIDを前記サービスID生成手段によって生成させ、生成された前記下位サービスのサービスIDを付加したサービス要求を、前記特定の下位のサービス装置に対応する特定のサービス呼出手段によって前記特定の下位のサービス処理装置へ送信し、前記特定のサービス呼出手段が前記特定の下位のサービス処理装置から受信した応答によって通知された前記特定の下位サービスの処理結果を、前記特定の下位サービスのサービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させる処理を、前記複数の下位のサービス処理装置について各々行う請求項2〜請求項4の何れか1項記載のサービス処理装置。   The service execution unit includes the same number of service call units as the lower-level service processing devices when there are a plurality of lower-level service processing devices, and includes a plurality of lower-level service processing devices. When the service that is present and requested to be executed is a service that includes a plurality of lower services by the plurality of lower service processing devices, the plurality of lower service processes are performed as the processing related to the service requested to be executed. The service ID generation unit generates a service ID of a specific lower service by a specific lower service device among the devices, and generates a service request to which the generated service ID of the lower service is added. The specific lower-level service processing device by a specific service calling means corresponding to the device The processing result of the specific lower service notified by the response received from the specific lower-level service processing device by the specific service calling means is associated with the service ID of the specific lower-level service and the The service processing apparatus according to claim 2, wherein the processing stored in the storage unit of the processing result management unit is performed for each of the plurality of lower-level service processing apparatuses. 前記サービス実行手段は、前記複数の下位のサービス処理装置のうちの何れかからの応答によって通知された前記下位サービスの処理結果がエラーであった場合、前記複数の下位のサービス処理装置の中に要求された下位サービスが「処理済」の下位のサービス処理装置が存在していれば、当該下位のサービス処理装置に対応する前記サービス呼出手段により、「処理済」の下位サービスの取消を要求するサービス要求を、前記下位サービスが「処理済」の下位のサービス処理装置へ送信させる請求項5記載のサービス処理装置。   If the processing result of the lower service notified by a response from any of the plurality of lower-level service processing devices is an error, the service execution means includes the plurality of lower-level service processing devices. If there is a lower-level service processing apparatus whose requested lower-level service is “processed”, the service calling unit corresponding to the lower-level service processing apparatus requests cancellation of the “processed” lower-level service. The service processing apparatus according to claim 5, wherein the service request is transmitted to a lower-level service processing apparatus whose lower-level service is “processed”. 前記サービス実行手段は、前記複数の下位のサービス処理装置のうちの何れかからの応答によって通知された前記下位サービスの処理結果がエラーであった場合、前記複数の下位のサービス処理装置の中にサービス要求を未送信の下位のサービス処理装置が存在していれば、当該下位のサービス処理装置に対応する前記サービス呼出手段による前記サービス要求の送信を中止する請求項5記載のサービス処理装置。   If the processing result of the lower service notified by a response from any of the plurality of lower-level service processing devices is an error, the service execution means includes the plurality of lower-level service processing devices. 6. The service processing apparatus according to claim 5, wherein if there is a lower-level service processing apparatus that has not transmitted a service request, transmission of the service request by the service calling unit corresponding to the lower-level service processing apparatus is stopped. 自装置よりも下位のサービス処理装置が存在し、コンピュータをサービス処理装置として機能させるためのプログラムがBPELのプラットフォーム上で動作する場合、
前記サービス実行手段は、サービスIDが通知されてサービスの実行が要求される毎に生成され、通知されたサービスIDを保持すると共に、処理の進行状態を表す状態情報を記憶しかつ処理の進行状態の変化に応じて前記状態情報を適宜更新するインスタンスよって実現され、前記インスタンスが新たに生成される毎に、当該新たに生成されたインスタンスにおいて、過去に生成され同一のサービスIDを保持しているインスタンスを検索し、該当するインスタンスが存在していた場合は前記該当するインスタンスの状態情報を自インスタンスの状態情報として複写し、複写した状態情報に従って処理を行う請求項2〜請求項7の何れか1項記載のサービス処理装置。
When there is a service processing device lower than its own device, and a program for causing a computer to function as a service processing device operates on the BPEL platform,
The service execution means is generated each time a service ID is notified and a service execution is requested, holds the notified service ID, stores state information indicating the progress of the process, and the progress of the process This is realized by an instance that appropriately updates the state information in accordance with the change of the state, and each time the instance is newly generated, the newly generated instance retains the same service ID generated in the past. The instance is searched, and if the corresponding instance exists, the state information of the corresponding instance is copied as the state information of the own instance, and processing is performed according to the copied state information. The service processing apparatus according to claim 1.
前記処理結果管理手段は、自装置よりも上位のサービス処理装置及び下位のサービス処理装置が各々存在し、かつ前記処理結果確認手段が前記上位のサービス処理装置から処理結果確認要求を受信することで処理結果の確認が要求されたサービスに対応する下位サービスが存在しており、かつ前記記憶手段に記憶されている前記対応する下位サービスの処理結果が「不明」の場合に、前記下位サービスのサービスIDを付加した処理結果確認要求を前記結果確認呼出手段によって前記下位のサービス処理装置へ送信し、前記下位のサービス処理装置から前記結果確認呼出手段へ処理結果が通知された後に、前記処理結果の確認が要求されたサービスの処理結果を前記処理結果確認手段によって前記上位のサービス処理装置へ通知する請求項2記載のサービス処理装置。   The processing result management means includes a higher-order service processing apparatus and a lower-level service processing apparatus, and the processing result confirmation means receives a processing result confirmation request from the higher-order service processing apparatus. If there is a lower service corresponding to the service for which confirmation of the processing result is requested and the processing result of the corresponding lower service stored in the storage means is “unknown”, the service of the lower service The processing result confirmation request to which the ID is added is transmitted to the lower service processing device by the result confirmation calling unit, and the processing result is notified from the lower service processing device to the result confirmation calling unit. The processing result confirming means notifies the higher-level service processing device of the processing result of the service requested to be confirmed. The placing of the service processing devices. 前記サービスID生成手段は、
サービス処理装置毎に相違するIDを設定した固有IDと、サービス要求毎に相違するIDを設定した要求IDを含むID要素を生成するID要素生成手段と、
自装置よりも上位のサービス処理装置が存在しない場合は、前記ID要素生成手段によって生成されたID要素を各々設定した呼出元ID及び呼出先IDを含むサービスIDを生成し、自装置よりも上位のサービス処理装置が存在する場合は、前記上位のサービス処理装置から受信したサービス要求に付加されたサービスIDに呼出先IDとして設定されているID要素を設定した呼出元IDと、前記ID要素生成手段によって生成されたID要素を設定した呼出先IDを含むサービスIDを生成するID要素組合せ手段と、
を含んで構成されている請求項2〜請求項9の何れか1項記載のサービス処理装置。
The service ID generation means
An ID element generating means for generating an ID element including a unique ID that sets an ID that differs for each service processing device and a request ID that sets an ID that differs for each service request;
If there is no higher-level service processing apparatus than the own apparatus, a service ID including a caller ID and a callee ID respectively set with the ID elements generated by the ID element generation unit is generated, and higher than the own apparatus If there is a service processing apparatus, a caller ID in which an ID element set as a callee ID is set in the service ID added to the service request received from the higher-level service processing apparatus, and the ID element generation ID element combination means for generating a service ID including a callee ID in which the ID element generated by the means is set;
The service processing apparatus according to claim 2, comprising:
前記ID要素組合せ手段は、自装置よりも上位のサービス処理装置が存在しない場合は、前記ID要素生成手段によって生成されたID要素を設定したオリジナルIDも含むサービスIDを生成し、自装置よりも上位のサービス処理装置が存在する場合は、前記上位のサービス処理装置から受信したサービス要求に付加されたサービスIDにオリジナルIDとして設定されているID要素を設定したオリジナルIDも含むサービスIDを生成する請求項10記載のサービス処理装置。   The ID element combination means generates a service ID including an original ID in which the ID element generated by the ID element generation means is set when there is no higher-level service processing apparatus than the own apparatus. If a higher-level service processing device exists, a service ID including an original ID in which an ID element set as an original ID is set to the service ID added to the service request received from the higher-level service processing device is generated. The service processing apparatus according to claim 10. 前記ID要素生成手段は、前記コンピュータを前記サービス処理装置として機能させるためのプログラムの実行単位に付与された実行単位IDも含むID要素を生成する請求項10又は請求項11記載のサービス処理装置。   12. The service processing apparatus according to claim 10, wherein the ID element generation unit generates an ID element including an execution unit ID assigned to an execution unit of a program for causing the computer to function as the service processing apparatus. 請求項1〜請求項12の何れか1項記載のサービス処理装置が情報を送受可能に複数設けられたサービス処理システム。   A service processing system in which a plurality of service processing devices according to claim 1 are provided so that information can be transmitted and received. コンピュータを、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置として機能させるサービス処理プログラムであって、
前記コンピュータを、
サービスIDが通知されてサービスの実行が要求されると、実行が要求されたサービスに関する処理を行うサービス実行手段と、
サービスの処理結果をサービスIDと対応付けて記憶するための記憶手段を備えた処理結果管理手段と、
を備え、
前記サービス実行手段は、自装置よりも上位のサービス処理装置が存在する場合はサービス受付手段を備え、サービスIDが付加されたサービス要求を前記サービス受付手段が前記上位のサービス処理装置から受信することでサービスの実行が要求されると、前記実行が要求されたサービスに関する処理を行い、当該処理の処理結果を前記サービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させた後に、前記サービス受付手段によって前記上位のサービス処理装置へ応答を送信し、自装置よりも下位のサービス処理装置が存在する場合は、一意性を有するサービスIDを生成するサービスID生成手段と、サービス呼出手段と、を備え、実行が要求されたサービスが前記下位のサービス処理装置による下位サービスを含むサービスである場合に、前記実行が要求されたサービスに関する処理として、前記サービスID生成手段によって前記下位サービスのサービスIDを生成させ、生成された前記下位サービスのサービスIDを付加したサービス要求を前記サービス呼出手段によって前記下位のサービス処理装置へ送信し、前記サービス呼出手段が前記下位のサービス処理装置から受信した応答によって通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記処理結果管理手段の前記記憶手段に記憶させる処理を行うと共に、冪等性を有する下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記冪等性を有する下位サービスが存在している場合、前記冪等性を有する下位サービスの処理結果を前記処理結果管理手段に確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信し、冪等性を有しない非冪等の下位サービスを行うサービス処理装置が自装置よりも下位に存在し、かつ実行が要求されたサービスに対応する下位サービスの中に前記非冪等の下位サービスが存在している場合は、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記処理結果管理手段により前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信させることで処理結果の確認を再度試行させ、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へ前記サービス呼出手段によってサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を前記処理結果管理手段に再度確認する処理を行い、当該処理が終了すると前記サービス受付手段によってサービス要求の送信元の前記上位のサービス処理装置へ確認した処理結果に応じた応答を送信し、
前記処理結果管理手段は、自装置よりも上位のサービス処理装置が存在する場合は処理結果確認手段を備え、サービスIDが付加された処理結果確認要求を前記処理結果確認手段が前記上位のサービス処理装置から受信することでサービスの処理結果の確認が要求されると、処理結果の確認が要求されたサービスの処理結果を前記サービスIDに基づいて確認し、処理結果の確認が終了すると確認した処理結果を前記処理結果確認手段によって前記上位のサービス処理装置へ通知し、自装置よりも下位のサービス処理装置が存在する場合は結果確認呼出手段を備え、前記下位のサービス処理装置による下位サービスの処理結果の確認が必要な場合に、確認対象の下位サービスのサービスIDを付加した処理結果確認要求を前記結果確認呼出手段によって前記下位のサービス処理装置へ送信し、前記下位のサービス処理装置から前記結果確認呼出手段へ通知された前記下位サービスの処理結果を、前記下位サービスのサービスIDと対応付けて前記記憶手段に記憶させる
サービス処理装置として機能させるためのサービス処理プログラム。
A service processing program that causes a computer to function as a service processing device that constitutes a service processing system together with another service processing device capable of transmitting and receiving information,
The computer,
Service execution means for performing processing related to the requested service when the service ID is notified and the execution of the service is requested;
Processing result management means comprising storage means for storing service processing results in association with service IDs;
With
The service execution unit includes a service reception unit when a higher-level service processing device exists than the own device, and the service reception unit receives a service request to which a service ID is added from the higher-level service processing device. When the execution of the service is requested, the process related to the requested service is performed, and the processing result of the process is associated with the service ID and stored in the storage unit of the processing result management unit. A service ID generating means for transmitting a response to the higher-level service processing apparatus by the service receiving means and generating a service ID having uniqueness when a service processing apparatus lower than the own apparatus exists; and a service calling means The service requested to be executed includes a lower-level service by the lower-level service processing device. If the service is a service, the service ID generation unit generates a service ID of the lower service as a process related to the service requested to be executed, and a service request with the generated service ID of the lower service is added to the service The processing result of the lower service transmitted by the calling means to the lower service processing apparatus and notified by the response received from the lower service processing apparatus by the service calling means is associated with the service ID of the lower service. A service processing device that performs processing to be stored in the storage unit of the processing result management unit and that performs a lower service having idempotency exists in a lower level than the own device, and corresponds to a service that is requested to be executed There is a subservice with the above idempotency in the service In this case, without confirming the processing result of the subordinate service having the idempotency with the processing result management unit, the service calling unit transmits a service request to the service processing apparatus that performs the subordinate service having the idempotency, A service processing apparatus that performs non-idempotent subservices that do not have idempotency exists lower than the self-apparatus, and the non-idempotent subservices are among the subordinate services corresponding to the services that are requested to be executed. If present, confirm the processing result of the non-defective lower level service with the processing result management means, and if the confirmed processing result is “unknown” indicating that a response to the service request has not been received The processing result management means sends the processing result confirmation request to the service processing apparatus that performs the non-defective lower level service, and tries to confirm the processing result again. Only when the processing result is “unprocessed” , after the service call means transmits the service request to the service processing apparatus that performs the non-defective subordinate service, The processing result management means is checked again, and when the processing ends, a response corresponding to the processing result confirmed by the service receiving means to the higher-level service processing device is transmitted by the service receiving means. And
The processing result management means includes processing result confirmation means when there is a higher-level service processing apparatus than the own apparatus, and the processing result confirmation means sends a processing result confirmation request to which a service ID is added. When the confirmation of the processing result of the service is requested by receiving from the device, the processing result of the service for which the confirmation of the processing result is requested is confirmed based on the service ID, and the processing confirmed when the confirmation of the processing result is completed The result is notified to the higher-level service processing device by the processing result confirmation unit, and when there is a lower-level service processing device than the own device, a result confirmation calling unit is provided, and processing of the lower-level service by the lower-level service processing device When it is necessary to confirm the result, a processing result confirmation request with the service ID of the lower-level service to be confirmed is sent to the result confirmation caller. The processing result of the lower service transmitted from the lower service processing device to the result confirmation calling unit is stored in the storage unit in association with the service ID of the lower service. A service processing program for functioning as a service processing device.
コンピュータを、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置として機能させるサービス処理プログラムであって、
前記コンピュータを、請求項2〜請求項12の何れか1項記載のサービス処理装置として機能させるためのサービス処理プログラム。
A service processing program that causes a computer to function as a service processing device that constitutes a service processing system together with another service processing device capable of transmitting and receiving information,
A service processing program for causing the computer to function as the service processing device according to any one of claims 2 to 12.
コンピュータを、情報を送受可能な他のサービス処理装置と共にサービス処理システムを構成するサービス処理装置として機能させるサービス処理プログラムが記録された記録媒体であって、
前記サービス処理プログラムは、前記コンピュータを、
サービスIDが付加されたサービス要求を受信することでサービスの実行が要求されると、実行が要求されたサービスに関する処理として、実行が要求されたサービスに対応する自サービスが存在する場合は、当該自サービスの処理を行い、自サービスの処理結果を前記サービスIDと対応付けて記憶手段に記憶させると共に、実行が要求されたサービスに対応する下位サービスが存在する場合は、前記下位サービスのサービスIDを生成し生成したサービスIDを付加したサービス要求を下位のサービス処理装置へ送信し、かつ前記下位サービスの処理結果を前記生成したサービスIDと対応付けて前記記憶手段に記憶させる処理を行い、サービス要求の送信元へ応答を送信する第1機能、
サービスIDが付加された処理結果確認要求を受信することでサービスの処理結果の確認が要求されると、前記記憶手段に記憶されている情報に基づいて、処理結果の確認が要求されたサービスに対応するサービスの処理結果を確認し、対応する下位サービスの処理結果の確認が必要な場合は、対応する下位サービスのサービスIDを付加した処理結果確認要求を下位のサービス処理装置に送信し、処理結果の確認が終了すると確認した処理結果を処理結果確認要求の送信元へ送信する第2機能、
及び、以前に受信したサービス要求と同一のサービスIDが付加されたサービス要求を受信することで、以前に実行が要求されたサービスの再実行が要求されると、再実行が要求されたサービスに対応する1つ以上のサービスのうち、冪等性を有する下位サービスについては、前記冪等性を有する下位サービスの処理結果を確認することなく、前記冪等性を有する下位サービスを行うサービス処理装置へサービス要求を送信し、冪等性を有しない非冪等の下位サービスについては、前記非冪等の下位サービスの処理結果を確認し、確認した処理結果がサービス要求に対する応答が未受信であることを表す「不明」の場合は、前記非冪等の下位サービスを行うサービス処理装置へ前記処理結果確認要求を送信することで処理結果の確認を再度試行し、処理結果として「処理未済」が得られたときにのみ、前記非冪等の下位サービスを行うサービス処理装置へサービス要求を送信した後に、前記非冪等の下位サービスの処理結果を再度確認する処理を行い、当該処理が終了するとサービス要求の送信元へ確認した処理結果に応じた応答を送信する第3機能
を備えたサービス処理装置として機能させる記録媒体。
A recording medium recorded with a service processing program that causes a computer to function as a service processing device that constitutes a service processing system together with another service processing device capable of transmitting and receiving information,
The service processing program causes the computer to
When service execution is requested by receiving a service request to which a service ID is added, if there is a local service corresponding to the service requested to be executed as a process related to the service requested to be executed, Process the own service, store the processing result of the own service in the storage unit in association with the service ID, and if there is a lower service corresponding to the service requested to be executed, the service ID of the lower service A service request with the generated service ID added thereto is transmitted to the lower-level service processing device, and the processing result of the lower-level service is associated with the generated service ID and stored in the storage means, A first function for sending a response to the request source;
When the confirmation of the processing result of the service is requested by receiving the processing result confirmation request to which the service ID is added, based on the information stored in the storage means, the service for which the confirmation of the processing result is requested Confirm the processing result of the corresponding service, and if it is necessary to confirm the processing result of the corresponding lower service, send the processing result confirmation request with the service ID of the corresponding lower service to the lower service processing device A second function for transmitting the confirmed processing result to the transmission source of the processing result confirmation request when the result confirmation is completed;
When a service request to which the same service ID as the previously received service request is added is received, and a re-execution of a service that has been requested to be executed again is requested, the service requested to be re-executed Among the corresponding one or more services, for a subordinate service having idempotency, a service processing apparatus that performs the subordinate service having idempotency without confirming the processing result of the subordinate service having idempotency For a non-ideal subordinate service that does not have idempotency, the processing result of the non-ideal subordinate service is confirmed, and a response to the service request is received for the confirmed processing result. In the case of “unknown” indicating that the processing result is confirmed, the processing result confirmation request is transmitted to the service processing apparatus that performs the non-defective subordinate service, thereby confirming the processing result again. And confirmation only when the "processing unfinished" is obtained as the processing result, after transmitting the service request to the service processing apparatus for subservice non idempotent, the processing result of the lower service of the non-idempotent again A recording medium that functions as a service processing apparatus having a third function of performing a process to be performed and transmitting a response according to the confirmed processing result to the transmission source of the service request when the process is completed.
請求項14又は請求項15記載のサービス処理プログラムが記録された記録媒体。   16. A recording medium on which the service processing program according to claim 14 or 15 is recorded.
JP2009217653A 2009-09-18 2009-09-18 Service processing apparatus, system, program, and recording medium Expired - Fee Related JP4599456B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009217653A JP4599456B2 (en) 2009-09-18 2009-09-18 Service processing apparatus, system, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009217653A JP4599456B2 (en) 2009-09-18 2009-09-18 Service processing apparatus, system, program, and recording medium

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008239774A Division JP4401425B1 (en) 2008-09-18 2008-09-18 Service processing apparatus, system, program, and recording medium

Publications (2)

Publication Number Publication Date
JP2010073211A JP2010073211A (en) 2010-04-02
JP4599456B2 true JP4599456B2 (en) 2010-12-15

Family

ID=42204865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009217653A Expired - Fee Related JP4599456B2 (en) 2009-09-18 2009-09-18 Service processing apparatus, system, program, and recording medium

Country Status (1)

Country Link
JP (1) JP4599456B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072548A (en) * 2004-08-31 2006-03-16 Canon Inc Information processor, information processing method, and program therefor
JP2008140176A (en) * 2006-12-01 2008-06-19 Matsushita Electric Works Ltd Service provision system
JP2008204430A (en) * 2007-01-25 2008-09-04 Hitachi Ltd Business process reconstruction method, its program and computer

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2612385B2 (en) * 1991-07-02 1997-05-21 富士通株式会社 Transfer processing between multiple subsystems
JPH0962526A (en) * 1995-08-28 1997-03-07 Fujitsu Ltd Fault resistant rpc system and method therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072548A (en) * 2004-08-31 2006-03-16 Canon Inc Information processor, information processing method, and program therefor
JP2008140176A (en) * 2006-12-01 2008-06-19 Matsushita Electric Works Ltd Service provision system
JP2008204430A (en) * 2007-01-25 2008-09-04 Hitachi Ltd Business process reconstruction method, its program and computer

Also Published As

Publication number Publication date
JP2010073211A (en) 2010-04-02

Similar Documents

Publication Publication Date Title
JP4336735B1 (en) Service processing apparatus, system, program, and recording medium
US7900216B2 (en) Creating a modified service request and processing the results of its execution
US20070013948A1 (en) Dynamic and distributed queueing and processing system
US8424095B2 (en) Method and equipment for verifying propriety of system management policies to be used in a computer system
US20150066572A1 (en) Identity and access management
US9195681B2 (en) System, method and computer program product for transmitting a group of data elements
US20060080117A1 (en) Maintaining integrity within an adaptive value chain involving cross enterprise interactions
US20140236649A1 (en) Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment
JP2013534675A (en) Provisioning multiple network resources
US8914335B2 (en) Provisioning method and system
US8626526B2 (en) System and method for a healthcare communication framework
US7954112B2 (en) Automatic recovery from failures of messages within a data interchange
CN112463421A (en) Information processing system
JP4401425B1 (en) Service processing apparatus, system, program, and recording medium
Staron et al. Industrial experiences from evolving measurement systems into self‐healing systems for improved availability
JP4599456B2 (en) Service processing apparatus, system, program, and recording medium
JP4722864B2 (en) Data processing system, format conversion apparatus, received data processing apparatus, data processing method, and computer program
CN103312554B (en) A kind of method of testing of multiserver interactive service and system
JP2006053728A (en) Failure handling rule propagation method, failure restoration device and program
JP4259427B2 (en) Service processing system, processing method therefor, and processing program therefor
JP2004178480A (en) Transaction slip management method and transaction slip management program
JP2016134020A (en) Test device and method using test scenario
US10977210B2 (en) Methods for implementing an administration and testing tool
JP2010231309A (en) Long live transaction performance management method
CN117411771A (en) Data processing method based on block chain and related equipment

Legal Events

Date Code Title Description
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: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100927

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees