لینک مستقیم|بررسی جامع مزايا و چالش ها و اصول طراحی معماري سرويس گرا|

بررسی جامع مزايا و چالش ها و اصول طراحی معماري سرويس گرابررسی جامع مزايا و چالش ها و اصول طراحی معماري سرويس گرا|30014448|lie1871999|
جوینده گرامی در این پست شما فایل با عنوان بررسی جامع مزايا و چالش ها و اصول طراحی معماري سرويس گرا را مشاهده می نمایید.

با پيشرفت روز افزون دنياي IT و افزايش استفاده از سيستم هاي توزيع شده، پيچيدگي و كارايي توسعه نرم افزار ها نيز تغيير كرده است.



سرويس گرايي بعنوان يك ديدگاه تكاملي در تاريخ IT – كه بيشتر مفاهيم خود را از الگو ها و ديدگاه هاي موفق قبلي دارد – با معرفي خود توانسته ضمن حل برخي مشكلات ذاتي توسعه نرم افزار، مزاياي چشم گيري را هم با خود به همراه بياورد.



سازمان ها با گرايش به اتوماسيونِ فعاليت هاي تجاري خود، تمايل دارند تا از ديدگاهي استفاده كنند كه ضمن حفظ سازگاري داده ها و قواعدشان، بتواند با هزينه كمتر فعاليت هاي تجاري آن ها را خودكار سازد. از آنجا كه قبل از ظهور سرويس گرايي، بيشتر سازمان ها از مزاياي خودكار سازي فعاليت هاي تجاري خود به كمك ديگر ديدگاه ها بهره مند بودند، لازم است SOA به نحوي خود را با كاربردها و فعاليت هاي سازمان تطبيق كند كه كمترين مشكلات و چالش ها ايجاد شود. با اين وجود، با اعمال SOA در سازمان ها، چالش ها و تاثيراتي حاصل مي شود كه در اين نوشتار به آنها پرداخته مي شود.



در اين گزارش ابتدا مفاهيم و تعاريف كلي و اوليه سرويس گرايي بيان مي شوند. سپس مفهوم سرويس گرايي بسط داده مي شود. طراحي سرويس ها، اصول و عناصر آن توضيح داده مي شود. پس از آن تاثيرات سرويس گرايي روي سازمان ها بيان مي شود.



در ادامه، امنيت بعنوان يكي از مفاهيم و جنبه هاي مهم معماري سرويس گرا مورد مطالعه و بررسي قرار مي گيرد. جنبه هاي مختلف امنيت و ديدگاه هاي سنتي براي پوشش آنها بيان مي شوند. سپس بررسي مي شود اين ديدگاه ها براي SOA كارا نيستند.



در انتهاي نوشتار، سه ديدگاه جديد براي تضمين امنيت مطرح و مطالعه مي شوند.





فهرست مطالب



فصل اول ادبي ات موضوع.............8



1,1 سرويس 9



1,2 معماري 10



1,3 معماري سرويس گرا 10



1,4 محاسبات سرويس گرا 11



1,5 قابليت سرويس 12



1,6 قرارداد سرويس 13



1,7 منطق انكاري و منطق غير انكاري 14



1,8 بهترين تجربه 14



1,9 مولفه15



1,10 متن 15



1,11 اتصال 15



1,12 دانه بندي 16



1,13 دانه بندي داده 16



1,14 استانداردسازي مدل داده اي 16



1,15 همنواسازي 17



1,16 معماري سرويس گرايِ بدوي 17



فصل دوم مفاهيم كلي سرويس گرايي.18



2,1 شيء گرايي 19



2,2 وب سرويس ها 20



2,3 مدلسازي فرايند حرفه 20



2,4 يكپارچه سازي كاربردهاي سازماني 21



2,5 برنامه نويسي جنبه گرا 22



2,6 مقدمه اي بر سرويس گرايي 22



2,7 سرويس در خود كارسازي تجاري 24



2,8 سرويس ها به عنوان گردايه اي از امكانات 25



2,9 سرويس گرايي بعنوان يك نمونه طراحي 26



فصل سوم طراحي سرويس ها............... 28



3,1 طراحي سرويس ها 29



3,2 قرارداد سرويس استاندارد شده 30



3,3 اتصال ضعيف سرويس 31 3,4 انتزاع سرويس 32



3,5 قابليت بكارگيري مجدد سرويس 34



3,6 خودمختاري سرويس 35



3,7 بي وضعيتي سرويس 36



3,8 قابليت اكتشاف سرويس 38



3,9 تركيب پذيري سرويس 39 فصل چهارم عناصر تحليل و طراحي در شي گرايي و سرويس گرايي.............. 41



4,2 مفهوم سرويس گرايي در حوزه تحليل و طراحي 43



4,3 چرا EA ، BPMو OOADكافي نيستند 44



4,4 معماري سازماني 47



4,5 مديريت فرايند حرفه (BPM) 48



4,6 مقايسه شيء گرايي و سرويس گرايي 49



4,7 عناصر تحليل و طراحي سرويس گرا 55



4,8 فاكتورهاي كيفيت 57



4,9 تعريف و شناسايي سرويس 58



4,10 تحليل تجاري مستقيم و غير مستقيم 59



4,11 دانه بندي سرويس 59



4,12 قرارداهاي نامگذاري 60



60 4,13 چند نكته در مورد تحليل و طراحي سرويس گرا



61 فصل پنجم تاثيرات سرويس گرايي بر سازمان ها ..............



62 5,1 سرويس گرايي و مفهوم كاربرد



5,2 سرويس گرايي و مفهوم يكپارچه سازي 64



5,3 تركيب سرويس 66



68 فصل ششم مزايا و چالش هاي سرويس گرايي ...



69 6,1 جهان قبل از سرويس گرايي



6,2 نياز به سرويس گرايي 75



6,3 چالش هاي ايجاد شده توسط سرويس گرايي 81



فصل هفتم امنيت در سرويس گرايي .... 90



7,1 امنيت در معماري سرويس گرا91



7,2 نياز به بازنگري امنيت در معماري سرويس گرا 92



7,3 مقايسه معماري امنيت بين كاربردهاي سنتي و سرويس گرا 94



7,4 جنبه هاي وظيفه مندي امنيت در ديدگاه SOA و ديدگاه هاي سنتي 98



7,5 جنبه هاي غيروظيفه مندي امنيت 106 7,6 ديدگاه هاي جديد امنيتي براي SOA 109



7,7 جمع بندي 115



فصل هشتم نتيجه گيري و كار آينده...116



8,1 نتيجه گيري 117



8,2 كار آينده 115



مراجع و منابع..............119







فصل اول





ادبيات موضوع  





در بخش اول اين نوشتار ابتدا مفاهيمي كه در بخش هاي بعدي استفاده شده اند، تعريف و تشريح ميشوند.



1,1 سرويس



براي سرويس تعاريف مختلفي ارائه مي شود. در زير برخي از آنها بيان مي شوند:



• يك مولفه نرم افزاري است كه از طريق شبكه بمنظور فراهم كردن يك عملكرد براي فراخواننده، خود قابل دسترسي است.[Lat05]



• واحد منطق راه حل است كه سرويس گرايي آنرا به گستره معناداري اعمال نموده است. كاربرد اصول طراحي سرويس گرا، واحد منطق مانند سرويس را از واحد هاي منطق ديگري مانند اشيا و مولفه ها متمايز مي سازد. [SOAG]







شكل 1 1 : سرويس[SOAG]





• [Abh09]:سرويس



o يك پياده سازي از يك عملكرد تجاري خوش تعريف است.(مانند بررسي حساب مشتري)



o مي تواند توسط مشتري ها در چندين برنامه كاربردي يا فرايند هاي تجاري مختلف، مورد استفاده قرار گيرد.



o خود مي تواند شامل چندين سرويس باشد.



o مستقل از پياده سازي است و مي تواند در محيط توسعه مختلفي ايجاد شود.



1,2 معماري



يك توصيف رسمي از سيستم است كه اهداف، توابع، مشخصه هاي قابل رويت بيروني، و واسط هاي آن را تعريف مي كند. اين تعريف همچنين شامل توصيف مولفه هاي دروني سيستم و روابط آنها نيز مي



[Lat05].شود



1,3 معماري سرويس گرا



• اصطلاح معماري سرويس گرا به سبكي از ساخت سيستم هاي توزيع شده مطمئن اشاره مي كند كه توانمندي را با عنوان سرويس ها ارائه مي دهد در حاليكه تاكيد بر اتصال ضعيف بين تعامل سرويس ها دارد. معماري سرويس گرا يك مدل معماري ارائه مي دهد كه با بالا بردن چابكي1 و كارايي هزينه2 كليه هزينه هاي عمومي IT را در يك سازمان كاهش مي دهد. اين سبك از معماري با در نظر گرفتن سرويس ها بعنوان ابزار اصلي براي منطق راه حل ارائه شده، به اهداف مذكور مي رسد. براي تحقق اهداف استراتژيكي همراه محاسبات سرويس گرا، SOA از سرويس گرايي حمايت مي كند.



بعنوان گونه اي از تكنولوژي معماري3، پياده سازي SOA مي تواند شامل تركيبي از تكنولوژي ها، محصولات، APIها ، پشتيباني از توسعه هاي زيرساخت و ديگر بخشها باشد. نماي واقعي يك معماري سرويس گراي گسترش يافته4 در هر سازمان يكتا است.





21 agility cost effectiveness



43 technology architecture deployed service oriented architecture



اما به هر حال، اين نما با معرفي تكنولوژي ها و سكوهاي1 جديد كه مخصوصاً از ايجاد، توسعه و ارزيابيراه حل هاي سرويس گرا پشتيباني مي كند، مشخص مي شود2. در نتيجه ساخت يك تكنولوژي معماري پيرامون مدل معماري سرويس گرا، محيطي مناسب براي منطق راه حل كه اصول طراحي سرويس گرا را ايجاب مي كند، فراهم مي كند.



1,4 محاسبات سرويس گرا



• محاسبات سرويس گرا يك اصطلاح گسترده است كه براي بيان نسل جديدي از محاسبات توزيع شده بكار مي رود. اين اصطلاح همچنين، موارد زيادي ازجمله اصول طراحي و نمونه هاي طراحي مربوط به خود،كاتالوگ هاي الگوي طراحي ، زبان هاي الگو، يك مدل معماري متمايز و در نهايت مفاهيم، تكنولوژي ها و بسترهاي مرتبط را در بر مي گيرد.



محاسبات سرويس گرا، براساس سكوهاي محاسبات توزيع شده قبلي ساخته شده است و لايه هاي طراحي جديد، ملاحظات نظارتي4 و مجموعه وسيعي از تكنولوژي هاي پياده سازي مرجع را اضافه كرده است.



اهداف استراتژيكي و مزاياي همراه با محاسبات سرويس گرا شامل موارد زير مي شود:



o قابليت همكاري(تبادل اطلاعات) ذاتي بيشتر5 o هم پيماني و همكاري بيشتر o افزايش گوناگوني انتخاب هاي فروشنده o هم ترازي بيشتر بين دامنه تكنولوژي و تجاري o افزايش ROI (بازگشت سرمايه) o چابكي سازماني1 بيشتر o كاهش هزينه هاي عمومي IT



عناصر اصلي سكوي محاسبات سرويس گرا شامل موارد زير است:



o معماري سرويس گرا o سرويس گرايي



o منطق راه حل سرويس گرا2 o سرويس ها o تركيب هاي سرويس o انباره (ليست) سرويس



ليست سرويس مجموعه اي مستقلاً استاندارد شده3 از سرويس هاي مكمل با يك كران4 مشخص است كه يك سازمان يا بخش معناداري از آن را ارائه مي دهد. در مواردي كه يك سازمان بيش از يك ليست سرويس دارد از اصطلاح ليست دامنه سرويس5 استفاده مي شود.



1,5 قابليت سرويس



سرويس را مي توان بعنوان يك جعبه كه در آن گردايه اي از توابع بهم مرتبط وجود دارد، دانست. اين توابع را قابليت هاي سرويس6 مي نامند و از طريق قراردادهاي سرويس بيان مي





21 organizational agility service oriented solution logic



3 independently standardized



54 boundary domain service inventory



6 service capability



شوند. در شكل 1 2 سرويس صورتحساب و يكي از قابليت هاي آن نشان داده شده است. اينسرويس مي تواند قابليت هاي ديگري هم داشته باشد.





1,6 قرارداد سرويس



يك قرارداد سرويس ، شامل يك يا چند سند منتشر شده است ( كه اسناد توصيف سرويس ناميده مي شوند) كه درباره آن سرويس متا اطلاعاتي را بيان مي كنند. اصلي ترين بخش قرارداد سرويس، شامل اسناد توصيف سرويس است كه واسط تكنيكي آنرا توصيف مي كند.



هنگامي كه سرويس ها بصورت وب سرويس پياده سازي مي شوند، غالباً اسناد توصيف سرويس شامل تعريف WSDL، تعريف شماي XML است. در شكل 1 3 قرارداد سرويس نشان داده شده است.







1,7 منطق انكاري و منطق غير انكاري



عبارت agnostic ريشه يوناني دارد و به معناي »بدون دانش«1 است. بنابراين، منطقي كه به اندازه كافي عام باشد به نحوي كه به هيچ فعاليت بالاتري اختصاص نيافته است(هيچ دانشي نسبت به آن ندارد)، بعنوان منطق انكاري2 كلاس بندي مي شود. از آنجا كه دانش مختص به فعاليت هاي تك منظوره حذف شده است، منطق انكاري چند منظوره در نظر گرفته مي شود و قابليت استفاده مجدد بالايي دارد. از سوي ديگر، منطق غير انكاري منحصراً براي يك برنامه نرم افزاري تك منظوره طراحي شده است.



1,8 بهترين تجربه



بهترين تمرين(تجربه) 3، بطور كلي تكنيك يا ديدگاهي است براي حل يا پيشگيري از مشكلات. معمولاً يك تمرين است كه مصداق صنعتي دارد و از تجربيات صنعتي قبل ايجاد شده است.







21 whitout knowledge agnostic logic and non agnostic logic



3 best practice



1,9 مولفه



واحدي از منطق است كه بعنوان يك برنامه نرم افزاري تنها، بصورت بخشي از معماري محاسبات توزيع شده، وجود دارد. مولفه ها1 مي توانند توسط ابزارهاي توسعه و زبان هاي برنامه نويسي مختلفي ايجاد شوند.[SOAG]



1,10 متن



اطلاعات مربوط به يك فعاليت سرويس خاص را متن2 مي نامند. هرچه تركيبات سرويس پيچيده تر و بزرگتر باشد، معمولاً اطلاعات بيشتري بايد مديريت شود، زيرا تبادل داده هاي درون سرويس ها و بين سرويسي بيشتري با توجه به فعاليت متناظر با آن سرويس وجود خواهد داشت.[SOAG]



1,11 اتصال



منظور از اتصال3 بستگي يا ارتباط بين دو ماهيت است. اگر دو ماهيت با هم هيچ ارتباطي نداشته باشند، نا متصل4 فرض مي شوند و اگر بين آنها ارتباط وجود داشته باشد متصل ناميده مي شوند. جنبه مهم اتصال، ميزان آن بين دو ماهيت است. اگر يك ماهيت به چيز ديگري وصل شده باشد، ممكن است به وجود آن تكيه كرده باشد، بنابراين استنباط مي شود كه اتصال باعث ايجاد يك سطح از وابستگي5 مي شود. در نتيجه ميزان اتصال دو ماهيت، ميزان وابستگي بين آنها را بيان مي كند. ميزان بستگي بين ماهيت ها بر اساس دو عبارت اتصال قوي6 و اتصال





21 component context



3 coupling



54 decounpled dependency



6 tight coupling



سست1 مشخص مي شود . اولي به سطح بالايي از وابستگي و دومي به درجه پاييني از آن اشاره مي كند. اتصال ضعيف، يكي از اصول هشتگانه طراحي سرويس هاست.[SOAG]



1,12 دانه بندي



ميزان تقسيم بندي واحد منطق كار است. دانه بندي مي تواند درشت يا ريز باشد.



1,13 دانه بندي داده



ميزان داده اي كه توسط قابليت يك سرويس خاص جابجا مي شود، سطح دانه بندي داده 2 ها را تعيين مي كند. بعنوان نمونه دو تابع Get() و GetHeader()كه در شكل 1 5 نشان داده شده اند را در نظر بگيريد. تابع Get كه تمام سند تجاري سرويس را مي گيرد و بر مي گرداند، سطح درشت تري از دانه بندي داده ها را خواهد داشت. زيرا تابع GetHeader() تنها زيرمجموعه اي از سند هاي تجاري را برمي گرداند.[SOAG]





1,14 استانداردسازي مدل داده اي





21 loose coupling data granularity



استانداردسازي مدل داده اي1، بخشي از فرايند استاندارد سازي است كه با استاندارد نمودن شماي مدل داده اي، باعث افزايش قابليت تعامل پذيري خواهد شد.



1,15 همنواسازي



همنواسازي2، نام يك الگوي طراحي است كه توسط Thomas Erl و Brain Loesgen معرفي شد و بعنوان كاتالوگ الگوهاي طراحي SOA منتشر شد. نيازمندي هاي همنواسازي عبارتند از:



وجود همزمان كاربرد انتزاع فرايند، انبار وضعيت، تمركز فرايند و تراكنش سرويس مكمل، كه مي توان در آتي آنرا با تراكنش سرويس اتميك، تمركز قواعد و انتقال مدل داده توسعه



[SOAG].داد



1,16 معماري سرويس گرايِ بدوي



با بلوغ و تكميل سكوهاي SOA مخصوص هر فروشنده، آنها خودشان را با كمك اولويت پيشرفت تكنولوژي يا با پذيرش استاندارد هاي تكنولوژي صنعتي از همديگر متمايز مي كردند.



هنگامي كه SOA براي يك سازمان معرفي مي شود، اگر بتوان يك مدل معماري سرويس گرا را تعريف كرد كه ضمن آنكه مستقل از هر فروشنده SOA باشد، بتواند در كنار سكوهاي فروشنده اصلي قرار گيرد. اين باعث مي شود كه سازمان، پياده سازي SOA خود را انجام دهد و هرجا كه لازم شد به آن تنوع بدهد. براي بدست آوردن اين وضعيت، بهتر است كه بتوان يك معماري سرويس گراي پايه را در هر سكوي فروشنده جاري تحقق داد. اين گونه از



SOA با عنوان SOA بدوي شاخته شده است.