Enterprise Mashup Markup Language - Enterprise Mashup Markup Language

EMMLnebo Enterprise Mashup Markup Language, je XML značkovací jazyk pro vytvoření podniku mashupy, což jsou softwarové aplikace, které konzumují a míchají data z různých zdrojů, často provádějí logické nebo matematické operace a také prezentují data. Mashed data produkovaná podnikovými mashupy jsou prezentována v grafických uživatelských rozhraních jako mashlets, widgety nebo gadgety. EMML může také být[Citace je zapotřebí ] považováno za deklarativní mashup jazyk specifický pro doménu (DSL). Mashup DSL eliminuje potřebu složité, časově náročné a opakovatelné logiky procedurálního programování pro vytváření podnikových mashupů. EMML také poskytuje deklarativní jazyk pro vytváření vizuálních nástrojů pro podniková mashupy.

Primárními výhodami EMML jsou přenositelnost mashup designu a interoperabilita mashup řešení. Očekává se, že tyto výhody urychlí přijetí podnikových mashupů vytvořením přenositelných dovedností pro vývojáře softwaru a snížením zámek dodavatele. Očekává se, že zavedení EMML pomůže urychlit trend směrem k integraci webových aplikací a architektura orientovaná na služby (SOA) technologie.[1] americká banka byl významným časným zastáncem EMML.[2] Včetně dalších významných raných příznivců Hewlett Packard, Capgemini, Adobe Systems, a Intel.[3]

Historie EMML

Raj Krishnamurthy (hlavní architekt společnosti JackBe Corporation) a Deepak Alur (viceprezident společnosti JackBe Corporation) začali pracovat na EMML v roce 2006. Jejich cílem bylo umožnit uživatelsky orientovaná a uživatelsky dostupná mashupy vytvořením tehdejšího nového typu middlewaru s názvem Enterprise Mashup Platform. Raj Krishnamurthy se stal hlavním jazykovým designérem a implementátorem EMML a také vedl tým k vytvoření Zatmění - na základě EMML IDE s názvem Mashup Studio.[4] Tato práce se vyvinula do referenční implementace EMML, která byla věnována Open Mashup Alliance. Raj Krishnamurthy je i nadále jedním z klíčových přispěvatelů do EMML prostřednictvím Open Mashup Alliance.

Funkce EMML

Jazyk EMML poskytuje bohatou sadu slovníku na vysoké úrovni pro doménu mashup, která flexibilně spotřebovává a mashuje různé zdroje dat z webu. EMML poskytuje jednotnou syntaxi pro vyvolání heterogenních stylů služeb: ZBYTEK, WSDL, RSS /ATOM, RDBMS, a POJO. Jazyk EMML také poskytuje schopnost kombinovat různé datové formáty: XML, JSON, JDBC, JavaObjects a primitivní typy.

Mezi funkce jazyka EMML na vysoké úrovni patří:

  • Filtrovat a třídit data pocházející z heterogenních služeb
  • Připojte se k datům napříč heterogenními službami a datovými formáty
  • Seskupujte a agregujte data pomocí různých funkcí
  • Anotujte původní data služby, abyste obohatili jejich sémantický význam
  • Sloučte více datových proudů do konsolidovaných datových sad
  • Rozdělte datové sady a vyberte jednotlivá datová pole
  • Integrovaná podpora skriptů pro JavaScript, JRuby, Báječný, XQuery
  • Webové ořezávání, ze kterého seškrábávají data HTML stránky
  • Podmíněná prohlášení - Li/Pak/Jiný, Zatímco, Pro každého
  • Paralelní syntaxe pro souběžné zpracování

EMML je primárně deklarativní jazyk založený na XML, ale také poskytuje schopnost kódovat složitou logiku pomocí vložených skriptovacích strojů. XPath je výrazový jazyk používaný v EMML.

Prohlášení Directinvoke

directinvoke[5] poskytuje schopnost vyvolat a využívat různé datové služby. Tyto datové služby mohou být ZBYTEK, RSS /ATOM nebo MÝDLO služby. directinvoke také podporuje ořezávání webu povolením HTML stránky, které mají být specifikovány jako koncové body služby. HTTP ZÍSKAT, POŠTA, DÁT, a VYMAZAT protokoly jsou podporovány v directinvoke. K dispozici je také podpora záhlaví HTTP a souborů cookie, což poskytuje schopnost konzumovat širokou škálu ZBYTEK /MÝDLO webové služby. Je možné použít directinvoke s proxy serverem.

Ukázka kódu předávání atributů jako parametrů do služby:

 koncový bod =„http://www.myCompany.com/rest-services/getItems“     metoda ="DOSTAT" výstupní proměnná =„$ result“ dotaz =„items = all“     appID =„67GYH30N25“ /> koncový bod =„http://www.svcsltd.com/getReservation“     metoda ="DOSTAT" výstupní proměnná =„$ novinky“ xmlns: sc =„http://www.svcltd.com/“     sc: datum ="20070515" sc: noci ="3"/>

Prohlášení o filtru

The filtr[6] příkaz filtruje obsah proměnné pomocí XPath výraz a umístí výsledek do nové proměnné.

Ukázka kódu pro filtrování zákazníků západního pobřeží pomocí datové položky regionu:

 vstupní proměnná =„$ queryResult“ filterexpr ="/ customers [region = 'West']" výstupní proměnná =„$ westCoastOnly“/>

Příkaz řazení

The třídit[7] příkaz seřadí obsah proměnné typu dokumentu nebo fragmentu proměnné na základě klíčových výrazů a umístí výsledek do jiné proměnné.

Ukázka kódu, který seřadí lístky podle data vytvoření a zákazníka:

 vstupní proměnná =„$ problemsTickets“   sortexpr ="lístek"   třídicí klávesy ="xs: datum (vytvořeno) sestupně, zákazník vzestupně"   výstupní proměnná =„$ problemsTickets“/>

Skupinové prohlášení

skupina vytvořená[8] poskytuje možnost seskupovat a agregovat datové sady. Standard XPath Lze použít agregační operace a existuje mechanismus rozšíření pro přidávání uživatelem definovaných funkcí. Vnořené seskupení hierarchických datových sad je také podporováno. Tady je Mít klauzule k filtrování atributů skupiny.

Ukázka kódu, který seskupuje knihy podle žánru a počítá celkový počet kopií pro každý žánr:

 od =„$ catalog // book / genre“ výstupní proměnná =„$ groupResult“>      jméno =„{$ group_key}“ copiessold =„{sum (copiessold)}“/> </group>

Sloučit prohlášení

spojit[9] poskytuje schopnost kombinovat různé zdroje dat včetně RSS /ATOM krmiva, XML, JSON formáty užitečného zatížení. Funkce sloučení je podobná jako SQL UNION funkčnost, ale slučuje hierarchické struktury dokumentů.

Ukázka kódu, který se slučuje Yahoo! Zprávy, Finanční zprávy, a Reuters krmení:

 vstupní proměnné =„$ YahooRSS, $ FinancialNewsRss, $ ReutersRSS“   výstupní proměnná =„$ NewsAggregate“/>

Anotace prohlášení

opatřit poznámkami[10] poskytuje schopnost obohatit sémantický význam dat zdrojové služby o prvky / atributy podobné mikroformátu. Tyto datové anotace mohou být používány mashlety nebo gadgety k poskytování bohatších vizuálních uživatelských rozhraní.

Ukázka kódu pro anotaci užitečného zatížení dodavatele pomocí zeměpisných souřadnic:

 proměnná =„$ vendors“ expr =„/ vendor / site“ > prvek geo: lat {$ georesult // y: Latitude / string ()}, prvek geo: long {$ georesult // y: Zeměpisná délka / řetězec ()} </annotate>

Připojte se k prohlášení

The připojit se[11] příkaz definuje, jak jsou spojeny různorodé hierarchické datové formáty a je srovnatelný s vnitřními spojeními pro relační databáze.

Ukázka kódu, kde výstupní proměnná obsahuje a <res:recommendations> prvek s opakující se sadou <res:movie> děti, což jsou opakující se položky. Každý <res:movie> obsahuje a <res:movietitle> dítě s daty z proměnné s názvem filmy a <res:rating> a <res:comment> děti s daty z proměnné s názvem recenze:

 výstupní proměnná =„$ joinResult“   joincondition =„$ films / movie / @ id = $ reviews / review / movie / title“>    jméno ="res: doporučení">       <res:movie>         <res:movietitle>{$ filmy / titul}</res:movietitle>         <res:rating>{$ recenze / hodnocení}</res:rating>         <res:comment>{$ recenze / komentář}</res:comment>       </res:movie>   </select> </join>

Skriptování v EMML

EMML je deklarativní jazyk, ale poskytuje programové skriptování[12] rozšíření pro provádění komplexní mashup logiky. JavaScript, JRuby, Báječný, POJO, XQuery jsou podporována skriptovací prostředí. Data bezproblémově proudí mezi EMML a skriptovacím prostředím.

Ukázka kódu kde JavaScript snippet se používá k extrakci autentizačního tokenu, který je vyžadován pro následnou volání proměnné „result“, která se rozšíří JavaScript životní prostředí:

<skript typ=„text / javascript“><![CDATA[            var r = Nový Tětiva(výsledek)            var ar = r.rozdělit("=");            ověř = ar[ar.délka-1];            ověř = ověř.plátek(0, -1)            ]]></skript>

Reference

  1. ^ „Kam směřuje budoucnost SOA? Kam jde web“.
  2. ^ „Proč se Bank of America připojila k Open Mashup Alliance“.
  3. ^ „Navrhovatelé Enterprise Mashup začínají organizovat“.
  4. ^ „JackBe oznamuje bezplatný podnikový mashup software“.
  5. ^ "Kapitola dokumentace EMML Directinvoke".
  6. ^ "Kapitola Dokumentace filtru EMML".
  7. ^ "Kapitola pro třídění dokumentace EMML".
  8. ^ "Kapitola dokumentace EMML po kapitolách".
  9. ^ "Kapitola sloučení dokumentace EMML".
  10. ^ "Kapitola s poznámkami k dokumentaci EMML".
  11. ^ "Dokumentace EMML Připojit se k kapitole".
  12. ^ "Kapitola skriptování dokumentace EMML". Chybějící nebo prázdný | url = (Pomoc)