معماری سرویس‌گرا

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو

معماری سرویس‌گرا (به انگلیسی: Service-oriented Architecture (به اختصار SOA))، یکی از رهیافت‌های طراحی نرم‌افزار با تمرکز بر طراحی سامانه‌های توزیع‌شده است. در این معماری کارکردهای نرم‌افزاری در قالب سرویس توسط مؤلفه‌های برنامه‌های کاربردی به دیگر مؤلفه‌ها در بستر ارتباطات تحت شبکه ارائه می‌شود.[۱] [۲]

امروزه از این معماری در دستگاه‌های دولتی و شرکت‌های خصوصی برای توسعه برنامه‌های کاربردی و سیستم‌ها، یکپارچگی سیستم‌های اطلاعاتی سازمانی یا تعاملات اطلاعاتی بین سازمانی و استاندارد وب سرویس (Web Service) و پروتکل‌های آن استفاده می‌شود.[۱]

معرفی[ویرایش]

سرویس[ویرایش]

یک سرویس یک واحد مجزا و مستقل از یک وظیفه‌مندی است که می‌تواند به صورت مستقل و با کمترین وابستگی از دیگر بخش‌ها استفاده، بروزرسانی و عمل کند. ویژگی‌های یک سرویس عبارتند از: [۳]

  1. منطقاً نشان دهنده یک فعالیت کسب‌وکار با خروجی معیین است.
  2. خودمختار است.
  3. محتویات و جزئیات آن بر مشتریان سرویس پوشیده است.
  4. سرویس ممکن است شامل دیگر سرویس‌ها برای ارائه سرویس خود باشد.
دانه بندی سرویس ها

سرویس‌های متفاوت می‌توانند برای ارائه وظیفه‌مندی برنامه‌های کاربردی بزرگتر با هم تجمیع و یکپارچه شوند. در واقع معماری سرویسگرا با برنامه‌نویسی مؤلفه‌گرا ( modular programming) ارتباط نزدکی دارد. معماری سرویسگرا مؤلفه‌های نرم‌افزار توسعه یافته به صورت مجزا که به صورت مستقل و توزیع شده‌استقرار یافته‌اند را با هم یکپارچه می‌سازد. این معماری توسعه نرم‌افزار مبتنی بر مؤلفه و ارتباط پیرامون شبکه مؤلفه‌ها بر مبنای اصل پنهان‌سازی در توسعه برنامه‌های کاربردی را تسهیل می‌کند.

پروتکل‌های معماری سرویسگرا[ویرایش]

برخی از قرار داده‌های معماری سرویسگرا عبارتند از: [۱]

  • (SOAP (Simple Object Access Protocol: ساختاری برای تبادل پیام‌ها در قالب XML است که بین سرویس‌های وب تبادل می‌شود.
  • (WSDL (Web service Description Language: زبانی مبتنی بر XML که جهت توصیف ویژگی‌های عملیاتی سرویس‌های وب استفاده می‌شود و دارای دو بخش تعریف واسط و پیاده‌سازی است.
  • (UDDI (Universal Description ,Discovery and Integration: واسطی است برای انتشار و شناسایی سرویس‌های وب و شامل یک مخزن می‌شود که ارائه دهندگان به انتشار و تبلیغ سوریس خود می‌پردازند تا دیگران بتوانند آن را شناسایی کنند.

خواص معماری سرویسگرا[ویرایش]

مهمترین خواص معماری سرویسگرا عبارتند از: [۱] [۴]

  • استفاده از استانداردهای مستقل از فناوری و مورد توافق برای ارائه مؤلفه‌های نرم‌افزاری تحت قالب سرویس
  • معرفی‌کننده یک روش مشخص و مورد توافق برای تعریف و ارتباط بین مؤلفه‌های نرم‌افزاری
  • مؤلفه‌های نرم‌افزاری منفرد می‌توانند در ساخت دیگر نرم‌افزارها استفاده شوند
  • تقویت‌کننده رهیافت سرهم بندی اجزاء از قبل تعریف شده برای ساخت نرم‌افزارها به جای توسعه و پیاده‌سازی آنها
  • می‌تواند به نرم افزاهای خارج سازمانی نیز مانند انواع داخلی آن متصل شوند.

گذرگاه سرویس سازمانی[ویرایش]

گذرگاه سرویس سازمانی

گذرگاه سرویس سازمانی ((enterprise service bus (ESB) یک زیرساخت نرم‌افزاری است که به عنوان یک لایه واسط از میانافزار، نیازمندی‌هایی مانند یکپارچه سازی بین سرویس‌ها، امنیت، مدیریت، کنترل سرویس و مدیریت ارتباطات را پشتیبانی می‌کند. [۱] این میان‌افزار برنامه ای کاربردی است که بین دیگر برنامه‌های کاربردی تجاری ارتباط برقرار می‌کند و در حالت ایدعال تمام ارتباطات و تبادلات بین برنامه‌ها و سیستم‌های سازمانی را مدیریت و تسهیل کند.

عدم یکپارچگی سرویس‌های نرم‌افزاری و بانک‌های اطلاعاتی انگیزه اصلی بهره‌گیری از گذرگاه سرویس سازمانی در معماری سرویسگرا است. بطوریکه در شرکت‌های بزرگ جهانی بالاترین اولویت کاری اکثر مدیران فناوری اطلاعات یکپارچه سازی و سرویس گرایی است و بهره‌گیری از گذرگاه سرویس سازمانی در این راستا می‌تواند بسیار تسهیل‌کننده یکپارچگی سیستم‌های سازمانی باشد.[۱]

تاریخچه[ویرایش]

معماری سرویسگرا نخستین بار با عنوان معماری مبتنی بر سرویس در سال 1998 توسط یک تیم یکپارچه سازی سرویس‌های مدیریت و فرایندهای کسب‌وکار مبتنی بر سرویس ارائه شد. [۵]

بیانیه سرویسگرایی[ویرایش]

در سال 2009 بیانیه‌ای جهت معماری سرویسگرا بر بمنای 6 ارزش بنیادی ارائه شد. این شش ارزش بنیادین در معماری سرویسگرا عبارتند از: [۶]

  1. ارزش‌های کسب‌وکار از راهبردهای فنی اهمیت بیشتری دارند.
  2. اهداف راهبردی از منافع پروژه‌ای خاص اهمیت بیشتری دارند.
  3. تعامل پذیری ذاتی از یکپارچه سازی‌های مقطعی اهمیت بیشتری دارد.
  4. سرویس‌های اشتراکی از پیاده‌سازی‌های خاص منظوره از اهمیت بیشتری برخوردار هستند.
  5. انعطاف‌پذیری از سازماندهی اهمیت بیشتری دارد.
  6. بهبود تکاملی از کمالگرایی اولیه اهیمت بیشتری دارد.

تاریخچه معماری سرویسگرا در ایران[ویرایش]

شروع فعالیت‌های معماری سرویس گرا در ایران به سال‌های 84 و 85 باز می­‌گردد. اولین تحقیقات و مطالعات دانشگاهی در این سال‌ها انجام شد و هسته پژوهشی معماری سیستم های اطلاعاتی دانشگاه شهید بهشتی از پیشگامان این حوزه بود، دکترفریدون شمس مدیر هسته پژوهشی، هدایت چندین پایان‌نامه کارشناسی ارشد با موضوع معماری سرویسگرا را به عهده گرفت(که تا آن زمان کمتر در دانشگاه‌ها کار شده بود) و این روند تا سال‌های بعد ادامه داشت. برگزاری دوازدهمین کنفرانس انجمن کامپیوتر در اسفند 1385 فرصت خوبی برای معرفی معماری سرویس گرا بود؛ در این کنفرانس یک کارگاه آموزشی مختص معماری سرویسگرا توسط امیر مهجوریان و دکتر فریدون شمس برگزار شد که نقش مهمی در آشنایی دانشجویان و جامعه علمی با معماری سرویسگرا داشت.[۱][۴]

جذابیت موضوع معماری سرویس گرا برای دانشجویان و مراکز دانشگاهی به همراه وجود منابع آموزشی کافی باعث شد از اواخر دهه 80 تا اوایل دهه 90، تعداد قابل توجهی از دانشجویان تحصیلات تکمیلی در دانشگاه‌های معتبر برای موضوع پایان‌نامه یا مقالات علمی به این موضوع بپردازند، موضوعات مرتبط با معماری سرویسگرا بعد از نیمه دهه 90 همچنان مورد توجه پژوهشگران و دانشجویان بود تا در چند سال اخیر با داغ شدن موضوع "معماری مایکروسرویس(مشتق شده از معماری سرویس گرا)"، توجه‌ها به این عنوان جلب شد و مفاهیم سرویس گرایی با شکل جدیدتر و جذاب تر مطرح شد.[۱][۴]

با هدف ترویج و فرهنگ­سازی مفاهیم و استانداردهای معماری سازمانی و معماری سرویس­گرا، در سال 1390 آزمایشگاه معماری سازمانی سرویس­گرا در دانشگاه شهید بهشتی با حمایت سازمان فناوری اطلاعات ایران تأسیس گردید و پس از آن طی سال‌های 94 تا 97، هفت شعبه از آزمایشگاه­‌های معماری سازمانی سرویس­گرا در 7 دانشگاه کشور راه ­اندازی گردید.[۱][۴]

به موازات توسعه مباحث علمی معماری سرویس گرا در کشور، شرکت­‌های نرم­ افزاری نیز برای بروزرسانی محصولات خود همسو با ترند روز دنیا اقدام به مدرن­ سازی سیستم ­های اطلاعاتی با رویکرد سرویس­گرا نمودند، اکنون بیشتر شرکت­‌های نرم ­افزاری مدعی تبعیت از معماری سرویس­گرا در محصولات خود هستند - اگرچه کیفیت و کمیت این ادعاها نیاز به راست آزمایی دارد – که نشان دهنده  اهمیت معماری سرویس گرا در حوزه معماری سیستم(و حتی کل حوزه فناوری اطلاعات) است.[۱][۴]

منابع[ویرایش]