The scope of an application
I 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.
Comments
Ta for clarifying, how did you get such a good blog entry and graphic together so fast though?
"All of that, to me, is an application. A better name might be the System, but the concept is the same."
Perfect, thats what I was thinking and in that context it all makes sense.
Hey Oren,
What application do you use to create your diagrams?
I was just about to ask the same thing :) Nice Diagram(s)!
One question, what does your solution structure look like for such an application?
You must have a shared domain model and other shared projects/layers, do they and all the clients (including UIs) sit in one solution?
Not generally, at least not one it starts growing.
It becomes too big.
Comment preview