The enterprise information systems (EIS) tier consists of database servers, enterprise resource planning systems, and other legacy data sources, like mainframes

Click on the image below to view it full size in an image viewer !
The enterprise information systems (EIS) tier consists of database servers, enterprise resource planning systems, and other legacy data sources, like mainframes

We are told that all the '(EIS) tier .. consists of .. data sources'.

It might be tempting to allow *Datastore to provide an Interface for getting (or loading) data, however this does not meet the case where the data source is readonly; for the sake of illustration I've decided the *Mainframe analysis component will only be read, imagining we are only migrating from it, never storing new data into it.

A better solution is to inherit from an abstract *Datasource, which provides a *Get Interface via a Port, which also appears now on the *Tier_Data (a.k.a. 'EIS tier'), since it integrates all data sources and data stores (and will delegate to/from them as needed).

IMPORTANT: there is no end to the number of convenient analysis Interfaces we may include under port-based engineering, and they may freely overlap; for example, if a database supports SQL queries (which may be used to store and/or load data), there is no reason why we can't also have a *Query Interface as well. This opportunity for non-exclusive redundancy is a very powerful aspect of port-based service-orientation.