রিকোস্টফ্যাক্টির বিপরীতে যার ত্রুটি পরিচালনা ও পরীক্ষার ক্ষমতা দুর্বল রয়েছে (যেহেতু এটি বেশিরভাগ স্টাফগুলিকে জিডব্লিউটি এর অধীনে প্রক্রিয়াজাত করে), আরপিসি আপনাকে আরও পরিষেবা ভিত্তিক দৃষ্টিভঙ্গি ব্যবহার করতে দেয়। রিকোয়েস্টফ্যাক্টরি আরও আধুনিক নির্ভরতা ইনজেকশন স্টাইলযুক্ত পদ্ধতির প্রয়োগ করে যা আপনাকে জটিল পলিমারফিক ডাটা স্ট্রাকচারের প্রয়োজন হলে একটি দরকারী পদ্ধতির সরবরাহ করতে পারে। আরপিসি ব্যবহার করার সময় আপনার ডেটা স্ট্রাকচার আরও ফ্ল্যাট হওয়া দরকার, কারণ এটি আপনার মার্শালিং ইউটিলিটিগুলি আপনার জেএসন / এক্সএমএল এবং জাভা মডেলের মধ্যে অনুবাদ করতে দেয়। গুগলের ওয়েবসাইটে gwt dev বিভাগ থেকে উদ্ধৃত হিসাবে আরপিসি ব্যবহার করা আপনাকে আরও দৃust় আর্কিটেকচার প্রয়োগ করতে দেয়।
"সাধারণ ক্লায়েন্ট / সার্ভার স্থাপনা
পরিষেবা সংজ্ঞা বিবেচনা করার প্রথম এবং সর্বাধিক সরল উপায় হ'ল এটিকে আপনার অ্যাপ্লিকেশনটির পুরো পিছনের দিক হিসাবে বিবেচনা করা। এই দৃষ্টিকোণ থেকে, ক্লায়েন্ট-সাইড কোডটি আপনার "সামনের প্রান্ত" এবং সার্ভারে চালিত সমস্ত পরিষেবা কোড "ব্যাক এন্ড" " আপনি যদি এই পদ্ধতিকে গ্রহণ করেন তবে আপনার পরিষেবা বাস্তবায়নগুলি আরও সাধারণ-উদ্দেশ্য এপিআই হতে হবে যা কোনও নির্দিষ্ট অ্যাপ্লিকেশনটির সাথে দৃ .়ভাবে মিলিত হয় না। আপনার পরিষেবা সংজ্ঞা সম্ভবত জেডিবিসি বা হাইবারনেট বা সার্ভারের ফাইল সিস্টেমে এমনকি ফাইলগুলির মাধ্যমে সরাসরি ডেটাবেসগুলিতে অ্যাক্সেস করবে। অনেক অ্যাপ্লিকেশনগুলির জন্য, এই দৃষ্টিভঙ্গি উপযুক্ত এবং এটি খুব দক্ষ হতে পারে কারণ এটি স্তরগুলির সংখ্যা হ্রাস করে।
মাল্টি-টিয়ার মোতায়েন
আরও জটিল, বহু-স্তরযুক্ত আর্কিটেকচারে আপনার জিডব্লিউটি পরিষেবা সংজ্ঞাগুলি কেবল হালকা গেটওয়ে হতে পারে যা J2EE সার্ভারের মতো ব্যাক-এন্ড সার্ভার পরিবেশে কল করে। এই দৃষ্টিকোণ থেকে, আপনার পরিষেবাগুলি আপনার অ্যাপ্লিকেশনটির ব্যবহারকারী ইন্টারফেসের "সার্ভার অর্ধেক" হিসাবে দেখা যেতে পারে। সাধারণ উদ্দেশ্য হওয়ার পরিবর্তে পরিষেবাগুলি আপনার ব্যবহারকারী ইন্টারফেসের নির্দিষ্ট প্রয়োজনের জন্য তৈরি করা হয়। আপনার পরিষেবাগুলি "ব্যাক এন্ড" ক্লাসগুলির "সম্মুখ প্রান্ত" হয়ে যায় যা একসাথে সেলাই করে লেখা হয় পরিষেবার আরও সাধারণ-উদ্দেশ্য ব্যাক-এন্ড স্তরকে কল করা হয়, বাস্তবায়িত হয়, উদাহরণস্বরূপ, জে 2 ই ই সার্ভারের একটি ক্লাস্টার হিসাবে। আপনার এইচটিটিপি সার্ভার থেকে শারীরিকভাবে পৃথক কম্পিউটারে চালানোর জন্য যদি আপনার ব্যাক-এন্ড পরিষেবাদিগুলির প্রয়োজন হয় তবে এই ধরণের আর্কিটেকচারটি উপযুক্ত ""
এছাড়াও নোট করুন যে একটি একক রিকুয়েস্টফ্যাকারি পরিষেবা স্থাপনের জন্য প্রায় or টি বা আরও বেশি জাভা ক্লাস তৈরি করা দরকার যেখানে আরপিসি হিসাবে কেবল ৩ টির প্রয়োজন = আমার কোডটিতে আরও কোড == আরও ত্রুটি এবং জটিলতা।
অনুরোধ প্রক্রিয়া চলাকালীন অনুরোধ ফ্যাক্টরিতে কিছুটা ওভারহেডও থাকে, কারণ এতে ডেটা প্রক্সি এবং প্রকৃত জাভা মডেলগুলির মধ্যে মার্শাল সিরিয়ালাইজেশন করতে হয়। এই যুক্ত ইন্টারফেসটি অতিরিক্ত প্রক্রিয়াচক্র যুক্ত করে যা সত্যিই একটি উদ্যোগ বা উত্পাদন পরিবেশে যুক্ত করতে পারে।
আমি এটিও বিশ্বাস করি না যে অনুরোধফ্যাক্টরি পরিষেবাগুলি আরপিসি পরিষেবার মতো সিরিয়ালাইজেশন।
সব মিলিয়ে এখন কিছু সময়ের জন্য উভয় ব্যবহার করার পরে, আমি সবসময় আরপিসির সাথে এর আরও হালকা ওজনের, পরীক্ষা করা সহজতর এবং ডিবাগ করা সহজ এবং দ্রুত একটি অনুরোধ কারখানা ব্যবহার করে চলে যাই। যদিও অনুরোধফ্যাক্টরিটি আরও মার্জিত এবং এক্সটেনসিবল হতে পারে তবে এর আরপিসির পাল্টা অংশ। যুক্ত জটিলতা এটিকে আরও ভাল সরঞ্জামের প্রয়োজনীয় করে তোলে না।
আমার মতে সেরা আর্কিটেকচারটি দুটি ওয়েব অ্যাপ্লিকেশন, একটি ক্লায়েন্ট এবং একটি সার্ভার ব্যবহার করা। সার্ভারটি হ'ল একটি সাধারণ লাইটওয়েট জেনেরিক জাভা ওয়েব অ্যাপ্লিকেশন যা সার্লেটলেট jar লাইব্রেরি ব্যবহার করে। ক্লায়েন্টটি জিডব্লিউটি T আপনি ক্লায়েন্ট ওয়েব অ্যাপ্লিকেশনটির সার্ভার সাইডে জিডব্লিউটি-আরপিসির মাধ্যমে বিশ্রামের অনুরোধ জানান। ক্লায়েন্টটির সার্ভার সাইডটি কেবলমাত্র একটি পাস যদিও এইচটিএমএপি ক্লায়েন্টকে অ্যাপাচি করে যা আপনি আপনার সার্ভার সার্লেট ওয়েব অ্যাপ্লিকেশনটিতে একক সার্ভলেট হিসাবে চলমান অনুরোধ হ্যান্ডলারের মধ্যে একটি ধৈর্যশীল টানেল ব্যবহার করেন। সার্লেট ওয়েব অ্যাপ্লিকেশনটিতে আপনার ডাটাবেস অ্যাপ্লিকেশন স্তর থাকা উচিত (হাইবারনেট, কেয়েন, এসকিউএল ইত্যাদি।) এটি আপনাকে সত্যিকারের ক্লায়েন্টের থেকে ডেটাবেস অবজেক্ট মডেলগুলিকে পুরোপুরি বিবাহবিচ্ছেদের অনুমতি দেয় যা আপনার অ্যাপ্লিকেশন বিকাশ এবং ইউনিট পরীক্ষার আরও অনেক বেশি এক্সটেনসিবল এবং মজবুত উপায় সরবরাহ করে। অনুমোদিত এটির জন্য প্রাথমিক সেটআপ সময়টি অল্প সময়ের দরকার হয়, তবে শেষ পর্যন্ত আপনাকে GWT এর বাইরে বসে একটি গতিশীল অনুরোধ কারখানা তৈরি করতে দেয়। এটি আপনাকে উভয় বিশ্বের সেরা লাভ করতে সহায়তা করে। Gwt ক্লায়েন্টকে সংকলিত বা বিল্ড না করে পরীক্ষা করতে এবং আপনার সার্ভারে পরিবর্তন করতে সক্ষম হওয়ার কথা নয়।