Mashup
OK, I'll bite, what the heck is a mashup?
Trusty Wikipedia defines a mashup
as "a website or web application that uses content from more than one source to create a completely new service." This is part of the whole Web 2.0 thing. Sounds like a portal
(as in WebSphere Portal Server, an enterprise portal
server) to me.
Portal vs. Mashup
So if mashups are different from portals, what's the difference? The difference seems to be organization.
A portal is more centrally designed, with each part designed as a portlet
with the specific intention of being aggregated into one or more portal screens. Also, a portlet is a little GUI-data bundle, a chunk of reusable data and the means to display it in a portal.
Mashups seem to be much more ad hoc
and unplanned. They're API-driven, so the source (a mashlet?!) just provides the data, not a mini-GUI to display the data. The mashlet, like a true service, doesn't know what mashups are going to use it or what they're going to use it for. Since the mashlet doesn't provide a GUI, it's up to each mashup to decide if and how to display the data; a mashup might just use the data in the background to perform calculations or determine preferences without ever explicitly displaying it to the user.
Whereas a portal is a grid of non-overlapping portlet GUIs, a mashup can combine data from various mashlets and create a display built from the merger.
Mashup vs. Composite Application
In mashlet, I contend that a mashup content source is really just a service. If that's the case, then I think it's fair to say that a mashup is basically a composite application--it invokes several services on behalf of a user and displays the results. So mashups may not be as entirely new of an idea as they're cracked up to be.