Here's a great example where an agreed-upon taxonomy of Cloud Computing terminology would really be helpful. Software-as-a-Service (SaaS) is fairly-well understood from both a business and delivery model perspective; that is, if we agree that SaaS is software hosted external to the user and billed on a usage basis versus a license basis. A typical SaaS application provides a user with a client to access the service and stores the user's data in the cloud. There are tons of examples of SaaS applications today, both billed and free models including Salesforce.com, Facebook and Google Applications.
However, if a SaaS application, which provides a user interface that a human can use to access the service, also provide an application programming interface (API), does it also qualify as Platform-as-a-Service? The typical PaaS offering has been focused on a coupling of discrete technologies that can be deployed as an integrated offering. It typically has an operating system, some frameworks, a runtime facility and runs completely in the cloud.
Some might also consider a common aspect of these platforms to be that they are deployed and managed as virtual machines and the applications produced on them to leverage elastic computing capabilities. In my opinion, this crosses many aspects of Cloud Computing, including Infrastructure-as-a-Service (IaaS). Thus, another indication that there is lack of agreement on the boundaries between many aspects of Cloud Computing.
However, let's return to our key focus; the border between SaaS and PaaS, and let's look at a well-known entity that meets this criteria—Facebook. Facebook is SaaS. The application manages your social connections and allows you to communicate with your community via text and pictures, both directly and broadcast. Each Facebook account is essentially a unique community with a distinct set of users and connections.
Facebook is also an application platform. The Facebook API allows developers to provide additional services to each of these individual communities. However, Facebook does not host this application. Instead the developer is required to host the application for themselves. Facebook provides a portal to access the new service, provides a facility to allow its community manager to control if the application has access or not and what levels of access are allowed. It also provides an interface to allow each application to connect into community features.
If I draw clear boundaries around PaaS, such that it represents only those offerings that can be deployed as a complete entity, and does not include offerings where the platform is already deployed and accessed via a service interface, then Facebook is not PaaS. However, this means that PaaS is once again a poorly-named IT offering, because, it is a platform and it is offered as a service.
I realize that I do not have a good answer for this conundrum as of this time. I believe the answer lies in semantics and taxonomy, but it is not something one individual can drive alone.