CodeGym /جاوا بلاگ /Random-UR /حصہ 1۔ بہار اور JavaEE سیکھنے سے پہلے آپ کو کیا جاننے کی ...
John Squirrels
سطح
San Francisco

حصہ 1۔ بہار اور JavaEE سیکھنے سے پہلے آپ کو کیا جاننے کی ضرورت ہے۔

گروپ میں شائع ہوا۔
اگر آپ پہلے ہی Java SE سیکھ چکے ہیں (یا اس کے قریب ہیں)، تو یہ جاوا ڈویلپر کے پیشے کو فتح کرنے کے اپنے اگلے اقدامات کے بارے میں سوچنے کا وقت ہے۔ حصہ 1۔ بہار اور JavaEE سیکھنے سے پہلے آپ کو کیا جاننے کی ضرورت ہے - 1 ایک طرف، آپ کو جاوا کی اچھی سمجھ ہے: آپ جانتے ہیں کہ IDE کے ساتھ کیسے کام کرنا ہے، پروگرام لکھنا ہے، اور بہت کچھ۔ لیکن آپ کو اپنے پروگراموں کے ساتھ آگے کیا کرنا چاہئے؟ آپ انہیں کیسے ٹھنڈا بناتے ہیں اور "انہیں دنیا پر اتارتے ہیں"؟ یہ واضح ہوتا جا رہا ہے کہ اب وقت آگیا ہے کہ انٹرپرائز ٹیکنالوجیز کا مطالعہ کیا جائے۔ اور اب مزہ شروع ہوتا ہے۔ اس سے کوئی فرق نہیں پڑتا ہے کہ آپ کس ٹیکنالوجی کے اسٹیک کے ساتھ شروع کرنے کا فیصلہ کرتے ہیں۔ چاہے یہ JavaEE ہو یا بہار، آپ کو بہت سی ایسی چیزیں ملنے کا امکان ہے جو آپ کی سمجھ سے بہت دور ہیں۔ جاوا کی بنیادی باتوں اور جدید ٹیکنالوجیز کے درمیان علم میں ایک درمیانی قدم باقی ہے جسے آپ کے ضبط اور خود اعتمادی کو برقرار رکھنے کے لیے اٹھانا ضروری ہے جب آپ بڑے پیمانے پر دستاویزات پڑھتے ہیں۔ لہذا، مضامین کی اس سیریز کا مقصد آپ کو کم از کم نظریاتی علم فراہم کرنا ہے جو JavaEE یا Spring کے مزید مطالعہ کے لیے ضروری ہے۔ اس مواد کو 7 حصوں میں تقسیم کیا گیا ہے:
  1. ہم نیٹ ورکنگ کے بارے میں تھوڑی بات کریں گے۔
  2. ہم کلائنٹ سرور اور تین درجے کے فن تعمیر کا جائزہ لیں گے۔
  3. ہم HTTP/HTTPS پروٹوکول کو دریافت کریں گے۔
  4. ہم وہ سب کچھ سیکھیں گے جو آپ کو Maven کے بارے میں جاننے کی ضرورت ہے۔
  5. ہم لاگنگ کے بارے میں بات کر رہے ہیں۔
  6. سرولیٹ کنٹینرز کے بارے میں۔
  7. اور آخر میں، MVC کے بارے میں.

حصہ 1۔ ہم نیٹ ورکنگ کے بارے میں تھوڑی بات کریں گے۔

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

OSI ماڈل

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

    یہ تہہ ہماری دلچسپی نہیں رکھتی۔

  2. ڈیٹا لنک پرت — یہ پرت ڈیٹا کو نیٹ ورک نوڈس میں منتقل کرنے اور جسمانی اشیاء کے لیے ڈیٹا ٹرانسمیشن چینلز بنانے کے لیے ذمہ دار ہے۔

    یہ پرت ہمیں اس وقت تک دلچسپی نہیں دیتی جب تک کہ آپ ڈیٹا لنکس قائم کرنے والے ہارڈ ویئر کے لیے فرم ویئر نہیں لکھنا چاہتے۔

  3. نیٹ ورک کی تہہ — یہ پرت انفرادی نیٹ ورک کے صارفین کے پتے اور ان کے راستوں کا تعین کرنے کے لیے ہے۔ اس پرت کی تفصیلات، یعنی نیٹ ورک ایڈریسز کے بارے میں مزید جاننے کی اہمیت ہے۔

    نیٹ ورک ایڈریسز کی وضاحت ایک خاص پروٹوکول کے ذریعے کی جاتی ہے: سب سے عام IPv4 (انٹرنیٹ پروٹوکول ورژن 4) ہے۔ یہ وہ پروٹوکول ہے جسے کسی ویب پروگرامر کو دوسرے نیٹ ورک صارف سے رابطہ کرنے کے لیے استعمال کرنے کی ضرورت ہوتی ہے۔

    ایک IPv4 ایڈریس چار بائٹ ویلیوز پر مشتمل ہوتا ہے جو پیریڈز سے الگ ہوتی ہے، مثال کے طور پر: 192.0.2.235۔ آپ کو یاد رکھنا چاہیے کہ یہ قدریں بائٹس ہیں، جس کا مطلب ہے کہ وہ رینج 0..255 کے اندر ہیں۔

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

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

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

    پورٹ 0 سے 65535 کی حد میں ایک نمبر ہے۔ اسے بڑی آنت کے بعد IP ایڈریس میں شامل کیا جاتا ہے: 192.0.2.235:8080 ۔ لیکن آپ تمام بندرگاہوں کو مخصوص رینج میں استعمال نہیں کر سکتے ہیں: ان میں سے کچھ آپریٹنگ سسٹم کے لیے مخصوص ہیں، باقی کو مخصوص مقاصد کے لیے استعمال کیا جاتا ہے۔ ہم مختلف بندرگاہوں کے مقاصد پر غور نہیں کریں گے۔ ابھی کے لئے، یہ نیٹ ورک پر مواصلات کے عمل میں ان کے کردار کو سمجھنے کے لئے کافی ہے.

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

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

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

  6. پریزنٹیشن پرت — یہ پرت ڈیٹا کو انکوڈنگ/ڈی کوڈنگ کے لیے ذمہ دار ہے۔ ظاہر ہے، اگر ہمیں کسی دوسرے صارف کو سٹرنگ "Hello web" بھیجنے کی ضرورت ہو، تو اسے پہلے بائنری کوڈ میں تبدیل کیا جاتا ہے، اور اس کے بعد ہی اسے بھیجا جاتا ہے۔ وصول کنندہ تک پہنچنے پر، پیغام واپس تبدیل ہو جاتا ہے (ڈی کوڈ کیا جاتا ہے)، اور وصول کنندہ اصل تار دیکھ سکتا ہے۔ یہ کارروائیاں پریزنٹیشن پرت پر ہوتی ہیں۔

  7. ایپلی کیشن پرت ہمارے لیے سب سے دلچسپ پرت ہے۔ یہ ایپلیکیشنز کو نیٹ ورک کے ساتھ بات چیت کرنے کی اجازت دیتا ہے۔ اس پرت پر، ہم پیغامات وصول کرتے اور بھیجتے ہیں، اور خدمات اور ریموٹ ڈیٹا بیس سے درخواستیں کرتے ہیں۔

    اس پرت میں بہت سے پروٹوکول استعمال کیے گئے ہیں: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET اور یقیناً HTTP/HTTPS۔ پروٹوکول ایک عالمگیر معاہدہ ہے جس پر ہم بات چیت کرتے وقت عمل کرتے ہیں۔ ہم یقینی طور پر HTTP/HTTPS کی ایک الگ تفصیلی بحث فراہم کریں گے۔

حصہ 1۔ بہار اور JavaEE سیکھنے سے پہلے آپ کو کیا جاننے کی ضرورت ہے - 2ہمیں یہ جاننے کی ضرورت نہیں ہے کہ ماڈل کی ہر پرت کیسے کام کرتی ہے۔ اہم بات یہ ہے کہ عناصر کے آپریشن کے پیچھے ان اصولوں کو سمجھنا جن کے ساتھ ہمیں ویب ایپلیکیشنز لکھتے وقت کام کرنا پڑے گا، یعنی:
  • IP ایڈریس — نیٹ ورک میں صارف کا پتہ
  • پورٹ — ایک مخصوص صارف کی درخواست کا پتہ
  • سیشن - ایک ہستی جو دو صارفین کے درمیان رابطے کی پوری مدت میں موجود ہے۔
  • ایپلیکیشن پروٹوکول (HTTP/HTTPS) — یہ وہ اصول ہیں جن کی ہم پیغامات تحریر اور بھیجتے وقت عمل کریں گے۔
مثال کے طور پر جب ہم کسی آن لائن اسٹور پر جاتے ہیں تو ہم اس کا پتہ اور پورٹ بتاتے ہیں۔ ہمارے پہلے دورے پر، ایک سیشن بنایا جاتا ہے۔ اسٹور سیشن میں معلومات کو ریکارڈ کرسکتا ہے۔ مثال کے طور پر، اسٹور ان اشیاء کے بارے میں معلومات محفوظ کر سکتا ہے جو ہم نے شاپنگ کارٹ میں چھوڑی ہیں۔ اگر ہم آن لائن سٹور کے ساتھ ٹیب کو بند کرتے ہیں اور پھر بعد میں اس میں واپس چلے جاتے ہیں، تو ہماری اشیاء اب بھی کارٹ میں رہیں گی کیونکہ وہ سیشن میں محفوظ ہو جاتی ہیں۔ بلاشبہ، وہ تمام معلومات جو ہمیں اسٹور سے موصول ہوتی ہیں جو ہم HTTP/HTTPS پروٹوکول کے ذریعے حاصل کرتے ہیں، اور ہمارا براؤزر جانتا ہے کہ اس پر کیسے عمل کرنا ہے۔ آپ یہ کہہ کر اعتراض کر سکتے ہیں کہ آپ نے براؤزر میں ایڈریس اور پورٹ کبھی درج نہیں کیا، اور آپ جزوی طور پر درست ہوں گے۔ آپ نے جو کیا وہ ڈومین کا نام درج کرنا تھا، جسے DNS سرور نے تبدیل کیا تھا۔ آئیے اس پر ایک بہتر نظر ڈالیں کہ یہاں کیا ہے۔

DNS (ڈومین نیم سسٹم)

جیسا کہ ہم پہلے ہی سیکھ چکے ہیں، ہر نیٹ ورک صارف کا ایک منفرد پتہ ہوتا ہے۔ اگر ہم ایپلی کیشن کے بارے میں بات کر رہے ہیں، تو اس کا منفرد پتہ IPv4-address:port ہوگا ۔ اگر آپ کو یہ پتہ معلوم ہے تو آپ براہ راست اس ایپلی کیشن تک رسائی حاصل کر سکتے ہیں۔ تصور کریں کہ ہم نے ایک ویب ایپلیکیشن لکھی ہے جو حقیقی وقت میں تمام ممالک میں ہوا کا اوسط درجہ حرارت دکھاتی ہے۔ ہم نے اسے پورٹ 8080 پر 226.69.237.119 ایڈریس کے ساتھ سرور پر تعینات کیا ہے۔ ہم سے معلومات حاصل کرنے کے قابل ہونے کے لیے، صارف کو براؤزر میں 5 نمبر درج کرنے ہوں گے: 226.69.237.119:8080۔ لوگ نمبروں کے سیٹ کو یاد کرنا پسند نہیں کرتے: ہم میں سے بہت سے لوگ دو سے زیادہ فون نمبر یاد نہیں رکھ سکتے۔ اسی لیے ڈومین نیم سسٹم ایجاد ہوا۔ ہم اپنے پتے کے لیے ایک "عرف" بنا سکتے ہیں، مثال کے طور پر، world-temperature.com۔ یاد رکھنے میں مشکل پانچ نمبروں پر مشتمل ایڈریس کا استعمال کرتے ہوئے ہمیں تلاش کرنے کے بجائے، صارف براؤزر کے ایڈریس بار میں ہمارا ڈومین نام درج کر سکتا ہے۔ DNS سرورز ہیں جو ڈومین کے ناموں کو اصلی پتوں پر نقشہ بناتے ہیں۔ مثال کے طور پر، جب کوئی صارف ایک براؤزر میں codegym.cc داخل کرتا ہے، تو اس کی درخواست DNS سرور کو بھیجی جاتی ہے، جو اسے اصل ایڈریس میں تبدیل کر دیتا ہے۔ حصہ 1۔ بہار اور JavaEE سیکھنے سے پہلے آپ کو کیا جاننے کی ضرورت ہے - 4یہ ہمارے لیے سمجھنا ضروری ہے، کیونکہ ہماری ایپلیکیشنز ریموٹ سروسز کو ڈومین ناموں اور حقیقی پتوں سے کال کریں گی۔ ہمیں یہ سمجھنے کی ضرورت ہے کہ دونوں صورتوں میں خدمات ایک جیسی ہیں۔ ابھی کے لیے یہی ہے! اس آرٹیکل میں، ہم نے نیٹ ورکنگ کی بنیادی باتوں کو دیکھا، جو آپ کے ویب پروگرامنگ سیکھنے کے ساتھ ہی کام آئے گی۔ اگلی بار ہم دیکھیں گے کہ کلائنٹ-سرور کا فن تعمیر کیا ہے اور اسے سمجھنا کیوں بہت ضروری ہے۔ حصہ 2۔ آئیے سافٹ ویئر آرکیٹیکچر کے بارے میں کچھ بات کرتے ہیں حصہ 3۔ HTTP/HTTPS حصہ 4۔ ماون حصہ 5 کی بنیادی باتیں۔ سرولیٹس اور جاوا سرولیٹ API۔ ایک سادہ ویب ایپلیکیشن لکھنا حصہ 6۔ سرولیٹ کنٹینرز حصہ 7۔ MVC (ماڈل-ویو-کنٹرولر) پیٹرن کا تعارف
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION