Share
VIDEOS 1 TO 50
Enterprise Mashup Markup Language Top  #9 Facts
Enterprise Mashup Markup Language Top #9 Facts
Published: 2016/01/25
Channel: Rishika Janaki
Boom in Enterprise Mashups
Boom in Enterprise Mashups
Published: 2009/02/09
Channel: Dice News
Google Developer Day US - KML Search and Dev. Maps Mashups
Google Developer Day US - KML Search and Dev. Maps Mashups
Published: 2007/06/05
Channel: GoogleDeveloperDay
EmmL
EmmL
Published: 2016/05/25
Channel: EmmL Drums
(EMML)TYG
(EMML)TYG
Published: 2017/08/29
Channel: EMML
My level jadensoriano vs Emml
My level jadensoriano vs Emml
Published: 2016/12/27
Channel: Jaden gamer Soriano
Creation of a website within 10 minutes (video)
Creation of a website within 10 minutes (video)
Published: 2008/10/27
Channel: nikucoz
Google I/O 2010 - OpenSocial in the Enterprise
Google I/O 2010 - OpenSocial in the Enterprise
Published: 2010/05/28
Channel: Google Developers
Level name is tow pont one Jadensoriano vs Emml.
Level name is tow pont one Jadensoriano vs Emml.
Published: 2016/12/29
Channel: Jaden gamer Soriano
Out and About: XAML and being a Software Startup with Richard Godfrey
Out and About: XAML and being a Software Startup with Richard Godfrey
Published: 2009/06/22
Channel: Uk Dpe
Google Analyst Day 2007 - Part 1
Google Analyst Day 2007 - Part 1
Published: 2007/10/25
Channel: Google
20131103 Msg by Bro Emml Attoh
20131103 Msg by Bro Emml Attoh
Published: 2013/11/12
Channel: QFC BronxNorth
➡Emml⬅ always 60 fps from now on c: | taqv
➡Emml⬅ always 60 fps from now on c: | taqv
Published: 2017/11/08
Channel: taqv
Distribution of computers donated by EMML, TAG Financial Services and Charman Partners (Australia)
Distribution of computers donated by EMML, TAG Financial Services and Charman Partners (Australia)
Published: 2014/10/08
Channel: madhawa Hewawasam
20140803 ~ Faithfulness [Bro. Emml Attoh]
20140803 ~ Faithfulness [Bro. Emml Attoh]
Published: 2014/10/02
Channel: QFC BronxNorth
WSDMA Top  #5 Facts
WSDMA Top #5 Facts
Published: 2016/01/25
Channel: Rishika Janaki
EMML YEBOAH MPEG
EMML YEBOAH MPEG
Published: 2016/08/26
Channel: Abdul Wahab
Stairs! - Vlog - [EMML]
Stairs! - Vlog - [EMML]
Published: 2017/10/13
Channel: Emilio Lingg
Skating in Schellenberg - VLOG - [EMML]
Skating in Schellenberg - VLOG - [EMML]
Published: 2017/07/17
Channel: Emilio Lingg
My first video! - Vlog - [EMML]
My first video! - Vlog - [EMML]
Published: 2017/05/15
Channel: Emilio Lingg
Google I/O 2009 - Groovy and Grails in App Engine
Google I/O 2009 - Groovy and Grails in App Engine
Published: 2009/06/01
Channel: Google Developers
Google I/O 2011: High Performance KML for Maps and Earth
Google I/O 2011: High Performance KML for Maps and Earth
Published: 2011/05/12
Channel: Google Developers
Google I/O 2012 - Fireside Chat with the Google Maps API Team
Google I/O 2012 - Fireside Chat with the Google Maps API Team
Published: 2012/07/02
Channel: Google Developers
Service Provisioning Markup Language  SPML   High impact Strategies   What You Need to Know  Definit
Service Provisioning Markup Language SPML High impact Strategies What You Need to Know Definit
Published: 2015/01/28
Channel: TheArtofService
6 Learn about  HTML declarations
6 Learn about HTML declarations
Published: 2017/01/16
Channel: Ricky Wahowa
The Expanding Role of XML Gateways in SOA, Mobile and Cloud Featuring Forrester
The Expanding Role of XML Gateways in SOA, Mobile and Cloud Featuring Forrester
Published: 2011/09/22
Channel: CA API Management
Google Developer Day London: Earth, KML and the GeoWeb
Google Developer Day London: Earth, KML and the GeoWeb
Published: 2007/06/02
Channel: GoogleDeveloperDay
Introduction to Building Dynamic Websites
Introduction to Building Dynamic Websites
Published: 2014/06/06
Channel: Open Education and Culture
Building Dynamic Websites with MVC and XML
Building Dynamic Websites with MVC and XML
Published: 2014/05/24
Channel: Open Education and Culture
Google I/O 2011: GIS with Google Earth and Google Maps
Google I/O 2011: GIS with Google Earth and Google Maps
Published: 2011/05/13
Channel: Google Developers
Josef Burg (writer) Top  #5 Facts
Josef Burg (writer) Top #5 Facts
Published: 2016/01/25
Channel: Rishika Janaki
Internet of Things Management Platform by Friendly Technologies
Internet of Things Management Platform by Friendly Technologies
Published: 2015/06/01
Channel: Friendly Technologies TR069, Smart Home, IoT
web search engine based approach to measure semantic
web search engine based approach to measure semantic
Published: 2012/12/05
Channel: IEEE PROJECTS MICANS INFOTECH
Google I/O 2012 - Knowledge-Based Application Design Patterns
Google I/O 2012 - Knowledge-Based Application Design Patterns
Published: 2012/07/10
Channel: Google Developers
2015 DigitalGov Citizen Services Summit
2015 DigitalGov Citizen Services Summit
Published: 2015/06/12
Channel: DigitalGov
Week 5
Week 5
Published: 2013/08/12
Channel: CS76
Composite Application  High impact Strategies   What You Need to Know  Definitions  Adoptions  Impac
Composite Application High impact Strategies What You Need to Know Definitions Adoptions Impac
Published: 2015/01/27
Channel: TheArtofService
Composite Application  High impact Strategies   What You Need to Know  Definitions  Adoptions  Impac
Composite Application High impact Strategies What You Need to Know Definitions Adoptions Impac
Published: 2015/01/28
Channel: TheArtofService
NEXT
GO TO RESULTS [39 .. 88]

WIKIPEDIA ARTICLE

From Wikipedia, the free encyclopedia
  (Redirected from EMML)
Jump to: navigation, search

EMML, or Enterprise Mashup Markup Language, is an XML markup language for creating enterprise mashups, which are software applications that consume and mash data from variety of sources, often performing logical or mathematical operations as well as presenting data. Mashed data produced by enterprise mashups are presented in graphical user interfaces as mashlets, widgets, or gadgets. EMML can also be[citation needed] considered a declarative mashup domain-specific language (DSL). A mashup DSL eliminates the need for complex, time-consuming, and repeatable procedural programming logic to create enterprise mashups. EMML also provides a declarative language for creating visual tools for enterprise mashups.

The primary benefits of EMML are mashup design portability and interoperability of mashup solutions. These benefits are expected to accelerate the adoption of enterprise mashups by creating transferable skills for software developers and reducing vendor lock-in. The introduction of EMML is expected to help accelerate the trend toward the integration of Web-based applications and service-oriented architecture (SOA) technologies.[1] Bank of America was a high-profile early supporter of EMML.[2] Other prominent early supporters included Hewlett-Packard, Capgemini, Adobe Systems, and Intel.[3]

EMML history[edit]

Raj Krishnamurthy (chief architect at JackBe Corporation) and Deepak Alur (VP engineering at JackBe Corporation) started working on EMML in 2006. Their objective was to enable user-oriented and user-enabled mashups by creating what was then a new type of middleware called an Enterprise Mashup Platform. Raj Krishnamurthy became the chief language designer and implementer of EMML and also led the team to create an Eclipse-based EMML IDE called Mashup Studio.[4] This work evolved into the EMML reference implementation that was donated to the Open Mashup Alliance. Raj Krishnamurthy continues to be one of the key contributors to EMML through the Open Mashup Alliance.

EMML features[edit]

EMML language provides a rich set of high-level mashup-domain vocabulary to consume and mash a variety of Web data-sources in flexible ways. EMML provides a uniform syntax to invoke heterogeneous service styles: REST, WSDL, RSS/ATOM, RDBMS, and POJO. The EMML language also provides ability to mix diverse data formats: XML, JSON, JDBC, JavaObjects, and primitive types.

High-level EMML language features include:

  • Filter and sort data coming from heterogeneous services
  • Join data across heterogeneous services and data formats
  • Group and aggregate data using assorted functions
  • Annotate original service data to enrich its semantic meaning
  • Merge multiple data streams into consolidated datasets
  • Split datasets to select individual data fields
  • Embedded scripting support for JavaScript, JRuby, Groovy, XQuery
  • Web clipping to scrape data from HTML pages
  • Conditional statements - If/Then/Else, While, ForEach
  • Parallel syntax for concurrent processing

EMML is primarily a XML-based declarative language, but also provides ability to encode complex logic using embedded scripting engines. XPath is the expression language used in EMML.

Directinvoke statement[edit]

directinvoke[5] provides ability to invoke and consume a variety of data services. These data services may be REST, RSS/ATOM, or SOAP services. directinvoke also supports Web clipping by allowing HTML pages to be specified as service endpoints. HTTP GET, POST, PUT, and DELETE protocols are supported in directinvoke. HTTP Header and cookie support is also available thus providing capability to consume a wide variety of REST/SOAP Web services. It is possible to use directinvoke with a proxy server.

Code sample of passing attributes as parameters to a service:

<directinvoke endpoint="http://www.myCompany.com/rest-services/getItems" 
    method="GET" outputvariable="$result" query="items=all" 
    appID="67GYH30N25" /> 

<directinvoke endpoint="http://www.svcsltd.com/getReservation" 
    method="GET" outputvariable="$news" xmlns:sc="http://www.svcltd.com/" 
    sc:date="20070515" sc:nights="3"/>

Filter statement[edit]

The filter[6] statement filters the content of a variable using an XPath expression and places the result in a new variable.

Code sample for filtering west-coast customers using region data-item:

<filter inputvariable="$queryResult" filterexpr="/customers[region='West']" outputvariable="$westCoastOnly"/>

Sort statement[edit]

The sort[7] statement sorts the content of a document-type variable or variable fragment based on key expressions and places the result in another variable.

Code sample that sorts tickets based on created date and customer:

<sort inputvariable="$troubleTickets" 
  sortexpr="ticket" 
  sortkeys="xs:date(created) descending, customer ascending" 
  outputvariable="$troubleTickets"/>

Groupby statement[edit]

groupby[8] provides the ability to group and aggregate data sets. Standard XPath aggregation operations can be used and there is an extension mechanism for adding user-defined functions. Nested Grouping of hierarchical data sets are also supported. There is a Having clause to filter Group attributes.

Code sample that groups books by genre and computes total copies for each genre:

<group by="$catalog//book/genre" outputvariable="$groupResult"> 
    <res:genre name="{$group_key}" copiessold="{sum(copiessold)}"/> 
</group>

Merge statement[edit]

merge[9] provides ability to combine various data sources including RSS/ATOM feeds, XML, JSON payload formats. The merge feature is similar to SQL UNION functionality but merges hierarchical document structures.

Code sample that merges Yahoo! News, Financial News, and Reuters feeds:

<merge inputvariables="$YahooRSS, $FinancialNewsRss, $ReutersRSS" 
  outputvariable="$NewsAggregate"/>

Annotate statement[edit]

annotate[10] provides ability to enrich the semantic meaning of source service data with microformat-like elements/attributes. These data annotations can be used by mashlets or gadgets to provide richer visual user interfaces.

Code sample for annotating vendor payload with geo-coordinates:

<annotate variable="$vendors" expr="/vendor/site" > 
element geo:lat { $georesult//y:Latitude/string() }, 
element geo:long { $georesult//y:Longitude/string() } 
</annotate>

Join statement[edit]

The join[11] statement defines how disparate, hierarchical data formats are joined and is comparable to inner joins for relational databases.

Code sample where output variable contains a <res:recommendations> element with a repeating set of <res:movie> children, which are the repeating items. Each <res:movie> contains a <res:movietitle> child with data from the variable named movies and <res:rating> and <res:comment> children with data from the variable named reviews:

<join outputvariable="$joinResult" 
  joincondition="$movies/movie/@id = $reviews/review/movie/title"> 
  <select name="res:recommendations"> 
      <res:movie> 
        <res:movietitle>{$movies/title}</res:movietitle> 
        <res:rating>{$reviews/rating}</res:rating> 
        <res:comment>{$reviews/comment}</res:comment> 
      </res:movie> 
  </select> 
</join>

Scripting in EMML[edit]

EMML is a declarative language, but provides programmatic scripting[12] extensions for performing complex mashup logic. JavaScript, JRuby, Groovy, POJO, XQuery scripting environments are supported. Data flows seamlessly between EMML and scripting environments.

Code sample where JavaScript snippet is used to extract authentication token that is required for subsequent calls "result" variable that gets propagated to JavaScript environment:

<script type="text/javascript">
<![CDATA[
            var r = new String(result)
            var ar = r.split("=");
            auth = ar[ar.length-1];
            auth = auth.slice(0, -1)
            ]]>
</script>

See also[edit]

References[edit]

Further reading[edit]

Disclaimer

None of the audio/visual content is hosted on this site. All media is embedded from other sites such as GoogleVideo, Wikipedia, YouTube etc. Therefore, this site has no control over the copyright issues of the streaming media.

All issues concerning copyright violations should be aimed at the sites hosting the material. This site does not host any of the streaming media and the owner has not uploaded any of the material to the video hosting servers. Anyone can find the same content on Google Video or YouTube by themselves.

The owner of this site cannot know which documentaries are in public domain, which has been uploaded to e.g. YouTube by the owner and which has been uploaded without permission. The copyright owner must contact the source if he wants his material off the Internet completely.

Powered by YouTube
Wikipedia content is licensed under the GFDL and (CC) license