সার্ভিস-ওরিয়েন্টেড আর্কিটেকচার (SOA) হলো সফ্টওয়্যার ডিজাইন করার একটি পদ্ধতি যা অ্যাপ্লিকেশন বা অন্যান্য সার্ভিসে পাবলিশড এবং ডিসকভারেবল ইন্টারফেসের মাধ্যমে সার্ভিস প্রদান করে। প্রতিটি সার্ভিস একটি লুকিং কাপল্ড (সাধারণত অ্যাসিঙ্ক্রোনাস), মেসেজ-ডিপেন্ডেন্ট কমিউনিকেশন মডেল দিয়ে বিজনেস ফাংশনালিটির একটি বিচ্ছিন্ন অংশ প্রদান করে।
একটি উচ্চ-গুণবত্তা সফ্টওয়্যার সমাধান ডিজাইন করা, যেকোনো অন্যান্য জটিল কাঠামোর মতো, প্রারম্ভিক আর্কিটেকচারাল সিদ্ধান্ত আপেক্ষা করে যা ভালো-পরিচিত ডিজাইন মেথড, কাঠামোগত ডিজাইন এবং শৈলী দ্বারা গাইডেড। এই প্যাটার্নগুলো সাধারণ সার্ভিস উদ্বেগ সমাধান করে যেনে স্কেলাবিলিটি, বিশ্বস্ততা এবং নিরাপত্তা।
সার্ভিস-ওরিয়েন্টেড আর্কিটেকচারের কিছু দিক নিচে দেওয়া হলো:
আর্কিটেকচারাল বনাম ইমপ্লিমেন্টেশন মডেল: IT প্রফেশনালরা ওয়েব সার্ভিস ব্যবহার করে অ্যাপ্লিকেশন ডেলিভার করতে গেলে সাধারণত নিজেদের একটি আর্কিটেকচারাল মডেল (SOA) এবং একটি ইমপ্লিমেন্টেশন মডেল (ওয়েব সার্ভিস) এ একসাথে আপ-টু-স্পিড পাওয়ার অবস্থায় পান।
এটি একটি মডেল-ড্রিভেন আর্কিটেকচার পদ্ধতি বিবেচনা করে যা একটি অ্যাপ্লিকেশনের কাঠামো এবং আচরণের প্ল্যাটফর্ম-স্বাধীন মডেলকে সেই মডেল করা আচরণ বাস্তবায়ন করতে ব্যবহৃত পদ্ধতি এবং প্ল্যাটফর্মের সাথে মিশ্রিত হতে দেয় না।
সিস্টেম আর্কিটেক্ট ডোমেইন-স্পেসিফিক ল্যাঙ্গুয়েজ বা ইউনিফাইড মডেলিং ল্যাঙ্গুয়েজ (UML) প্রোফাইল ব্যবহার করে সার্ভিস ডোমেইনের সমস্যা মডেল করে। আর্কিটেক্টকে এই মডেল থেকে প্ল্যাটফর্ম এবং ল্যাঙ্গুয়েজ সমস্যা বাদ রাখতে বাধ্য করে সেই প্রিন্সিপলগুলো তাদের ইমপ্লিমেন্টেশন-স্পেসিফিক সিকিউরিটি সমস্যাও বাদ রাখতে বাধ্য করে।
সিকিউরিটি উদ্বেগ পুনর্বিবেচনা: RosettaNet পরিবারের B2B স্ট্যান্ডার্ড ডেভেলপ করলে টিম উদ্বেগ উঠিয়েছিল যা শুধু আলোচনা করা হয়েছে, এবং সেগুলো সমাধান করার দিকে একটি পদক্ষেপ নেয়া হয়েছিল। ধারণা ছিল বिजনেস আর্কিটেক্টদের মূল স্টেকহোল্ডারদের কাছে একটি সরলীকৃত অপশন সেট উপস্থাপন করা যারা RosettaNet টিম ডেটা এবং প্রসেসিং রিকোয়ারমেন্ট সংগ্রহ করেছিল।
এই বিজনেস আর্কিটেক্টরা সিকিউরিটি ইস্যুর টেকনিক্যাল দিকগুলোতে পারদর্শী নয়, কিন্তু সেগুলো সুরক্ষিত পদ্ধতিতে পাস করা প্রয়োজনীয় তথ্যকে নিরাপত্তা ব্যবস্থা ছাড়া পাঠানো যেতে পারে এমন ডেটা থেকে আলাদা করতে সক্ষম ছিল।
সিকিউরিটি ইস্যুর জেনারালাইজেশন: সাধারণ সফ্টওয়্যার সিকিউরিটি উদ্বেগের ওপর কিছু টেক্সট আছে, এবং স্পেসিফিক সিকিউরিটি ইমপ্লিমেন্টেশন এবং টেকনোলজির ওপর আরও অনেক। তবে, সিকিউরিটি-রিলেটেড টেকনিক্যাল ইমপ্লিমেন্টেশন চালিত বেসিক ইন্টেন্ট সমাধান করতে সক্ষম হলে ভালো। বিশেষভাবে, একটি বর্ণনামূলক প্রিমিটিভ ইন্টেন্ট সেট সংজ্ঞায়িত করা সম্ভব যা বুঝতে সহজ এবং যা স্পেসিফিক টেকনিক্যাল ইমপ্লিমেন্টেশন চিহ্নিত করতে অ্যাক্সেস করা যায়।
ইমপ্লিমেন্টেশন দৃষ্টান্তে, অথোরাইজেশনের দুটি প্রধান পদ্ধতি আছে যেগুলো নিচে দেওয়া হলো:
ব্যক্তিগত পক্ষের অথোরাইজেশন: প্রতিটি পক্ষকে ফাংশনগুলোর একটি স্পষ্ট অ্যাক্সেস রাইট সেট alok করা হয়।
ভূমিকা মাধ্যমে অথোরাইজেশন: প্রতিটি অ্যাপ্লিকেশনের জন্য একাধিক ভূমিকা তৈরি করা হয় এবং উপরে সংজ্ঞায়িত অনুযায়ী অ্যাক্সেস রাইট بتلك ভূমিকাগুলোর জন্য alok করা হয় না হলে ব্যক্তিগত পক্ষের জন্য। যখন প্রতিটি পক্ষ অথেনটিকেট হয়, পক্ষের জন্য সরবরাহ করা ক্রেডেনশিয়ালে পক্ষের ভূমিকা থাকে, যা সিদ্ধান্ত নেয় যে পক্ষটি একটি নির্দিষ্ট ফাংশন অ্যাক্সেস করার জন্য অনুমোদিত কিনা।