الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما فائدة Middleware ؟

بدأه Abdullah.Alshammeri في 16 نوفمبر 2011 · 16 رد · 9,991 مشاهدة · في الأخبار والنقاشات التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ،

أؤمن بفائدة Middleware العظيمة للمؤسسات المتوسطة و الكبيرة ، لكن عندما أحاول أقنع بها فريق عمل متعاون معهم ، لديهم core system واحد فقط ، و 4 قنوات channels تتواصل مع core system ، أفشل ، فلو قلت مثلاً ممكن نضيف queuing system لهذا middleware ، قالوا ، نضيفه في core system / backend system ، ولا نحتاج لـ layer جديدة ! و لو قلت أنه أداة ربط بين مختلف الأنظمة لتتخاطب بلغة واحدة ، قالوا نضيف هذا لـ core system ( يستخدمون xmlrpc في core system ) ، وهكذا ...

لا أعرف أقنع من أمامي ، فهل يمكن تلخيص فوائد Middleware بنقاط ؟

1

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

حسب فهمي , في البرمحيات Middleware هي نوع من التجريد Abstraction , بمعنى اخر : لنفرض ان لدينا 3 انواع من قواعد البيانات , يمكن عمل Middleware تساعد على التخاطب معهم جميعا من خلال API موحدة .

هذه مثال في اطار عمل Django :

http://www.djangobook.com/en/1.0/chapter15/

تم تعديل هذه المشاركة بواسطة ahmad123 في 16 نوفمبر 2011 في 20:17

#3

رأيي أخ أحمد أن MW أكبر من مسألة " التجريد " ، لأن ما تتكلّم عنه يمكن أن يكون Abstract Factory ، مجرد design pattern على مستوى الكود و ليس على مستوى نظام كامل لمنشأة، طبعاً لست متأكداً ، فقط تفكير بصوت عالي .

أيضاً هل يجب فصل طبقة Middleware فيزيائياً في جهاز منفصل ، أم يمكن يكون في جهاز واحد مع بقية systems ؟

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4
Abdullah.Alshammeri كتب:

رأيي أخ أحمد أن MW أكبر من مسألة " التجريد " ، لأن ما تتكلّم عنه يمكن أن يكون Abstract Factory ، مجرد design pattern على مستوى الكود و ليس على مستوى نظام كامل لمنشأة، طبعاً لست متأكداً ، فقط تفكير بصوت عالي .

أيضاً هل يجب فصل طبقة Middleware فيزيائياً في جهاز منفصل ، أم يمكن يكون في جهاز واحد مع بقية systems ؟

الMiddleware هو مجرد مرحلة متقدمة لنفس فكرة وجود Abstract Factory و أعني بمرحلة متقدمة أن تكون لديك العديد من طرق الوصول للBusiness Logic هب أنك تبني نظام بنكي, فلديك العديد من الطرق لتوصيل الخدمة للعميل مثلاً عن طريق الATM أو الMobile أو المتصفح, و كل هذه الطرق يجب في النهاية أن تتعامل مع قواعد موحدة لسحب و ايداع و تحويل الأموال و غيرها من العمليات المعقدة التي لا يمكن أن تكون في الClient كما أنها أيضاً لا يمكن أن تكون في الBackend لأن في أغلب الوقت الBackend مجرد تخزين و جدولة للبيانات و لا يوجد عليه أي عمليات مثل حساب الفوائد و الخسائر و الفواتير و غيره, فهنا تقسم نظامك الى خدمات منفصلة متكاملة كل على مجموعة أجهزة منفصلة ترتبط سوياً بشبكة مؤمنة.

مصري في بلاد الفرنجة.

قريباً اقرأ مقالاتي على It-scoop

#5

أين Middleware في هذه الحالة ؟

ما أعرفه أن Middleware لا يحتوي على logic إطلاقاً ، مجرد " حلقة وصل " + تنظيم للطلبات و إعطاء IDs لها .. شيء كهذا ..

الشيء الآخر ، قد يكون النظام البنكي واضح ، لأن لديه أكثر من Backend ، و لكن لو كان لدينا منشأة لديها backend واحد فقط ( أقصد بالـ backend ، نظام business logic + database ) ، عندها سيصبح Middleware مجرد تكرار لو نظرنا له أنه عبارة عن حلقة وصل ( وليس له مهام أخرى ) :

مثال على Middleware في حالة و جود أكثر من Backend ، تتضح أهمية Middleware حيث ستتحدث Channels بلغة واحدة مهما اختلفت Backend systems :

post-42837-086027700 1321512626_thumb.pn

مثال على Middleware في حالة وجود backend system واحد ، هنا لا أهمية للـ Middleware ، لأن كل Channels ممكن تتحدث بلغة واحدة هي لغة backend system ،

post-42837-022173400 1321512808_thumb.pn

لذلك هنا السؤال ، هل يمكن أن نستفيد من Middleware في أمور أخرى غير مسألة Abstraction ؟ التي ذكرتموها ؟ لو صادفتنا الحالة السابقة ، حيث backend system واحد فقط ،

مثال على وظائف أخرى قد تكون ممكنة : Queuing system ، as a software-based Firefowall ، أشياء أخرى ... ؟

المرفقات
11.png22.png

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#6

عذراً اختلط علي الأمر, رجاء اعتبار ردي السابق كأن لم يكن.

مصري في بلاد الفرنجة.

قريباً اقرأ مقالاتي على It-scoop

#7

ال Middleware تشبه كرة القدم، حيث تجمع الناس و لا يتكلمون نفس اللغة :lol:

#8

السلام عليكم

قبل فتره كان هناك مؤتمر يتكلم عن موضوع قريب من موضوعك..

في مجتمع الروبوتات واجهوا نفس المشكلة (لايوجد middleware لتطوير تطبيقات الروبوتات)

الفائدة هنا حقيقة لتواجد الmiddleware -حيث انه انت كفريق عمل في مجال الروبوت تريد ان تتاكد وتجعل الفرق الاخرى يتاكدون بسهوله من مخرجاتك-

وفي الوقت الطويل يكون هناك standards تتبعها عندما تريد ان تعمل في الروبوتات..

بل ان كثير يقولون ان سبب عدم تطور الروبوتات كثيراً هو عدم وجود middleware لتطوير الروبوتات..

بمعنى اخر ماذا لو كانت الفائدة للChannels انفسهم.

#9

اسمحوا لى ان ابدأ الموضوع بسرد سيناريو شائع :

1 - لدى المؤسسة نظام إدارة شئون الموظفين تم تطويره على HP-UX بإستخدام Oracle Suite

2 - قامت المؤسسة بعد فترة بتطوير تطبيق ويب لإدارة المشاريع و المهام على Windows Server بإستخدام ASP.NET / MS SQL Server

3 - بعد فترة أرتأت المؤسسة دمج تطبيق المحاسبى الموجود لديهم الذى تم تطويره بواسطة FoxPro منذ عدة سنوات مع ال HR , PM Systems

المشكلة :

كيف يمكن تنفيذ النقطة رقم 3 و التى يندرج تحتها

1. اختلاف البنية التحتية لكل تطبيق

2. ال Business Rules لدى كل تطبيق

3. اختلاف ال Authentication

4. تعقيد ال Business Logic بكل تطبيق

هنا كان على المؤسة التفكير فى وسيط يمكنه التحدث لكل هذه التطبيقات بدون دمجها فعلياً

من هنا ظهر مفهوم ال Middleware و أهميته فى ال Enterprise Integration EI و إعادة استخدام ال Middleware لاحقاً

يظهر تطبيق ال Middleware جلياً عند الحديث حول ال EI و استخدام ال Message-Oriented مثل WebSphere MQ - MS Biztalk - TIBCO و غيرها من الحلول

هناك مشاكل تظهر عند التطبيق من ضمنها :

1. ان ال Middleware عليه التكامل بين منصات مختلفة قد لا يمكن تغطيتها كلها

2. وجود الموارد البشرية المتمثلة فى ال System Integrators الآكفاء

3. التأثير على ال كفائة البيانات فى ال real-time

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 17 نوفمبر 2011 في 23:52

2

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#10
اقتباس
يظهر تطبيق ال Middleware جلياً عند الحديث حول ال EI و استخدام ال Message-Oriented مثل WebSphere MQ - MS Biztalk - TIBCO و غيرها من الحلول

هل دور هذه الأنظمة هو " Integration " ، أو لها أهداف أخرى ؟ يعني لو فرضنا أن كل الأنظمة لدينا " تفهم على بعضها و تتحدث بلغة واحد xmlrpc وستبقى هكذا إلى الأبد" ، هل يمكن أن نستفيد من Middleware في أمور أخرى غير Integration .

سؤال على الهامش ، هل سبق أن استخدمت websphere broker ؟ هل يقدم شيء مختلف عن MQ .. ؟

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#11

ال Middleware Software يقدم حلولاً لل Integration و بعضها قد يزيد على ذلك و يقدم Rule engine - Business Activity Monitoring (BAM) - RFID capabilities

و التى قد تعتبر هذه الوظائف مطلباً اساسياً فى منتجات ال Middleware

اقتباس

سؤال على الهامش ، هل سبق أن استخدمت websphere broker ؟ هل يقدم شيء مختلف عن MQ .. ؟

لم يسبق لى إستخدام Webshere من قبل و إنما يمكننى ان أحدثك عن ال MS Biztalk قليلاً على قدر عملى معه

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#12

أخي عبدالله, اختلط الأمر علي في البداية كما اختلط على الأخوة :)

أنت تريد عمل Scaling للنظام الذي لديك. تريد تحويله إلى Distributed System أوتوماتيكي بحيث عند إضافة موارد جديدة الـ Middleware هي التي تطبق الموضوع بشكل تلقائي. هل هذا الفهم صحيح؟

لا أعرف, و لكن المرات التي رأيت فيها كلمة Middleware كان يقصد بها الـ Abstraction لمجموعة من الأجهزة لكي تتخاطب بلغة واحدة. مجموعة أنظمة قواعد بيانات مختلفة, مجموعة أجهزة RFID Readers مختلفة.

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 18 نوفمبر 2011 في 21:37

#13

@خالد : بالفعل ، كأني فهمت من بعض الردود أن Middleware له مفهومين ، مفهوم بالـ Enterprise و مفهوم آخر لا أعرفه ؟ باختصار ، Middleware الذي أقصده هو شيء في المنتصف ، يربط أنظمة تتحدث بلغات مختلفة ، هذا هدفه الأساسي لكن فيه أهداف أخرى ، وهي ما أسأل عنه .. هل هناك شيء آخر غير هذا ؟ تعريفك قريب من تعريف @ahamad123 ، يبدو أنه شيء مختلف قليلاً ؟!

اقتباس
ال Middleware Software يقدم حلولاً لل Integration و بعضها قد يزيد على ذلك و يقدم Rule engine - Business Activity Monitoring (BAM) - RFID capabilities

لا أعرف من أين أبدأ الموضوع معقد قليلاً ، خاصة مع دخول مصطلحات كثيرة .. كنت أقرأ اليوم عن BMP ، أظنها اختصار Business Modeling Process ؟

هل Rule engine يدخل تحت باب BMP ؟ أو أنه تقنية مشابهة للـ BMP ؟ يبدو لي أن لهما نفس الهدف ؟ workflow لمراحل "عملية ما " ..

المشكلة الموضوع يبدو سيتعقد في Middleware ، مثلاً Messages Queue ، Rule Engine ، Messages Broker ، و قد لا تتوفر كلها بمنتج واحد " مجاني " ،

--

للفائدة ، هناك كتاب مجاني عن BMP ، لمن هو مهتم ، الرابط هنا لمن لا يريد التسجيل : BMP For Dummies ، مصدر الكتاب

أقرأ حالياً في ملخص لكتاب Enterprise Integration Patterns ، عوضاً عن شراء الكتاب نفسه :

http://www.eaipatterns.com/toc.html

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#14
اقتباس
لمشكلة الموضوع يبدو سيتعقد في Middleware ، مثلاً Messages Queue ، Rule Engine ، Messages Broker ، و قد لا تتوفر كلها بمنتج واحد " مجاني " ،

هل جربت JBoss

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 19 نوفمبر 2011 في 00:35

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#15

oracle fusion middleware

هل يتعلق بموضوعك أخي عبدلله ؟

لا تجعلوا العلم فيه كل غايتكم ... بل علموا النشئ علماً يُنتج العملا

#16

الموضوع قديم و لكن أردت أن أدرج أجابة و بكل تواضع أمام الأستاذ الشمري .

الميدل وار : هو نظام تشغيل يعمل في وحدة منفصلة و من مهامه تغيير البيانات ( الترامات المرسلة من قبل أنظمة التشغيل المختلفة )

netweave+middleware.jpg

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg

مواضيع مشابهة