Channels ▼

JVM Languages

Mashups and the Enterprise Mashup Markup Language (EMML)

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 [email protected]

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.

[Click image to view at full size]
Figure 1: 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.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.