This pattern uses a web service to communicate with a project that is located somewhere else. This can be a SOAP or a REST web service. These two projects are completely separate and can be deployed separately. See Web Services guide for more details of how this is modeled.

Characteristics

In the table below the implementation characteristics by using a Function is shown.

 

 

 TypeScoreDescription
Knowledge characteristicsUser set or System setUser set

User-set values enter the profile, which are set from the returning message and the subsequent data mapping.

Parameters or complex modelParameters

Only simple input/output parameters could be used with Web services (BaaS). The input and output parameters are neatly defined in the contract of the web service. You are able to steer what values are set in the data mapping. If you want to fill in the  parameters differently for different calls from the same module, an additional data mapping and AQ_WebServiceClient service call needs to be created.

Enhanced by Blueriq Functionality(blue star)Blueriq can use dependencies up to the contract. There are no decision requirement graphs or dependencies possible between the calling application and the BAAS.




Maintainability characteristics

It should be possible to quickly make changes to business rules independent of other functionality.

        
Focus on Internal or External UseExternal

A web service is intended for external use, and relies on an official contract definition.

Low Implementation complexity(blue star)(blue star)You get two additional modules in your project, and a second project next to it. As you are in control of the information being send, the structure will be similar to what you use in the application module. Therefore the mapping should be easy (1 to 1). You have to create your own contract for the communication, and keep this updated.
Internals invisible (encapsulation)(blue star)(blue star)(blue star)Internals are not visible and/or accessible of a web service.
Autonomous(blue star)(blue star)(blue star)The business rules are executed in a separate profile, and no side-effects are possible.
Highly Testable(blue star)(blue star)(blue star)Webservices are easily testable.
Highly Reusable(blue star)A BaaS implementation is not very reusable because of a lack of parameter support. Hence, for every web service call a mapping must be defined.
Out of the Box(blue star)(blue star)(blue star)No custom code required in general.


Deployment characteristics 

Part of Application or Separate Deployment (=deployment)Separate DeploymentAs soon as a new version is deployed, all consumers directly use the new version. When web services are versioned, the calling party can decide itself when to migrate to a new version.