لغة ترميز دمج التطبيقات المؤسسية
لغة ترميز دمج البيانات المؤسسية ( EMML ) هي لغة ترميز XML لإنشاء تطبيقات دمج البيانات المؤسسية ، وهي تطبيقات برمجية تستهلك البيانات من مصادر متنوعة وتدمجها. غالبًا ما تُجري هذه التطبيقات عمليات منطقية أو رياضية، بالإضافة إلى عرض البيانات.
تُعرض البيانات المُدمجة الناتجة عن تطبيقات دمج البيانات المؤسسية في واجهات مستخدم رسومية على شكل عناصر مُدمجة صغيرة (mashlets) أو أدوات (widgets) أو أدوات (gadgets). ويمكن اعتبار لغة EMML أيضًا [ 1 ] لغةً تعريفية خاصة بمجال دمج البيانات (DSL). تُغني لغة دمج البيانات عن الحاجة إلى منطق برمجة إجرائي معقد ومُستهلك للوقت وقابل للتكرار لإنشاء تطبيقات دمج البيانات المؤسسية. كما توفر EMML لغةً تعريفية لإنشاء أدوات مرئية لتطبيقات دمج البيانات المؤسسية.
تتمثل الفوائد الرئيسية لـ EMML في سهولة نقل تصميم تطبيقات الدمج وقابلية التشغيل البيني بين حلولها. ومن المتوقع أن تُسرّع هذه الفوائد من تبني تطبيقات الدمج المؤسسية من خلال توفير مهارات قابلة للنقل لمطوري البرامج وتقليل الاعتماد على مورد واحد .
من المتوقع أن يُسهم إدخال معيار EMML في تسريع التوجه نحو دمج تطبيقات الويب وتقنيات بنية الخدمات الموجهة (SOA). [ 2 ] وكان بنك أوف أمريكا من أوائل الداعمين البارزين لمعيار EMML. [ 3 ] ومن بين الداعمين الأوائل البارزين الآخرين: هيوليت-باكارد ، وكابجيميني ، وأدوبي سيستمز ، وإنتل . [ 4 ]
تاريخ EMML
بدأ راج كريشنامورثي (كبير المهندسين المعماريين في شركة جاك بي) وديباك ألور (نائب رئيس قسم الهندسة في شركة جاك بي) العمل على لغة EMML في عام 2006. وكان هدفهما تمكين تطبيقات الدمج الموجهة للمستخدم والتي يُفعّلها المستخدم، وذلك من خلال إنشاء نوع جديد من البرمجيات الوسيطة آنذاك يُسمى منصة دمج المؤسسات. أصبح راج كريشنامورثي كبير مصممي ومطوري لغة EMML، كما قاد الفريق لإنشاء بيئة تطوير متكاملة ( IDE) مبنية على Eclipse تُسمى Mashup Studio. [ 5 ] تطور هذا العمل ليصبح تطبيق EMML المرجعي الذي تم التبرع به إلى تحالف Open Mashup Alliance. ولا يزال راج كريشنامورثي أحد المساهمين الرئيسيين في EMML من خلال تحالف Open Mashup Alliance.
ميزات EMML
توفر لغة EMML مجموعة من المصطلحات عالية المستوى لمجال دمج البيانات، مما يتيح استهلاك ودمج مصادر بيانات الويب المختلفة بطرق مرنة. كما توفر EMML صيغة موحدة لاستدعاء أنماط الخدمات المتنوعة: REST و WSDL و RSS / ATOM و RDBMS و POJO . بالإضافة إلى ذلك، تتيح لغة EMML إمكانية دمج تنسيقات بيانات متنوعة: XML و JSON و JDBC وJavaObjects وأنواع البيانات الأولية.
تتضمن ميزات لغة EMML عالية المستوى ما يلي:
- تصفية وفرز البيانات الواردة من خدمات غير متجانسة.
- دمج البيانات عبر خدمات وتنسيقات بيانات غير متجانسة.
- تجميع البيانات ودمجها باستخدام وظائف متنوعة.
- قم بشرح بيانات الخدمة الأصلية لإثراء معناها الدلالي.
- دمج مصادر البيانات المتعددة في مجموعات بيانات موحدة
- قم بتقسيم مجموعات البيانات لاختيار حقول البيانات الفردية.
- دعم البرمجة النصية المضمنة لـ JavaScript و JRuby و Groovy و XQuery
- تقنية قص الويب لاستخراج البيانات من صفحات HTML .
- العبارات الشرطية -
If/Then/Else,While,ForEach - صيغة متوازية للمعالجة المتزامنة
لغة EMML هي في الأساس لغة تعريفية تعتمد على XML، ولكنها توفر أيضًا إمكانية ترميز منطق معقد باستخدام محركات برمجة نصية مضمنة. XPath هي لغة التعبير المستخدمة في EMML.
بيان DirectInvoke
directinvoke[ 6 ] يتيح إمكانية استدعاء واستخدام مجموعة متنوعة من خدمات البيانات، مثلخدماتRESTوRSS/ATOMوSOAPdirectinvokeكما يدعم اقتطاع صفحات الويب من خلال تحديدHTMLكنقاط نهاية للخدمة.ويدعم بروتوكولاتوHTTP GETHTTPSوHTTPS. كما يتوفر دعم رؤوس HTTP وملفات تعريف الارتباط، مما يتيح استخدام مجموعة واسعة منخدمات الويبREST/SOAP. ويمكن استخدامهمع خادم وكيل.POSTPUTDELETEdirectinvokedirectinvoke
نموذج برمجي لتمرير السمات كمعاملات إلى خدمة:
<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[ 7 ] بتصفية محتوى متغير باستخدام تعبير XPath وتضع النتيجة في متغير جديد.
نموذج برمجي لتصفية عملاء الساحل الغربي باستخدام عنصر بيانات المنطقة:
<filter inputvariable= "$queryResult" filterexpr= "/customers[region='West']" outputvariable= "$westCoastOnly" />بيان الفرز
تقوم العبارة sort[ 8 ] بفرز محتوى متغير من نوع المستند أو جزء متغير بناءً على تعبيرات رئيسية وتضع النتيجة في متغير آخر.
نموذج برمجي لفرز التذاكر بناءً على تاريخ الإنشاء والعميل:
<sort inputvariable= "$troubleTickets" sortexpr= "ticket" sortkeys= "xs:date(created) descending, customer ascending" outputvariable= "$troubleTickets" />بيان المجموعة
groupby[ 9 ] يتيح إمكانية تجميع مجموعات البيانات ودمجها.XPath، كما توجد آلية توسيع لإضافة وظائف مُعرَّفة من قِبل المستخدم. يدعم البرنامج أيضًا التجميع المتداخل لمجموعات البيانات الهرمية. يوجدHavingبند لتصفية سمات المجموعة.
نموذج برمجي يقوم بتجميع الكتب حسب النوع وحساب إجمالي النسخ لكل نوع:
<group by= "$catalog//book/genre" outputvariable= "$groupResult" > <res:genre name= "{$group_key}" copiessold= "{sum(copiessold)}" /> </group>بيان الدمج
merge[ 10 ] يتيح إمكانية دمج مصادر بيانات متنوعة، بما في ذلكخلاصاتRSS/ATOMXMLوJSON. وتتشابه ميزة الدمج معSQL UNIONوظائف أخرى، ولكنها تدمج هياكل المستندات الهرمية.
نموذج برمجي يدمج خلاصات أخبار ياهو !، والأخبار المالية ، ورويترز :
<merge inputvariables= "$YahooRSS, $FinancialNewsRss, $ReutersRSS" outputvariable= "$NewsAggregate" />شرح البيان
annotate[ 11 ] يتيح إمكانية إثراء المعنى الدلالي لبيانات خدمة المصدر بعناصر/سمات شبيهة بالتنسيقات المصغرة. ويمكن استخدام هذه البيانات المُعلّقة بواسطة تطبيقات الويب أو الأدوات لتوفير واجهات مستخدم مرئية أكثر ثراءً.
نموذج برمجي لإضافة إحداثيات جغرافية إلى حمولة بيانات البائع:
<annotate variable= "$vendors" expr= "/vendor/site" > element geo:lat { $georesult//y:Latitude/string() }, element geo:long { $georesult//y:Longitude/string() } </annotate>بيان مشترك
يحدد البيان join[ 12 ] كيفية ربط تنسيقات البيانات المتباينة والهرمية، وهو قابل للمقارنة مع عمليات الربط الداخلية لقواعد البيانات العلائقية.
نموذج برمجي حيث يحتوي متغير الإخراج على <res:recommendations>عنصر مع مجموعة متكررة من <res:movie>العناصر الفرعية، وهي العناصر المتكررة. <res:movie>يحتوي كل <res:movietitle>عنصر فرعي على بيانات من المتغير المسمى movies، <res:rating>وعناصر <res:comment>فرعية أخرى على بيانات من المتغير المسمى 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>البرمجة النصية في لغة EMML
لغة EMML هي لغة وصفية، لكنها توفر امتدادات برمجية [ 13 ] لتنفيذ منطق دمج البيانات المعقد. تدعم بيئات البرمجة النصية JavaScript و JRuby و Groovy و POJO و XQuery . يتدفق البيانات بسلاسة بين EMML وبيئات البرمجة النصية.
نموذج برمجي حيث يتم استخدام جزء من كود جافا سكريبت لاستخراج رمز المصادقة المطلوب للمكالمات اللاحقة، ومتغير "result" الذي يتم تمريره إلى بيئة جافا سكريبت :
< 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>مراجع
- ↑ "Software AG" . documentation.softwareag.com . مؤرشف من الأصل بتاريخ 2023-04-08 . تم الاطلاع عليه بتاريخ 2023-04-08 .
- ↑ "إلى أين يتجه مستقبل هندسة الخدمات الموجهة؟ إلى أين يتجه الويب؟" 17 نوفمبر 2015.
- ↑ "لماذا انضم بنك أوف أمريكا إلى تحالف Open Mashup؟" . مؤرشف من الأصل بتاريخ 1 أكتوبر 2009. تم الاطلاع عليه بتاريخ 28 سبتمبر 2009 .
- ↑ "بدأ مؤيدو دمج المؤسسات بالتنظيم" . مؤرشف من الأصل بتاريخ 3 أكتوبر 2009. تم الاطلاع عليه بتاريخ 28 سبتمبر 2009 .
- ↑ "جاك بي تعلن عن برنامج دمج بيانات المؤسسات المجاني" . 17 نوفمبر 2015.
- ↑ "توثيق EMML - فصل Directinvoke" . مؤرشف من الأصل بتاريخ 30-09-2009 . تم الاطلاع عليه بتاريخ 11-10-2009 .
- ↑ "فصل تصفية وثائق EMML" . مؤرشف من الأصل بتاريخ 17-10-2009 . تم الاطلاع عليه بتاريخ 11-10-2009 .
- ↑ "فصل فرز وثائق EMML" . مؤرشف من الأصل بتاريخ 29-09-2009 . تم الاطلاع عليه بتاريخ 11-10-2009 .
- ↑ "مجموعة وثائق EMML حسب الفصل" . مؤرشف من الأصل بتاريخ 29-09-2009 . تم الاطلاع عليه بتاريخ 11-10-2009 .
- ↑ "فصل دمج وثائق EMML" . مؤرشف من الأصل بتاريخ 29-09-2009 . تم الاطلاع عليه بتاريخ 11-10-2009 .
- ↑ "توثيق EMML - شرح الفصل" . مؤرشف من الأصل بتاريخ 30-09-2009 . تم الاطلاع عليه بتاريخ 11-10-2009 .
- ↑ "توثيق EMML - فصل الانضمام" . مؤرشف من الأصل بتاريخ 29-09-2009 . تم الاطلاع عليه بتاريخ 11-10-2009 .
- ↑ "فصل كتابة البرامج النصية لتوثيق EMML".
{{cite web}}: مفقود أو فارغ|url=( مساعدة )
- لغات البرمجة النصية
- لغات البرمجة الخاصة بالمجال
- لغات الاستعلام
- المعايير المفتوحة
- خدمات الويب
- لغات ترميز XML
- لغات الترميز
- لغات ترميز واجهة المستخدم
- المعايير القائمة على لغة XML
- تطبيق هجين (تطبيق ويب هجين)
- هندسة البرمجيات
- برامج تطوير مواقع الويب
- تطبيقات الإنترنت الغنية
