RESTful আর্কিটেকচারের পেশাদার এবং কনস [বন্ধ]


20

আরইএসটি-র উপকারিতা এবং বিধি সম্পর্কে সর্বাধিক প্রচলিত আলোচনা আমি SOAP এর সাথে সম্পর্কিত আলোচনাটিকে ফ্রেম করে to আমারও কোনও অভিজ্ঞতা নেই। আমি বর্তমানে এমন একটি সিদ্ধান্তের মুখোমুখি হয়েছি যা আমার অভিজ্ঞতার অভাব আমাকে মূল্যায়ন করা কঠিন করে তুলছে। আমি এমন একটি অ্যাপ্লিকেশন বিকাশ করতে শুরু করছি যার বেশ কয়েকটি উপাদান রয়েছে - মূলত এমন প্রশাসনিক দিক যা মালিককে বেশ কয়েকটি সাইট পরিচালনা করতে দেয় - এবং একটি জনসাধারণের মুখোমুখি ব্যবহারকারী ইন্টারফেস যা ব্যবহারকারীকে হোস্টে থাকা ডেটার সাথে যোগাযোগের সুযোগ দেয় allows আমার উত্তরোত্তর অংশটি যে কোনও জায়গায় হোস্ট করার অনুমতি দেওয়া এবং পূর্বের সাথে একটি আস্তে আস্তে আর্কিটেকচারের মাধ্যমে যোগাযোগ করার - বা উভয় উপাদান একই হোস্টে থাকার অনুরোধের প্রভাবগুলির মূল্যায়ন করা দরকার ate RESTful আর্কিটেকচার বিকাশের মূল বিষয়গুলি কী কী, বিশেষত নিম্নলিখিত ক্ষেত্রে এটির সক্ষমতা সম্পর্কিত:

1: সুরক্ষা 2: পারফরম্যান্স 3: ইন্টারফেস জটিলতা

সম্পাদনা: এই প্রশ্নের কয়েকটি উত্তর দেখে - আমার স্পষ্ট করা উচিত। আমি এসওএপি এর সাথে তুলনা খুঁজছি না - বরং অ্যাপ্লিকেশন বনাম অ্যাপ্লিকেশনগুলির সংক্ষিপ্তসার যেখানে সমস্ত উপাদান একটি হোস্টে থাকে। (যদিও এই উত্তরগুলির জন্য ধন্যবাদ!)


3
পুনরায় খোলার পরামর্শ দিন। সম্ভাব্য উত্তরের যুক্তিসঙ্গত সুযোগ নিয়ে প্রশ্নটি সাধারণ এবং স্পষ্ট।
মিঙ্গুয়া

উত্তর:


13

এই অঞ্চলগুলি দেওয়া, আমি মোটামুটি ওভারভিউ দিতে পারি, তবে আমি আপনার জন্য আপনার সিদ্ধান্তগুলি আঁকতে পারি না। দুটি প্রধান অঞ্চল রয়েছে যেখানে দুটি প্রোটোকলের মধ্যে পার্থক্য রয়েছে:

  • বার্তা বিন্যাস
  • পরিষেবা আবিষ্কার

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

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

আপনি যে বিভাগগুলি দিয়েছেন তা ভেঙে গেছে:

নিরাপত্তা

কোনওটিই সহজাতভাবে অন্যটির চেয়ে বেশি সুরক্ষিত নয়। ভাল সুরক্ষা নীতিগুলি ব্যবহার করুন:

  • যোগাযোগগুলি এনক্রিপ্ট করুন
  • প্রক্রিয়া করার আগে আপনি ব্যবহারকারীদের অনুমোদন এবং অনুমোদনের বিষয়টি নিশ্চিত করুন
  • সরাসরি আক্রমণ এড়াতে কোডিংয়ের ভাল অভ্যাস
  • এবং এটি কেবল সংক্ষিপ্ত তালিকা।

অস্পষ্টতা মনে রাখবেন! = সুরক্ষা।

কর্মক্ষমতা

সাধারণ এইচটিটিপি প্রোটোকলের নিম্নলিখিত অনুরোধের কারণে কাঁচা পারফরম্যান্স এবং স্কেলাবিলিটি উভয়ইই বিশ্রামে যাবে। বেশিরভাগ এসওএপি স্ট্যাকস স্যাক্স পার্সিং (ইভেন্ট ভিত্তিক পার্সিং) ব্যবহার করে যা এসওএপি স্ট্যাকের স্কেলিবিলিটিটিকে ব্যাপকভাবে উন্নত করে, তবে ওভারহেডের একটি পরিমাপযোগ্য প্রভাব রয়েছে। এসওএপি-তে এক্সএমএল পার্সিং ওভারহেডের পাশাপাশি স্বাভাবিক এইচটিটিপি প্রসেসিং ওভারহেড রয়েছে। REST এর কেবলমাত্র HTTP প্রসেসিং ওভারহেড রয়েছে।

জটিলতা

সিস্টেমের দৃষ্টিকোণ থেকে, আরআরএসটি জয়ী হয়। এখানে কিছু কম চলমান অংশ রয়েছে, একটি leালু অনুরোধ শৃঙ্খলা ইত্যাদি That এর অর্থ এটি নির্ভরযোগ্য করা সহজ।

প্রোগ্রামারের দৃষ্টিকোণ থেকে, আপনি যে আইডিই বা ফ্রেমওয়ার্ক ব্যবহার করছেন এটি এর জন্য ভাল সমর্থন সরবরাহ করে যদি এসওএপি জিততে পারে। মূলত, আরএসএসের সাথে অনপ্রসু প্রিপ্রোসেসিং কাজ (প্রমাণীকরণ / অনুমোদন / ইত্যাদি) সম্পাদন করতে চলেছে এবং এসওএপি সহ অনেক কিছুই প্লাগযোগ্য প্রক্রিয়াকরণ শৃঙ্খলা দ্বারা সম্পন্ন করা যায়।

আমার পছন্দ

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


1
বিস্তারিত উত্তরের জন্য +1। একটি ভাল জাভা JAX-RS বাস্তবায়নের জন্য রেস্ট ব্যবহার করুন। জ্যাকএক্সবি ওয়েব পরিষেবাদির সাথে মিলিত হঠাৎ তুচ্ছ হয়ে ওঠে।
গ্যারি রোয়ে

2
"এর প্রকৃতির দ্বারা বিশ্রামই অনুমানযোগ্য শেষ পয়েন্ট সরবরাহ করে, এবং অনুরোধের সামগ্রীটি একটি সহজ এইচটিটিপি অনুরোধ The আপনার সাইটের ইউআরএল কাঠামো। " প্রকৃতপক্ষে, এটি আরইএসটি'র হেটোয়াস সীমাবদ্ধতার ("হাইপারমিডিয়া ইঞ্জিন অ্যাপ্লিকেশন স্টেটের ইঞ্জিন হিসাবে") এর বিপরীতে যদি আপনি আরইএসটি যথাযথভাবে কথা বলছেন। আরআরএসটি অ্যাডভোকেটদের একটি অংশ রয়েছে যারা ইউআরএল রচনাটি বিশ্রামের দিক বলে বোঝানোর জন্য আপনাকে লিচ করবেন। আমি তা দৃ strongly়ভাবে অনুভব করি না তবে অনেকেই করেন।
মাইকস্কিঙ্কেল

1
এবং তবুও শেষের পয়েন্টগুলির অনুমানযোগ্য প্রকৃতি একটি অ্যাপ্লিকেশন ডিজাইন এবং তৈরি করা সহজ করে makes দ্রষ্টব্য: REST অ্যাপ্লিকেশনগুলিকে সমর্থনকারী ফ্রেমওয়ার্কগুলিতে ইউআরএলগুলির একটি সামঞ্জস্যপূর্ণ প্যাটার্ন রয়েছে তবে এগুলি কাঠামো থেকে ফ্রেমওয়ার্কের ক্ষেত্রে অগত্যা সুসংগত নয়। ইউআরএলগুলির নিয়মিত প্যাটার্নটি কেবল প্রোগ্রামিং নির্মাণ এবং সুবিধার বিষয়। আপনি রুবি অন রেল অ্যাপ্লিকেশনগুলিতে দেখতে পাচ্ছেন এমন ইউআরএল নিদর্শনগুলি সমর্থিত ক্রিয়ায় একই রকম, তবে নামগুলি এএসপি.নেট এমভিসিতে আলাদা।
বেরিন লরিটশ

"ইউআরএল দ্বারা ডিজাইন" করা RESTful ডিজাইনের একটি দুর্বল উপায় যা ফ্রেমওয়ার্কগুলি দ্বারা উত্সাহিত করা হয় কারণ ফ্রেমওয়ার্কগুলির পক্ষে সেভাবে করা সহজ। তবে এটি সাধারণত সিআরইউডি ব্যবহার থেকে বেরিয়ে আসার সাথে সাথে খারাপভাবে ভেঙে যায়।
ড্যারেল মিলার

12
  1. সুরক্ষা: এইচটিটিপিএস ব্যবহার করুন। এটি উভয়ের ক্ষেত্রেই প্রযোজ্য।
  2. অভিনয়: । আরআরইএসটি হ'ল সিপিইউ ব্যয়বহুল (কম পার্সিং, মার্শেলিং, আন-র্যাপিং)। এছাড়াও, আরইএসটি-র সাথে ক্যাশে করা হ'ল পিষ্টক।
  3. জটিলতা: সেটআপের ক্ষেত্রে REST এর চেয়ে অনেক কম দাবি, এটি সর্বোপরি GET / POST। এসওএপি (ডাব্লুএসডিএল ইত্যাদি) বজায় রাখতে আরও অনেক প্রশাসনের প্রয়োজন, তবে আপনার আইডিই এটি সমর্থন করলে কিছুটা সহজ।

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

আজকাল, ব্যবহারের জন্য খুব ভাল REST এপিআই রয়েছে। আপনি যদি জাভাতে থাকেন তবে জ্যাক্স-আরএস সত্যিই দুর্দান্ত। কিছু ভাবেন জন্য, এই পর্ণ ভালো হয়।


2
+1 টি কারণ সাবান হয় স্ফীত। REST অবশ্যই যাওয়ার উপায় এবং জ্যাকস-আরএসের সেই লিঙ্কটি কেন তা প্রমাণ করে।
গ্যারি রোয়ে

1
একটি ভাল। নেট রেস্ট স্ট্যাক আছে?
ব্ল্যাকইসিস


8

আমি মনে করি আরইএসটি-র সবচেয়ে বড় সুবিধা হ'ল আরপিসি আর্কিটেকচার থেকে বিরতি। আরআরইএসটি প্রক্রিয়াগুলি নয়, সংস্থানগুলি উন্মোচিত করে। এটি আপনাকে একটি স্বচ্ছ বাউন্ড সিস্টেম তৈরি করতে দেয়, যেখানে পরিবর্তন, উন্নতি এমনকি এক অংশের ব্যর্থতা অন্যান্য অংশগুলিতে সীমিত (নেতিবাচক) প্রভাব ফেলে।

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

আরআরএসটি-র আর একটি প্রায়শই অবহেলিত অংশ হ'ল বেশিরভাগ ক্রিয়াগুলির আদর্শশক্তি। শুধু পান না, তবে পুট এবং ডিলেটও একবারে বা একাধিকবার প্রয়োগ করা হলে ঠিক একই ফলাফল হওয়া উচিত (আপনি ইতিমধ্যে মুছে ফেলা হলে 404 ফেরত দিতে পারবেন না, বা ক্লায়েন্টটি একইভাবে পাট দিলে 'কোনও পরিবর্তন হবে না')। এটি মজবুত ব্যবস্থা এবং শব্দার্থবিজ্ঞানের সঠিক ব্যাখ্যার কম আন্তঃনির্ভরতা বাড়ে।


1
আদর্শের জন্য +1। আমি এটি আগে একবার দেখেছি তবে এখন পর্যন্ত এটি খুঁজে পাইনি। যে কেউ জানেন যে পিডিএফ-তে বিশ্রামের নকশা সম্পর্কে একটি টিউটোরিয়াল রয়েছে?
মিঙ্গুয়া

3

ডাব্লুএস- * মানদণ্ডগুলি বেশিরভাগই এসওএপি / এইচটিটিপি-র মাধ্যমে আরপিসি চালানো সম্পর্কে। সুতরাং, CORBA এবং J2EE এবং তাদের পূর্বসূরীরা গিয়েছিল এমন সমস্ত চিন্তাভাবনাগুলি বেশিরভাগই এক্সএমএলে একই ধরণের কাজ করতে চলে গেছে। এর অর্থ ধরণের ঘোষণা এবং পরিষেবা চুক্তি, মেটাডেটা এক্সচেঞ্জ, ঘোষণামূলক সুরক্ষা ইত্যাদি real সমস্ত বাস্তব "এন্টারপ্রাইজ" উপাদান like এমনকি এন্টারপ্রাইজেও খোলামেলাভাবে এটি অত্যধিক ব্যবহৃত।

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


প্রকৃতপক্ষে: আমার ডাব্লুএস-* মানদণ্ডের অভিজ্ঞতাটি হ'ল তারা "স্ট্যান্ডার্ড" এর এক গৌরবময় উদাহরণ যেখানে প্রতিটি একক বাস্তবায়ন আলাদা এবং বেমানান। জনসাধারণের মুখোমুখি পরিষেবাগুলির জন্য এটি সহজ রাখুন এবং কেবল একই প্ল্যাটফর্মে চলমান সিস্টেমগুলির মধ্যে ব্যক্তিগত যোগাযোগের জন্য এসওএপি ব্যবহার করুন।
কারসন 63000

0

বর্তমান আরএসইএসটি বাস্তবায়নের জন্য কেবল এসওএপি-র কেবল বড় সুবিধা হ'ল এসওএপি আরও সহজেই সমৃদ্ধ হয় - বেশিরভাগ RESTful ক্লায়েন্টের প্রয়োজন হয় আমাকে ইন্টারফেসটি বোঝার এবং কোনও ধরণের ক্লায়েন্ট লিখতে। এসওএপি-র জন্য, আমি কেবল এটিতে wsdl.exe নির্দেশ করি এবং এটি আমার জন্য ক্লাস তৈরি করে।


1
আপনি কি কখনও কোনও এসওএপি ইন্ট্রোস্পেকশন সরঞ্জাম লিখেছেন? এটি একটি অপ্রীতিকর অভিজ্ঞতা যা আপনাকে বিশ্রামে স্যুইচ করবে।
পাইদানি

1
না, তবে বেশিরভাগ প্ল্যাটফর্মগুলি এসওএপি-র দিকে তাকিয়েছে বলেছে অন্তর্নির্ধারণের সরঞ্জামগুলি নির্মিত। যদি আমি একটি নির্মাণ বা বিশ্রামের দিকে তাকিয়ে থাকি তবে আমি রেস্ট জিনিসটি করতাম।
ওয়াট বার্নেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.