কেন কেউ এসওএপি ভিত্তিক পরিষেবার পরিবর্তে আরআরএসটি ব্যবহার করবে? [বন্ধ]


153

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

"আসল বিশ্বে" কেউ কেন এসওএপি ভিত্তিক পরিষেবাদিগুলির পরিবর্তে আরআরএসটি ব্যবহার করে তার কয়েকটি কারণ কী?


37
ওয়েব পরিষেবাদি দ্বারা আপনি কি এসওএপি স্টাইল ওয়েব পরিষেবাদির কথা উল্লেখ করছেন? কারণ যতদূর আমি জানি আপনার পাশাপাশি বিশ্রামের ওয়েব পরিষেবাও থাকতে পারে।
জেমস ম্যাকমাহন

উত্তর:


160

কম ওভারহেড (প্রতিটি কলকে আবৃত করার জন্য কোনও এসওএপি খাম নেই)

কম সদৃশ (HTTP ইতিমধ্যে DELETE, PUT, GET ইত্যাদির মতো ক্রিয়াকলাপগুলি উপস্থাপন করে যা অন্যথায় একটি SOAP খামে প্রতিনিধিত্ব করতে হবে)।

আরও মানসম্মত - এইচটিটিপি অপারেশনগুলি ভালভাবে বোঝা যায় এবং ধারাবাহিকভাবে পরিচালিত হয়। কিছু SOAP বাস্তবায়ন সূক্ষ্মভাবে পেতে পারে।

আরও বেশি মানব পাঠযোগ্য এবং পরীক্ষণযোগ্য (কেবলমাত্র একটি ব্রাউজার দিয়ে এসওএপি পরীক্ষা করা আরও কঠিন)।

এক্সএমএল ব্যবহার করার প্রয়োজন নেই (ভাল আপনি ধরণের এসওএপি জন্য প্রয়োজন হয় না তবে আপনি ইতিমধ্যে খামের পার্সিং করছেন যেহেতু এটি খুব কমই বোঝা যায়)।

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


1
আমি যুক্ত করতে চাই যে আন্তঃ-প্লাটফর্মটি সোপ যোগাযোগটিও পিটা হতে পারে (এসওএপি-র বিন্দুর অংশ ছিল না?!?)।
জাস্টিন বোজনিয়ার

7
এইচটিটিপি পরিকাঠামোতে দুর্দান্ত কাজ করছে - যেমন জিইটিগুলি সর্বশেষ সংশোধিত এবং ইটাগ ব্যবহারের সাথে আক্রমণাত্মকভাবে ক্যাশে হয়
জেমস স্ট্রাচান

আপনার পরিষেবাগুলিতে সর্বজনীন ক্লায়েন্ট সরবরাহ করতে ওয়েব ব্রাউজারগুলির সাথে দুর্দান্ত কাজ করাও সহায়তা করে :)
জেমস স্ট্রাচান

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

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

36

RESTful সেবা অনেক বেশি গ্রাস সহজ হয় সাবান আধারিত (নিয়মিত) সেবা। এর কারণ হ'ল REST সাধারণ HTTP অনুরোধের উপর ভিত্তি করে যা অনুরোধ করা হচ্ছে তার ধরণের (GET = retrive, POST = Written, DELETE = অপসারণ, ইত্যাদি ...) থেকে অনুমান করা সক্ষম করে এবং সম্পূর্ণ রাষ্ট্রবিহীন। অন্যদিকে আপনি যুক্তি দিতে পারেন যে এটি অনুরোধের প্রসঙ্গে থাকা কোনও বার্তা খামের ধারণার সাথে দূরে থাকায় এটি কম নমনীয়।

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

.NET ফ্রেমওয়ার্কে ডাব্লুসিএফ-এর মতো সরঞ্জামগুলির সাথে REST বা SOAP হিসাবে কোনও পরিষেবা কার্যকর করা খুব তুচ্ছ v

কিছু প্রাসঙ্গিক পড়া:


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

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

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

13

আমি ধরে নেব যে আপনি যখন "ওয়েব পরিষেবাদি" বলবেন তখন আপনি বোঝাবেন এসওএপি এবং ডাব্লুএস-* স্ট্যান্ডার্ডের সেট। (অন্যথায়, আমি তর্ক হতে পারে সেই বিশ্রামে সেবা হয় "ওয়েব সেবা"।)

ক্যানোনিকাল যুক্তিটি হল যে আরইএসটি পরিষেবাগুলি ওয়েবের ডিজাইনের একটি নিবিড় মিল - এটি এইচটিটিপি এবং সম্পর্কিত অবকাঠামোর নকশা। সুতরাং, একটি আরএসটি পরিষেবা ব্যবহার করা বিদ্যমান ওয়েব সরঞ্জাম এবং কৌশলগুলির সাথে আরও সুসংগত হবে।

অবশ্যই, একবার আপনি নির্দিষ্টকরণে drালাই করলে, আপনি দেখতে পাবেন যে উভয় পদ্ধতিরই বিভিন্ন পরিস্থিতিতে দৃ strengths়তা রয়েছে। আপনি কি আগ্রহী সেই নির্দিষ্টকরণগুলি কি?


10

ওভারহেড ভাল আর্কিটেকচার হিসাবে গুরুত্বপূর্ণ নয়।

REST কোনও প্রোটোকল নয় এটি এমন একটি আর্কিটেকচার যা ভাল স্কেলযোগ্য নকশাকে উত্সাহ দেয়। এটি প্রায়শই বেছে নেওয়া হয় কারণ আরপিসিতে খুব বেশি স্বাধীনতা সহজেই একটি দুর্বল নকশায় নিয়ে যেতে পারে।

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


7

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

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


একটি ভাল উত্তর, তবে আমি একমত নই যে SOAP এর অর্থ আপনার কাছে ইন্টারনেট-স্কেল লোড-ব্যালেন্সিং থাকতে পারে না।
এইচডিভ

7

রায় ফিন্ডিং সবচেয়ে চমৎকার পড়তে পেয়েছেন গবেষণা প্রবন্ধে বিষয়ে। তিনি একজন চমৎকার কেস করে তোলে এবং স্পষ্টভাবে ছিল উপায় তার সময় যখন তিনি এটা লিখেছে (2000) এগিয়ে।


6

স্টিভ ভিনোস্কির ব্লগ এবং তার সর্বশেষ নিবন্ধগুলি অবশ্যই উপলব্ধি করার মতো মূল্যবান। তিনি প্রাক্তন করর্বা গুরু, তিনি সম্ভবত মিচি হেনিং, "অ্যাডভান্সড কর্বা" প্রোগ্রামিং উইথ সি ++ "এর সাথে এই বিষয়ে সেরা বইটি লিখেছিলেন । তবে তিনি তার ক্লায়েন্ট / সার্ভারের উপায়গুলির ত্রুটিটি দেখেছেন এবং এখন আরআরইএসটি-র শপথ করে।


5

আরআরইএসটি আপনার অ-পরিবর্তনকারী ক্রিয়াকলাপগুলিতে (যা সাধারণত জিইটি ক্রিয়া ব্যবহার করে) ক্যাশে হওয়ার অনুমতি দেয় । এটি, ক্লায়েন্ট দ্বারা ক্যাশেড এবং / অথবা প্রক্সি দ্বারা ক্যাশেড। এটি একটি বিশাল জয় হতে পারে!


8
এটি কেবল 'HTTP সঠিকভাবে ব্যবহার করা', এবং বিশ্রাম নয়।
এহেলকে

3

আরআরইএসটি মূলত ওয়েব পরিষেবাদি বাস্তবায়নের এক উপায়। আপনি যে ওয়েব পরিষেবাদিগুলির মধ্যে আঘাত হানার চেষ্টা করছেন সেটি সঠিকভাবে অনুসন্ধান করার জন্য এইচটিটিপি সঠিকভাবে ব্যবহার করার একটি উপায়।

http://www.xfront.com/REST-Web-Services.html http://en.wikedia.org/wiki/RepLiveational_State_Transfer


1
REST- এর HTTP- র কোনও সম্পর্ক নেই এবং এটি সম্পূর্ণ প্রোটোকল-স্বতন্ত্র। যদিও এটি কিছু ধরণের রিসোর্স-কেন্দ্রিক ওয়েব পরিষেবার জন্য উপযুক্ত well
এহেলকে

0

এটি সুপার সিম্পল এবং স্লিম। আপনি এটি ব্রাউজারের সাথে HTTP ক্রিয়া: GET এর মাধ্যমে করতে পারেন do আমি ব্রাউজারটি সাধারণভাবে জেনেরিক HTTP পোষ্ট অনুরোধটি সহজেই করতে পারে তা খুঁজে পাইনি


1
চেকআউট ফিদলার। এটি কোনও ব্রাউজার নয় তবে কোড ছাড়াই এইচটিটিপি পোস্ট তৈরির দুর্দান্ত উপায়। fiddler2.com/fiddler2
এরিক

আমি সাধারণত চার্লসের সাথে বিদ্যমান অনুরোধটি সংশোধন করে এটি করি। আমার কাছে ফিডলারও আছে।
রায় লু

0

এখানে একটি ডেটা পয়েন্ট: অ্যামাজন আরএসটি এবং এসওএপি উভয় ফর্ম্যাটে তার এপিআই সরবরাহ করে এবং 85% ব্যবহারের জন্য REST হয়।

REST কার্যকর করা সহজ, বোঝা সহজ এবং উচ্চতর কর্মক্ষমতা।


7
আপনার "উচ্চতর পারফরম্যান্স" বিবৃতিটির জন্য কোনও রেফারেন্স রয়েছে?
জেমস ম্যাকমাহন

3
আপনি কোথায় 85% ব্যবহার পেয়েছেন? এটি জানতে খুব ভাল (যদি আমি প্রমাণ দেখতে পারি)
schmoopy

3
ম্যানুয়ালি একটি এপিআই স্পেসিফিকেশন, মুদ্রণ পৃষ্ঠাগুলি পড়া ইত্যাদি "রাইট ক্লিক, পরিষেবা রেফারেন্স যুক্ত করুন" এর চেয়ে প্রয়োগ করা আরও সহজ? (VS2010)
নীলচিপি

: আমাজন থেকে @schmoopy ব্লগ aws.typepad.com/aws/2005/09/rest_vs_soap.html
joerage
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.