A given deployment choice may exhibit any of the following influences on your software architecture.
Flexible, Parameterized, or No Integration Options
A system deployed at a customer's site has the greatest demand for flexible integration options. A system deployed as an ASP or MSP may require flexible integration, but the xSP vendor is often not motivated to provide it because of its extremely high costs. In fact, the more standard the xSP can make the offering, the better. Standardized offerings are simpler to create, simpler to manage, and more profitable to operate . Any deployment choice can be offered with no integration options, which is surprisingly appropriate when you're creating a system with very well defined functions and relatively simple boundaries.
Different deployment architectures make different upgrade demands. For systems deployed at a customer site upgrades must be carefully planned to be minimally disruptive. This can be especially challenging if the customer has crucially important data or has extensively integrated the production system with a large amount of their own programming. For this reason, enterprise-class systems deployed onsite are rarely upgraded more than once every nine months. In contrast, I know of one world-class MSP that safely modifies their production system approximately every 10 to 12 weeks, rapidly introducing new features to their customers in an emerging market. They are able to do this because early in the development of the system they made substantial changes to make upgrading easier. Upgrades are discussed more thoroughly in Chapter 12.
Data Protection and Access
Application data maintenance must be appropriate based on the application, the users, and the data's sensitivity/importance. When the system is deployed at a customer site all responsibility for handling these issues, especially as they relate to corporate data, is the customer's. As mentioned earlier, the converse is also true: Storing customer data at, or as, an xSP requires that the xSP or your engineering, product development and operations staffs follow strictly defined guidelines that deal with proper data handling. Would you let your company manage your confidential information?
I expect an increase in the number of solutions that can be deployed either as ASPs/MSPs or on a customer-site. Furthermore, I suspect that these solutions will ultimately need to support migrations as previously described in this chapter. The possible effects of migration should be considered in the overall design of your architecture.