SOAP (Simple Object Access Protocol) হলো একটি প্রটোকল যা XML ফরম্যাটে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। SOAP মেসেজের গঠন অত্যন্ত নির্দিষ্ট এবং এটি নিম্নলিখিত প্রধান অংশগুলো নিয়ে গঠিত:
SOAP এর মূল অংশসমূহ
Envelope (এনভেলপ)
SOAP মেসেজের শীর্ষ স্তর। এটি পুরো মেসেজটিকে আবৃত করে এবং মেসেজের গঠন ও প্রসঙ্গ নির্ধারণ করে।
উদাহরণ:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
...
</soap:Envelope>
Header (হেডার)
এই অংশটি ঐচ্ছিক এবং অতিরিক্ত মেটাডেটা বা প্রসেসিং নির্দেশনা ধারণ করে। সাধারণত, এটি সিকিউরিটি, অটেনটিকেশন বা রাউটিং সম্পর্কিত তথ্য প্রদান করে।
উদাহরণ:
<soap:Header>
<auth:Authentication xmlns:auth="http://example.com/auth">
<auth:Token>abc123</auth:Token>
</auth:Authentication>
</soap:Header>
Body (বডি)
SOAP মেসেজের প্রধান অংশ। এটি আসল ডেটা বা নির্দেশনা ধারণ করে যা ক্লায়েন্ট এবং সার্ভার মধ্যে আদান-প্রদান হয়।
উদাহরণ:
<soap:Body>
<GetUserDetails xmlns="http://example.com/user">
<UserId>12345</UserId>
</GetUserDetails>
</soap:Body>
Fault (ফল্ট)
এই অংশটি তখন ব্যবহৃত হয় যখন কোনো ত্রুটি বা সমস্যা ঘটে। এটি মেসেজ প্রক্রিয়াকরণের সময় কোনো সমস্যা হলে তার বর্ণনা প্রদান করে।
উদাহরণ:
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Invalid UserId</faultstring>
</soap:Fault>
</soap:Body>
SOAP এর গঠনের বিস্তারিত
Envelope বিস্তারিত
- এটি SOAP মেসেজের রুট এলিমেন্ট।
- এটি "Header" এবং "Body" এর মতো উপাদান ধারণ করে।
Header বিস্তারিত
- এটি সম্পূর্ণ ঐচ্ছিক।
- সিকিউরিটি টোকেন, সেশন ডেটা, বা অন্যান্য প্রসেসিং তথ্য সরবরাহ করে।
- SOAP মেসেজ প্রসেসরের জন্য নির্দেশনা প্রদান করে।
Body বিস্তারিত
- এটি SOAP মেসেজের সবচেয়ে গুরুত্বপূর্ণ অংশ।
- ক্লায়েন্ট এবং সার্ভারের মধ্যে প্রয়োজনীয় তথ্য বা রিকোয়েস্ট-রেসপন্স মডেল প্রদর্শন করে।
- XML ভিত্তিক ডেটা ধারণ করে।
Fault বিস্তারিত
- এটি SOAP মেসেজে ত্রুটি বা সমস্যা হলে ব্যবহৃত হয়।
- "faultcode" এবং "faultstring" ব্যবহার করে সমস্যার প্রকৃতি এবং বিবরণ প্রদান করে।
উদাহরণ: SOAP মেসেজের পূর্ণ গঠন
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
<auth:Authentication xmlns:auth="http://example.com/auth">
<auth:Token>abc123</auth:Token>
</auth:Authentication>
</soap:Header>
<soap:Body>
<GetUserDetails xmlns="http://example.com/user">
<UserId>12345</UserId>
</GetUserDetails>
</soap:Body>
</soap:Envelope>
SOAP মেসেজের এই গঠন ক্লায়েন্ট এবং সার্ভার উভয়ের জন্য যোগাযোগের স্ট্যান্ডার্ড তৈরি করে।
স্প্রিং ওয়েব সার্ভিসে SOAP গঠন ব্যবহার
স্প্রিং ওয়েব সার্ভিসে SOAP মেসেজের এই গঠন স্বয়ংক্রিয়ভাবে হ্যান্ডেল করা হয়। ডেভেলপাররা সাধারণত শুধুমাত্র Endpoint এবং Payload ডিফাইন করেন। SOAP এর Envelope, Header, Body, এবং Fault স্প্রিং WS নিজে থেকেই ম্যানেজ করে।
Read more