چطور می تونم کمکتون کنم؟

چرا SOA؟

واقعیت این است که در شرکت های IT ، زیر ساخت های نا همگونی در سیستم عامل ها، اپلیکیشن ها، نرم افزار ها و زیر بنای اپلیکیشن ها وجود دارد. برخی از اپلیکشن های موجود برای فرآیند های کسب و کار فعلی شرکت استفاده می شوند. بنا بر این شروع دوباره برای یک زیر ساخت جدید، گزینه مناسبی نیست. شرکت ها باید بتوانند به تغییرات تجاری، ماهرانه و سریع  خود را تطبیق دهند. برای رسیدن به این منظور می توانند از سرمایه گذاری های فعلی برای برنامه های کاربردی و زیر ساخت هایش برای کنار آمدن با نیاز های جدید کسب و کار کمک بگیرند؛ پشتیبانی از کانال های جدید برای تعامل با مشتریان، همکاران و تامین کنندگان را تهیه کنند و یک معماری که بتواند از کسب و کار ارگانیک پشتیبانی کند را به نمایش بگذارند.

 

 

 

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

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

معماری خدمات

برای راه اندازی SOA شرکت ها به یک معماری خدمات احتیاج دارند. چندین مصرف کننده خدمات می توانند از طریق ارسال پیام سرویس ها را درخواست کنند. این پیام ها معمولاً توسط یه گذرگاه سرویس تبدیل و آدرس دهی می شوند. این معماری خدمات  می تواند یک لیست از ضوابط کسب و کار فراهم کند که به این ضوابط اجازه می دهد در یک یا چند سرویس گنجانده شوند. همچنین معماری خدمات می تواند یک زیرساخت مدیریت سرویس ارائه دهد که از طریق آن بتوان خدمات و فعالیت هایی مانند حسابرسی، صدور صورت حساب و ورود به سیستم را مدیریت کرد. علاوه بر این، معماری به شرکت ها انعطاف پذیری داشتن پردازش های سریع کسب و کار، بهتر اداره کردن نیازمند های تنظیمی مانند Sarbanes Oxley ( SOX) ، و تغییر یک سرویس بدون اثر گذاشتن بر روی بقیه سرویس ها را امکان می دهد.

infrastructure diagram

 

زیر ساخت SOA

برای اجرا و مدیریت اپلیکیشن های SOA، شرکت ها به یک زیر ساخت SOA  احتیاج دارند که این زیر ساخت، قسمتی از پلتفرم SOA  می باشد. یک  زیر ساخت SOAحتماً باید قابلیت پشتیبانی تمام استاندارد های مرتبط و محتویات لازم زمان اجرا را داشته باشد. یک زیرساخت SOA معمولی مانند آن چیزی است که در شکل سه مشاهده می کنید.درقسمت های بعد تک تک اجزاء زیر ساخت، توضیح داده شده است.

SOAP، WSDL ، UDDI

WSDL، UDDI  و  SOAP  اجزای اساسی و بنیادی یک زیر ساخت SOA  می باشند. WSDI   برای توصیف سرویس به کار، UDDI  برای ثبت و جست و جوی سرویس ها و SOAP  به عنوان یک لایه انتقالی برای ارسال پیام ها بین مصرف کننده یا مشتری و ارائه کننده سرویس به کار می روند. مادامی که SOAP  مکانیزم پیش فرض خدمات وب می باشد، تکنولوژی های دیگر برای انجام دادن انواع دیگر اتصالات یک سرویس به کار می روند. مصرف کننده می تواند از UDDI  برای ثبت، از WSDL  برای سرویسی که توضیح دارد و از SOAP  برای درخواست سرویس استفاده کند.

دیاگرام ارتباط لایه های زیر ساخت SOA

WS-I Basic Profile

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

J2EE  و .Net

با وجود این که پلتفرم های J2EE  و .Net ، هر دو پلتفرم های توسعه غالب برای اپلیکیشن های SOA  هستند، اما SOA  به هیچ وجه به این پلتفرم ها محدود نمی شود. پلتفرم ها مانند J2EE  تنها برای فراهم کردن فریمورک توسعه دهندگان برای مشارکت در SOA نیستند و می توانند با توجه به ساختار ذاتی خود، یک زیر ساخت کامل و ثابت برای مقیاس پذیری، اعتبار، قابل دست رس بودن و کارایی آن در دنیای SOA  به وجود بیاورند. خصوصیات جدیدتر مانند Java API for XML Binding ( JAXB)  برای نگاشت اسناد XML  در کلاس های Java، به کار می رود و  Java API for XML Registry ( JAXR)  برای تعامل با لیست UDDI  به یک روش استاندارد و Java API for XML-based Remote Procedure Call (XML-RPC)  برای درخواست خدمات از راه دور در J2EE 1.4  به منظور تسهیل گسترش خدمات وب که در محتویات J2EE  استاندارد که قابل حمل هستند، به کار می روند. این در حالی است که قابلیت هم کاری با سرویس ها در سایر پلتفرم ها مانند .Net  را به طور هم زمان دارا می باشد.

کیفیت خدمات

وجود سیستم های حیاتی در شرکت ها باعث به وجود آمدن نیازمندی های مانند امنیت، اعتماد و تراکنش ها می شود. از آنجایی که شرکت ها شروع به استفاده از  معماری خدمات به عنوان یک وسیله برای توسعه اپلیکیشن ها کرده اند، خصوصیات بنیادی خدمات وب مانند WSDL ، SOAP  و  UDDI  نخواهند توانست پاسخ گوی این نیاز ها باشند. همان طور که قبلاً اشاره شد، این نیاز مندی ها تحت عنوان کیفیت خدمات نیز شناخته می شوند. خصوصیات بسیار زیادی که با QoS  مرتبطند، تحت استاندارد هایی مانند World Wide Web Consortium (W3C) و  OASIS  کار می کنند. در قسمت های بعدی برخی از استاندارد های مربوط به QoS توضیح داده می شود.

امنیت

خصوصیات امنیت خدمات وب، به امنیت پیام رسانی ختم می شود. این خصوصیات بر روی تبادل اعتبار نامه، تمامیت پیام ها و محرمانه بودن پیام ها تمرکز می کند. موضوع جالب در باره این خصوصیت این است که می توان از استاندارد های امنیتی فعلی مانند Security Assertion Markup Language ( SAML)  استفاده کرد و امکان به کار گیری این امکانات  برای امن کردن پیام های خدمات وب را می دهد. امنیت خدمات وب یک تلاش در حال انجام OASIS  می باشد.

اعتماد

در یک محیط معمولی SOA ، بسیاری از اسناد بین مصرف کننده و ارائه دهنده مبادله می شوند. تحویل پیام ها با مشخصات مانند یک بار و فقط یک بار، حداکثر یک بار، حذف پیام های تکراری، تحویل پیام ضمانت شده و خبر وصول، در سیستم های حیاتی ای که از معماری خدمات استفاده می کنند، بسیار مهم شده اند. WS-Reliability  و  WS-ReliableMessaging  دو استانداردی هستند که در مورد ارسال پیام قابل اعتماد به کار می روند. هردوی این استاندارد ها اکنون قسمتی از OASIS  می باشند.

مقررات

بعضی اوقات ارائه دهندگان نیاز دارند که مصرف کنندگان تحت شرایط خاصی با هم در ارتباط باشند. به عنوان مثال، یک ارائه دهنده سرویس ممکن است بخواهد از یک نشانه امنیتی Kerberos  برای دست رسی به سرویس استفاده کنند. این تمایلات تحت عنوان اظهارات مقررات شناخته می شوند. ممکن است مقررات از چند اظهارنامه تشکیل شده باشد. WS-Policy چگونگی ارتباط بین مصرف کننده و ارائه دهنده را استاندارد سازی می کند.

Orchestration

از آن جایی که شرکت ها شروع به استفاده از معماری خدمات کرده اند، خدمات می تواند برای یک دست کردن مقدار بسیار زیادی از داده ها، نرم افزار ها و اجزاء استفاده شود. یک دست کردن اپلیکیشن ها به این معنی است که نیاز مندی های فرآیند مانند ارتباطات غیر هم زمان، پردازش های موازی وانتقال داده باید استاندارد سازی شوند. BPEL4WS  یا WSBPEL( Web Services Business Process Execution Language)  یک خصوصیت OASIS  می باشد که به هم سازی خدمات می انجامد.هم اکنون WSBPEL  یک قسمت از OASIS  می باشد.

مدیریت

از آنجایی که تعداد خدمات و فرآیند های قابل نمایش در شرکت ها در حال افزایش است، یک زیر ساخت مدیریتی که به مدیرهای سیستم امکان مدیریت خدمات در حال اجرا در یک محیط ناهمگون می دهد، دارای اهمیت است. Web Services for Distributed Management (WSDM)  مشخص می کند که هر سرویس در حال اجرا طبق WSDM توسط WSDM-compliant management solution  قابل مدیریت می شود.

خواص دیگر Qos مانند هماهنگی بین هم کاران و تراکنش های شامل چندین سرویس که در WS-Coordination  و  WS-Transaction  ، به ترتیب در OASIS   قابل اعتنا هستند.

SOA  یک سرویس وب نیست

به نظر می رسد که در رابطه بین SOA  و خدمات وب موارد گیج کننده ای عموماً وجود دارد. در آوریل 2003 در گزارش گارتنر، Yefim V.Natis  به صورتی که در ادامه گفته خواهد شد بین این دو فرق قائل شد. " خدمات وب در مورد خصوصیات تکنولوژی می باشد. در حالی که SOA  یک قانون طراحی نرم افزار است.  این که WSDL  خدمات وب یک رابط  استاندارد SOA-Suitable  است، موضوعی قابل توجه است. این جا جایی است که خدمات وب و SOA  به صورت بنیادی به هم مرتبط می شوند. " اوصولاً SOA یک الگوی معماری است؛ در حالی که خدمات وب، خدماتی هستند که  با استفاده از یک سری استاندارد ها اجرا می شوند. خدمات وب یکی از راه های اجرای SOA است. یکی از مزایای اجرای SOA با خدمات وب این است که شما می توانید یک پلتفرم بی طرف برای دست رسی به خدمات و قابلیت هم کاری بهتر برای پشتیبانی هر چه بیشتر خصوصیات خدمات وب می باشد.

مزایای SOA

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

webrend,وبرند,وب رند,طراحی سایت,SOA,پلتفرم,اپلیکیشن,سرویس وب,java,زیر ساخت,درباره SOAP,درباره SOA,درباره w3c,لایه انتقالی,پلتفرم j2ee,اسناد xml,استاندارد QoS,مزایای SOA,زیر ساخت اپلیکیشن