فرمت:word(قابل ویرایش)
تعداد صفحات:243
فهرست مطالب
چکیده 1
مقدمه 2
فصل اول: کلیات معماری سرویس گرا
1-1) تعاریف اولیه 5
1-1-1) سبک معماری مبتنی بر سرویس 5
2-1) اهداف تحقیق 7
3-1) پیشینه تحقیق 8
4-1) روش کار و تحقیق 10
5-1) مقایسه ای بر مدلهای توسعه وابسته به معماری 11
1-5-1) توسعه مبتنی بر object 11
2-5-1) توسعه مبتنی بر مؤلفه 12
3-5-1) محاسبات توزیع یافته 13
4-5-1) معماری سرویس گرا 14
1-4-5-1) توسعه مبتنی بر سرویس 15
2-4-5-1) قابلیتهای معماری سرویس گرا 17
6-1) مؤلفه های SOA 18
7-1) اصول سرویس گرائی
21
8-1) سرویس گرائی و تشکیلات سازمانی 27
1-8-1) لایه های سرویس 29
1-1-8-1) لایه سرویس کاربردی 32
2-1-8-1) لایه سرویس تجاری 34
3-1-8-1) لایه سرویس همنوائی 34
2-8-1) سرویسهای Agnostic 37
فصل دوم : تحلیل مبتنی بر سرویس
1-2) چرخه حیات معماری سرویس گرا 40
2-2) استراتژیهای تحویل SOA 41
1-2-2) روش پایین به بالا 41
2-2-2) روش بالا به پایین 43
3-2-2) روش Meet-In-The-Middle 45
3-2) تحلیل سرویس گرا 47
1-3-2) اهداف تحلیل سرویس گرا 47
2-3-2) پروسه تحلیل سرویس گرا 48
فصل سوم : الگوها و اصول طراحی
1-3) نکات قابل توجه طراحی 52
1-1-3) مدیریت دانه بندی سرویس و مؤلفه 52
2-1-3) طراحی برای قابلیت استفاده مجدد 53
3-1-3) طراحی برای قابلیت ترکیب سرویس 54
1-3-1-3) اتصال و همبستگی
54
2-3) رهنمودهای عمومی 55
1-2-3) استانداردهای نامگذاری 55
2-2-3) طراحی عملیات سرویس به شکلی که ذاتا قابل توسعه باشد 56
3-2-3) تعیین متقاضیان مطرح سرویس 56
3-3) الگوهای طراحی و انواع معماری 57
1-3-3) الگوها 58
2-3-3) طراحی بنیادی 59
فصل چهارم : راهکار پیشنهادی
1-4) مرحله 1 بازبینی لایه بندی سیستم SOA 64
1-1-4) فعالیت 1 مروری بر استراتژیهای لایه بندی 64
2-1-4) فعالیت 2 بازبینی لایه بندی فاز تحلیل 66
3-1-4) فعالیت 3 معرفی لایه های تخصصی تر 67
1-3-1-4) لایه داده 67
2-3-1-4) لایه دسترسی سرویس 70
3-3-1-4) لایه تعامل 71
2-4) مرحله 2 تحلیل تغییرپذیری 77
1-2-4) فعالیت 1 شناسایی انواع تغییرپذیری 79
2-2-4) فعالیت 2 مدلهای موجود برای تغییرپذیری 83
3-2-4) فعالیت 3 گروهبندی و مدلسازی تغییرپذیری 84
4-2-4) فعالیت 4 نگاشت نقاط تغییرپذیر 87
3-4) مرحله 3 سرویسهای فاز طراحی
89
1-3-4) فعالیت 1 تعیین سرویسها 90
2-3-4) فعالیت 2 جایگاه سرویسهای کنترلی 98
4-4) مرحله 4 مروری بر دانه بندی 99
1-4-4) فعالیت 1 تکنیک دانه بندی سرویسها و چنددانه ای بودن 102
2-4-4) فعالیت 2 متدهای چند دانه ای سرویسها 104
5-4) مرحله 5 مدلسازی فرایند 108
1-5-4) استفاده از مدلسازی فرایند برای طراحی معماری سرویس گرا 108
2-5-4) ابزار مدلسازی فرایند 109
3-5-4) فعالیت طراحی فرایند کسب و کار مبتنی بر سرویس 113
فصل پنجم : بررسی موردی
1-5) انتخاب بررسی موردی 115
1-5) سیستم سفارش کالا 116
3-5) تحلیلی بر راهکار پیشنهادی 134
فصل ششم : نتیجه گیری و پیشنهادات
1-6) نتیجه گیری 136
2-6) پیشنهادات 138
مقاله 139
پیوستها 140
منابع و ماخذ
فهرست منابع فارسی 196
فهرست منابع لاتین 197
سایتهای اطلاع رسانی 200
اختصارات 201
چکیده انگلیسی 202
فهرست شکلها
شکل 1-1) میان افزار مبتنی بر پیغام[24] 14
شکل 2-1) مدل مفهومی معماری سرویس گرا[24] 15
شکل 3-1) توسعه مبتنی بر سرویس[24] 16
شکل 4-1) یک دیدگاه اولیه از چگونگی قرار گرفتن منطق خودکارسازی در داخل واحدها توسط SOA 20
شکل 5-1) عملیاتهایی که به سرویسهای متفاوتی تعلق دارند و بخشهای متنوعی از منطق پروسه را نمایش می دهند. 20
شکل 6-1) چگونه مؤلفه های یک معماری سرویس گرا با یکدیگر ارتباط دارند. 21
شکل 7-1) پیمانهای سرویس به طور رسمی مؤلفه های سرویس, عملیات و پیغام از یک معماری سرویس گرا را تعریف می کند. 23
شکل 8-1) سرویسها وابستگی ها را به قرارداد سرویس محدود می کنند و با این کار به منطق سرویس دهنده زیرین و تقاضاکننده اجازه می دهند که loosely coupled باقی بمانند. 24
شکل 9-1) عملیات Update Everything یک ترکیب سرویس را بسته بندی می کند 25
شکل 10-1) مراحل statelessو stateful که یک سرویس درهنگام پردازش یک پیغام از آنها عبور می کند . 27
شکل 11-1) جایگاه سرویسها[1] 28
شکل 12-1) لایه های تخصصی سرویس[1] 32
شکل 13-1) سلسله مراتب چرخه حیات توسعه سرویسهای وب[9] 36
شکل 14-1) بخش بندی سرویسها که محیط راه حل و پردازشهای تجاری را تفکیک کرده است[1]. 38
شکل 1-2) چرخه حیات معماری سرویس گرا 40
شکل 2-2) گامهای تکنیک پائین به بالا 42
شکل 3-2) گامهای تکنیک بالا به پائین 44
شکل 4-2) گامهای تکنیک meet in the middle [1] 46
شکل 1-3) در صورت تجزیه یک سرویس , الگوهای نظارتی به عدم تاثیرگذاری در قرارداد سرویس کمک می کنند.[27]
59
شکل 2-3) منطق Agnostic و [27] Non Agnostic 60
شکل 1-4) فعالیتهای فاز طراحی
63
شکل 2-4) مدل گسترش سیستم تحت تاثیر لایه بندی [30] 65
شکل 3-4) پنهان سازی پیچیدگی توسط لایه انتزاعی داده 69
شکل 4-4) لایه دسترسی سرویس[2] 70
شکل 5-4) ساختار منطقی از سرویسهای تعاملی 73
شکل 6-4) مثالهایی از سرویس تعاملی در SOA
76
شکل 7-4) چارچوب مبتنی بر سرویس برای سرویسهای تعاملی 76
شکل 8-4) 4 نو ع تغییرپذیری 80
شکل 9-4) واسط مورد نیاز فرایند کسب و کار 81
شکل 10-4) نقاط تغییرپذیر ممکن 82
شکل 11-4) شمایی از تغییرپذیری در XML [6] 83
شکل 12-4) مدل تصمیم , مدل واسطی برای سازگاری سرویسها می باشد[6] 84
شکل 13-4) دیاگرام فعالیت و نقاط تغییر پذیر[31] 85
شکل 14-4) مدل خصیصه[31] 86
شکل 15-4) سرویسهای Gateway [2] 92
شکل 16-4) سرویسهای Façade [2] 93
شکل 17-4) جایگاه دستورات کنترلی درمقایسه دو راه حل [2] 96
شکل 18-4) سرویسهای دانه درشت[11] 101
شکل 19-4) ارتباط سرویس دانه درشت و سرویس دانه ریز[11] 103
شکل 20-4) متد جدیدی برای ارسال اطلاعات آدرس اضافه شده است.[11] 105
شکل 21-4) یک متدی که هر دو نوع اطلاعات آدرس و حساب را بر می گرداند.[11] 105
شکل 22-4) متدی که مؤلفه های درخواست داده شده را برمی گرداند[11] 107
شکل 23-4) مدلسازی سلسله مراتبی با BPMN [5] 112
شکل 24-4) مجموعه مدلهای فاز طراحی و ارتباط آنها 113
شکل 1-5) دیاگرام فعالیت 3 عامل 117
شکل 2-5) سرویسهای کاندید
120
شکل 3-5) مدل لایه بندی سیستم 121
شکل 4-5) تغییر پذیری در گردش کار 122
شکل 5-5) مدل خصیصه 123
شکل 6-5) دیاگرام فعالیت برای شناسایی وابستگیها 124
شکل 7-5) دیاگرام General Composition 125
شکل 8-5) مدل نگاشت 125
شکل 9-5) لایه تامین کننده QOS 126
شکل 10-5) سرویسهای دانه ریز 127
شکل 11-5) دیاگرام Consignee Collaboration 127
شکل 12-5) دیاگرام Consignee Sequence Diagram 128
شکل 13-5) دیاگرام Shipper Collaboration 128
شکل 14-5) دیاگرام Shipper Sequence 129
شکل 15-5) دیاگرام Partial Order Process Collaboration 129
شکل 16-5) دیاگرام Partial Order Process Sequence
130
شکل 17-5) دیاگرام تعاملات مابین سرویس فرایند و سرویسهای همکار
131
شکل 18-5) مدل BPMN 132
فهرست جداول
جدول 1-1) مقایسه مدلهای توسعه وابسته به معماری 17
جدول 1-6) راهکار پیشنهادی در تامین اصول طراحی 137
چکیده
معماری سرویس گرا به سرعت به عنوان نخستین ائتلاف و راه حل معماری محیطهای محاسباتی ناهمگون و پیچیده معاصر پدیدار گشته است . SOA نیازمند این است که سازمانها مدلهای کسب و کار خود را ارزیابی کنند, به ایجاد تکنیکهای تحلیل و طراحی مبتنی بر سرویس بیاندیشند و طرحهای گسترش و پشتیبانی روابط مابین فروشنده , مشتری و شریک تجاری را ارزیابی کنند . طراحان نمی توانند انتظار مدیریت توسعه یک پروژه سرویس گرا را داشته باشند بدون اینکه به شیوه طراحی دقیق و متدولوژی توسعه تکیه داشته باشند . از آنجایی که متدولوژی توسعه مبتنی بر سرویس اهمیت حیاتی در توصیف ,ساخت , پالایش و تطبیق فرایندهای کسب وکاری دارد که تغییرپذیری بالایی دارند و تا به حال روش مناسب و منسجمی برای توسعه برنامه های کاربردی تجاری قدرتمند وجود ندارد , هدف این تحقیق ارائه روشی برای طراحی مبتنی بر سرویس می باشد . در این تحقیق از تکنیکها و مباحث مطرح درSOA استفاده شده و برای طراحی سرویس گرا روشی پیشنهاد می شود . تمرکز تحقیق بر روی فرایند طراحی می باشدکه اصول و تکنیکهای کافی برای مشخص کردن , ساخت و پالایش فرایندهای کسب وکاری که به سرعت دچار تغییر می شوند فراهم می کند . روش پیشنهای برای ایجاد کنترل متمرکز از تجرید لایه های سرویس و طبقه بندی انواع سرویس استفاده نموده و در کنار استفاده از سیستمهای موروثی در حمایت از استراتژیهای کوتاه مدت سازمانها ,بر اساس اصول طراحی و اصول سرویس گرائی در راستای استراتژیهای بلند مدت عمل می کند تا در تامین اهداف تجاری و حمایت از فرایندهایی که به سرعت دچار تغییر می شوند مفید واقع شود . همچنین زمینه تعامل عاملهای مختلف فرایند که در سطح چندین سازمان گسترده شده اند فراهم می شود و با تحلیل تغییرپذیری, انعطاف پذیری سیستم در حمایت از نقاط متغیر فرایندها و تغییر در سیاستهای کسب و کار افزایش می یابد . بدین منظور در ادامه بحث ابتدا سبکهای مختلف توسعه نرم افزار به همراه سبک مبتنی بر سرویس و اصول سرویس گرائی به تفصیل بررسی می گردد , سپس چرخه حیات معماری سرویس گرا و فاز تجزیه و تحلیل که مقدمه ای برای طراحی می باشد مورد بررسی قرار می گیرد و در ادامه با بیان اصول و الگوهای طراحی موجود , راهکار پیشنهادی با نمونه پیاده سازی شده به صورت مشروح بیان می گردد .
کلمات کلیدی : SOA , Layer, Service Type , Process ,Variation , Granularity .Composition
مقدمه
در طول چهار دهه اخیر، میزان پیچیدگی نرم افزارها بصورت صعودی افزایش یافته و تقاضا برای نرم افزارهای قدرتمندتر بیشتر شده است. در این میان، به نظر می رسد که روشهای قدیمی جوابگوی نیازهای در حال رشد کنونی نیستند و نیاز به ایجاد و بکارگیری روشهائی است که بوسیله آنها بتوان بر این پیچیدگیها بصورت کاراتر و در زمانی کوتاهتر غلبه کرد. از سوی دیگر امکان کنار گذاشتن یکباره سیستمهای نرم افزاری موجود که تا به حال مشغول سرویس دهی به مشتریان بوده اند، وجود ندارد و می بایست سیستمهای جدید را بصورت یکپارچه و در کنار همین سیستمهای فعلی بوجود آورد. معماری سرویس گرا، با تکیه بر اصول سرویس گرائی و محاسبات و سرویس های توزیع شده و بر پایه پروتکلهای شبکه و لایه های منطقی سرویس و همچنین زبانهایی که تولید نرم افزارهای توزیع شده را فراهم می کنند، به عنوان راه حلی مناسب جهت از میان برداشتن مشکلات و مسائل مذکور مطرح گردیده است[20,21].
SOA مجموعه ای از اصول , نظریه ها و تکنیکهایی را فراهم می کند که فرایندهای کسب و کار , اطلاعات و دارایی های تشکیلات بتوانند به شیوه مؤ ثری سازماندهی شوند و این فرایندها می توانند برای پشتیبانی از طرحهای استراتژیک و سطوح بهره وری که در محیطهای رقابتی کسب و کار مورد نیاز هستند, گسترش داده شوند . بسیاری از تشکیلات اقتصادی در استفاده اولیه شان از SOA چنین پنداشتند که از مولفه های موجود به عنوان سرویس وب می توانند استفاده کنند و عنوان کردند تنها با ایجاد سرویسهای پوشاننده و رها کردن مولفه های زیرین غیر قابل دسترس, این کار عملی خواهد بود . در نتیجه پیاده سازی لایه نازکی از SOAP/WSDL/UDDI بالای برنامه کاربردی موجود یا مولفه هایی که سرویسهای وب را تحقق می بخشند , تا حد گسترده ای در صنعت نرم افزار تجربه شد . اما تا به حال روش مناسبی برای ایجاد برنامه های کاربردی تجاری قدرتمند وجود ندارد . اگرچه طبیعت مولفه ها مناسب استفاده از آنها به عنوان سرویس وب می باشد , در بیشتر موارد اینطور نیست و برای طراحی مجدد و ارائه کارکرد مولفه ها به شیوه صحیح و از طریق سرویس وب نیازمند تلاش مضاعفی می باشیم[9] .
پیاده سازی موفق SOA مستلزم این است که به مفاهیم و استراتژیهای پیاده سازی که خصوصیات و ویژگیهای اساسی SOA را فرموله می کنند , توجه شود . به مجرد پیاد ه سازی موفق SOA , مزایایی در جهت کاهش زمان توسعه و ایجاد محصول , بهره برداری از کاربردهای انعطاف پذیر با پاسخ دهی سریع و امکان اتصال پویای استدلالهای کاربردی شرکای تجاری , حاصل می شود . یک پیاده سازی کامل SOA نه تنها در ارتباط با گسترش و صف آرایی سرویسها می باشد بلکه امکان استفاده از سرویسها درجهت اجتماع برنامه های کاربردی متمایز و ایجاد کاربرد مرکب را منعکس می سازد.
فصل اول:
کلیات معماری سرویس گرا
1-1 تعاریف اولیه
1-1-1 معماری سرویس گرا (SOA)
SOA مجموعه قوانین ، سیاستها و چارچوبهایی است که نرم افزارها را قادر می سازد تا عملکرد خود را از طریق مجموعه سرویسهای مجزا و مستقل و در عین حال مرتبط با هم در اختیار سایر درخواست کنندگان قرار دهند تا بتوانند بدون اطلاع از نحوه پیاده سازی سرویس و تنها از طریق رابطهای استاندارد و تعریف شده، این سرویسها را یافته و فراخوانی نمایند و یا در تعریف دیگر می توان گفت معماری سرویس گرا روشی برای ساخت سیستمهای توزیع شده ای است که در آنها عملکرد سیستم بصورت سرویس در اختیار کاربران و یا سایر سرویسها قرار می گیرد. از دیگرتعاریف ارائه شده مرتبط با معماری های سرویس گرا می توان به واحدهای نرم افزاری آماده در شبکه یا سرویسهای سطح حرفه ای اشاره کرد. در حال حاضر، تکنولوژی سرویسهای وب و پیاده سازی نمونه های موفق از آن، نشان داده است که SOA می تواند به عنوان راه حلی عملی و دست یافتنی در طراحی سیستمهای توزیع شده جدید و یکپارچه سازی سیستمهای بزرگ موجود مطرح گردد[3]. در این معماری، همه توابع به عنوان سرویس تعریف می گردند. این توابع شامل توابع تجاری و تراکنشهای تجاری می باشند که تراکنشهای تجاری خود شامل توابع سطح پایین و توابع سیستمی سرویسها هستند. سرویسها بصورت مستقل طراحی و پیاده سازی شده و به عنوان جعبه سیاه عمل می نمایند. قطعات دیگر در خارج از این قطعه, نیازی به دانستن نحوه انجام کار در این سرویس را ندارند و تنها به نتیجه آن نیازمندند. قطعات، سرویسهای خود را از طریق رابطهای تعریف شده در اختیار قطعات دیگر قرار میدهند که این رابطها قابل دستیابی و فراخوانی هستند، بدون اینکه محل قرار گیری آنها اهمیت داشته باشد (رابطهای محلی یا دور ). در ضمن، این رابطها می توانند به همان نرم افزار کاربردی یا به آدرسی در محل دیگری از شبکه مرتبط باشند. رابطها به عنوان کلیدی در برقراری این ارتباطها هستند و از طریق آنها نوع پارامترهای ورودی و نتایج (خروجی) مشخص می گردد[1,34,26]...