تعمیراتی طرز کا انتخاب (حصہ 2)

ہیلو، حبر۔ آج میں اشاعتوں کا ایک سلسلہ جاری رکھتا ہوں جو میں نے خاص طور پر کورس کے ایک نئے سلسلے کے آغاز کے لیے لکھا تھا۔ "سافٹ ویئر آرکیٹیکٹ".

تعارف

معلوماتی نظام کی تعمیر کے دوران تعمیراتی طرز کا انتخاب بنیادی تکنیکی فیصلوں میں سے ایک ہے۔ مضامین کے اس سلسلے میں، میں ایپلی کیشنز کی تعمیر کے لیے سب سے زیادہ مقبول آرکیٹیکچرل اسٹائلز کا تجزیہ کرنے اور اس سوال کا جواب دینے کی تجویز پیش کرتا ہوں کہ کون سا طرز تعمیر سب سے زیادہ افضل ہے۔ پریزنٹیشن کے عمل میں، میں ایک منطقی سلسلہ تیار کرنے کی کوشش کروں گا جو یک سنگی سے لے کر مائیکرو سروسز تک آرکیٹیکچرل اسٹائل کی ترقی کی وضاحت کرتا ہے۔

В آخری بار ہم نے یک سنگی سے نمٹا اور اس نتیجے پر پہنچے کہ یک سنگی میں کئی مسائل ہیں: سائز، کنیکٹیویٹی، تعیناتی، اسکیل ایبلٹی، وشوسنییتا اور سختی۔

اس بار میں ماڈیولز/لائبریریوں (اجزاء پر مبنی فن تعمیر) یا خدمات (خدمت پر مبنی فن تعمیر) کے ایک سیٹ کے طور پر نظام کو ترتیب دینے کے امکانات کے بارے میں بات کرنے کی تجویز کرتا ہوں۔

اجزاء پر مبنی فن تعمیر

اجزاء پر مبنی فن تعمیر میں ایک نظام کو اجزاء کے ایک سیٹ کے طور پر چلانا شامل ہے جو موجودہ اور مستقبل کے دونوں منصوبوں میں استعمال کیا جا سکتا ہے۔ کسی نظام کو اجزاء میں تقسیم کرتے وقت، مندرجہ ذیل چیزوں کو مدنظر رکھا جاتا ہے: ان کی دوبارہ استعمال، ان کی تبدیلی، سیاق و سباق کی آزادی، توسیع پذیری، encapsulation اور آزادی۔

اجزاء کے صحیح استعمال کے ساتھ، "گندگی کی بڑی گیند" (بڑے سائز + ہائی کپلنگ) کا مسئلہ حل ہوجاتا ہے، اور اجزاء خود اسمبلی یونٹس (ماڈیول، لائبریری) اور تعیناتی یونٹس (سروسز) دونوں ہوسکتے ہیں۔ تعیناتی یونٹس کو ہمیشہ چلنے والے عمل میں نقشہ نہیں بنایا جاتا ہے: مثال کے طور پر، ایک ویب ایپلیکیشن اور ڈیٹا بیس کو ایک ساتھ تعینات کیا جاتا ہے۔

زیادہ تر اکثر، monoliths ماڈیولز کے ایک سیٹ کے طور پر تیار کیا جاتا ہے. یہ نقطہ نظر آزادانہ ترقی کی طرف لے جاتا ہے، لیکن آزاد پیمانہ کاری اور تعیناتی، غلطی کو برداشت کرنے اور ٹیکنالوجی کے مجموعی اسٹیک سے آزادی کے مسائل باقی ہیں۔ یہی وجہ ہے کہ ماڈیول جزوی طور پر آزاد جزو ہے۔

اس طرح کے یک سنگی کے ساتھ سب سے بڑا مسئلہ یہ ہے کہ ماڈیولز میں تقسیم خالصتا منطقی ہے اور ڈویلپرز آسانی سے اس کی خلاف ورزی کر سکتے ہیں۔ ایک بنیادی ماڈیول ظاہر ہو سکتا ہے، جو آہستہ آہستہ کچرے کے ڈھیر میں بدل جاتا ہے، ماڈیولز کے درمیان انحصار کا گراف بڑھ سکتا ہے، وغیرہ۔ اس طرح کے مسائل سے بچنے کے لیے، ترقی یا تو ایک بہت سمجھدار ٹیم کے ذریعے کی جانی چاہیے، یا کسی "معمار" کی رہنمائی میں جو کل وقتی کوڈ کے جائزے میں مصروف ہو اور منطقی ڈھانچے کی خلاف ورزی کرنے والے ڈویلپرز کے ہاتھ مارتا ہو۔

"مثالی" یک سنگی منطقی طور پر الگ کیے گئے ماڈیولز کا ایک سیٹ ہے، جن میں سے ہر ایک اپنے ڈیٹا بیس میں دیکھتا ہے۔

خدمت پر مبنی فن تعمیر

اگر نظام کو خدمات کے ایک سیٹ کی شکل میں منظم کیا جانا ہے، تو ہم خدمت پر مبنی فن تعمیر کے بارے میں بات کر رہے ہیں۔ اس کے اصول صارف پر مرکوز ایپلی کیشن انٹرآپریبلٹی، بزنس سروس کا دوبارہ استعمال، ٹیکنالوجی اسٹیک کی آزادی، اور خود مختاری (آزاد ارتقا، اسکیل ایبلٹی، اور تعیناتی) ہیں۔

سروس پر مبنی فن تعمیر (SOA = service oriented architecture) یک سنگی کے تمام شناخت شدہ مسائل کو حل کرتا ہے: تبدیلی آنے پر صرف ایک سروس متاثر ہوتی ہے، اور ایک اچھی طرح سے متعین API اجزاء کی اچھی انکیپسولیشن کی حمایت کرتا ہے۔

لیکن ہر چیز اتنی ہموار نہیں ہے: SOA نئے مسائل پیدا کرتا ہے۔ ریموٹ کالز مقامی کالوں سے زیادہ مہنگی ہیں، اور اجزاء کے درمیان ذمہ داریوں کی دوبارہ تقسیم نمایاں طور پر زیادہ مہنگی ہو گئی ہے۔

ویسے، آزاد تعیناتی کا امکان سروس کی ایک بہت اہم خصوصیت ہے۔ اگر خدمات کو ایک ساتھ یا اس کے علاوہ، ایک خاص ترتیب میں تعینات کیا جانا چاہیے، تو پھر نظام کو خدمت پر مبنی نہیں سمجھا جا سکتا۔ اس معاملے میں، وہ تقسیم شدہ یک سنگی کے بارے میں بات کرتے ہیں (جسے نہ صرف SOA کے نقطہ نظر سے بلکہ مائیکرو سروس فن تعمیر کے نقطہ نظر سے بھی مخالف پیٹرن سمجھا جاتا ہے)۔

خدمت پر مبنی فن تعمیر کو آرکیٹیکچرل کمیونٹی اور دکانداروں کی طرف سے اچھی طرح سے تعاون حاصل ہے۔ اس کا مطلب بہت سے کورسز اور سرٹیفیکیشنز، اچھی طرح سے تیار شدہ نمونوں کی موجودگی ہے۔ مؤخر الذکر میں شامل ہے، مثال کے طور پر، معروف انٹرپرائز سروس بس (ESB = انٹرپرائز سروس بس)۔ ایک ہی وقت میں، ESB وینڈرز کا ایک سامان ہے؛ ضروری نہیں کہ اسے SOA میں استعمال کیا جائے۔

سروس پر مبنی فن تعمیر کی مقبولیت 2008 کے آس پاس عروج پر پہنچ گئی، جس کے بعد اس میں کمی آنا شروع ہو گئی، جو مائیکرو سروسز (~2015) کی آمد کے بعد نمایاں طور پر زیادہ ڈرامائی ہو گئی۔

حاصل يہ ہوا

سروسز اور ماڈیولز کی شکل میں انفارمیشن سسٹمز کو منظم کرنے کے امکانات پر بات کرنے کے بعد، میں آخر میں مائیکرو سروس فن تعمیر کے اصولوں پر جانے کی تجویز کرتا ہوں اور اگلے حصے میں مائیکرو سروس آرکیٹیکچر اور سروس پر مبنی فن تعمیر کے درمیان فرق پر خصوصی توجہ دوں گا۔

تعمیراتی طرز کا انتخاب (حصہ 2)

ماخذ: www.habr.com

نیا تبصرہ شامل کریں