چکیده
معماری سرویس گرا به سرعت به عنوان نخستین ائتلاف و راه حل معماری محیطهای محاسباتی ناهمگون و پیچیده معاصر پدیدار گشته است . SOA نیازمند این است که سازمانها مدلهای کسب و کار خود را ارزیابی کنند, به ایجاد تکنیکهای تحلیل و طراحی مبتنی بر سرویس بیاندیشند و طرحهای گسترش و پشتیبانی روابط مابین فروشنده , مشتری و شریک تجاری را ارزیابی کنند . طراحان نمی توانند انتظار مدیریت توسعه یک پروژه سرویس گرا را داشته باشند بدون اینکه به شیوه طراحی دقیق و متدولوژی توسعه تکیه داشته باشند . از آنجایی که متدولوژی توسعه مبتنی بر سرویس اهمیت حیاتی در توصیف ,ساخت , پالایش و تطبیق فرایندهای کسب وکاری دارد که تغییرپذیری بالایی دارند و تا به حال روش مناسب و منسجمی برای توسعه برنامه های کاربردی تجاری قدرتمند وجود ندارد , هدف این تحقیق ارائه روشی برای طراحی مبتنی بر سرویس می باشد . در این تحقیق از تکنیکها و مباحث مطرح درSOA استفاده شده و برای طراحی سرویس گرا روشی پیشنهاد می شود . تمرکز تحقیق بر روی فرایند طراحی می باشدکه اصول و تکنیکهای کافی برای مشخص کردن , ساخت و پالایش فرایندهای کسب وکاری که به سرعت دچار تغییر می شوند فراهم می کند . روش پیشنهای برای ایجاد کنترل متمرکز از تجرید لایه های سرویس و طبقه بندی انواع سرویس استفاده نموده و در کنار استفاده از سیستمهای موروثی در حمایت از استراتژیهای کوتاه مدت سازمانها ,بر اساس اصول طراحی و اصول سرویس گرائی در راستای استراتژیهای بلند مدت عمل می کند تا در تامین اهداف تجاری و حمایت از فرایندهایی که به سرعت دچار تغییر می شوند مفید واقع شود . همچنین زمینه تعامل عاملهای مختلف فرایند که در سطح چندین سازمان گسترده شده اند فراهم می شود و با تحلیل تغییرپذیری, انعطاف پذیری سیستم در حمایت از نقاط متغیر فرایندها و تغییر در سیاستهای کسب و کار افزایش می یابد . بدین منظور در ادامه بحث ابتدا سبکهای مختلف توسعه نرم افزار به همراه سبک مبتنی بر سرویس و اصول سرویس گرائی به تفصیل بررسی می گردد , سپس چرخه حیات معماری سرویس گرا و فاز تجزیه و تحلیل که مقدمه ای برای طراحی می باشد مورد بررسی قرار می گیرد و در ادامه با بیان اصول و الگوهای طراحی موجود , راهکار پیشنهادی با نمونه پیاده سازی شده به صورت مشروح بیان می گردد .
فهرست مطالب
عنوان شماره صفحه
چکیده ۱
مقدمه ۲
فصل اول: کلیات معماری سرویس گرا
۱-۱) تعاریف اولیه ۵
۱-۱-۱) سبک معماری مبتنی بر سرویس ۵
۲-۱) اهداف تحقیق ۷
۳-۱) پیشینه تحقیق ۸
۴-۱) روش کار و تحقیق ۱۰
۵-۱) مقایسه ای بر مدلهای توسعه وابسته به معماری ۱۱
۱-۵-۱) توسعه مبتنی بر object ۱۱
۲-۵-۱) توسعه مبتنی بر مؤلفه ۱۲
۳-۵-۱) محاسبات توزیع یافته ۱۳
۴-۵-۱) معماری سرویس گرا ۱۴
۱-۴-۵-۱) توسعه مبتنی بر سرویس ۱۵
۲-۴-۵-۱) قابلیتهای معماری سرویس گرا ۱۷
۶-۱) مؤلفه های SOA ۱۸
۷-۱) اصول سرویس گرائی ۲۱
۸-۱) سرویس گرائی و تشکیلات سازمانی ۲۷
۱-۸-۱) لایه های سرویس ۲۹
۱-۱-۸-۱) لایه سرویس کاربردی ۳۲
۲-۱-۸-۱) لایه سرویس تجاری ۳۴
۳-۱-۸-۱) لایه سرویس همنوائی ۳۴
۲-۸-۱) سرویسهای Agnostic ۳۷
فصل دوم : تحلیل مبتنی بر سرویس
۱-۲) چرخه حیات معماری سرویس گرا ۴۰
۲-۲) استراتژیهای تحویل SOA ۴۱
۱-۲-۲) روش پایین به بالا ۴۱
۲-۲-۲) روش بالا به پایین ۴۳
۳-۲-۲) روش Meet-In-The-Middle ۴۵
۳-۲) تحلیل سرویس گرا ۴۷
۱-۳-۲) اهداف تحلیل سرویس گرا ۴۷
۲-۳-۲) پروسه تحلیل سرویس گرا ۴۸
فصل سوم : الگوها و اصول طراحی
۱-۳) نکات قابل توجه طراحی ۵۲
۱-۱-۳) مدیریت دانه بندی سرویس و مؤلفه ۵۲
۲-۱-۳) طراحی برای قابلیت استفاده مجدد ۵۳
۳-۱-۳) طراحی برای قابلیت ترکیب سرویس ۵۴
۱-۳-۱-۳) اتصال و همبستگی ۵۴
۲-۳) رهنمودهای عمومی ۵۵
۱-۲-۳) استانداردهای نامگذاری ۵۵
۲-۲-۳) طراحی عملیات سرویس به شکلی که ذاتا قابل توسعه باشد ۵۶
۳-۲-۳) تعیین متقاضیان مطرح سرویس ۵۶
۳-۳) الگوهای طراحی و انواع معماری ۵۷
۱-۳-۳) الگوها ۵۸
۲-۳-۳) طراحی بنیادی ۵۹
فصل چهارم : راهکار پیشنهادی
۱-۴) مرحله ۱ بازبینی لایه بندی سیستم SOA ۶۴
۱-۱-۴) فعالیت ۱ مروری بر استراتژیهای لایه بندی ۶۴
۲-۱-۴) فعالیت ۲ بازبینی لایه بندی فاز تحلیل ۶۶
۳-۱-۴) فعالیت ۳ معرفی لایه های تخصصی تر ۶۷
۱-۳-۱-۴) لایه داده ۶۷
۲-۳-۱-۴) لایه دسترسی سرویس ۷۰
۳-۳-۱-۴) لایه تعامل ۷۱
۲-۴) مرحله ۲ تحلیل تغییرپذیری ۷۷
۱-۲-۴) فعالیت ۱ شناسایی انواع تغییرپذیری ۷۹
۲-۲-۴) فعالیت ۲ مدلهای موجود برای تغییرپذیری ۸۳
۳-۲-۴) فعالیت ۳ گروهبندی و مدلسازی تغییرپذیری ۸۴
۴-۲-۴) فعالیت ۴ نگاشت نقاط تغییرپذیر ۸۷
۳-۴) مرحله ۳ سرویسهای فاز طراحی ۸۹
۱-۳-۴) فعالیت ۱ تعیین سرویسها ۹۰
۲-۳-۴) فعالیت ۲ جایگاه سرویسهای کنترلی ۹۸
۴-۴) مرحله ۴ مروری بر دانه بندی ۹۹
۱-۴-۴) فعالیت ۱ تکنیک دانه بندی سرویسها و چنددانه ای بودن ۱۰۲
۲-۴-۴) فعالیت ۲ متدهای چند دانه ای سرویسها ۱۰۴
۵-۴) مرحله ۵ مدلسازی فرایند ۱۰۸
۱-۵-۴) استفاده از مدلسازی فرایند برای طراحی معماری سرویس گرا ۱۰۸
۲-۵-۴) ابزار مدلسازی فرایند ۱۰۹
۳-۵-۴) فعالیت طراحی فرایند کسب و کار مبتنی بر سرویس ۱۱۳
فصل پنجم : بررسی موردی
۱-۵) انتخاب بررسی موردی ۱۱۵
۱-۵) سیستم سفارش کالا ۱۱۶
۳-۵) تحلیلی بر راهکار پیشنهادی ۱۳۴
فصل ششم : نتیجه گیری و پیشنهادات
۱-۶) نتیجه گیری ۱۳۶
۲-۶) پیشنهادات ۱۳۸
مقاله ۱۳۹
پیوستها ۱۴۰
منابع و ماخذ
فهرست منابع فارسی ۱۹۶
فهرست منابع لاتین ۱۹۷
سایتهای اطلاع رسانی ۲۰۰
اختصارات ۲۰۱
چکیده انگلیسی ۲۰۲
فهرست شکلها
عنوان شماره صفحه
شکل ۱-۱) میان افزار مبتنی بر پیغام[۲۴] ۱۴
شکل ۲-۱) مدل مفهومی معماری سرویس گرا[۲۴] ۱۵
شکل ۳-۱) توسعه مبتنی بر سرویس[۲۴] ۱۶
شکل ۴-۱) یک دیدگاه اولیه از چگونگی قرار گرفتن منطق خودکارسازی در داخل واحدها توسط SOA ۲۰
شکل ۵-۱) عملیاتهایی که به سرویسهای متفاوتی تعلق دارند و بخشهای متنوعی از منطق پروسه را نمایش می دهند. ۲۰
شکل ۶-۱) چگونه مؤلفه های یک معماری سرویس گرا با یکدیگر ارتباط دارند. ۲۱
شکل ۷-۱) پیمانهای سرویس به طور رسمی مؤلفه های سرویس, عملیات و پیغام از یک معماری سرویس گرا را تعریف می کند. ۲۳
شکل ۸-۱) سرویسها وابستگی ها را به قرارداد سرویس محدود می کنند و با این کار به منطق سرویس دهنده زیرین و تقاضاکننده اجازه می دهند که loosely coupled باقی بمانند. ۲۴
شکل ۹-۱) عملیات Update Everything یک ترکیب سرویس را بسته بندی می کند ۲۵
شکل ۱۰-۱) مراحل statelessو stateful که یک سرویس درهنگام پردازش یک پیغام از آنها عبور می کند . ۲۷
شکل ۱۱-۱) جایگاه سرویسها[۱] ۲۸
شکل ۱۲-۱) لایه های تخصصی سرویس[۱] ۳۲
شکل ۱۳-۱) سلسله مراتب چرخه حیات توسعه سرویسهای وب[۹] ۳۶
شکل ۱۴-۱) بخش بندی سرویسها که محیط راه حل و پردازشهای تجاری را تفکیک کرده است[۱]. ۳۸
شکل ۱-۲) چرخه حیات معماری سرویس گرا ۴۰
شکل ۲-۲) گامهای تکنیک پائین به بالا ۴۲
شکل ۳-۲) گامهای تکنیک بالا به پائین ۴۴
شکل ۴-۲) گامهای تکنیک meet in the middle [1] ۴۶
شکل ۱-۳) در صورت تجزیه یک سرویس , الگوهای نظارتی به عدم تاثیرگذاری در قرارداد سرویس کمک می کنند.[۲۷]
۵۹
شکل ۲-۳) منطق Agnostic و [۲۷] Non Agnostic ۶۰
شکل ۱-۴) فعالیتهای فاز طراحی
۶۳
شکل ۲-۴) مدل گسترش سیستم تحت تاثیر لایه بندی [۳۰] ۶۵
شکل ۳-۴) پنهان سازی پیچیدگی توسط لایه انتزاعی داده ۶۹
شکل ۴-۴) لایه دسترسی سرویس[۲] ۷۰
شکل ۵-۴) ساختار منطقی از سرویسهای تعاملی ۷۳
شکل ۶-۴) مثالهایی از سرویس تعاملی در SOA ۷۶
شکل ۷-۴) چارچوب مبتنی بر سرویس برای سرویسهای تعاملی ۷۶
شکل ۸-۴) ۴ نو ع تغییرپذیری ۸۰
شکل ۹-۴) واسط مورد نیاز فرایند کسب و کار ۸۱
شکل ۱۰-۴) نقاط تغییرپذیر ممکن ۸۲
شکل ۱۱-۴) شمایی از تغییرپذیری در XML [6] ۸۳
شکل ۱۲-۴) مدل تصمیم , مدل واسطی برای سازگاری سرویسها می باشد[۶] ۸۴
شکل ۱۳-۴) دیاگرام فعالیت و نقاط تغییر پذیر[۳۱] ۸۵
شکل ۱۴-۴) مدل خصیصه[۳۱] ۸۶
شکل ۱۵-۴) سرویسهای Gateway [2] ۹۲
شکل ۱۶-۴) سرویسهای Façade [2] ۹۳
شکل ۱۷-۴) جایگاه دستورات کنترلی درمقایسه دو راه حل [۲] ۹۶
شکل ۱۸-۴) سرویسهای دانه درشت[۱۱] ۱۰۱
شکل ۱۹-۴) ارتباط سرویس دانه درشت و سرویس دانه ریز[۱۱] ۱۰۳
شکل ۲۰-۴) متد جدیدی برای ارسال اطلاعات آدرس اضافه شده است.[۱۱] ۱۰۵
شکل ۲۱-۴) یک متدی که هر دو نوع اطلاعات آدرس و حساب را بر می گرداند.[۱۱] ۱۰۵
شکل ۲۲-۴) متدی که مؤلفه های درخواست داده شده را برمی گرداند[۱۱] ۱۰۷
شکل ۲۳-۴) مدلسازی سلسله مراتبی با BPMN [5] ۱۱۲
شکل ۲۴-۴) مجموعه مدلهای فاز طراحی و ارتباط آنها ۱۱۳
شکل ۱-۵) دیاگرام فعالیت ۳ عامل ۱۱۷
شکل ۲-۵) سرویسهای کاندید ۱۲۰
شکل ۳-۵) مدل لایه بندی سیستم ۱۲۱
شکل ۴-۵) تغییر پذیری در گردش کار ۱۲۲
شکل ۵-۵) مدل خصیصه ۱۲۳
شکل ۶-۵) دیاگرام فعالیت برای شناسایی وابستگیها ۱۲۴
شکل ۷-۵) دیاگرام General Composition ۱۲۵
شکل ۸-۵) مدل نگاشت ۱۲۵
شکل ۹-۵) لایه تامین کننده QOS ۱۲۶
شکل ۱۰-۵) سرویسهای دانه ریز ۱۲۷
شکل ۱۱-۵) دیاگرام Consignee Collaboration ۱۲۷
شکل ۱۲-۵) دیاگرام Consignee Sequence Diagram ۱۲۸
شکل ۱۳-۵) دیاگرام Shipper Collaboration ۱۲۸
شکل ۱۴-۵) دیاگرام Shipper Sequence ۱۲۹
شکل ۱۵-۵) دیاگرام Partial Order Process Collaboration ۱۲۹
شکل ۱۶-۵) دیاگرام Partial Order Process Sequence
130
شکل ۱۷-۵) دیاگرام تعاملات مابین سرویس فرایند و سرویسهای همکار
۱۳۱
شکل ۱۸-۵) مدل BPMN ۱۳۲
فهرست جداول
عنوان شماره صفحه
جدول ۱-۱) مقایسه مدلهای توسعه وابسته به معماری ۱۷
جدول ۱-۶) راهکار پیشنهادی در تامین اصول طراحی ۱۳۷
منابع فارسی
۱- مروری بر RUP و قابلیتهای آن در تولید نرم افزار ، سید علیرضا حجازی، ۱۳۸۵
۲- سرویس گرائی و سرویس های وب، مهندس علی روزگار، پائیز ۱۳۸۴
۳- مرجع کامل UML: مهندس مهرداد توانا،مهندس عاطفه شیجونی
۴- کاربرد UML (تحلیل و طراحی شی گرا): مهندس ابوالفضل لاکدشتی
مراجع
[۱] Erl , T. : Service-Oriented Architecture: Concepts, Technology, and Design. August 04, 2005.
[2] Krafzig, D., Banke, K. and Slama, D.: Enterprise SOA: Service-Oriented Architecture Best Practices. Prentice Hall PTR, 2004.
[3] Endrei M., et al. Patterns: Service-oriented Architecture and Web Services, Redbook, SG24-6303- 00, April 2004 .
[4] Jørstad, I. , Dustdar, S., Do, V.T. : A Service-Oriented Architecture Framework for Collaborative Services. Enabling Technologies: Infrastructure for Collaborative Enterprise, 2005. 14th IEEE International Workshops on Publication Date: 13-15 June 2005 , pp.121-125.
[5] Emig, C. Weisser, J. Abeck, S.: Development of SOA-based Software Systems – An Evolutionary Programming Approach . Date: February 25 2006 . International Conference on Telecommunications and International Conference on Internet and Web Applications and Services IEEE .
[6] Chang, S.H. and Kim , S.D. : A Variability Modeling Method for Adaptable Services in Service-Oriented Computing. In the proceedings of the 11th International Conference on Software Product Line, Volume , Issue , 10-14 Sept. 2007 Page(s):261 – ۲۶۸ .