While we have focused on the user interface being the top layer within our architecture, the reality is that these services could be consumed by applications built by other parts of the organization, or those of our partners or customers.
If these consumers are using the same architecture as us, they would view our services in the same way as we are viewing external web services within the Application Services layer of our architecture.
This implies the need to have an additional Virtual Services layer in our model, between the User Interface and Business Process layer. We could rely on the consumer of our services to build this layer, but it actually makes a lot of sense for us to provide it.
Remember that the goal of our original Virtual Services layer was to de-couple our composite application from the underlying services provided by the Application Services layer, so that we can insulate ourselves from changes to the underlying applications.
Here is the reverse. We...