Rayan
/ دسته ها: فناوری اطلاعات

API - قسمت اول

Representational State Transfer

استایل معماری زیرساخت وب Representational State Transfer یا به سادگی Rest خوانده می شود. Rest به نیاز یک نیروی ویژه مهندسی اینترنت (Internet Engineering Task Force) برای مدلسازی طرز کار وب پاسخ داد. REST مدلی ایده آل شده برای تعامل درون و بین وب اپلیکیشن هاست.

Roy T.Fielding می گوید Rest مجموعه ایی هماهنگ شده از سازه های معمارانه است که تلاش می کند تاخیر و بار وارد شده به شبکه را به حداقل برساند. در حالی که همزمان عدم وابستگی کامپوننت ها  و مقیاس پذیری به کارگیری آن ها را حد اکثر میکند. Rest با استفاده از Caching و استفاده مجدد از اینتراکشن ها ، جایگزینی پویای کامپوننتها و تحلیل فعالیت ها با میانجی گری به نیاز یک سیستم فرا رسانه ایی گسترش یافته در مقیاس اینترنت پاسخ می گوید.

عناصر معماری

Rest سه کلاس از عناصر معماری را به در خود جای داده است:

-          عناصر داده ایی

-          عناصر ارتباطی (کانکتورها)

-          عناصر پردازشی (کامپوننت ها)

 

عناصر داده ایی: شرایط عناصر داده ایی مفهوم کلیدی Rest هست، کامپوننتهای مربوط به آن با انتقال بازنمودهای (representation) شکل یافته از عناصر داده ایی فعلی یا تغییر یافته با هم ارتباط برقرار می کنند.

منابع (Resources): هر چیزی که بتواند اسمی داشته باشد می تواند یک منبع باشد. منبع یک نقشه منطقی برای مجموعه ایی از موجودیت هاست که در آن تنها مفهوم منبع ثابت باقی می ماند و موجودیت آن ممکن است در خلال زمان تغییر پیدا کند

این مفهوم به تولید کننده اجازه میدهد تا به یک مفهوم به جای بازنمودی مشخص از آن ارجاع دهد.

Rest از معرف های منابع استفاده می کند تا بتواند بین منابع تمایز قائل شود. در محیط وب معرف یک Uniform Resource Identifier (URI) مطالبق آنچه در استاندارد اینترنت RFC 2396 تعریف شده است خواهد بود.

کامپوننتهای All REST عملیاتی را برای ایجاد بازنمود روی منابع اجرا می کنند. بازنمودها وضعیت فعلی یا آتی یک منبع را ثبت می کنند و می توانند بین کامپوننت ها جابجا شوند.

در یک بازنمود همیشه عوامل زیر وجود دارد:

-          بایتهای اختصاص داده شده (مفهوم)

-          متادیتای بازنمود شده (توضیح دهنده مفهوم)

-          متادیتای توضیح دهنده متادیتا (به عنوان مثال Cache-Control)

Rest وابسته به یک فرمت داده مشخص نیست اما تنها تا زماتی که تمام کامپوننتهای آن بتوانند داده را پردازش کنند. یک Cache میانی، به عنوان مثال، نیاز ندارد که ذات داده را بداند، بلکه تنها لازم است بداند که درخواست Request)) یا پاسخ  (Response)قابل cache هستند یا خیر.

فرمت داده یک بازنمود media type خوانده میشود.  برخی media type ها میتوانند با کامپیوتر پردازش شوند و برخی دیگر بر اساس قابل درک بودن برای انسان تعریف شده اند. نوع دیگری از آنها ممکن است به صورت خودکار پردازش شده و سپس توسط انسان درک شوند. طراحی یک media type می تواند مستقیما روی کارکرد یک سیستم تاثیرگذار باشد. هر داده ایی که باید پس از پردازش دریافت شود به تاخیری که در تراکنش ممکن است به وجود بیاید می افزاید. یک media type با یک داده مهم در ابتدای جریان می تواند به صورت همزمان پردازش ودریافت را انجام دهد و بنابریان زمان کلی برای پاسخگویی به درخواست را کاهش دهد. به عنوان مثال مرورگر وب را در نظر بگیرید که می تواند صفحه ایی را همزمان در حالی که دریافت میکند پردازش و تبدیل به خروجی کند

در وب سرویس های مدرن XML (Extensible Markup Language) بازنمودی عمومی است و سایر بازنمودها تنها برای کنش با انسان به کار گرفته می شوند مانند HTML، JPEG و  .PDFمتادیتا مانند Cache-Control، آخرین تغییرات و Media-Type می توانند به صورت پویا بین بازنمودهای متفاوت ممکن انتخاب کنند و مقیاس پذیری را با تعریف انحصاری بازنمودهای قابل cache بهبود ببخشد.

کانکتورها

 مدیرت میکنند ارتباطات شبکه ایی را برای یک کامپوننت

کانکتورها یک مفهوم اینترفیس عمومی برای ارتباط کامپوننتها ارائه می دهند که به موارد زیر سرویس می دهد:

-          جداسازی مسئولیت ها

-          پنهان سازی کاربری های زیر ساخت

-          بهبود سادگی

-          امکان جایگزینی

 

هر تراکنش Rest مستقل از موقعیت Stateless)) است به این معنی که هر درخواستی شامل تمام اطلاعات لازم برای کانکتور می شود تا بتواند این درخواست را درک کندکه خود مستقل از هر نوع درخواستی است که ممکن است پیش از آن آمده باشد.

تمام این ساختار ها منجر به پدید آمدن این امکانات می شوند:

-          نیازی نیست که کانکتور درگیر state اپلیکیشن شود، درنتیجه به سادگی و ایجاد کامپوننتهای مقیاس پذیر کمک می کند.

-          درخواست ها میتوانند به صورت موازی اقدام پذیرند چرا که نیازی به درک نیست مفهوم تراکنش ها نیست.

-          درخواست ها میتوانند در یک محیط ایزوله درک شوند ختم به ساده تر شدن و باز نمایی پویای سرویس ها

-          امکان Cache

REST عملیات متفاوت را برای دسترسی و جابجایی بازنمود ها در انواع مختلف کانکتور کپسوله میکند:

-          کلاینت ارسال درخواست، دریافت پاسخ

-          سرور گوش دادن به درخواست ها، ارسال پاسخ ها

-          Cache می تواند در کانکتور سمت مشتری یا سرور قرار داده شود تا پاسخ های قابل Cache را ذخیره کند، همچنین می تواند بین چندین مشتری به اشتراک گذاشته شود.

-          حل کننده ها معرف های منابع را به آدرسهای تحت شبکه تبدیل میکند.

-          تونل درخواست ها را رله می کند ، هر کامپوننتی میتواند به کنش تونل سوییچ کند.

یک کامپوننت می تواند بیش از یک نوع کانکتور به کار گیرد. مثال هایی برای انوع کانکتور استفاده شده در وب سرویس های مدرن lib – www هستند.

کامپوننتها

کامپوننتهای Rest بوسیله نقش آنها در یک اپلیکیشن تعیین شده هستند.

User Agent از یک کانکتور کلاینت استفاده می کند تا یک درخواست را اجرا کند و در کنار آن دریافت کننده نهایی پاسخ ها باشد.

سرور اصلی از یک کانکتور سرور استفاده می کند تا درخواست ها را دریافت کند و منبع اصلی برای بازنمودهای منابع خود است. هر سرور اینترفیس عمومی به خدمات خود به عنوان وراثتی از منابع خود ارائه می دهد.

مطلب قبلی استراتژی معاملات الگوریتمی - قسمت پنجم
مطلب بعدی API - قسمت دوم
Print
775

نام شما
ایمیل شما
عنوان
پیام خود را وارد کنید ...
x
دی ان ان