كيفية تنظيم التنمية الموزعة ، إذا كان هذا غير ممكن

في هذا المقال ، على الرغم من حقيقة أنه ، بالطبع ، علاقات عامة صرفة ويتحدث عن منتجنا الجديد الرائع (رأي المؤلف) ، فقد حاولت أن أصف تجربتنا المفيدة.

ما هي المشاكل التي واجهناها وعملائنا عند تنظيم التطوير عن بعد للأجهزة ، وكيف تم حلها ، ومن أين "Redd" ، مجمع البرمجيات والأجهزة لتطوير البرامج عن بعد للأنظمة المدمجة ، "تنمو الأرجل" منها؟ لماذا ظهر هذا "المربع" ، وكيف ستغير الحياة (مرة أخرى ، رأي المؤلف) ملايين مطوري الأنظمة المدمجة ، أجهزة إنترنت الأشياء ، معدات للسيارات ، الطائرات ، الاتصالات.



أنا أعمل في شركة تسمى MIR بشكل متواضع. لا تخلط مع نظام الدفع ، ليس لدينا أي علاقة به.

العالم في حالتنا يرمز إلى ورشة أدوات التطوير.

نحن نطور برامج النظام للعملاء الروس والأجانب. العميل النموذجي هو شركة مصنعة للميكروكونترولر والمعالجات الدقيقة ، عادة مع بعض غير القياسية ، الموسعة بالنسبة للمعيار ، وربما مع هندستها الخاصة.

بالنسبة لهم ، نقوم بتطوير أدوات التطوير: IDEs ، compilers ، أنظمة التشغيل في الوقت الحقيقي ، مصحح الأخطاء ، أجهزة المحاكاة ، profilers ، ومكونات SDK الأخرى.

في موازاة ذلك ، نحن نطور تطوير البرمجيات للأنظمة المدمجة. على سبيل المثال ، بالنسبة لشركة صناعة السيارات الألمانية ، نصنع برامج للوحات القيادة الحديثة. نقوم أيضًا بمشروعات في مجال إلكترونيات الطيران ، وتطوير برامج لتنظيم شبكات الشبكات من العدادات الذكية والطائرات بدون طيار ، وإنشاء برامج مخصصة لأنظمة التحكم في الوصول ، والعمل في سوق إنترنت الأشياء (مآخذ ذكية ، على سبيل المثال). بشكل عام ، هناك العديد من المشاريع المثيرة للاهتمام التي اتضح فيها أنها اكتسبت خبرة غير قياسية في حل المشكلات الناشئة.



للعملاء ، نحن المطورين الخارجيين. علاوة على ذلك ، نحن موجودون في سانت بطرسبرغ وفيليكي نوفغورود وكراسنويارسك ، وعملائنا في موسكو وزيلينوجراد وتولا وفورونيج وألمانيا وكوريا.

في الوقت نفسه ، نقوم بتطوير برنامج للأجهزة. ومن أجل برمجة جهاز معين ، من الضروري أن يكون للمبرمج هذا الجهاز.

إذا كان شخص ما غير مطلع على "التكنولوجيا" فجأة: فأنت بحاجة إلى كمبيوتر يعمل به حيث يتم تثبيت أدوات التطوير الضرورية ، مثل IDE. يجب أن تكون الأجهزة متصلة بنفس الكمبيوتر: لوحات تصحيح الأخطاء ، ولوحات المعلومات (إذا كنا نتحدث عن تطوير للسيارات). يبدو شيء مثل في الصورة:



يقوم المطور بكتابة الكود على الكمبيوتر وتنزيله على الجهاز حيث يتم تنفيذه.
من الواضح أنه بدون الجهاز نفسه ، يكون من المستحيل التحقق من إمكانية التشغيل ، ومن المستحيل تصحيح الأخطاء أو تحسينها. بالإضافة إلى ذلك ، من المهم للمبرمج أن يرى ما يحدث مع الجهاز فعليًا: أي المصابيح تضيء ، ما يظهر على الشاشة ، حيث تدور العجلة.

قضايا المطور


وهنا تبدأ المشاكل. أول واحد نواجهه هو توافر المعدات.

تصنع العديد من المؤسسات قطعًا فريدة في المراحل الأولى من الإنتاج. هم ببساطة جسديا في العالم هناك واحد أو اثنين أو خمس قطع. يعد نقلهم إلى مطور خارجي (لنا) مشكلة كبيرة ومهمة صعبة للعميل. ببساطة قد لا يكون هناك أجهزة مجانية.

على سبيل المثال ، كما هو الحال مع المعالج الجديد 1967044 من JSC PKK Milander. لا يزال في حالة الانتهاء من الوسواس القهري ، ولكن أدوات التطوير اللازمة لذلك يجب القيام به الآن.



المشكلة الثانية ، عندما يكون هناك عدد قليل من المنتجات ، تنشأ الكثير من مشاكل الأجهزة فيها. وإذا جاء المنتج إلينا من موسكو ، ووجدنا خطأً في الجهاز ، فيمكننا نقل المنتج إلى الشركة المصنعة للتصحيح خلال يوم واحد. وإذا كان المنتج جاء من ألمانيا؟ تحتاج إلى إرسال المنتج مرة أخرى إلى المطور ، وانتظر التصحيحات والعودة. كل هذا ليس سريع ولا مكلف. وما زال هناك وقت توقف للمبرمجين ويتم تغيير المواعيد النهائية للمشروع بينما ننتظر الجهاز الذي تم تصحيحه. وكذلك كان هناك عملاء يقومون بنقل الجهاز شخصيًا فقط لأسباب أمنية. ومع ذلك ، عادة ما تكون أخطاء الأجهزة أكثر شيوعًا مما يمكن أن تتحمله.

بشكل عام ، يعد وجود الحدود في العالم أحد العقبات الخطيرة التي تسبب الإزعاج باستمرار. يتحول تسليم المعدات حتى من أوروبا القريبة منا إلى مهمة ، ولكن من كوريا أو الولايات المتحدة الأمريكية ... لن أحدد المشكلات التي تنشأ وكيفية حلها ، لا يمكنني إلا أن أقول إنها جميعًا تزيد من وقت وتكلفة مشاريع العميل. وهذا يعني أنها تقلل من قدرتنا التنافسية.

مشكلة أخرى هي أن المعدات قد تنكسر. النقل هو زيادة في خطر تلف المعدات ، بالإضافة إلى ضياع الوقت والتكاليف اللوجستية. يجب فصل الجهاز وتعبئته ونقله وتفريغه وتوصيله وتهيئته ، مع تضمينه في المدرجات.

الآن تخيل أنك تقوم بتطوير محلل للغاز ، والذي يأتي مع عدة أسطوانات ضخمة وثقيلة ...



أو نظام الرش لطائرة هليكوبتر.





الآن يجب إجراء تصحيح هذه الأنظمة على المحاكيات ، على الرغم من أنه سيكون أكثر ملاءمة للتحقق من بعض الأشياء عن بُعد (على سبيل المثال ، التحكم في PID لمحرك الرش ، عندما يقوم العميل في بداية الموسم بإجراء تجارب على تثبيت محركات الحقن أو المكربن ​​، أو لف المقاومات المتغيرة في نظام التحكم الخاص بهم) .

لكن المشاكل تنشأ حتى لو كان المبرمجون في نفس المبنى.

يمكن "ضياع" المعدات إذا لم تكن هناك عمليات نقل رسمية وتذهب بين المبرمجين داخل المشروع. أو يمكن أن "تنتقل" المعدات إلى المطور لفترة طويلة ، إذا كانت هناك عمليات رسمية ، ولكن بيروقراطية. لا يمكنني القول أننا فقدنا حقًا معدات العميل ، ولكن كانت هناك مواقف عندما لم يكن من الواضح من كان لديه بالضبط لوحة تصحيح الأخطاء في الوقت الحالي ، والوقت الذي ستظل فيه مشغولة. الوضع غير حاسم ، تم حلها في خمس دقائق ، ولكن هناك العديد من المشاريع. لماذا قضاء وقت إضافي؟

وتتفاقم هذه المسألة من حقيقة أن المبرمجين هم أشخاص مدمنين للغاية. ونتيجة لذلك ، إذا كان هناك تنافس بينهما على نفس الرسوم (وهذا يحدث غالبًا ، نظرًا لأننا نعمل بشكل أساسي مع أجهزة فريدة من نوعها) ، فإن "التراكبات" المؤقتة والتوقف المؤقت للموظفين الذين ينتظرون ذلك أمر لا مفر منه.

وحتى لو كنت قائدًا رائعًا وقمت ببناء عملية وخدمات لوجستية ممتازة ، فستخسر فعاليتك من خلال حل حل البرمجة عن بُعد دون التحرك.

على سبيل المثال ، في مثل هذه الحالة. في المرحلة النهائية من التطوير ، يبدأ الاختبار. وهذا لا يحدث ، ولكن بالتوازي مع التطور ، في دورة. يتحقق المختبرون من الوظائف التي تم إجراؤها ، ويجدون الأخطاء ، ثم يصلح المبرمجون الأخطاء ، ثم هناك حاجة للاختبار ، وهكذا. هناك حاجة إلى معدات داخل نفس المشروع من قبل المطورين والمختبرين. وإذا كانت مكاتبك موجودة ، على سبيل المثال ، في كراسنويارسك وفيليكي نوفغورود ، فيمكن أن تعمل المعدات على مدار الساعة تقريبًا. ليلا ونهارا (في موسكو) ، يكتب المبرمجون من نوفغورود الكود ، ثم في الصباح الباكر (لأن الفرق هو 4 ساعات) ، يقوم اختبارو كراسنويارسك بالاتصال واختبار كامل على نفس المعدات خلال ساعات عملهم.

الحل التقليدي


الاستنتاج واضح - العمل مع الحديد عن بعد يمكن أن يكون مربحًا جدًا. تحتاج إلى وضع جميع الأجهزة في مكان واحد ومنح الفريق إمكانية الوصول عن بُعد.

يتناوب المطورون على الاتصال بالجهاز ، والعمل معه ، واستكمال المهمة ، وقطع الاتصال ، مما يوفر مساحة للمساحة التالية.

وسيكون كل شيء في هذا المخطط رائعًا ، لكن استخدام الوصول عن بعد القياسي إلى جهاز كمبيوتر متصل بالمنتج لا يعمل.

في أغلب الأحيان ، لا يمكن استخدام واجهات مختلفة لتوصيل الأجهزة: عادةً ما يكون لجهاز الكمبيوتر مجموعة محدودة ، ولا يمكن الاتصال مباشرة بلوحة التصحيح دون محولات. على سبيل المثال ، ستحتاج إلى شراء مبرمج يسمح بالاتصال عن بُعد.

إذا كنت لا تزال قادرًا على الاتصال ، فلن يتمكن المطور بعد من التحكم في إعدادات طاقة الجهاز: إنه من المريح عدم إعادة تشغيل الجهاز. للضغط على زر التشغيل / الإيقاف أو لسحب قابس سلك الطاقة ، سيتعين عليك الاتصال بزميل في المكتب حتى يذهب ويقوم بذلك يدويًا.

وبعد ذلك ، سيتعين على الزميل الذي قام "المبرمج بالفكرة" أن يعيده إليها لمدة 5-10 دقائق ، وهذا لا يحسب الوقت الذي كان يركض فيه وقد أوضحوا له على الهاتف الذي يتحول للسحب. لذلك قم بتشغيل ساعات العمل وعشرات ساعات العمل في وضع الخمول دفعة واحدة في العديد من المشاريع التي لا تتعلق بالتيار.

بالإضافة إلى ذلك ، ليس من الواضح ما يحدث للجهاز ماديًا . ما يظهر على الشاشة أو مؤشرات الجهاز المطوَّر ، كيف وميض المصابيح. ليس من الضروري دائمًا ، ولكن عادةً ما تنشأ مثل هذه الحاجة في أكثر اللحظات غير المناسبة.

بالطبع ، هناك خيار لمحاولة الالتفاف على هذه القيود. قم بشراء مرحل يتم التحكم فيه عن بُعد حتى يكون من الممكن إعادة تشغيل الجهاز ، وكاميرا ويب لمراقبة وتثبيت كل شيء وتكوينه. علاوة على ذلك ، إذا تمكنا من إيصال الجميع إلى كيفية التعامل مع هذا ، وأين "الدخول" وما يجب القيام به بالترتيب الصحيح ، فسنقترب من الحل ...

إلا أنه عندما يكون هناك عدد من المطورين أكثر من الأجهزة ، لا يوجد تنظيم مركزي وواضح لعملية الوصول . وعند العمل مع الفريق ، سيتعين عليك أن تتفق بشكل منفصل مع من ومتى يعمل مع الجهاز.

ريد - مجمع البرمجة عن بعد


تكمن فكرة حل جميع المشكلات التي يتم التعبير عنها بشكل شامل على السطح ، وحتى في البداية لم نتمكن من فهم السبب وراء عدم قيام أي شخص بعمل مثل هذا عندما بدأنا البحث عن منافسين. وجدنا بعض الحلول ، ولكن أقل شأنا ، في أجزاء. كل شخص يفعل شيئًا في مجاله: شخص ما يقوم بتصحيح أخطاء JTAG بحتة ، شخص ما يحاكيها ، لكنك تحتاج أيضًا إلى التصحيح ، والوقوف لتكون ، ومراقبة ، والسلطة ، والتحكم في الوصول. في المجمع ، لا أحد يفعل ، على التوالي ، وليس هناك حلول تعمل بشكل كامل.

لذلك ، بدأنا تطوير Redd (لتقف على جهاز التطوير عن بعد). هذا عبارة عن مجمع للأجهزة التي تنظم الوصول إلى المعدات الإلكترونية الدقيقة عبر الإنترنت أو عبر شبكة محلية باستخدام عدد من بروتوكولات الاتصال القياسية والمخصصة.



لم نتابع "الابتكارات النانوية". في الواقع ، Redd هي ببساطة تقنيات بسيطة ومفهومة يتم دمجها في جهاز واحد ، والتي توفر إجماليًا حلاً للمشكلات التي وصفتها أعلاه.

يمكن لـ Redd الاتصال بالجهاز من خلال واجهات مختلفة ، مما يزيل مشكلة العمل مع عدد كبير من الأجهزة ، وهو قادر على إدارة الطاقة ، والآن يمكنك إعادة تشغيل الجهاز دون أي مساعدة. هناك كاميرا فيديو يرى المطور من خلالها ما يحدث مع الجهاز في الوقت الفعلي.



بالإضافة إلى ذلك ، يتيح لك جزء الخادم الخاص بالمنتج حجز المعدات من خلال واجهة التقويم والتحكم في الوصول.



من الناحية الفنية ، يتكون Redd من عنصرين تابعين: "محطة طرفية بعيدة" وبرنامج خادم.



الجهاز البعيد هو جهاز كمبيوتر متوافق مع أجهزة الكمبيوتر يعتمد على معالج Intel ، ومجهز بلوحة توسيع الواجهة ، التي نقوم بتطويرها بأنفسنا. في الإصدار الأول (في مارس) ، ستكون الإيثرنت ومضيف USB (JTAG) متاحين. في الثانية (في يونيو) - UART و Ethernet و GPIO و SPI (+ SPI flash) و SDIO (مع محول لمحاكي بطاقة SD) و I2C و USB 2.0 OTG و PCIe و LVDS و RS232 CMOS ومفاتيح الطاقة لتحويل الطاقة ومنطقية مفاتيح للتنشيط ، على سبيل المثال ، أزرار.



يحتوي الجهاز على أكثر مجموعة من الواجهات استخدامًا ، بالإضافة إلى وجود FPGA لتنفيذ أي أشياء غير قياسية. منذ أن تم تصميم النظام في مجمع ، ويضمن عدم وجود صراعات متبادلة. وستنتقل الواجهات من مشروع إلى آخر مع المجمع ، دون الحاجة إلى شراء شيء إضافي.

محدث: هذا ما يشبه لوحة خارجية مع موصلات واجهة Redd. "تلتصق" بالموصل الموجود على اللوحة الأمامية وتسمح باستخدام واجهات قياسية. على الرغم من وجود متغير ممكن أيضًا ، والذي يظهر في صور أخرى ، بدون لوحة.



غالبًا ما يكون من المستحيل اختبار المعدات المطورة في ظروف القتال. تدفع المروحية 50 يورو فقط لدعم إرسال الإقلاع والهبوط. قيادة السيارة طوال الوقت غير واقعية. السفن ليست دائما في البحر. بشكل عام ، نحن بحاجة إلى محاكاة.

كيف يتواصل النظام مع العالم الخارجي؟ عبر أجهزة استشعار متصلة الحافلات المختلفة. حسنًا ، يتم أيضًا إصدار الإشارات إلى المشغلات على الحافلات. مجموعة الإطارات الحالية واسعة جدًا. يمكن أن يكون ذلك ، CAN ، UART (في إصدار CMOS ، RS232 ، RS485) ، Ethernet ، MODBUS (عبر UART أو Ethernet نفسه) ، خطوط رقمية ذات مستويات مختلفة وهكذا ، وهلم جرا.

يتمثل الحل النموذجي في جعل أجهزة محاكاة أجهزة الاستشعار والمحركات عن طريق توصيلها بالحافلات. ستعتبر المعدات قيد التطوير أنها تتلقى معلومات حقيقية ، وسيقوم المطور بتقليد سيناريوهات مختلفة من العمل الحقيقي ، وتصحيح خوارزميات العمل. بالطبع ، لكل مشروع ، يمكنك شراء وحدات تحكم من واجهات مختلفة وتوصيلها.

أو يمكنك توصيل Redd بدلاً من هذه المستشعرات وفناني الأداء ، وكتابة أجهزة محاكاة لأعمالهم (أي ، هم ، أي محاكاة البيئة الخارجية) ، ثم تصحيح الجهاز قيد التطوير الذي يعتقد أنه في السيارة أو في مكان آخر ، ونحن نفعل تصحيح المنطق الهدف. وسيكون بمقدور المختبرين من خلال هذه الآلية فحص الخط الحدودي وحتى المواقف الخاطئة المتعمدة التي يصعب للغاية أو يستحيل استنساخها بالكامل في الاختبارات العادية.

يقع الجزء الخادم من المجمع مباشرة على المحطة. يستطيع المطور عبر الويب معرفة الأجهزة وفي أي وقت تتوفر له. يمكن حجزها في تقويم بحيث يتم منحه حق الوصول تلقائيًا. يتصل عبر بروتوكول ssh بالمحطة ومعه مصحح الأخطاء وإدارة برامج محاكاة الأجهزة. بالإضافة إلى ذلك ، لا يمكن أن يكون وضع تشغيل Redd متعدد المستخدمين فقط ، ولكن أيضًا من خلال الاتصال المتزامن لعدة أجهزة.



وبالتالي ، يسمح Redd بتنظيم الوصول عن بُعد للمطورين الداخليين أو الخارجيين إلى جهاز (أو مجموعة من الأجهزة ، من الممكن توصيل العديد من الأجهزة بمحطة واحدة) ، وتخطيط وإدارة الوصول بمرور الوقت ، دون حركة فعلية.



علاوة إضافية - يمكن أيضًا استخدام Redd لعرض المنتج على العملاء الخارجيين والعملاء دون النقل الفعلي. أو لتنظيم برمجة أجهزة التعلم عن بعد ، والتي قد تكون مثيرة للاهتمام لمصنعي المعالجات الدقيقة أو للمؤسسات التعليمية.

ماذا الان


الآن ننتهي من تطوير الإصدار الأول ، سيتم إصداره في أوائل مارس ، وهو متاح بالفعل للطلب المسبق (بالطبع ، بشروط تفضيلية).

الهدف الرئيسي من هذه المقالة (باستثناء الإعلانات) هو جمع التعليقات.

اكتب إذا كنت لا توافق على وجود مشكلات موضحة في المقالة ، أو يمكنك تسمية تلك المشكلات التي نسيتها.

ربما تعرف حلاً لم نعثر عليه ، أو يمكنك حل هذه المشكلات بطريقتك الخاصة.

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

Source: https://habr.com/ru/post/ar440156/


All Articles