معماری سرویس گرا یا SOA از معماریهای جدیدی است که در تولید و ادغام برنامههای سازمانی مورد توجه قرار گرفته است. این نوع معماری نوعی چهارچوب سازمانی برای ارائه توانمندیهای سازمان در قالبی مستقل و به شکل self-describing (خود توصیف) است. از سوی دیگر، هسته مرکزی هر سازمان را فرآیندهای آن تشکیل میدهد. سیستمهای مدیریت فرآیند BPM نیز با هدف بهبود این فرآیندها ایجاد شدهاند. این دو تکنولوژی مستقل از هم هستند ولی ترکیب آنها تاثیر قابل توجهی در بهبود عملکرد سازمان خواهد داشت. در این مقاله برخی از تاثیرات ادغام این دو تکنولوژی را بررسی خواهیم کرد. اما قبل از این بهتر است با کاربرد معماری سرویس گرا آشنا شویم و بدانیم SOA چیست؟
معماری سرویس گرا چیست؟
معماری سرویس گرا (Service-Oriented Architecture)، نوعی الگوی طراحی است. این الگو برای ارائه خدمات به برنامههای دیگر از طریق پروتکل های معماری سرویس گرا طراحی شده است. در پاسخی دیگر به سوال معماری سرویس گرا چیست، میتوان گفت رهیافتی برای ساخت سیستمهای توزیع شده است که انواع کارکردهای نرم افزاری را در قالب سرویس ارائه میکند. این سرویسها علاوه بر اینکه به وسیله سایر نرم افزارها قابل فراخوانی هستند، برای ساخت سرویسهای جدید نیز مورد استفاده قرار میگیرند.
پیاده سازی معماری سرویس گرا برای یکپارچه سازی فناوریها در محیطی که انواع مختلفی از سکوهای نرم افزاری و سخت افزاری وجود دارد، کاملا مناسب است.
پروتکل های معماری سرویس گرا چیست؟
اکنون با معماری سرویس گرا به زبان ساده آشنا شدیم، در ادامه استانداردهای معماری سرویس گرا یا SOA را معرفی و بررسی میکنیم. پروتکل های SOA به سه دسته تقسیم میشود:
استاندارد SOAP (Simple Object Access Protocol)
استاندارد SOAP، ساختاری برای تبادل پیامها در قالب XML است که بین سرویسهای وب مبادله شده و میتواند توسط انواع پروتکلهای انتقالی مانند HTTP، SMTP و… استفاده شود. پیام SOAP دارای یک عنصر XML با عنوان Envelope (پاکت) است که دو جزء دیگر نیز دارد. جزء اول، سربرگ (header) نام دارد که شامل مشخصات امنیتی است و جزء دوم، ته برگ (footer) نامیده میشود که حاوی دادههای مبادلاتی اصلی بین سرویسهای وب است.
استاندارد WSDL (Web service Description Language)
استاندارد WSDL زبانی مبتنی بر XML است که برای توصیف ویژگیهای عملیاتی سرویسهای وب مورد استفاده قرار میگیرد. این پروتکل دارای دو بخش تعریف واسط و پیاده سازی است.
اجزای تشکیل دهنده WSDL عبارت است از:
- نوع (type): پارامترهای ارسالی و دریافتی را مشخص میکند.
- پيام (message): پارامترهاي ورودي و خروجي و همچنین نوع آنها را مشخص مي كند.
- عمليات (operation): این بخش شامل متد سرويسهاي وب بوده و داراي پيامهاي ورودي و خروجی است.
- نوع درگاه (port type): شامل مجموعه اي از عمليات است.
- مقيدسازي (binding): این بخش مشخص ميكند چگونه عمليات مربوط به نوع درگاه فراخواني شود.
- سرويس (service): شامل مجموعهاي از نقاط پایانی است.
استاندارد UDDI (Universal Description ,Discovery and Integration)
این استاندارد نوعی برنامه واسط برای شناسایی و انتشار سرویسهای وب است. UDDI شامل یک مخزن است که ارائه دهندگان به وسیله آن به تبلیغ و انتشار سرویس خود میپردازند تا دیگران بتوانند آن را شناسایی کنند. این مخزن شامل اطلاعات سرویسها (صفحات سفید)، دسته بندی صنعتی (صفحات زرد) و اطلاعات فناوری (صفحات قرمز) است. ویژگیهای مخزن UDDI شامل موارد زیر است:
- نوعی کتابچه برای ذخیره اطلاعات مربوط به سرویسهای وب به شمار میرود.
- در این مخزن، واسط سرویسهای وب که توسط WSDL توصیف شده، ذخیره میشود.
- ارتباط با این مخزن به وسیله SOAP انجام میشود.
ویژگیهای معماری سرویس گرا چیست؟
- معماری سرویس گرا با کسب و کار سازمان در یک راستا قرار دارد.
- این سیستم در مقابل تغییرات فناوری انعطاف پذیری بالایی دارد.
- SOA هم یک موضوع فنی است و هم نوعی طرز تفکر به شمار میرود.
- معماری سرویس گرا قادر به ساخت سیستمهای ترکیبی است.
- استفاده از این سیستم منجر به افزایش تعامل پذیری سازمانها میشود.
- SOA امکان ارائه یک نوع سرویس با واسطههای مختلف را امکان پذیر میسازد.
- این سیستم مبتنی بر اتصال سست است و از پیام رسانی استفاده میکند. لازم است بدانید، اتصال سست (loose coupling)، نوعی ویژگی برای سیستمهای اطلاعاتی است که در آن ماژولها طوری طراحی میشوند که وابستگی بین آنها به حداقل برسد. بنابرای ریسک اثر تغییر یک جزء بر سایر اجزا کاهش پیدا میکند.
ابزارهای طراحی و پیاده سازی معماری سرویس گرا چیست؟
در بخش قبل با ویژگیهای SOA آشنا شدیم، در این بخش قصد داریم بدانیم ابزارهای طراحی و پیاده سازی معماری سرویس گرا چیست؟ این ابزارهای لازم برای معماری سرویس گرا در 3 بخش طراحی، اجرا و مدیریت معرفی و بررسی شدهاند.
بخش طراحی و تحلیل |
ابزار مدلسازی و تحلیل فرآیند کسب و کار ابزار طراحی وب سرویس ابزار تعریف سرویسهای فرآیندی آداپتورها و ابزارهای یکپارچگی |
بخش زمان اجرا |
سرور نرم افزار گذرگاه سرویس مخزن ثبت و نگهداری سرویسها موتور فرآیندی |
بخش مدیریت و کنترل |
موتور قوانین کسب و کار رصد فعالیتهای کسب و کار ابزارهای امنیت و مدیریت |
مقایسه معماری سرویس گرا با رهیافتهای گذشته
حالا که دانستیم ویژگیهای معماری سرویس گرا چیست، لازم است این سرویس را با آنچه در گذشته وجود داشت، مقایسه کنیم تا تفاوت آنها کاملا روشن شود.
معماری سرویس گرا |
رهیافت های گذشته |
ارتباطات ارزش آفرین | ارتباطات هزینه بر |
مبتنی بر فرآیند | مبتنی بر کارکرد |
توسعه تدریجی | تولید در یک مرحله |
ایجاد (ساخت) برای تغییر | ایجاد (ساخت) برای ماندگاری |
مستقل از سکو | تک سکو |
اتصال سست | اتصال محکم |
پیام محور | شیء گرا |
نرم افزارهای تعامل پذیر | نرم افزارهای تعامل ناپذیر |
ادغام دو تکنولوژی BPM و SOA چه نتایجی به دنبال دارد؟
تا اینجا دانستیم معماری سرویس گرا چیست و چه ویژگیهایی دارد. در ادامه قصد داریم بررسی کنیم ادغام دو تکنولوژی BPM و SOA چگونه ممکن است و چه نتایجی برای کسب و کارها به دنبال دارد.
قبل از مقایسه این دو تکنولوژی، لازم است اشاره مختصری به سیستم BPM داشته باشیم.
مدیریت فرآیند کسب و کار (BPM)، شامل متدها، تکنیکها و ابزاری برای پشتیبانی از طراحی، اجرا، مدیریت و آنالیز فرآیندهای عملیاتی کسب و کار به کار میرود. به عبارت دیگر، میتوان گفت BPM تصویرسازی فرآیندهای کسب و کار یک سازمان است
شما میتوانید با مطالعه مقاله BPM چیست؟ به طور کامل با مدیریت فرآیندهای کسب و کار آشنا شوید.
BPM و SOA یکدیگر را با هدف بهبود فرآیندهای سازمانی و گسترش محصولات و خدمات با کیفیت به مصرف کنندگان نهایی، تکمیل میکنند. به این ترتیب که مدیریت فرآیند کسب و کار، به عنوان یک ابزار قادر است محصولات و خدمات مطلوب ایجاد کند. در حالی که سیستم SOA یا ساختارهای خدمات گرا، به عنوان نوعی موتور عمل کرده و کمک میکنند که سیستم BPM فعالیت کند و آن فعالیت را به مصرف کنندگان تحویل دهد.
این رابطه بین دو تکنولوژی BPM و SOA، معمولا کل عملیات سازمانها و شرکتها را بهینه میکند. ماهیت عمده معماری سرویس گرا این است که ساختاری محاسباتی توزیع کند. بنابراین ساختارهای خدمات گرا به نحوی توسعه داده شدهاند تا برای رفع نیازهای محاسباتی سازمانها و شرکتها، کاملا انعطاف پذیر باشند. توجه به این موضوع، این فرصت را در اختیار سازمانها و شرکتها قرار میدهد تا با هم در پلتفرمهای مختلف، مکانهای مختلف و پشتیبانیهای محلی مختلف همکاری کنند.
با داشتن چنین ساز و کاری، میتوان این طور نتیجه گرفت که یک مدیریت فرآیند کسب و کار وب محور و مبتنی بر SOA، میتواند در شبکهای گسترده و منفصل ارائه شود.
این موضوع نیاز به مرکزیت دادن به زیرساخت IT را از بین برده و این امکان را برای BPM فراهم میکند تا در شبکهای گسترده به کار رود. مرکزیت، همیشه مستلزم همراهی و تحمل هزینههای سربار است. هزینههایی مانند تنظیم محیط IT، نگهداری زیرساخت، هزینههای پرسنل و پشتیبانی IT و…
بنابراین از تمام مطالب بیان شده میتوان این طور نتیجه گرفت که ادغام و ارتباط دو سیستم SOA و BPM، علاه بر اینکه منجر به انعطاف پذیری سازمانها و شرکتها در به کارگیری فرآیندهای جریان کاری میشود، آنها را قادر میسازد تا در میان واحدهای کسب و کاری جدا از هم پیوستگی ایجاد کنند. همچنین سازمانها با ادغام این دو سیستم میتوانند مقدار قابل توجهی از منابع را نیز ذخیره کنند.
و در انتها …
به طور کلی، SOA فرآیندی تکامل یافته ارائه میدهد، از این لحاظ میتوان آن را نوعی بلوغ در سرویسهای وب و تکنولوژی یکپارچه سازی به شمار آورد. در معماری سرویس گرا باید این اطمینان وجود داشته باشد که درخواستهای سرویس به شکل صحیح هدایت شده و در زمان مناسب به آنها پاسخ داده میشود.
به منظور بهبود عملکرد سازمان و افزایش بازدهی کسب و کار، میتوانید دو سیستم BPM و SOA را با هم ادغام کنید. این دو تکنولوژی جدید، توان سازمانها را برای داشتن رشدی قابل توجه افزایش میدهند. همچنین ارتباط و ادغام مناسب آنها میتواند میزان بهرهوری و در نهایت سود کسب و کار را افزایش دهد.
با مطالعه این مطلب دانستیم معماری سرویس گرا چیست، چه ویژگیهایی دارد و ارتباط آن با سیستم BPM چگونه به موفقیت بیشتر سازمانها کمک میکند.