Platform as a Service
In cloud computing, Platform as a Service offerings are at an intermediate level of flexibility and customer responsibility between Software as a Service and Infrastructure as a Service. Like IaaS, the customer will do some programming to define the customer-specific environment, although some PaaS products use graphic programming. Others use high-level languages such as Java Programming Language and Python.
Like SaaS in that low-level programming is not necessary, but does require customer programming at a middleware level, such as Web services, Java Virtual Machine, XML or SQL databases, etc. Increasingly common are generalized messaging services, including both electronic mail and text/chat interfaces; it is SaaS if the service provides the user interface, but PaaS if the client-server interface is at the protocol level.
Billing for PaaS is most commonly on a per-transaction model.
Higher-level language virtual machines
Google App Engine and other products allow use of higher-level abstractions such as Java and Python virtual machines in combination with web services.
A Java Virtual Machine is middleware, not the operating systems or virtual processors in IaaS but below SaaS applications. Java is used both for non-interactive and interactive applications. Nikita Ivanov describes two basic approaches, which are not mutually exclusive, but different products tend to have one or the other dominate.  The first is much like the way a traditional data center is organized, where the developers have little control over infrastructure. "The second approach is something new and evolving as we speak. It aims to dissolve the boundaries between a local workstation and the cloud (internal or external) by providing relative location transparency so that developers write their code, build and run it in exact the same way whether it is done on a local workstation or on the cloud thousands miles away or on both."
Google App Engine uses the second model, encouraging testing and development on a local workstation, and then uploading the production version to Google's cloud. Its first version used a Python virtual machine, but has been extended to Java, both with web tools.
Elastic Grid adds value to a Java virtual machine platform with what they call a "Cloud Management Fabric" and a "Cloud Virtualization Layer". The latter provides Elastic Grid customers with an overlay onto IaaS providers such as Amazon EC2 and Rackspace. The former allows the customer to "dynamically instantiate, monitor & manage application components. The deployment provides context on service requirements, dependencies, associations and operational parameters."
Coupled to existing ecosystem
Some are restricted to an business function specific set of APIs (e.g., Strike Iron and Xignite) to a wider range of APIs in Google Maps, the U.S. Postal Service, Bloomberg, and even conventional credit card processing services. Salesforce.com now offers an application-building system with this term, called Force.Com, as well as its original SaaS products. 
Mashup-specific products include Yahoo Pipes or Dapper.net. Some PaaS vendors specialize in handling specific kinds of data. StrikeIron, for example, might be considered a computer-to-computer mashup, integrating external data bases with enterprise data, and combining them within a common business functions such as call centers, customer resource management and eCommerce. It accepts U.S. Postal Service data. . Xignite is more specific to the financial industry, retrieving data such as stock quotes, financial reference data, currency exchange rates, etc.
Audio and video information are normally accessed with applications rather than at the filesystem level, so PaaS is an appropriate interface level.