دستگاه کامپیوتری (Computer Appliance) به سیستمی گفته میشود که ترکیبی از سختافزار، نرمافزار یا سفتافزار (firmware) است و به طور خاص برای ارائه یک منبع محاسباتی مشخص طراحی شده است. این دستگاهها به دلیل شباهت در نقش و نحوه مدیریت به لوازم خانگی، نام appliance را به خود گرفتهاند؛ لوازمی که معمولاً بسته و مهر و موم شدهاند و کاربر یا مالک قادر به تعمیر یا تغییر آنها نیست.
در این دستگاهها، سختافزار و نرمافزار به صورت یک محصول یکپارچه عرضه میشوند و حتی ممکن است قبل از تحویل به مشتری از پیش پیکربندی شده باشند تا یک راهحل آماده (turn-key) برای یک کاربرد خاص ارائه دهند. برخلاف کامپیوترهای عمومی، دستگاههای آپلاینس معمولاً طوری طراحی نشدهاند که کاربران بتوانند نرمافزار، سیستمعامل پایه، یا سختافزار آنها را به دلخواه تغییر دهند.
شکل دیگری از این دستگاهها، آپلاینس مجازی (Virtual Appliance) است که عملکردی مشابه با آپلاینس سختافزاری اختصاصی دارد، اما به صورت یک ایمیج ماشین مجازی نرمافزاری برای اجرا روی دستگاههای مجهز به هایپروایزر توزیع میشود.
مروری بر عملکرد
به طور سنتی، برنامههای نرمافزاری روی یک سیستمعامل عمومی اجرا میشوند که از منابع سختافزاری کامپیوتر (مانند حافظه، فضای ذخیرهسازی دیسک، قدرت پردازش و پهنای باند شبکه) برای تأمین نیازهای محاسباتی کاربر استفاده میکند. مشکل اصلی این مدل سنتی، پیچیدگی آن است؛ ادغام سیستمعامل و برنامهها با پلتفرم سختافزاری و پشتیبانی از آن پس از راهاندازی، کاری پیچیده است.
با محدود کردن دقیق تنوع سختافزار و نرمافزار، پیادهسازی (deploy) آپلاینس آسان میشود و میتوان از آن بدون نیاز به دانش عمیق IT استفاده کرد. علاوه بر این، هنگام بروز مشکلات، کارکنان پشتیبانی به ندرت نیاز دارند که به طور عمیق به بررسی موضوع بپردازند؛ آنها تنها به آموزش نرمافزار مدیریت آپلاینس نیاز دارند تا بتوانند اکثر مشکلات را حل کنند.
در تمام اشکال مدل آپلاینس کامپیوتری، مشتریان از عملیات آسان بهرهمند میشوند. آپلاینس دارای ترکیب مشخصی از سختافزار، سیستمعامل و نرمافزار برنامه است که در کارخانه از پیش نصب شده است. این امر از نیاز مشتریان به انجام کارهای پیچیده ادغام جلوگیری کرده و عیبیابی را به طور چشمگیری ساده میکند. در واقع، این ویژگی عملیات آماده (turnkey operation)، مزیت اصلی است که مشتریان هنگام خرید آپلاینس به دنبال آن هستند.
برای اینکه یک دستگاه (سختافزاری) به عنوان آپلاینس شناخته شود، باید با نرمافزار ادغام شده و هر دو به عنوان یک بسته عرضه شوند. این موضوع، آپلاینسها را از راهحلهای خانگی (home grown) یا راهحلهایی که نیاز به پیادهسازی پیچیده توسط یکپارچهسازان یا فروشندگان ارزش افزوده (VARs) دارند، متمایز میکند.
رویکرد آپلاینس به جداسازی سیستمها و برنامههای مختلف کمک میکند، مثلاً در مرکز داده. هنگامی که یک منبع جدا شد، از نظر تئوری میتواند متمرکز شده و بین چندین سیستم به اشتراک گذاشته شود، به صورت مرکزی مدیریت و بهینهسازی شود، بدون اینکه نیازی به تغییر در هیچ سیستم دیگری باشد.
ملاحظات و معایب رویکرد آپلاینس کامپیوتری
بزرگترین عیب استفاده از یک دستگاه کامپیوتری این است که چون برای ارائه یک منبع خاص طراحی شدهاند، اغلب شامل یک سیستمعامل سفارشی هستند که روی سختافزار تخصصی اجرا میشود؛ هیچکدام از این دو به احتمال زیاد با سیستمهای قبلاً مستقر شده سازگار نخواهند بود. در نتیجه، مشتریان انعطافپذیری خود را از دست میدهند.
ممکن است تصور شود که یک سیستمعامل داخلی اختصاصی یا سیستمعامل درون یک برنامه، آپلاینس را در برابر حملات سایبری رایج بسیار امنتر میکند. اما برعکس آن صادق است. امنیت از طریق پنهانکاری (Security by obscurity) یک تصمیم امنیتی ضعیف است و آپلاینسها اغلب با مشکلات امنیتی دست و پنجه نرم میکنند، همانطور که تکثیر دستگاههای اینترنت اشیاء (IoT) نشان میدهد.
انواع آپلاینسها
تنوع دستگاههای کامپیوتری، طیف گستردهای از منابع محاسباتی را که آنها به برنامهها ارائه میدهند، منعکس میکند. برخی از نمونهها:
- آپلاینسهای ذخیرهسازی (Storage appliances): مقادیر عظیمی از فضای ذخیرهسازی و قابلیتهای سطح بالاتر (مانند آینهکاری دیسک و نواریسازی دادهها) را برای چندین سیستم متصل با استفاده از پارادایم شبکههای ذخیرهسازی محلی شفاف ارائه میدهند.
- آپلاینسهای شبکه (Network appliances): روترهای عمومی هستند که محافظت فایروال، امنیت لایه انتقال (TLS)، پیامرسانی، دسترسی به پروتکلهای شبکه تخصصی (مانند سرویس پیام ebXML) و مالتیپلکسینگ پهنای باند را برای سیستمهای متعددی که در جلوی آنها قرار دارند، فراهم میکنند.
- آپلاینسهای پشتیبانگیری و بازیابی فاجعه (Backup and disaster recovery appliances): دستگاههای کامپیوتری که نرمافزار پشتیبانگیری و اهداف پشتیبانگیری را ادغام کردهاند، گاهی اوقات با هایپروایزر برای پشتیبانی از بازیابی فاجعه محلی سرورهای محافظت شده. اینها اغلب دروازهای به یک راهحل کامل DRaaS (Disaster Recovery as a Service) هستند.
- آپلاینسهای فایروال و امنیتی (Firewall- and Security appliances): دستگاههای کامپیوتری که برای محافظت از شبکههای کامپیوتری در برابر ترافیک ناخواسته طراحی شدهاند.
- آپلاینسهای گیتوی IIoT و MES (IIoT and MES Gateway appliances): دستگاههای کامپیوتری که برای ترجمه دادهها به صورت دوطرفه بین سیستمهای کنترل و سیستمهای سازمانی طراحی شدهاند. برنامههای سفتافزاری اختصاصی و داخلی که روی آپلاینس اجرا میشوند، از اتصالات نقطه به نقطه برای ترجمه دادهها بین دستگاههای میدانی با پروتکلهای اتوماسیون بومی خود و سیستمهای MES از طریق APIها، ODBC یا رابطهای RESTful استفاده میکنند.
- آپلاینسهای ضد اسپم (Anti-spam appliances): برای اسپم ایمیل.
- آپلاینسهای نرمافزاری (Software appliances): یک برنامه نرمافزاری که ممکن است با حداقل سیستمعامل لازم (JeOS) ترکیب شود تا بتواند روی سختافزار استاندارد صنعتی یا در یک ماشین مجازی اجرا شود. اساساً، توزیع نرمافزار یا سفتافزاری که یک آپلاینس کامپیوتری را اجرا میکند.
- آپلاینسهای ماشین مجازی (Virtual machine appliances): شامل یک سیستمعامل داخلی «سبک هایپروایزر» است که روی سختافزار آپلاینس اجرا میشود. لایه هایپروایزر با سختافزار آپلاینس مطابقت دارد و توسط مشتری قابل تغییر نیست، اما مشتری ممکن است سیستمعاملها و برنامههای دیگر را در قالب ماشینهای مجازی روی آپلاینس بارگذاری کند.
آپلاینسهای مصرفی
علاوه بر استقرار در مراکز داده، بسیاری از دستگاههای کامپیوتری مستقیماً توسط عموم مردم استفاده میشوند. این شامل:
- ضبطکننده ویدئوی دیجیتال (Digital video recorder)
- گیتوی مسکونی (Residential gateway)
- دستگاه ذخیرهسازی متصل به شبکه (NAS)
- کنسول بازی ویدئویی
استفادههای مصرفی بر نیاز به نصب، پیکربندی و عملیات آسان آپلاینس، بدون نیاز به دانش فنی کم یا هیچ، تأکید دارند.
آپلاینسها در اتوماسیون صنعتی
دنیای اتوماسیون صنعتی سرشار از آپلاینسها بوده است. این آپلاینسها برای مقاومت در برابر دما و لرزش شدید، مقاومسازی (hardened) شدهاند. این آپلاینسها همچنین بسیار قابل پیکربندی هستند و امکان سفارشیسازی را برای برآورده کردن طیف گستردهای از کاربردها فراهم میکنند. مزایای کلیدی آپلاینس در اتوماسیون عبارتند از:
- کاهش زمان خرابی: یک آپلاینس معیوب معمولاً با یک جایگزین تجاری آماده (COTS - Commercial Off-The-Shelf) تعویض میشود و وظیفه آن به سرعت و به آسانی از یک نسخه پشتیبان بازیابی میشود.
- مقیاسپذیری بالا: آپلاینسها معمولاً راهحلهای هدفمندی برای یک بخش از کارخانه یا فرآیند هستند. با تغییر نیازمندیها، مقیاسپذیری از طریق نصب آپلاینسهای دیگر حاصل میشود. مفاهیم اتوماسیون را میتوان با استانداردسازی آپلاینسها برای انجام وظایف مورد نیاز، در سراسر سازمان تکرار کرد، برخلاف توسعه طرحهای اتوماسیون سفارشی برای هر وظیفه.
- هزینه کل مالکیت (TCO) پایین: آپلاینسها توسط فروشندگان محصولات اتوماسیون توسعه، آزمایش و پشتیبانی میشوند و تحت سطح گستردهتری از تست کیفیت نسبت به راهحلهای اتوماسیون طراحی شده سفارشی قرار میگیرند. استفاده از آپلاینسها در اتوماسیون، سطح تست مورد نیاز در هر برنامه فردی را کاهش میدهد.
- کاهش زمان طراحی: آپلاینسها وظایف خاصی را انجام میدهند و اگرچه بسیار قابل پیکربندی هستند، اما معمولاً خود مستندسازی (self-documenting) هستند. این امر به راهحلهای مبتنی بر آپلاینس اجازه میدهد تا با حداقل نیاز به آموزش و مستندات، از مهندسی به مهندس دیگر منتقل شوند.
انواع آپلاینسهای اتوماسیون:
- PLC (Programmable Logic Controller): کنترلکنندههای منطقی قابل برنامهریزی، آپلاینسهایی هستند که معمولاً برای کنترل گسسته استفاده میشوند و طیف وسیعی از گزینههای ورودی و خروجی را ارائه میدهند. آنها از طریق زبانهای برنامهنویسی استاندارد مانند IEC-1131 پیکربندی میشوند.
- SLC (Single Loop Controller): کنترلکنندههای تک حلقهای، آپلاینسهایی هستند که یک متغیر ورودی را نظارت کرده و برای نگه داشتن متغیر ورودی در نقطه تنظیم، تغییری در خروجی کنترلی (متغیر دستکاری شده) اعمال میکنند.
- PAC (Programmable Automation Controller): کنترلکنندههای اتوماسیون قابل برنامهریزی، آپلاینسهایی هستند که ویژگیهای PLC و SLC را در خود جای داده و امکان ادغام کنترل آنالوگ و گسسته را فراهم میکنند.
- Universal Gateway: یک آپلاینس گیتوی جهانی، قابلیت برقراری ارتباط با دستگاههای مختلف را از طریق پروتکلهای ارتباطی مربوطه دارد و تراکنشهای داده را بین آنها انجام میدهد. این امر با افزایش تلاش تولید برای بهبود چابکی، کیفیت، نرخ تولید، هزینههای تولید و کاهش زمان خرابی از طریق ارتباطات پیشرفته ماشین به ماشین (M2M) اهمیت فزایندهای پیدا میکند.
- EATMs (Enterprise Appliance Transaction Modules): ماژولهای تراکنش آپلاینس سازمانی، آپلاینسهایی هستند که تراکنشهای داده را از سیستمهای اتوماسیون کارخانه به سیستمهای تجاری سازمانی انجام میدهند. آنها از طریق پروتکلهای مختلف اتوماسیون فروشنده با تجهیزات کارخانه ارتباط برقرار کرده و از طریق پروتکلهای ارتباط پایگاه داده مانند JMS (Java Message Service) و SQL (Structured Query Language) با سیستمهای تجاری ارتباط برقرار میکنند.
ساختار داخلی
چندین الگوی طراحی توسط فروشندگان آپلاینس کامپیوتری اتخاذ شده است، که برخی از آنها در زیر نشان داده شده است. از آنجایی که کل مفهوم آپلاینس بر دور نگه داشتن چنین جزئیات پیادهسازی از کاربر نهایی استوار است، تطبیق این الگوها با آپلاینسهای خاص دشوار است، به خصوص که آنها میتوانند بدون تأثیر بر قابلیتها یا عملکرد خارجی تغییر کنند.
- تراشه خاص (Special chip): فروشنده یک ASIC (مدار مجتمع با کاربرد خاص) میسازد، بدون هیچ نرمافزار یا سیستمعامل جداگانه. آپلاینس دارای یک رابط محدود، معمولاً کنسول ترمینال یا مبتنی بر وب، برای اجازه پیکربندی اولیه توسط کارکنان IT است. تولیدکننده اغلب راهی برای دسترسی به مکانیزمهای پیکربندی عمیقتر فراهم میکند. دستگاه محاسباتی Java Vega 3 شرکت Azul Systems نمونهای است؛ اصلاحات سختافزاری خاص در تراشه، مقیاسپذیری برنامه Java را فعال میکند.
- هسته نرمافزاری خاص (Special software kernel): فروشنده از یک کامپیوتر عمومی استفاده کرده یا آن را ایجاد میکند و یک سیستمعامل جدید طراحی میکند که برنامه را در سیستمعامل ادغام میکند. IOS سیسکو نمونهای است؛ سیستمعامل شبه یونیکس دارای توابع فایروال و دستورات پیکربندی شبکه/فایروال در آن تعبیه شده است. گاهی اوقات، دستگاه نیز مهر و موم شده است، بنابراین مصرفکننده هیچ دسترسی برای نصب مجدد سیستمعامل یا جایگزینی آن با سیستمعامل دیگر ندارد. مصرفکننده همچنین ممکن است به مجموعه کوچکی از دستورات پیکربندی محدود شود، در حالی که توابع سطح پایینتر و جزئیتر سیستمعامل فقط برای فروشنده در دسترس است. هرچه این رویکرد «قفل شده» بیشتر اجرا شود، این نوع دستگاه بیشتر شبیه دستگاه ASIC میشود.
- برنامه تخصصی (Specialized application): کامپیوترها و سیستمعاملهای آماده استفاده میشوند، اما رابط کاربری و «جعبه» طوری طراحی شدهاند که کاربر نمیتواند به هیچ بخش از کامپیوتر دسترسی پیدا کند، جز رابط برنامه که فروشنده ایجاد کرده است. از آنجایی که معماری محاسباتی زیربنایی قفل شده و اساساً نامرئی است، تشخیص اینکه دستگاه واقعاً بر روی سختافزار و سیستمعامل عمومی کار میکند، دشوار میشود. لینوکس، و تا حد کمتری BSD، سیستمعامل انتخابی برای این نوع آپلاینس شده است. اخیراً اصطلاح آپلاینس نرمافزاری (software appliance) نیز برای توصیف چنین ترکیب از پیش بستهبندی شده و جعبه سیاه استفاده شده است.
- آپلاینس مجازی (Virtual appliance): در اینجا سختافزار کاملاً ناپدید شده و به اصطلاح آپلاینس مجازی (که به عنوان آپلاینس نرمافزار مجازی نیز شناخته میشود) با استفاده از هر یک از فناوریهای متعدد ماشین مجازی تبدیل شده است. در این ماشین مجازی، اساساً همان پشته نرمافزار به همراه سیستمعامل مانند جایگزین «برنامه تخصصی» وجود دارد.
گاهی اوقات، این تکنیکها با هم ترکیب میشوند. به عنوان مثال، یک آپلاینس VPN ممکن است شامل یک فایروال نرمافزاری با دسترسی محدود باشد که روی لینوکس اجرا میشود، همراه با یک ASIC رمزنگاری برای سرعت بخشیدن به دسترسی VPN.
برخی از دستگاههای کامپیوتری از ذخیرهسازی حالت جامد (solid state storage) استفاده میکنند، در حالی که برخی دیگر از هارد دیسک برای بارگذاری سیستمعامل استفاده میکنند. باز هم، این دو روش ممکن است با هم ترکیب شوند - یک سرور چاپ ASIC ممکن است یک هارد دیسک اختیاری برای صفبندی کارها را مجاز کند، یا یک دستگاه مبتنی بر لینوکس ممکن است لینوکس را در سفتافزار رمزگذاری کند، بنابراین نیازی به هارد دیسک برای بارگذاری سیستمعامل نیست.