پایان نامه ارائه روشي براي طراحي مبتني بر سرويس
فهرست مطالب
عنوان شماره صفحه
چکيده | 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 |
|
چکيده
معماري سرويس گرا به سرعت به عنوان نخستين ائتلاف و راه حل معماري محيطهاي محاسباتي ناهمگون و پيچيده معاصر پديدار گشته است . [1]SOA نيازمند اين است که سازمانها مدلهاي کسب و کار خود را ارزيابي کنند, به ايجاد تکنيکهاي تحليل و طراحي مبتني بر سرويس بيانديشند و طرحهاي گسترش و پشتيباني روابط مابين فروشنده , مشتری و شريک تجاری را ارزيابي کنند . طراحان نمي توانند انتظار مديريت توسعه يک پروژه سرويس گرا را داشته باشند بدون اينکه به شيوه طراحي دقيق و متدولوژي توسعه تکيه داشته باشند . از آنجايي که متدولوژي توسعه مبتني بر سرويس اهميت حياتي در توصيف ,ساخت , پالايش و تطبيق فرايندهاي کسب وکاري دارد که تغييرپذيري بالايي دارند و تا به حال روش مناسب و منسجمي براي توسعه برنامه هاي کاربردي تجاري قدرتمند وجود ندارد , هدف اين تحقيق ارائه روشي براي طراحي مبتني بر سرويس مي باشد . در اين تحقيق از تکنيکها و مباحث مطرح درSOA استفاده شده و براي طراحي سرويس گرا روشي پيشنهاد مي شود . تمرکز تحقيق بر روي فرايند طراحي مي باشدکه اصول و تکنيکهاي کافي براي مشخص کردن , ساخت و پالايش فرايندهاي کسب وکاري که به سرعت دچار تغيير مي شوند فراهم مي کند . روش پيشنهاي براي ايجاد کنترل متمرکز از تجريد لايه های سرويس و طبقه بندی انواع سرويس استفاده نموده و در کنار استفاده از سيستمهاي موروثي در حمايت از استراتژيهاي کوتاه مدت سازمانها ,بر اساس اصول طراحي و اصول سرويس گرائي در راستاي استراتژيهاي بلند مدت عمل مي کند تا در تامين اهداف تجاري و حمايت از فرايندهايي که به سرعت دچار تغيير مي شوند مفيد واقع شود . همچنين زمينه تعامل عاملهاي مختلف فرايند که در سطح چندين سازمان گسترده شده اند فراهم مي شود و با تحليل تغييرپذيري, انعطاف پذيري سيستم در حمايت از نقاط متغير فرايندها و تغيير در سياستهاي کسب و کار افزايش مي يابد . بدين منظور در ادامه بحث ابتدا سبکهاي مختلف توسعه نرم افزار به همراه سبک مبتني بر سرويس و اصول سرويس گرائي به تفصيل بررسي مي گردد , سپس چرخه حيات معماري سرويس گرا و فاز تجزيه و تحليل که مقدمه اي براي طراحي مي باشد مورد بررسي قرار مي گيرد و در ادامه با بيان اصول و الگوهاي طراحي موجود , راهکار پيشنهادي با نمونه پياده سازي شده به صورت مشروح بيان مي گردد .
کلمات کليدي : SOA , Layer, Service Type , Process ,Variation , Granularity .Composition
مقدمه
در طول چهار دهه اخير، ميزان پيچيدگي نرم افزارها بصورت صعودي افزايش يافته و تقاضا براي نرم افزارهاي قدرتمندتر بيشتر شده است. در اين ميان، به نظر مي رسد که روشهاي قديمي جوابگوي نيازهاي در حال رشد کنوني نيستند و نياز به ايجاد و بکارگيري روشهائي است که بوسيله آنها بتوان بر اين پيچيدگيها بصورت کاراتر و در زماني کوتاهتر غلبه کرد. از سوي ديگر امكان كنار گذاشتن يکباره سيستمهاي نرم افزاري موجود که تا به حال مشغول سرويس دهي به مشتريان بوده اند، وجود ندارد و مي بايست سيستمهاي جديد را بصورت يکپارچه و در کنار همين سيستمهاي فعلي بوجود آورد. معماري سرويس گرا، با تکيه بر اصول سرويس گرائي و محاسبات و سرويس هاي توزيع شده و بر پايه پروتکلهاي شبکه و لايه هاي منطقي سرويس و همچنين زبانهايي که توليد نرم افزارهاي توزيع شده را فراهم مي كنند، به عنوان راه حلي مناسب جهت از ميان برداشتن مشکلات و مسائل مذكور مطرح گرديده است[20,21].
SOA مجموعه اي از اصول , نظريه ها و تکنيکهايي را فراهم مي کند که فرايندهاي کسب و کار , اطلاعات و دارايي هاي تشکيلات بتوانند به شيوه مؤ ثري سازماندهي شوند و اين فرايندها مي توانند براي پشتيباني از طرحهاي استراتژيک و سطوح بهره وري که در محيطهاي رقابتي کسب و کار مورد نياز هستند, گسترش داده شوند . بسياري از تشکيلات اقتصادي در استفاده اوليه شان از SOA چنين پنداشتند که از مولفه هاي موجود به عنوان سرويس وب مي توانند استفاده کنند و عنوان کردند تنها با ايجاد سرويسهاي پوشاننده[2] و رها کردن مولفه هاي زيرين غير قابل دسترس, اين کار عملي خواهد بود . در نتيجه پياده سازي لايه نازکي از SOAP/WSDL/UDDI بالاي برنامه کاربردي موجود يا مولفه هايي که سرويسهاي وب را تحقق مي بخشند , تا حد گسترده اي در صنعت نرم افزار تجربه شد . اما تا به حال روش مناسبي براي ايجاد برنامه هاي کاربردي تجاري قدرتمند وجود ندارد . اگرچه طبيعت مولفه ها مناسب استفاده از آنها به عنوان سرويس وب مي باشد , در بيشتر موارد اينطور نيست و براي طراحي مجدد و ارائه کارکرد مولفه ها به شيوه صحيح و از طريق سرويس وب نيازمند تلاش مضاعفي مي باشيم[9] .
پياده سازي موفق SOA مستلزم اين است که به مفاهيم و استراتژيهاي پياده سازي که خصوصيات و ويژگيهاي اساسي SOA را فرموله مي کنند , توجه شود . به مجرد پياد ه سازي موفق SOA , مزايايي در جهت کاهش زمان توسعه و ايجاد محصول , بهره برداري از کاربردهاي انعطاف پذير با پاسخ دهي سريع و امکان اتصال پوياي استدلالهاي کاربردي شرکاي تجاري , حاصل مي شود . يک پياده سازي کامل SOA نه تنها در ارتباط با گسترش و صف آرايي سرويسها مي باشد بلکه امکان استفاده از سرويسها درجهت اجتماع برنامه هاي کاربردي متمايز و ايجاد کاربرد مرکب را منعکس مي سازد.
[1] Service Oriented Architecture
[2] Wrapper Services
نقد و بررسیها
هنوز بررسیای ثبت نشده است.