جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
مفاهيم اوليه سرويس هاي وب
-(5 Body) 
مفاهيم اوليه سرويس هاي وب
Visitor 438
Category: دنياي فن آوري
سرويس هاي وب ، نقطه عطفي در معماري برنامه هاي توزيع شده بر روي اينترنت مي باشند . بدون شک، يکي از مهمترين تحولات در زمينه برنامه هاي توزيع شده ، مطرح شدن سرويس هاي وب است که تاثيرات فراواني را در رابطه با وضعيت نرم افرار خصوصا" بر روي اينترنت بدنبال خواهد داشت . ما شاهد نقطه عطفي در ظهور نسل جديدي از برنامه هاي کامپيوترهاي با قابليت استفاده بر روي بستر وب ، خواهيم بود که گفتمان برنامه ها در عرصه جهاني را محقق خواهد کرد ( تحقق آرزوئي بزرگ براي صنعت نرم افزار) .
در مجموعه مقالاتي که بدين منظور نوشته خواهد شد به بررسي اصولي سرويس هاي وب و جايگاه آنان در فرآيند طراحي و پياده سازي برنامه هاي توزيع شده پرداخته مي گردد . در اين راستا لازم است در ابتدا به مقاهيم اوليه برنامه هاي توزيع شده ، تکامل تدريجي برنامه هاي توزيع شده ، محدوديت هاي موجود در رابطه با معماري برنامه هاي توزيع شده ، رويکردهاي متفاوت بمنظور طراحي و پياده سازي برنامه هاي توزيع شده ، پرداخته گردد تا زمينه علمي مناسب، براي پرداختن به مفاهيم اوليه سرويس هاي وب فراهم گردد .

مقدمه

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

تعريف برنامه توزيع شده

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

چرا به برنامه هاي توزيع شده نياز داريم ؟

در اين رابطه دلايل متعددي عنوان مي شود که مهمترين آنان عبارتند از :
• هزينه سيستم هاي Mainfarme . يکي از اولين دلايل مهم ، هزينه هاي بالاي سيستم هاي Mainframe است . اين مسئله از دو زاويه متفاوت قابل بررسي است : هزينه بالاي سرمايه گذاري اوليه که بسياري از سازمان ها و موسسات توان مالي آن را ندارند و دوم اينکه در اين مدل ، داراي صرفا" يک نقطه آسيب پذير با ريسک بالا مي باشيم .
• مالکيت اختصاصي داده ها. يکي از فاکتورهاي مهم ديگر، سياست هاي مربوط به مالکيت داده ها است . سازمان ها و موسسات که داراي داده هاي اختصاصي خود مي باشند، علاقه مند به واگذاري مسئوليت مديريت داده هاي مربوطه ، به ساير مکان هاي فيزيکي نمي باشند .
• امنيت . يکي ديگر از فاکتورهاي مهم در اين زمينه موضوع امنيت است . براي يک سازمان ، اولا" دستيابي به اغلب داده هاي آن مي بايست بسادگي محقق گردد و ثانيا" داده ها ي حساس موجود در سازمان مي بايست از بعد امنيتي، ايمن نگهداري گردند . تامين دو خواسته فوق ( رويکردهاي رقابتي و رويکردهاي امنيتي ) با جدا سازي فيزيکي داده ا از يکديگر محقق خواهد شد ( انباشت داده ها، با نگرش هاي متفاوت در رابطه با سرعت در دستيابي و ايمن در ذخيره سازي ، ضرورت وجود برنامه هاي توزيع شده را بخوبي نمايان مي سازد )
مسائل فوق، ضرورت حرکت بسمت ايجاد يک الگوي جديد بمنظور طراحي برنامه هاي کامپيوتري را مطرح و بر همين اساس نسل جديدي از برنامه هاي کامپيوتري با عنوان " برنامه هاي توزيع شده" در عرصه نرم افزار بوجود آمد .
برنامه هاي توزيع شده و ارائه دهندگان سرويس
با توجه به ضرورت و تعجيل در طراحي يک الگوي جديد براي برنامه هاي توزيع شده و عدم وجود استانداردهاي صنعتي لازم در اين خصوص ، شرکت هاي عظيم نرم افزاري هر يک با توجه به ديدگاه هاي خود ، اقدام به عرضه راهکارهائي در اين زمينه نمودند.شرکت هاي فوق، در رابطه با اينکه مي بايست برنامه هاي توزيع شده بصورت عناصر توزيع شده ، توليد گردند ، اتحاد نظر داشتند . بدين ترتيب عناصر متفاوت و توزيع شده در يک برنامه، بعنوان ارائه دهندگان سرويس به يک برنامه منطقي ايفاي وظيفه مي نمايند. با توزيع قابليت ها و پتانسيل ها ، امکانات اساسي( بلاک هاي اوليه ) بمنظور ايجاد برنامه هاي بزرگ، بسادگي فراهم مي گردد . رويکرد فوق ، مسائل و تبعات خاص خود را بدنبال داشت که در ادامه به بررسي برخي از آنان خواهيم پرداخت .

برنامه هاي توزيع شده و وب

با اينکه اينترنت بيش از بيست سال است بوجود آمده است ولي صرفا" در اواسط دهه 1990 به اين موضوع توجه گرديد، که اينترنت زير ساخت مناسب و مهمي براي ايجاد برنامه هاي توزيع شده است . پروتکل هاي ساده مبتني بر متن در ابتدا بمنظور مبادله سرويس هاي درخواستي و ارسال اطلاعات بر روي اينترنت پياده سازي گرديد . گسترش و پذيرش چنين پروتکل هائي، باعث شد که اينترنت بعنوان يک محيط موفق براي برنامه هاي توزيع شده، مطرح گردد. بدين ترتيب در مقابل سروکار داشتن با تکنولوژي هاي رقابتي و اغلب انحصاري، وجود استانداردهاي وب ، دليلي موجه براي توجه جدي به وب بعنوان بستري مناسب براي طراحي و پياده سازي برنامه هاي توزيع شده، گرديد.
مسائل مربوط به برنامه هاي توزيع شده سنتي
پياده سازي برنامه هاي توزيع شده مستلزم استفاده از تکنيک ها و مدل هاي جديد است . راهکارهاي انتخابي و استفاده شده ، خود باعث بروز مسائل جديد نيز خواهند شد. در اين بخش به بررسي مسائل مرتبط با طراحي برنامه هاي توزيع شده پرداخته و دو معماري خاص در اين زمينه را بررسي خواهيم کرد :
• معماري RPC)Remote Procedure Call-based)
• معماري مبتني بر پيام (Message-based)

ملاحظات مربوط به طراحي برنامه هاي توزيع شده

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

معماري مبتني بر RPC

معماري مبتني بر RPC ، اولين گزينه موجود بمنظور ارائه يک راه حل مناسب در ارتباط با برنامه هاي توزيع شده است .
RPC)Remote Procedure Call) ، يک نوع فراخواني به تابع و يا روتپني است که برروي يک سيستم از راه دور مستقر است .RPC ، مشابه فراخواني يک روتين و يا يک تابع معمولي است که کدهاي مربوط به فراخواني تابع ، توسط کاربر بکار گرفته مي شود . RPC ، داراي مشخصات زير است :
• مشخص بودن محل سرويس . برنامه نويس ، ضرورتي به آگاهي از محل فيزيکي ارائه دهنده سرويس نخواهد داشت .
• يک مدل آشنا براي برنامه نويسان . اغلب برنامه نويسان نسبت به استفاده از اشکال خاصي از فراخواني توابع، آشنا بوده و بدفعات در برنامه هاي خود اقدام به اين کار نموده اند . زير ساخت RPC ، يک Stub ايجاد که نمايانگر کد روتين از راه دور بوده و باعث فراخواني تابع از راه دور بهمراه پارامترهاي مربوطه از طريق شبکه و ارسال اطلاعات ذيربط براي سرويس دهنده RPC ، خواهد شد.بر روي سرويس دهنده RPC ، اطلاعات ارسالي (Stub) از حالت فشرده خارج ، و اطلاعات مربوطه ( آرگومان ها ) براي پردازش در اختيتار تابع صدازده شده ، قرار خواهند گرفت . نتايج مربوطه پس از فراخواني تابع مربوطه و انجام عمليات ، براي صدا کننده تابع ، ارسال مي گردد.

فراخواني همزمان توابع

در مدل RPC ، يک برنامه ارتباطي را با يک سرويس دهنده RPC برقرار مي نمايد. فراخواني توابع RPC ، شباهت بسياري به فراخواني روتين هاي محلي دارد . سمنتيک بلاک هاي RPC ، مشابه آنهائي است که در فراخواني روتين هاي محلي، مورد استفاده قرار مي گيرد. اين حقيقت که سمنتيک بلاک ها مشابه است، بدين معني است که فراخواني ها بصورت همزمان مي تواند صورت پذيرد. در اين حالت در مواقع ضروري بخشي از کدهاي مربوط به اجراي روتين ، بلاک تا پس از برگرداندن مقدار توسط تابع مجددا" آزاد و امکان اجراي آنها فراهم گرد .بمنظور پياده سازي قابليت پردازش همزمان لازم است که با توجه به ماهيت کدهاي موجود در يک روتين ، امکان اجراء يک نمونه از آنان را در هر لحظه فراهم و پس از اطمينان از تکميل عمليات مربوطه ، بخش مربوطه آزاد تا زمينه اجراي ساير پردازه هاي در نوبت انتظار ، فراهم گردد. وضعيت فوق نظير تابع XOR است و شرط وجود يکي منوط به عدم وجود ديگري خواهد بود. براي اکثر پياده کنندگان نرم افزار ، مدل برنامه نويسي فوق مناسب و بکارگيري آن آسان خواهد بود گرچه استقرار يک مدل همزمان در بالاي معماري توزيع شده ، مي تواند باعث بروز مسائلي خاص و از نگاهي ديگر گردد .

ايجاد افزونگي

اولين مسئله در ارتباط با معماري مبتني بر RPC ، به يافتن ( کشف ) اطلاعات بر مي گردد. برنامه ها چگونه اطلاعات مورد نياز خود را براي ارتباط با يک نقطه پاياني بمنظور دريافت سرويس مورد نظر، پيدا مي نمايند.ساده ترين گزينه در اين راستا که توسط اکثر برنامه نويسان استفاده مي گرد ، درج مستقيم (Hard code ) کدهاي مربوط به نقطه پاياني ( نقطه تماس ) است . روش فوق مکانيزمي بهينه در اين رابطه نبوده و از يکطرف افزونگي اطلاعات را بدنبال داشته و از طرف ديگر امکان اشکال زدائي يک برنامه را با موانع جدي روبرو خواهد ساخت .

تجمع دردستيابي

زمانيکه برنامه اي با چندين سرويس توزيع شده ارتباط برقرار مي نمايد نسبت به برنامه ديگر که صرفا" با يک سرويس توزيع شده مرتبط مي گردد ، داراي استعداد بيشتر، بمنظور پذيرش اشکالات خصوصا" در موارديکه سرويس ها در دسترس نمي باشند ، خواهد بود. تجمع و انباشت در دستيابي يک برنامه توزيع شده ، مستقيما" تاثير منفي خود را از نحوه پياده سازي برنامه ها اخذ مي نمايد.

Load balancing و بروز اشکال

درج مستقيم کد نقاط پاياني در يک برنامه ، باعث بروز مسئله ديگري مي گردد . در اين رابطه برنامه هاي مبتني برRPC قادر به استفاده از روشي مناسب و ساده بمنظور انجام عمليات Load Balancing پويا ، نخواهند بود .در صورت بروز اشکالات پويا و عدم دستيابي به سرويس دهنده ، برنامه مربوطه قادر به ارائه پاسخ شايسته نخواهد بود.

اولويت بندي

در معماري مبتني برRPC ، ا ولويت بندي درخواست ها تقريبا" غير ممکن بوده و تمام درخواست ها بصورت پيش فرض با توجه به الگوريتم FCFS)First Come First Serve) ، پردازش خواهند شد.در چنين مواردي اگر سرويس دهنده اي داراي حجم پردازش بالا( لود بالا ) باشد ، سرويس گيرندگان با اولويت بالا که نيازمند دريافت خدمات مربوطه از سرويس دهنده مربوطه مي باشند ، گرفتار تاخير فراوان خواهند شد.

برخورد با مسائل غيرقابل پيش بيني

يکي ديگر از مسائل مرتبط با برنامه هاي مبتني بر RPC ، عدم توانائي آنان بمنظور برخورد با مسائل غير قابل پيش بيني نظير موارد زير است :
• قطع موقت جريان برق سرويس دهنده بر اساس بروز اشکال در سرويس دهنده
• بروز اشکال در منابع مورد نياز برنامه نظير ارتباط با يک بانک اطلاعاتي
• ضرورت استفاده از سخت افزار اضافه بمنظور برخورد با مسائل غيرقابل پيش بيني

معماري مبتني بر پيام

يکي ديگر از معماري هاي موجود براي ايجاد برنامه هاي توزيع شده ، معماري مبتني بر پيام است . رويکرد فوق، به برنامه ها امکان ارتباط با سرويس هاي داخلي را بکمک تکنولوژي صف بندي پيام ها ، خواهد داد . تکنولوژي صف بندي ، مسيريابي يک پيام را دنبال و ثبت مي نمايد . تکنولوژي فوق ، سطح مناسبي از اطمينان بمنظور تشخيص سريع اشکال و در صورت صلاحديد اصلاحات لازم بدون دخالت کاربر را فراهم مي نمايد. معماري مبتني بر پيام، عموما" در کنار پروتکل هاي صف بندي پيام ها نظير MSMQ)Microsoft Message Queuing) ايجاد مي گردد.

پيام هاي غير همزمان

مهمترين ويژگي معماري مبتني بر پيام ، قابليت غير همزماني آنان و ارسال پيام در مقابل فراخواني تابع است . مزاياي هر يک از موارد فوق بشرح زير است :
• امکان مسير يابي پيام ها بر اساس لود و اولويت وجود خواهد داشت .
• امکان استفاده بهينه از زمان براي سرويس گيرندگان در موارديکه در انتظار در اختيار گرفتن زمان مربوطه براي انجام عمليات مي باشند، فراهم مي گردد.
ويژگي هاي فوق ، خود مي توانند باعث بروز مسائل ديگري گردند.

افزايش حجم عمليات پردازش

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

Interoperability

اغلب سيستم هاي مبتني بر پيام با استفاده از محصولات خاص صف بندي پيام ، پياده سازي مي گردند . در اين رابطه لازم است براي پياده سازي سيستم هائي که مي بايست با يکديگر تعامل اطلاعاتي بکمک پيام هاي مربوطه داشته باشند ، تدابير خاصي انديشيده گردد . مثلا" تمامي سازمان ها ي سهيم در عمليات توزيع شده، مي بايست داراي امکانات زير باشند :
• نرم افزار صف بندي پيام ها
• نرم افزارهاي ارتباطي که بين محيط هاي متمايز و متفاوت پيام ، قادر به ارائه توانائي خود باشد .
در صورت تامين ملزومات فوق و پس از پذيرش هزينه هاي اضافي ، ممکن است نتايج مطلوب و مورد نظر کسب نگردد . راه حل هاي مبتني بر پيام، بعنوان روشي استاندارد بمنظور پياده سازي برنامه هاي توزيع شده موفق عمل نمي نمايند.

اولويت نادرست پيام ها

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

استانداردهاي وب

معماري هاي RPC و مبتني بر پيام ، توسط سازمان هاي متعددي پياده سازي شده و داراي مسائل خاص خود مي باشند . در اين بخش به برخي از اين موارد اشاره خواهد گرديد.
وجود مشکل در ارتباط با پروتکل هاي باينري
مدل هاي اشياء توزيع شده نظير DCOM)Distributed Component Object Model) ، ( RMI)Java Remote Method Invocation) و CORBA(Common Object Request Broker Architecture ) ، داراي محدوديت عمده استفاده از پروتکل هاي باينري مي باشند . استفاده از پروتکل هاي باينري ، باعث بروز مسائل متعددي مي گردد :
• Firewalls . اولين مسئله در رابطه با پروتکل هاي باينري، Point to Point بودن آنان مي باشد . هر ارتباط با يک نقطه پاياني که درون فايروال وجود دارد، مستلزم باز نمودن برخي از پورت ها براي مبادله اطلاعات توسط مديريت فايروال سيستم است . براي اکثر سازمان ها اين ريسک امنيتي ،قابل قبول نخواهد بود .
• Interoperability . يکي ديگر از مسائل، تعامل بين مدل هاي اشياء متمايز است . هر مدل اشياء از پروتکل هاي انحصاري خود استفاده مي نمايد. مي توان نرم افزاري را بمنظور ترجمه بسته هاي اطلاعاتي بين مدل هاي متفاوت اشياء ، ايجاد نمود. ( ممکن است نتايج نسبتا" خوبي را هم بدنبال داشته باشد ) . دستاورد رويکرد فوق ، الزام اغلب سازمان ها بمنظور استفاده از يک مدل اشياء براي پياده سازي تمام سيستم هاي خود در سازمان مربوطه، خواهد بود. در صورتيکه يکي از Partner هاي سازمان از يک مدل اشياء رقابتي ديگر استفاده نمايد ، مي تواند باعث بروز مسائل متعددي گردد .
• فرمت هاي داده . يکي ديگر از مسائل مربوط به پروتکل هاي باينري، رمزگشائي داده ارسال شده با استفاده از اينچنين پروتکل هائي است . هر پروتکل با استفاده از روش خاص خود اقدام به رمزنمودن اطلاعات مي نمايد. مشکل در ترجمه داده از يک فرمت به فرمت ديگر ما را بسمت سياست جداسازي سازماني مبتني بر فرمت داده ها که آنها را قادر به برخورد مناسب با داده ها مي نمايد ، سوق خواهد داد .
با توجه به مسائل فوق در ارتباط با استفاده از پروتکل هاي باينري ، ضرورت وجود يک پروتکل يکدست و قابل استفاده در همه جا که بسادگي تفسير و قادر به حمل داده هاي رمز شده باشد ، بخوبي احساس مي گرديد. بدين ترتيب تمام نگاه ها متوجه وب شد تا بتوان بکمک آن راه حل جامعي را ارائه تا هر شخص بسادگي قادر به استفاده از آن گردد .

اينترنت و وب

TCP و IP در ابتدا براي اتصال شبکه هاي متفاوتي که توسط طراحان مختلفي ، طراحي مي گرديدند ، مورد استفاده قرار مي گرفت و همين رويکرد باعث ايجاد شبکه اي از ساير شبکه ها و با نام اينترنت گرديد. در ادامه در اواخر سال 1990 " تيم برنرز- لي " در CERN ، وب را ابداع نمود. وب، يک شبکه بهم متصل سراسري از سندهاي ابرمتن است . در اين راستا دو انقلاب تکنولوژي تحقق پيدا کرد : ظهور HTML و HTTP)Hypertext Transfer Protocol) .
HTML ، زباني است که نحوه افزودن علائم نشانه گذاري ( بشکل مجموعه اي از تگ ها ) به سندهاي مبتني بر متن را بمنظور ارائه اطلاعات در يک مرورگر وب و نحوه نمايش متن موجود در سند ، مشخص مي نمايد. سندهاي حاوي تگ هاي HTML ، سندهاي ابرمتني ناميده مي شوند.

مزاياي HTTP

HTTP ، پروتکلي است که براي درخواست و دريافت سندهاي ابرمتن در وب استفاده مي گردد . يکي از نکات بسيار مهم در رابطه با پروتکل HTTP ، عدم محدوديت جهت کار با نوع خاصي از سندها است .( صرفا" شامل سندهاي HTML نمي گردد ) . براي تائيد گفته فوق، مي توان به سرويس هاي وب اشاره کرد. سرويس هاي وب و سرويس گيرندگان مربوطه قادر به مبادله سندهاي XML با استفاده از پروتکل HTTP مي باشند . همزمان با گسترش و عموميت يافتن وب، HTTP بعنوان يک پروتکل جامع و فراگير مطرح گرديد .استفاده از HTTP باعث غلبه بر يکي از موانع جدي براي ارتباط بين مدل هاي اشياء توزيع شده گرديد .

XML فرمتي مناسب براي داده ها

پياده کنندگان بسرعت متوجه اين حقيقت گرديدند که HTML ، صرفا" اين امکان را براي يک مولف سند، فراهم مي آورد که ساختار نمايشي خود را تعريف نموده و در رابطه با تعريف ساختار داده ها و يا ارتباط بين داده ها در يک سند ، سکوت و عملا" قادر به پاسخگوئي به اين نوع از خواسته ها نيست .محدوديت فوق تا سال 1996 تحمل ولي در همين سال بود که زبان جديدي بمنظور تشريح ساختار داده هاي موجود در يک سند ، ايجاد گرديد. اين زبان جديد XML ناميده گرديد .اسناد XML ، مي بايست اهداف زير را تامين نمايند:
• استفاده آسان بر روي اينترنت
• وضوح و شفافيت لازم
• سهولت در ايجاد
• تفسير و پردازش آسان
• توسعه پذير، مستقل ازمحيط مربوطه
رشد و گسترش XML ، دليلي قاطع بر مناسب بودن آن بعنوان يک فرمت عمومي داده است .

فايروال دوستانه

نکته نهائي در رابطه با وب، جايگاه و نفش سرويس دهنده وب است . سرويس دهندگان وب ، عموما" از طريق پروتکل HTTP براي برقراري ارتباط با سرويس گيرندگان استفاده مي نمايند. يکي از مهمترين ويژگي يک سرويس دهنده وب، نقش آن بعنوان يک " دروازه" (Gateway) براي يک سازمان است. سرويس دهندگان وب ، صرفا" به ارائه محتويات HTML عمل نمي نمايند. با توجه به امکانات توسعه پذيري HTTP ، سرويس دهندگان وب، قادر به ارسال درخواست ها ي دريافت شده ، براي يک Request handler مناسب، نيز مي باشند. سرويس دهنده وب، با نحوه برخورد handler با يک درخواست HTTP ، کاري نداشته و مسئوليت پردازش درخواست ارسالي و توليد يک پاسخ HTTP بر عهده Handler ، خواهد بود. سرويس دهنده وب در ادامه پاسخ مربوطه را براي سرويس گيرنده ارسال ، خواهد کرد.
سرويس دهندگان وب قادر به Forward نمودن درخواست ها براي هر نوع سرويسي مي باشند که يک درخواست HTTP را تشريح و قادر به ارائه پاسخ مبتني بر HTTP باشند. تمامي عمليات فوق، بدون نياز به هرگونه پيکربندي مجدد و يا عدول از سياست هاي مربوط به فايروال، انجام مي شود.

مسائل در ارتباط با وب

در مقابل مزاياي گفته شده ، در اين رابطه مسائلي و مشکلاتي همچون امنيت و کارآئي وجود دارد .
• امنيت . با توجه به عمومي بودن زير ساخت اينترنت ، ارتباطات انجام شده داراي پتانسيل لازم بمنظور آسيب پذيري در مواردي نظير : ره گيري ، اصلاح ، Spoofing ( روشي که با استفاده از آن امکان دستيابي غير مجاز به يک کامپيوتر فراهم مي گردد ) و ساير مسائل مربوط به دستيابي ، خواهند بود.
• کارآئي . عموم کاربران اينترنت همچنان از خطوط Dial-up براي دستيابي به اينترنت استفاده مي نمايند. همين مسئله باعث بروز مسائل متعددي در رابطه با کارآئي برنامه ها و خدمات مربوطه خواهد شد. بدين ترتيب در ارتباط با بکارگيري برنامه هائي با شرايطي خاص و پيچيده بر روي بستر وب ، دچار محدوديت هائي خواهيم بود .مثلا" برخي از برنامه ها ي محاوره اي نيازمند يک ارتباط متعامل مناسب با سرويس دهنده مي باشند. محدوديت هاي مربوط به پهناي باند ارتباطات از نوع Dial-up ، باعث محدوديت در ارائه نوع برنامه هاي محاوره اي بر روي بستر وب مي گردد.
مسائل مربوط به کارآئي و امنيت بهمراه مسائل موجود واقعي نظير قطع جريان برق سرويس دهنده و از کار افتادن برخي سرويس ها ( حتي بزرگترين وب سايت ها نمي توانند تضمين نمايند که همواره به ارائه خدمات مشغول هستند) باعث شده است که طراحي برنامه ها با رويکرد اجراء در يک شبکه اختصاصي بيشتر مورد توجه قرار گيرد و عملا" برنامه در يک ميدان محدودتر ولي ايمن و کارآ ، توزيع و استفاده گردد.

مقدمه

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

سرويس وب چيست ؟

سرويس وب، يک URL ، بمنظور آدرس دهي مجموعه اي از قابليت ها ئي است که مي توان آنان را از طريق شبکه و بمنظور ايجاد بلاک هاي اوليه در توليد يک برنامه هاي توزيع شده ، بخدمت گرفت. يکي از نمونه هاي اوليه در اين زمينه ، برنامه Microsoft passport است . برنامه فوق ، سرويس هاي تائيد اعتبار را ارائه مي نمايد . تمامي سرويس هاي فوق ، از طريق درخواست هاي مبتني بر HTTP ، قابل دسترس و استفاده خواهند بود .

عناصر اساسي سرويس هاي وب

عناصر اساسي در سرويس هاي وب، شامل : HTTP ,XML و SOAP) Simple Object Access Protocol) است . SOAP ، يک پروتکل HTTP کم حجم و مبتني بر XML بمنظور مبادله اطلاعات است . پياده سازي تکنولوژي هاي فوق ، توسط کنسرسيوم وب کنترل و هدايت مي گردد .

بلاک هاي ساخت (Building - Blocks)

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

عدم وجود محدوديت در رابطه با اندازه يک سرويس وب

سرويس هاي وب ، محدوديتي در رابطه با حجم و اندازه مورد نظر ندارند. يک سرويس وب ، مي تواند از عناصر ساده اي نظير عناصر مورد نياز براي ثبت يک سفارش تا برنامه هاي بسيار بزرگ نظير برنامه هاي مالي را شامل شود . در اين راستا مي توان از سرويس هاي وب در سطوح متفاوت متعدد و بمنظور ارائه يک راه حل مناسب استفاده کرد

منابع ايستا يا برنامه هاي محاوره اي

دامنه استفاده از سرويس هاي وب بسيار گسترده بوده و در اين راستا مي توان از آنان بمنظور ارائه اطلاعات ايستا و يا سرويس هاي پويا و بر اساس نقطه نظرات کاربران ، استفاده کرد . سرويس هاي وب ، قادر به ارائه مجموعه اي از اطلاعات ايستا مي باشند . مثلا" يک سرويس وب ، مي تواند با توجه به درخواست کاربر ، اطلاعات جمعيت شناسي مربوط به يک شهر خاص را ارائه نمايد. در موارد ديگر ، پياده کنندگان ممکن است از سرويس هاي وب بمنظور توليد برنامه هائي با قابليت محاوره اي بالا ، استفاده نمايند. مثلا" يک وب سايت مسافرتي ، مي تواند مجموعه سرويس هاي لازم در خصوص يک مسافرت را بصورت Online در اختيار متقاضيان قرار دهد. در چنين مواردي ، کاربران مي توانند با استفاده از سرويس هاي وب ، تمامي خدمات مربوط به يک مسافرت را دريافت نمايند ( گرفتن هتل ، برنامه ريزي پرواز ، ثبت و اخذ بليط و ... )

ارتباط و همبستگي سرويس هاي وب

يک سرويس وب ، قادر به ارتباط با ساير سرويس هاي وب بمنظور ارائه يک مجموعه مناسب از سرويس ها است . مثلا" يک سرويس وب براي يک آژانس مستغلات ، ممکن است از سرويس وب ديگر براي تائيد و صحت کارت اعتباري ، بمنظور موافقت در ارائه تسهيلاتي نظير وام بانکي بصورت Online استفاده نمايد .در آينده برنامه هاي توزيع شده فراواني با استفاده از سرويس هاي وب ، ايجاد مي گردد . در اين نوع برنامه ها ، سرويس هاي وب بر اساس شاخص هاي متعددي ، انتخاب خواهند شد. در دسترس بودن ، قيمت ، کارآئي و کيفيت، نمونه هائي از معيارهاي لازم در خصوص انتخاب يک سرويس وب ، بشمار مي آيد .

آينده سرويس هاي وب

چرا مي باسيت نسبت به موفقيت سرويس هاي وب ابراز اميدواري کرد ، در حاليکه تمام تکنولوژي هاي ديگر تاکنون با مشکل مواجه شده اند ؟ بمنظور پاسخ به سوال فوق ، لازم است به برخي از عوامل موفقيت سرويس هاي وب ، اشاره گردد .
• Interoperability . سرويس هاي وب با استفاده از SOAP فراخوانده مي شوند . چون SOAP داراي ماهيتي مستقل از محيط مربوطه است ، پياده کنندگان ضرورتي به مشخص نمودن نحوه ارتباط بين عناصر DCOM ، CORBA و ساير پروتکل هاي ديگر ، نخواهد داشت . بدين ترتيب هر سرويس وب ، قادر به ارتباط با هر سرويس وب ديگر خواهد بود . با توجه به اينکه سرويس هاي وب ، قادر به ارتباط از طريق HTTP و XML مي باشند ، هر گره موجود در شبکه که قادر به حمايت از تکنولوژي هاي فوق باشد ، توان ميزبان بودن و يا دستيابي به سرويس هاي وب را دارا خواهد بود .
• حمايت از زبان هاي متعدد . پياده کنندگان قادر به نوشتن سرويس هاي وب با استفاده از زبان ها ي متعددي خواهند بود . بدين ترتيب ، ضرورتي به فراگيري يک زبان جديد و استانداردسازي يک زبان خاص، بمنظور ايجاد و يا استفاده از سرويس هاي وب نخواهد بود .
• استفاده مجدد از برنامه ها . استفاده از عناصر و کتابخانه هاي موجود بهمراه سرويس هاي وب بسادگي انجام خواهد شد . توليدکنندگاني نظير شرکت ماکروسافت ، ابزار لازم براي بکارگيري عناصر و کتابخانه ها را فراهم نموده اند . اغلب شرکت ها داراي تعداد زيادي منابع نرم افزاري نظير : عناصر، توابع کتابخانه اي و برنامه ها ، مي باشند. استفاده از امکانات موجود ( منابع نرم افزاري ) ، همواره مقرون بصرفه تر از پياده سازي مجدد آنان است .
• استفاده از استانداردهاي حمايت شده صنعتي . تمامي توليد کنندگان، از مشخصات تکنولوژي هاي مرتبط با سرويس هاي وب ، حمايت مي نمايد( خصوصا" HTTP,XML,SOAP ). بدين ترتيب امکان ارتباط سيستم هاي نامتجانس بسادگي فراهم خواهد شد . مثلا" عنصري که با #C نوشته شده و بعنوان يک سرويس وب استفاده مي گردد ، بسادگي قادر به استفاده توسط هر نوع برنامه مبتني بر CGI خواهد بود که با ++C نوشته شده و پتانسيل ايجاد يک درخواست مبتني بر SOAP و پردازش نتايج مربوطه را دارا باشد.
پشته تکنولوژي وب و دات نت

پشته تکنولوژي وب و دات نت

SOAP                                      System.Web.Services

XML or Binary Formats       System.Runtime.Remoting

HTTP                                       System.Net

Sockets                                   System.Net.Sockets

TCP/IP                                    System.Net.Sockets

بمنظور طراحي و پياده سازي برنامه هاي توزيع شده ، از گزينه هاي متعددي استفاده مي گردد . انتخاب هر گزينه مبتني بر مجموعه اي از پارامترهاي متفاوت است . تمامي تکنولوژي هاي موجود در اين زمينه را مي توان بر اساس خصوصيات مربوطه در يک پشته (Stack) سازماندهي کرد. در بالاترين سطح اين پشته، تکنولوژي SOAP و در پايين ترين سطح ، پروتکل TCP/IP قرار مي گيرد. انتخاب تکنولوژي موجود در سطوح پايين تر در پشته فوق ، افزايش کارآئي را بدنبال خواهد داشت . در چنين مواردي پياده کنندگان مي بايست اطلاعات لازم و مناسبي از تکنولوژي انتخابي مربوطه را داشته باشند . بموازات حرکت در سطوح پائين تر ، سطح اطلاعات و دانش مربوطه ، افزايش و پياده کنندگان مي بايست در اين زمينه مهارت هاي خاصي را داشته باشند . بدين ترتيب استفاده از SOAP نسبت به TCP/IP ، به دانش و مهارت هاي بمراتب کمتري نياز خواهد داشت ( نظير انتخاب زبان ماشين و يا يک زبان برنامه نويسي سطح بالا براي برنامه نويسي ).
• TCP/IP . پائين ترين سطح در پشته تکنولوژي است . در اين سطح ، عناصر توزيع شده از يک برنامه براي ارتباط با يکديگر از TCP/IP ، استفاده مي نمايند. فريمورک دات نت، بمنظور حمايت از اين نوع ارتباط، از کلاس هاي متعدد موجود در Namespace با نام System.Net.Sockets استفاده مي نمايد.
• Sockets . در صورتيکه قصد حمايت از session در برنامه اي وجود داشته باشد، مي توان از Socket استفاده کرد. فريمورک دات نت، بمنظور حمايت از اين نوع ارتباط، از کلاس هاي متعدد موجود در Namespace با نام System.Net.Sockets استفاده مي نمايد.
• HTTP . در صورتيکه قصد برقراري ارتباط با سرويس دهندگان وب و يا امکان ارتباط از طريق فايروال ، وجود داشته باشد ، مي توان از HTTP استفاده کرد. فريمورک دات نت، بمنظور حمايت از اين نوع ارتباط ، از کلاس هاي متعدد موجود در Namespace با نام System.Net استفاده مي نمايد.
• XML يا فرمت هاي باينري . با استفاده از تکنولوژي هاي فوق ، امکان پياده سازي يک برنامه توزيع شده براساس دستيابي از راه دور اشياء، وجود دارد. در چنين مواري مسائل متعددي نظير يکسان بودن اشياء و فرمت مبادله اطلاعات بين اشياء از راه دور، وجود خواهد داشت. فرمت مبادله اطلاعات مي تواند بصورت باينري و يا سريال سازي XML براي شي مربوطه باشد.فريمورک دات نت ، بمنظور حمايت از اين نوع ارتباط ، از کلاس هاي متعدد موجود در Namespace با نام System.Run time.Remoting استفاده مي نمايد.
• SOAP . در صورتيکه قصد پياده سازي سرويس هاي از راه دوري وجود دارد که ارتباطي بسيار نزديک ( آزاد ) با ساير سرويس ها ي مصرف کننده را داشته و تماما" مبتني بر استانداردهاي وب مي باشند ، مي توان يک سرويس وب را پياده سازي کرد. پروتکل انتخابي براي اين نوع برنامه ها SOAP است . فريمورک دات نت ، بمنظور حمايت از اين نوع ارتباط، از کلاس هاي متعدد موجود در Namespace با نام System.Web.Services استفاده مي نمايد.
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image