مفاهیم اولیه سرویس های وب
مقاله ای مفید و کامل
لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه:49
چکیده:
سرویس های وب ، نقطه عطفی در معماری برنامه های توزیع شده بر روی اینترنت می باشند . بدون شک، یکی از مهمترین تحولات در زمینه برنامه های توزیع شده ، مطرح شدن سرویس های وب است که تاثیرات فراوانی را در رابطه با وضعیت نرم افرار خصوصا" بر روی اینترنت بدنبال خواهد داشت . ما شاهد نقطه عطفی در ظهور نسل جدیدی از برنامه های کامپیوترهای با قابلیت استفاده بر روی بستر وب ، خواهیم بود که گفتمان برنامه ها در عرصه جهانی را محقق خواهد کرد ( تحقق آرزوئی بزرگ برای صنعت نرم افزار) .
در مجموعه مقالاتی که بدین منظور نوشته خواهد شد به بررسی اصولی سرویس های وب و جایگاه آنان در فرآیند طراحی و پیاده سازی برنامه های توزیع شده پرداخته می گردد . در این راستا لازم است در ابتدا به مقاهیم اولیه برنامه های توزیع شده ، تکامل تدریجی برنامه های توزیع شده ، محدودیت های موجود در رابطه با معماری برنامه های توزیع شده ، رویکردهای متفاوت بمنظور طراحی و پیاده سازی برنامه های توزیع شده ، پرداخته گردد تا زمینه علمی مناسب، برای پرداختن به مفاهیم اولیه سرویس های وب فراهم گردد .
مقدمه
قبل از ابداع کامپیوترهای شخصی، عملا" برنامه های توزیع شده ای وجود نداشته است . در آن دوران ، استفاده از کامپیوتر، شامل نشستن پشت یک ترمینال و برقراری ارتباط با یک سیتستم بزرگ (Mainframe) بود. با اینکه ترمینال ها در چندین ساختمان و یا حتی محل فیزیکی قرار می گرفتند ، ولی عملا" یک کامپیوتر مرکزی وجود داشت که مسئولیت انجام تمامی پردازش ها و ذخیره سازی داده ها را برعهده می گرفت .
تعریف برنامه توزیع شده
با ابداع مینی کامپیوترها و کامپیوترهای شخصی، فعالیت های غیرمتمرکز، در دو زمینه پردازش و ذخیره سازی ، آرزوئی دست یافتنی گردید. با طراحی برنامه های توزیع شده ، امکان پردازش و ذخیره سازی داده ها از حالت متمرکز خارج گردید.یک برنامه توزیع شده، برنامه ای است که پتانسیل های پردازشی آن ممکن است توسط چندین کامپیوتر فیزیکی تامین و داده های آن در چندین محل فیزیکی، مستقر شده باشد .
چرا به برنامه های توزیع شده نیاز داریم ؟
در این رابطه دلایل متعددی عنوان می شود که مهمترین آنان عبارتند از :
مسائل فوق، ضرورت حرکت بسمت ایجاد یک الگوی جدید بمنظور طراحی برنامه های کامپیوتری را مطرح و بر همین اساس نسل جدیدی از برنامه های کامپیوتری با عنوان " برنامه های توزیع شده" در عرصه نرم افزار بوجود آمد .
برنامه های توزیع شده و ارائه دهندگان سرویس
با توجه به ضرورت و تعجیل در طراحی یک الگوی جدید برای برنامه های توزیع شده و عدم وجود استانداردهای صنعتی لازم در این خصوص ، شرکت های عظیم نرم افزاری هر یک با توجه به دیدگاه های خود ، اقدام به عرضه راهکارهائی در این زمینه نمودند.شرکت های فوق، در رابطه با اینکه می بایست برنامه های توزیع شده بصورت عناصر توزیع شده ، تولید گردند ، اتحاد نظر داشتند . بدین ترتیب عناصر متفاوت و توزیع شده در یک برنامه، بعنوان ارائه دهندگان سرویس به یک برنامه منطقی ایفای وظیفه می نمایند. با توزیع قابلیت ها و پتانسیل ها ، امکانات اساسی( بلاک های اولیه ) بمنظور ایجاد برنامه های بزرگ، بسادگی فراهم می گردد . رویکرد فوق ، مسائل و تبعات خاص خود را بدنبال داشت که در ادامه به بررسی برخی از آنان خواهیم پرداخت .
برنامه های توزیع شده و وب
با اینکه اینترنت بیش از بیست سال است بوجود آمده است ولی صرفا" در اواسط دهه 1990 به این موضوع توجه گردید، که اینترنت زیر ساخت مناسب و مهمی برای ایجاد برنامه های توزیع شده است . پروتکل های ساده مبتنی بر متن در ابتدا بمنظور مبادله سرویس های درخواستی و ارسال اطلاعات بر روی اینترنت پیاده سازی گردید . گسترش و پذیرش چنین پروتکل هائی، باعث شد که اینترنت بعنوان یک محیط موفق برای برنامه های توزیع شده، مطرح گردد. بدین ترتیب در مقابل سروکار داشتن با تکنولوژی های رقابتی و اغلب انحصاری، وجود استانداردهای وب ، دلیلی موجه برای توجه جدی به وب بعنوان بستری مناسب برای طراحی و پیاده سازی برنامه های توزیع شده، گردید.
مسائل مربوط به برنامه های توزیع شده سنتی
پیاده سازی برنامه های توزیع شده مستلزم استفاده از تکنیک ها و مدل های جدید است . راهکارهای انتخابی و استفاده شده ، خود باعث بروز مسائل جدید نیز خواهند شد. در این بخش به بررسی مسائل مرتبط با طراحی برنامه های توزیع شده پرداخته و دو معماری خاص در این زمینه را بررسی خواهیم کرد :
ملاحظات مربوط به طراحی برنامه های توزیع شده
در زمان طراحی برنامه های توزیع شده مسائل متعددی وجود دارد که می بایست به آنها توجه کرد :
بخش های دیگر مقاله :
بخش دوم : بررسی دو نمونه معماری در رابطه با برنامه های توزیع شده
بخش سوم : تاثیر استانداردهای وب در فرآیند طراحی و پیاده سازی برنامه های توزیع شده
بخش چهارم : مفاهیم اولیه سرویس های وب
مفاهیم اولیه سرویس های وب - بخش دوم
در بخش اول این مقاله ، به مفاهیم اولیه دررابطه با برنامه های توزیع شده و چالش های مربوطه اشاره گردید . در این بخش به بررسی اجمالی دو نمونه از راهکارهای ارائه شده در رابطه با برنامه های توزیع شده یعنی معماری RPC و مبتنی بر پیام، خواهیم پرداخت .
معماری مبتنی بر RPC
معماری مبتنی بر RPC ، اولین گزینه موجود بمنظور ارائه یک راه حل مناسب در ارتباط با برنامه های توزیع شده است .
RPC)Remote Procedure Call) ، یک نوع فراخوانی به تابع و یا روتپنی است که برروی یک سیستم از راه دور مستقر است .RPC ، مشابه فراخوانی یک روتین و یا یک تابع معمولی است که کدهای مربوط به فراخوانی تابع ، توسط کاربر بکار گرفته می شود . RPC ، دارای مشخصات زیر است :
مشخص بودن محل سرویس . برنامه نویس ، ضرورتی به آگاهی از محل فیزیکی ارائه دهنده سرویس نخواهد داشت . یک مدل آشنا برای برنامه نویسان . اغلب برنامه نویسان نسبت به استفاده از اشکال خاصی از فراخوانی توابع، آشنا بوده و بدفعات در برنامه های خود اقدام به این کار نموده اند . زیر ساخت RPC ، یک Stub ایجاد که نمایانگر کد روتین از راه دور بوده و باعث فراخوانی تابع از راه دور بهمراه پارامترهای مربوطه از طریق شبکه و ارسال اطلاعات ذیربط برای سرویس دهنده RPC ، خواهد شد.بر روی سرویس دهنده RPC ، اطلاعات ارسالی (Stub) از حالت فشرده خارج ، و اطلاعات مربوطه ( آرگومان ها ) برای پردازش در اختیتار تابع صدازده شده ، قرار خواهند گرفت . نتایج مربوطه پس از فراخوانی تابع مربوطه و انجام عملیات ، برای صدا کننده تابع ، ارسال می گردد.فراخوانی همزمان توابع
در مدل RPC ، یک برنامه ارتباطی را با یک سرویس دهنده RPC برقرار می نماید. فراخوانی توابع RPC ، شباهت بسیاری به فراخوانی روتین های محلی دارد . سمنتیک بلاک های RPC ، مشابه آنهائی است که در فراخوانی روتین های محلی، مورد استفاده قرار می گیرد. این حقیقت که سمنتیک بلاک ها مشابه است، بدین معنی است که فراخوانی ها بصورت همزمان می تواند صورت پذیرد. در این حالت در مواقع ضروری بخشی از کدهای مربوط به اجرای روتین ، بلاک تا پس از برگرداندن مقدار توسط تابع مجددا" آزاد و امکان اجرای آنها فراهم گرد .بمنظور پیاده سازی قابلیت پردازش همزمان لازم است که با توجه به ماهیت کدهای موجود در یک روتین ، امکان اجراء یک نمونه از آنان را در هر لحظه فراهم و پس از اطمینان از تکمیل عملیات مربوطه ، بخش مربوطه آزاد تا زمینه اجرای سایر پردازه های در نوبت انتظار ، فراهم گردد. وضعیت فوق نظیر تابع XOR است و شرط وجود یکی منوط به عدم وجود دیگری خواهد بود. برای اکثر پیاده کنندگان نرم افزار ، مدل برنامه نویسی فوق مناسب و بکارگیری آن آسان خواهد بود گرچه استقرار یک مدل همزمان در بالای معماری توزیع شده ، می تواند باعث بروز مسائلی خاص و از نگاهی دیگر گردد .
و...
NikoFile