Service Oriented Architeture
در حقیقت soa یک معماری برای تولید سیستم و ایجاد یکپارچگی بین سیستم های موجود است که بعضاََ با تکنولوژی های مختلفی پیاده سازی شده اند و اکنون نیاز به تعامل با یکدیگر دارند.در این معماری برای هر سرویس مورد نیاز،تولید کننده و استفاده کننده آن سرویس به یکدیگر وابسته نمی باشند و همین امر سبب می شود تا اعمال تغییرات سریع و مقرون به صرفه باشد.
با توجه به اینکه امروزه استراتژی های سازمان ها بنا به دلایل گوناگون تغییرات زیادی مینماید و مدل ها و اهداف تجاری هر سازمانی دستخوش تغییرات میگردد، مهمترین عامل موفقیت هر محصول نرم افزاری منوط به سرعت و هزینه توسعه آن میباشد.
همواره در مسیر رسیدن از مدل تجاری جدید سازمان که بر گرفته از اهداف استراتژیک آن سازمان میباشد،به نرم افزار های مورد نظر جهت پیاده سازی و اجرایی نمودن آن مدل فاصله زوانی و هزینه فراوانی وجود دارد جهت رفع این فاصله نیاز به راهکار نرم افزاری مناسبی میباشد که به کمک آن بتوان این فاصله زمانی را به حداقل رساند
لزوم استفاده از معماری بر پایه سرویس
![SOA 2 - SOA](https://www.royalvision.ir/wp-content/uploads/2019/08/2.png)
مهمترین مشکلاتی که در گسترش این فاصله تاثیر گذار میباشند عبارتند از عدم انعطاف معماری های کنونی بکار گرفته شده در توسعه سیستم های نرم افزاری موجود،از آنجا که این معماری ها قابلیت هماهنگی با سایر محیط ها و برنامه های نرم افزاری را نداند امکان اتصال و بهره مندی از سایر نرم افزار های موجود وجود ندارن و به همین جهت در سازمان سیستم های جزیره ای به وحود خواهد آمد که هر یک به تنهایی قابل استفاده میباشد، اما امکان تلفیق با یکدیگر را ندارند این موضوع در زمان طولانی منجر به پیدایش داده های منفک و مجزا در سیستم میگردد که امکان یکپارچگی داده را از سازمان گرفته و در نهایت منجر به پرداخت هزینه های گزاف به منظور استفاده یکپارچه از این اطلاعات گسسته خواهد شد.
متاسفانه امروزه به علت عدم این یکپارچگی معماری توسعه نرم افزار، ایجاد یک سیستم جدید همواره یک دغدغه بوده و پشتیبانی از سیستم های فعلی نیز بسیار پر هزینه میباشد در حالی که اگر از یک معماری استفاده گردد که امکان یکپارچگی و ارتباط فیمابین سیستم های گسسته را بتواند فراهم نماید سیستم به بخش ههای کوچک تقسیم میگردد که هر بخش وظیفه مربوط به خود را انجام داده و درنقل و انتقال داده نیز با سایر بخش ها تعامل خواهد داشت.
تاثیر SOA بر هزینه در بخش IT
در شکل مقابل مقایسه هزینه در دو مدل بر پایه سرویس و مدل قدیم که بر پایه برنامه یا تکلونوژی میباشد به تصویر کشیده شده است همانگونه که در تصور مشخص میباشد در مدل برپایه سرویس هزینه راه اندازی زیر ساخت که شامل پیاده سازی ابزار های لازم برای ایجاد لایه ارتباطی فیمابین سرویس ها میباشد در معماری بر پایه سرویس نسبت به مدل قبل بیشتر میباشد زیرا زیر ساخت گسترده تری میباشد و ماژول های بیشتری دارد اما در مدت زمان محدودی به علت کاهش هزینه در زنان توسعه سیستم و همچنین در زمان پشتیبانی یا بروز رسانی ماژول های سیستم در معماری بر پایه سرویس میزان این قبیل هزینه ها بسیار کاهش میابد و این موضوع را باید در نظر داشت که استفاده از معماری بر پایه سرویس و ایجاد یک زیر ساخت برای آن یک موضوع مطمئن در بخش IT میباشد که تاثیرات آن به مرور با افزایش ماژول های مورد نیاز سازمان و ازدیاد سرویس هایی که سازمان ارائه میدهد یا استفاده میکند، افزایش میابد.
![SOA Capture - SOA](https://www.royalvision.ir/wp-content/uploads/2019/08/Capture.png)
لازم به ذکر می باشد در ایجاد این زیر ساخت توصیه اکید میگردد از امکانات فراهم گردیده توسط شرکتهایی مانند oracle یا sap استفاده گردد تا خود این زیر ساخت در وهله اول کامل و در وهله دوم قابل اطمینان باشد اگر زیر ساخت مورد نیاز برای پیاده سازی soa در سازمان درست انتخاب نگردد همانند پایگاه داد ی کوچکی خواهد که در ابتدا از لحاظ هزینه ای به علت کوچک بودن مقرون به صرفه میباشد اما بعد از گذشت مدت اندکی به علا پر شدن ظرفیت میبایست هزینه چند برابر پرداخت گردد تا داده ها به پایگاه داده مطمئن منتقل گردد در حالیکه اگر در ابتدا برآورد صحیحی از حجم داده صورت میگرفت و پایگاه داده مناسبی اختیار میگردید،تا با نیاز سازمان متناسب باشد،این هزینه بسیار کاهش میافت.
توضیحات تکملیلی
oracle soa suite در حقیقت یک مجموعه قوی از ابزار های مورد نیاز جهت پیاده سازی معماری سرویس گرا میباشد و بر روی بستر weblogic فرآیند هایی که در آن کاربر باید تصمیم بگیرد مانند تایید یا رد مرخصی کخ در این فرآیند مدیر باید در خواست را رد یا تایید نماید.mediator جهت تبدیل،مسیر یابی،تکمیل سرویسها،bam جها آماده سازی گزارش از وضعیت اجرای فرآیند ها، complex event processing جهت مدیریت رویداد ها در فرآیند ها و سایر سیستم ها مانند گرفتن اطلاعات از رخداد تغییر دما از یک سنسور حرارت در اتاق یا گرفتن تعداد کالاهای فروخته شده با استفاده از رویداد دستگاه rfid reader زمانیکه یک کالا خریداری میشود،b2b جهت ارتباط بین دو شرکت یا دو بخش مجزا با استفاده از سرویس هایی که دو طرف تعریف مینمایند.
مجموعه ابزار oracle soa suite مطرحترین ابزار پیاده سازی معماری سرویس گرا در دنیا میباشد و در حقیقت ادامه مسیر شرکت bea در مسیر معماری سرویسگرا میباشد که پس از خرید آن شرکتتوسط اوراکل،نرم افزار SOA SUITE با اتکا به توان شرکت BEA تولید و عرضه گردیده است
SOA SUITE
![SOA Untitled 2 - SOA](https://www.royalvision.ir/wp-content/uploads/2019/08/Untitled-2.png)
BPEL
![SOA K 1024x556 - SOA](https://www.royalvision.ir/wp-content/uploads/2019/08/K-1024x556.png)
BPEL زبان استاندارد برای طراحی فرآیند و تعیین توالی صدا شدن سرویس ها می باشد و به BPMN قابل تبدیل بوده و مهمترین امکان آن اجرایی بودن آن است یعنی هر فرآیند طراحی گردیده با BPEL می تواند در محیط SOA SUITE اجرا شود.
![SOA unnamed file - SOA](https://www.royalvision.ir/wp-content/uploads/2019/08/unnamed-file.png)
- نسخه BPEL 2.0 پشتیبانی میگردد
- آداپتور های گوناگون برای ارتباط با پایگاه داده،فایل ،SAP JMS وجود دارد
- تمامی مدل داده طراحی شدده با ADF بصورت SERVICE DATA OBJECT قابل فراخوانی است
- قابلیت استفاده از RULE و HUMAN TASK وجود دارد
- اوراکل آیتم های زیادی برای BPEL طراحی کرده است
لیست خدمات
- آموزش دوره های SOA BUILD COMPOSITE, SOA ESSENTIAL ,SOA ADMINISTRATION
- نصب و راه اندازی
- شناسایی سرویس ها و پیاده سازی معماری سرویس گرا در سازمان شما
- ایجاد ارتباط بین سیستم های مختلف در سازمان شما با استفاده از SOA و AIA
HUMAN TASK
با توجه به اینکه بسیاری از فرآیند های سازمان ها نیاز به تعامل با کاربر دارند لذا بخش مهمی تحت نام HUMAN TASK در ابزار SOA SUITE قرار دارد که به کمک آن می توان در فرآیند ها تعامل با کاربر را ایجاد نمود
![SOA L - SOA](https://www.royalvision.ir/wp-content/uploads/2019/08/L.png)
اگر در فرآیند نیاز به تصمیم کاربر باشد فرآیند متوقف میگردد کار مربوطه به کارتابل کاربر ارسال می گردد و سپس کاربر در کارتابل خود میتواند بر روی کار اقدام نموده و سپس بر اساس تصمیم کاربر فرآیند به مسیر خود ادامه میدهد.