معماری سرویس گرا (بخش سوم) – مزایای سرویس گرایی
در این نوشتار شرکت تخیلی کالایاب به عنوان نمونه (Case Study) مورد اشاره قرار می گیرد.
با علم به اینکه شرکت وابستگی زیادی به IT خواهد داشت، موسسین شرکت کالایاب تصمیم می گیرند از یک شرکت مشاوره با سابقه در این رابطه کمک گیرند.
شرکت مزبور پس از جلسات متعدد با مدیران شرکت تازه تاسیس کالایاب، گزارش پیشنهادی خود را ارایه می کند. در این گزارش، معماری پیشنهاد شده برای شرکت کالایاب، معماری سرویس گرا (SOA) انتخاب شده است.
مدیران شرکت کالایاب گزارشی تکمیلی در مورد علل انتخاب این معماری به عنوان معماری مرجع (Reference Architecture) درخواست می کنند. در گزارش دوم، علل انتخاب این معماری به این شرح بیان می شود:
۱. افزایش قابلیت تعامل ذاتی سیستم ها (Increased Intrinsic Interoperability):
هرچه سیستم ها بیشتر دارای قابلیت تعامل باشند، بهتر قادر خواهند بود که اطلاعات را بین خود جابجا کنند. برنامه های مختلف نرم افزاری که قابلیت تعامل (Interoperability) نداشته باشند، دیر یا زود به یکپارچه سازی (Integration) نیاز پیدا خواهند کرد. به عبارت دیگر، قابلیت تعامل ذاتی که در نتیجه اتخاذ سرویس گرایی برای سازمان است، نیاز سازمان را نسبت به یکپارچه سازی کمینه می سازد.
این ارزش به این علت حاصل می شود که سازمان در بلند مدت مجهز به سرویس هایی با کاربردهای مختلف می گردد که این سرویس ها به دلیل پیروی از اصول (Principles) یکسانی، دارای قابلیت همگذاری (Assemble) خواهند بود تا یک فرآیند جدید را ایجاد کنند.
ارزش برای شرکت کالایاب:
شرکت کالایاب به دلیل برخورداری از سیستم ها و فرآیندهای نرم افزاری مختلف شامل ثبت سفارشات، جستجوی مناسب ترین تامین کننده، پرداخت الکترونیکی و ... در آینده نزدیک دارای سیستم های بزرگ و کوچک زیادی خواهد بود که بسیاری از آنها نیاز به تعامل و رد و بدل کردن اطلاعات با یکدیگر دارند. در نتیجه، وجود بستری که این سیستم ها و فرآیندها در آن قادر به ایجاد این تعامل، بدون نیاز به تحمل هزینه ها و محدودیت های یکپارچه سازی باشند قابلیتی مهم است.
۲. امکان انتخاب وسیع تر میان تولیدکنندگان نرم افزار (Increased Vendor Diversification Options):
این قابلیت به سازمانهایی که سرویس گرایی را به عنوان گزینه مورد نظر خود انتخاب کرده اند این امکان را می دهد که میان تولید کنندگان متعدد نرم افزارهای توسعه، قدرت انتخاب داشته باشند و حتی قادر باشند که همزمان از بیش از یک تولید کننده بهره گیرند. به عنوان مثال، سازمان قادر خواهد بود که برای توسعه همزمان از نرم افزارهای توسعه یافته توسط Microsoft، Sun Micro Systems و Oracle استفاده کند.
توجه شود که لزوما استفاده از شرکتهای مختلف توسعه نرم افزار یک مزیت به حساب نمی آید اما وجود قابلیت انتخاب میان آنها یک مزیت محسوب می شود.
این ارزش به این علت حاصل می شود که سرویس گرایی در نفس خود مستقل از Vendor و Technology است.
شکل های زیر را ببینید:
در شکل زیر سازمانی که از معماری سرویس گرا بهره نمی برد پس از یک سال تصمیم می گیرد که در تکنولوژی مورد استفاده سازمان تغییر حاصل نماید که این عمل با دشواری زیادی همراه خواهد بود.
در شکل زیر سازمانی دیده می شود که از معماری سرویس گرا بهره می برد. به دلایل گفته شده تغییر در تکنولوژی چالش کمتری به همراه خواهد داشت.
ارزش برای شرکت کالایاب:
این قابلیت شرکت کالایاب را قادر می سازد که بدون محدودیت، در مورد انتخاب یک یا چند Vendor تصمیم گیری کند. به عبارت دیگر، شرکت کالایاب در انتخاب Vendor ها صرفا به ارزش آنها برای شرکت خود توجه می کند و معماری سازمانی و نرم افزاری شرکت، محدودیتی در قبال استفاده از تامین کنندگان گوناگون تحمیل نمی کند.
۳. افزایش یکدستی (Increased Federation):
Federation به معنی ارایه منابع در قالبی یک دست و متحد در عین حفظ استقلال و خود گردانی آنهاست. به بیان دیگر، یک موجودیت در سیستم مانند مشتری همیشه به یک شکل و قالب و از طریق یک مرجع (Reference) قابل دسترسی خواهد بود.
استاندارد سازی یکی از مهمترین ویژگیهایی است که معماری سازمان را به سمت Federation پیش می برد.
ارزش برای شرکت کالایاب: با توجه به اینکه موجودیتهای مختلفی برای سیستمهای شرکت کالایاب در حال و آینده متصور است و نظر به اینکه نیاز است که این موجودیتها نه در یک سیستم، بلکه در سیستم های مختلف شرکت مورد استفاده قرار گیرد (Reuse شود)، افزایش Federation کمک به سزایی در رسیدن سازمان به یک دستی می کند. به عنوان مثال، موجودیت مشتری در سیستم تحت وب، سیستم مدیریت مشتری (CRM) و همچنین در سیستم مدیریت صورتحساب ها (Invoicing) وجود خواهد داشت و وجود یکدستی در استفاده از این موجودیت در سیستمهای مختلف بسیار سودمند خواهد بود.
(ادامه در پست بعدی)
پی نوشت: به منظور تکمیل این نوشتار و همچنین اطمینان از صحت مطلب، سوالی را از طریق Emailبرای Thomas Erl ارسال کردم که پاسخ آن را در زیر می خوانید (Thomas Erl موسس SOA School و SOA Systems Inc است. شاید بتوان وی را فعالترین محقق و نویسنده در زمینه Service Orientation دانست).
پرسش:
Interoperability و Federation هر دو از مزایایی به کار گیری سرویس گرایی است. با توجه به اینکه این دو ویژگی شباهتهایی با یکدیگر دارند، تفاوت آنها چیست؟
پاسخ:
Increased Federation is primarily about establishing a federated endpoint layer. Increased Interoperability is primarily about establishing inherent compatibility among services. Each goal supports and relies on the other, but each goal also represents a distinct part of the target state we look to achieve when adopting service-orientation.