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

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

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

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

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

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

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

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

  3. نیٹ ورک آسان ہے: یہ کلائنٹ اور سرور کے درمیان معلومات کے تبادلے کو یقینی بناتا ہے۔

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

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

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

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

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

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

  3. ڈیٹا لیئر ڈیٹا بیس سرور ہے: ہمارا سرور اس تک رسائی حاصل کرتا ہے۔ یہ پرت تمام ضروری معلومات کو ذخیرہ کرتی ہے جو ایپلیکیشن آپریشن کے دوران استعمال کرتی ہے۔

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

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

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

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

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

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

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

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

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