CodeGym /جاوا بلاگ /Random-UR /حصہ 2۔ آئیے سافٹ وئیر فن تعمیر کے بارے میں تھوڑی بات کرتے...
John Squirrels
سطح
San Francisco

حصہ 2۔ آئیے سافٹ وئیر فن تعمیر کے بارے میں تھوڑی بات کرتے ہیں۔

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

کلائنٹ سرور فن تعمیر

نام یہ تاثر پیدا کرتا ہے کہ اس پیٹرن کے بارے میں سب کچھ سادہ اور واضح ہے۔ لیکن آئیے کچھ نکات واضح کرتے ہیں، تاکہ جب آپ بہار کا مطالعہ شروع کریں گے تو آپ سمجھ جائیں گے کہ ہم کس کے بارے میں بات کر رہے ہیں۔ مان لیں کہ آپ نے ایک چیٹ ایپ لکھی ہے، اور آپ اور ایک دوست اسے استعمال کرنا شروع کر دیتے ہیں۔ آپ ایک بہت ہی آسان طریقہ اختیار کر سکتے ہیں، معلوم IP پتوں کا استعمال کرتے ہوئے براہ راست انٹرنیٹ کے ذریعے ایک دوسرے کو پیغامات بھیج سکتے ہیں: حصہ 2۔ آئیے سافٹ وئیر فن تعمیر کے بارے میں تھوڑی بات کرتے ہیں - 2سب سے پہلے، بظاہر سب کچھ ٹھیک کام کرتا ہے جب تک کہ آپ کا کوئی دوسرا دوست چیٹ میں شامل ہونے کو نہ کہے۔ اس لیے جب آپ اپنے باہمی دوست کو چیٹ میں شامل کرنے کا فیصلہ کرتے ہیں، تو آپ کو ایک تعمیراتی مسئلہ کا سامنا کرنا پڑتا ہے: ہر چیٹ کے شریک کے لیے، آپ کو صارفین کی تعداد، اور نئے صارفین کے IP ایڈریس کے بارے میں موجودہ معلومات فراہم کرنے کی ضرورت ہوتی ہے۔ اور جب کوئی پیغام بھیجا جاتا ہے، تو اسے تمام شرکاء تک پہنچانے کی ضرورت ہوتی ہے۔ یہ سب سے واضح مسائل ہیں جو پیدا ہوں گے۔ مسائل کا ایک اور گچھا کوڈ میں ہی چھپا ہو گا۔ ان سے بچنے کے لیے، آپ کو ایک سرور استعمال کرنے کی ضرورت ہے ، جو صارفین کے بارے میں تمام معلومات بشمول ان کے پتے کو محفوظ کرے گا۔ پیغامات کو صرف سرور پر بھیجنے کی ضرورت ہے۔ یہ، بدلے میں، ہر ایک وصول کنندہ کو پیغامات بھیجتا ہے۔ جب آپ اپنی چیٹ ایپ میں سرور کا حصہ شامل کرنے کا فیصلہ کرتے ہیں، تو آپ کلائنٹ-سرور کا فن تعمیر شروع کر دیتے ہیں۔

کلائنٹ سرور فن تعمیر کے اجزاء

آئیے دیکھتے ہیں کہ یہ سب کیا ہے۔ کلائنٹ سرور فن تعمیر ایک ڈیزائن پیٹرن ہے جو ویب ایپلیکیشنز بنانے کے لیے استعمال ہوتا ہے۔ یہ فن تعمیر تین اجزاء پر مشتمل ہے: حصہ 2۔ آئیے سافٹ وئیر فن تعمیر کے بارے میں تھوڑی بات کرتے ہیں - 3
  1. کلائنٹ - اس کے نام سے، ہم بتا سکتے ہیں کہ یہ جزو کچھ سروس (ویب ایپلیکیشن) استعمال کرتا ہے، کچھ معلومات کی درخواست کرنے کے لیے سرور سے رابطہ کرتا ہے۔

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

  3. نیٹ ورک - یہ حصہ آسان ہے۔ یہ کلائنٹ اور سرور کے درمیان معلومات کے تبادلے کی سہولت فراہم کرتا ہے۔

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

  • ایک سرور ماڈیول — ایک ویب ایپلیکیشن جو سرور پر ہوسٹ کی جاتی ہے اور صارفین سے پیغامات وصول کرتی ہے، ان پر کارروائی کرتی ہے، اور پھر وصول کنندگان کو بھیجتی ہے۔

حصہ 2۔ آئیے سافٹ وئیر فن تعمیر کے بارے میں تھوڑی بات کرتے ہیں - 4جب ہم انٹرنیٹ پر مفید (یا بہت مفید نہیں) معلومات دیکھنا چاہتے ہیں، تو ہم ایک براؤزر کھولتے ہیں، سرچ بار میں ایک سوال درج کرتے ہیں، اور جواب میں سرچ انجن سے معلومات حاصل کرتے ہیں۔ اس سلسلہ میں، براؤزر کلائنٹ ہے۔ یہ اس کے بارے میں معلومات کے ساتھ ایک درخواست بھیجتا ہے جو ہم سرور کو تلاش کر رہے ہیں۔ سرور درخواست پر کارروائی کرتا ہے، انتہائی متعلقہ نتائج تلاش کرتا ہے، انہیں اس فارمیٹ میں پیک کرتا ہے جسے براؤزر (کلائنٹ) سمجھ سکتا ہے اور انہیں واپس بھیج دیتا ہے۔ پیچیدہ خدمات جیسے سرچ انجن میں بہت سارے سرور ہوسکتے ہیں۔ مثال کے طور پر، ایک اجازت دینے والا سرور، معلومات تلاش کرنے کے لیے ایک سرور، ردعمل پیدا کرنے کے لیے ایک سرور، وغیرہ۔ لیکن مؤکل ان میں سے کسی سے بھی لاعلم اور بے پرواہ ہے: کلائنٹ کے لیے، سرور ایک متحد ادارہ ہے۔ کلائنٹ صرف انٹری پوائنٹ کے بارے میں جانتا ہے، یعنی سرور کا پتہ جس پر درخواستیں بھیجی جانی چاہئیں۔ اس ایپلی کیشن کو یاد کریں جس کا ہم نے اس سیریز کے پچھلے حصے میں جائزہ لیا تھا ۔ یہ حقیقی وقت میں تمام ممالک میں ہوا کے اوسط درجہ حرارت کی نگرانی کے لیے تھا۔ اس کا فن تعمیر کچھ اس طرح نظر آتا ہے: حصہ 2۔ آئیے سافٹ وئیر فن تعمیر کے بارے میں تھوڑی بات کرتے ہیں - 5ہماری ایپلیکیشن سرور پر واقع ہے۔ ہم کہتے ہیں کہ ہر پانچ سیکنڈ میں یہ مقامی موسمیاتی اسٹیشنوں کے ذریعے چلنے والے سرورز کو درخواستیں بھیجتا ہے، سرورز سے کسی خاص ملک کے درجہ حرارت کی معلومات حاصل کرتا ہے، اور اس معلومات کو محفوظ کرتا ہے۔ جب کلائنٹ ہم سے "دنیا کا موجودہ ہوا کا درجہ حرارت دیکھنے" کے لیے کہتا ہے، تو ہم ملک کے لحاظ سے ترتیب دی گئی حالیہ ذخیرہ شدہ معلومات واپس کرتے ہیں۔ اس طرح، ہماری ایپلیکیشن ایک سرور (جب یہ صارف کی درخواستوں پر کارروائی کرتی ہے) اور کلائنٹ (جب اسے دوسرے سرورز سے معلومات موصول ہوتی ہے) دونوں کے طور پر کام کرتی ہے۔
یہاں ایک اہم نکتہ ہے: سرور کا تصور کسی مخصوص کمپیوٹر کے بارے میں نہیں ہے، بلکہ نیٹ ورک اداروں کے درمیان تعلق کے بارے میں ہے ۔
ایک سادہ کلائنٹ سرور فن تعمیر بہت کم استعمال ہوتا ہے اور صرف انتہائی سادہ ایپلی کیشنز کے لیے۔ واقعی بڑے اور پیچیدہ منصوبوں کے لیے، ہم مختلف فن تعمیرات کا استعمال کرتے ہیں، جن سے آپ مستقبل میں ملیں گے۔ اب آئیے ایک ایسے ماڈل کو دیکھتے ہیں جو کلائنٹ سرور کے فن تعمیر سے بہت ملتا جلتا ہے۔

تین درجے کا فن تعمیر

یہ ایک آرکیٹیکچرل پیٹرن ہے جو ایک تیسرا ماڈیول متعارف کراتی ہے — ڈیٹا اسٹوریج ۔ اس پیٹرن میں، تین سطحوں کو عام طور پر تہہ یا درجے کہا جاتا ہے: حصہ 2۔ آئیے سافٹ وئیر فن تعمیر کے بارے میں تھوڑی بات کرتے ہیں - 6
  1. کلائنٹ لیئر یوزر انٹرفیس ہے، جسے پریزنٹیشن ٹائر بھی کہا جاتا ہے۔ یہ ایک ویب براؤزر ہو سکتا ہے جو HTML صفحات وصول کرتا ہے، یا جاوا ایف ایکس کا استعمال کرتے ہوئے لکھا ہوا گرافیکل یوزر انٹرفیس۔ اہم بات یہ ہے کہ یہ پرت صارف کو سرور کو درخواستیں بھیجنے اور اس کے جوابات پر کارروائی کرنے دیتی ہے۔

  2. منطق کی پرت وہ سرور ہے جو درخواستوں/جوابات پر کارروائی کرتا ہے۔ اکثر اسے سرور پرت بھی کہا جاتا ہے۔ یہ وہ جگہ بھی ہے جہاں تمام منطقی کارروائیاں ہوتی ہیں: ریاضی کے حسابات، ڈیٹا آپریشنز، دیگر خدمات پر کالز یا ڈیٹا اسٹوریج وغیرہ۔

  3. ڈیٹا لیئر ڈیٹا بیس سرور ہے: ہمارا سرور اس کے ساتھ تعامل کرتا ہے۔ یہ پرت ایپلی کیشن کو چلانے کے لیے ضروری تمام معلومات کو محفوظ کرتی ہے۔

اس طرح، ہمارا سرور ڈیٹا تک رسائی کی تمام ذمہ داری قبول کرتا ہے اور صارف کو براہ راست اس تک رسائی کی اجازت نہیں دیتا۔

تین درجے کے فن تعمیر کے فوائد

اس طرح کا فن تعمیر ہمیں بہت سے فوائد دیتا ہے، بشمول:
  1. ایس کیو ایل انجیکشن کے خلاف حفاظت کرنے کی صلاحیت (یہ سرور پر حملہ ہے؛ اس میں ایس کیو ایل کوڈ بھیجنا شامل ہے جو، جب عمل میں آتا ہے، حملہ آور کو ہمارے ڈیٹا بیس کو متاثر کرنے کی اجازت دیتا ہے)۔

  2. ڈیٹا کی علیحدگی جس تک ہم صارف کی رسائی کو کنٹرول کرنا چاہتے ہیں۔

  3. کلائنٹ کو بھیجنے سے پہلے ڈیٹا میں ترمیم کرنے کی صلاحیت۔

  4. اسکیل ایبلٹی (ہماری ایپلیکیشن کو متعدد سرورز تک پھیلانے کی صلاحیت جو ایک ہی ڈیٹا بیس کو استعمال کریں گے۔

  5. صارف کنکشن کے معیار پر کم سخت تقاضے سرور پر ردعمل پیدا کرتے وقت، ہم اکثر ڈیٹا بیس سے بہت سی مختلف معلومات حاصل کرتے ہیں اور اسے فارمیٹ کرتے ہیں، صرف وہی چھوڑ دیتے ہیں جس کی صارف کو ضرورت ہوتی ہے۔ ایسا کرنے سے ان معلومات کی مقدار کم ہو جاتی ہے جو ہم کلائنٹ کو اپنے جواب میں بھیجتے ہیں۔

آرکیٹیکچرل پیٹرن کو کتنی بار استعمال کیا جانا چاہئے؟

اگر آپ فیکٹری کے طریقہ کار کے ڈیزائن پیٹرن سے واقف ہیں، تو آپ نے شاید سوچا ہوگا کہ اسے کب استعمال کرنا ہے۔ بعض اوقات یہ فیصلہ کرنا مشکل ہوتا ہے کہ کیا کرنا ہے: نئے آپریٹر کا استعمال کرتے ہوئے یا فیکٹری کا طریقہ استعمال کرتے ہوئے کوئی چیز بنائیں۔ لیکن وقت گزرنے کے ساتھ ساتھ سمجھ آجاتی ہے۔ جب آرکیٹیکچرل پیٹرن کی بات آتی ہے تو چیزیں تھوڑی مختلف ہوتی ہیں۔ انٹرپرائز فریم ورک کو پروگرامر کو کچھ عام طور پر قبول شدہ پیٹرن کی بنیاد پر پروجیکٹ بنانے کی اجازت دینے کے لیے ڈیزائن کیا گیا ہے۔ اس کے مطابق، اسپرنگ فریم ورک کو سیکھنے سے پہلے، آپ کو کلائنٹ-سرور کے فن تعمیر، تین درجے کے فن تعمیر اور MVC فن تعمیر کو یقینی طور پر سمجھنا چاہیے۔ پریشان نہ ہوں: ہم ابھی MVC فن تعمیر کے بارے میں بات کریں گے۔ حصہ 3۔ HTTP/HTTPS حصہ 4۔ ماون حصہ 5 کی بنیادی باتیں۔ سرولیٹس اور جاوا سرولیٹ API۔ ایک سادہ ویب ایپلیکیشن لکھنا حصہ 6۔ سرولیٹ کنٹینرز حصہ 7۔ MVC (ماڈل-ویو-کنٹرولر) پیٹرن کا تعارف
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION