اگه وب سرویس نبودش، پا نمیداد این مقاله

اگه وب سرویس نبودش، پا نمیداد این مقاله

توی مقاله قبلی با عنوان اگه API نبودش پا نمیداد این مقاله با مفهوم API آشنا شدیم و مثالهایی ازش رو دیدیم (لطفاً حتماً قبل از ادامه حتماً مطمئن باشید که اون مقال رو خوندین): https://vrgl.ir/vLtRy الان قراره یکم بیشتر وارد مفهوم وب سرویس ها بشیم. ولی همچنان نه خیلی فنی و نه خیلی عمومی، یچیزی بینابینی که دیدِ قابل قبولی بده و از این به بعد اگه کسی در مورد وب سرویس صحبت کرد حدأقل بدونیم چیه بصورت کلی داره در مورد چیز صحبت میکنه.و باز هم (گرچه ویکیپدیا منبع خیلی قابل قبولی برای موارد فنی و علمی نیست ولی برای تعریف و یسری توضیحات خوبه، پس) زحمت تعریف رو میندازیم گردن ویکیپدیای عزیز:یک وب سرویس (به انگلیسی: Web service) یا خدمت وب، از نگاه فناوری اطلاعات و بر اساس استانداردهای تعریف شده، سرویس یا خدمتی است که از طریق وب (اینترنت) توسط یک دستگاه الکترونیکی (سرور یا خادم) به دستگاه الکترونیکی دیگر (سرویس گیرنده یا Client)، ارائه می‌شود.وب سرویس توسط W3C تألیف شده.عکس زیر API رو با WebService مقایسه کردهapi VS web serviceمیشه گفت که هر وب سرویس میتونه API باشه، ولی هر API وب سرویس نیست و این موضوع توی همون مقاله ای که اول این مطلبق معرفی کردم، مشخص شده.پس وقتی ما از کلمه ی Web API استفاده میکنیم، احتمالاً منظورمون یه API هست که داره تحت بستر Web خدمات ارائه میده، و وقتی میگیم Web Service، بهتره بدونیم که منظور اصلی، ساز و کار ارتباطی ای هست برای انتقال اطلاعات بین نرم افزار های مختلف که گفته میشه توسط سازمان W3C توسعه یافته، و دلیل اصلیش سهولت در انجام امور از راه دور ذکر شده.حالا یه سوال، وقتی ما میخوایم کنترل از راه دور انجام بدیم، چه ویژگی هایی لازمه داریم؟طبیعتاً یکی از اولین موارد اینه که نحوه ارتباطمون وابستگی خاصی به پلتفرم یا سیستم عامل نداشته باشهمورد بعدی اینه که وب سرویس قراره به هرکسی که درخواست میده پاسخی درخودر ارائه بده، پس نباید به زبون برنامه نویسی خاصی وابسته باشهباید بتونه ارتباط بین بخش های مختلف نرم افزار یا مثلاً ارتباط با کلانت های مختلف رو تسهیل کنهکسی که از وب سرویس استفاده میکنه نیاز نداره بدونه پشتش چه خبره و فقط باید بدونه چجوری میتونه اطلاعات به وب سرویس بده و ازش اطلاعات دریافت کنه (نیازمند پروتکل ارتباطی هست)یه وب سرویس باید ماژولار و داینامیک و و قابل توسعه در ورژن های مختلف باشهاصطلاحاً self-contained باشه، میشه اینجوری تفسیر کرد که نیازی به منابع بیرونی نداشته باشهدر صورت نیاز بتونه تبادل اطلاعات یا اسناد پیچیده رو هم تا حدود قابل قبولی پشتیبانی کنهفکر کنم کافی باشه تا همینجا ویژگی ها.هر جایی، هر جوری، هر کسی، هر طوری، هر نوعی بخواد ارتباط برقرار کنه، نقش ها و انتظاراتی مطرح میشه. برای وب سرویس ها هم سه نقش کلی و اصلی زیر مطرح میشن:ارائه دهنده سرویس یا همون Serviece Providerهمونطور که از اسم مشخصه، منظور شخص یا اشخاص حقیق یا حقوقی ای هست که سرویس رو توسعه میدن و ارائه میدن.درخواست کننده یا همون Service Requestorمنظور هر استفاده کننده از وب سرویس هست که با ارسال درخواست و در صورت نیاز فرستادن داده هایی، پاسخی دریافت میکنه.سرویس رجیستری Service Registeryیه واحد مرکزی که توسعه دهنده ها میتونن روی اون سرویس جدیدی ایجاد کرده یا از سرویس های قدیمی که توسط دیگران توسعه داده شده استفاده کنن.همونطور که گفتیم وب سرویس ها میتونن خدمات و سرویس هایی ارائه بدن، ولی این خدمات با چه استانداردهایی قراره پیاده سازی بشه؟برخی از انواع پروتکل های ارتباطی وب سرویس ها اینا هستن:XML یا eXtensible Markup Language:یکی از استانداردهای اولیه برای استفاده از وب سرویس ها، XML هست که این مورد هم توسط W3C استاندارد سازی شده تا توسعه دهندگان قادر باشن بصورت استاندارد از این پلتفرم به عنوان واسط اتصال استفاده کنن. زبان XML نوعی زبان نشانه گذاری قابل گسترشه که به منظور انتقال اطلاعات به صورت متن در بین وب سرویس‌ها استفاده می‌شه.SOAP یا Simple Object Access Protocol :این مورد که شاید توی برخی از ارتباط های پرداخت و بانکی باهاشون آشنا شده باشین، یکی دیگه از استاندارای مهم و کاربردی در وب سرویس ها استاندارد SOAP هست که این پروتکل هم مثل XML میتونه بصورت مشترک باعث اتصال موفق برنامه ها با وب سرویس بشه. در واقع پیغام های ایجاد و ارسال شده SOAP عامل اصلی و ایجاد کننده اتصال وب سرویس هست. این پروتکل برای انتقال اطلاعات با سطح امنیتی بالا مناسبه و قابل اطمینان در نظر گفته میشه. SOAP پروتوکلیه برای ارسال داده و اسناد تحت بستر HTTP یا SMTP.WSDL یا Web Service Description Language:یک دیگه از استانداردای مهم که کاربرد بسیار فراوانی توی وب سرویس ها داره، استاندارد WSDL هست. این استاندارد نیز همانند UDDI یه فایل برای هر وب سرویس داره که این فایل با فرمت XML بوده و بصورت کلی نحوه استفاده از وب سرویس رو شرح میده. به عبارت دیگه، UDDI فهرستی از وب سرویس ها هست که توش نوع و نحوه دسترسی اونا مشخص شده.UDDI یا Universal Description – Discovery and Integration :این استاندارد حاوی یک فایل مبتنی بر XML هست که توسط اون، شرکت ها به معرفیِ اتصال وب سرویس ها اقدام میکنن. در حقیقت میشه گفت به منظور استاندارد سازی انتقال اطلاعات در وب سرویس ها ایجاد و توسعه داده میشه. همه رابط هایی که از این استاندارد استفاده می‌کنن، یه فایل XML دارن که توش رَوشِ بکارگیری، شرح داده شده. این استاندارد روش ارتباط بین وب سرویس و کلاینت رو مشخص میکنه. مایکروسافت یکی از معروفترین شرکت هاییه که به استفاده و توسعه این استاندارد پرداخته. شرکت های استفاده کننده از این فایل و استاندارد میتونن سطح دسترسی اون رو براحتی حتی جهت معرفی در اختیار شرکتای خاص یا عموم قرار بدن.همونطور که فهمیدیم وب سرویس ها به روش های مختلفی میتونن پیاده سازی بشن که هر کدوم مزایا و معایب خودشون رو دارن.بعضیاشون عبارت هستن از:فراخوانی از راه دور – (Remote procedure call)روش فراخوانی از راه دور (RPC) پروتکلیه که با استفاده از اون یه نرم افزار میتونه یه سرویس رو از نرم افزاری در کامپیوتری دیگر به وسیله توابعی درخواست کنه. به کمک این پروتکل میشه بدون نیاز به دونستن جزئیات شبکه، داخلش به تبادل اطلاعات و برقراری ارتباط بپردازیم.سرویس گرا – (Service-oriented architecture)معماری سرویس گرا (SOA) عملاً یه سبک طراحی نرم افزاره که توش خدمات به کامپوننت های (اجزای نرم افزاری) مجزا تقسیم می‌شن. به این مفهوم که برای جابجایی اطلاعات بین سرویس های مختلف از این کامپوننت ها استفاده میشه.رِست – (Representational state transfer – REST API)میشه گفت معروفترین نوعه که یه سبک معماری برای ایجاد نرم افزارهای تحت شبکه هست که از پروتکل های مختلف استفاده میکنه. یکی از پرکاربردترین پروتکل‌ها توی این معماری، پروتکل معروف HTTP یا HTTPS هست. این معماری با هدف برقراری ارتباطات نقطه به نقطه طراحی شده و به راحتی برای محیطای توزیع شده قابل استفاده نیست. یکی از اصلی ترین دلایلی که از این نوع استفاده میکنن، سادگی و سهولت پیاده سازی و ارتباطه. وقتی یه سرویس، رِست رو پیاده سازی بکنه، بهش RESTfull گفته میشه. یک از دلایل ایجاد رست هم برطرف کردن مشکلاتی بود با استفاده از پروتوکل SOAP در وب سرویس ها بهش برمیخوردن. یه نکته مهم دیگه هم این که رست انواع مختلف داده رو پشتیبانی میکنه و همه رقمه فکر کنم کارتون رو راه میندازه.ما وقتی از ارتباط حرف میزنیم، این ارتباط باید به کمک ساختاری که هر دو طرف میتونن بپذیرن و متوجه بشن رخ بده. مثلاً اگه قراره رمز نگاری در کار باشه، یا حتی خیلی سطح پایین تر، اینکه اسناد و داده ها با چه ساختاری برای هر دو طرف قابل درک و تفسیر هستن.از معروف ترین انواع داده که برای ارتباط با وب سرویس در نظر گرفته میشه میشه به plain text یا رشته های ساده، html، xml، yaml، toml، json، cson غیره اشاره کرد که هرکدوم کاربردهای خودشون رو بهتر میتونن داشته باشن و معماری ها و پروتکل های مختلف میتونن یک بعضی یا همه این موارد رو پوشش بدن.بیاین برای نمونه حالات مختلف از مثال داده برای ارسال اطلاعات یه کتاب رو ببینیم:<book id=&quotbk101&quot>
<author>Gambardella, Matthew</author>
<title>XML Developer’s Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>{
&quotbooks&quot: [
{
&quotid&quot: &quotbk102&quot,
&quotauthor&quot: &quotCrockford, Douglas&quot,
&quottitle&quot: &quot&quot,
&quotgenre&quot: &quotComputer&quot,
&quotprice&quot: 29.99,
&quotpublish_date&quot: &quot2008-05-01&quot,
&quotdescription&quot: &quotUnearthing the Excellence in JavaScript&quot
}
]
}[[books]]
id = ‘bk101’
author = ‘Crockford, Douglas’
title = ”
genre = ‘Computer’
price = 29.99
publish_date = 2008-05-01T00:00:00+00:00
description = ‘Unearthing the Excellence in JavaScript’books: [
id: ‘bk102’
author: ‘Crockford, Douglas’
title: ”
genre: ‘Computer’
price: 29.99
publish_date: ‘2008-05-01’
description: ‘Unearthing the Excellence in JavaScript’
]books:
– id: bk102
author: Crockford, Douglas
title: ”
genre: Computer
price: 29.99
publish_date: !!str 2008-05-01
description: Unearthing the Excellence in JavaScriptخب خوشحالم که تا اینجا اومدین. بیان یه جمع بندی بکنیم. ما میخوایم داده، سند، اطلاعات یا موارد قابلِ انتقال رو، بفرستیم یه جایی، و میخوایم ارتباط برقرار کنیم. برای پیاده سازیِ نرم افزاریِ این مقوله، میتونیم این شکلی بگیم که از یه طرف به پروتکل نیاز داریم که تحت بستر اونها بتونیم اطلاعات منتقل بکنیم، از طرفی باید ساختار داده ای که میخوایم تحت بستر پروتکل ارسال بشه رو انتخاب کنیم، و از طرف دیگه باید وب سرویسی پیاده سازی کنیم که پروتکل و ساختار داده ی مد نظر رو پشتیبانی کنه.همونطور که اولن این مقال گفتم، قرار بود بصورت کلی با ماهیت وب سرویس ها آشنا بشیم. برای همین دیگه خیلی وارد جزئیاتشون نشدیم، مثلاً شرح کامل Rest و Soap و نحوه پیاده سازی یه وب سرویس و اجزای مختلفش مثل دیتابیس و ارتباطاتشون و غیره. امیدوارم این مقاله تونسته باشه دید قابل قبولی در رابطه وب سرویس ها بهتون بده.شاد و سلامت و موفق باشینمنتشر شده در ویرگول توسط محمد قدسیان https://virgool.io/@mohammad.ghodsian

منبع

Author: admin

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *