يُعد كل من LAMP وMEAN مجموعتي ويب مشهورتين ومفتوحتا المصدر يُستخدما لتطوير تطبيقات الويب وتطبيقات الأجهزة المحمولة عالية الأداء ومن فئة المؤسسات. على غرار مجموعات الويب الأخرى، تجمع هاتين المجموعتين بين تقنيات (مثل أنظمة التشغيل، وأنظمة البرمجة، واللغات، وقواعد البيانات، والمكتبات، وأطر عمل التطبيقات) التي يستطيع المطورون استخدامها لبناء ونشر وإدارة تطبيقات ويب وظيفية وكفؤة وموثوقة عبر عمليات تطوير المجموعات.
تختلف LAMP وMEAN في أنهما يزودان المطورين بطبقات،- أو مجموعات- مختلفة من التقنيات التي يحتاجها تطبيق الويب ليعمل عبر جميع أنشطة الواجهة الأمامية والواجهة البينية والشبكة والخادم الخلفي. على سبيل المثال، قد يعتمد التطبيق المصرفي المستند إلى الويب على مجموعة LAMP أو مجموعة MEAN لتفسير طلب المستخدم للاطلاع على النشاط المصرفي واسترداد البيانات اللازمة وعرضها في واجهة المستخدم.
LAMP تعني التقنيات المجموعة التالية:
يتيح نظام التشغيل Linux لتطبيق الويب بأكمله العمل بشكل صحيح على قطعة معينة من الأجهزة. يقوم خادم الويب Apache بترجمة طلب المستخدم ثم يسترد المعلومات و"يقدمها" إلى المستخدم عبر بروتوكول نقل النص التشعبي (HTTP). تقوم قاعدة بيانات MySQL (نظام إدارة قواعد البيانات العلائقية) بتخزين البيانات (على سبيل المثال، أرشيفات كشف الحساب المصرفي والنشاط المالي وملفات الصور وأوراق أنماط CSS) التي يمكن لخادم الويب استردادها وتوفيرها بناء على طلب المستخدم المحدد. تعمل لغة البرمجة PHP مع Apache لاسترداد المحتوى الديناميكي من قاعدة بيانات MySQL وتقديمه مرة أخرى للمستخدم. في حين يمكن لتنسيق HTML عرض محتوى ثابت (على سبيل المثال، عنوان يظل على الواجهة بغض النظر عن البيانات)، فإن المحتوى الديناميكي الذي يتغير بناءً على تفاعل المستخدم يعتمد على PHP. يمكن أيضًا استخدام لغتي البرمجة PERL وPython في مجموعة LAMP. كان الكاتب Michael Kunze أول من استخدم اختصار مجموعة LAMP في مقال لمجلة كمبيوتر ألمانية نُشر في عام 1998.
الشكل 1: كيفية معالجة طلب المستخدم عبر مجموعة LAMP.
MEAN تعني التقنيات المجموعة التالية:
يعالج إطار عمل AngularJS طلب وارد من المستخدم. بعد ذلك، يحلل Node.js الطلب ويترجمه إلى إدخال يمكن للتطبيق فهمه. يستخدم Express.js هذه المدخلات المترجمة لتحديد الاستدعاءات المطلوب إجراؤها على MongoDB، وهي قاعدة بيانات غير علائقية من نوع NoSQL. بمجرد أن يوفر MongoDB المعلومات اللازمة، يرسل Express.js البيانات مرة أخرى إلى Node.js، والذي بدوره يرسلها إلى إطار العمل حتى يتمكن من عرض المعلومات المطلوبة في واجهة المستخدم.
في حين أنه يمكن استبدال إطار عمل الواجهة الأمامية AngularJS ببدائل أخرى مثل React.js، فإن بيئة Node.js حاسمة لمجموعة MEAN ولا يمكن استبدالها. ويعود هذا إلى أن Node.js يتيح تطوير الواجهة الأمامية والخلفية للتطبيقات (Full Stack) باستخدام JavaScript، وهي ميزة أساسية تجعل تطوير وإدارة التطبيقات باستخدام مجموعة MEAN يتم بكفاءة عالية. عند استبدال إطار العمل AngularJS بـ React.js، يشار إلى المجموعة باسم MERN. يُنسب أول استخدام لمصطلح مجموعة MEAN في عام 2013 إلى المطور Valeri Karpov الذي يعمل في شركة MongoDB.
يوضح الشكل 2 مثالاً عالي المستوى لكيفية استجابة التطبيق عبر مجموعة MEAN لتلبية طلب المستخدم للمعلومات:
الشكل 2: كيفية استجابة التطبيق عبر مجموعة MEAN لتلبية الطلب.
فيما يلي بعض الفوائد من استخدام LAMP لإنشاء التطبيقات ونشرها وإدارتها:
من بين عيوب الاعتماد على LAMP لإنشاء التطبيقات ونشرها وإدارتها، ما يلي:
تشمل فوائد استخدام MEAN لإنشاء تطبيقات الويب ونشرها وإدارتها ما يلي:
فيما يلي بعض عيوب استخدام MEAN لإنشاء تطبيقات الويب ونشرها وإدارتها:
ليس هناك مجموعة أفضل من الأخرى، في حد ذاتها. ومع ذلك ، قد تكون مجموعة LAMP أو مجموعة MEAN أكثر ملاءمة لحالة استخدام معينة لتطوير الويب.
مجموعة LAMP بشكل عام هي الخيار الأفضل لتطبيقات الويب أو المواقع ذات الخصائص التالية:
على العكس من ذلك، فإن مجموعة MEAN هي الخيار الأفضل للتطبيقات أو المواقع مثل هذه:
للعودة إلى الأساسيات، تأخذك مجموعة LAMP أقرب قليلاً نحو الخدمة الفنية لصفحات الويب وكيفية القيام بذلك. لديك قاعدة البيانات الخاصة بك، ولغة البرمجة النصية الخاصة بك، وطريقة لتقديمها للعملاء - هذه هي LAMP.
إذا كنت تريد معرفة مدى سهولة تطوير ونشر التطبيق على السحابة باستخدام مجموعة LAMP أو MEAN، فإن IBM تقدم البرامج التعليمية التالية:
حدّث أحمال تشغيل تطبيقات Java لديك بسهولة مع خدمة IBM المُدارة بالكامل.
أطلق العنان للابتكار ومكّن فرقك من تسريع تحديث التطبيقات الحالية وتقديم خدمات سحابة أصلية جديدة.
تطوير التطبيقات السحابية يعني الإنشاء مرة واحدة والتكرار بسرعة والنشر في أي مكان.