چهارشنبه, ۲۷ تیر, ۱۴۰۳ / 17 July, 2024
مجله ویستا

مقدمه ای بر معماری مبتنی بر سرویس SOA


مقدمه ای بر معماری مبتنی بر سرویس SOA

از جمله مسائل مهمی که در پروژه های نرم افزاری مطرح است بحث هزینه نگهداری سیستم های نرم افزاری است

از جمله مسائل مهمی که در پروژه‌های نرم‌افزاری مطرح است بحث هزینه نگهداری سیستم‌های نرم‌افزاری است. علاوه بر این موضوع، در سیستم‌های اطلاعاتی بزرگ بحث یکپارچه‌سازی واحد‌های مختلف نرم‌افزاری و استفاده از نرم‌افزار‌ها و سیستم‌های موجود مطرح می‌گردد. با در نظر گرفتن تنوع سیستم‌های عامل و محیط‌ها و زبان‌های توسعه نرم‌افزار، عمل یکپارچه‌سازی و نگهداری این قبیل سیستم‌ها با هزینه‌ها و مشکلات فراوانی مواجه می‌گردد.

از سوی دیگر، با وجود رشد و توسعه سریع فناوری‌های اطلاعاتی و ارتباطی، نیازمندی‌های سازمان‌ها نیز به سرعت در حال افزایش است. آنچه به عنوان راهکاری مناسب برای غلبه بر پیچیدگی‌های روز‌افزون سیستم‌های اطلاعاتی مطرح می‌گردد، استفاده از معماری نرم‌افزاری مناسب در توسعه و پیاده‌سازی نرم‌افزار‌ها در این قبیل سیستم‌ها است.

معماری مبتنی بر سرویس رویکرد جدیدی در دنیای نرم‌افزار است که با رفع محدودیت‌ها و نواقص معماری‌های پیشین به عنوان بهترین گزینه در این زمینه محسوب می‌گردد. در این مقاله سعی شده است مفاهیم و اصول پایه‌ای این معماری به طور اجمالی مورد بررسی قرار گیرد.

سیستم‌های اطلاعاتی به سرعت در حال رشد هستند؛ سازمان‌ها نیازمند پاسخگویی سریع به نیازمندی‌های جدید کسب‌وکار هستند. این در حالی است که معماری‌های نرم‌افزاری موجود به حد نهایی قابلیت‌های خود رسیده‌اند. معماری مبتنی بر سرویس SOA قدم تکاملی بعدی برای کمک به سازمان‌ها جهت مدیریت چالش‌های پیچیده است.

معماری مبتنی بر سرویس حالت بلوغ یافته معماری مبتنی بر اجزا، طراحی مبتنی بر واسطه (شی‌گرا) و سیستم‌های توزیع ‌شده است. در معماری مبتنی بر اجزا عملکرد کلی به کارهای کوچک‌تری تقسیم می‌شود که هر یک در یک جزء بسته‌بندی خواهند شد. یک سیستم توزیع‌شده، تعمیمی از یک معماری مبتنی بر اجزا است که به اجزائی که در موقعیت‌های فیزیکی مختلف وجود دارند، اشاره می‌کند.

مهم‌ترین مزیت معماری مبتنی بر اجزا سهولت در استفاده مجدد و تغییر هدف اجزای خاص و سهولت در امر نگهداری سیستم است. استفاده مجدد و تغییر هدف معمولاً مهم‌ترین پیشران‌های کسب‌و کار جهت استفاده از این نوع معماری در دهه ۹۰ میلادی بوده است. بر اساس منطق معماری مبتنی بر سرویس، سیستم‌های نرم‌افزاری بزرگ می‌توانند از گردآوری مجموعه‌هایی از عملکردهای مستقل و قابل استفاده مجدد تشکیل گردند.

برخی از این عملیات می‌تواند از طریق سیستم‌های موجود و یا سیستم‌های دیگر فراهم گردد ولی سایر عملیات لازم باید پیاده‌سازی شوند. هر سرویس امکان دسترسی به مجموعه خوش‌ تعریفی از عملیات را می‌دهد. سیستم به عنوان یک کل به صورت مجموعه‌ای از تعاملات بین این سرویس‌ها طراحی می‌شود. معماری مبتنی بر سرویس، سرویس‌هایی را که سیستم از آنها تشکیل شده را تعریف ‌می‌کند و تعاملات لازم بین سرویس‌ها جهت ارائه رفتار مشخص را توصیف ‌می‌کند و در نهایت سرویس‌ها را به یک یا چند پیاده‌سازی در تکنولوژی‌های خاص تصویر می‌کند.

SOA بر اساس استفاده از اشیاء و اجزا توزیع شده است و قدم تکامل بعدی در محیط‌های محاسبه‌ای است. این معماری در حال حاضر مدل مرجع استانداردی ندارد؛ اما پیاده‌سازی‌های موجود مفاهیم مشترکی را مورد استفاده قرار می‌دهند که در ادامه این مفاهیم پایه مورد بررسی قرار می‌گیرند.

● مفاهیم اصلی در معماری مبتنی بر سرویس

در حال حاضر استاندارد مشخصی برای تعریف SOA وجود ندارد اما مواردی که در ادامه می‌آید مهم‌ترین و سازگارترین موارد در پیاده‌سازی SOA هستند.

▪ سرویس‌

یک سرویس رفتار تعریف شده قراردادی است که می‌تواند به‌وسیله یک جزء برای استفاده جزء دیگر پیاده‌سازی شده و فراهم گردد.

▪ شرح سرویس

شرح سرویس پارامترهای فنی، قیود و سیاست‌هایی را شامل می‌شود که قالب‌های لازم برای فراخوانی سرویس را تعریف می‌کند. هر سرویس باید شامل تعریف سرویس در قالب استاندارد باشد. این موضوع کاربردها و کاربران انسانی را قادر می‌سازد تا با بررسی شرح سرویس و تعیین موضوعاتی نظیر این‌ که سرویس چه کاری انجام می‌دهد، چگونه به آن انتصاب می‌یابند و این‌که چه پروتکل‌های امنیتی (در صورت وجود) باید به همراه آن مورد استفاده قرار گیرد، از آن سرویس استفاده کند.

این اعلان همچنین ممکن است شامل جزئیاتی در مورد هر فرایند ضمنی و دیگر واژه‌های کاری و قانونی باشد که ممکن است در زمان فراخوانی سرویس اتفاق بیفتد. به عنوان مثال، اگر یک استفاده‌کننده سرویس، سرویسی را فراخوانی کند که یک درخواست خرید را برای فراهم‌کننده سرویس ارسال نماید، و اجرا موفقیت‌آمیز باشد، این موضوع ممکن است منجر به مسئولیت مالی نسبت به فراهم‌کننده سرویس یا بخش قانونی دیگر می‌شود.

در حالیکه طبیعت سرویس‌ها ممکن است تغییر کند، استاندارد مشترکی جهت اعلان یک سرویس هنگام تهیه یک زیرساخت مطلوب است. دو نمونه از چنین استانداردهای موجود ebXML و WSDL هستند.

● اعلان و یابش سرویس‌ها

شرح سرویس باید به شیوه‌ای قابل دسترسی در اختیار کاربران بالقوه قرار گیرد که به این امر اعلان سرویس اطلاق می‌شود.

یابش، ‌زمانی انجام می‌شود که یک مشتری بالقوه اطلاعاتی در مورد وجود یک سرویس، پارامترهای قابل اعمال و واژگان آن به دست آورد. یافتن، بحث تصدیق هویت جهت اجرای سرویس را شامل نمی‌شود؛ گرچه این جزئیات ممکن است در الگوی یافتن قرار گیرد.

اجزای اعلان و یابش در SOA به شیوه‌های مختلف از جمله استفاده از روش ثبات / مخزن و یا روش دایرکتوری سرویس قابل پیاده سازی هستند.

▪ پیاده‌سازی به روش ثبات / مخزن

یک ثبات / مخزن جزئی است که در آن کاربران امکان ذخیره و مدیریت سرویس‌های لازم برای عملکرد سازمانشان را خواهند داشت. این موضوع شامل سرویس‌هایی است که تسهیم بین بیش از یک کاربر (نظیر xml schemas و شرح web-service) را فراهم می‌آورد که به ثبات به گونه‌ای منتسب می‌شود که ثبات در مورد تمامی رویدادهای قابل ارزیابی نسبت به محصولات در مخزن اطلاع دارد.

▪ پیاده‌سازی به روش دایرکتوری

دایرکتوری یک واسط است که اطلاعات انتساب به محصولات را فراهم می‌آورد. افرادی که مالک محصولات هستند و یا آنها را کنترل می‌کنند، می‌توانند یک مدخل به دایرکتوری باز کرده تا به محصولات ارجاع داده و خود انتسابات به آن را توضیح دهند. دیگران ممکن است این اطلاعات را بازیابی کرده و از آن جهت انتساب به محصولات استفاده کنند. مهم‌ترین مشکل دایرکتوری این است که هیچ کنترل یا اطلاع‌رسانی در صورت حذف، تغییر و جایگزین شدن یک محصول انجام نمی‌دهد و قادر به اعلام این رویدادها به کاربران نیست.

هر دو پیاده‌سازی دایرکتوری و ثبات / مخزن امکان سازگاری با یکدیگر را دارند. به این معنا که عملکرد اجازه می‌دهد که محتوا از یک پیاده‌سازی توسط یک پیاده‌سازی دیگر مورد ارجاع قرار گیرد.

چندین استاندارد وجود دارد که پیاده‌سازی‌ها دایرکتوری و ثبات / مخزن را دارند.

▪ رایج‌ترین استانداردها عبارتند از:

ـ OASIS ebXML Registry-Repository Technical Specifications۱۶

ـ OASIS Universal Description and Discovery Interface (UDDI) Technical Specification۱۷.۲

● خصوصیات مدل داده‌ای مرتبط

در هنگام فراخوانی یک سرویس، پارامترهای مشخصی ممکن است برای انجام درخواست سرویس مورد نیاز باشد. سرویس همچنین ممکن است پارامترهایی را به کاربر سرویس بازگرداند. W۳C WSDL یک نمونه شناخته شده از پیاده‌سازی این بخش است.

● اصطلاحات رایج در معماری مبتنی بر سرویس

▪ فراهم‌کننده سرویس:

یک موجودیت نرم‌افزاری که خصوصیات سرویس را پیاده‌سازی می‌کند.

▪ درخواست‌کننده سرویس:

یک موجودیت نرم‌افزاری که یک فراهم‌کنندهٔ سرویس را فراخوانی می‌کند، به‌طور سنتی این مورد به عنوان "کلاینت" شناخته می‌شود؛ اما یک درخواست‌کننده سرویس می‌تواند یک کاربر برنامه کاربردی و یا سرویس دیگر باشد.

▪ موقیعت‌یاب سرویس:

یک نوع خاص از فراهم‌کننده سرویس که به‌عنوان یک ثبات عمل می‌کند و امکان جست‌وجوی واسطه‌های فراهم‌کننده سرویس و موقعیت سرویس را می‌دهد.


شما در حال مطالعه صفحه 1 از یک مقاله 2 صفحه ای هستید. لطفا صفحات دیگر این مقاله را نیز مطالعه فرمایید.