কেউ কি স্পষ্ট ইংরেজিতে REST কী এবং SOAP কী তা ব্যাখ্যা করতে পারে ? এবং ওয়েব পরিষেবাদি কীভাবে কাজ করে?
কেউ কি স্পষ্ট ইংরেজিতে REST কী এবং SOAP কী তা ব্যাখ্যা করতে পারে ? এবং ওয়েব পরিষেবাদি কীভাবে কাজ করে?
উত্তর:
এসওএপি - "সাধারণ অবজেক্ট অ্যাক্সেস প্রোটোকল"
এসওএপি হ'ল ইন্টারনেটে বার্তা, বা অল্প পরিমাণে তথ্য স্থানান্তর করার একটি পদ্ধতি। এসওএপি বার্তাগুলি এক্সএমএলে ফর্ম্যাট করা হয় এবং সাধারণত HTTP (হাইপারটেক্সট ট্রান্সফার প্রোটোকল) ব্যবহার করে প্রেরণ করা হয়।
বিশ্রাম - প্রতিনিধিত্বমূলক রাষ্ট্র স্থানান্তর
বিশ্রাম ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা প্রেরণ এবং গ্রহণের একটি সহজ উপায় এবং এর খুব বেশি মান সংজ্ঞায়িত হয় না। আপনি JSON, XML বা এমনকি সরল পাঠ্য হিসাবে ডেটা প্রেরণ এবং গ্রহণ করতে পারেন। এটি SOAP এর তুলনায় হালকা ওজনযুক্ত।
দুটি পদ্ধতিই অনেক বড় প্লেয়ার দ্বারা ব্যবহৃত হয়। এটা পছন্দসই বিষয়। আমার পছন্দটি REST কারণ এটি ব্যবহার করা এবং বুঝতে সহজ।
সাধারণ অবজেক্ট অ্যাক্সেস প্রোটোকল (এসওএপি):
প্রতিনিধিত্বমূলক রাষ্ট্র স্থানান্তর (REST):
আছে বাকি অবিরাম বিতর্ক Google এ সাবান বনাম ।
আমার প্রিয় এটি এক । আপডেট 27 নভেম্বর 2013: পল প্রেসকডের সাইট অফলাইনে চলে গেছে বলে মনে হচ্ছে এবং এই নিবন্ধটি আর উপলভ্য নয়, যদিও অনুলিপিগুলি ওয়েব্যাক মেশিনে বা সিটিসিয়ারএক্সে পিডিএফ হিসাবে পাওয়া যায় ।
বিশ্রাম
আমি বুঝতে পারি যে REST এর মূল ধারণাটি অত্যন্ত সহজ। আমরা বহু বছর ধরে ওয়েব ব্রাউজার ব্যবহার করেছি এবং আমরা দেখেছি যে কতটা সহজ, নমনীয়, পারফর্মিং ইত্যাদি ওয়েব সাইট। এইচটিএমএল সাইটগুলি হাইপারলিংক এবং ফর্মগুলি ব্যবহারকারীর মিথস্ক্রিয়ার প্রাথমিক মাধ্যম হিসাবে ব্যবহার করে। তাদের মূল লক্ষ্য হ'ল আমাদের, ক্লায়েন্টদের কেবলমাত্র সেই লিঙ্কগুলিই জানতে দেওয়া যা আমরা বর্তমান অবস্থায় ব্যবহার করতে পারি । আরআরইএসটি সহজভাবে বলেছে 'কেন আমাদের অ্যাপ্লিকেশনটির মাধ্যমে মানব ক্লায়েন্টদের চেয়ে কম্পিউটার চালানোর জন্য একই নীতিগুলি ব্যবহার করবেন না?' এটি ডাব্লুডাব্লুডাব্লু অবকাঠামোর শক্তির সাথে একত্রিত করুন এবং দুর্দান্ত বিতরণ অ্যাপ্লিকেশন তৈরির জন্য একটি হত্যাকারী সরঞ্জাম পাবেন।
আর একটি সম্ভাব্য ব্যাখ্যা হ'ল গণিতের চিন্তাভাবনা করা লোকদের জন্য। প্রতিটি অ্যাপ্লিকেশনটি মূলত একটি রাষ্ট্র মেশিন যার সাথে ব্যবসায়িক যুক্তিযুক্ত ক্রিয়াগুলি রাষ্ট্রীয় রূপান্তর হয়। আরআরইএসটির ধারণা হ'ল প্রতিটি সংকেত কোনও সংস্থার কোনও অনুরোধের ভিত্তিতে মানচিত্র তৈরি করা এবং ক্লায়েন্টদের বর্তমান অবস্থায় উপলব্ধ ট্রানজিশনের প্রতিনিধিত্বকারী লিঙ্কগুলি সরবরাহ করা। সুতরাং এটি উপস্থাপনা এবং লিঙ্কগুলির মাধ্যমে রাষ্ট্রের মেশিনকে মডেল করে। এ কারণেই এটিকে রিপ্রেসেটেশনাল রাজ্য স্থানান্তর বলা হয়।
এটি বেশ আশ্চর্যজনক যে সমস্ত উত্তর মেসেজের ফর্ম্যাট বা HTTP ক্রিয়া ব্যবহারের দিকে মনোযোগ দেয় বলে মনে হয়। আসলে, বার্তা বিন্যাসটি মোটেও কিছু যায় আসে না, আরআরইএসটি পরিষেবা বিকাশকারী এটি নথিভুক্ত করে যে কোনও একটি ব্যবহার করতে পারে। এইচটিটিপি ক্রিয়াগুলি কেবল একটি পরিষেবাকে একটি CRUD পরিষেবা করে, তবে এখনও বিশ্রামে না ful একটি পরিষেবাটিকে কীইএসইএসটি পরিষেবাদিতে সত্যই পরিণত করে তা হ'ল হাইপারলিংকস (ওরফে হাইপারমিডিয়া নিয়ন্ত্রণগুলি) ডেটা সহ একসাথে সার্ভারের প্রতিক্রিয়াগুলিতে এম্বেড করা হয় এবং যে কোনও ক্লায়েন্টকে সেই লিঙ্কগুলি থেকে পরবর্তী ক্রিয়াটি চয়ন করার জন্য তাদের পরিমাণ অবশ্যই যথেষ্ট be
দুর্ভাগ্যক্রমে, রয় ফিল্ডিংয়ের থিসিস ব্যতীত ওয়েবে আরএসইএসটি সম্পর্কিত সঠিক তথ্য খুঁজে পাওয়া আরও কঠিন । (তিনিই হলেন যিনি আরআরএসটি অর্জন করেছেন)। আমি 'অভ্যাস অনুশীলন' বইয়ের সুপারিশ করব কারণ এটি এসওএপি থেকে আরএসএসে কীভাবে বিবর্তিত হবে সে সম্পর্কে একটি বিস্তৃত ধাপে ধাপে টিউটোরিয়াল দেয়।
সাবান
এটি আরপিসির সম্ভাব্য রূপগুলির একটি (দূরবর্তী প্রক্রিয়া কল) আর্কিটেকচার শৈলীর। সংক্ষেপে, এটি কেবলমাত্র একটি প্রযুক্তি যা ক্লায়েন্টদের সার্ভিসের সীমানা (নেটওয়ার্ক, প্রসেস ইত্যাদি) মাধ্যমে সার্ভারের পদ্ধতিগুলি কল করার অনুমতি দেয় যেন তারা স্থানীয় পদ্ধতিগুলি কল করে। অবশ্যই এটি গতি, নির্ভরযোগ্যতা ইত্যাদি ক্ষেত্রে স্থানীয় পদ্ধতিগুলি কল করার চেয়ে পৃথক, তবে ধারণাটি এত সহজ।
তুলনা
আরপিসি-র কোনও ফর্মের সাথে আরএসটি-র তুলনা করার সময় পরিবহণ প্রোটোকল, বার্তা ফর্ম্যাট, এক্সএসডি, ডাব্লুএসডিএল ইত্যাদির বিবরণে কিছু আসে যায় না। মূল পার্থক্যটি হ'ল একটি আরপিসি পরিষেবা আরপিসি এপিআই-তে নিজের অ্যাপ্লিকেশন প্রোটোকলটি শব্দার্থক যা কেবল এটি জানে তা ডিজাইন করে সাইকেলটিকে পুনর্বহাল করে। অতএব, পরিষেবাটি ব্যবহারের আগে সমস্ত ক্লায়েন্টকে এই প্রোটোকলটি বুঝতে হবে এবং সমস্ত অনুরোধের মালিকানাধর্মী শব্দার্থকতার কারণে ক্যাশেগুলির মতো কোনও জেনারিক অবকাঠামো তৈরি করা যায় না। তদ্ব্যতীত, আরপিসি এপিআইগুলি বর্তমান অবস্থায় কোন পদক্ষেপগুলি অনুমোদিত তা প্রস্তাব দেয় না, এটি অতিরিক্ত ডকুমেন্টেশন থেকে নেওয়া উচিত। অন্যদিকে REST বলতে বোঝায় যে বিভিন্ন ক্লায়েন্টকে এপিআই শব্দার্থবিজ্ঞানের কিছু ধারণা থাকতে পারে এবং হাইপারমিডিয়া নিয়ন্ত্রণগুলি (লিঙ্কগুলি) প্রতিটি রাজ্যে উপলব্ধ বিকল্পগুলি হাইলাইট করতে পারে। সুতরাং,
একটি উপায়ে, এসওএপি (অন্য কোনও আরপিসির মতো) কোনও সংযোগ মাধ্যমকে কেবল বার্তা প্রেরণে সক্ষম ব্ল্যাক বক্স হিসাবে সংযোগকারী মিডিয়াটিকে চিকিত্সার সীমানার মধ্য দিয়ে সুড়ঙ্গ করার চেষ্টা। আরআরইএসটি হ'ল এই সিদ্ধান্তটি স্বীকার করার যে ওয়েবটি একটি বিশাল বিতরণকৃত তথ্য ব্যবস্থা, বিশ্বকে যেমনটি মেনে নেওয়া এবং এর বিরুদ্ধে লড়াইয়ের পরিবর্তে এটিকে আয়ত্ত করতে শেখা।
আপনি যখন সার্ভার এবং ক্লায়েন্ট উভয়কে নিয়ন্ত্রণ করেন এবং ইন্টারঅ্যাকশনগুলি খুব জটিল হয় না তখন অভ্যন্তরীণ নেটওয়ার্ক এপিআইয়ের জন্য এসওএপি দুর্দান্ত বলে মনে হয়। এটি ব্যবহার করা বিকাশকারীদের পক্ষে আরও স্বাভাবিক। তবে, একটি পাবলিক এপিআই এর জন্য যা অনেকগুলি স্বতন্ত্র দলগুলি ব্যবহার করে, এটি জটিল এবং বড়, আরইএসটি আরও ভাল ফিট করা উচিত। তবে এই শেষ তুলনাটি খুব ঝাপসা।
হালনাগাদ
আমার অভিজ্ঞতা অপ্রত্যাশিতভাবে এসওএপি-র চেয়ে REST বিকাশকে আরও কঠিন হতে দেখায়। কমপক্ষে। নেট জন্য। যদিও এএসপি.নেট ওয়েব এপিআই এর মতো দুর্দান্ত ফ্রেমওয়ার্ক রয়েছে, এমন কোনও সরঞ্জাম নেই যা স্বয়ংক্রিয়ভাবে ক্লায়েন্ট-সাইড প্রক্সি তৈরি করবে। 'ওয়েব পরিষেবা রেফারেন্স যুক্ত করুন' বা 'ডাব্লুসিএফ পরিষেবা রেফারেন্স যুক্ত করুন' এর মতো কিছুই নয়। এক হাতে সমস্ত সিরিয়ালাইজেশন এবং পরিষেবা কোয়েরি কোড লিখতে হবে। এবং মানুষ, এটি প্রচুর বয়লারপ্লেট কোড। আমি মনে করি, প্রতিটি উন্নয়ন প্ল্যাটফর্মের জন্য ডাব্লুএসডিএল এবং সরঞ্জামকরণ বাস্তবায়নের মতোই REST বিকাশের কিছু দরকার। প্রকৃতপক্ষে, এখানে একটি ভাল ভিত্তি বলে মনে হচ্ছে: ডাব্লুএডিএল বা ডাব্লুএসডিএল ২.০ , তবে মানগুলির কোনওটিই সমর্থন করে না বলে মনে হয়।
আপডেট (জানুয়ারী 2016)
দেখা যাচ্ছে এখন REST এপিআই সংজ্ঞা জন্য বিভিন্ন ধরণের সরঞ্জাম রয়েছে । আমার ব্যক্তিগত পছন্দটি বর্তমানে র্যামএল ।
ওয়েব পরিষেবাদি কীভাবে কাজ করে
ঠিক আছে, এটি একটি বিস্তৃত প্রশ্ন, কারণ এটি নির্দিষ্ট ওয়েব পরিষেবাদিতে ব্যবহৃত আর্কিটেকচার এবং প্রযুক্তির উপর নির্ভর করে। তবে সাধারণভাবে, একটি ওয়েব পরিষেবাদি কেবল ওয়েবে এমন কিছু অ্যাপ্লিকেশন যা ক্লায়েন্টদের কাছ থেকে অনুরোধ গ্রহণ করতে পারে এবং প্রতিক্রিয়া জানাতে পারে। এটি ওয়েবে উন্মুক্ত, সুতরাং এটি একটি ওয়েব পরিষেবা এবং এটি সাধারণত 24/7 উপলভ্য হয়, এজন্য এটি একটি পরিষেবা । অবশ্যই এটি তার ক্লায়েন্টদের জন্য কিছু সমস্যা সমাধান করে (অন্যথায় কেন কেউ কখনও ওয়েব পরিষেবা ব্যবহার করবে) ves
এটি আপনার পক্ষে সর্বদা সহজ ব্যাখ্যা।
এই নিবন্ধটি একটি স্বামীকে স্ত্রীর বর্ণনায় নিয়ে গেছে, যেখানে স্বামী তার স্ত্রীকে বিশ্রামের বিষয়ে বিশ্রামের বিষয়ে বিশ্রাম সম্পর্কে ব্যাখ্যা করে। অবশ্যই পরুন!
কীভাবে আমার স্ত্রীকে বিশ্রাম দেওয়া হয়েছে (মূল লিঙ্ক)
কীভাবে আই-বিস্তৃত-আমার-স্ত্রীর কাছে বিশদ করা হয়েছে (2013-07-19 কার্যকারী লিঙ্ক)
সোপ - সিম্পল অবজেক্ট অ্যাক্সেস প্রোটোকল একটি প্রোটোকল !
REST - উপস্থাপনের রাজ্য স্থানান্তর একটি স্থাপত্য শৈলী !
SOAP
সাধারণত একটি HTTP- র মাধ্যমে বার্তাগুলি স্থানান্তর করতে ব্যবহৃত একটি এক্সএমএল প্রোটোকল
REST
এবং SOAP
হয় তর্কসাপেক্ষে না পারস্পরিক একচেটিয়া। একটি RESTful স্থাপত্য ব্যবহার হতে পারে HTTP
বা SOAP
অথবা অন্য কোনো যোগাযোগ প্রোটোকল। REST
ওয়েবের জন্য অনুকূলিত এবং HTTP
এটি একটি নিখুঁত পছন্দ। HTTP
এছাড়াও একমাত্র প্রোটোকল রায় ফিন্ডিং এর কাগজে আলোচনা করেছেন।
যদিও রিস্ট এবং এসওএপি স্পষ্টভাবে খুব আলাদা, প্রশ্নটি এই সত্যটি আলোকিত করে REST
এবং HTTP
প্রায়শই ব্যবহৃত হয় in এটি মূলত HTTP- র সরলতার কারণে এবং এর RESTful নীতিগুলিতে খুব প্রাকৃতিক ম্যাপিংয়ের কারণে।
ক্লায়েন্ট-সার্ভার যোগাযোগ
ক্লায়েন্ট-সার্ভারের আর্কিটেকচারগুলির উদ্বেগগুলির একটি খুব স্বতন্ত্র বিচ্ছেদ রয়েছে। RESTful শৈলীতে নির্মিত সমস্ত অ্যাপ্লিকেশনগুলি অবশ্যই প্রিনপ্লেলে ক্লায়েন্ট-সার্ভার হতে হবে।
আড়ম্বরহীন
সার্ভারে প্রতিটি ক্লায়েন্টের অনুরোধের জন্য তার রাষ্ট্রটির সম্পূর্ণ প্রতিনিধিত্ব করা আবশ্যক। সার্ভারকে কোনও সার্ভারের প্রসঙ্গ বা সার্ভার সেশন স্থিতি ব্যবহার না করে ক্লায়েন্টের অনুরোধটি পুরোপুরি বুঝতে সক্ষম হতে হবে। এটি অনুসরণ করে যে সমস্ত রাজ্য অবশ্যই ক্লায়েন্টের উপরে রাখতে হবে। আমরা আরও বিশদে পরে রাষ্ট্রবিহীন প্রতিনিধিত্ব নিয়ে আলোচনা করব।
ক্যাশেবেল
ক্যাশে সীমাবদ্ধতা ব্যবহার করা যেতে পারে, ফলে প্রতিক্রিয়া ডেটাকে ক্যাশেযোগ্য বা না-ক্যাশযোগ্য হিসাবে চিহ্নিত করতে সক্ষম করে। ক্যাশেযোগ্য হিসাবে চিহ্নিত কোনও ডেটা একই পরবর্তী অনুরোধের প্রতিক্রিয়া হিসাবে পুনরায় ব্যবহার করা যেতে পারে।
ইউনিফর্ম ইন্টারফেস
সমস্ত উপাদান একক ইউনিফর্ম ইন্টারফেসের মাধ্যমে ইন্টারেক্ট করতে হবে। যেহেতু সমস্ত উপাদানগুলির ইন্টারঅ্যাকশনটি এই ইন্টারফেসের মাধ্যমে ঘটে, বিভিন্ন পরিষেবার সাথে ইন্টারঅ্যাকশন খুব সহজ। ইন্টারফেস একই! এর অর্থ হ'ল বাস্তবায়নের পরিবর্তনগুলি বিচ্ছিন্নভাবে করা যেতে পারে। এই জাতীয় পরিবর্তনগুলি মৌলিক উপাদানগুলির মিথস্ক্রিয়াকে প্রভাবিত করবে না কারণ ইউনিফর্ম ইন্টারফেস সর্বদা অপরিবর্তিত থাকে। একটি অসুবিধা হ'ল আপনি ইন্টারফেসের সাথে আটকে আছেন। ইন্টারফেস পরিবর্তন করে যদি কোনও নির্দিষ্ট পরিষেবাতে কোনও অনুকূলকরণ সরবরাহ করা যেতে পারে, তবে REST এটি নিষিদ্ধ করে বলে আপনি ভাগ্যের বাইরে। উজ্জ্বল দিকে, তবে, ওয়েস্টের জন্য আরএসটিটি অপ্টিমাইজ করা হয়েছে, তাই এইচটিটিপি থেকে আরএসটি-র অবিশ্বাস্য জনপ্রিয়তা!
উপরোক্ত ধারণাগুলি আরইএসটি-র বৈশিষ্ট্য নির্ধারণ করে এবং ওয়েব পরিষেবাদির মতো অন্যান্য আর্কিটেকচার থেকে আরইএসটি আর্কিটেকচারকে পৃথক করে। এটি উল্লেখ করা দরকারী যে একটি রেস্ট সার্ভিস একটি ওয়েব পরিষেবা, তবে একটি ওয়েব পরিষেবা অগত্যা একটি আরএসটি পরিষেবা নয়।
এই ব্লগে দেখুন পোস্টে উপর বিশ্রাম ডিজাইন প্রিন্সিপাল আরও বিশদের জন্য বিশ্রাম এবং উপরে বর্ণিত বুলেট।
আমি ব্রায়ান আর বন্ডির উত্তরটি পছন্দ করি। আমি কেবল যুক্ত করতে চেয়েছিলাম যে উইকিপিডিয়া আরএসটি-র একটি পরিষ্কার বিবরণ সরবরাহ করে । নিবন্ধটি এসওএপি থেকে পৃথক করে।
REST হ'ল রাষ্ট্রের তথ্যের বিনিময়, যতটা সম্ভব সম্ভব করা যায়।
এসওএপি একটি বার্তা প্রোটোকল যা এক্সএমএল ব্যবহার করে।
অনেক লোক এসওএপি থেকে আরএসএসে চলে যাওয়ার প্রধান কারণগুলির মধ্যে একটি হ'ল এসওএপি ভিত্তিক ওয়েব পরিষেবাদিগুলির সাথে সম্পর্কিত ডাব্লুএস- * (ডাব্লুএস স্প্ল্যাট) মানকগুলি অত্যন্ত জটিল। নির্দিষ্টকরণের তালিকার জন্য উইকিপিডিয়া দেখুন । এই স্পেসিফিকেশনগুলির প্রতিটি খুব জটিল।
সম্পাদনা করুন: কোনও কারণে লিঙ্কগুলি সঠিকভাবে প্রদর্শিত হচ্ছে না। REST = http://en.wikedia.org/wiki/REST
WS- * = http://en.wikedia.org/wiki/WS- *
উভয় এসওএপি ওয়েবসার্চেস এবং আরআরএসটি ওয়েব সার্ভিসগুলি এইচটিটিপি প্রোটোকল এবং অন্যান্য প্রোটোকলও ব্যবহার করতে পারে (কেবল এসওএপি উল্লেখ করার জন্যই আরএসটি-র অন্তর্নিহিত প্রোটোকল হতে পারে)। আমি কেবল এইচটিটিপি প্রোটোকল সম্পর্কিত এসওএপি এবং রিস্টের বিষয়েই কথা বলব, কারণ এটি তাদের মধ্যে সবচেয়ে ঘন ঘন ব্যবহার।
এসওএপি ("সিম্পল" অবজেক্ট অ্যাক্সেস প্রোটোকল) একটি প্রোটোকল (এবং একটি ডাব্লু 3 সি স্ট্যান্ডার্ড )। এটি এসওএপি বার্তাগুলি কীভাবে তৈরি, প্রেরণ এবং প্রসেস করা যায় তা সংজ্ঞায়িত করে।
এসওএপি বার্তাগুলি একটি নির্দিষ্ট কাঠামোর সাথে এক্সএমএল নথি হয়: এগুলিতে একটি খাম থাকে যা শিরোনাম এবং বডি বিভাগ ধারণ করে। শরীরে আসল ডেটা রয়েছে - আমরা প্রেরণ করতে চাই - একটি এক্সএমএল ফর্ম্যাটে। আছে দুই এনকোডিং শৈলী কিন্তু আমরা সাধারণত আক্ষরিক চয়ন , যার মানে আমাদের অ্যাপ্লিকেশন অথবা তার সাবান চালক এক্সএমএল ধারাবাহিকতাতে এবং ডেটাতে unserialization আছে।
এসওএপি বার্তাগুলি এসওপি + এক্সএমএল মাইম সাব টাইপের সাথে HTTP বার্তা হিসাবে ভ্রমণ করে। এই এইচটিটিপি বার্তাগুলি একাধিক হতে পারে, তাই allyচ্ছিকভাবে আমরা এসওএপি বার্তায় ফাইল সংযুক্ত করতে পারি।
স্পষ্টতই আমরা একটি ক্লায়েন্ট-সার্ভার আর্কিটেকচার ব্যবহার করি, সুতরাং এসওএপি ক্লায়েন্টরা এসওএপি ওয়েবসারিকে অনুরোধগুলি প্রেরণ করে এবং পরিষেবাগুলি ক্লায়েন্টদের প্রতিক্রিয়াগুলি ফেরত পাঠায়। পরিষেবাটি বর্ণনা করতে বেশিরভাগ ওয়েবসার্চই একটি ডাব্লুএসডিএল ফাইল ব্যবহার করে। ডাব্লুএসডিএল ফাইলটিতে আমরা যে ডেটা প্রেরণ করতে চাইছি তার এক্সএমএল স্কিমা (এরপরে এক্সএসডি) রয়েছে এবং ডাব্লুএসডিএল বাইন্ডিং যা ওয়েবসার্ভিস এইচটিটিপি প্রোটোকলের সাথে আবদ্ধ তা নির্ধারণ করে। সেখানে দুই বাঁধাই শৈলী: আরপিসি এবং ডকুমেন্ট। আরপিসি স্টাইলকে আবদ্ধ করে এসওএপি বডিটিতে প্যারামিটারগুলি (এইচটিটিপি অনুরোধ) বা রিটার্ন মানগুলি (এইচটিটিপি প্রতিক্রিয়া) সহ একটি অপারেশন কলের উপস্থাপনা থাকে। প্যারামিটারগুলি এবং রিটার্ন মানগুলি এক্সএসডি এর বিপরীতে বৈধ হয়। ডকুমেন্ট স্টাইলে বাঁধাইয়ের মাধ্যমে এসওএপি বডিটিতে একটি এক্সএমএল ডকুমেন্ট থাকে যা এক্সএসডি এর বিপরীতে বৈধ হয়। আমি মনে করি নথির বাইন্ডিং শৈলী ইভেন্ট ভিত্তিক সিস্টেমে আরও ভাল উপযুক্ত তবে আমি কখনও এই বাঁধাই শৈলীটি ব্যবহার করি নি। আরপিসি বাইন্ডিং শৈলী আরও প্রচলিত, তাই বেশিরভাগ লোকেরা বিতরণ অ্যাপ্লিকেশনগুলির মাধ্যমে এক্সএমএল / আরপিসি উদ্দেশ্যে SOAP ব্যবহার করে। ওয়েবসার্চগুলি সাধারণত একটি ইউডিডিআই সার্ভারের জিজ্ঞাসা করে একে অপরকে সন্ধান করে । ইউডিডিআই সার্ভারগুলি এমন রেজিস্ট্রি হয় যা ওয়েব পরিষেবাগুলির অবস্থান সংরক্ষণ করে।
সুতরাং - আমার মতে - সর্বাধিক প্রচলিত এসওএপি ওয়েবসার্ভিস RPC বাইন্ডিং শৈলী এবং আক্ষরিক এনকোডিং শৈলী ব্যবহার করে এবং এর নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
আরইএসটি (প্রতিনিধিত্বমূলক রাষ্ট্র স্থানান্তর) একটি আর্কিটেকচার শৈলী যা রায় ফিল্ডিংয়ের গবেষণামূলক প্রবন্ধে বর্ণনা করা হয়েছে । এটি SOAP যেমন প্রোটোকল নিয়ে উদ্বেগ দেয় না। এটি নাল আর্কিটেকচার শৈলীর সাথে শুরু করে কোনও বাধা নেই এবং একে একে একে REST আর্কিটেকচারের সীমাবদ্ধতাগুলি সংজ্ঞায়িত করে। জনগণ পরিষেবাগুলির জন্য RESTful শব্দটি ব্যবহার করে যা সমস্ত REST সীমাবদ্ধতা পূরণ করে, তবে রায় ফিল্ডিংয়ের মতে, আরইএসটি স্তরের মতো জিনিস নেই । যখন কোনও ওয়েবসার্চ প্রতিটি আরএসইএসটি বাধার সাথে মিলিত হয় না, তখন এটি কোনও আরএসটি ওয়েবসার্ভিস নয়।
ইউনিফর্ম ইন্টারফেস
https://example.com/api/v1/users?offset=50&count=25
। ইউআরএলগুলির কিছু নির্দিষ্টকরণ রয়েছেউদাহরণস্বরূপ, একই প্যাথগুলি সহ ইউআরএলগুলি কিন্তু বিভিন্ন কোয়েরিগুলি অভিন্ন নয়, বা পাথ অংশে ইউআরএলের শ্রেণিবদ্ধ তথ্য থাকতে হবে এবং ক্যোয়ারির অংশটিতে নন-শ্রেণিবদ্ধ তথ্য থাকতে হবে। এইগুলি কীভাবে আরএসটি দ্বারা ইউআরএল তৈরি করা যায় তার মূল বিষয়গুলি। BTW। ইউআরএল কাঠামোটি কেবল পরিষেবা বিকাশকারীদের জন্যই গুরুত্বপূর্ণ RE আর একটি প্রায়শই জিজ্ঞাসিত প্রশ্ন হ'ল এপিআই সংস্করণ, যা একটি সহজ, কারণ ফিল্ডিং অনুসারে সম্পদ দ্বারা একমাত্র ধ্রুবক শব্দটি শব্দার্থক। শব্দার্থবিজ্ঞান যদি পরিবর্তন হয় তবে আপনি একটি নতুন সংস্করণ নম্বর যুক্ত করতে পারেন। আপনি ক্লাসিকাল 3 নম্বর সংস্করণ ব্যবহার করতে পারেন এবং ইউআরএলগুলিতে কেবল প্রধান সংখ্যা যুক্ত করতে পারেন (https://example.com/api/v1/
)। সুতরাং পশ্চাদপটে সামঞ্জস্যপূর্ণ পরিবর্তনগুলির দ্বারা কিছুই ঘটে না, অ-পশ্চাদপটে সামঞ্জস্যপূর্ণ পরিবর্তনগুলির দ্বারা আপনার একটি নতুন এপিআই রুট সহ একটি অন-পশ্চাদগম্য সামঞ্জস্যপূর্ণ সামন্ত থাকবে https://example.com/api/v2/
। সুতরাং পুরানো ক্লায়েন্টরা ভাঙবে না, কারণ তারা https://example.com/api/v1/
পুরানো শব্দার্থবিজ্ঞানের সাহায্যে এটি ব্যবহার করতে পারে ।PATCH https://example.com/api/v1/users/1 {name: "Mrs Smith"}
অনুরোধ প্রেরণ করতে পারেন যেখানে {name: "Mrs Smith"}
ইচ্ছাকৃত রিসোর্স স্টেটের একটি JSON প্রতিনিধিত্ব রয়েছে, অন্য কথায়: নতুন নাম। এটি ঘটনাক্রমে ঘটে, পরিষেবাগুলি ক্লায়েন্টদের তাদের রাজ্যের পরিবর্তন করার জন্য সংস্থানগুলির উত্সের প্রতিনিধিত্ব প্রেরণ করে। উদাহরণস্বরূপ যদি আমরা নতুন নামটি পড়তে চাই তবে আমরা GET https://example.com/api/v1/users/1?fields="name"
পুনরুদ্ধার অনুরোধটি পাঠাতে পারি , যার ফলস্বরূপ এ200 ok, {name: "Mrs Smith"}
প্রতিক্রিয়া। সুতরাং আমরা ক্লায়েন্টের রাষ্ট্র পরিবর্তন করতে এই উপস্থাপনাটি ব্যবহার করতে পারি, উদাহরণস্বরূপ আমরা একটি "আমাদের পৃষ্ঠায় স্বাগতম মিসেস স্মিথ!" প্রদর্শন করতে পারি! বার্তা। রিসোর্স আইডেন্টিফায়ার (ইউআরএল) বা accept
আমরা যে অনুরোধটি প্রেরণ করেছিলাম তার উপর নির্ভর করে কোনও সংস্থার অনেকগুলি উপস্থাপনা থাকতে পারে । উদাহরণস্বরূপ আমরা image/jpeg
অনুরোধ করা হলে মিসেস স্মিথের একটি চিত্র (সম্ভবত নগ্ন নয়) প্রেরণ করতে পারি ।হাইপারমিডিয়া অ্যাপ্লিকেশন স্টেটের ইঞ্জিন হিসাবে (এরপরে HATEOAS) - হাইপারমিডিয়া একটি মিডিয়া টাইপ যা হাইপারলিংক ধারণ করতে পারে। ওয়েবের মাধ্যমে আমরা লিঙ্কগুলি অনুসরণ করি - হাইপারমিডিয়া ফর্ম্যাট (সাধারণত এইচটিএমএল) দ্বারা বর্ণিত - কোনও লক্ষ্য অর্জনের জন্য, অ্যাড্রেস বারে URL গুলি টাইপ না করে। আরআরএসটি একই ধারণা অনুসরণ করে, পরিষেবার মাধ্যমে প্রেরিত উপস্থাপনাগুলিতে হাইপারলিঙ্ক থাকতে পারে। আমরা এই হাইপারলিঙ্কগুলি পরিষেবাতে অনুরোধগুলি প্রেরণে ব্যবহার করি। প্রতিক্রিয়াটির সাথে আমরা ডেটা (এবং সম্ভবত আরও লিঙ্কগুলি) পাই যা আমরা নতুন ক্লায়েন্টের রাজ্য তৈরি করতে ব্যবহার করতে পারি, এবং আরও অনেক কিছু ... সুতরাং যে কারণে হাইপারমিডিয়া হ'ল অ্যাপ্লিকেশন স্টেট (ক্লায়েন্টের রাষ্ট্র) এর ইঞ্জিন। আপনি সম্ভবত অবাক হবেন যে ক্লায়েন্টরা হাইপারলিঙ্কগুলি কীভাবে চিনতে ও অনুসরণ করতে পারে? মানুষের দ্বারা এটি খুব সহজ, আমরা লিঙ্কটির শিরোনামটি পড়ি, সম্ভবত ইনপুট ক্ষেত্রগুলি পূরণ করে এবং তারপরে কেবল একটি একক ক্লিকে।হাইড্রির সাথে জেএসএন -এলডি ) বা হাইপারমিডিয়া নির্দিষ্ট সমাধানগুলির সাথে (উদাহরণস্বরূপ আইএএনএ লিঙ্ক সম্পর্ক এবং HAL + JSON দ্বারা বিক্রেতার নির্দিষ্ট MIME প্রকার )। অনেকগুলি মেশিন পঠনযোগ্য এক্সএমএল এবং জেএসএন হাইপারমিডিয়া ফর্ম্যাট রয়েছে , সেগুলির কেবলমাত্র একটি সংক্ষিপ্ত তালিকা:
কখনও কখনও এটি চয়ন করা কঠিন ...
সুতরাং একটি আরইএসটি ওয়েব সার্ভিস একটি এসওএপি ওয়েবসার্ভিস থেকে খুব আলাদা (RPC বাইন্ডিং শৈলী এবং আক্ষরিক এনকোডিং শৈলীর সাথে)
এবং তাই ...
একটি সোপ আরপিসি ওয়েব সার্ভিস সমস্ত রিস্টের সীমাবদ্ধতাগুলি পূরণ করে না:
ঠিক আছে আমি দ্বিতীয় প্রশ্নটি দিয়ে শুরু করব: ওয়েব পরিষেবাদিগুলি কী কী? , সুস্পষ্ট কারণে
ওয়েব সার্ভিসগুলি মূলত যুক্তির টুকরো (যা আপনি অস্পষ্টভাবে একটি পদ্ধতি হিসাবে উল্লেখ করতে পারেন) যা নির্দিষ্ট কার্যকারিতা বা ডেটা প্রকাশ করে। ক্লায়েন্ট (টেকনিক্যালি ভাষী বাস্তবায়ন ব্যয়কারী শব্দ হয়) শুধু জানতে প্যারামিটার কী (গুলি) দরকার পদ্ধতি গ্রহণ করতে যাচ্ছে এবং ডেটা ফেরত (যদি আদৌ এটা আছে) যাচ্ছে প্রকার।
নিম্নলিখিত লিঙ্কটি অত্যন্ত সুস্বাদু উপায়ে REST & SOAP সম্পর্কে সমস্ত বলে ।
আপনি যদি কখন (আরএসটি বা এসওএপি) চয়ন করতে চান তা জানতে চাইলে এর মধ্য দিয়ে যাওয়ার আরও আরও কারণ!
সোপ এবং রেস্ট দুটিই একে অপরের সাথে কথা বলার জন্য বিভিন্ন সিস্টেমের উপায়গুলি বোঝায়।
REST এটি এমন কৌশলগুলি ব্যবহার করে যা ওয়েব ব্রাউজারগুলির সাথে আপনার ব্রাউজারের সাথে যোগাযোগের অনুরূপ: একটি ওয়েব পৃষ্ঠার অনুরোধ করতে GET ব্যবহার করা, ফর্ম ক্ষেত্রে পোস্টিং ইত্যাদি O
সোপ অনুরূপ কিছু সরবরাহ করে তবে এক্সএমএল এর ব্লকগুলি সামনে এবং পিছনে প্রেরণের মাধ্যমে সবকিছু করে। এসওএপি-র আর একটি মূল উপাদান হ'ল ডাব্লুএসডিএল যা একটি এক্সএমএল ডকুমেন্ট যা কোনও ফাংশন এবং ডেটা উপাদানগুলিকে সমর্থন করে তা বর্ণনা করে। ডাব্লুএসডিএলগুলি প্রোগ্রামিং কোডগুলি স্টাবগুলি উত্পন্ন করার জন্য ক্রিয়াকলাপগুলি কী সমর্থন করে তা প্রোগ্রামগতভাবে "আবিষ্কার" করতে ব্যবহার করা যেতে পারে।
আমি মনে করি যে এটি যতটা সহজ আমি এটি ব্যাখ্যা করতে পারি। দয়া করে, কেউ আমাকে সংশোধন করতে বা এটিতে যুক্ত করতে স্বাগত।
এসওএপি একটি বার্তা ফর্ম্যাট যা সংযোগ বিচ্ছিন্ন সিস্টেমগুলি (ইন্টারনেট জুড়ে) তথ্য / ডেটা বিনিময় করতে ব্যবহৃত হয়। এটি এক্সএমএল বার্তাগুলি পিছনে পিছনে যায়।
ওয়েব পরিষেবাদি এসওএপি বার্তা প্রেরণ বা গ্রহণ করে। তারা কোন ভাষায় লিখিত হয়েছে তার উপর নির্ভর করে তারা আলাদাভাবে কাজ করে।
এসওএপি সমস্যাটি হ'ল এটি এইচটিটিপি স্ট্যাকের পিছনে আদর্শগুলির সাথে সাংঘর্ষিক। কোনও মিডলওয়্যার অনুরোধ বা প্রতিক্রিয়াটির বিষয়বস্তু না বুঝে HTTP অনুরোধগুলির সাথে কাজ করতে সক্ষম হওয়া উচিত, তবে উদাহরণস্বরূপ একটি নিয়মিত এইচটিটিপি ক্যাচিং সার্ভার কেবল ক্যাচিংয়ের জন্য এসওএপি বিষয়বস্তুর কোন অংশগুলি না জেনে এসওএপি অনুরোধগুলি নিয়ে কাজ করবে না। সওপ কেবল প্রক্সিটির মতো নিজস্ব যোগাযোগ প্রোটোকলের জন্য একটি র্যাপার হিসাবে এইচটিটিপি ব্যবহার করে।
এসওএপি - "সাধারণ অবজেক্ট অ্যাক্সেস প্রোটোকল"
এসওএপি হ'ল বার্তা স্থানান্তর করার সামান্য পরিমাণ বা ইন্টারনেটে অল্প পরিমাণে তথ্য। এসওএপি বার্তাগুলি এক্সএমএলে ফর্ম্যাট হয় এবং সাধারণত এইচটিটিপি নিয়ন্ত্রণকারী প্রেরণ করা হয় ।
রেস্ট - "রিপ্রেসেটেশনাল স্টেট ট্রান্সফার"
REST হ'ল ইভেন্ট এবং অনুরাগী এবং সার্ভারের মধ্যে তথ্য প্রাপ্তির একটি প্রাথমিক অগ্রগতি এবং এতে অনেকগুলি স্ট্যান্ডার্ড নির্ধারিত হয় না। আপনি JSON , XML বা এমনকি সাধারণ পাঠ্য হিসাবে তথ্য প্রেরণ এবং গ্রহণ করতে পারেন accept এটি SOAP এর তুলনায় হালকা ওজনযুক্ত ।
সংক্ষেপে বলা যেতে পারে, এসওএপিএস ভিত্তিক পরিষেবাদি মডেল বিশ্বকে কোকোয়াল সমবয়সীদের ইকোসিস্টেম হিসাবে দেখায় যা একে অপরকে নিয়ন্ত্রণ করতে পারে না, তবে প্রকাশিত চুক্তিগুলিকে সম্মান জানিয়ে একসাথে কাজ করতে হবে। এটি অগোছালো বাস্তব বিশ্বের বৈধ মডেল এবং মেটাডেটা ভিত্তিক চুক্তিগুলি এসওএপি পরিষেবা ইন্টারফেস গঠন করে।
আমরা এখনও এক্সএমএল বেসড দূরবর্তী প্রক্রিয়া কলগুলির সাথে এসওএপি সংযুক্ত করতে পারি, তবে এসওএপিএস ভিত্তিক ওয়েব পরিষেবাদি প্রযুক্তিটি একটি নমনীয় এবং শক্তিশালী মেসেজিং মডেল হিসাবে আবির্ভূত হয়েছে।
এসওএপি ধরে নিচ্ছে যে সমস্ত সিস্টেমই স্বাধীন এবং কোনও সিস্টেমেরই অন্য এবং অভ্যন্তরীণ কার্যকারিতার ইন্টার্নালগুলির কোনও জ্ঞান নেই। এই জাতীয় সিস্টেমগুলি সবচেয়ে বেশি যা করতে পারে তা হ'ল একে অপরকে বার্তা পাঠানো এবং আশা করা যায় যে সেগুলি কার্যকর করা হবে। সিস্টেমগুলি চুক্তিগুলি প্রকাশ করে যা তারা সম্মান জানায় এবং অন্যান্য সিস্টেমগুলি তাদের সাথে বার্তা বিনিময় করতে এই চুক্তির উপর নির্ভর করে।
সিস্টেমগুলির মধ্যে চুক্তিগুলি সম্মিলিতভাবে মেটাডেটা বলা হয়, এবং পরিষেবা বিবরণ সমন্বিত করে, বার্তা বিনিময় প্যাটার্ন সমর্থিত হয় এবং পরিষেবার নীতিগুলি পরিচালিত নীতিগুলি (কোনও পরিষেবা এনক্রিপ্ট করা প্রয়োজন, নির্ভরযোগ্যভাবে সরবরাহ করা যেতে পারে, ইত্যাদি) একটি পরিষেবা বিবরণ, পরিবর্তে, একটি বিশদ ডেটা (বার্তা নথি) এর স্পেসিফিকেশন যা সিস্টেম পাঠাবে এবং প্রাপ্ত হবে। ডকুমেন্টগুলি এক্সএমএল স্কিমা সংজ্ঞা মত এক্সএমএল বর্ণনামূলক ভাষা ব্যবহার করে বর্ণিত হয়। যতক্ষণ না সমস্ত সিস্টেম তাদের প্রকাশিত চুক্তিগুলিকে সম্মান করে, তারা আন্তঃ পরিচালনা করতে পারে এবং সিস্টেমের অভ্যন্তরীণ পরিবর্তনগুলি কখনই অন্য কোনওটিকে প্রভাবিত করে না। প্রতিটি সিস্টেম তার নিজস্ব অভ্যন্তরীণ বাস্তবায়নকে এর চুক্তিতে বা এর থেকে অনুবাদ করার জন্য দায়বদ্ধ
REST - উপস্থাপনের রাজ্য স্থানান্তর। শারীরিক প্রোটোকলটি এইচটিটিপি। মূলত, আরএসটি হ'ল ওয়েবে সমস্ত স্বতন্ত্র সংস্থান যা ইউআরএল দ্বারা স্বতন্ত্রভাবে সনাক্তযোগ্য। এই সংস্থানগুলিতে সঞ্চালিত হতে পারে এমন সমস্ত ক্রিয়াকলাপগুলি ("সিআরইউডি" ক্রিয়া) এর একটি সীমিত সেট দ্বারা বর্ণিত হতে পারে যা মানচিত্রটি এইচটিটিপি ক্রিয়াগুলিতে পরিণত হয়।
আরওএসটি এসওএপি-র তুলনায় অনেক কম "হেভিওয়েট"।