رايلو
خادم Railo ، المعروف اختصارًا باسم Railo ( يُنطق : / ˈraɪloʊ / ) ، هو برنامج مفتوح المصدر يُطبّق لغة البرمجة النصية CFML للأغراض العامة من جانب الخادم ، والتي تُستخدم غالبًا لإنشاء مواقع ويب ديناميكية وتطبيقات ويب وأنظمة إنترانت . CFML لغة ديناميكية تدعم نماذج برمجة متعددة وتعمل على آلة جافا الافتراضية (JVM).
تم تطوير Railo بواسطة شركة Railo Technologies GmbH السويسرية ، كبديل عالي الأداء لبرنامج Adobe ColdFusion . في عام 2008، تحوّل Railo إلى نموذج مفتوح المصدر قائم على المجتمع، وأصبح مشروعًا تابعًا لمنصة JBoss . تتولى شركة Railo Technologies قيادة مشروع Railo مفتوح المصدر، ويتم تمويل أعمال التطوير من خلال عقود الاستشارات والدعم، ولكن يُمكن لأي شخص المساهمة بكتابة الكود للنظر فيه.
تسمية
سُمّي الكلب "رايلو" تيمناً بكلب فضائي في مسلسل "ستار تريك: إنتربرايز" . اسم الكلب الحقيقي هو "رايلو"، لكن يُكتب صوتياً بالألمانية "رايلو". [ 1 ] لذا، يمكن نطق "رايلو" إما "رايلو" أو "رايلو" - وكلاهما صحيح.
تحمل الإصدارات الرئيسية لشركة Railo أسماء رمزية مستوحاة من أسماء كلاب بارزة ومخلصة من التاريخ.
تاريخ
بدأ مشروع Railo في عام 2002 كمشروع طلابي من قبل مايكل أوفنر وجيرت فرانز لتجميع كود CFML إلى PHP ، وهو خيار تم اتخاذه بسبب انتشار PHP، ولكن تبين أن هذا لم يوفر الأداء والاستقرار المطلوبين، وتم اتخاذ قرار بالتحول إلى منصة Java بدلاً من ذلك. [ 1 ]
حقق المشروع نجاحًا كافيًا دفع إلى مواصلة تطويره ليصبح منتجًا كاملًا. صدرت عدة نسخ تجريبية (ألفا وبيتا) قبل الإصدار الرسمي 1.0 في أبريل 2006. استمر تطوير Railo، لكنه ظل غير معروف نسبيًا للعديد من مطوري CFML، حتى يونيو 2008 في مؤتمر Scotch on the Rocks في إدنبرة ، عندما استغلت شركة Railo Technologies الكلمة الرئيسية في اليوم الثاني للإعلان عن شراكة مع JBoss والتحول إلى المصادر المفتوحة. [ 2 ]
في مايو 2012، وفي مؤتمر cf. Objective، تم الإعلان عن تأسيس شركة "The Railo Company Ltd"، وهي شركة خاصة محدودة ، تضم شركة Railo Technologies GmbH السويسرية بالاشتراك مع خمس شركات أخرى تعمل في صناعة CFML. [ 3 ]
لوسي فورك
في 29 يناير 2015، أعلن المطور الأصلي لـ Railo عن مشروع Lucee ، وهو نسخة معدلة من قاعدة بيانات Railo 4.2، مصرحًا بأنه لن يواصل العمل على Railo. وقد أكد المطورون الآخرون أنهم سيركزون جهودهم بالكامل على Lucee، وعلى الرغم من عدم صدور أي بيان رسمي من شركة Railo، إلا أن الرأي السائد في أوساط مجتمع المطورين هو أن مواصلة تطوير مشروع Railo أمر غير مرجح. [ 4 ] [ 5 ]
في 19 يوليو 2016، تم حل شركة Railo. [ 6 ]
سجل الإصدارات
| الإصدار الرئيسي (الاسم الرمزي) | نسخة ثانوية | تاريخ الافراج عنه | ملحوظات |
|---|---|---|---|
| 0 | ألفا 1 | 10-04-2004 | الإصدار الرسمي الأول لمحرك Railo CFML. [ 7 ] |
| ألفا 2 | 18-05-2004 | ||
| ألفا 3 | 2004-08-03 | ||
| ألفا 4 | 21-10-2004 | ||
| بيتا 1 | 16 يناير 2005 | الإصدار التجريبي الأول من Railo. | |
| بيتا 2 | 2005 | ||
| بيتا 3 | 2005 | ||
| RC1 | 23-09-2005 | تم تقديم أول نسخة تجريبية من Railo إلى مجموعة مستخدمي CFUG الألمانية في ميونيخ. [ 7 ] | |
| 1.0 | 1.0.0.000 | 2006-04 | |
| 2.0 | 2.0.0.000 | 10-09-2007 | |
| 2.0.1.000 | |||
| 2.0.2.000 | |||
| 3.0 | 3.0.0.000 | 2008-09-09 | |
| 3.0.1.000 | |||
| 3.0.2.000 | |||
| 3.0.3.000 | |||
| 3.1 ( باري ) | 3.1.0.000 | 2009-08-12 | الإصدار الأول مفتوح المصدر من Railo. [ 8 ] |
| 3.1.1.000 | 2009-08-11 | ||
| 3.1.2.000 | 2010-11-26 | ||
| 3.2 ( غريفرايرز بوبي ) | 3.2.1.000 | 24-12-2011 | |
| 3.2.2.000 | 2011-03-18 | ||
| 3.2.3.000 | 2011-06-10 | ||
| 3.3 ( هاتشيكو ) | 3.3.1.000 | 2011-11-03 | تمت إضافة دعم مدمج لتقنية ORM والعديد من الميزات الأخرى. [ 9 ] |
| 3.3.4.003 | 2012-06-25 | ||
| 4.0 ( أبولو ) | 4.0.0.013 | 2012-07-02 | |
| 4.0.5.004 | 2013-07-09 | ||
| 4.1 ( إندال ) | 4.1.2.005 | 2013-12-11 | . |
| 4.2 ( توغو ) | 4.2.0.009 | 2014-05-14 | |
| 4.2.1.000 | 2014-05-21 | ||
| 4.2.2.005 | 2014-12-18 | الإصدار المستقر الحالي من Railo |
المنصات والترخيص
يعمل Railo على JVM كخادم تطبيقات ( servlet )، ويتوافق مع أي حاوية servlet (مثل Apache Tomcat أو Eclipse Jetty ) أو خادم تطبيقات (مثل JBoss AS أو GlassFish ). يمكن ربط خادم ويب (مثل Apache أو IIS أو nginx أو Cherokee ) في المقدمة باستخدام موصلات مثل mod jk أو mod proxy أو ما شابه، ولكن هذا ليس شرطًا أساسيًا لتشغيل Railo.
يتوفر برنامج Railo للتثبيت على أنظمة Linux و macOS و Windows ، ويتضمن Apache Tomcat . كما يتوفر أيضًا إصدار Railo Express مُهيأ مسبقًا للتنزيل باستخدام Jetty .
ابتداءً من الإصدار 4.0، سيحتوي Railo على نسخة سطر أوامر ، مما يتيح استخدام CFML كلغة عامة الأغراض، خارج بيئة servlet. [ 10 ]
تم ترخيص Railo منذ الإصدار 3.1 بموجب ترخيص LGPL الإصدار 2.1، [ 11 ] مع توفر شفرة المصدر على GitHub [ 12 ]
فلسفة
كان الهدف الرئيسي من Railo هو توفير وظائف ColdFusion باستخدام موارد أقل وأداء أفضل، ولا يزال فريق Railo Technologies يتبنى فلسفة تطوير أساسية تقوم على اعتبار البطء عيبًا برمجيًا. وقد أظهرت العديد من اختبارات الأداء أن Railo أسرع من محركات CFML الأخرى. [ 13 ]
إضافة إلى ذلك، يسعى Railo إلى حل العديد من أوجه عدم الاتساق الموجودة في لغة CFML التقليدية. وهذه إما تغييرات مفروضة في السلوك، أو خيارات قابلة للتكوين في لوحة تحكم Railo.
الاستخدام
تستخدم شركة Railo عدداً من الشركات، ومن أبرزها:
- شركة أمتراك كاليفورنيا (شركة السكك الحديدية الكاليفورنية) [ 14 ]
- شركة أبل (شركة الإلكترونيات الاستهلاكية والبرمجيات) [ 15 ]
- بنك دايموند (بنك تجاري في نيجيريا )
- DistroKid (خدمة نشر وتوزيع الموسيقى، من تصميم فيليب ج. كابلان ) [ 16 ]
- IDG Germany (ناشر مجلات Computer World و GameStar و PCWorld) [ 17 ]
- Fandalism (شبكة اجتماعية للموسيقيين، من تأليف فيليب ج. كابلان ) [ 18 ]
- مختبر الدفع النفاث التابع لناسا (مركز الاستكشاف الروبوتي للفضاء) [ 19 ]
- ذا ليست (مجلة ترفيهية بريطانية) [ 20 ]
- مجموعة RTL (ثاني أكبر شركة إنتاج تلفزيوني وإذاعي في أوروبا) [ 21 ]
- STV Player (خدمة الفيديو حسب الطلب الاسكتلندية) [ 22 ]
- سويسكوم (مزود رئيسي لخدمات الاتصالات في سويسرا) [ 23 ]
سمات
- يدعم البرمجة الكائنية التوجه مع الوراثة ، والمزيجات ، والفئات الوصفية.
- الكتابة الديناميكية والكتابة البطيئة
- الترميز الحرفي للمصفوفات والهياكل
- تضمين المتغيرات في السلاسل النصية ( الاستيفاء )
- الوسائط المسماة ، والوسائط الاختيارية، والوسائط الافتراضية
- ثلاثة مستويات لنطاق متغيرات الكائن: هذا (عام للكائن)، المتغيرات (خاص بالكائن)، محلي (خاص بالدالة)
- نطاقات متغيرات عامة متعددة: الطلب، الجلسة، العميل، التطبيق، الخادم، المجموعة
- نطاقات متغيرات مميزة يوفرها المستخدم: النموذج (post)، عنوان URL (get)، ملف تعريف الارتباط، CGI
- جمع البيانات المهملة تلقائيًا (عبر JVM)
- معالجة الاستثناءات العالمية والمحلية (عبر
onErrorوtry/catch) - سلوك الإرسال المخصص (عبر
onMissingMethodدوال الوصول والتعيين الضمنية والظاهرية) - التحويل الضمني للكائنات (من خلال
_toString،_toNumeric،_toBoolean،_toDate) [ 24 ] - الخيوط الأصلية
- دعم Unicode ، وتشفير الأحرف المتعددة ، و i18n
- مكتبة قياسية كبيرة، تغطي احتياجات تطوير الويب الشائعة
- متجر ملحقات Railo [ 25 ] ومدير الملحقات [ 26 ] لتسهيل تثبيت البرامج والملحقات الإضافية
- واجهة برمجة التطبيقات الأصلية للمكونات الإضافية في CFML أو Java [ 27 ]
- معالجة أصلية لإنشاء واستخدام خدمات الويب بسهولة
- مسؤولو واجهة المستخدم الرسومية المنفصلون لسياقات الويب الفردية، بالإضافة إلى مسؤول خادم عالمي
- جميع إعدادات المسؤول قابلة للتكوين برمجيًا، أو عبر تحرير ملفات تكوين XML
- موارد أصلية لجميع علامات ووظائف نظام الملفات المدمجة. [ 28 ]
- التجميع والمزامنة لكل من الخوادم التقليدية والسحابية
- مدير المهام لجدولة الإجراءات المتكررة، أو إعادة محاولة الأحداث الفاشلة [ 29 ]
- دعم أصلي لـ Hibernate ORM
- عدد كبير من وظائف معالجة الصور
- بوابات الأحداث لتنفيذ التعليمات البرمجية غير المتزامنة [ 30 ]
- دعم أصلي لمجموعة متنوعة من آليات التخزين المؤقت المختلفة [ 31 ]
- إدارة الجلسات الأصلية (جلسات CFML أو جلسات J2EE) مع
onSessionStartالمشغلاتonSessionEnd. - وظائف مدمجة للتحقق من هوية المستخدم والأدوار.
حماية
تتضمن لغة CFML وظائف مدمجة لمنع حقن التعليمات البرمجية، عبر cfqueryparamالوسم، ووظائف أخرى مثل HtmlEditFormat. كما توجد تطبيقات خارجية للغة CFML خاصة بواجهة برمجة XmlFormatتطبيقات OWASP Enterprise Security API، [ 32 ] ومشروع AntiSamy. [ 33 ]JsStringFormat
كان أحد القرارات المعمارية الرئيسية في Railo هو اتباع نموذج JEE servlet، مع دعم سياقات ويب متعددة ومستقلة على خادم واحد. يُعد هذا عامل أمان أساسي، حيث يمنع التطبيقات غير ذات الصلة من التداخل مع بعضها البعض، كما قد يحدث على خادم ColdFusion مشترك (الذي يحتوي على سياق ويب واحد فقط).
بناء الجملة
يقوم Railo بتنفيذ لغة CFML - راجع قسم بناء جملة CFML للاطلاع على الأمثلة وكذلك CFScript .
الاختلافات
الاختلافات عن اللغات الأخرى
تتميز لغة CFML ببنية قائمة على الوسوم تختلف بصريًا عن معظم اللغات الأخرى، على الرغم من أنها بخلاف ذلك تشبه اللغات الديناميكية الأخرى، مع الاستثناءات التالية:
- تحتوي لغة CFML على صيغتين، صيغة تعتمد على الوسوم (غير متوافقة مع XML) وصيغة على نمط لغة C تسمى cfscript.
- يتم ترقيم المصفوفات في لغة CFML بدءًا من واحد، وليس من الصفر.
- يدعم CFML كلاً من وسائط الدوال المرتبة والمسماة، أو مزيجًا منهما.
- لا تحتوي لغة CFML على متغيرات ثابتة.
الاختلافات عن Adobe ColdFusion
على الرغم من أن Railo تطبق لغة CFML، وهي متوافقة بشكل عام مع Adobe ColdFusion (ACF)، محرك CFML الأصلي، إلا أن هناك بعض الاختلافات الملحوظة بين الاثنين:
- برنامج Railo هو برنامج مفتوح المصدر مرخص بموجب رخصة LGPL الإصدار 2.1. أما ACF فهي تقنية مملوكة .
- يستخدم Railo بنية سياق ويب متعددة، مقارنةً بسياق الويب الواحد الخاص بـ ACF.
- يتيح لك Railo إنشاء وظائف "مدمجة" معرفة من قبل المستخدم، باستخدام لغة CFML القياسية.
- لا يستطيع Railo فك تشفير (أو تنفيذ) القوالب التي تم تشفيرها باستخدام آلية التشفير الخاصة بـ ACF.
- تتميز Railo بدورة إصدار أسرع بكثير للإصدارات الرئيسية والثانوية والتصحيحية.
- في Railo، تُعطى الأولوية دائمًا للنطاقات. في ACF، قد يؤدي إنشاء متغير باسم "Url" إلى منع الوصول إلى نطاق Url. في Railo، لا يمكن الوصول إلى المتغير إلا من خلال "Variables.Url".
- لا يبحث Railo عن ملفات CFC إلا داخل مسار العلامة المخصصة إذا تم تحديده وفقًا لذلك في المسؤول (لديه مسار CFC مميز بدلاً من ذلك).
- يُقدّم Railo 4.x واجهة سطر أوامر (CLI) تسمح بتنفيذ نصوص CFML من سطر الأوامر.
- يُتيح Railo استخدام أساليب الكائنات. لذا، بدلاً من استخدام دالة `append(arr, "value")` في المصفوفة، يُمكن كتابة: `arr.append("value").append("anotherValue").`
انظر أيضاً
- Lucee - نسخة معدلة من Railo يدعمها حاليًا مطورو Railo الأصليون.
- أدوبي كولد فيوجن - محرك CFML الأصلي.
- CFML - اللغة التي يستخدمها Railo.
مراجع
- 1 2 "السكك الحديدية - التاريخ" . مؤرشف من الأصل في 21 أبريل 2016.
- ↑ "انضمام Railo إلى JBoss.org" . Infoq.com. ١٨ يونيو ٢٠٠٨. تم الاطلاع عليه بتاريخ ٢٧ يناير ٢٠٢٣ .
- ↑ "Railo at cf.Objective(): The Evolution of Railo — Railo Blog" . مؤرشف من الأصل بتاريخ 18 فبراير 2015. تم الاطلاع عليه بتاريخ 17 فبراير 2015 .
- ↑ "رايلو ولوسي: أسئلة ملحة حول هونكا هونكا" .
- ↑ "لوسي" .
- ↑ "سجل ملفات شركة رايلو المحدودة - البحث عن معلومات الشركة وتحديثها - GOV.UK" .
- 1 2 "Railo - محرك CFML" . www.railo.ch . مؤرشف من الأصل في 31 أكتوبر 2005. تم الاطلاع عليه في 15 يناير 2022 .
- ↑ "إصدار Railo 3.1" . مؤرشف من الأصل في 30 يونيو 2011. تم الاطلاع عليه في 2 أكتوبر 2011 .
- ↑ "ما الجديد" . ويكي رايلو – عبر جيت هاب .
- ↑ "خارطة طريق السكك الحديدية" . مؤرشفة من الأصل بتاريخ 26 سبتمبر 2011. تم الاطلاع عليها بتاريخ 2 أكتوبر 2011 .
- ↑ "ويكي توثيق لغة CFML الخاصة بـ Railo - رخصة Railo" . مؤرشف من الأصل بتاريخ 31 أكتوبر 2011. تم الاطلاع عليه بتاريخ 2 أكتوبر 2011 .
- ↑ "محرك Railo CFML" . GitHub . 30 أبريل 2022.
- ↑ "حفظ ملفات الفئات في ColdFusion" . مؤرشف من الأصل بتاريخ 13 أغسطس 2013. تم الاطلاع عليه بتاريخ 7 سبتمبر 2013 .
- ↑ "يستخدم نظام إدارة المحتوى Mura المدعوم من Railo" . مؤرشف من الأصل في 16 يناير 2012. تم الاطلاع عليه في 2 أكتوبر 2011 .
- ↑ يستخدم نظام إدارة المحتوى Mura المدعوم من Railo داخليًا.
- ↑ "فيليب كابلان يطلق رسميًا منصة ديستروكيد" . تك كرانش. 10 أكتوبر 2013.
- ↑ شركة Railo تدعم مواقع IDG الألمانية
- ↑ بود. "لديّ 404,772 مستخدمًا. ماذا أفعل الآن؟" . تم الاطلاع عليه بتاريخ 8 نوفمبر 2012 – عبر هاكر نيوز .
- ↑ "وكالة ناسا تحقق أهداف البيانات لمركبة المريخ الجوالة باستخدام برمجيات مفتوحة المصدر" . opensource.com . تم الاطلاع عليه بتاريخ 8 نوفمبر 2012 .
- ↑ شركة Railo تدعم موقعًا إلكترونيًا عامًا
- ↑ يستخدم Railo داخليًا، كما يستخدم نظام إدارة المحتوى CONTENS المدعوم من Railo لإنشاء مواقع ويب عامة.
- ↑ قوة السكك الحديدية
- ↑ قوة السكك الحديدية
- ↑ "نصائح: الدوال السحرية" . مؤرشف من الأصل في 25 أبريل 2012.
- ↑ «متجر ملحقات Railo مفتوح الآن! — مدونة Railo» . مؤرشف من الأصل بتاريخ 3 سبتمبر 2011. تم الاطلاع عليه بتاريخ 2 أكتوبر 2011 .
- ↑ "مدير الإضافات - مدونة رايلو" . مؤرشف من الأصل في 25 أبريل 2012. تم الاطلاع عليه في 2 أكتوبر 2011 .
- ↑ "Railo 3.1: بناء وظائفك المدمجة الخاصة - مدونة Railo" . مؤرشف من الأصل في 7 أكتوبر 2011. تم الاطلاع عليه في 2 أكتوبر 2011 .
- ↑ "Railo 3.0: Resources" . مؤرشف من الأصل في 25 أبريل 2012. تم الاطلاع عليه في 2 أكتوبر 2011 .
- ↑ "إصدار Railo 3.0 - الميزات - الجزء الرابع - مدير المهام، المزامنة عن بُعد - مدونة Railo" . مؤرشف من الأصل بتاريخ 24 أكتوبر 2011. تم الاطلاع عليه بتاريخ 2 أكتوبر 2011 .
- ↑ "3-2:Event_gateways" . مؤرشف من الأصل في 8 مايو 2012.
- ↑ "الذاكرة المؤقتة (المتقدمة) الجزء 2 - مدونة رايلو" . مؤرشف من الأصل في 1 مارس 2012. تم الاطلاع عليه في 2 أكتوبر 2011 .
- ↑ "أرشيف كود جوجل - تخزين طويل الأجل لاستضافة مشاريع كود جوجل" .
- ↑ "استخدام AntiSamy مع ColdFusion" .
روابط خارجية
- مترجمات CFML
- لغة البرمجة CFML
