Korxona Mashup Markup tili - Enterprise Mashup Markup Language

EMML, yoki Korxona Mashup Markup tili, bu XML belgilash tili korxona yaratish uchun mashuplar Bular turli xil manbalardan ma'lumotlarni iste'mol qiladigan va mash tortadigan, ko'pincha mantiqiy yoki matematik operatsiyalarni bajaradigan hamda ma'lumotlarni taqdim etadigan dasturiy ilovalardir. Korxona mashuplari tomonidan ishlab chiqarilgan pyuresi ma'lumotlar grafik interfeyslarda mashletlar, vidjetlar yoki gadjetlar sifatida taqdim etiladi. EMML ham bo'lishi mumkin[iqtibos kerak ] deklarativ mashup deb hisoblanadi domenga xos til (DSL). Mashup DSL korporativ mashuplarni yaratish uchun murakkab, ko'p vaqt va takrorlanadigan protsessual dasturlash mantig'iga ehtiyojni yo'q qiladi. EMML shuningdek korporativ mashuplar uchun vizual vositalarni yaratish uchun deklarativ tilni taqdim etadi.

EMML-ning asosiy afzalliklari mashup dizaynini ko'chirish va mashup echimlarining o'zaro muvofiqligi. Ushbu imtiyozlar dasturiy ta'minot ishlab chiqaruvchilari uchun o'tkaziladigan ko'nikmalarni yaratish va kamaytirish orqali korxona mashuplarini tezlashtirishi kutilmoqda sotuvchini blokirovka qilish. EMML-ning joriy etilishi Internet-ga asoslangan dasturlarni integratsiyalash tendentsiyasini tezlashtirishga yordam berishi kutilmoqda xizmatga yo'naltirilgan arxitektura (SOA) texnologiyalari.[1] Amerika banki EMMLning yuqori darajadagi dastlabki tarafdori edi.[2] Boshqa taniqli erta tarafdorlar ham kiritilgan Hewlett-Packard, Kapgemini, Adobe tizimlari va Intel.[3]

EMML tarixi

Raj Krishnamurthy (JackBe korporatsiyasining bosh me'mori) va Deepak Alur (JackBe korporatsiyasining VP muhandisligi) 2006 yilda EMML ustida ishlay boshladilar. Ularning maqsadi foydalanuvchiga yo'naltirilgan va foydalanuvchi tomonidan qo'llab-quvvatlanadigan mashuplarni ishga tushirish bo'lib, u keyinchalik yangi turdagi vositachilik dasturini yaratish edi. Enterprise Mashup platformasi. Raj Krishnamurthy bosh til dizayneri va EMML dasturini amalga oshiruvchisi bo'ldi va shuningdek, jamoani an yaratish uchun boshqargan Tutilish asoslangan EMML IDE Mashup studiyasi deb nomlangan.[4] Ushbu ish Open Mashup Alliance-ga sovg'a qilingan EMML ma'lumotnomasini amalga oshirishga aylandi. Raj Krishnamurthy Open Mashup alyansi orqali EMML-ning muhim hissalaridan biri bo'lib qolmoqda.

EMML xususiyatlari

EMML tili turli xil veb-ma'lumot manbalarini egiluvchan usullar bilan iste'mol qilish va maydalash uchun yuqori darajadagi mashup-domen so'z boyligini ta'minlaydi. EMML heterojen xizmat uslublarini chaqirish uchun yagona sintaksisni taqdim etadi: Dam olish, WSDL, RSS /ATOM, RDBMS va POJO. EMML tili turli xil ma'lumotlar formatlarini aralashtirish imkoniyatini ham beradi: XML, JSON, JDBC, JavaObjects va ibtidoiy turlari.

Yuqori darajadagi EMML til xususiyatlariga quyidagilar kiradi:

  • Geterogen xizmatlardan olingan ma'lumotlarni filtrlang va saralash
  • Ma'lumotlarni heterojen xizmatlar va ma'lumotlar formatlari bo'yicha birlashtirish
  • Turli funktsiyalardan foydalangan holda ma'lumotlarni guruhlash va to'plash
  • Semantik ma'nosini boyitish uchun dastlabki xizmat ma'lumotlariga izoh bering
  • Bir nechta ma'lumotlar oqimlarini birlashtirilgan ma'lumotlar to'plamlariga birlashtirish
  • Ayrim ma'lumotlar maydonlarini tanlash uchun ma'lumotlar to'plamini ajratish
  • Uchun o'rnatilgan skriptlarni qo'llab-quvvatlash JavaScript, JRuby, Groovy, XQuery
  • Ma'lumotlarni qirib tashlash uchun veb-qirqish HTML sahifalar
  • Shartli bayonotlar - Agar/Keyin/Boshqa, Esa, Har biriga
  • Bir vaqtda ishlov berish uchun parallel sintaksis

EMML birinchi navbatda XML asosidagi deklarativ tildir, shuningdek o'rnatilgan skript dvigatellari yordamida murakkab mantiqni kodlash imkoniyatini beradi. XPath bu EMML-da ishlatiladigan ifoda tili.

Directinvoke bayonoti

directinvoke[5] turli xil ma'lumotlar xizmatlarini chaqirish va iste'mol qilish qobiliyatini ta'minlaydi. Ushbu ma'lumotlar xizmatlari bo'lishi mumkin Dam olish, RSS /ATOM, yoki SABUN xizmatlar. directinvoke shuningdek, veb-qirqishni ruxsat berish orqali qo'llab-quvvatlaydi HTML xizmatning so'nggi nuqtalari sifatida ko'rsatiladigan sahifalar. HTTP GET, POST, QO'YINGva O'chirish protokollari qo'llab-quvvatlanadi directinvoke. Shuningdek, HTTP Header va cookie-fayllarni qo'llab-quvvatlash mavjud, shuning uchun turli xil iste'mol qilish imkoniyatlari mavjud Dam olish /SABUN Veb-xizmatlar. Buni ishlatish mumkin directinvoke proksi-server bilan.

Xizmatga parametr sifatida o'tish atributlarining kod namunasi:

 so'nggi nuqta ="http://www.myCompany.com/rest-services/getItems"     usul ="OLISH" chiqish o'zgaruvchisi ="$ result" so'rov ="items = all"     appID ="67GYH30N25" /> so'nggi nuqta ="http://www.svcsltd.com/getReservation"     usul ="OLISH" chiqish o'zgaruvchisi ="$ news" xmlns: sc ="http://www.svcltd.com/"     sc: sana ="20070515" sc: kecha ="3"/>

Filtr bayonoti

The filtr[6] iborasi o'zgaruvchining tarkibini an yordamida filtrlaydi XPath ifoda va natijani yangi o'zgaruvchiga joylashtiradi.

G'arbiy sohil xaridorlarini mintaqaning ma'lumotlar elementlaridan foydalangan holda filtrlash uchun kod namunasi:

 inputvariable ="$ queryResult" filterexpr ="/ mijozlar [region = 'West']" chiqish o'zgaruvchisi ="$ westCoastOnly"/>

Saralash bayonoti

The saralash[7] iborasi hujjat tipidagi o'zgaruvchini yoki o'zgaruvchan qismning tarkibini kalit iboralar asosida saralaydi va natijani boshqa o'zgaruvchiga joylashtiradi.

Yaratilgan sana va mijozga qarab chiptalarni saralash uchun kod namunasi:

 inputvariable ="$ troubleTicket"   sortexpr ="chipta"   sortkeys ="xs: sana (yaratilgan) kamayib boradi, mijoz o'sib boradi"   chiqish o'zgaruvchisi ="$ troubleTicket"/>

Groupby bayonoti

guruh bilan[8] ma'lumotlar to'plamlarini guruhlash va yig'ish qobiliyatini ta'minlaydi. Standart XPath to'plash operatsiyalaridan foydalanish mumkin va foydalanuvchi tomonidan aniqlangan funktsiyalarni qo'shish uchun kengayish mexanizmi mavjud. Ierarxik ma'lumotlar to'plamlarini ichki guruhlash ham qo'llab-quvvatlanadi. Bor Ega guruh atributlarini filtrlash uchun band.

Kitoblarni janrlar bo'yicha guruhlaydigan va har bir janr uchun jami nusxalarini hisoblaydigan kod namunasi:

 tomonidan ="$ katalog // kitob / janr" chiqish o'zgaruvchisi ="$ groupResult">      ism ="{$ group_key}" nusxa ="{sum (copiessold)}"/> </group>

Birlashtirish bayonoti

birlashtirish[9] turli xil ma'lumot manbalarini birlashtirish qobiliyatini, shu jumladan RSS /ATOM ozuqalar, XML, JSON foydali yuk formatlari. Birlashtirish xususiyati shunga o'xshash SQL UNION funktsionallik, ammo ierarxik hujjat tuzilmalarini birlashtiradi.

Birlashtirilgan kod namunasi Yahoo! Yangiliklar, Moliyaviy yangiliklar va Reuters ozuqalar:

 kirish o'zgaruvchilari ="$ YahooRSS, $ FinancialNewsRss, $ ReutersRSS"   chiqish o'zgaruvchisi ="$ NewsAggregate"/>

Izohli bayonot

izoh[10] manba xizmati ma'lumotlarining semantik ma'nosini mikroformatga o'xshash elementlar / atributlar bilan boyitishni ta'minlaydi. Ushbu ma'lumotlar izohlari mashletlar yoki gadjetlar tomonidan yanada boy foydalanuvchi interfeyslarini ta'minlash uchun ishlatilishi mumkin.

Geo-koordinatalari bilan sotuvchining foydali yukini izohlash uchun kod namunasi:

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

Izohga qo'shiling

The qo'shilish[11] bayonot ma'lumotlarning turli xil, ierarxik formatlari qanday birlashtirilganligini va relyatsion ma'lumotlar bazalari uchun ichki qo'shilish bilan taqqoslanishini belgilaydi.

Chiqish o'zgaruvchisi o'z ichiga olgan kod namunasi <res:recommendations> takrorlanadigan to'plami bo'lgan element <res:movie> takrorlanadigan narsalar bo'lgan bolalar. Har biri <res:movie> o'z ichiga oladi <res:movietitle> nomli filmlar va <res:rating> va <res:comment> sharhlar nomidagi o'zgaruvchidan olingan ma'lumotlarga ega bo'lgan bolalar:

 chiqish o'zgaruvchisi ="$ joinResult"   qo'shilish sharti ="$ movies / movie / @ id = $ reviews / review / movie / title">    ism ="res: tavsiyalar">       <res:movie>         <res:movietitle>{$ filmlar / sarlavha}</res:movietitle>         <res:rating>{$ sharhlar / reyting}</res:rating>         <res:comment>{$ sharh / sharh}</res:comment>       </res:movie>   </select> </join>

EMML-da skriptlar

EMML deklarativ tildir, ammo dasturiy skriptlarni taqdim etadi[12] murakkab mashup mantig'ini bajarish uchun kengaytmalar. JavaScript, JRuby, Groovy, POJO, XQuery skript muhiti qo'llab-quvvatlanadi. Ma'lumotlar EMML va skript muhitlari o'rtasida uzluksiz ravishda oqadi.

Kod namunasi qaerda JavaScript parcha, keyingi qo'ng'iroqlar uchun zarur bo'lgan autentifikatsiya belgisini olish uchun ishlatiladi "natija" o'zgaruvchisi JavaScript atrof-muhit:

<skript turi="matn / javascript"><![CDATA[            var r = yangi Ip(natija)            var ar = r.Split("=");            muallif = ar[ar.uzunlik-1];            mualliflik = mualliflik.tilim(0, -1)            ]]></skript>

Adabiyotlar

  1. ^ "SOA kelajagi qayerda? Internet qayerda".
  2. ^ "Nima uchun Amerika Banki ochiq Mashup alyansiga qo'shildi".
  3. ^ "Enterprise mashup tarafdorlari tashkil qilishni boshladilar".
  4. ^ "JackBe bepul korporativ mashup dasturini e'lon qiladi".
  5. ^ "EMML Documentation Directinvoke bo'lim".
  6. ^ "EMML hujjatlari filtri bob".
  7. ^ "EMML hujjatlarini saralash bobi".
  8. ^ "EMML Documentation Groupby bobida".
  9. ^ "EMML hujjatlarini birlashtirish bobi".
  10. ^ "EMML hujjatlari izohli bob".
  11. ^ "EMML hujjatlari qo'shilish bobida".
  12. ^ "EMML hujjatlari skriptlarini yaratish bobi". Yo'qolgan yoki bo'sh | url = (Yordam bering)