Arun Viswanathan is a Technology Lead with the Java Centre of Excellence in SETLabs, Infosys Technologies, Bangalore. He works on Java and Java EE technologies. He can be reached at Arun_Viswanathan01@infosys.com.
Mashups are an architectural style that combines data and/or content from different data sources or sites. Mashups are normally differentiated based on the use, architecture style, and data. While consumer mashups have been in use for a while, we're now see them moving into the enterprise. In a general sense, what differentiates a consumer mashup from an enterprise mashup scene is that enterprise mashups are built following standard guidelines such those promoted by the Open Mashup Alliance (OMA), a standard model proposed by mashup vendors.
The OMA is a federation of some of the top vendors in mashup space. The alliance has been set up with the aim to have a standardized, consistent, and interoperable way of developing and deploying the mashups. The principles of the organization are open and the specification and runtime implementation are made available to anyone to use through the Creative Commons License.
The OMA defines an Enterprise Mashup Markup Language (EMML) which is used to define mashups in a standardized manner. The mashup defined thus can be deployed in any of the mashup runtimes which is implemented as per the specifications provided by the OMA.
In this article, I examine at the importance of OMA, the mashup architecture proposed by OMA, and the ease with which developers can create, deploy, and test a mashup developed as per the EMML specification.
The Need for Standard Mashup Development
There are several reasons why I think a standard mashup development platform is a necessity:
- The mashup space is fragmented with lots of vendors. Currently there is no single dominant mashup platform.
- All applications do not provide a web API which is the one of the main inputs for a mashup.
- There is also splintering of widget models developed by large enterprises.
- Access to accurate data sources within the network is required in a consistent manner.
The mashup marketplace is still developing. Since there was no dominant platform there was a need to provide a standard way of developing mashups to accelerate their use. A unified mashup model:
- Can increase the software quality
- Lower cost of IT since they wouldn't need to develop their own ways of mashing
- Bring about a standardization and consistency of approach
- Help drive innovation
- Improves the portabilit of mashup designs and allows interoperability of mashup solutions, thus reducing the risk and cost to organizations that are adopting enterprise mashups.
- Provide an easy way to create mashups from different sources
The Enterprise Mashup Markup Language (EMML)
OMA defines an XML markup language -- EMML -- for creating enterprise mashups. EMML is declarative mashup domain-specific language which eliminates complex and procedural programming requirement to create mashups. It is an open specification and the language is free to use. EMML will thus remove any vendor lock-in and allows portability of the mashup solution. OMA has released the EMML specification, EMML schema, and an open source reference implementation where EMML scripts can be deployed and tested. Figure 1 illustrates the EMML architecture.
An EMML file is the mashup script that has a ".emml" extension and uses the Enterprise Mashup Markup Language. The mashup script defines the services, operations and responses to be constructed based on the results generated. The input to the EMML script could be through any of the data sources such as XML, JSON, JDBC, Java Objects or Primitive types. EMML provides a uniform syntax to call any of the service styles -- REST, SOAP, RSS/ATOM, RDBMS, POJO or web clipping from HTML pages. Complex programming logic is also supported through an embedded scripting engine which supports JavaScript, Groovy, JRuby, XPath and XQuery. The EMML script is then deployed on to any J2EE compliant application server where the EMML runtime has been deployed. The mashup is then accessible as REST service using a URL with the mashup name. The Mashup service returns the result in XML format.


