Как плавно переключать пользователей в торговой точке?

Я разрабатываю систему торговых точек для небольшого магазина. В магазине есть только одна точка продажи, но часто в магазине находятся от одного до трех пользователей (продавцов). У каждого пользователя есть собственная учетная запись в системе, поэтому они очень часто входят в систему и выходят из нее. Как мне правильно спроектировать систему входа / выхода?

На данный момент пользователи не используют пароли, потому что вводить пароль каждый раз при входе в систему занимает очень много времени.

Платформа - Windows Vista, но я также хотел бы поддерживать Windows 7. Мы используем Active Directory в сети. На данный момент система разработана на Java / Swing, но я думаю о переходе на C # .NET / WPF.

Я думаю о решении SmartCard, но не знаю, подходит ли оно для моей ситуации. Это было бы более безопасно (что мне нравится), но я не знаю, будет ли это легко реализовать и легко использовать, т.е. могу ли я запустить POS-систему в фоновом режиме или запускаться очень быстро при переключении пользователей? Решения SmartCard очень дороги? (Мои клиенты - небольшие магазины) Что предпочтительнее - использовать .NET или Java в решении SmartCard?

Какие еще решения у меня есть, кроме паролей / без паролей / смарт-карт?

  • Как мне правильно спроектировать систему входа / выхода?
  • Есть ли хорошее решение с использованием смарт-карт для этой цели?
  • Я хотел бы предложить решения как для платформ C # .NET / WPF, так и для платформ Java / Swing.
  • Я хотел бы предложить решения как для решений Active Directory, так и для решений, которые используют только один профиль пользователя в Windows.

Как эта проблема решена в аналогичных продуктах? Я видел только пароли-решения, но они неуклюжие.


person Jonas    schedule 24.03.2010    source источник
comment
У меня недостаточно знаний, чтобы ответить на этот вопрос подробно, но считыватели смарт-карт (подключенные к USB) в настоящее время очень дешевы (30-40 долларов). Многие из них также поставляются с библиотеками для обычных (популярные цели: C (++), Java, .Net ...)   -  person ChristopheD    schedule 24.03.2010


Ответы (4)


Интересным решением является использование «быстрого переключения пользователей», т. Е. Возможности открытия нескольких пользовательских сеансов на одном ПК. Программное обеспечение POS может быть запущено через папку Startup каждой учетной записи продавца и будет оставаться активным в каждом сеансе продавца.

Я думал, что пребывание в домене (т.е. использование Active Directory) отключает быстрое переключение пользователей, но согласно Старая новая вещь, это было верно только для XP. Я только что проверил свою машину Win7 на работе: она находится в домене, но все еще имеет пункт меню «Сменить пользователя».

Основное преимущество заключается в том, что если ваше программное обеспечение уже поддерживает работу с несколькими пользователями, вам не нужно его менять.

Я должен был выполнить проверку быстрого переключения пользователей, прежде чем писать то, что ниже, потому что это кажется самым простым решением. Во всяком случае, есть другие идеи.

Другое решение - это то, что вы упомянули о наличии одного пользователя Windows, но нескольких «виртуальных пользователей», которыми управляет ваше приложение. Смарт-карта - хороший способ реализовать псевдо-вход. В C ++ API позволяет обнаруживать извлечение или вставку карты, поэтому приложение может обнаружить это и прочитать карту после вставки, чтобы узнать, кто в данный момент находится перед компьютером. .NET может легко вызвать этот API через P / Invoke; Я плохо разбираюсь в Java, за исключением того, что JNI может быть решением для вызова собственного API, если нет управляемой библиотеки, которая публикует эту возможность. Что следует сделать, так это изучить различные типы карт и способы общения с ними, поскольку ваше приложение должно использовать карту, для которой не требуется ввод PIN-кода (или вы вернетесь к медленной системе входа в систему, за исключением случаев, когда привязка 4 -цифровое число не считается слишком медленным).

Я видел рестораны, где официанты вставляют ключ в кассу, чтобы их идентифицировали. Я погуглил "кассовые аппараты", но смог найти только полный пакет решения, а не компоненты, такие как считыватель ключей.

Почти идиотский вопрос: какой уровень безопасности вам нужен? Имеет ли смысл иметь большие кнопки на первом экране приложения, куда люди нажимают, чтобы сообщить системе, кто они такие? По завершении они нажимают кнопку «Готово», и приложение возвращается к экрану «Идентификация». Я поставил это в конце, потому что он настолько упрощен, что маловероятно, что он будет полезен.

person Timores    schedule 24.03.2010
comment
Спасибо за хороший ответ! Это правда, мне не нужна эта безопасность, но я хотел бы иметь ее по причинам проверяемости, поскольку POS имеет дело с большими деньгами. Если я не могу менять пользователей плавно и безопасно, я буду использовать только кнопки для каждого пользователя. - person Jonas; 08.04.2010

Я не знаком с широким спектром решений для поставщиков смарт-карт, но знаю Gemalto имеет дружественную настройку .Net. Большинство других ориентировано на Java, но поддержка расширяется.

Что касается переключения пользовательских сеансов и вашего приложения, это зависит от того, насколько «тяжелое» ваше приложение. Если вашему приложению требуется довольно много времени / ресурсов для запуска, вы можете подумать о создании базового приложения в качестве службы на компьютере, которая может работать в фоновом режиме непрерывно, а затем вы можете загрузить легкий пользовательский интерфейс для взаимодействия со службой. с каждой пользовательской сессией (возможно, запуск через меню запуска).

На CodeProject есть проект C #, который обеспечивает основу для взаимодействия со смарт-картой. сервисы в windows - может быть интересно почитать.

person AJ.    schedule 24.03.2010

У меня была возможность поработать с библиотекой компьютерного зрения с открытым исходным кодом (OpenCV) в одном из моих прошлых проектов и его "Face -Признание "- вот что вам нужно. Он написан с использованием нативного кода, но может быть легко использован с Java, .NET, Android, iOS. Все, что вам нужно, это веб-камера и кнопка «Сменить пользователя» с onClickListener, которая сделает снимок и сравнит его с изображениями ваших сотрудников. Преимущество? После того, как фотография сделана, она обрабатывается менее чем за 10 мс. И, как упоминал ранее Тиморес, как только лицо распознается, вы просто переключаете сеанс. Простое, но эффективное решение. Удачи!

person Jake    schedule 25.04.2013

может быть, вы хотите подумать об использовании сканера штрих-кода ... возможно, у вас уже есть это устройство на POS ... мое программное обеспечение для баров и ресторанов использует сканер штрих-кода для распознавания пользователей. У вас есть 2 варианта использования: во-первых, пользователь должен войти в систему с собственной картой штрих-кода, затем он может использовать приложение ... второй вариант лучше, каждый может использовать приложение, но для печати квитанции пользователь должен использовать карту штрих-кода. После этого он несет ответственность за эту сумму, указанную в этой квитанции.

person marino235    schedule 19.06.2010
comment
Пожалуйста, подробно опишите свое решение и, если возможно, предоставьте источники. - person JSuar; 19.12.2012