جيڪڏهن توهان اڳ ۾ ئي مڪمل ڪري چڪا آهيو (يا ويجهو آهيو) جاوا SE سکڻ، پوءِ اهو وقت آهي سوچڻ جو توهان جي ايندڙ قدمن بابت جاوا ڊولپر جي پيشي کي فتح ڪرڻ ۾. حصو 1. بهار ۽ JavaEE سکڻ کان پهريان توهان کي ڄاڻڻ جي ضرورت آهي - 1 هڪ طرف، توهان وٽ اڳ ۾ ئي جاوا جي سٺي ڄاڻ آهي: توهان ڄاڻو ٿا ته هڪ IDE سان ڪيئن ڪم ڪجي، پروگرام لکڻ، ۽ گهڻو ڪجهه. پر توهان کي پنهنجي پروگرامن سان اڳتي ڇا ڪرڻ گهرجي؟ توهان انهن کي ڪيئن ٿڌو ڪيو ٿا اڃا تائين ۽ "انهن کي دنيا تي آزاد ڪريو"؟ اهو واضح ٿي رهيو آهي ته اهو وقت آهي انٽرنيشنل ٽيڪنالاجيز جو مطالعو ڪرڻ جو. ۽ هاڻي مزو شروع ٿئي ٿو. اهو مسئلو ناهي ته توهان ڪهڙي ٽيڪنالاجي اسٽيڪ سان شروع ڪرڻ جو فيصلو ڪيو. ڇا اهو JavaEE هجي يا بهار، توهان کي ممڪن آهي ته انهن شين جي هڪ ٽون ۾ اچي وڃن جيڪي توهان جي سمجهه کان تمام گهڻو پري آهن. جاوا بنياديات ۽ ترقي يافته ٽيڪنالاجيز جي وچ ۾ علم ۾ هڪ وچولي قدم آهي جيڪو توهان جي خود قابو ۽ خود اعتمادي کي برقرار رکڻ لاءِ وٺڻ گهرجي جيئن توهان وڏي دستاويز پڙهي رهيا آهيو. تنهن ڪري، مضمونن جي هن سلسلي جو مقصد توهان کي گهٽ ۾ گهٽ نظرياتي ڄاڻ ڏيڻ آهي جيڪا توهان جي جاوا اي اي يا بهار جي وڌيڪ مطالعي لاءِ ضروري آهي. هي مواد 7 حصن ۾ ورهايل آهي:
  1. اسان نيٽ ورڪنگ بابت ٿورو ڳالهائينداسين.
  2. اسان جانچ ڪنداسين ڪلائنٽ-سرور ۽ ٽي-ٽيئر فن تعمير.
  3. اسان ڳولينداسين HTTP/HTTPS پروٽوڪول.
  4. اسان سڀ ڪجهه سکندا سين جيڪا توهان کي Maven بابت ڄاڻڻ جي ضرورت آهي.
  5. اسان لاگنگ بابت ڳالهائي رهيا آهيون.
  6. سروليٽ ڪنٽينرز بابت.
  7. ۽ نيٺ، MVC بابت.

حصو 1. اسان نيٽ ورڪنگ بابت ٿورو ڳالهائينداسين.

اچو ته ان ڳالهه سان شروع ڪريون ته سڀ کان وڌيڪ اهم ڳالهه اها آهي ته ڇا هر سماجي نيٽ ورڪ، ويب سروس ۽ ويب ايپ، انسٽنٽ ميسينجر ۽ سادي ويب سائيٽ ٺاهيل آهي — نيٽ ورڪ ( هن مضمونن جي سلسلي ۾، اصطلاح ”نيٽورڪ“ جو مطلب آهي انٽرنيٽ ) . نيٽ ورڪ ڪمپيوٽرن جي وڏي تعداد تي مشتمل آهي: اهي هڪ ٻئي سان ڳنڍيل آهن ۽ گفتگو ڪرڻ جي قابل آهن. اهو سمجهڻ ضروري آهي ته اهي ڪيئن ڪندا آهن، ڇاڪاڻ ته ويب ايپليڪيشنون معلومات هڪ ڪمپيوٽر کان ٻئي ڏانهن موڪليندا آهن.

OSI ماڊل

اوپن سسٽم انٽر ڪنيڪشن (او ايس آئي) ماڊل هڪ نيٽ ورڪ تعمير ڪرڻ لاء هڪ ٽائرڊ انداز ٺاهي ٿو. اهو واضح طور تي ڏيکاري ٿو ته ڪيئن ۽ ڪهڙي پرت تي ساڳئي نيٽ ورڪ جا ادارا هڪ ٻئي سان رابطو ڪري سگهن ٿا. مجموعي ۾، هي ماڊل 7 تہن تي مشتمل آهي:
7 درخواست
6 پيشڪش
5 سيشن
4 ٽرانسپورٽ
3 نيٽ ورڪ
2 ڊيٽا لنڪ
1 جسماني
ماڊل کي تجريد جي تہن ۾ ٽوڙڻ ڊولپرز کي ٽرانسپورٽ پرت تي ڪم ڪرڻ جي اجازت ڏئي ٿو، مثال طور، نيٽ ورڪ ۽ سيشن پرت جي سطح تي عمل درآمد جي تفصيل بابت سوچڻ جي ضرورت ناهي. اهو طريقو پروگرامنگ ۾ پڻ استعمال ٿيندو آهي. اچو ته OSI ماڊل جي سڀني پرتن تي غور ڪريون، ۽ اهو طئي ڪريون ته ڪهڙا اسان لاءِ دلچسپيءَ جا آهن:
  1. جسماني پرت - هي پرت فزڪس جي قانونن سان تعلق رکي ٿي ۽ انهن کي اسان جي مقصدن لاءِ ڪيئن استعمال ڪجي. مثال طور، ڪيبل ٺاهڻ ۽ انهن کي نيٽ ورڪ ۾ ادارن ڏانهن رکڻ.

    هي پرت اسان جي دلچسپي نه آهي.

  2. ڊيٽا لنڪ پرت - هي پرت نيٽورڪ نوڊس ڏانهن ڊيٽا منتقل ڪرڻ ۽ جسماني شين لاءِ ڊيٽا ٽرانسميشن چينلز ٺاهڻ جو ذميوار آهي.

    هي پرت اسان سان دلچسپي نه رکي جيستائين توهان هارڊويئر لاءِ firmware لکڻ نه ٿا چاهيو جيڪو ڊيٽا لنڪس قائم ڪري ٿو.

  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. پريزنٽيشن پرت - هي پرت انڪوڊنگ/ڊيڪوڊنگ ڊيٽا لاءِ ذميوار آهي. ظاهر آهي، جيڪڏهن اسان کي "هيلو ويب" واري اسٽرنگ کي ڪنهن ٻئي صارف ڏانهن موڪلڻ جي ضرورت آهي، اهو پهريون ڀيرو (انڪوڊ ٿيل) بائنري ڪوڊ ۾ تبديل ڪيو ويندو آهي، ۽ صرف پوء اهو موڪليو ويندو آهي. وصول ڪندڙ تائين پهچڻ تي، پيغام واپس تبديل ڪيو ويندو آهي (ڊيڪوڊ ٿيل)، ۽ وصول ڪندڙ اصل تار ڏسي سگهي ٿو. اهي ڪارناما پيش ڪرڻ واري پرت تي ٿين ٿا.

  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 هوندو . جيڪڏھن توھان ھي پتو ڄاڻو ٿا، توھان سڌو سنئون ايپليڪيشن تائين رسائي ڪري سگھو ٿا. تصور ڪريو ته اسان هڪ ويب ايپليڪيشن لکي آهي جيڪا حقيقي وقت ۾ سڀني ملڪن ۾ سراسري هوا جي درجه حرارت ڏيکاري ٿي. اسان ان کي سرور تي ايڊريس 226.69.237.119 سان، پورٽ 8080 تي لڳايو. اسان کان معلومات حاصل ڪرڻ جي قابل ٿيڻ لاءِ، صارف کي برائوزر ۾ 5 نمبر داخل ڪرڻ گهرجن: 226.69.237.119:8080. ماڻهو انگن جي سيٽن کي ياد ڪرڻ پسند نٿا ڪن: اسان مان گهڻا ٻه فون نمبر کان وڌيڪ ياد نٿا ڪري سگهن. اهو ئي سبب آهي ته ڊومين نالو سسٽم ايجاد ڪيو ويو. اسان پنهنجي ايڊريس لاءِ ”عرف“ ٺاهي سگهون ٿا، مثال طور، world-temperature.com. اسان کي ڳولڻ جي بدران هڪ پتو استعمال ڪندي پنجن مشڪل نمبرن تي مشتمل آهي، صارف برائوزر جي ايڊريس بار ۾ اسان جي ڊومين جو نالو داخل ڪري سگهي ٿو. هتي DNS سرور آهن جيڪي ڊومين جا نالا حقيقي پتي ڏانهن نقشي ۾. مثال طور، جڏهن ڪو صارف هڪ برائوزر ۾ codegym.cc داخل ڪري ٿو، ته هن جي درخواست DNS سرور ڏانهن موڪلي وئي آهي، جيڪا ان کي اصل ايڊريس ۾ بدلائي ٿي. حصو 1. بهار ۽ JavaEE سکڻ کان اڳ اوھان کي ڇا ڄاڻڻ گھرجي - 4اھو سمجھڻ لاءِ اسان لاءِ ضروري آھي، ڇاڪاڻ⁠تہ اسان جون ايپليڪيشنون ريموٽ سروسز کي ڪال ڪنديون ڊومين نالن ۽ حقيقي ايڊريس ذريعي. اسان کي اهو سمجهڻ گهرجي ته ٻنهي صورتن ۾ خدمتون ساڳيون آهن. اهو هاڻي لاء آهي! هن آرٽيڪل ۾، اسان نيٽ ورڪنگ جي بنيادي ڳالهين تي غور ڪيو، جيڪي ڪم ۾ ايندا جيئن توهان ويب پروگرامنگ سکڻ شروع ڪندا. ايندڙ وقت اسان ڏسنداسين ته ڪلائنٽ-سرور آرڪيٽيڪچر ڇا آهي ۽ اهو سمجهڻ ايترو ضروري ڇو آهي. حصو 2. اچو ته سافٽ ويئر آرڪيٽيڪچر بابت ڪجھ ڳالهايون حصو 3. HTTP/HTTPS حصو 4. Maven جا بنيادي حصا حصو 5. Servlets ۽ Java Servlet API. هڪ سادي ويب ايپليڪيشن لکڻ حصو 6. سروليٽ ڪنٽينرز حصو 7. متعارف ڪرائڻ MVC (ماڊل-ويو-ڪنٽرولر) نموني