الIntegration علم واسع. و ليس مجرد تعامل مع أدارة لإدارة للAPIs. على سبيل المثال إن كان هناك 23 نمط تصميم
للبرمجة فهناك اكثر من 60 نمط تصميم للIntergration. مجرد استخدام ادوات مثل Apigee او Tibco لا يعني بالضرورة ضمان بأنك تقوم بالعمل الصحيح.
هذه سلسلة عن التكامل Integration.
سأبدأ بالمرجع الأساسي و هو كتاب اُلف في بداية الالفينيات اسمه Enterprise Integration Patterns احصى مؤلفيه 65 نمط تصميم و قسموها إلى 9 مجموعات. اغلب ادوات الIntegration تكون متضمنة لأغلب تلك الPatterns و تظهرها كأنها Features للمنتج مما يجعلك لا تهتم لها.
مؤلفي الكتاب تأثروا بكتاب Martin Fowler Patterns of Enterprise Application Architecture و شجعهم على تأليف كتابهم. و كتاب Fowler أساس للApplication Architectures.
التعامل المباشرة مع أدوات الIntegration بدون فهم للأساسيات بعيداً عن الأدوات, اشبه بمن يعمل على برنامج محاسبة و هو ليس بمحاسب اصلاً. هل سيعمل؟ ممكن. لكن يكون واعياً بالطريقة الصحيحة او المثلى لمعالجة العمليات الحسابية.
نفس الشيء مع ادوات الIntegration فالجزء النظري العام مهم و يساعدك في اختيار الأداة المناسبة التي تتلائم مع عملك دون الحاجة إلى ان تأخذ افضل ما في السوق كالذي تصطفيه Gartner او Forrester و غيرها. ستختار ما يناسب عملك و ميزانيتك.
الأنظمة الكبيرة و الضخمة لا تختلف في اكوادها عن الانظمة الصغيرة, لكن التضخم يكون في الArchitecture و كيف تتخاطب تلك الانظمة الصغيرة مع بعضها و كيف يمكننا تضمين المزيد و المزيد من تلك الأنظمة الصغيرة بداخل تلك الArchitecture بسهولة.
الحاجة لوجود Integration platform سببها التعقيد المصاحب لتكامل الأنظمة و الحاجة للتحكم به و مراقبته. ايضاً هناك الكثير من الصيّغ و المعايير المختلفة لشكل البيانات و لا يوجد حل سحري آني لتلك المشاكل بل تحتاج المؤسسات لبناء و تطوير خطتها الاستراتيجية للتكامل مع يتوافق مع اهدافها.
اذا اردت تعلم اساسيات الIntegration و الIntegration Patterns ابدأ بتعلم شيء مثل الBPM و تعلم الـ BPMN فهي ما ترتب أفكارك و تفيدك في مناحي الحياة العملية و هندسة الأجراءات حتى بعيداً عن الIT. كثير من الأدوات الخاصة بالIntegration تستخدم نفس رموز BPMN كما في جزئية الOrchestration.
كوظيفة قد يكون المسمى Integration Engineer و هو الشخص المسؤول في المؤسسة عن تصميم و تنظيم حركة مرور كل البيانات من نظام إلى اخر و طريقة انسيابها و تخاطبها مع بعضها بصورة سليمة بالإضافة إلى الاختبار و التحكم و المراقبة لتخرج منها بInsights كثيرة مهمة لتطوير العمل.
بالنسبة للمبرمجين وجود Integration Engineer معهم يساعدهم كثيراً في تطوير انفسهم و برامجهم , يجهز لهم ما يحتاجونه للعمل مع معماريات مثل الSOA او الMicroservices
يساعدهم في تطبيق الEvent Driven Architecture و التعامل مع الِAPIs الخارجية المختلفة عبر نقطة و صيغة واحدة من خلال الESB.
بالسنبة للأدوات ابدأ باستخدام اداة Open Source مثل Apache Camel و هو ما بنت عليه RedHat منتجها الخاص بالAPI Management المسمى 3scale. فحتى لو كانت اداة المستقبل لم تبنى على Apache Camel فستجد انها اصبحت مألوفة لديك.
كانت هذه سلسلة تثقيفية قد تتبعها اخرى و أعتذر على الإطالة.
اداة* لإدارة ..

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Ahmed Aljaberi

Ahmed Aljaberi Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ahmed_aljabri

6 Jul
كيف نتعلم و تتقن لغة برمجة جديدة بطريقة احترافية ؟
هذا مجرد رأي قد يوافقني او يعارضني البعض و مرحب بآراء الجميع. المشكلة ان البرمجة طريق ننسى معالمه عندما نصل إلى نهايته. ليس الهدف هنا تعلم "البرمجة" بل لغة جديدة بافتراض اننا مبرمجين لكن بلغة أخرى. و ضعت 10 خطوات
( سلسلة )
لغتك القادمة التي سمعت بها او قرأت انها مطلوبة , يمكنك مبدئياً تشوف درس مما يسمى الCrash Course ساعة إلى ساعتين في اقصى حد. لأخذ فكرة عنها فقط. لكن اذا اردت الاحتراف فإليك هذه الطريقة الصعبة او الHard way.
اولاً: اللغة أداة أو مجموعة أدوات. مبدئياً تعلم اللغة بدون تطبيق.
خصص وقت لقرءاة الReference Manual من موقع اللغة الرسمي لتعرف امكانيات اللغة. و ليس بالضرورة أن تقارنها بما تعرف و لا تتخطى أي شيء معتقداً انك تعرفه فمعلوماتك السابقة عن لغة اخرى قد تضللك في لغتك الجديدة
Read 13 tweets
13 Nov 19
هذه السلسلة عبارة عن 10 نقاط مختصرة من مستند كتبه مهندس برمجيات في اوائل 2017 و كان قد عمل في Google لمدة 10 سنوات و كتبه في 20 ورقة. هناك الكثير من التفاصيل لم اذكرها و لمن اراد الإستزادة عليه الرجوع للورقة المرفقة.
(سلسلة)
arxiv.org/ftp/arxiv/pape…
1. لدى Google مخزن Repository للأكواد يضم اكثر من بليوني سطر. يتم عليه اكثر من 40 الف Commit يومياً. لكل مبرمج في الشركة حق الاطلاع و التعديل على أي كود حتى لو كانت خارج نطاق مشروعه. و يقبل بعد موافقة الCode Owner على التعديل.
2. لدى Google نظام يسمى Blaze لفحص Testing الكود و بنائه Build آلياً و لابد من وجود Unit Testing. و مراجعة الكود تتم عن طريق الويب بعد ارسال طلب من الCode Owner كرابط بريد الكتروني للمبرمجين . يفيد بوجود كود يحتاج مراجعة ولا بد من مراجعته على الأقل من قبل شخص اخر.
Read 11 tweets
22 Oct 19
مصطلح الSQL و NoSQL هي تصنيفات للتسهيل لكن من وجهة نظر المختص فهي ACID و BASE أو Relational و Non Relational. هذه السلسلة سنتكلم اولاً عن الSQL Database او قواعد البيانات التي تجتمع فيها اربع خواص يرمز لها بالحروف ACID. لكن هنا تختلف قليلاً عن الACID المعروفة ( سلسلة )
الإختلاف هنا يعود إلى ان المقارنة بين قاعدة بيانات SQL مثل MySQL و NoSQL مثل Cassandra مثلاً لا يصح. لأن فكرة الNoSQL الأساسية هي ان تكون موزعة على اكثر من سيرفر, لذا يجب أن تكون المقارنة مع قاعدة بيانات SQL موزعة مثل MemSQL او ClustrixDB و Amazon Aurora و غيرها.
مبدئياً استحضر في في عقلك احد قواعد البيانات الSQL المشهورة مثل MySQL او Oracle او MSSQL و تخيل عملية معينة مثل عملية سحب نقدي من جهاز الصراف الآلي الATM لنرى من خلالها كيف جمعت و طبقت قواعد البيانات تلك خواص ACID الأربعة فيها.
Read 13 tweets
25 Sep 19
استكمالاً لما سبق , الMVVM اختصار لModel View ViewModel Model و قد بُني على MVC و MVP من قبل مايكروسوفت لتقنية WPF مع انه كان هناك شيء مشابه له اختصاره MVPM كتب عنه Martin Fowlerفي بداية الالفين.
لنفهم فائدة الMVVM , مايكروسوفت عندما قدمت Silverlight و WPF او Xaml بشكل عام .هذه الادوات تحتاج لمسة من مصمم جرافكس محترف فبدل ان نعطي المصمم كل المشروع نستطيع ان نعطيه فقط هذه الجزئية و نعمل كمبرمجين على جانب الBackend.
اللي اشتغل على KnockoutJS بيكون الMVVM مألوف لديه حيث ان فكرته هي تقسيم المشروع إلى ثلاثة اقسام Model فيه مصدر البيانات بدون تشكيل و فيه View و ViewModel مهمته الValidation و اعادة تشكيل البيانات بما يتناسب مع الView.
Read 7 tweets
27 Jul 19
سؤال لأحد المتابعين عن التقنية التي استخدمت في لعبة Pokemon Go و كيفية الدمج بين العالم الحقيقي و الافتراضي . هذه التقنية تسمى Augmented Reality اختصارها AR و ليس Virtual Reality VR. يمكن عمل تطبيقات لها عن طريق محركات الالعاب مثل Unity3D و Unreal . ( سلسلة )
تقنية الVR هي اسهلها و الفرق بينها و بين الAR انها فقط مجرد رسومات 3D بالكمبيوتر و يمكن التفاعل معها عبر الكمبيوتر بالكيبورد او عصا التحكم او الماوس مثل العاب Call of Duty كما يمكن دمج حساسات المكان و زاوية الرؤية الموجودة في الموبايل او نظارات الواقع الافتراضي مثل Oculus Rift .
هناك تقنية ثالثة و هي الأعقد هي الMixed Reality MR و هي دمج بين التقنيتين السابقتين بحيث ترى الشيء الافتراضي مع الواقع و يمكن التعامل معه بواسطة يديك او عينيك مباشرة و عادة تحتاج هذه التقنية لمعدات اعقد مثل HoloLense 2 و التي تكلف حوالي 3500 دولار غير الاشتراك الشهري .
Read 4 tweets
20 Apr 19
هناك طرق كثيرة لتعلم البرمجة , القراءة , الدورات في الفصول أو الإلكترونية , مشاهدة دروس على اليوتيوب , قراءة اكواد اشخاص اخرين , الطلب من شخص ان يعلمك وجهاً لوجه او محاولة بناء برنامج و الضغط على نفسك حتى تنجزه . لكن هناك طريقة اخرى ( سلسلة )
هناك خلاف في الآراء حول إن كانت البرمجة عِلم أم فن ؟ . ربما الأثنان , احياناً البرمجة مثل لعبة الشطرنج , هناك استراتجيات لا تتعلمها إلا بالملاحظة المباشرة , لأنها شيء لو اراد الشخص الاخر تعليمك اياها سيعجز لأنها خبرة .
برأيي لاشيء افضل و اسرع في تعلم البرمجة من الجلوس بجانب مبرمج خبير يقوم بتطوير نظام حقيقي , و مراقبة ما يقوم به دون اسئلة و الأفضل لو كان ممن يتكلم مع نفسه اثناء عمله . لاتزعجه راقب كيف يبدأ بتأسيس المشروع , كيف يجهز الملفات , كيف يكتب الاكواد و يبحث عنها في النت و يستخدمها.
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!