The VETO Pattern
In this tutorial we will see the commonly used integration pattern VETO and its variations VETRO and aVETO.
VETO and VETRO, which are commonly used ESB patterns that use message itineraries to perform Validate, Enrich, Transform, (Route,) and Operate functions.
VETO stands for Validate, Enrich, Transform and Operate.
VETO Pattern Validate Step :
The Validate step is usually the first part of any ESB process. To promote the reuse It’s important that this step happen independently if possible. Building validation directly into the first service of a process makes it difficult to insert an additional service in front of it without requiring that the new service also provide its own validation.
The simplest form of validation(In VETO) can be validating the incoming xml payload against the schema or WSDL. Validataion can be performs against the syntax and the correctness of the incoming data.
If the incoming data is not in XML format for example CSV , then custom services can used to validate the incoming messages.
VETO Pattern Enrich Step :
In this step of VETO pattern additional information is added to original message to make it more meaningfull for the target system. This normally means linking the data that has been provided to start a business process to existing business data. Sometime new values are derived from the incoming payload to enrich the message.
VETO Pattern Transform Step :
The Transform step converts the message to a target format. Transform the provided data to a canonical form ready for a call to execute the business logic of the service. For a process that wraps a preexisting business application, this will often involve transforming data to a valid format for that system.
The VETO pattern Operate Step :
In this step of VETO Pattern the actual busuness logic is performed using the target system.The Operate step invokes the target service or interacts in some way with the target application.
Variations: The VETRO Pattern
There are many variations in VETO and this is one of them. In this additional routining step is added to route the request to perticular target system based on some predefined conditions. This step may could be part of the business process or to provide load balancing for high performance.
Variations: The aVETO Pattern
An additional authentication and/or authorization stage is carried out prior to the execution of the validation stage, ensuring that the process is executed by a trusted source with appropriate permission.