در معماری سرویس گرا، هر سرویس از دو قسمت کلی تشکیل می شود: Contract و Logic

Contract یک سرویس، ساختار و رفتار قابل انتظار آن سرویس را مشخص ساخته و Logic پیاده سازی این ساختار و رفتار است. به عبارت دیگر، با مشاهده Contract یک سرویس می توان در مورد قابلیتهای ارایه شده توسط سرویس و نحوه ارایه آن قابلیتها قضاوت کرد در صورتی که پیاده سازی این قابلیتهای "ادعا شده" وظیفه بخش Logic آن سرویس است.

به پارچه نوشته سر در این مغازه توجه کنید:

به زودی در این مکان کله پزی "اصغر کله پز" افتتاح خواهد شد.

ساعت کار: همه روزه 5 صبح تا 11 صبح (به استثنای جمعه ها) – جمعه ها از 6 صبح تا 1 عصر

کله پاچه همه روزه – جمعه ها حلیم با گوشت بوقلمون

با ظرفیت پذیرایی از 50 نفر

 

اصغر آقا در این پارچه نوشته در واقع Contract First Design را رعایت کرده است!

کله پزی مزبور هنوز افتتاح نشده است (شاید حتی وسایل آن هم تهیه نشده باشد)، اما با دیدن این نوشته بسیاری از حقایق برای ما مشخص می شود:

هدف افتتاح مغازه (کله پزی)،  زمان فعالیت، غذای ارائه شده و حداکثر ظرفیت پذیرایی مشتری

 

Contract First Design در فرآیند حرکت سازمان به سوی سرویس گرایی و حتی پس از آن، هنگام ایجاد سرویس جدید برای سازمان یک رویکرد توصیه شده (Best Practice) است. به این شکل که پیش از ایجاد هر سرویس (یا مجموعه ای از سرویس ها)، ابتدا ساختار، قابلیت ها، داده های ورودی-خروجی و کیفیت آن سرویس در قالب Service Contract ارایه می شود.

Contract ایجاد شده برای یک سرویس به دو بخش Technical Contract (یا بخش قابل پروسس توسط کامپیوتر) و Non-Technical Contract (یا بخش قابل فهم برای انسان – Human Readable Contract) تقسیم می شود.

بخش اول با توجه به تکنولوژی انتخاب شده می تواند قالبهای مختلف داشته باشد (مثلا در صورتی که تکنولوژی مورد استفاده، Web Service باشد عموما فایلهای WSDL و XSD).

بخش دوم معمولا در قالب SLA – Service Level Agreement ارایه می شود که می تواند به شکل ساده، یک فایل متنی به زبان فارسی یا انگلیسی نگاشته شود. در این بخش معمولا کیفت سرویس مانند کارایی (Performance)، حداکثر تعدا کاربر، بار ترافیک پیشبینی شده، زمان قطع سرویس به منظور پشتیبانی و .. مورد توجه قرار می گیرد.

 

نکته قابل توجه اینجاست که استفاده کنندگان از سرویس (Service Consumers) می توانند تنها با در دست داشتن Service Contract برنامه خود را توسعه دهند، بدون نیاز به اینکه حتی پیاده سازی سرویس مورد نظر آغاز شده باشد.

مشتریان آینده کله پزی اصغر آقا با خواندن همین چند جمله خواهند دانست که پس از افتتاح مغازه چه انتظاری می توان از آن داشت: قابلیت های ارایه شده (کله پاچه، حلیم)، زمان ارایه قابلیت ها و ساعت های فعالیت سرویس مورد نظر و حتی تعداد کاربران همزمان!

 

<بخش قبل  بخش بعد>