وب سرويس چيست ؟
اشاره :
کساني که با صنعت IT آشنايي دارند حتما ً نام وب سرويس را شنيده اند . براي مثال ، بيش از ۶۶ درصد کساني که در نظر سنجي مجله InfoWorld شرکت کرده بودند بر اين توافق داشتند که وب سرويس ها مدل تجاري بعدي اينترنت خواهند بود . به علاوه گروه گارتنر پيش بيني کرده است که وب سرويس ها کارآيي پروژه هاي IT را تا ۳۰ در صد بالا مي برد . اما وب سرويس چيست و چگونه شکل تجارت را در اينترنت تغيير خواهد داد ؟

براي ساده کردن پردازش هاي تجاري ، برنامه هاي غير متمرکز (Enterprise) بايد با يکديگر ارتباط داشته باشند و از داده هاي اشتراکي يکديگر استفاده کنند . قبلا ً اين کار بوسيله ابداع استاندارد هاي خصوصي و فرمت داده ها به شکل مورد نياز هر برنامه انجام مي شد . اما دنياي وب و XML – تکنولوژي آزاد براي انتقال ديتا – انتقال اطلاعات بين سيستم ها را افزايش داد . وب سرويس ها نرم افزارهايي هستند که از XML براي انتقال اطلاعات بين نرم افزارهاي ديگر از طريق پروتوکول هاي معمول اينترنتي استفاده مي کنند .

به شکل ساده يک وب سرويس از طريق وب اعمالي را انجام مي دهد (توابع يا سابروتين ها ) و نتايج را به برنامه ديگري مي فرستد . اين يعني برنامه اي در يک کامپيوتر در حال اجراست ، اطلاعاتي را به کامپيوتري مي فرستد و از آن درخواست جواب مي کند ، برنامه اي که در آن کامپيوتر دوم است کارهاي خواسته شده را انجام مي دهد و نتيجه را بر روي ساختارهاي اينترنتي به برنامه اول بر مي گرداند . وب سرويس ها مي توانند از پروتکول هاي زيادي در اينترنت استفاده کنند اما بيشتر از HTTP که مهم ترين آنهاست استفاده مي شود .

وب سرويس هر توع کاري مي تواند انجام دهد . براي مثال در يک برنامه مي تواند آخرين عنوان هاي اخبار را از وب سرويس Associated Press بگيرد يا يک برنامه مالي مي تواند آخرين اخبار و اطلاعات بورس را از وب سرويس بگيرد . کاري که وب سرويس انجام مي دهد مي تواند به سادگي ضرب ۲ عدد يا به پيچيدگي انجام کليه امور مشترکين يک شرکت باشد .
وب سرويس داراي خواصي است که آن را از ديگر تکنولوژي و مدل هاي کامپيوتري جدا مي کند ، Paul Flessner ، نايب رييس مايکروسافت در dot NET Enterprise Server چندين مشخصه براي وب سرويس در يکي از نوشته هايش ذکر کرده است ، يک ، وب سرويس ها قابل برنامه ريزي هستند . يک وب سرويس کاري که مي کند را در خود مخفي نگه مي دارد وقتي برنامه اي به آن اطلاعات داد وب سرويس آن را پردازش مي کند و در جواب آن اطلاعاتي را به برنامه اصلي بر مي گرداند . دوم ، وب سرويس ها بر پايه XML بنا نهاده شده اند . 

و XML هاي مبتني بر SOAP يا Simple Object Access Protocol تکنولوژي هايي هستند که به وب سرويس اين امکان را مي دهند که با ديگر برنامه ها ارتباط داشته باشد حتي اگر آن برنامه ها در زبانهاي مختلف نوشته شده و بر روي سيستم عامل هاي مختلفي در حال اجرا باشند . همچين وب سرويس ها خود ، خود را توصيف مي کنند . به اين معني که کاري را که انجام مي دهند و نحوه استفاده از خودشان را توضيح مي دهند . اين توضيحات به طور کلي در WSDL يا Web Services Description Language نوشته مي شود . WSDL يک استاندارد بر مبناي XML است . به علاوه وب سرويس ها قابل شناسايي هستند به اين معني که يرنامه نويس مي تواند به دنبال وب سرويس مورد علاقه در دايرکتوري هايي مثل UDDI يا Universal Description , Discovery and Integration جستجو کند . UDDI يکي ديگر از استاندارد هاي وب سرويس است .

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

آدرس شکل :
http://www.1.ir/articles/webservicedesc.htm
XML يا eXtensible Markup Language :
XML يک تکنولوژي است که به شکل گسترده از آن پشتيباني مي شود ، همچنين اين تکنولوژي Open است به اين معني که تعلق به شرکت خاصي ندارد . اولين بار در کنسرسيوم WWW يا W3C در سال ۱۹۹۶ براي ساده کردن انتقال ديتا ايجاد شده است . با گسترده شدن استفاده از وب در دهه ۹۰ کم کم محدوديت هاي 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 و مايکروسافت در سال ۱۹۹۸ ساخته شده و نسخه اول آن در سال ۱۹۹۹ ارايه شده است . آخرين نسخه SOAP ، نسخه ۱٫۲ بود که در دسامبر سال ۲۰۰۱ در W3C ارايه شد . نسخه ۱٫۲ نشان دهنده کار زياد بر روي آن و نمايانگر اشتياق زياد صنعت 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 وجود دارد که خيلي از آنها درباره پروتکول آن است که فراتر از اين متن مي باشد . ۳ برتري مهم SOAP نسبت به تکنولوژي هاي ديگر : Simplicity , Extensibility و Interoperability است .
پيغام هاي SOAP معمولا ً کدهاي زيادي ندارند و براي فرستادن و گرفتن آن به نرم افزار هاي پيچيده نياز نيست .
SOAP اين امکان را به برنامه نويس مي دهد تا بنا به نياز خود آن را تغيير دهد . در آخر بدليل اينکه SOAP از XML استفاده مي کند مي تواند بوسيله HTTP اطلاعات را انتقال بدهد بدون اينکه زبان برنامه نويسي ، سيستم عامل و سخت افزار براي آن مهم باشد .

WSDL يا Web Services Description Language :
استاندارد ديگري که نقش اساسي در وب سرويس بازي مي کند WSDL است . همانطور که قبلا ً اشاره کرديم يکي از خواص وب سرويس ها توصيف خود آنهاست به اين معني که وب سرويس داراي اطلاعاتي است که نحوه استفاده از آن را توضيح مي دهد .

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

وقتي IBM و مايکروسافت تصميم گرفتند تا استاندارد هاي خود را يکسان کنند WSDL بوجود آمد . در ماه مارس سال ۲۰۰۱ مايکروسافت ، IBM و Ariba نسخه ۱٫۱ را به W3C ارائه کردند . گروهي از W3C بر روي اين استاندارد کار کردند و آن را پذيرفتند . هم اکنون اين تکنولوژي در دست ساخت است و هنوز کامل نشده . ولي هم اکنون اکثر سازندگان وب سرويس از آن استفاده مي کنند .
هر وب سرويسي که بر روي اينترنت قرار مي گيرد داراي يک فايل WSDL است که مشخصات ، مکان و نحوه استفاده از وب سرويس را توضيح مي دهد .
يک فايل WSDL نوع پيغام هايي که وب سرويس مي فرستد و مي گيرد را توضيح مي دهد مانند پارامترهايي که برنامه صدا زننده براي کار با وب سرويس بايد به آن بفرستد . در تئوري يک برنامه در وب براي يافتن وب سرويس مورد نظر خود از روي توضيحات WSDL ها جستجو مي کند . در WSDL اطلاعات مربوط به چگونگي ارتباط با وب سرويس بر روي HTTP يا هر پروتکول ديگر نيز وجود دارد .
اين مهم است که بدانيم WSDL براي برنامه ها طراحي شده است نه براي خواندن آن توسط انسان . شکل فايلهاي WSDL پيچيده به نظر مي آيد ولي کامپيوترها مي توانند آن را بخوانند و نجزيه و تحليل بکند .
خيلي از نرم افزارهايي که وب سرويس مي سازند فايل WSDL مورد نياز وب سرويس را نيز توليد مي کنند بنابراين وقتي برنامه نويس وب سرويس خود را ساخت به شکل خودکار WSDL مورد نياز با آن نيز ساخته مي شود و احتياجي به آموزش دستورات WSDL براي ساختن و استفاده از وب سرويس نيست .

UDDI يا Universal Description , Discovery and Integration :
سومين استاندارد اصلي وب سرويس ها ، UDDI ، به شرکتها و برنامه نويسان اجازه مي دهد تا وب سرويس هاي خود را بر روي اينترنت معرفي کنند . اين استاندارد در اصل بوسيله مايکروسافت ، IBM و Ariba و ۵۰ شرکت بزرگ ديگر ساخته شده است .
با استفاده از UDDI شرکتها مي توانند اطلاعات خود را در اختيار شرکت هاي ديگر قرار بدهند و مدل B2B ايجاد کنند . همان طور که از نام آن مشخص است شرکت ها مي توانند وب سرويس خود را معرفي کنند ، با وب سرويس ديگران آشنا شوند و از آن در سيستم هاي خود استفاده کنند .
اين استاندارد جديدي است و در سال ۲۰۰۰ ساخته شده ، کنسرسيومي از شرکتهاي صنعتي در حال کار بر روي آن هستند ؛ نسخه دوم UDDI در ماه ژوئن سال ۲۰۰۱ ارائه شد و نسخه سوم آن در دست ساخت است .
UDDI يک متن مبتني بر XML را تعريف مي کند که در آن شرکت ها توضيحاتي درباره چگونگي کار وب سرويس شرکتشان و امکانات خود مي دهند . براي تعريف اين اطلاعات از شکل خاصي که در UDDI توضيح داده شده استفاده مي شود .

شرکت ها مي توانند اين اطلاعات را در UDDI شرکت خود نگهداري کنند و تنها به شرکت هاي مورد نظرشان اجازه دستيابي به آنها را بدهند يا آنها را در مکان عمومي و د اينترنت قرار دهند . بزرگترين و مهمترين پايگاه UDDI ، UDDI Business Registry يا UBR نام دارد و توسط کميته UDDI طراحي و اجرا شده است . اطلاعات اين پايگاه در چهار نقطه نگهداري مي شود ، مايکروسافت ، IBM ، SAP و HP . اطلاعاتي که در يکي از چهار پايگاه تغيير کند در سه تاي ديگر نيز اعمال مي شود .

اطلاعات درون اين پايگاه ها شبيه دفترچه تلفن است . White Pages که در آنها اطلاعات تماس شرکت ها و توضيحات متني آنهاست ، Yellow Pages حاوي اطلاعات طبقه بندي شده شرکتها و اطلاعات درباره توانايي هاي الکترونيکي آنها مي باشد ، Green Pages ، حاوي اطلاعات تکنيکي درباره سرويس هاي آنها و نحوه پردازش اطلاعات شرکت آنها مي باشد .
اطلاعات تجاري و سرويس هاي شرکت ها کاملا ً طبقه بندي شده است و اجازه مي دهد که به راحتي در آنها جستجو کرد . سپس متخصصان IT مي توانند از اين اطلاعات استفاده کرده و شرکت ها را براي خدمات بهتر به هم متصل کنند . با اين شرح UDDI امکان پياده سازي مدل B2B را ايجاد مي کند و شرکتها مي توانند از سرويس هاي يکديگر استفاده کنند .
شرکت هايي که به UDDI علاقه نشان داده اند قدرت مند هستند و خيلي از آنها از وب سرويس و استاندارد هاي آن در محصولات خود استفاده مي کنند . NTT Communications of Tokyo يکي از شرکت هايي است که در حال اضافه کردن توضيحاتي به ساختار UDDI است . در هر حال شرکت ها هنوز کمي درباره وارد کردن خود در پايگاه هاي عمومي محتاط هستند . اين چيز عجيبي نيست . شرکتها ابتدا اين امکانات را فقط براي شرکاي خود ايجاد مي کنند .

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

ويروس هاي اينترنتي
اشاره :
ويروس هاي کامپيوتري از جمله موارد اسرارآميز و مرموز در دنياي کامپيوتر بوده که توجه اغلب کاربران را بخود جلب مي نمايد. ويروس هاي کامپيوتري بخوبي قدرت آسيب پذيري سيستم هاي اطلاعاتي مبتني بر کامپيوتر را به ما نشان مي دهند. يک ويروس مدرن و پيشرفته قادر به بروز آسيب هاي کاملا” غيرقابل پيش بيني در اينترنت است . مثلا” ويروس مليزا (Melissa) ، که در سال ۱۹۹۹ متداول گرديد ، از چنان قدرت و تواني برخوردار بود که شرکت هاي بزرگي نظير مآيکروسافت و ساير شرکت هاي بزرگ را مجبور به خاموش نمودن کامل سيستم هاي پست الکترونيکي نمود. ويروس “ILOVEYOU” ، که در سال ۲۰۰۰ رايج گرديد ، باعث آسيب هاي فراوان در اينترنت و شبکه هاي کامپيوتري گرديد.

ويروس هاي کامپيوتري به دو گروه عمده تقسيم مي گردند. گروه اول را “ويروس هاي سنتي ” و گروه دوم را “ويروس هاي مبتني بر پست الکترونيکي ” مي نامند. خصوصيات ، عملکرد و نحوه پيشگيري از هر يک از گروه هاي فوق متفاوت بوده و در اين راستا لازم است ، اطلاعات لازم در اين خصوص را کسب کرد.

انواع آلودگي
آلودگي الکترونيکي داراي اشکال منتفاوتي است . متداولترين موارد آلودگي الکترونيکي عبارتند از :
– ويروس . ويروس يک قطعه نرم افزار کوچک بوده که بر دوش يک برنامه حقيقي حمل مي گردد. مثلا” يک ويروس مي تواند خود را به برنامه اي نظير واژه پرداز متصل ( الحاق ) نمايد. هر مرتبه که برنامه واژه پرداز اجراء مي گردد ، ويروس نيز اجراء و اين فرصت ( شانس ) را پيدا خواهد کرد که نسخه اي از خود را مجددا” توليد ( الحاق يک نسخه از خود به ساير برنامه ها ) و يا يک خرابي عظيم را باعث گردد.
– ويروس هاي مبتني بر پست الکترونيکي . ويروس هائي از اين نوع از طريق پيام هاي پست الکترونيکي منتقل مي گردند. اين نوع ويروس ها بصورت خودکار براي افراد متعدد ، پست خواهند شد. گزينش افراد براي ارسال نامه الکترونيکي بر اساس دفترچه آدرس پست الکترونيکي ، انجام مي گيرد.

– کرم ها . يک کرم ، برنامه نرم افزاري کوچکي بوده که با استفاده از شبکه هاي کامپيوتري و حفره هاي امنيتي موجود ، اقدام به تکثير خود مي نمايند. نسخه اي از “کرم ” ، شبکه را پيمايش تا ماشين هاي ديگر موجود در شبکه را که داراي حفره هاي امنيتي مي باشند ، تشخيص و نسخه اي از خود را تکثير نمايند. کرم ها با استناد به حفره هاي امنيتي موجود ، نسخه اي از خود را بر روي ماشين هاي جديد تکثير مي نمايند.