WSDL (Web Services Description Language) একটি XML (Extensible Markup Language) ভিত্তিক ভাষা যা ওয়েব সার্ভিসের কার্যকারিতা এবং ডেটা বিনিময়ের পদ্ধতি বর্ণনা করে। এটি মূলত ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের চুক্তি (Contract) নির্ধারণ করতে ব্যবহৃত হয়।
WSDL একটি ওয়েব সার্ভিস সম্পর্কে নিম্নলিখিত বিষয়গুলো স্পষ্ট করে:
- কী কী কার্যক্রম (Operations) উপলব্ধ।
- কী ধরনের ইনপুট এবং আউটপুট ডেটা ব্যবহার করা হবে।
- কোন প্রোটোকল এবং এন্ডপয়েন্ট (Endpoints) ব্যবহৃত হবে।
WSDL এর গঠন
WSDL সাধারণত নিচের কিছু প্রধান উপাদান নিয়ে গঠিত:
Types
ডেটা টাইপ সংজ্ঞায়িত করে। এটি XML Schema ব্যবহার করে ইনপুট এবং আউটপুট ডেটার গঠন নির্ধারণ করে।
<types>
<schema>
<!-- XML Schema Definition -->
</schema>
</types>
Message
ওয়েব সার্ভিসের জন্য ইনপুট এবং আউটপুট বার্তার কাঠামো নির্ধারণ করে।
<message name="GetExampleRequest">
<part name="parameters" element="tns:GetExampleRequest"/>
</message>
PortType
সার্ভিসের উপলব্ধ কার্যক্রম (Operations) এবং তাদের ইনপুট ও আউটপুট বার্তা সংজ্ঞায়িত করে।
<portType name="ExamplePortType">
<operation name="GetExample">
<input message="tns:GetExampleRequest"/>
<output message="tns:GetExampleResponse"/>
</operation>
</portType>
Binding
PortType এবং প্রোটোকল বা ডেটা ফরম্যাটের মধ্যে সংযোগ স্থাপন করে।
<binding name="ExampleBinding" type="tns:ExamplePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetExample">
<soap:operation soapAction="http://example.com/GetExample"/>
</operation>
</binding>
Service
এন্ডপয়েন্ট বা URL নির্দেশ করে যা ওয়েব সার্ভিসে অ্যাক্সেস দেয়।
<service name="ExampleService">
<port name="ExamplePort" binding="tns:ExampleBinding">
<soap:address location="http://example.com/soap"/>
</port>
</service>
WSDL কীভাবে কাজ করে?
- ওয়েব সার্ভিস প্রকাশ
একটি ওয়েব সার্ভিস তৈরি করার পর, WSDL ব্যবহার করে সেই সার্ভিসের ডেটা বিনিময়ের নিয়ম এবং এন্ডপয়েন্ট সম্পর্কে তথ্য প্রকাশ করা হয়। - ক্লায়েন্ট জেনারেশন
WSDL ফাইল ব্যবহার করে ক্লায়েন্ট অ্যাপ্লিকেশন জেনারেট করা হয়। এটি সার্ভিসে যোগাযোগের জন্য প্রয়োজনীয় স্টাব (Stub) তৈরি করে। - SOAP বার্তা বিনিময়
ক্লায়েন্ট এবং সার্ভারের মধ্যে SOAP বার্তা আদান-প্রদান হয়। WSDL অনুযায়ী এই বার্তাগুলোর গঠন নিশ্চিত করা হয়। - প্রোটোকল নির্ধারণ
WSDL HTTP, SMTP, বা JMS এর মতো বিভিন্ন প্রোটোকল সমর্থন করে। ক্লায়েন্ট এবং সার্ভার এই প্রোটোকলের মাধ্যমে যোগাযোগ স্থাপন করে।
WSDL ব্যবহার করার সুবিধা
স্ট্যান্ডার্ড চুক্তি (Standard Contract):
ক্লায়েন্ট এবং সার্ভারের মধ্যে নির্ভরযোগ্য যোগাযোগের জন্য একটি নির্দিষ্ট স্ট্যান্ডার্ড নির্ধারণ করে।
ইন্টারঅপারেবিলিটি:
WSDL এর সাহায্যে ভিন্ন ভিন্ন প্ল্যাটফর্ম এবং প্রোগ্রামিং ভাষায় তৈরি অ্যাপ্লিকেশন একে অপরের সঙ্গে কাজ করতে পারে।
স্বয়ংক্রিয় ক্লায়েন্ট জেনারেশন:
WSDL ফাইল থেকে স্বয়ংক্রিয়ভাবে ক্লায়েন্ট জেনারেট করা যায়, যা ডেভেলপমেন্টে সময় সাশ্রয় করে।
স্কেলেবিলিটি:
WSDL ব্যবহার করে সহজেই নতুন ফিচার বা এন্ডপয়েন্ট যুক্ত করা যায়।
উদাহরণ: WSDL ফাইল
নিম্নলিখিত একটি উদাহরণ WSDL ফাইল:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://example.com/soap"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/soap">
<types>
<xsd:schema targetNamespace="http://example.com/soap">
<xsd:element name="GetExampleRequest" type="xsd:string"/>
<xsd:element name="GetExampleResponse" type="xsd:string"/>
</xsd:schema>
</types>
<message name="GetExampleRequest">
<part name="parameters" element="tns:GetExampleRequest"/>
</message>
<message name="GetExampleResponse">
<part name="parameters" element="tns:GetExampleResponse"/>
</message>
<portType name="ExamplePortType">
<operation name="GetExample">
<input message="tns:GetExampleRequest"/>
<output message="tns:GetExampleResponse"/>
</operation>
</portType>
<binding name="ExampleBinding" type="tns:ExamplePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetExample">
<soap:operation soapAction="http://example.com/GetExample"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="ExampleService">
<port name="ExamplePort" binding="tns:ExampleBinding">
<soap:address location="http://example.com/soap"/>
</port>
</service>
</definitions>
সারাংশ
WSDL একটি গুরুত্বপূর্ণ টুল যা ওয়েব সার্ভিসের কার্যকারিতা এবং ডেটা বিনিময়ের পদ্ধতি নির্ধারণ করে। এটি ওয়েব সার্ভিসের ইন্টারঅপারেবিলিটি এবং কার্যকারিতা নিশ্চিত করতে সাহায্য করে। ডেভেলপমেন্ট প্রক্রিয়াকে সুসংগঠিত এবং সহজ করতে WSDL একটি অপরিহার্য মাধ্যম।
Read more