Annex B Chaining price services (Informative)
B.1 Overview
According to this specification a Vending Machine accesses one price service. This price service may, internally and transparent to the Vending Machine, access additional price services in order to access different resources for discounts and other price relevant information. In order to communicate in a standardized way between those different price services inside the main price service, the interface for price services defined in this specification may be used. That is, the main price service can implement OPC UA Client functionality to access potentially several price services being an OPC UA Server and providing the PriceServiceType. The logic, in which order those price services have to be accessed and what price to use in the end and provide to the Vending Machine, is an implementation detail of the price service.
B.2 Example
In Figure 20, an example is given. The MainPriceService is the price service accessed by the Vending Machine (not shown in figure). It is accessing PriceServiceDiscountA and PriceServiceDiscountB. As each price service can access additional price services, PriceServiceDiscountB is accessing PriceServiceDiscountC and PriceServiceDiscountD.

Note that each communication between the price services is potentially a remote operation and may take some time. Therefore, caching information from different price services may be required in order to have a reasonable response time for the main price service. Cashing strategies are vendor-specific.