گروه وب پرشین بلاگ

ادامه مبحث وب سرويس
نویسنده : گروه وب پرشین بلاگ - ساعت ۸:٤۳ ‎ب.ظ روز پنجشنبه ۱٠ آبان ،۱۳۸٦
 

                               به نام آنکه هر چه داریم و هر چه هستیم از اوست

همانطور که در پست قبلی توضيح داده شد يکی از دلايل اينکه وب سرويس از ديگر تکنولوژی های موجود مجزا شده است استفاده از XML و بعضی استاندارد های تکنيکی ديگر مانند SOAP ، WSDL و UDDI است . اين تکنولوژی های زمينه ارتباط بين برنامه ها را ايجاد می کند به شکلی که مستقل از زبان برنامه نويسی ، سيستم عامل و سخت افزار است . SOAP يک مکانيزم ارتباطی را بين نرم افزار و وب سرويس ايجاد می کند . WSDL  يک روش يکتا برای توصيف وب سرويس ايجاد می کند و UDDI يک دايرکتوری قابل جستجو برای وب سرويس می سازد . وقتی اينها با هم در يک جا جمع می شود اين تکنولوژی ها به برنامه نويس ها اجازه می دهد که برنامه های خود را به عنوان سرويس آماده کنند و بر روی اينترنت قرار دهند .  

XML يا eXtensible Markup Language :

XML يک تکنولوژی است که به شکل گسترده از آن پشتيبانی می شود ، همچنين اين تکنولوژی Open است به اين معنی که تعلق به شرکت خاصی ندارد . اولين بار در کنسرسيوم WWW يا W3C در سال 1996 برای ساده کردن انتقال ديتا ايجاد شده است . با گسترده شدن استفاده از وب در دهه 90 کم کم محدوديت های HTML مشخص شد . ضعف HTML در توسعه پذيری ( قابليت اضافه و کم کردن خواص ) و ضعف آن در توصيف ديتاهايی که درون خود نگهداری می کند برنامه نويسان را از آن نا اميد کرد . همچنين مبهم بودن تعاريف آن باعث شد از توسعه يافتن باز بماند . در پاسخ به اين اشکالات W3C يک سری امکانات را در جهت توسعه HTML به آن افزود که امکان تغيير ساختار متنهای HTML مهم ترين آن است . اين امکان را CSS يا Cascade Style Sheet می نامند .

اين توسعه تنها يک راه موقتی بود . بايد يک روش استاندارد شده ، توسعه پذير و داری ساختار قوی ايجاد می شد . در نتيجه W3C XML را ساخت . XML دارای قدرت و توسعه پذيری SGML يا Standard Generalized Markup Language و سادگی که در ارتباط در وب به آن نياز دارد است .

استقلال اطلاعات يا جدا بودن محتوا از ظاهر يک مشخصه برای XML به حساب می آيد . متنهای XML فقط يک ديتا را توصيف می کنند و برنامه ای که XML برای آن قابل درک است – بدون توجه به زبان و سيستم عامل – قادر است به اطلاعات درون فايل XML هر گونه شکلی که مايل است بدهد . متنهای XML حاوی ديتا هستند بدون شکل خاص بنابراين برنامه ای که از آن می خواهد استفاده کند بايد بداند که چگونه می خواهد آن اطلاعات را نمايش دهد . بنابراين نحوه نمايش يک فايل XML در يک PC با PDA و تلفن همراه می تواند متفاوت باشد .

وقتی يک برنامه با متن XML مواجه می شود بايد مطمئن باشد که آن متن حاوی ديتای مورد نظر خود است . اين اطمينان توسط برنامه هايی با نام XML Parser حاصل می شود .  تجزيه کننده ها دستورات متن XML را بررسی می کنند . همچنين آنها به برنامه کمک می کنند تا متن های XML را تفسير کند . به صورت اختياری هر متن XML می تواند به متن ديگری اشاره کند که حاوی ساختار فايل XML اصلی باشد . به آن متن XML دوم DTD يا Document Type Definition گفته می شود .

وقتی فايل XML به DTD اشاره می کند برنامه تجزيه کننده فايل اصلی را با DTD بررسی می کند که آيا به همان ساختاری که در DTD توصيف شده شکل گرفته است يا خير . اگر يک تجزيه کننده XML بتواند يک متن را به درستی پردازش کند متن XML نيز به شکل صحيحی فرمت شده است .

وقتی که اکثر نرم افزار ها امکانات وبی خود را افزايش دادند اين طور به نظر می آيد که XML به عنوان يک تکنولوژی جهانی برای فرستادن اطلاعات بين برنامه های انتخاب شود . تمامی برنامه هايی که از XML استفاده می کنند قادر خواهند بود که XML ِ همديگر را بفهمند . اين سطح بالای تطابق بين برنامه ها باعث می شود که XML يک تکنولوژی مناسب برای وب سرويس باشد ، چون بدون اينکه احتياج به سيستم عامل و سخت افزار يکسان باشد می تواند اطلاعات را جابجا کند .

SOAP يا Simple Object Access Protocol : 

SOAP يکی از عمومی ترين استاندارد هايی است که در وب سرويس ها استفاده می شود . طبق شواهد اولين بار توسط DeveloperMentor ، شرکت UserLand و مايکروسافت در سال 1998 ساخته شده و نسخه اول آن در سال 1999 ارايه شده است . آخرين نسخه SOAP ، نسخه 1.2 بود که در دسامبر سال 2001 در W3C ارايه شد . نسخه 1.2 نشان دهنده کار زياد بر روی آن و نمايانگر اشتياق زياد صنعت IT برای استفاده از SOAP و وب سرويس است .

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

به عنوان يک پروتکول مبتنی بر XML ، SOAP تشکيل شده از يک سری الگو های XMLی است . اين الگو ها شکل پيغام های XML را که بر روی شبکه منتقل می شود را مشخص می کند ، مانند نوع ديتا ها و اطلاعاتی که برای طرف مقابل تفسير کردن متن را آسان کند . در اصل SOAP برای انتقال ديتا بر روی اينترنت و از طريق پروتکول HTTP طراحی شده است ولی از آن در ديگر مدلها مانند LAN نيز می توان استفاده کرد . وقتی که وب سرويس ها از HTTP استفاده می کنند به راحتی می توانند از Firewall عبور کنند .

يک پيغام SOAP از سه بخش مهم تشکيل شده است : پوشش يا Envelope ، Header ، بدنه يا Body . قسمت پوشش برای بسته بندی کردن کل پيغام به کار می رود . اين بخش محتوای پيغام را توصيف و گيرنده آن را مشخص می کند . بخش بعدی پيغام های SOAP ، Header آن است که يک بخش اختياری می باشد و مطالبی مانند امنيت و مسيريابی را توضيح می دهد . بدنه پيغام SOAP بخشی است که ديتاهای مورد نظر در آن جای می گيرند . ديتاها بر مبنای XML هستند و از يک مدل خاص که الگوها (Schemas) آن را توضيح می دهند تبعيت می کنند . اين الگو ها به گيرنده کمک می کنند تا متن را به درستی تفسير کند .پيغام های SOAP نوسط سرور های SOAP گرفته و تفسير می شود تا در نتيجه آن ، وب سرويس ها فعال شوند و کار خود را انجام دهند .

برای اينکه از SOAP در وب سرويس استفاده نکنيم از تعداد زيادی پروتکول بايد استفاده شود . برای مثال XML-RPC تکنولوژی قديمی تری بود که همين امکانات را ايجاد می کرد . به هر حال ، خيلی از سازندگان بزرگ نرم افزار SOAP را بر تکنولوژی های ديگر ترجيح دادند . دلايل زيادی برای انتخاب SOAP وجود دارد که خيلی از آنها درباره پروتکول آن است که فراتر از اين متن می باشد . 3 برتری مهم SOAP نسبت به تکنولوژی های ديگر : Simplicity , Extensibility  و Interoperability است .

پيغام های SOAP معمولا ً کدهای زيادی ندارند و برای فرستادن و گرفتن آن به نرم افزار های پيچيده نياز نيست . SOAP اين امکان را به برنامه نويس می دهد تا بنا به نياز خود آن را تغيير دهد . در آخر بدليل اينکه SOAP از XML استفاده می کند می تواند بوسيله HTTP اطلاعات را انتقال بدهد بدون اينکه زبان برنامه نويسی ، سيستم عامل و سخت افزار برای آن مهم باشد .

موفق و سربلند باشید.


 
comment نظرات ()