একদিকে, আপনি ইতিমধ্যেই জাভা সম্পর্কে ভাল ধারণা পেয়েছেন: আপনি জানেন কিভাবে একটি IDE এর সাথে কাজ করতে হয়, প্রোগ্রাম লিখতে হয় এবং আরও অনেক কিছু। কিন্তু আপনি আপনার প্রোগ্রাম সঙ্গে পরবর্তী কি করা উচিত? আপনি কিভাবে তাদের শান্ত করবেন এবং "বিশ্বে তাদের প্রকাশ করবেন"? এটা স্পষ্ট হয়ে উঠছে যে এন্টারপ্রাইজ প্রযুক্তির অধ্যয়ন করার সময় এসেছে। এবং এখন মজা শুরু হয়. আপনি কোন প্রযুক্তির স্ট্যাক দিয়ে শুরু করার সিদ্ধান্ত নেন তা বিবেচ্য নয়। জাভাইই হোক বা স্প্রিং, আপনি এমন এক টন জিনিস দেখতে পাবেন যা আপনার বোধগম্যতার বাইরে। জাভা বেসিক এবং উন্নত প্রযুক্তির মধ্যে জ্ঞানের একটি মধ্যবর্তী পদক্ষেপ রয়েছে যা আপনার স্ব-নিয়ন্ত্রণ এবং আত্মবিশ্বাসের যা অবশিষ্ট থাকে তা ধরে রাখার জন্য অবশ্যই গ্রহণ করতে হবে যখন আপনি প্রচুর ডকুমেন্টেশন পড়বেন। অতএব,জাভাইই বা স্প্রিং নিয়ে আপনার আরও অধ্যয়নের জন্য আপনাকে প্রয়োজনীয় ন্যূনতম তাত্ত্বিক জ্ঞান প্রদান করা। এই উপাদান 7 অংশে বিভক্ত করা হয়:
- আমরা নেটওয়ার্কিং সম্পর্কে একটু কথা বলব।
- আমরা ক্লায়েন্ট-সার্ভার এবং তিন-স্তরের আর্কিটেকচার পরীক্ষা করব।
- আমরা HTTP/HTTPS প্রোটোকলগুলি অন্বেষণ করব৷
- ম্যাভেন সম্পর্কে আপনার যা জানা দরকার আমরা তা শিখব।
- আমরা লগিং সম্পর্কে কথা বলছি.
- সার্লেট পাত্র সম্পর্কে.
- এবং অবশেষে, MVC সম্পর্কে।
পার্ট 1. আমরা নেটওয়ার্কিং সম্পর্কে একটু কথা বলব।
প্রতিটি সোশ্যাল নেটওয়ার্ক, ওয়েব পরিষেবা এবং ওয়েব অ্যাপ, ইনস্ট্যান্ট মেসেঞ্জার এবং সাধারণ ওয়েবসাইট কী তৈরি করা হয়েছে — নেটওয়ার্ক ( এই সিরিজের নিবন্ধগুলির প্রেক্ষাপটে, "নেটওয়ার্ক" শব্দের অর্থ ইন্টারনেট ) সম্পর্কে কথা বলে সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলি দিয়ে শুরু করা যাক . নেটওয়ার্কটিতে প্রচুর সংখ্যক কম্পিউটার রয়েছে: তারা আন্তঃসংযুক্ত এবং যোগাযোগ করতে সক্ষম। তারা কীভাবে এটি করে তা বোঝা গুরুত্বপূর্ণ, কারণ ওয়েব অ্যাপ্লিকেশনগুলি এক কম্পিউটার থেকে অন্য কম্পিউটারে তথ্য পাঠায়।ওএসআই মডেল
ওপেন সিস্টেম ইন্টারকানেকশন (OSI) মডেল একটি নেটওয়ার্ক তৈরি করার জন্য একটি টায়ার্ড পদ্ধতি তৈরি করে। এটি স্পষ্টভাবে দেখায় কিভাবে এবং কোন স্তরে একই নেটওয়ার্কের সত্তা একে অপরের সাথে যোগাযোগ করতে পারে। সব মিলিয়ে, এই মডেলটিতে 7 টি স্তর রয়েছে:| 7 | আবেদন |
| 6 | উপস্থাপনা |
| 5 | সেশন |
| 4 | পরিবহন |
| 3 | অন্তর্জাল |
| 2 | ডাটা লিংক |
| 1 | শারীরিক |
-
ভৌত স্তর — এই স্তরটি পদার্থবিদ্যার আইন এবং কীভাবে সেগুলিকে আমাদের উদ্দেশ্যে ব্যবহার করতে হয় তা নিয়ে আলোচনা করে। উদাহরণস্বরূপ, তারগুলি তৈরি করা এবং সেগুলিকে নেটওয়ার্কের সত্তাগুলিতে স্থাপন করা।
এই স্তর আমাদের আগ্রহী না.
-
ডেটা লিঙ্ক স্তর — এই স্তরটি নেটওয়ার্ক নোডে ডেটা প্রেরণ এবং ভৌত বস্তুর জন্য ডেটা ট্রান্সমিশন চ্যানেল তৈরি করার জন্য দায়ী।
এই স্তরটি আমাদের আগ্রহী করে না যদি না আপনি হার্ডওয়্যারের জন্য ফার্মওয়্যার লিখতে চান যা ডেটা লিঙ্ক স্থাপন করে।
-
নেটওয়ার্ক স্তর — এই স্তরটি পৃথক নেটওয়ার্ক ব্যবহারকারীদের ঠিকানা এবং তাদের যাওয়ার পথ নির্ধারণের জন্য। এই স্তরের বিশদ বিবরণ, যথা, নেটওয়ার্ক ঠিকানা সম্পর্কে আরও জানার মূল্য রয়েছে।
নেটওয়ার্ক ঠিকানাগুলি একটি বিশেষ প্রোটোকল দ্বারা সংজ্ঞায়িত করা হয়: সবচেয়ে সাধারণ হল IPv4 (ইন্টারনেট প্রোটোকল সংস্করণ 4)। এটি এমন একটি প্রোটোকল যা একজন ওয়েব প্রোগ্রামারকে অন্য নেটওয়ার্ক ব্যবহারকারীর সাথে যোগাযোগ করতে ব্যবহার করতে হবে।
একটি IPv4 ঠিকানায় পিরিয়ড দ্বারা পৃথক করা চারটি বাইট মান থাকে, উদাহরণস্বরূপ: 192.0.2.235৷ আপনার মনে রাখা উচিত যে এই মানগুলি হল বাইট, যার মানে হল সেগুলি 0..255 পরিসরের মধ্যে রয়েছে৷
আইপি ঠিকানা, ঘুরে, ক্লাসে বিভক্ত করা হয়। আমরা কেবল নিজেদেরকে সংখ্যার একটি সুন্দর সমন্বয় বরাদ্দ করতে পারি না, তবে আমরা এখানে খুব গভীরে যাব না। এটি বোঝার জন্য যথেষ্ট যে একটি IP ঠিকানা অনন্যভাবে একটি নেটওয়ার্ক ব্যবহারকারীকে সনাক্ত করে এবং সেই ব্যবহারকারীর সাথে যোগাযোগ করতে ব্যবহার করা যেতে পারে।
-
ট্রান্সপোর্ট লেয়ার — এই লেয়ারটি অ্যাড্রেসের কাছে তথ্য সরবরাহ করে। এটি সম্পন্ন করার জন্য বিভিন্ন প্রোটোকল ব্যবহার করা হয়। আপাতত, আমরা তাদের প্রতি আগ্রহী নই। আমরা একটি পোর্টের ধারণায় অনেক বেশি আগ্রহী , যা এই স্তরে উপস্থিত হয়।
পোর্টগুলি একটি কম্পিউটারে একটি নির্দিষ্ট অ্যাপ্লিকেশন সনাক্ত করার জন্য দায়ী। উদাহরণস্বরূপ, ধরুন আপনি জাভাতে একটি চ্যাট অ্যাপ লিখেছেন, এটি 2টি কম্পিউটারে ইনস্টল করুন এবং আপনার বন্ধুকে একটি বার্তা পাঠাতে চান। আপনার বার্তা প্যাকেজ করা হয়েছে, একটি নির্দিষ্ট আইপি ঠিকানায় পাঠানো হয়েছে, এবং আপনার বন্ধুর কাছে বিতরণ করা হয়েছে, কিন্তু তার কম্পিউটার প্রাপ্ত তথ্যের সাথে কী করতে হবে তা জানে না, কারণ এটি বুঝতে পারে না কোন অ্যাপ্লিকেশনটি আপনার বার্তাটি প্রক্রিয়া করবে৷ যখন নেটওয়ার্ক সত্তা যোগাযোগ করে, তখন কোন অ্যাপ্লিকেশনটি তথ্য প্রক্রিয়া করবে তা নির্দেশ করতে পোর্টগুলি ব্যবহার করা হয়।
পোর্ট হল 0 থেকে 65535 পরিসরের একটি সংখ্যা। এটি একটি কোলনের পরে IP ঠিকানায় যোগ করা হয়: 192.0.2.235:8080 । তবে আপনি নির্দিষ্ট পরিসরে সমস্ত পোর্ট ব্যবহার করতে পারবেন না: তাদের মধ্যে কিছু অপারেটিং সিস্টেমের জন্য সংরক্ষিত, অন্যগুলি প্রথাগতভাবে নির্দিষ্ট উদ্দেশ্যে ব্যবহৃত হয়। আমরা বিভিন্ন বন্দরের উদ্দেশ্য অনুসন্ধান করব না। আপাতত, নেটওয়ার্কে যোগাযোগের প্রক্রিয়ায় তাদের ভূমিকা বোঝা যথেষ্ট।
-
সেশন লেয়ার — এই লেয়ার যোগাযোগ সেশন তৈরি করে এবং পরিচালনা করে। এই স্তরে, অ্যাপ্লিকেশনগুলির জন্য ইন্টারঅ্যাক্ট করা, পরিষেবা-স্তরের অনুরোধ পাঠানো সম্ভব হয়৷ আমাদের যা জানা দরকার তা হল এই স্তরে দুটি ব্যবহারকারীর মধ্যে একটি সেশন খোলা হয় এবং আমাদের সেশনের সাথে কাজ করতে হবে।
একটি সেশন হল একটি সত্তা তৈরি করা হয় যখন দুটি ব্যবহারকারীর মধ্যে একটি সংযোগ স্থাপন করা হয়। এটি একটি ব্যবহারকারী সম্পর্কে এবং ব্যবহারকারীর সাথে মিথস্ক্রিয়া ইতিহাস সম্পর্কে প্রয়োজনীয় তথ্য সংরক্ষণ করতে পারে। একটি গুরুত্বপূর্ণ বিশদ হল যে যখন তথ্য বিনিময় বন্ধ হয়ে যায়, সেশনটি অদৃশ্য হয়ে যায় না। পরিবর্তে, এটি একটি নির্দিষ্ট সময়ের জন্য তার অবস্থা বজায় রাখে, যাতে ব্যবহারকারীরা বিরতির পরে তথ্য বিনিময় চালিয়ে যেতে পারেন।
যদি একটি অ্যাপ্লিকেশন একই সময়ে একাধিক ব্যবহারকারীর সাথে যোগাযোগ করে, তাহলে একটি সংশ্লিষ্ট সংখ্যক সংযোগ (এবং এইভাবে সেশন) প্রতিষ্ঠিত হয়। প্রতিটি সেশনের একটি অনন্য শনাক্তকারী (আইডি) থাকে , যা অ্যাপ্লিকেশনটিকে তাদের সাথে যোগাযোগকারী ব্যবহারকারীদের মধ্যে পার্থক্য করতে দেয়৷
-
উপস্থাপনা স্তর — এই স্তরটি ডেটা এনকোডিং/ডিকোডিংয়ের জন্য দায়ী। স্পষ্টতই, যদি আমাদের অন্য ব্যবহারকারীকে "হ্যালো ওয়েব" স্ট্রিংটি পাঠাতে হয়, এটি প্রথমে বাইনারি কোডে (এনকোড করা) রূপান্তরিত হয় এবং শুধুমাত্র তারপরে এটি পাঠানো হয়। প্রাপকের কাছে পৌঁছানোর পরে, বার্তাটি আবার রূপান্তরিত হয় (ডিকোড করা হয়), এবং প্রাপক আসল স্ট্রিংটি দেখতে পারে। এই ক্রিয়াগুলি উপস্থাপনা স্তরে সঞ্চালিত হয়।
-
অ্যাপ্লিকেশন স্তর আমাদের জন্য সবচেয়ে আকর্ষণীয় স্তর. এটি অ্যাপ্লিকেশনগুলিকে নেটওয়ার্কের সাথে যোগাযোগ করার অনুমতি দেয়। এই স্তরে, আমরা বার্তা গ্রহণ করি এবং প্রেরণ করি এবং পরিষেবা এবং দূরবর্তী ডেটাবেসে অনুরোধ করি।
এই স্তরে ব্যবহৃত অনেক প্রোটোকল রয়েছে: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET এবং অবশ্যই, HTTP/HTTPS। একটি প্রোটোকল হল একটি সর্বজনীন চুক্তি যা আমরা যোগাযোগ করার সময় মেনে চলি। আমরা অবশ্যই HTTP/HTTPS এর একটি পৃথক বিস্তারিত আলোচনা প্রদান করব।
মডেলের প্রতিটি স্তর কীভাবে কাজ করে তা আমাদের জানার দরকার নেই। মূল জিনিসটি হল ওয়েব অ্যাপ্লিকেশনগুলি লেখার সময় যে উপাদানগুলির সাথে আমাদের কাজ করতে হবে সেগুলির পরিচালনার পিছনের নীতিগুলি বোঝা, যথা:
- IP ঠিকানা — নেটওয়ার্কে ব্যবহারকারীর ঠিকানা
- পোর্ট - একটি নির্দিষ্ট ব্যবহারকারীর অ্যাপ্লিকেশনের ঠিকানা
- সেশন - একটি সত্তা যা দুই ব্যবহারকারীর মধ্যে যোগাযোগের পুরো সময় জুড়ে বিদ্যমান থাকে
- অ্যাপ্লিকেশন প্রোটোকল (HTTP/HTTPS) — এইগুলি হল নিয়ম যা আমরা বার্তা রচনা এবং পাঠানোর সময় অনুসরণ করব৷
DNS (ডোমেইন নেম সিস্টেম)
আমরা ইতিমধ্যে শিখেছি, প্রতিটি নেটওয়ার্ক ব্যবহারকারীর একটি অনন্য ঠিকানা আছে। যদি আমরা অ্যাপ্লিকেশন সম্পর্কে কথা বলি, তাহলে এর অনন্য ঠিকানা হবে IPv4-address:port । আপনি যদি এই ঠিকানাটি জানেন তবে আপনি সরাসরি অ্যাপ্লিকেশনটি অ্যাক্সেস করতে পারেন। কল্পনা করুন যে আমরা একটি ওয়েব অ্যাপ্লিকেশন লিখেছি যা রিয়েল টাইমে সমস্ত দেশে গড় বায়ু তাপমাত্রা প্রদর্শন করে। আমরা পোর্ট 8080-এ 226.69.237.119 ঠিকানা সহ একটি সার্ভারে এটি স্থাপন করেছি। আমাদের কাছ থেকে তথ্য পেতে সক্ষম হওয়ার জন্য, ব্যবহারকারীকে অবশ্যই ব্রাউজারে 5টি নম্বর লিখতে হবে: 226.69.237.119:8080৷ লোকেরা সংখ্যার সেট মুখস্ত করতে পছন্দ করে না: আমাদের মধ্যে অনেকেই দুটির বেশি ফোন নম্বর মনে রাখতে পারি না। এজন্য ডোমেইন নেম সিস্টেমআবিষ্কৃত হয়. আমরা আমাদের ঠিকানার জন্য একটি "উনাম" তৈরি করতে পারি, উদাহরণস্বরূপ, world-temperature.com। পাঁচটি মনে রাখা কঠিন নম্বর সমন্বিত একটি ঠিকানা ব্যবহার করে আমাদের সন্ধান করার পরিবর্তে, ব্যবহারকারী ব্রাউজারের ঠিকানা বারে আমাদের ডোমেন নাম লিখতে পারেন। এমন DNS সার্ভার আছে যেগুলো প্রকৃত ঠিকানায় ডোমেন নাম ম্যাপ করে। উদাহরণস্বরূপ, যখন একজন ব্যবহারকারী একটি ব্রাউজারে codegym.cc প্রবেশ করেন, তখন তার অনুরোধ একটি DNS সার্ভারে পাঠানো হয়, যা এটিকে প্রকৃত ঠিকানায় রূপান্তর করে।
এটি আমাদের বোঝার জন্য গুরুত্বপূর্ণ, কারণ আমাদের অ্যাপ্লিকেশনগুলি ডোমেন নাম এবং আসল ঠিকানা দ্বারা দূরবর্তী পরিষেবাগুলিকে কল করবে৷ আমাদের বুঝতে হবে যে উভয় ক্ষেত্রেই পরিষেবাগুলি একই। আপাতত এই পর্যন্ত! এই নিবন্ধে, আমরা নেটওয়ার্কিংয়ের মূল বিষয়গুলি দেখেছি, যা আপনি ওয়েব প্রোগ্রামিং শিখতে শুরু করার সাথে সাথে কাজে আসবে।পরের বার আমরা ক্লায়েন্ট-সার্ভার আর্কিটেকচার কী এবং কেন এটি বোঝা এত গুরুত্বপূর্ণ তা দেখব। পার্ট 2। সফ্টওয়্যার আর্কিটেকচার পার্ট 3 সম্পর্কে একটু কথা বলি। HTTP/HTTPS পার্ট 4। মাভেন পার্ট 5 এর বেসিক। সার্ভলেট এবং জাভা সার্ভলেট API। একটি সাধারণ ওয়েব অ্যাপ্লিকেশন লেখা পার্ট 6. সার্ভলেট কন্টেইনার পার্ট 7. MVC (মডেল-ভিউ-কন্ট্রোলার) প্যাটার্ন প্রবর্তন করা হচ্ছে
GO TO FULL VERSION