Module for AS4 Version 10.1.May 2019 | Understanding and Using webMethods AS4 Module | Installing and Using AS4 Module | Concepts | Agreement Update
 
Agreement Update
The Agreement Update (AU) standard conforms to the ebCore Agreement Update specification. AU enables in governing updates to certificates. In addition, you can also create new agreements based on existing agreements.
When an initiator requests a responder for an update to an existing agreement, the initiator sends an AgreementUpdateRequest document to the responder. An AgreementUpdateRequest includes one or more UpdateRequest elements. An UpdateRequest is an abstract element that has the abstract type UpdateRequestType. For certificate updates, an AgreementUpdateRequest must include CertificateUpdateRequest to request an update for a specific certificate used in a particular agreement.
The exchange of agreement updates in AS4 user messages between trading partners includes requests, responses, and exceptions. An agreement update exchange is mostly an asynchronous process that may take hours or days. A typical flow of an agreement update exchange between trading partners is as follows:
For more information about AU services, see Built-In Services. For more information about Agreement Update, see OASIS ebCore Agreement Update Specification Version 1.0.
The initiating MSH generates the AgreementUpdateRequest message using the wm.estd.as4.au.message:generateUpdateRequest service in the format specified by AU specification document. The initiator submits the generated Agreement Update Request message using the wm.ip.estd.as4.msh:submit service as a payload in the user message to the responder. The submit service recognizes the user message as an Agreement Update message based on the service and action values as specified in the Agreement Update specification, service input, and persists the user message and Agreement Update Message into Trading Networks as two separate transactions and sends them to the responder.
The responding MSH receives the Agreement Update Request message, recognizes it as an AgreementUpdateRequest message based on action and service specified in the user message header and persists it as user message and AgreementUpdateRequest into Trading Networks as two separate transactions and invokes the processing rule that it is associated with. The wm.estd.as4.au.handlers:validate service is used to validate the AgreementUpdateRequest message and generates the AU errors if the message is invalid. If the validation results in errors, the responder uses the errors generated by the validate service, generates the AgreementUpdateException message using the message generation wm.estd.as4.au.message:generateUpdateException service, and sends it as a payload in the user message using the wm.ip.estd.as4.msh:submit service to the initiator. On successful validation of the AgreementUpdateRequest service, the responding MSH uses the wm.estd.as4.au.handlers:process service to process the request message, updates the certificates, and generates new agreements with new certificate ID. Then, sends the AgreementUpdateResponse message using the message generation wm.estd.as4.au.message.generateUpdateResponse service and sends it as a payload in the user message to the initiator using the wm.ip.estd.as4.msh:submit service.
The wm.estd.as4.au.handlers:validate service validates the inbound or outbound agreement update messages as described in the Agreement Update specification. If the message is invalid or is not according to the Agreement Update specification, then Agreement Update errors are generated.
The wm.estd.as4.au.handlers:process service updates the new certificate identified based on CurrentCertificateIdentifier present in the CertificateUpdateRequest in the initiator's Trading Networks partner profile at the responding MSH side. And, generates new TPAs for all the existing agreements identified based on CurrentAgreementIdentifier by copying the configuration from the existing agreements and configuring the new certificate ID for signing and encrypting. The wm.estd.as4.au.handlers:process service creates a new TPA by replacing the new version either by extracting the version number from update request if UpdateAgreementIdentifier is in the format https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/1.1 or the version numbers are incremented by appending _v_ string to the current TPA ID.
Example1: If the UpdateAgreementIdentifier is in https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/1.1 format, then the current TPA ID is https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/Request_v_1, UpdateAgreementIdentifier is https://entsog.eu/communication/agree_ment_s/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/1.1, and new agreement ID is https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/Request_v_1.1.
Example 2: If the UpdateAgreementIdentifier is not in https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/1.1, then current TPA ID is https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/Request_v_1, UpdateAgreementIdentifier is 1.1, and new agreement ID is https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/Request_v_2.
Example 3: If the current TPA ID does not contain any version format, then current TPA ID is https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/Request, UpdateAgreementIdentifier is 1.1, and new agreement ID is https://entsog.eu/communication/agreements/21X-EU-A-X0A0Y-Z/21X-EU-B-P0Q0R-S/Request_v_1 (starts with 1 and is incremented for the next request).
Module for AS4 supports the following ebCore AU documents:
*AgreementUpdateRequest
*AgreementUpdateResponse
*AgreementUpdateException
*AgreementTerminationException
*AgreementTerminationRequest
*AgreementTerminationResponse