عامل ۷-سرویسها را از طریق اتصال به پورت (port binding) در اختیار استفادهکنندگان بیرونی قرار دهید
[ مترجم؛ برگردان Port به فارسی درگاه است ولی در این متن همان واژهی پورت استفاده شده است.]
گاهی برنامههای وب در داخل یک کانتینر سرویسدهنده وب (web-server container) اجرا میشوند. برای مثال، برنامههای PHP میتوانند به عنوان یک ماژول داخل apache HTTPD اجرا شوند یا برنامههای جاوا میتوانند داخل Tomcat اجرا شوند.
برنامههای ۱۲ عاملی کاملا خودکفا و بینیاز از کانتینر سرویسدهندههای وب هستند (self-contained). آنها برای ایجاد سرویسی که در محیط اجرا از طریق وب در دسترس باشد (web-facing service) نیازی به سرویسدهنده وب (web server) که در زمان اجرا در اختیار آن قرار گیرد ندارند. برنامه وب ۱۲ عاملی، HTTP را به کمک اتصال به پورت (Port Binding) به عنوان یک سرویس در اختیار استفادهکنندگان بیرونی قرار میدهد و سپس منتظر دریافت درخواستهایی میماند که روی آن پورت ارسال میشوند.
[مترجم؛ در متن اصلی از واژهی Runtime Injection برای فراهم کردن سرویسدهنده وب مورد نیاز برنامه استفاده شده است]
در محیط توسعه شخصی (local development environment)، توسعهدهندگان برای دسترسی به سرویسی که توسط برنامه در اختیار استفادهکنندگان بیرونی قرار گرفته فقط به سراغ آدرسی شبیه به ‘http://localhost:5000/’ میروند. اما در محیط استقرار، یک لایه مسیریابی (routing layer) وظیفهی هدایت درخواستهای دریافتی روی یک نام میزبان عمومی (public-facing hostname) به برنامه را بر عهده میگیرد. ارتباط لایه مسیریابی با برنامه توسط پورت مذکور برقرار میگردد.
معمولا برای پیادهسازی این ویژگی از اعلان وابستگی (dependency declaration) برای اضافه کردن سرویسدهندهی وب به برنامه استفاده میشود. [برای اطلاعات بیشتر رجوع کنید به عامل دوم در برنامههای ۱۲ عاملی یعنی وابستگیها؛ مترجم]
HTTP تنها سرویسی نیست که میتوان به کمک اتصال به پورت در اختیار استفادهکنندگان قرار داد. تقریباً همهی نرمافزارهای سرویسدهنده (server software) میتواند به کمک اتصال به پورت و سپس انتظار و پاسخ به درخواستهای دریافتی اجرا شوند. به عنوان مثال میتوان به Redis یا Remote Dictionary Server اشاره کرد.
توجه داشته باشید که روش اتصال به پورت به این معناست که یک برنامه میتواند تبدیل به یک سرویس کمکی (backing service) برای سایر برنامهها شود. برای این کار آدرس (URL) ارائهشده توسط برنامه در قالب یک منبع (Resource Handle) در پیکربندی (config) برنامهای که میخواهد از آن استفاده کند قرار داده میشود.
نوشتههای قبلی:
قسمت هفتم: پردازش
مترجم: حمید آقای خاتمی
گزیده:
طراحی خوب رایگان نیست و باید برای آن هزینه کنید. شما باید مداوم روی آن سرمایهگذاری کنید تا از انباشتهشدن مشکلات کوچک و تبدیل آنها به مشکلات بزرگ جلوگیری کنید. خوشبختانه طراحی خوب در نهایت هزینههای خود را پرداخت میکند، زودتر از آن چه فکرش را میکنید.
جان اوسترهوت، فلسفهی طراحی
دیدگاهتان را بنویسید