Moving forward within the software-platform continuum inevitably does (and will) involve taking a closer look at the implications of conceiving software as a service both on premise as well as on the cloud.  As a software visionary it means thinking progressively about ways in which new solutions can be 'composed' from existing software assets as well as bringing onto the surface totally new, potentially outthought of, possibilities.  As a software architect it means considering the impact on current and future architectures taking into account integration challenges, identity and access management, data 'flow', operational and 'infrastructural' requirements. As a software developer it means rethinking the crafting of software modules whereas the business or algorithmic logic may or may not reside locally; so that control is not necessary within the tight control of local instances defined within the context of environmentally reachable runtimes.

The following taxonomy enables a clear depiction of software plus services:

·Traditional software refers to applications installed in the infrastructure accessed exclusively by internal users.

·Building block services provide low-level capabilities that can be consumed by developers when building a composite application. These services exist in the cloud.

·Attached services provide a higher level of functionality compared with building block services. Applications leverage attached services to add functionality.

·Finished services are analogous to full-blown applications, delivered over the Internet using the SaaS model.

·S+S refers to the use of applications that consume attached services or one that is built with building block services.

To learn more about the implications Software +Services consumption for the Enterprise, please refer to this MSDN article which explores the areas of concern mentioned here and more: Implications of Software + Services Consumption for Enterprise IT