The scope of an application

time to read 2 min | 311 words

imageI am using the term "application private scope" quite often, and it seems that I need to make this clear.  Note that I am talking about logical layout here, physical layout doesn't really matter here (except with rolling updates, which are beside the point).

An application is all the code and functionality that is required to perform a specific task.

Let us take a recent project of mine, which dealt with scheduling people to do work. The Application consisted of two different web UI, one that was based on MS CRM, the other that was based on MonoRail, a set of reports, ETL processes from backend systems, service interface to integrate with data exposed by the Internet site of the customer, a smart client application that allowed easy and flexible editing of particular parts of the systems that were data entry heavy.

All of that, to me, is an application. A better name might be the System, but the concept is the same.

Inside this application, we are free to expose implementation details (there still may be design reasons not to want to do that, of course, but that is an internal decision).

All of those are within the scope of a single team, as such, changing the DB in one place may necessitate a change in other places, but that is all right, it is in the same application.

The application explicitly did not contain the processes that took the amount of time worked per time period and performed the necessary payroll processes, nor was it responsible for the external website, which needed data from the application.

Both of those (and several other systems that we integrated into), used well defined integration points. Those integration points were parts of the application.