JavaRush /جاوا بلاگ /Random-UR /حصہ 1۔ بہار اور JavaEE سیکھنے سے پہلے آپ کو کیا جاننے کی ...

حصہ 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. 1. طبعی سطح - یہاں طبیعیات کے قوانین اپنا کام کرتے ہیں، اور انسان کا کام یہ ہے کہ وہ اسے اپنے مقاصد کے لیے استعمال کرے اور اسے ہدایت کرے۔ مثال کے طور پر، کیبلز بنانا اور انہیں نیٹ ورک کے اراکین کے سامنے رکھنا۔

    ہمیں کوئی دلچسپی نہیں ہے۔

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

    Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.

  3. Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.

    Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.

    IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.

    IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.

  4. Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.

    Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.

    Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.

  5. Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.

    Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.

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