Interfaces between applications
It is desirable to visualize interfaces between applications. Which ArchiMate concepts can be used for this purpose?
An application is modeled as an application component with corresponding application functions. An interface between applications is modeled via an application service. The application service delivers data by means of an access relationship with a data object. In the example model application function A realizes an application service that is used by B. The application service delivers the data that are in the data object
Figure 9: Application interface using application functions, application service and connected data object
If existing interfaces between applications in a company are visualized according to this pattern, it might appear to suggest that a service oriented architecture is in place while in reality this does not have to be the case.
With compliance to rules of composition (refer to good practice ‘Simplification with sustainable consistence’), application functions can be left out of the model. The figure below shows the result.
- Figure 10: Application interface using application service and connected data object
The above interface can also be modeled without a data object:
- Figure 11: Application interface using application service
Not every organization will have a service oriented architecture. In that case it is also possible to model application interfaces using a relationship between the applications. This can be done using for instance a used-by relationship (denoting that Application A is used by Application B) or by a using a flow relation (denoting that information flows from Application A to Application B, or from B to A). In the example below: Application A delivers customer data to application B.
- Figure 12: Application interface using a flow relationship
In some cases interfaces between applications are not realized directly, but via a database. One application writes into a table that is read by another application. Below figure shows this. Application A writes, Application B reads the same data object.
- Figure 13: Application interface using data object