[Cross posted from Mashup Developer Community]
How exactly does the mashup process work? What does Presto really do? These are a couple of common newbie questions. I have had different explanations for this, but of late, I have narrowed down on the following elevator pitch (trust me, this textual explanation looks long, but I can explain really fast in person) that I have used successfully with other developers recently. So I thought I will share this with the community in case it helps others to understand the process and artifacts around enterprise mashups.
I found it easier to explain the whole mashup workflow using three terms: Mashables, Mashups and Shareables (OK, I confess, these may not be in the English Dictionary yet 🙂 ).
As a mashup developer or user, we need to start somewhere. To me that starting point is what I call Mashables. These are things that one can use, invoke to get data and send data. Things like services such as WSDL based web services, REST based web services, RSS or Atom services, proprietary XML/RPC services, or even the conventional RDBMS tables, view and stored procedures. I would also include other items such as spreadsheets, XML documents and unstructured information on internal and external websites. These are the raw material for mashups. These need to be made Mashable! And this is exactly what happens when you ‘publish’ one of these things to Presto. It becomes a Mashable artifact that can be normalized, secured and managed.
And then comes the second thing called Mashups. I don’t want to go into a philosophical discussion about what a mashup is or isn’t. However, I think mashup is a user-driven, user-focused thing that encapsulates the kind of data processing and manipulation actions a user would normally do to turn any data into real information. Such actions include joining, merging, sorting, filtering, constructing, transforming, clipping, and so forth. And in Presto, a mashup is represented by an small file written using EMML (EMML is Enterprise Mashup Markup Language). EMML is an XML-based dynamic declarative domain specific mashup language. Again, a Mashup becomes this artifact which can be secured and managed just like the Mashables.
The third and final thing is the Shareables. Once you have Mashables, and Mashups, you want to be able to share them with co-workers, partners, friends, whoever. Shareables can be exposed as a service interface so others can use it as a REST or RSS or Atom or WSDL service. Another popular type of Shareable is what we call Mashlets, which are enterprise widgets that offer a rich interface to the Mashups. Mashlets are not full blown applicaitons, but can be small micro-applications that encapsulate a very specific functionality. Mashlets can be shared by publishing them on Wiki pages, blogs, websites, portal servers. You can even email a mashlet or call it directly from a smart phone like iPhone. Other types of shareables include mashups and services shared as REST urls, RSS feeds, data feeds, spreadsheets, email and so on.
There you have it. Now I can just describe Presto simply as a platform to securely create, publish, consume and collaborate with Mashables, Mashups, and Shareables !
Let me know what you think.