## 2 Mashup Middlewares  
A mashup middleware can have a _primitive_ or _composite_ architectural structure. The most primitive mashup middleware contains only a feed reader. For example, Google Reader (www.google.com/reader) is a primitive mashup middleware that can follow the feeds from other web sites and inform the user for any news transmitted in the feed (i.e. latest information added on some web site via RSS or Atom). One can insert feeds in Google Reader and later read the news from there without the need to go to the specific web site. Google Reader is very useful middleware because it saves mashup clients lot of time and delivers information which the client has interested in. Even if in case that the provided information is just too much, one can use tags or folders to organize such provided information as Google Reader enables the user to assign such tags to different feeds, so that the information can have some structure and is easily perceived. However, one can build on this primitive mashup middleware, for example by adding some sort of context and makes the feed reader aware of the user mashup needs. Many mashup middlewares just try to do that (e.g. the PLATE System [14]). A very simple example is provided by [PERSON] [15] where he used Google Reader in conjunction with Netvibes aggregator (www.netwibes.com). In this direction, you need first to set up your start page in Netvibes and it creates tabs which correspond to different contexts such as work,home, hobby and web applications. Then insert your Google Reader feeds at the appropriate tabs. In this way you solved both the problem associated with the linear presentation of information as well as the lack of context. Netwipes allows you to arrange the elements of the start page spatially. Reading the feeds in context helps you filter, assimilate and remember the useful items. However, not all the composite middlewares are as simple as Google Reader-Netwipes. Most commonly, composite middlewares represent an _Enterprise Mashup Infrastructure_ with the following components:  
* Services and information produced in a format that can be mashed, such as RSS/Atom, Web services, or REST
* Visualization components such as portlets, widgets, and gadgets
* A tool to compose the mashup and wire components together
* A robust infrastructure to manage all the change and new combinations  
Examples of Enterprise Mashups include JackBe (www.jackbe.com), Mainsoft SharePoint Federator and IBM WebSphere Portal (www.mainsoft.com), Oracle Fusion Middleware (www.oracle.com/middleware), WSO2 Middleware ([[http://wso2.com](http://wso2.com)]([http://wso2.com](http://wso2.com))), Kapow Mashup Server (www.kapowtech.com), SnapLogic (www.snaplogic.org) and Apache XAP ([[http://incubator.apache.org/xap/](http://incubator.apache.org/xap/)]([http://incubator.apache.org/xap/](http://incubator.apache.org/xap/))). Generally, there are two main components that can be identified at any Enterprise Mashup infrastructure: Mashup builder and Mashup Enabler. The mashup builder produces the user interface of the resulting mashup through connecting several required widgets to create a composite application. The mashup enabler accessing the mashed-up unstructured data and makes the internal and external resources available based on REST, RSS or Atom. Both components may be called an Enterprise Mashup Server. Figure 2 illustrates the way the Enterprise Mashup Server works as a middleware and Figure 3 illustrates the general structure of Enterprise Mashup Server.  
The 2008 Horizon Report [2] calls the Enterprise Mashup as the Social Operating System as it represents the basic organization of the network around people, rather than around content. However, the architecture of such social operating system becomes more complex as the degree of semantic awareness increases as well as with the increasing freedom of social connectivity ((e.g. across enterprises as in the _Cloud paradigm_[16]).  
Figure 2: Enterprise Mashup Server as a Middleware.