দুটি (এসওএপি এবং ডাব্লুএসডিএল) একটি ওয়েব পরিষেবার উপাদান যেখানে এসওএপি এবং ডাব্লুএসডিএলের মধ্যে পার্থক্য কী তা বলার আগে আমাদের একটি ওয়েব পরিষেবা কী তা নির্ধারণ করতে হবে
বেশিরভাগ অ্যাপ্লিকেশনগুলি ব্যবহারকারীদের সাথে যোগাযোগের জন্য বিকাশ করা হয়, ব্যবহারকারী একটি ইন্টারফেসের মাধ্যমে ডেটা প্রবেশ করে বা অনুসন্ধান করে এবং অ্যাপ্লিকেশনটির পরে ব্যবহারকারীর ইনপুটটির প্রতিক্রিয়া জানায়।
ওয়েব সার্ভিস অ্যাপ্লিকেশন কেবল মেশিন থেকে মেশিনে বা অ্যাপ্লিকেশনটিতে প্রয়োগ করে কেবল একই কাজ করে Web সরাসরি কোনও সরাসরি ব্যবহারকারীর ইন্টারঅ্যাকশন হয় না।
একটি ওয়েব সার্ভিস মূলত ওপেন প্রোটোকলগুলির একটি সংগ্রহ যা অ্যাপ্লিকেশনগুলির মধ্যে ডেটা বিনিময় করতে ব্যবহৃত হয়। উন্মুক্ত প্রোটোকলগুলির ব্যবহার ওয়েব পরিষেবাদিগুলি প্ল্যাটফর্মকে স্বাধীন করতে সক্ষম করে। বিভিন্ন প্রোগ্রামিং ভাষায় রচিত এবং বিভিন্ন প্ল্যাটফর্মগুলিতে চালিত সফ্টওয়্যার ইন্টারনেটের মতো কম্পিউটার নেটওয়ার্কের উপর ডেটা বিনিময় করতে ওয়েব পরিষেবাদি ব্যবহার করতে পারে। অন্য কথায়, উইন্ডোজ অ্যাপ্লিকেশনগুলি পিএইচপি, জাভা এবং পার্ল অ্যাপ্লিকেশন এবং আরও অনেকের সাথে কথা বলতে পারে, যা সাধারণ পরিস্থিতিতে সম্ভব হয় না।
ওয়েব পরিষেবাদি কীভাবে কাজ করে?
বিভিন্ন প্রোগ্রামিং ভাষায় বিভিন্ন অ্যাপ্লিকেশন লেখা থাকায় তারা প্রায়শই একে অপরের সাথে যোগাযোগ করতে পারে না। একটি ওয়েব পরিষেবা খোলা প্রোটোকল এবং মানগুলির সংমিশ্রণে প্রধানত এক্সএমএল, এসওএপি এবং ডাব্লুএসডিএল ব্যবহার করে এই যোগাযোগকে সক্ষম করে। কোনও ওয়েব পরিষেবা ডেটা ট্যাগ করার জন্য এক্সএমএল, কোনও বার্তা স্থানান্তর করতে এসওএপি এবং পরিশেষে পরিষেবার উপস্থিতি বর্ণনা করার জন্য ডাব্লুএসডিএল ব্যবহার করে। ওয়েব সার্ভিস অ্যাপ্লিকেশনটির এই তিনটি মূল উপাদানটি একবার দেখে নেওয়া যাক।
সাধারণ অবজেক্ট অ্যাক্সেস প্রোটোকল (এসওএপি)
সিম্পল অবজেক্ট অ্যাক্সেস প্রোটোকল বা এসওএপি হ'ল ইন্টারঅ্যাপেরিবিলিটি সমস্যার মুখোমুখি না হয়ে অ্যাপ্লিকেশনগুলির মধ্যে বার্তা প্রেরণ এবং গ্রহণের জন্য একটি প্রোটোকল (আন্তঃব্যবহার্যতা যার অর্থ একটি ওয়েব সার্ভিস চলছে এমন প্ল্যাটফর্মটি অপ্রাসঙ্গিক হয়ে যায়)। অনুরূপ ফাংশনযুক্ত অন্য একটি প্রোটোকল হ'ল HTTP TP এটি ওয়েব পৃষ্ঠাগুলি অ্যাক্সেস করতে বা নেট সার্ফ করতে ব্যবহৃত হয়। এইচটিটিপি নিশ্চিত করে যে আপনাকে কী ধরণের ওয়েব সার্ভার - অ্যাপাচি বা আইআইএস বা অন্য কোনও - আপনি যে পৃষ্ঠাগুলি দেখছেন বা যে পৃষ্ঠাগুলি দেখছেন সেগুলি এএসপি.নেট বা এইচটিএমএল তৈরি করা হয়েছিল কিনা তা নিয়ে আপনাকে উদ্বিগ্ন হওয়ার দরকার নেই।
SOAP অনুরোধ এবং প্রতিক্রিয়া উভয় জন্য ব্যবহৃত হয়, কারণ এর উদ্দেশ্য এর উপর ভিত্তি করে এর বিষয়বস্তু কিছুটা পৃথক হয়।
নীচে একটি এসওএপি অনুরোধ এবং প্রতিক্রিয়া বার্তার একটি উদাহরণ রয়েছে
সোপ অনুরোধ:
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPrice>
<m:BookName>The Fleamarket</m:BookName>
</m:GetBookPrice>
</soap:Body>
</soap:Envelope>
সোপ প্রতিক্রিয়া:
POST /InStock HTTP/1.1
Host: www.bookshop.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.bookshop.org/prices">
<m:GetBookPriceResponse>
<m: Price>10.95</m: Price>
</m:GetBookPriceResponse>
</soap:Body>
</soap:Envelope>
যদিও উভয় বার্তা একই দেখায়, তারা বিভিন্ন পদ্ধতি চালায়। উদাহরণস্বরূপ উপরের উদাহরণগুলির দিকে তাকানো আপনি দেখতে পাচ্ছেন যে অনুরোধকারী বার্তাটি GetBookPrice
বইয়ের দাম পাওয়ার জন্য পদ্ধতিটি ব্যবহার করে । প্রতিক্রিয়াটি GetBookPriceResponse
পদ্ধতি দ্বারা পরিচালিত হয় , যা বার্তাটি হতে চলেছে যা আপনি "অনুরোধকারী" হিসাবে দেখবেন। আপনি দেখতে পাবেন যে বার্তাগুলি এক্সএমএল ব্যবহার করে রচিত হয়েছে।
ওয়েব পরিষেবাদির বিবরণ ভাষা বা ডাব্লুএসডিএল
ডাব্লুএসডিএল একটি নথি যা একটি ওয়েব পরিষেবা বর্ণনা করে এবং কীভাবে এর পদ্ধতিগুলি অ্যাক্সেস এবং ব্যবহার করতে হয় তাও আপনাকে জানায়।
ডাব্লুএসডিএল কীভাবে আপনি জানেন যে কোনও ওয়েব পরিষেবাদিতে কী কী কী কী কী কী কী কী কী কী কী কী কী কী কী কী কী আবিষ্কার ইন্টারনেটে পাওয়া যায় তা আপনি কীভাবে জানেন।
একটি নমুনা ডাব্লুএসডিএল ফাইলটি দেখুন:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name ="DayOfWeek"
targetNamespace="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:tns="http://www.roguewave.com/soapworx/examples/DayOfWeek.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="DayOfWeekInput">
<part name="date" type="xsd:date"/>
</message>
<message name="DayOfWeekResponse">
<part name="dayOfWeek" type="xsd:string"/>
</message>
<portType name="DayOfWeekPortType">
<operation name="GetDayOfWeek">
<input message="tns:DayOfWeekInput"/>
<output message="tns:DayOfWeekResponse"/>
</operation>
</portType>
<binding name="DayOfWeekBinding" type="tns:DayOfWeekPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetDayOfWeek">
<soap:operation soapAction="getdayofweek"/>
<input>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded"
namespace="http://www.roguewave.com/soapworx/examples"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="DayOfWeekService" >
<documentation>
Returns the day-of-week name for a given date
</documentation>
<port name="DayOfWeekPort" binding="tns:DayOfWeekBinding">
<soap:address location="http://localhost:8090/dayofweek/DayOfWeek"/>
</port>
</service>
</definitions>
ডাব্লুএসডিএল ফাইল সম্পর্কে মনে রাখার প্রধান বিষয়গুলি হ'ল এটি আপনাকে সরবরাহ করে:
একটি ওয়েব পরিষেবার বিবরণ
কোনও ওয়েব পরিষেবা যে পদ্ধতিগুলি ব্যবহার করে এবং এটি নেয় সেগুলির পরামিতি
ওয়েব পরিষেবাগুলি সনাক্ত করার একটি উপায়