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
Enterprise Mashups  High impact Strategies   What You Need to Know  Definitions  Adoptions  Impact
Enterprise Mashups High impact Strategies What You Need to Know Definitions Adoptions Impact
Published: 2015/01/27
Channel: TheArtofService
Mobilgard™ 410 NC - breakthrough protection for long engine life
Mobilgard™ 410 NC - breakthrough protection for long engine life
Published: 2015/08/24
Channel: ExxonMobil Marine
Introduction to Bots | AI2
Introduction to Bots | AI2
Published: 2017/11/17
Channel: Microsoft Visual Studio
Meta Data transporting systems in semantic web part 1
Meta Data transporting systems in semantic web part 1
Published: 2010/03/06
Channel: pldc104
➡Emml⬅ always 60 fps from now on c: | taqv
➡Emml⬅ always 60 fps from now on c: | taqv
Published: 2017/11/08
Channel: taqv
Emma rebt
Emma rebt
Published: 2016/10/16
Channel: the problem maker hey hey
4.5 Overview of New Features
4.5 Overview of New Features
Published: 2012/04/25
Channel: Pentaho, A Hitachi Group Company
Cold corrosion insights
Cold corrosion insights
Published: 2014/12/17
Channel: ExxonMobil Marine
Mobil SHC™ Synthetic Oil: The Next Generation of Productivity
Mobil SHC™ Synthetic Oil: The Next Generation of Productivity
Published: 2015/01/30
Channel: ExxonMobil Marine
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
My level jadensoriano vs Emml
My level jadensoriano vs Emml
Published: 2016/12/27
Channel: Jaden gamer Soriano
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
EMML YEBOAH MPEG
EMML YEBOAH MPEG
Published: 2016/08/26
Channel: Abdul Wahab
WSDMA Top  #5 Facts
WSDMA Top #5 Facts
Published: 2016/01/25
Channel: Rishika Janaki
Google I/O 2010 - OpenSocial in the Enterprise
Google I/O 2010 - OpenSocial in the Enterprise
Published: 2010/05/28
Channel: Google Developers
EMML National Research
EMML National Research
Published: 2013/08/06
Channel: Eastern Melbourne Medicare Local
Teachings by Bro. Emml Attoh
Teachings by Bro. Emml Attoh
Published: 2013/08/20
Channel: QFC BronxNorth
Mass Flow Metering System – for Bunker Fuel Delivery Measurement
Mass Flow Metering System – for Bunker Fuel Delivery Measurement
Published: 2014/12/17
Channel: ExxonMobil Marine
MPA Mandates the Use of Approved Mass Flow Metering Systems in Singapore
MPA Mandates the Use of Approved Mass Flow Metering Systems in Singapore
Published: 2014/12/17
Channel: ExxonMobil Marine
Webinar - Standardizing Identity Provisioning with SCIM
Webinar - Standardizing Identity Provisioning with SCIM
Published: 2012/01/20
Channel: WSO2TechFlicks
Google Analyst Day 2007 - Part 1
Google Analyst Day 2007 - Part 1
Published: 2007/10/25
Channel: Google
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
Pam
Pam's Story
Published: 2014/10/16
Channel: Eastern Melbourne Medicare Local
AEP River Operations discuss how they have reduced costs and improved productivity
AEP River Operations discuss how they have reduced costs and improved productivity
Published: 2014/12/17
Channel: ExxonMobil Marine
Gary
Gary's Story
Published: 2014/06/23
Channel: Eastern Melbourne Medicare Local
M.G. Kailis extends oil drain intervals to 3000 hours
M.G. Kailis extends oil drain intervals to 3000 hours
Published: 2015/03/11
Channel: ExxonMobil Marine
20140803 ~ Faithfulness [Bro. Emml Attoh]
20140803 ~ Faithfulness [Bro. Emml Attoh]
Published: 2014/10/02
Channel: QFC BronxNorth
Creation of a website within 10 minutes (video)
Creation of a website within 10 minutes (video)
Published: 2008/10/27
Channel: nikucoz
How to Create GIS and BIM Interoperability
How to Create GIS and BIM Interoperability
Published: 2015/05/06
Channel: FME Channel
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
Introduction to Building Dynamic Websites
Introduction to Building Dynamic Websites
Published: 2014/06/06
Channel: Open Education and Culture
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
EmmL
EmmL
Published: 2016/05/25
Channel: EmmL Drums
Rich Internet Application  RIA   High impact Strategies   What You Need to Know  Definitions  Adopti
Rich Internet Application RIA High impact Strategies What You Need to Know Definitions Adopti
Published: 2015/01/27
Channel: TheArtofService
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 - 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
servicios XML consumir
servicios XML consumir
Published: 2011/05/18
Channel: TatancoChan
How to Prepare Data for Compelling Displays in Google Earth
How to Prepare Data for Compelling Displays in Google Earth
Published: 2012/01/05
Channel: FME Channel
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
Coding the Future (Zachary Sims, Founder of Codecademy & Rohan Silva) | DLD13
Coding the Future (Zachary Sims, Founder of Codecademy & Rohan Silva) | DLD13
Published: 2013/02/01
Channel: DLDconference
Google Developer Day London: Earth, KML and the GeoWeb
Google Developer Day London: Earth, KML and the GeoWeb
Published: 2007/06/02
Channel: GoogleDeveloperDay
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
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
Tom Leighton
Tom Leighton
Published: 2016/03/08
Channel: InfiniteHistoryProject MIT
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
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
Week 5
Week 5
Published: 2013/08/12
Channel: CS76
NEXT
GO TO RESULTS [51 .. 100]

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]

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