معماری سرویس گرا (SOA) چیست؟
معماری سرویس گرا یا SOA یک مدل توسعه نرم افزار است که به سرویسهای مختلف این اجازه را میدهد تا برای شکلدهی یک اپلیکیشن، از طریق پلتفرمهای مختلف با یکدیگر ارتباط برقرار کنند.
در SOA ، یک سرویس بخشی از یک نرم افزار است که برای انجام یک وظیفه مشخص، طراحی شده است.
معماری سرویس گرا به سرویسهای مختلف اجازه میدهد تا با حداقل وابستگی، به انتقال دادهها و اجرای فرایندها بپردازند.
حداقل وابستگی به مشتری یک سرویس اشاره دارد که مستقل از سرویس مورد نیاز خود عمل میکند. این مشتری، که میتواند یک سرویس نیز باشد، با سرویسهای دیگر نیز قادر به ارتباط است.
SOA با ایجاد قابلیت همکاری میان برنامهها و سرویسها و کاهش هزینههای مربوط به توسعه راه حل های نرمافزاری ، به سازمانها سود میرساند.
SOA همچنین از امکان مقیاسپذیری برنامههای موجود نیز اطمینان حاصل میکند.
معماری سرویس گرا یا SOA از معماریهای ساخت نرمافزار توزیع شده است که امکان بهرهگیری از منابع مستقل را فراهم میکند.
معماری سرویسگرا ، پیادهسازی «مفهوم سرویس» یا «مدل سرویس» در محاسبات است. در این سبک معماری، فرآیندهای کسبوکار بهعنوان خدمات نرمافزاری پیادهسازی میشوند .
که از طریق مجموعهای از رابطهای برنامه کاربردی کاملاً تعریفشده (API) قابل دسترسی هستند و از طریق سرویسهای پویا به برنامهها متصل میشوند.

در معماری سرویس گرا دو نقش اساسی وجود دارد:
- ارائهدهنده خدمات: ارائهدهنده خدمات، سازمانی است که نگهدارنده سرویس است و یک یا چند سرویس را برای استفاده دیگران، در دسترس قرار میدهد.
ارائهدهنده معمولا خدمات خود را در قالب یک قرارداد خدماتی که در آن ماهیت سرویس، نحوه استفاده از آن، الزامات خدمات و هزینههای دریافتی را مشخص میکند، ارائه میدهد.
- مصرف کننده خدمات: مصرف کننده خدمات، فرد یا سازمانی است که از سرویسهای ارائه دهنده خدمات استفاده میکند.
او میتواند متادیتای سرویس را در رجیستری پیدا کرده و اجزای مورد نیاز خود را برای اتصال و استفاده از سرویس توسعه دهد.
هر سرویس در یک SOA ، شامل کد و دادههای مورد نیاز برای اجرای کامل و مجزای یک عملکرد (مانند بررسی اعتبار مشتری، محاسبه پرداخت ماهانه وام یا پردازش درخواست وام مسکن) است.
این رابط، در قالب یک قرارداد خدمت میان ارائهدهنده و مصرفکننده خدمات ارائه میشود.
برنامههای کاربردی در پشت رابط سرویس میتوانند به زبان جاوا، دات نت، کوبول یا هر زبان برنامه نویسی دیگری نوشته شده .
و بهعنوان یک پکیج نرمافزاری توسط یک فروشنده (مانند SAP)، برنامههای کاربردی نرم افزار به عنوان خدمت SaaS (مانند Salesforce CRM)، یا نرمافزار متن باز ارائه شوند.
رابطهای سرویس اغلب با استفاده از زبان وب سرویس (WSDL) تعریف میشوند که یک ساختار برچسب استاندارد بر اساس xml (زبان نشانهگذاری توسعهپذیر) است.
سرویسهای تعریف شده در معماری SOA ، برای ارسال درخواستهای خواندن یا تغییر دادهها از پروتکلهای استاندارد شبکه – مانند SOAP/HTTP یا Restful HTTP (JSON/HTTP)- استفاده میکنند. حاکمیت سرویس (service governance) چرخه عمر توسعه یک سرویس را کنترل و در مرحله مناسب، آن را منتشر میکند.
اجزای اصلی Service Oriented Architecture
جزء های اصلی معماری سرویس گرا (SOA) عبارتند از:
- سرویسها: معماری SOA حول محور سرویسها (Services) عمل میکند. هر یک از این سرویسها، واحدهای ماژولار و مستقلی به حساب میآیند که کاراییهای منحصربهفردی از کسب و کار را نشان میدهند.
- قرارداد سرویس: منظور از Service Contract، قراردادی است که در آن قوانین، فرمتها و پروتکلهای مربوط به ارتباط بین سرویسها تعریف میشوند.
Service Contract بهعنوان یک توافق ضروری، کمک میکند تا خیالتان از بابت کنش پذیری (Interoperability) یکپارچه میان سرویسها راحت باشد.
- لایههای SOA: لایه سرویس (Service layer) بهعنوان پل ارتباطی میان لایههای سطح پایینتر (Object Layer و Component Layer) و لایه سطح بالاتر عمل میکند و ارتباط و هماهنگی میان Service ها را تسهیل ببخشد.
پروتکل های معماری سرویس گرا چیست؟
اکنون با معماری سرویس گرا به زبان ساده آشنا شدیم، در ادامه استانداردهای معماری سرویس گرا یا SOA را معرفی و بررسی میکنیم. پروتکل های SOA به سه دسته تقسیم میشود:
استاندارد SOAP، ساختاری برای تبادل پیامها در قالب XML است که بین سرویسهای وب مبادله شده و میتواند توسط انواع پروتکلهای انتقالی مانند HTTP، SMTP و… استفاده شود.
پیام SOAP دارای یک عنصر XML با عنوان Envelope (پاکت) است که دو جزء دیگر نیز دارد. جزء اول، سربرگ (header) نام دارد که شامل مشخصات امنیتی است و جزء دوم، ته برگ (footer) نامیده میشود.
که حاوی دادههای مبادلاتی اصلی بین سرویسهای وب است.
استاندارد WSDL زبانی مبتنی بر XML است که برای توصیف ویژگیهای عملیاتی سرویسهای وب مورد استفاده قرار میگیرد. این پروتکل دارای دو بخش تعریف واسط و پیاده سازی است.
اجزای تشکیل دهنده WSDL عبارت است از:
- نوع (type): پارامترهای ارسالی و دریافتی را مشخص میکند.
- پيام (message): پارامترهاي ورودي و خروجي و همچنین نوع آنها را مشخص مي كند.
- عمليات (operation): این بخش شامل متد سرويسهاي وب بوده و داراي پيامهاي ورودي و خروجی است.
- نوع درگاه (port type): شامل مجموعه اي از عمليات است.
- مقيدسازي (binding): این بخش مشخص ميكند چگونه عمليات مربوط به نوع درگاه فراخواني شود.
- سرويس (service): شامل مجموعهاي از نقاط پایانی است.
استاندارد UDDI (Universal Description ,Discovery and Integration)
این استاندارد نوعی برنامه واسط برای شناسایی و انتشار سرویسهای وب است. UDDI شامل یک مخزن است که ارائه دهندگان به وسیله آن به تبلیغ و انتشار سرویس خود میپردازند.
تا دیگران بتوانند آن را شناسایی کنند. این مخزن شامل اطلاعات سرویسها (صفحات سفید)، دسته بندی صنعتی (صفحات زرد) و اطلاعات فناوری (صفحات قرمز) است.
ویژگیهای مخزن UDDI شامل موارد زیر است:
- نوعی کتابچه برای ذخیره اطلاعات مربوط به سرویسهای وب به شمار میرود.
- در این مخزن، واسط سرویسهای وب که توسط WSDL توصیف شده، ذخیره میشود.
- ارتباط با این مخزن به وسیله SOAP انجام میشود.
معماری سرویس گرا (SOA) چه تاثیر و کاربردی در راهاندازی BPMS دارد؟
معماری سرویس گرا SOA الگویی بر پایه استفاده از سرویسهای مختلف و اتصال آنها به یکدیگر است و به سازمانها اجازه میدهد .
تا از طریق پروتکلهای امنی مانند API، ارتباط و یکپارچگی بین سامانهها و سرویسهای درون/بیرون از سازمان ایجاد نمایند.
از طرفی نرم افزار BPMS یا همان نرم افزار مدیریت فرایندهای کسب و کار نیز، ابزاری تخصصی برای طراحی، مدلسازی و خودکارسازی فرایندهای مختلف در سازمان است.
به کمک نرم افزار BPMS میتوانید فرایندهای مختلفی که در سازمان وجود دارند را بهینهسازی کرده و در سامانهها و سیستمهای سازمانی پیادهسازی نمود تا به صورت خودکار انجام شوند.
معماری سرویس گرا SOA به سازمانها این امکان را میدهد که سرویسها و سامانههای نرمافزاری خود را به کمک پروتکلهای امنی مانند API با یکدیگر ترکیب کرده و فرایندهای مختلف کسب و کار را به کمک BPMS و متناسب با سرویسهای متصل، طراحی و پیادهسازی نمایند.
به عنوان مثال فرض کنید که فرایندی تحت عنوان “درخواست کالا از انبار” طراحی میکنید و قصد دارید تا فرایند ثبت درخواست و دریافت کالا از انبار را خودکارسازی نمایید.
برای اینکه فرایند طراحی شده به نحو احسن کار کند، سامانه BPMS باید با سامانه انبارداری در ارتباط باشد، تا اطلاعاتی شامل انواع کالاها و موجودی هر کدام از آنها توسط BPMS فراخوانی شود.
در اختیار کاربر قرار بگیرد، تا به راحتی کالاهای مورد نیاز خود را درخواست دهد؛ این اتصال به موجب پشتیبانی سامانه انبارداری از معماری سرویس گرا و اتصال از طریق API صورت میگیرد .
و اگر سامانه انبارداری یا سامانه BPMS از معماری سرویس گرا پشتیبانی نکنند، این اتصال باید از طریق روشهایی که بهرهوری و عملکرد ضعیفتری دارند، صورت بگیرد و حتی در برخی موارد این اتصال ممکن است امکانپذیر نباشد.
به بیان دیگر، در یک نرمافزار BPMS، میتوان سرویسهایی را که بر اساس معماری SOA طراحی شدهاند، به عنوان بخشهایی از فرآیندهای کسب و کار تعبیه کرد.
این سرویسهای SOA میتوانند وظایف خاصی را انجام داده و توسط سامانه BPMS و فرایندهای طراحی شده در آن، به صورت خودکار فراخوانی شوند.
به علاوه، سامانه BPMS میتواند با استفاده از امکانات SOA، از سرویسهای خارجی برای بهبود تعامل و همکاری با سازمانهای دیگر نیز استفاده کند.
خلاصه
در این مقاله مفاهیم اصلی معماری سرویس گرا (SOA) برای برنامه های كاربردی توزیع شده مبتنی بر تكنولوژی سرویس های وب ،معرفی شدند.
در این مقاله بیان كردیم كه یك سرویس، در رابطه با SOA در واقع چه چیزی است و جنبه های مهم و اصلی معماری SOA را مرور نمودیم.
بدون دیدگاه