عندما ابتكر Alan Kay مفهوم الObject Oriented ذكر تأثره بكتاب The Molecular Biology of The Cell
حيث حاول محاكاة طريقة عمل الخلايا وتواصلها فيما بينها و عكسها على الClasses . سنرى ماذا يمكن أن نتعلم ايضاً من ما حولنا في الطبيعة .. ( سلسلة )
حيث حاول محاكاة طريقة عمل الخلايا وتواصلها فيما بينها و عكسها على الClasses . سنرى ماذا يمكن أن نتعلم ايضاً من ما حولنا في الطبيعة .. ( سلسلة )
سنأخذ رحلة في جسم الانسان لكن من زاوية تقنية كـ Solution للحياة. لو نظرنا إليه من زاوية تقنية سنرى به تقريباً جميع المفاهيم الموجودة في الانظمة الكبيرة و اكثر و سنرى انها تحاول محاكاته بقصد او دون قصد.
يعتمد الجسم على أحداث Events داخلية و خارجية يستقبلها الدماغ سواء من الحواس الخمس للاحداث الخارجية او من داخل الجسم وكانه يقوم بعمل Message Server مثل Kafka أو RabbitMQ وكأنها Event Driven Architecture. ايضا نلاحظ أن مكان التخزين ـ الذاكرة ـ قريب جداً من مكان نظام الMessaging.
سأبدأ باعتبار الدماغ وأعضاء الجسم الاخرى Microservices معزولة داخل Containers خاصة بها تحتوي كل المكتبات المساعدة التي تحتاجها و تعتمد عليها في شيء اشبه بمفهوم الـ Domain Context لدى الـDDD.
على مستوى الأعضاء هناك تكامل Integration، على سبيل المثال بين الغدد و القلب أو بين الكبد والمعدة بمعمارية أشبه بالSOA حيث يقوم الدماغ بعمل Orchestration بينهم وتقوم الأعصاب بدور الـESB.
كل خلية من خلايا تلك الأعضاء هي عبارة عن برنامج Software صغير او كما سماه Mayer انه Software Machine له مدخلات Input و مخرجات Output و يتواصل مع من حوله عن طريق الـ Messages و هذا ما اشرت اليه بخصوص فكرة Kay عن الـ Object Oriented .
ايضاً لاحظ أن كل خلية عبارة عن Cluster يعطينا High Availability فلو تعرضت خلية للتلف تقوم الاخرى بعملها. كذلك هناك High Availability على مستوى الأعضاء كالعينين و الكليتين.
انظمة Security تحتاج لمقالات لحصرها بدءاً من الخلايا وصولا إلى الأعضاء كالجفن و الدموع لحماية العين إلى الجوارح للدفاع عن النفس ضد الأخطار الخارجية. بالإضافة إلى أنظمة Security مستقلة كالغدد الليمفاوية وظيفتها ال Validation لما يدخل للجسم. كريات الدم البيضاء تعمل كـ Anti-Virus.
نأتي Scalability ( التمدد او التوسع ) فنجد أن هناك نمو بطريقة Scale out بأن تنسخ الخلايا نفسها ذاتياً كما يفعل Kubernetes لحاويات Docker بالإضافة إلى Scale Up يحدث عندما تنمو الأعضاء خلال مراحل العمر.
شكل الإنسان الخارجي و مواقع أعضائه الخارجية يرتبط مع وظيفته بطريقة الUX ، ونجد في ملامحه وهيئته UI التي قد تجذب اليه الآخرين أو العكس.
الحواس الخمس تعمل كـAPI يرتبط مع الدماغ ليستطيع تحليل المعلومات والبيانات القادمة من الخارج ثم الاستجابة React لها عبر الأعضاء و هكذا يتمكن الإنسان من التواصل مع الآخرين وإتمام أعماله اليومية.
بالنسبة للـ Database فالدماغ هو موقع تخزين البيانات المركزي في حين يقوم الجسم بتخزين بعض المعلومات الجزئية في الحبل الشوكي و الذي يعمل هو و الدم و بقية الأعصاب كـ Networking ايضا تحتفظ الخلية بالDNA الذي يعتبر database لها و نجد للإنسان ذاكرة قصيرة مؤقتة كالRAM و ذاكرة دائمة.
في داخل كل خلية هناك Packages بها كلاسات كالمايتوكندريا لإنتاج الطاقة من السكريات التي تركبها اجسام جولي و ريبوسومات لانتاج البروتين فهي اشبه بـ Encapsulated Classes بها Algorithms لكل وظيفة و يمكن الدخول في العمق حتى نصل الى الكروماتين الذي ينتج الDNA و الذي يقابل الWORD.
وحدة تركيب الDNA اذا قابلناها بـ Bit سنجد أنها ليست ثنائية 1 و 0 و إنما رباعية لها 4 حالات T,C,G,A وتأتي في مجموعة codon تتكون من 3 خانات يقابلها البايت المكون من 8 بت في النتيجة نرى أن ال codon أعطانا 64 قيمة محتملة في مقابل 256 قيمة للبايت.
ما يمكن تعلمه عن تصميم الحلول من جسم الإنسان أكثر بكثير مما يمكن أن تتعلمه من الكتب التقنية فهو مصدر غني لاينضب و تبقى مشكلة فهمه ثم عكس الآليات البيولوجية على التقنية. قد تكون المقارنة سطحية بغرض تقريب المعنى وقد تستنبطون اشياء اخرى كثيرة لم اذكرها هنا. هذه السلسلة مجرد مقدمة .
في الاخير سنصل إلى أهم مفهوم في "علم" الكمبيوتر و هو التبسيط Abstraction , فمن شيء بسيط جداً تنتج أشياء معقدة. كمبرمج وظيفتك تحقيق العكس بتحويل وتفكيك المشاكل المعقدة الى أجزاء بسيطة ثم تحلها بعمل توليفات من هذا و ذاك. هذه السلسلة مقدمة لهيكلة و تصميم حل تقني لنظام شبه واقعي.
جاري تحميل الاقتراحات...