Говоря как кто-то, кто фактически внедрил приложение Flash, предназначенное для среды киоска, я настоятельно рекомендую не использовать его по следующим причинам:
Управление памятью недостаточно для того, чтобы приложение работало без присмотра несколько дней / недель. Это приведет к утечке памяти, и вам в конечном итоге придется ее перезапустить. Просто Google для «утечки флэш-памяти», чтобы понять, сколько проблем с ним. Они предположительно улучшили управление памятью в самых последних версиях, но, честно говоря, Flash в основном ориентирован на браузер, где пользователи закрывают вкладку / окно Flash после взаимодействия с ним в течение нескольких минут, поэтому они не потратили много времени. много времени на оптимизацию использования памяти.
Обработка ошибок не является достаточно надежной для работы в расширенной рабочей среде. Если ваше приложение по какой-либо причине выдает ошибку, проигрыватель в основном полностью остановится, пока вы не перезапустите его. Запись в журналы ошибок также сложнее, чем следовало бы из-за (3).
Вы находитесь в изолированной среде в среде Flash и не можете напрямую обращаться к таким устройствам, как устройства для чтения карт памяти или других внешних устройств, или выполнять запись в систему. Использование AIR может помочь вам получить доступ к файловой системе, но не намного. Если вы хотите получить доступ к внешним устройствам, вам нужно написать прокси, который будет установлен на клиенте и отправлять соответствующие данные во Flash через сокет. Если вы решите использовать сокеты для связи с вашим Flash-клиентом, будьте готовы к тому, чтобы расшифровать политики безопасности Flash-плеера.
По сути, Flash был создан для совершенно другой среды, нежели киоск, и поэтому не очень хорошо подходит для этой задачи. Я также рекомендовал бы избегать использования веб-интерфейса из-за тех же трудностей, связанных с доступом к аппаратным устройствам. Ох, и ради бога, не запускайте Flash на Linux. Проигрыватель Linux Flash на 234234 мили отстает от версии для Windows и доставит вам огромную головную боль.
Что касается связи с устройством для чтения карт, обычно вы взаимодействуете с устройством для чтения карт по USB, и устройство для чтения карт можно перевести в режим «раскладки клавиатуры» или в режим HID. В режиме клавиатуры устройство чтения карт считывает считывание карточки и выводит текстовую строку, содержащую содержимое удара, как если бы это была клавиатура, и вам нужно проанализировать эту строку, чтобы получить нужные данные. Режим HID немного чище, и вы взаимодействуете с ним, считывая данные с устройства USB.
Из перечисленных вами вариантов лучшим вариантом (к сожалению), вероятно, является написание какого-либо приложения на Java или .NET, которое может работать в среде 24/7. Если вам нужен доступ к принтерам или другим аппаратным устройствам (например, для автоматической печати квитанции), то Java и .NET имеют очень хорошую поддержку стандарта OPOS, который является стандартным интерфейсом для общения с принтерами квитанций. Что касается Linux против Windows, я видел, как оба успешно использовались.
Кстати, если ваше приложение обрабатывает данные кредитных карт, не забывайте о соответствии PCI:).