بررسی معماری سرویس گرا و معماری سازمانی سرویس گرا Service Oriented Enterprise Architecture (SOEA)—بسیار جامع - 166 صفحه فایل ورد
فهرست مطالب
عنوان صفحه
فصل اول – مقدمه 5
1-1- معماری نرم افزار ۶
1-2- معماری سازمانی ٨
1-3- فواید معماری سازمانی 10
1-4- معماری سرویس گرا 10
1-5- مزایای معماری سرویس گرا 13
1-6- مزایای اعمال سرویسگرایی در معماری سازمانی 14
1-7- هدف این گزارش 16
1-8- ساختار گزارش 17
فصل دوم- نقش چارچوب و سبک در تدوین معماری سازمانی ١٨
2-1- چارچوب معماری سازمانی ١٩
2-1-1- ویژگیهای چارچوب معماری سازمانی 20
2-1-2- نقش چارچوب در معماری سازمانی 21
2-1-3- چارچوب زکمن 23
2-2- سبک معماری سازمانی ٣٠
2-2-1- تعریف سبک معماری ٣٠
2-2-2- نقش سبک در تدوین معماری ٣٣
2-2-3- نقش سبک در معماری سازمانی ۵٣
فصل سوم - معماری سرویس گرا ٣٨
3-1- تاریخچه و هدف از معرفی 40
3-2- تعریف معماری سرویس گرا 42
3-2-1- معماری سرویس گرا به عنوان سبک معماری ۴۶
3-3- مفاهیم مهم سرویسگرایی ٩۴
3-4- اصول و مشخصه های معماری سرویس گرا ۵۴
3-5- فواید SOA ٧٠
3-6- پشته معماری سرویسگرا ٧٣
3-7- سرویس گرایی در مقایسه با شیء گرایی ۶٧
فصل چهارم - معماری سازمانی سرویس گرا ٨٣
4-1- هدف از استفاده از مفهوم سرویسگرایی در معماری سازمانی 85
4-2- ایدهها، موانع و راه حل برای اعمال سرویس گرایی بر چارچوب معماری سازمانی 86
4-3- چارچوب گسترش یافته زکمن 90
4-4- چارچوب گسترش یافته و قواعد هفت گانه 94
4-5- ویژگیهای راه حل ارائه شده 97
فصل پنجم- زمینه های تحقیق در این ارتباط ١٠٠
فصل ششم - خلاصه و نتیجه گیری 103
منابع و مراجع 107
فهرست شکلها
عنوان صفحه
شکل 2-1- چارچوب معماری سازمانی 25 شکل 3-1- به سوی معماری سرویس گرا 42 شکل3-2- کپسوله سازی اندازه های مختلفی از منطق توسط سرویس 50
شکل3-3- مکانیزم برقراری ارتباط در SOA ٩۵
شکل3-4- پشته معماری سرویس گرا 73 شکل4-1- شمایی از چارچوب زکمن گسترش یافته 91
فصل اول
مقدمه
هر مجموعه، سازمان و ارگان برای حفظ موجودیت و پیشبرد اهداف خود در فضای رقابتی امروز، نیازمند انطباقبا شرایط موجود و بنابراین ناگزیر از ایجاد تغییرات مداوم در خود است. این تغییرات باعث میشود تا سازمان یامجموعه بطور مداوم پیچیدهتر شود. در این جا است که نقش فن آوری اطلاعات پررنگتر میشود زیرا بدوناستفاده از آن هزینه و زمان بسیار زیادی مورد نیاز خواهد بود که صرف آن غیر ممکن مینماید و در صورتممکن بودن نیز مشکلات بسیاری در راستای انجام کارها و دستیابی به اهداف سازمان ایجاد میکند.
رشد روز افزون تغییرات در سازمان ها از یک سو و نیاز مبرم به بهره گیری از فناوری اطلاعات و ارتباطات درآنها از سوی دیگر، ایجاب می کند که تا حد ممکن این دو - یعنی اعمال تغییرات در سازمان و تغییر متناسب باآنها در عملکرد و ساختارهای فناوری اطلاعات و زیرساختهای سخت افزاری ، نرم افزاری و اطلاعاتی سازمان- باهم هماهنگ باشند. این امر به معنای آن است که بتوانیم در انتقال تغییرات از فرایندها ، داده ها و سایر مواردسازمان به برنامه ها و سایر مقولات مربوط بهIT انعطاف ایجاد کنیم.
دو مورد از مهمترین رویکردهایی که این هدف را دنبال میکنند، رویکرد معماری سازمانی و معماری سرویسگرااست. در این تحقیق هدف از اعمال مفهوم سرویسگرایی و معماری سرویسگرا بر معماری سازمانی و مشکلاتپیش رو در این راستا و راه حل پیشنهادی درجهت تسهیل نیل به هدف فوق مورد بررسی قرار میگیرد.
1-1- معماری نرم افزار
معماری نرم افزار به عنوان یک مفهوم جدید اولین بار توسطEdsger Dijkstra در سال 1968 و DavidParnas در اوایل دهه 1970 مطرح شد. این مفهوم و توجه به اهمیت صحت ساختار یک سیستم در اوایل
1990 با مطرح شدن سبکها و الگوهای معماری، زبانهای توصیف معماری و مستند سازی آن و نیز متدهایرسمی مورد توجه و تمرکز بیشتر قرار گرفت.
بعنوان یک معرفی کلی میتوان گفت معماری نرم افزار شامل مؤلفه های نرم افزار، ویژگیهای خارجی آنها ورابطه آنها با یکدیگر است. از سوی دیگر این عبارت اشاره به مستند سازی معماری نرم افزاری یک سیستم دارد که به ارتباط میان ذی نفعان کمک می کند و تصمیمات مربوط به طراحی سطح بالا را مستند و امکان استفادهمجدد از مؤلفه های طراحی و نیز الگوها را میان پروژه های مختلف فراهم میکند.
اما معماری نرم افزار به این علت مطرح شد که همواره در صنعت نرم افزار نیاز به آن بوده که بتوان برپیچیدگیهای موجود فائق آمد. در ابتدا مشکلات مربوط به پیچیدگی توسط توسعه دهندگان و با انتخابساختارهای داده ای صحیح ، توسعه الگوریتمهای مناسب و به کارگیری مفاهیم جداسازی مسائل نسبتا مجزارفع می شد.در دهه 1990 تلاش متمرکزی برای تعریف اصول مبنای نظام1 انجام شد. اولین الگوهای طراحی،زبانهای توصیف و منطق رسمی در آن زمان توسعه یافتند. نظام معماری نرم افزار حول محور ایده کاهشپیچیدگی از طریق تجرید و جداسازی مسائل2 متمرکز است. و تا امروز هنوز توافقی بر تعریف دقیق عبارتمعماری نرم افزار وجود ندارد. با این وجود تعاریف متعددی برای آن ارائه شده است که برخی از آنها در [1] آمده است و به برخی نیز در این قسمت اشاره خواهیم کرد.
تعریف جان زکمن از معماری: معماری مجموعه ای از محصولات طراحی یا نمودارهای توصیفی است که برایتشریح یک موجودیت ایجاد و در طول حیات آن موجودیت نگهداری می شود. [2]
تعریف معماری نرم افزار در استاندارد 2000-1471 IEEE : معماری نرم افزار می تواند به شکل سازماندهی اولیهیک سیستم تعریف شود. این سازماندهی می بایست در مؤلفهها (ی نرم افزاری)، روابط بین آنها ، روابط بینمؤلفه ها و محیط، طراحی، و تکامل تدریجی صورت گیرد. از طرف دیگر ، یک سیستم مجموعه ای از مؤلفهها(ی نرم افزاری ) است که برای انجام یک وظیفه خاص یا مجموعه ای از وظایف سازماندهی شده اند.
بطور کلی در تعاریف مختلف معماری ویژگیهای زیر مورد تأکید هستند[3]:
21 Discipline Separation of concerns
الف – معماری، یک طراحی سطح بالا از کلیه عناصر یک سیستم است.
ب - معماری، نشان دهنده مجموعه عناصر سیستم و رابطه آنها با هم است.
پ - رفتار هر عنصر بخشی از معماری است .
ت - رفتار عناصر می تواند از دید سایر عناصر کنار گذاشته شود.
ث - معماری مجموعه ای از مدلها و توصیفات است.
ویژگیهایی که برای یک معماری خوب پیشنهاد شده است عبارتند از[4]:
الف- قابل فهم بودن
ب - در نظر گرفتن موارد اصلی کاربری سیستم پ - قابلیت استفاده مجدد
ت - در نظر گرفتن موارد اصلی کاربری سیستم
ث -تعریف واسطها بطوری که کمترین وابستگی ممکن میان زیر سیستمها وجود داشته باشد.
ج -انعطاف پذیری نسبت به تغییرات
حال مختصرا به مفهوم معماری سازمانی می پردازیم.
1-2- معماری سازمانی
منظور ازEnterprise ، سازمانی است که دارای یک حوزه و مأموریت کاری تعریف شده است و شامل منابع بهموابسته (مردم، سازمانها و فناوری) است که باید وظایفشان را راهبری نماید و اطلاعات مورد نیاز آنها را بین آنهابه اشتراک بگذارد [5] و این تعریفی است که در معماری سازمانی از آن بهره می گیریم.
تعاریف متعددی برای معماری سازمانی ارائه شده است. از این میان می توان به موارد زیر اشاره کرد:
1- تعریفOpenGroup : معماری سازمانی در مورد درک همه عناصر متفاوتی است که سازمان را میسازندو درک چگونگی ارتباط میان این عناصر. [6]
2- تعریف سا زمان جهانی معماری سازمانی (GEAO): معماری سازمانی به روش بیان چشم انداز سازمان درساختار و پویایی سازمان گفته می شود. معماری سازمانی در سطوح تجرید مختلف، مجموعه ای پیوسته ازمدلها، مفاهیم ، خطوط راهنما و سیاستهای مورد استفاده برای تبدیل ، تنظیم و تکامل سیستمی که درحیطه و متن موجود سازمان وجود دارد، فراهم می کند. [ 7]
3- تعریف شورای مدیران ارشد فناوری اطلاعات امریکا(CIO): دارایی پایه اطلاعات راهبردی که مأموریتها،اطلاعات لازم و فناوریهای لازم برای انجام آنها و فرایندهای گذار برای بکارگیری فناوریها در پاسخ بهتغییرات مورد نیاز مأموریتها را تعریف می کند.[5]
4- تعریف زکمن: مجموعه ای از فراورده ها و توصیفات پایه که دانشی راجع به زیر ساختهای سازمان ارائه میدهند.[8]
نکات مشترک میان تعاریف موجود عبارت است از:
الف – ارتباط با سازمان و تصویر کلی از تمام عناصر تأثیر گذار بر سازمان ب - متشکل از مدلها ، مفاهیم و قوانین منسجم پ - ارائه تعریف دقیقی از وضعیت فعلی سازمان ت - ارائه تعریف دقیقی از وضعیت آینده سازمان
ث - دارای یک طرح انتقال از وضعیت فعلی به وضعیت آینده [9]
1-3- فواید معماری سازمانی
فایده اصلی معماری سازمانی ارائه آگاهی در مورد سازمان و نیز مسائل مربوط به فناوری اطلاعات است. از فوایدجانبی دیگر می توان به موارد زیر اشاره کرد:
الف – بهبود تصمیم گیری به علت وجود اطلاعات و درک بهتر و بیشتر از سازمان
ب - تغییر سریعتر و انطباق بهتر با شرایط و انعکاس سریعتر آن در فناوری اطلاعات سازمان
پ -شناسایی دارایی های موجود سازمان که ممکن است بطور کامل و مفید به کار گرفته نشده باشند و یا حتیدیده نشده باشند.
ت - شناسایی و حذف افزونگی ها و بنا بر این کاهش هزینه های سازمان.
ث - یکپارچگی اطلاعات و ایجاد استانداردها و قواعد ویژه جهت به اشتراک گذاری داده ها و مؤلفه ها
1-4- معماری سرویس گرا4
حال که مختصرا به معماری نرم افزار و معماری سازمانی پرداختیم، معماری سرویس گرا را به اختصار در اینبخش معرفی کرده و در بخشهای بعدی مفصلتر آن را بررسی میکنیم، مفهوم سرویس گرایی از مدتی پیشوجود داشته و در زمینه های متفاوت و برای مقاصد مختلفی مورد استفاده قرار گرفته است. اما آنچه در طولحیات این مفهوم ثابت مانده است، آن است که این مفهوم، روشی مبتنی بر مفهوم تجزیه را ارائه می دهد. بنابراین سرویسگرایی یک روش فنی محض نیست. برای مثال در صفحات زرد5 کسب و کارهای سرویسگرایبسیاری را میتوان یافت . شرکتها هر یک به تنهایی سرویسگرا هستند زیرا هر یک سرویس مجزایی را فراهممی کنند که میتواند توسط مشتریان مختلفی مورد بهره برداری قرار گیرد. در مجموع این شرکتها با هم یکجامعه کاری تشکیل می دهند و بسیار منطقی است اگر انواع خدمات و سرویس توسط فقط یک شرکت دریافت
54 Service Oriented Architecture Yellow Pages
نشود. بلکه با تجزیه جامعه کاری به بخشهای سرویس دهنده تخصصی منفرد، به محیطی دست یابیم که در آنسرویس دهندهها توزیع شده باشند. حتی در یک مدل توزیع شده، ایجاد وابستگیهای عمیق موجب ممانعت ازارائه پتانسیل موجود در کسب و کارهای منفرد خواهد شد. اگرچه مایلیم که سرویس دهنده ها با یکدیگر تعاملداشته و از سرویس یکدیگر بهره بگیرند، اما از سوی دیگر نیز مایلیم از مدلی که در آن، سرویس دهندههااتصالات تنگاتنگی با هم دارند و این اتصالات موجب وابستگیهای شدید و محدود کننده می شوند اجتناب کنیم. اگر به کسب و کارها این قدرت را بدهیم که هر یک بتوانند سرویس های خود را کنترل و اداره کنند، به آنها اینقدرت را داده ایم که نسبتا مستقل از یکدیگر رشد و تکامل یابند. اما با این وجود باید مراقب بود تا همگی آنهابتوانند بر اساس اصولی به یکدیگر متصل شوند (مثل استفاده از ارز یکسان در شرکت یا استفاده از یک زبانخاص بعنوان زبان اصلی شرکت و ... ). این هماهنگیها موجب استاندارد شدن جنبه های کلیدی هر کسب و کارمی شود .
سرویسگرایی در ترکیب با "معماری "، معماری سرویس گرا را معرفی می کند که عبارتی است که مدلی را ارائهمی دهد که در آن منطق کل سیستم به بخشهای منطقی مجزا و کوچکتر شکسته می شوند. این واحدهایکوچکتر جمعا بخش بزرگتری از منطق را ارئه می کنند و می توانند توزیع شده باشند. SOA مشوق واحدهایمنفرد منطق است تا بتواند به مجموعه ای از اصول طراحی دست یابد.[ 10]
تعاریف بسیاری برای معماری سرویس گرا وجود دارد. اما یک تعریف رسمی واحد برای آن موجود نیست. بههمین دلیل بسیاری از سازمانها که سعی در استفاده و بهره برداری از این مفهوم را دارند برای تعریف آن حرکتی کرده اند . بنا براین برایSOA تعاریف متفاوتی مانند آنچه در ادامه آمده ذکر شده است وجود دارد:
الف – تعریف شرکتIBM : معماری سرویس گرا چارچوبی برای برنامه های کاربردی است که کاربردهایروزمره کسب و کار را می گیرد و آنها را به عملکردها و فرایندهای مختلف کاری – که به آنها سرویس اطلاق میشود - می شکند.SOA امکان ساخت ، استقرار و یکپارچه سازی این سرویسها را بطور مستقل از برنامه هایکاربردی و پلتفرم اجرا فراهم می کند.
ب - تعریفSOA : Microsoft رویکردی است6 برای سازماندهی فناوری اطلاعات که در آن داده ها ، منطق، ومنابع زیرساختی با استفاده از مسیریابی پیامها بین واسطهای شبکه مورد دسترسی قرار می گیرند.
پ - تعریفSOA : W3C مجموعه ای از مؤلفه ها است که می توانند فراخوانی شوند و توصیف واسط آنها قابلانتشار(publish) و کشف (discover) است.
بنا بر اینSOA یک "سیستم ساخته شده بر اساس سرویسها " نیست. غالب تعاریفSOA بر این متفق اند ک هSOA وظایف یک برنامه کاربردی را بصورت مجموعه ای از سرویسهای به اشتراک گذاشته شده و قابل استفادهمجدد تعریف میکند. ما بر هیچ تکنولوژی ویژه یا پیادهسازی خاصی ازSOA تکیه نمی کنیم .
از آنجا که تعریف رسمی واحدی برایSOA وجود ندارد، هیچ مجموعه رسمی واحدی از اصول طراحی بر مبنایسرویس گرایی نیز وجود ندارد اگرچه مجموعه ای از اصول طراحی در سطح سرویس توسط افرادی مانندErl وMcGovern معرفی شده اند که بر سرویسگرایی انطباق مناسبی دارند و عبارتند از :
1- قابلیت استفاده مجدد
2- به اشتراک گذاشتن یک قرار داد رسمی7
3- وابستگی ضعیف8
4- تجرید منطق
5- قابلیت ترکیب
76 Approach Formal Contract
8 Loose Coupling
6- استقلال داخلی 9
7- بی حالتی10
8- قابلیت کشف
9- دارای واسط قابل آدرس دهی در شبکه
10- شفافیت مکانی
مفاهیم فوق در فصل 3 بیشتر شرح داده خواهند شد.
1-5- مزایای معماری سرویس گرا
همانطور که اشاره شد هر کسب و کار برای رقابت موفق نیاز به آن دارد تا بیش از پیش انعطاف پذیر باشد. برایایجاد این انعطاف ، زیر ساختهایIT آن می بایست از تغییرات سریع مورد نیاز برای همگام بودن با شرایطپویای کاری پشتیبانی کند. بسیاری از شرکتها برای رسیدن به این هدف به فکر انطباق باSOA می افتند که امکان تعریف ، ایجاد و اجرای سرویسها را به سازمان داده و قدرت تطبیق و ایجاد سریع سرویسها به واکنشسریعتر کسب و کار در قبال تغییرات کمک می کند. بعبارت دیگرSOA طرز فکر افراد را درباره معماری ازحالت سنتی، بزرگ، غیر قابل تغییر11 ، انعطاف ناپذیر و با هزینه های بالا تغییر می دهد.
از مزایای کلیSOA می توان به موارد زیر اشاره کرد:
1- افزایش سرعت و چابکی در کسب و کار.
2- بهینه کردن سرمایه گذاری درIT .
3- هماهنگ نگاه داشتنIT با حرفه.
109 Autonomy Statelessness
11 Monolithic
4- حذف سیستم ها و معماریهای تکراری و بهبود یکپارچگی.
5- مدیریت آسانتر سرویسهایIT با برقراری ارتباط بهتر میان حرفه و IT ، و افزایش اثر بخشی کلی.
6- پشتیبانی از اتوماسیون فرایندهایIT با تأکید بر استفاده مجدد .
7- بهره گیری از زیر ساختهای فعلی در معماری جدید برای حفظ سرمایه هایIT .
1-6- مزایای اعمال سرویسگرایی در معماری سازمانی
همانطور که قبلا اشاره شد ، انگیزه اصلی از ایجادSOA نیاز به افزایش انعطاف پذیری و سرعت در قبال نیاز بهتغییر در سازمان و به تبع آن تغییر در ساختارIT سازمان است. در سازمانی که بتواند به اهداف فوق برسد،فرایندها و سرویس ها کاملا انعطاف پذیر بوده و می توانند بر اساس نیاز متخصصان کسب و کار و بدون نیاز بهپرسنل فنی به سرعت ایجاد، پیکر بندی و بازچینی شوند. این تصویر از سازمان چابک با نیازهای رو به رشدمحیطهای متغیر کاری و با توجه به محدودیتهای زیرساختهای فنی و سازمانی وفق دارد.