Есть ли у кого-нибудь предложения по базе данных, языку программирования / фреймворку для системы точек продаж с графическим интерфейсом?

В нашей компании есть система точек продаж со многими дополнительными функциями, такими как функции заказа и получения, история продаж и заказов и т. Д. Наша основная проблема заключается в том, что система не была разработана должным образом с нуля, поэтому на исправления и обрабатывать запросы наших клиентов. Кроме того, текущая технология, которую мы используем (база данных Progress, Progress 4GL для языка), несет в себе немалые расходы на лицензирование для наших клиентов из-за лицензионных сборов для нескольких пользователей для подключений к базам данных и т. Д.

После долгих обсуждений похоже, что мы, вероятно, начнем с нуля (при сохранении текущего продукта, по крайней мере, на время). Ищем пару вещей:

  1. Создайте систему с красивым графическим интерфейсом пользователя (в настоящее время это CHUI, и приложение не было построено таким образом, чтобы мы могли перепроектировать интерфейс ... без разделения на слои или разделения бизнес-логики и графического интерфейса ... содрогание).

  2. Создайте систему с возможностью модульного разделения различных функций, чтобы продукт не обязательно должен был включать все функции. Это снизит стоимость для наших текущих клиентов, которым нужны базовые функции и более низкая цена. Навороты будут доступны для тех, кто их захочет.

  3. Используйте правильные шаблоны проектирования, чтобы упростить добавление или изменение любой части продукта в любое время (например, изменение базы данных или изменение внешнего интерфейса без необходимости переписывать приложение или большую его часть). Сегодня это проблема, потому что код Progress 4GL компилируется напрямую с базой данных. Небольшие изменения в базе данных требуют перекомпиляции большого количества кода.

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

Так что я ищу любые предложения о том, какую базу данных и / или фреймворк или языки программирования кто-то может порекомендовать для такого рода продуктов. Любой, кто имеет опыт в этой области, может указать нам правильное направление или даже иметь некоторые идеи, чего следует избегать. Мы рассмотрели .NET и SQL Express (нам не нужна БД корпоративного уровня), но это ограничило бы нас окнами (насколько мне известно). Я слышал о Mono для написания кода .NET в среде Linux, но пока мало что знаю об этом. Мы также рассмотрели реализацию на основе Java и MySql.

Подводя итог, мы стремимся сделать следующее:

  1. Снизьте затраты на лицензирование технологии, которую мы будем использовать для разработки продукта (Oracle, yikes! MySQL, отлично).

  2. Предлагайте решение, которое легко обслуживать и поддерживать.

  3. Решение, в котором есть компонент, способный работать на «старом» оборудовании через интерфейс CHUI. (у некоторых из наших клиентов есть 40+ терминалов, которые можно было бы переконвертировать в ПК).

Предложения будут оценены.

Спасибо

[ОБНОВЛЕНИЕ] Я должен отметить, что в настоящее время мы проводим общий анализ затрат. Этот вопрос предназначен для того, чтобы дать нам несколько «образованных» вариантов, которые нужно изучить, чтобы включить в них или проанализировать. Будем признательны всем, кто мог бы поделиться опытом / предложениями по настройке клиент / сервер (не только те, у кого есть опыт работы с системами точек продаж ... это было бы просто бонусом).

[ОБНОВЛЕНИЕ]

Для всех, кто заинтересован, мы остановились на Microsoft Dynamics NAV, LS Retail (плагин для точек продаж и других вещей), а затем проделали (и в настоящее время работаем) над настройкой над этим. Эта установка дала нам дополнительное преимущество в виде полностью интегрированной системы г / л, которой не хватало в нашей нынешней системе.


person Jason Down    schedule 10.10.2008    source источник


Ответы (5)


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

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

Мой общий совет - стремиться к широко используемым технологиям. Таким образом, экспертиза на платформе дешевле, чем «нишевые» технологии, и вам будет легче получить помощь, если вы наткнетесь на кирпичную стену. Конечно, следование этому совету может оказаться невозможным, если у вас уже есть не подлежащие обсуждению технологии у клиентов.

Моим вторым предложением было бы завершить полный план проекта с подробными спецификациями и надлежащей оценкой затрат, прежде чем переходить к варианту «переписать с нуля». Прямо сейчас вы говорите, что было бы дешевле переписать систему, чем поддерживать ее, и вы действительно не знаете, сколько будет стоить переписывание.

person Bork Blatt    schedule 10.10.2008
comment
Перезапись еще не является чем-то однозначным (я имел в виду, что прямо сейчас выполняется текущий анализ общей стоимости, и выглядит это так, как мы хотим переписать). Мы изучаем варианты перезаписи, которые позволят получить больше информации о стоимости. Вот для чего этот вопрос, чтобы дать обоснованные идеи. - person Jason Down; 10.10.2008
comment
BB ударил по гвоздю в вопросе выбора плодотворной технологии. Это действительно отстой, когда ваш единственный эксперт по SupaDupaDB уходит, а вы не можете найти другого за все деньги в Китае. - person ; 10.10.2008

Java для языка (или Scala, если вы хотите быть «на переднем крае», в зависимости от того, как вы планируете поддерживать его и каковы ваши разработчики, это может быть лучше, но также и хуже)

H2 для базы данных

Swing для графического интерфейса

Причина: бесплатно, портативно и довольно стандартно.

Обновление: пропущена часть, где система должна быть настройкой клиент-сервер. Я предполагал, что база данных и клиент должны работать на одном компьютере.

person John Nilsson    schedule 10.10.2008
comment
Есть ли шанс дать некоторое представление о том, почему вы предлагаете это? Есть ли какие-то преимущества в их использовании по сравнению с чем-то другим? Спасибо - person Jason Down; 10.10.2008
comment
Java - это стандарт в том виде, в каком он есть. И он портативный, как вы предложили, так и должно быть. H2 - это встроенная база данных, которая может быть полезна в специализированном приложении, таком как ваше. Также H2 (по утверждению создателей) производительный и легкий. Качайте просто чтобы избежать зависимостей. Достаточно хорошо. - person John Nilsson; 10.10.2008
comment
Спасибо, Джон. Это то, что мы ищем. - person Jason Down; 10.10.2008

Я предлагаю вам использовать браузер для пользовательского интерфейса.

Организуйте свое приложение как веб-приложение.

Есть масса вариантов для бэкэнда. Вы можете использовать Java + MySQL. Бэкэнд Java избавит вас от споров о Windows / Linux, поскольку он будет работать на обеих платформах. У вас не будет никаких затрат на лицензирование как для Java, так и для MySQL. (Изменить: определенно есть много других языков, которые имеют время выполнения как для Linux, так и для Windows, включая PHP, Ruby, Python и т. Д.)

Если вы пойдете по этому пути, вы также можете рассмотреть возможность использования Google Web Toolkit (GWT) для создания интерфейса на основе браузера по модульному принципу.

Одно предостережение. Когда дело доходит до управления памятью, браузеры могут раздражать. По нашему опыту, это была самая серьезная проблема при создании POS на основе браузера. Возможно, вы захотите проверить Adobe Flex, который работает в браузере, но может быть более цивилизованным в управлении памятью.

person Tahir Akhtar    schedule 10.10.2008
comment
Я действительно не понимаю, как дополнительная сложность использования HTTP и друзей между слоем графического интерфейса и системой принесет хоть какую-то пользу. - person John Nilsson; 10.10.2008
comment
Будьте осторожны с пользовательским интерфейсом на основе браузера при разработке системы точек продаж. Обычно он интегрируется со специализированным оборудованием (например, термопринтером, сканером штрих-кода и т. Д.) - person Snackmoore; 19.03.2010

Что такое ЧУЙ? Персонаж-UI, как в терминалах VT? Или даже стиль 3270?

Похоже, вам нужна трехуровневая система - бэкэнд базы данных, средний уровень, который выполняет большую часть внутренних бизнес-процессов, и интерфейсный уровень для CHUI / GUI / шлюза данных.

Все три уровня могут находиться на одной машине; или вы можете распределить уровни по различным серверам. Интерфейсный уровень будет управлять фактическими терминалами, будь то терминалы VT, веб-браузер или специально написанное «клиентское» приложение.

Убедитесь, что вы учли здесь потребности в оборудовании - собираетесь ли вы иметь сканеры штрих-кода, денежные ящики, дебетовые / кредитные терминалы POS и т. Д.? Если вы используете стандартный браузер, может быть сложно надежно интегрировать эти элементы. (По крайней мере, вам, вероятно, придется написать специальные апплеты для их обработки.)

Наконец, рассмотрим возможность использования технологии тонких клиентов в Windows. Это значительно упрощает управление системой, поскольку вам нужно только централизованно обновить программное обеспечение. Компьютеры с тонкими клиентами дешевы - менее 200 долларов.

person Toybuilder    schedule 10.10.2008

Golden Code Development (см. Www.goldencode.com) имеет технологию, которая выполняет автоматическое преобразование Progress 4GL (схемы и кода ... всего приложения) в приложение Java с серверной частью реляционной базы данных (например, PostgreSQL). В настоящее время они поддерживают очень полную среду CHUI и проводят рефакторинг кода. Например, преобразование разделяет пользовательский интерфейс, модель данных и бизнес-логику на отдельные классы Java. В результате получается прямая замена, совместимая с оригиналом (пользователи не нуждаются в переобучении, процессы не нужно изменять, данные также переносятся). Это возможно, поскольку они предоставляют сервер приложений и набор классов времени выполнения, обеспечивающих такую ​​совместимость. Результат автоматического преобразования не требует дальнейшего редактирования, прежде чем вы сможете его скомпилировать и запустить. Включена истинная поддержка терминалов, поэтому аппаратные терминалы по-прежнему работают (для доступа к NCURSES из Java требуется небольшая библиотека JNI). Весь остальной код во время выполнения - это чистая Java. В полученной системе не используется технология Progress Software Corp, и она работает на Linux.

По крайней мере, одна преобразованная система уже запущена в производство и работает в критически важной среде 24 на 7. Это преобразованная ERP-система, которую пилотный заказчик среднего размера использует для управления всем своим бизнесом.

person Greg Shah    schedule 26.08.2010