Руководство по программному обеспечению киоска - PullRequest
6 голосов
/ 30 января 2010

Мне нужно разработать систему киосков. Единственным вариантом оплаты будет кредитная / дебетовая карта. Киоск должен быть подключен к сети с другим ПК. Например, если клиент заказывает что-то в киоске, его необходимо отправить на другой компьютер, где сотрудник магазина может увидеть, что было заказано.

Вот мои следующие решения:

ВАРИАНТ 1) веб-приложение

Использовать FLASH, ASP.net или JAVA для интерфейса пользователя?

Если я воспользуюсь этим маршрутом, как мне связаться с устройством для считывания кредитных / дебетовых карт? Считыватель будет установлен на киоске, но программное обеспечение киоска будет в Интернете. Должен ли я создать безопасное соединение для связи с читателем?

ВАРИАНТ 2) создать приложение в киоске

Использовать FLASH, JAVA, слой представления Windows с .net?

Как я могу общаться с кард-ридерами?

Какой вариант самый лучший? 1 или 2? JAVA, FLASH? ОКНА .net? А как насчет Linux? Легко ли разрабатывать киоск-апс?

Спасибо за вашу помощь.

Ответы [ 2 ]

11 голосов
/ 30 января 2010

Говоря как кто-то, кто фактически внедрил приложение Flash, предназначенное для среды киоска, я настоятельно рекомендую не использовать его по следующим причинам:

  1. Управление памятью недостаточно для того, чтобы приложение работало без присмотра несколько дней / недель. Это приведет к утечке памяти, и вам в конечном итоге придется ее перезапустить. Просто Google для «утечки флэш-памяти», чтобы понять, сколько проблем с ним. Они предположительно улучшили управление памятью в самых последних версиях, но, честно говоря, Flash в основном ориентирован на браузер, где пользователи закрывают вкладку / окно Flash после взаимодействия с ним в течение нескольких минут, поэтому они не потратили много времени. много времени на оптимизацию использования памяти.

  2. Обработка ошибок не является достаточно надежной для работы в расширенной рабочей среде. Если ваше приложение по какой-либо причине выдает ошибку, проигрыватель в основном полностью остановится, пока вы не перезапустите его. Запись в журналы ошибок также сложнее, чем следовало бы из-за (3).

  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:).

4 голосов
/ 04 февраля 2010

Используйте веб-приложение и напишите пользовательский интерфейс в HTML5.

Что касается программного обеспечения в киоске, я рекомендую Webconverger . Отказ от ответственности: я основатель этого проекта с открытым исходным кодом.

Вы должны получить независимое платежное устройство и сопоставить квитанции вручную.

...