স্প্রিং ফ্রেমওয়ার্ক

স্প্রিং ফ্রেমওয়ার্ক:
স্প্রিং ফ্রেমওয়ার্ক এর সাথে পরিচিত হতে হলে আগে কিছু বিষয়ের সাথে পরিচয় হওয়া দরকার। এগুলো আমরা সবাই জানি, তবুও আমি আবার বলে নিয়ে শুরু করতে চাচ্ছি। প্রথমে আসি এন্টারপ্রাইজ এপ্লিকেশন।

এন্টারপ্রাইজ এপ্লিকেশান: এন্টারপ্রাইজ এপ্লিকেশন মূলত বিজনেজ এপ্লিকেশন। সাধারণত অনেক বড় ধরণের বিজনেজ এপ্লিকেশন গুলোতে এন্টাপ্রাইজ শব্দটি ব্যবহার করা হয়। যাহোক বর্তমানে করপোরেট ইনভাইরনমেন্টে এন্টারপ্রাইজ এপ্লিকেশন বলতে খুব জটিল, ডিস্ট্রিবিউটেড, কম্পোনেন্ট বেইজড এবং মিশন ক্রিটিক্যাল (mission-critical)এপ্লিকেশন বুঝায়। মিশন ক্রিটিক্যাল এপ্লিকেশন হলো, একটি বিশেষ বিজনেজ উদ্দেশ্যে এপ্লিকেশনটি ব্যবহার করা হয়, যার উপর বিজনেজটি নির্ভর করছে। কোন কারণে এপ্লিকেশনটি ফল করলে পুরো বিজনেজটি ফল করবে। এগুলো বিভিন্ন ধরণের প্লাটফর্মের জন্য তৈরি করা হয়, এবং করপোরেট নেনওয়ার্কস, রেসট্রিকটেড নেটওয়ার্কস, ইন্টারনেট এর মাধ্যমে ব্যবহার করা হয়, যেগুলো খুব ইউজার ফ্রেন্ডলি, ডেটাসেন্ট্রকি, সিকিউরড, এডমিনিস্ট্রেটিভ হয় এবং সহজে মেনিপুলেট করা যায়। মোটকথা এন্টাপ্রাইজ এপ্লিকেশন হলো খুব কমপ্লেক্স এপ্লিকেশন । যেমন, ডাটা স্টোরেজ করা এবং ইউজার রেসট্রিকটেড করা, কাস্টোমার ইনভয়েস, ফ্লাইট বোকিংস, ব্যাংকিং সিস্টেম অটোমেশন এগুলো এন্টারপ্রাইজ এপ্লিকেশান এর উদাহরণ। এগুলোর মাল্টিপল ইন্টারফেজ থাকে পারে, রিমোট কমিউনিকেশন করতে পারে, উন্নত ধরণের গ্রাফিক্যাল ইউজার ইন্টারফেজ থাকে।
এই এপ্লিকেশন গুলোর ডেপলয়মেন্টও মোটামুটি কঠিনতম কাজ। কাজ গুলো কমপ্লেক্স হলেও এগুলো ডেপ্লয় করার পদ্ধতিও আছে। আমার আলোচনা মূলত কিভাবে এগুলা ডেপ্লয় করা যায় তার উপর। জাভাতে এগুলো ডেপ্লয় করার বেশ কিছু পদ্ধতি আছে। আমি এখন এগুলো আলোচনা করবো। এজন্য আমার দরকার জাভা জেটুইই।

J2EE : জে টু ইই মানে হলো, জাভা প্ল্যাটফর্ম টু, এন্টারপ্রাইজ এডিশন। জেটুইই দিয়ে আমরা এই এন্টারপ্রাইজ এপ্লিকেশন গুলো ডেভেলপ করতে পারি। অর্থাৎ জেটুইই মূলত জাভা টুলস। জাভা এন্টারপ্রাইজ এডিশন কিন্তু জাভা স্ট্যান্ডার্ড এডিশনের বিকল্প নয়। জাভা স্ট্যান্ডার্ড এডিশন আমাদের জাভার ল্যাংগুয়েজ ফ্রেমওয়ার্ক শেখায়, যার উপর ভিত্তি করে মূলত জাভা এন্টারপ্রাইজ এডিশন তৈরি।
ধরা যাক আমি একটি বাড়ি তৈরি করবো। বাড়ি বানানোর কাজ যথেষ্ট সময় সাপেক্ষ এবং কঠিনতম কাজ। এখন প্রথমে আমরা চিন্তা করি বাড়িটা আসলে কিভাবে বানাবো। আমরা জায়গা নির্বাচন করি। তারপর চিন্তা করি বাড়িটি কয় তলা হবে, কয়টা এপার্টমেন্ট হবে, এপার্টমেন্ট গুলো কত স্কয়ারফিটের হবে। তারপর চিন্তা করি, একটা এপার্টমেন্ট এ কয়টা রুম হবে, ড্রয়িং রুমের দৈর্ঘ্য কত হবে, কয়টা বাথ থাকবে, বেলকনি কোথায় থাকবে, রান্না ঘর কোথায় হবে। আচ্ছা এগুলো ঠিক হয়ে গেল, এখন আমরা চিন্তা করবো ছোটছোট কাজ নিয়ে। ওয়্যারিং নিয়ে, প্রত্যেক রুমে কয়টা পয়েন্ট থাকবে, পানির লাইন কিভাবে নেব। কোথায় বাধা আছে, বিল্ডিং এর কোথায় ভিম আছে, সেই এরিয়া গুলো এরিয়ে যেতে হবে এইসব নিয়ে চিন্তা করতে পারি। তারপরে বাথরুমে কি ধরণের টাইস ইজউ করবো, ফ্লোরে কোন গুলো। আচ্ছা ধরে নিলাম এর সবই ঠিক হয়ে গেছে, এখন আমাদের কাজ হলো কস্ট হিশেব করা। মোট কত টাকা লাগবে। ইট লাগবে কতহাজার, সিমেন্ট লাগবে কত বস্তা, রড লাগবে কত কেজি, পাথর লাগবে কিনা, বাশ লাগবে কতটি। এইসব হিসাব করার পর আসে,ইঞ্জিনিয়ারের ফি। প্রতি স্কয়ার ফি এর জন্য একটা নির্দিষ্ট পরিমান টাকা দিতে হয়। সাধারণত পনের থেকে বিশ টাকা প্রতিস্কয়ার ফিট হয়, ওয়্যারিং এর জন্য আলাদা হিশেব। তিন থেকে পাচ টাকা প্রতি স্কয়ার ফিট। এখন আসি লেবার কস্ট। যাদের কাছে কন্ট্রাক্ট দেয় হয়, তাদেরকেও এরকম একটা হিসেবে সাধারণত একশত বিশ টাকা থেকে ১৫০টাকা স্কয়ার ফিট।

যাহোক আমাদের কস্ট হিসাব করা শেষ। এখন আমরা কাজ করতে শুরু করবো। ইঞ্জিনিয়ারের করা ডিজাইন অনুসারে কাজ করা হবে। তো কাজ শুরু করা যাক। আমাদের কাছে ইট আছে, বালি আছে সিমেন্ট আছে। সবই হাতের কাছে কাজগুলো করে যাবো।

আমাদের এপ্লিকেশন ডেভেলপ করার কাজটি বাড়ি তৈরি করার কাজটির মতই। বাড়ি তৈরি করতে গিয়ে কাজ গুলোকে বিভন্ন অংশে ভাগ করে ফেলেছি। এখানেও তাই করতে হবে। প্রথমে ঠিক করতে হবে আমরা কি করবো, তাপর ঠিক করতে হবে, কিভাবে করবো, এরপর কি দিয়ে করবো। মনে করি আমি একটি ওয়েব সাইট তৈরি করবো। এরপর চিন্তা করবো, ওয়েব সাইটএ কি কি জিনিস থাকবে, তারপর চিন্তা করবো এটি কি দিয়ে করবো, অর্থাৎ কি টুলস ব্যবহার করবো। জাভা এন্টারপ্রাইজ এডিশান হলো আমাদের একটা টুলস, এটি দিয়ে আমরা আমাদের ওয়েব সাইটটি তৈরি করবো।

আমরা যখন সুইচ অন করি, সাথে সাথে লাইট জ্বলে উঠে। লাইফ কত্তো ইজি। আমাদের দরকার হলো, আলো। আমরা পেয়ে গেছি। আলো পাওয়ার পেছনে অনেক গুলো ব্যপার আছে সেগুলো নিয়ে আমরা মোটেও ব্যস্ত নয়, কারণ লাইট তৈরি করার লোকজন আছে, ইলেক্ট্রিসিটি প্রোভাইড করার লোকজনও আছে। ঠিক এরকম করেই জাভা এন্টারপ্রাইজ এডিশন মূলত আমাদের লাইফ ইজি করার জন্য কিছু টুলস প্রোভাইড করে, যেগুলো নিয়ে আমাদের চিন্তা না করলেও চলবে।

আমরা জাভা ডেভেলপার। আমি জাভা দিয়ে এপ্লিকেশন ডেভেলপ করবো। ধরা যাক, কোন কারণে আমাদের ডাটাবেস এ ডাটা রাখার প্রয়োজন হয়ে পরেছে। কিন্তু আমি জাভা ডেপলপার। আমি অবজেক্ট ছাড়া কিছু বুঝি না। আমার ডাটা নিয়ে কোন আইডিয়া নেই। কিন্তু ডাটাবেস এ শুধু ডাটা রাখা যায়। এইক্ষেত্রে আমি কি করতে পারি। আমি পুরো সিস্টেমটা নতুন করে তৈরি করবো? ডাটাবেজ বাদ দিয়ে অবজেক্টবেজ তৈরি করবো? অথবা আমি অবজেক্ট ভুলে যাবো.? এর কোনটাই সম্ভব না। এই প্রবলেম সলভ করার জন্য জাভা এন্টাপ্রাইজ এডিশান আমাদেরকে একটি টুলস পোভাউড করে যার নাম হাইবারনেট। হাইবারনেট এর মাধ্যমে আমি জাভা ডেপলপার অবজেক্ট পাস করবো। হাইবারনেট আমার অবজেক্টকে ডাটাতে কনভার্ট করে ডাটাবেস এ রাখবে। আবার আমার যখন অবজেক্ট দরকার তখন ডাটাকে অবজেক্ট এ কনভার্ট করে আমাকে রিটার্ন করবে। এইখানে মধ্যবর্তি হাইবারনেট টুলস নিয়ে আমাদের মাথাব্যাথার প্রয়োজন হচ্ছে না। আমাদের লাইফটা একটু ইজি হলো। কারণ আমরা বাড়ি বানাতে গিয়ে নিশ্চয় প্রথমে মাটি পুরিয়ে ইট বানাবো না, এমনকি ইট কিভাবে তৈরি হয়, তা না জানলেও আমাদের কাজ হয়ে যাচ্ছে।

এখন আসি ফ্রেমওয়ার্ক কি? ধরা যাক আমি একটা কাজ করতে চাই। কাজটি করার জন্য অনেকগুলো উপায় আছে। কিন্তু আমি যদি বুদ্ধিমান হই, তাহলে অবশ্যই সবচেয়ে ভাল উপায়টি বেছে নেব। ফ্রেমওয়ার্ক হলো আসলে একটি পদ্ধতি যার মাধ্যমে সহজে এবং ভাল উপায়ে আমরা একটি কাজ করতে পারি। আমরা কোন এপ্লিকেশন ডেভেলপ করার সময় কোন না কোন ফ্রেমওয়ার্ক ফলো করি। এর ফলে যে সুবিধা গুলো হয় তা হলো, অনেক বেশি কমপ্লেক্স কাজ গুলো সহজ হয়ে আসে, ডিসক্রিট অবজেক্ট গুলোকে সহজে ম্যানেজ করা যায়, টেস্টিং প্রক্রিয়া সহজ হয়ে যায়, সহজে ডিবাগ করা যায়।

এখন আমি আমার মূল আলোচনায় প্রবেশ করবো। জাভায় অনেক গুলো ফ্রেমওয়ার্ক আছে। যেমন জএসএফ, স্টার্টস, স্প্রিং ইত্যাদি। এগুলোর মধ্যে স্প্রিং ফ্রেমওয়ার্ক সবচেয়ে বেশি ব্যবহার করা হয়। সুতরাং আমি এই ফ্রেমওয়ার্ক নিয়েই কথা বলবো।

(চলবে….)

2 thoughts on “স্প্রিং ফ্রেমওয়ার্ক

মন্তব্য করুন

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  পরিবর্তন )

Google+ photo

You are commenting using your Google+ account. Log Out /  পরিবর্তন )

Twitter picture

You are commenting using your Twitter account. Log Out /  পরিবর্তন )

Facebook photo

You are commenting using your Facebook account. Log Out /  পরিবর্তন )

Connecting to %s