معماری سرویسگرا
معماری سرویسگرا (به انگلیسی: Service-oriented Architecture (به اختصار SOA))، یکی از رهیافتهای طراحی نرمافزار با تمرکز بر طراحی سامانههای توزیعشده است. در این معماری کارکردهای نرمافزاری در قالب سرویس توسط مؤلفههای برنامههای کاربردی به دیگر مؤلفهها در بستر ارتباطات تحت شبکه ارائه میشود.
امروزه از این معماری در دستگاههای دولتی و شرکتهای خصوصی برای توسعه برنامههای کاربردی و سیستمها، یکپارچگی سیستمهای اطلاعاتی سازمانی یا تعاملات اطلاعاتی بین سازمانی و استاندارد وب سرویس (Web Service) و پروتکلهای آن استفاده میشود.
معرفی
سرویس
یک سرویس یک واحد مجزا و مستقل از یک وظیفهمندی است که میتواند به صورت مستقل و با کمترین وابستگی از دیگر بخشها استفاده، بروزرسانی و عمل کند. ویژگیهای یک سرویس عبارتند از:
- منطقاً نشان دهنده یک فعالیت کسبوکار با خروجی معین است.
- خودمختار است.
- محتویات و جزئیات آن بر مشتریان سرویس پوشیده است.
- سرویس ممکن است شامل دیگر سرویسها برای ارائه سرویس خود باشد.
سرویسهای متفاوت میتوانند برای ارائه وظیفهمندی برنامههای کاربردی بزرگتر با هم تجمیع و یکپارچه شوند. در واقع معماری سرویسگرا با برنامهنویسی مؤلفهگرا ( 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 ارزش بنیادی ارائه شد. این شش ارزش بنیادین در معماری سرویسگرا عبارتند از:
- ارزشهای کسبوکار از راهبردهای فنی اهمیت بیشتری دارند.
- اهداف راهبردی از منافع پروژهای خاص اهمیت بیشتری دارند.
- تعامل پذیری ذاتی از یکپارچه سازیهای مقطعی اهمیت بیشتری دارد.
- سرویسهای اشتراکی از پیادهسازیهای خاص منظوره از اهمیت بیشتری برخوردار هستند.
- انعطافپذیری از سازماندهی اهمیت بیشتری دارد.
- بهبود تکاملی از کمالگرایی اولیه اهیمت بیشتری دارد.
تاریخچه معماری سرویسگرا در ایران
شروع فعالیتهای معماری سرویس گرا در ایران به سالهای 84 و 85 باز میگردد. اولین تحقیقات و مطالعات دانشگاهی در این سالها انجام شد و هسته پژوهشی معماری سیستم های اطلاعاتی دانشگاه شهید بهشتی بایگانیشده در ۹ دسامبر ۲۰۱۸ توسط Wayback Machine از پیشگامان این حوزه بود، دکترفریدون شمس مدیر هسته پژوهشی، هدایت چندین پایاننامه کارشناسی ارشد با موضوع معماری سرویسگرا را به عهده گرفت(که تا آن زمان کمتر در دانشگاهها کار شده بود) و این روند تا سالهای بعد ادامه داشت. برگزاری دوازدهمین کنفرانس انجمن کامپیوتر در اسفند 1385 فرصت خوبی برای معرفی معماری سرویس گرا بود؛ در این کنفرانس یک کارگاه آموزشی مختص معماری سرویسگرا توسط امیر مهجوریان و دکتر فریدون شمس برگزار شد که نقش مهمی در آشنایی دانشجویان و جامعه علمی با معماری سرویسگرا داشت.
جذابیت موضوع معماری سرویس گرا برای دانشجویان و مراکز دانشگاهی به همراه وجود منابع آموزشی کافی باعث شد از اواخر دهه 80 تا اوایل دهه 90، تعداد قابل توجهی از دانشجویان تحصیلات تکمیلی در دانشگاههای معتبر برای موضوع پایاننامه یا مقالات علمی به این موضوع بپردازند، موضوعات مرتبط با معماری سرویسگرا بعد از نیمه دهه 90 همچنان مورد توجه پژوهشگران و دانشجویان بود تا در چند سال اخیر با داغ شدن موضوع "معماری مایکروسرویس(مشتق شده از معماری سرویس گرا)"، توجهها به این عنوان جلب شد و مفاهیم سرویس گرایی با شکل جدیدتر و جذاب تر مطرح شد.
با هدف ترویج و فرهنگسازی مفاهیم و استانداردهای معماری سازمانی و معماری سرویسگرا، در سال 1390 آزمایشگاه معماری سازمانی سرویسگرا در دانشگاه شهید بهشتی با حمایت سازمان فناوری اطلاعات ایران تأسیس گردید و پس از آن طی سالهای 94 تا 97، هفت شعبه از آزمایشگاههای معماری سازمانی سرویسگرا در 7 دانشگاه کشور راه اندازی گردید.
به موازات توسعه مباحث علمی معماری سرویس گرا در کشور، شرکتهای نرم افزاری نیز برای بروزرسانی محصولات خود همسو با ترند روز دنیا اقدام به مدرن سازی سیستم های اطلاعاتی با رویکرد سرویسگرا نمودند، اکنون بیشتر شرکتهای نرم افزاری مدعی تبعیت از معماری سرویسگرا در محصولات خود هستند - اگرچه کیفیت و کمیت این ادعاها نیاز به راست آزمایی دارد – که نشان دهنده اهمیت معماری سرویس گرا در حوزه معماری سیستم(و حتی کل حوزه فناوری اطلاعات) است.
منابع
- ↑ درگاه اینترنتی آزمایشگاه مرجع معماری سازمانی سرویسگرا soea.sbu.ac.ir
- ↑ "Chapter 1: Service Oriented Architecture (SOA)". msdn.microsoft.com
- ↑ "Service-Oriented Architecture Standards - The Open Group
- ↑ «درگاه اینترنتی هسته پژوهشی معماری سیستم های اطلاعاتی isa.sbu.ac.ir». بایگانیشده از اصلی در ۹ دسامبر ۲۰۱۸. دریافتشده در ۳۱ مارس ۲۰۱۹.
- ↑ Abate, Aiken, Burke, Robert J., Dr. Peter, Joseph N. (2000). Achieving EAI Using A Services-Based Architecture. Wiley & Sons
- ↑ www.soa-manifesto.org. Retrieved 2016