Enterprise Mashup Markup Language - Enterprise Mashup Markup Language
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
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
- ^ „Kam směřuje budoucnost SOA? Kam jde web“.
- ^ „Proč se Bank of America připojila k Open Mashup Alliance“.
- ^ „Navrhovatelé Enterprise Mashup začínají organizovat“.
- ^ „JackBe oznamuje bezplatný podnikový mashup software“.
- ^ "Kapitola dokumentace EMML Directinvoke".
- ^ "Kapitola Dokumentace filtru EMML".
- ^ "Kapitola pro třídění dokumentace EMML".
- ^ "Kapitola dokumentace EMML po kapitolách".
- ^ "Kapitola sloučení dokumentace EMML".
- ^ "Kapitola s poznámkami k dokumentaci EMML".
- ^ "Dokumentace EMML Připojit se k kapitole".
- ^ "Kapitola skriptování dokumentace EMML". Chybějící nebo prázdný
| url =
(Pomoc)